| 1 | ################################################################################ |
1 | ################################################################################ |
| 2 | # WeBWorK Online Homework Delivery System |
2 | # WeBWorK Online Homework Delivery System |
| 3 | # Copyright © 2000-2003 The WeBWorK Project, http://openwebwork.sf.net/ |
3 | # Copyright © 2000-2003 The WeBWorK Project, http://openwebwork.sf.net/ |
| 4 | # $CVSHeader: webwork-modperl/lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm,v 1.66.2.1 2006/01/08 01:19:33 gage Exp $ |
4 | # $CVSHeader: webwork-modperl/lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm,v 1.66.2.2 2006/01/08 01:36:15 gage Exp $ |
| 5 | # |
5 | # |
| 6 | # This program is free software; you can redistribute it and/or modify it under |
6 | # This program is free software; you can redistribute it and/or modify it under |
| 7 | # the terms of either: (a) the GNU General Public License as published by the |
7 | # the terms of either: (a) the GNU General Public License as published by the |
| 8 | # Free Software Foundation; either version 2, or (at your option) any later |
8 | # Free Software Foundation; either version 2, or (at your option) any later |
| 9 | # version, or (b) the "Artistic License" which comes with this package. |
9 | # version, or (b) the "Artistic License" which comes with this package. |
| … | |
… | |
| 397 | return ""; |
397 | return ""; |
| 398 | } |
398 | } |
| 399 | sub title { |
399 | sub title { |
| 400 | my $self = shift; |
400 | my $self = shift; |
| 401 | my $r = $self->r; |
401 | my $r = $self->r; |
|
|
402 | my $courseName = $r->urlpath->arg("courseID"); |
|
|
403 | my $setID = $r->urlpath->arg("setID"); |
| 402 | my $problemNumber = $r->urlpath->arg("problemID"); |
404 | my $problemNumber = $r->urlpath->arg("problemID"); |
| 403 | my $file_type = $self->{'file_type'} || ''; |
405 | my $file_type = $self->{'file_type'} || ''; |
| 404 | return "Set Header" if ($file_type eq 'set_header'); |
406 | return "Set Header for set $setID" if ($file_type eq 'set_header'); |
| 405 | return "Hardcopy Header" if ($file_type eq 'hardcopy_header'); |
407 | return "Hardcopy Header for set $setID" if ($file_type eq 'hardcopy_header'); |
| 406 | return "Course Information" if ($file_type eq 'course_info'); |
408 | return "Course Information for course $courseName" if ($file_type eq 'course_info'); |
| 407 | return "Options Information" if ($file_type eq 'options_info'); |
409 | return "Options Information" if ($file_type eq 'options_info'); |
| 408 | return 'Problem ' . $r->{urlpath}->name; |
410 | return 'Problem ' . $r->{urlpath}->name; |
| 409 | } |
411 | } |
| 410 | |
412 | |
| 411 | sub body { |
413 | sub body { |
| … | |
… | |
| 1073 | my ($self, $genericParams, $actionParams, $tableParams) = @_; |
1075 | my ($self, $genericParams, $actionParams, $tableParams) = @_; |
| 1074 | #$self->addgoodmessage("fresh_edit_handler called"); |
1076 | #$self->addgoodmessage("fresh_edit_handler called"); |
| 1075 | } |
1077 | } |
| 1076 | sub view_form { |
1078 | sub view_form { |
| 1077 | my ($self, $onChange, %actionParams) = @_; |
1079 | my ($self, $onChange, %actionParams) = @_; |
|
|
1080 | my $file_type = $self->{file_type}; |
|
|
1081 | return "" if $file_type eq 'hardcopy_header'; # these can't yet be edited from temporary files #FIXME |
| 1078 | my $output_string = "View"; |
1082 | my $output_string = "View"; |
| 1079 | unless ($self->{file_type} eq 'course_info' || $self->{file_type} eq 'options_info') { |
1083 | unless ($file_type eq 'course_info' || $file_type eq 'options_info') { |
| 1080 | $output_string .= join(" ", |
1084 | $output_string .= join(" ", |
| 1081 | ## " problem using seed ", |
1085 | ## " problem using seed ", |
| 1082 | " using seed ", |
1086 | " using seed ", |
| 1083 | CGI::textfield(-name=>'action.view.seed',-value=>$self->{problemSeed},-onfocus=>$onChange), |
1087 | CGI::textfield(-name=>'action.view.seed',-value=>$self->{problemSeed},-onfocus=>$onChange), |
| 1084 | "and display mode ", |
1088 | "and display mode ", |
| … | |
… | |
| 1138 | sourceFilePath => $tempFilePath, |
1142 | sourceFilePath => $tempFilePath, |
| 1139 | status_message => uri_escape($self->{status_message}) |
1143 | status_message => uri_escape($self->{status_message}) |
| 1140 | |
1144 | |
| 1141 | } |
1145 | } |
| 1142 | ); |
1146 | ); |
| 1143 | } elsif ($file_type eq 'set_header' or $file_type eq 'hardcopy_header') { # redirect to ProblemSet |
1147 | } elsif ($file_type eq 'set_header' ) { # redirect to ProblemSet |
| 1144 | my $problemPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSet", |
1148 | my $problemPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSet", |
| 1145 | courseID => $courseName, setID => $setName, |
1149 | courseID => $courseName, setID => $setName, |
| 1146 | ); |
1150 | ); |
| 1147 | |
1151 | |
| 1148 | $viewURL = $self->systemLink($problemPage, |
1152 | $viewURL = $self->systemLink($problemPage, |
| … | |
… | |
| 1150 | set_header => $tempFilePath, |
1154 | set_header => $tempFilePath, |
| 1151 | displayMode => $displayMode, |
1155 | displayMode => $displayMode, |
| 1152 | problemSeed => $problemSeed, |
1156 | problemSeed => $problemSeed, |
| 1153 | editMode => "temporaryFile", |
1157 | editMode => "temporaryFile", |
| 1154 | edit_level => $edit_level, |
1158 | edit_level => $edit_level, |
|
|
1159 | sourceFilePath => $tempFilePath, |
| 1155 | status_message => uri_escape($self->{status_message}) |
1160 | status_message => uri_escape($self->{status_message}) |
| 1156 | |
1161 | |
| 1157 | } |
1162 | } |
| 1158 | ); |
1163 | ); |
|
|
1164 | } elsif ($file_type eq 'hardcopy_header') { # redirect to ProblemSet?? # it's difficult to view temporary changes for hardcopy headers |
|
|
1165 | my $problemPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSet", |
|
|
1166 | courseID => $courseName, setID => $setName, |
|
|
1167 | ); |
|
|
1168 | |
|
|
1169 | $viewURL = $self->systemLink($problemPage, |
|
|
1170 | params => { |
|
|
1171 | set_header => $tempFilePath, |
|
|
1172 | displayMode => $displayMode, |
|
|
1173 | problemSeed => $problemSeed, |
|
|
1174 | editMode => "temporaryFile", |
|
|
1175 | edit_level => $edit_level, |
|
|
1176 | sourceFilePath => $tempFilePath, |
|
|
1177 | status_message => uri_escape($self->{status_message}) |
| 1159 | |
1178 | |
|
|
1179 | } |
|
|
1180 | ); |
| 1160 | |
1181 | |
| 1161 | } elsif ($file_type eq 'course_info') { # redirec to ProblemSets.pm |
1182 | } elsif ($file_type eq 'course_info') { # redirec to ProblemSets.pm |
| 1162 | my $problemSetsPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSets", |
1183 | my $problemSetsPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSets", |
| 1163 | courseID => $courseName); |
1184 | courseID => $courseName); |
| 1164 | $viewURL = $self->systemLink($problemSetsPage, |
1185 | $viewURL = $self->systemLink($problemSetsPage, |
| 1165 | params => { |
1186 | params => { |
| 1166 | course_info => $tempFilePath, |
1187 | course_info => $tempFilePath, |
| 1167 | editMode => "temporaryFile", |
1188 | editMode => "temporaryFile", |
| 1168 | edit_level => $edit_level, |
1189 | edit_level => $edit_level, |
|
|
1190 | sourceFilePath => $tempFilePath, |
| 1169 | status_message => uri_escape($self->{status_message}) |
1191 | status_message => uri_escape($self->{status_message}) |
| 1170 | } |
1192 | } |
| 1171 | ); |
1193 | ); |
| 1172 | } elsif ($file_type eq 'options_info') { # redirec to Options.pm |
1194 | } elsif ($file_type eq 'options_info') { # redirec to Options.pm |
| 1173 | my $optionsPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::Options", |
1195 | my $optionsPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::Options", |
| 1174 | courseID => $courseName); |
1196 | courseID => $courseName); |
| 1175 | $viewURL = $self->systemLink($optionsPage, |
1197 | $viewURL = $self->systemLink($optionsPage, |
| 1176 | params => { |
1198 | params => { |
| 1177 | options_info => $tempFilePath, |
1199 | options_info => $tempFilePath, |
| 1178 | editMode => "temporaryFile", |
1200 | editMode => "temporaryFile", |
| 1179 | edit_level => $edit_level, |
1201 | edit_level => $edit_level, |
|
|
1202 | sourceFilePath => $tempFilePath, |
| 1180 | status_message => uri_escape($self->{status_message}) |
1203 | status_message => uri_escape($self->{status_message}) |
| 1181 | } |
1204 | } |
| 1182 | ); |
1205 | ); |
| 1183 | } else { |
1206 | } else { |
| 1184 | die "I don't know how to redirect this file type $file_type "; |
1207 | die "I don't know how to redirect this file type $file_type "; |
| … | |
… | |
| 1371 | sourceFilePath => $editFilePath, |
1394 | sourceFilePath => $editFilePath, |
| 1372 | status_message => uri_escape($self->{status_message}) |
1395 | status_message => uri_escape($self->{status_message}) |
| 1373 | |
1396 | |
| 1374 | } |
1397 | } |
| 1375 | ); |
1398 | ); |
| 1376 | } elsif ($file_type eq 'set_header' or $file_type eq 'hardcopy_header') { # redirect to ProblemSet |
1399 | } elsif ($file_type eq 'set_header' ) { # redirect to ProblemSet |
| 1377 | my $problemPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSet", |
1400 | my $problemPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSet", |
| 1378 | courseID => $courseName, setID => $setName, |
1401 | courseID => $courseName, setID => $setName, |
| 1379 | ); |
1402 | ); |
| 1380 | |
1403 | |
| 1381 | $viewURL = $self->systemLink($problemPage, |
1404 | $viewURL = $self->systemLink($problemPage, |
| … | |
… | |
| 1386 | edit_level => 0, |
1409 | edit_level => 0, |
| 1387 | status_message => uri_escape($self->{status_message}) |
1410 | status_message => uri_escape($self->{status_message}) |
| 1388 | |
1411 | |
| 1389 | } |
1412 | } |
| 1390 | ); |
1413 | ); |
|
|
1414 | } elsif ( $file_type eq 'hardcopy_header') { # redirect to ProblemSet |
|
|
1415 | my $problemPage = $self->r->urlpath->newFromModule('WeBWorK::ContentGenerator::Hardcopy', |
|
|
1416 | courseID => $courseName, setID => $setName, |
|
|
1417 | ); |
|
|
1418 | |
|
|
1419 | $viewURL = $self->systemLink($problemPage, |
|
|
1420 | params => { |
|
|
1421 | displayMode => $displayMode, |
|
|
1422 | problemSeed => $problemSeed, |
|
|
1423 | editMode => "savedFile", |
|
|
1424 | edit_level => 0, |
|
|
1425 | status_message => uri_escape($self->{status_message}) |
| 1391 | |
1426 | |
|
|
1427 | } |
|
|
1428 | ); |
| 1392 | |
1429 | |
| 1393 | } elsif ($file_type eq 'course_info') { # redirect to ProblemSets.pm |
1430 | } elsif ($file_type eq 'course_info') { # redirect to ProblemSets.pm |
| 1394 | my $problemSetsPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSets", |
1431 | my $problemSetsPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSets", |
| 1395 | courseID => $courseName); |
1432 | courseID => $courseName); |
| 1396 | $viewURL = $self->systemLink($problemSetsPage, |
1433 | $viewURL = $self->systemLink($problemSetsPage, |