| … | |
… | |
| 72 | my $redisplay = $r->param("redisplay"); |
72 | my $redisplay = $r->param("redisplay"); |
| 73 | my $submitAnswers = $r->param("submitAnswers"); |
73 | my $submitAnswers = $r->param("submitAnswers"); |
| 74 | my $checkAnswers = $r->param("checkAnswers"); |
74 | my $checkAnswers = $r->param("checkAnswers"); |
| 75 | my $previewAnswers = $r->param("previewAnswers"); |
75 | my $previewAnswers = $r->param("previewAnswers"); |
| 76 | |
76 | |
|
|
77 | # fields which may be defined when using Problem Editor |
|
|
78 | my $override_seed = ($permissionLevel>=10) ? $r->param('seed') : undef; |
|
|
79 | my $override_problem_source = ($permissionLevel>=10) ? $r->param('sourceFilePath') : undef; |
|
|
80 | my $editMode = undef; |
|
|
81 | my $submit_button = $r->param('submit_button'); |
|
|
82 | if ( defined($submit_button ) ) { |
|
|
83 | $editMode = "temporaryFile" if $submit_button eq 'Refresh'; |
|
|
84 | $editMode = 'savedFile' if $submit_button eq 'Save'; |
|
|
85 | } |
| 77 | # coerce form fields into CGI::Vars format |
86 | # coerce form fields into CGI::Vars format |
| 78 | my $formFields = { WeBWorK::Form->new_from_paramable($r)->Vars }; |
87 | my $formFields = { WeBWorK::Form->new_from_paramable($r)->Vars }; |
| 79 | |
88 | |
| 80 | $self->{displayMode} = $displayMode; |
89 | $self->{displayMode} = $displayMode; |
| 81 | $self->{redisplay} = $redisplay; |
90 | $self->{redisplay} = $redisplay; |
| 82 | $self->{submitAnswers} = $submitAnswers; |
91 | $self->{submitAnswers} = $submitAnswers; |
| 83 | $self->{checkAnswers} = $checkAnswers; |
92 | $self->{checkAnswers} = $checkAnswers; |
| 84 | $self->{previewAnswers} = $previewAnswers; |
93 | $self->{previewAnswers} = $previewAnswers; |
| 85 | $self->{formFields} = $formFields; |
94 | $self->{formFields} = $formFields; |
| 86 | |
95 | |
|
|
96 | $self->{current_problem_source} = (defined($override_problem_source) ) ? |
|
|
97 | $override_problem_source : |
|
|
98 | $problem->source_file; |
|
|
99 | $self->{edit_mode} = $editMode; |
| 87 | ##### permissions ##### |
100 | ##### permissions ##### |
| 88 | |
101 | |
| 89 | # are we allowed to view this problem? |
102 | # are we allowed to view this problem? |
| 90 | $self->{isOpen} = time >= $set->open_date || $permissionLevel > 0; |
103 | $self->{isOpen} = time >= $set->open_date || $permissionLevel > 0; |
| 91 | return unless $self->{isOpen}; |
104 | return unless $self->{isOpen}; |
| … | |
… | |
| 146 | $problem, |
159 | $problem, |
| 147 | $psvn, |
160 | $psvn, |
| 148 | $formFields, |
161 | $formFields, |
| 149 | { # translation options |
162 | { # translation options |
| 150 | displayMode => $displayMode, |
163 | displayMode => $displayMode, |
|
|
164 | override_seed => $override_seed, |
|
|
165 | override_problem_source =>$override_problem_source, |
| 151 | showHints => $will{showHints}, |
166 | showHints => $will{showHints}, |
| 152 | showSolutions => $will{showSolutions}, |
167 | showSolutions => $will{showSolutions}, |
| 153 | refreshMath2img => $will{showHints} || $will{showSolutions}, |
168 | refreshMath2img => $will{showHints} || $will{showSolutions}, |
| 154 | processAnswers => 1, |
169 | processAnswers => 1, |
| 155 | }, |
170 | }, |
| … | |
… | |
| 258 | } |
273 | } |
| 259 | |
274 | |
| 260 | sub title { |
275 | sub title { |
| 261 | my $self = shift; |
276 | my $self = shift; |
| 262 | my $setName = $self->{set}->set_id; |
277 | my $setName = $self->{set}->set_id; |
|
|
278 | |
|
|
279 | my $file_action; |
|
|
280 | my $edit_mode = $self->{edit_mode}; |
|
|
281 | if ( not defined($edit_mode) ) { |
|
|
282 | $file_action = ''; |
|
|
283 | } elsif ( $edit_mode eq 'temporaryFile') { |
|
|
284 | $file_action .= 'Editing temporary file : '. CGI::br() . $self->{current_problem_source}; |
|
|
285 | } elsif ( $edit_mode eq 'savedFile' ){ |
|
|
286 | $file_action .= 'Problem saved to : '. CGI::br() . $self->{current_problem_source}; |
|
|
287 | } |
| 263 | my $problemNumber = $self->{problem}->problem_id; |
288 | my $problemNumber = $self->{problem}->problem_id . " : " . $file_action; |
| 264 | |
289 | |
| 265 | return "$setName : Problem $problemNumber"; |
290 | return "$setName : Problem $problemNumber"; |
| 266 | } |
291 | } |
| 267 | |
292 | |
| 268 | sub body { |
293 | sub body { |
| … | |
… | |
| 495 | |
520 | |
| 496 | |
521 | |
| 497 | |
522 | |
| 498 | } |
523 | } |
| 499 | # FIXME print editor link |
524 | # FIXME print editor link |
| 500 | if ($self->{permissionLevel}>=10 ) { |
525 | # print editor link if the user is an instructor AND the file is not in temporary editing mode |
|
|
526 | if ($self->{permissionLevel}>=10 and ( (not defined($self->{edit_mode})) or $self->{edit_mode} eq 'savedFile') ) { |
| 501 | print CGI::a({-href=>"/webwork/$courseName/instructor/pgProblemEditor/".$set->set_id. |
527 | print CGI::a({-href=>"/webwork/$courseName/instructor/pgProblemEditor/".$set->set_id. |
| 502 | '/'.$problem->problem_id.'?'.$self->url_authen_args},'Edit this problem'); |
528 | '/'.$problem->problem_id.'?'.$self->url_authen_args},'Edit this problem'); |
| 503 | } |
529 | } |
| 504 | print CGI::end_div(); |
530 | print CGI::end_div(); |
| 505 | |
531 | |