MDL-33431: Allow in page toggling of full/summary of submissions/feedback in assignment

This commit is contained in:
Damyon Wiese 2012-09-20 10:32:17 +08:00
parent f9e6212700
commit 66d3fe3708
4 changed files with 138 additions and 7 deletions

View file

@ -632,12 +632,28 @@ class mod_assign_renderer extends plugin_renderer_base {
$o = '';
if ($submissionplugin->view == assign_submission_plugin_submission::SUMMARY) {
$icon = $this->output->pix_icon('t/preview', get_string('view' . substr($submissionplugin->plugin->get_subtype(), strlen('assign')), 'mod_assign'));
$link = '';
$showviewlink = false;
$summary = $submissionplugin->plugin->view_summary($submissionplugin->submission, $showviewlink);
$classsuffix = $submissionplugin->plugin->get_subtype() . '_' . $submissionplugin->plugin->get_type() . '_' . $submissionplugin->submission->id;
$o .= $this->output->box_start('boxaligncenter plugincontentsummary summary_' . $classsuffix);
$link = '';
if ($showviewlink) {
$link = $this->output->action_link(
$previewstr = get_string('viewsubmission', 'assign');
$icon = $this->output->pix_icon('t/preview', $previewstr);
$expandstr = get_string('viewfull', 'assign');
$classes = 'expandsummaryicon expand_' . $classsuffix;
$o .= $this->output->pix_icon('t/switch_plus', $expandstr, null, array('class'=>$classes));
$jsparams = array($submissionplugin->plugin->get_subtype(),
$submissionplugin->plugin->get_type(),
$submissionplugin->submission->id);
$this->page->requires->js_init_call('M.mod_assign.init_plugin_summary', $jsparams);
$link .= '<noscript>';
$link .= $this->output->action_link(
new moodle_url('/mod/assign/view.php',
array('id' => $submissionplugin->coursemoduleid,
'sid'=>$submissionplugin->submission->id,
@ -646,11 +662,23 @@ class mod_assign_renderer extends plugin_renderer_base {
'returnaction'=>$submissionplugin->returnaction,
'returnparams'=>http_build_query($submissionplugin->returnparams))),
$icon);
$link .= '</noscript>';
$link .= $this->output->spacer(array('width'=>15));
}
$o .= $link . $summary;
$o .= $this->output->box_end();
if ($showviewlink) {
$o .= $this->output->box_start('boxaligncenter hidefull full_' . $classsuffix);
$classes = 'expandsummaryicon contract_' . $classsuffix;
$o .= $this->output->pix_icon('t/switch_minus',
get_string('viewsummary', 'assign'),
null,
array('class'=>$classes));
$o .= $submissionplugin->plugin->view($submissionplugin->submission);
$o .= $this->output->box_end();
}
} else if ($submissionplugin->view == assign_submission_plugin_submission::FULL) {
$o .= $this->output->box_start('boxaligncenter submissionfull');
$o .= $submissionplugin->plugin->view($submissionplugin->submission);
@ -699,12 +727,28 @@ class mod_assign_renderer extends plugin_renderer_base {
$o = '';
if ($feedbackplugin->view == assign_feedback_plugin_feedback::SUMMARY) {
$icon = $this->output->pix_icon('t/preview', get_string('view' . substr($feedbackplugin->plugin->get_subtype(), strlen('assign')), 'mod_assign'));
$link = '';
$showviewlink = false;
$summary = $feedbackplugin->plugin->view_summary($feedbackplugin->grade, $showviewlink);
$classsuffix = $feedbackplugin->plugin->get_subtype() . '_' . $feedbackplugin->plugin->get_type() . '_' . $feedbackplugin->grade->id;
$o .= $this->output->box_start('boxaligncenter plugincontentsummary summary_' . $classsuffix);
$link = '';
if ($showviewlink) {
$link = $this->output->action_link(
$previewstr = get_string('viewfeedback', 'assign');
$icon = $this->output->pix_icon('t/preview', $previewstr);
$expandstr = get_string('viewfull', 'assign');
$classes = 'expandsummaryicon expand_' . $classsuffix;
$o .= $this->output->pix_icon('t/switch_plus', $expandstr, null, array('class'=>$classes));
$jsparams = array($feedbackplugin->plugin->get_subtype(),
$feedbackplugin->plugin->get_type(),
$feedbackplugin->grade->id);
$this->page->requires->js_init_call('M.mod_assign.init_plugin_summary', $jsparams);
$link .= '<noscript>';
$link .= $this->output->action_link(
new moodle_url('/mod/assign/view.php',
array('id' => $feedbackplugin->coursemoduleid,
'gid'=>$feedbackplugin->grade->id,
@ -713,10 +757,23 @@ class mod_assign_renderer extends plugin_renderer_base {
'returnaction'=>$feedbackplugin->returnaction,
'returnparams'=>http_build_query($feedbackplugin->returnparams))),
$icon);
$link .= '</noscript>';
$link .= $this->output->spacer(array('width'=>15));
}
$o .= $link . $summary;
$o .= $this->output->box_end();
if ($showviewlink) {
$o .= $this->output->box_start('boxaligncenter hidefull full_' . $classsuffix);
$classes = 'expandsummaryicon contract_' . $classsuffix;
$o .= $this->output->pix_icon('t/switch_minus',
get_string('viewsummary', 'assign'),
null,
array('class'=>$classes));
$o .= $feedbackplugin->plugin->view($feedbackplugin->grade);
$o .= $this->output->box_end();
}
} else if ($feedbackplugin->view == assign_feedback_plugin_feedback::FULL) {
$o .= $this->output->box_start('boxaligncenter feedbackfull');
$o .= $feedbackplugin->plugin->view($feedbackplugin->grade);