ÿØÿà JFIF    ÿÛ „  ( %"1!%)+...383,7(-.+  -+++--++++---+-+-----+---------------+---+-++7-----ÿÀ  ß â" ÿÄ     ÿÄ H    !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ   ÿÄ %  !1AQa"23‘ÿÚ   ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6  öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ "Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷󲍷˜HT4&ÿ ÓÐü6ö®¿øþßèô Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt ‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%ºÍãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%ÌÁ²h´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ǍýʏTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆѪQ|%6ž™A õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»& î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$˝Úsäÿ ÷Û #°xŸëí(l »ý3—¥5m! rt`†0~'j2(]S¦¦kv,ÚÇ l¦øJA£Šƒ J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉ䢍mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ­‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø ð\á)} ¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U  Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD é©¤&‡ïDbàÁôMÁ.. /** * Output the user submission actionbar for this activity. * * @package mod_assign * @copyright 2021 Adrian Greeve * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_assign\output; use templatable; use renderable; use moodle_url; use help_icon; use single_button; use stdClass; /** * Output the user submission actionbar for this activity. * * @package mod_assign * @copyright 2021 Adrian Greeve * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class user_submission_actionmenu implements templatable, renderable { /** @var int The course module ID. */ protected $cmid; /** @var bool Whether to show the submit button. */ protected $showsubmit; /** @var bool Whether to show the edit button. */ protected $showedit; /** @var stdClass A submission for this activity. */ protected $submission; /** @var stdClass A team submission for this activity. */ protected $teamsubmission; /** @var int The time limit for the submission. 0 = no time limit. */ protected $timelimit; /** * Constructor for this object. * * @param int $cmid The course module ID. * @param bool $showsubmit Whether to show the submit button. * @param bool $showedit Whether to show the edit button. * @param stdClass|null $submission A submission for this activity. * @param stdClass|null $teamsubmission A team submission for this activity. * @param int $timelimit The time limit for completing this activity. */ public function __construct(int $cmid, bool $showsubmit, bool $showedit, stdClass $submission = null, stdClass $teamsubmission = null, int $timelimit = 0) { $this->cmid = $cmid; $this->showsubmit = $showsubmit; $this->showedit = $showedit; $this->submission = $submission; $this->teamsubmission = $teamsubmission; $this->timelimit = $timelimit; } /** * Get the submission status. * * @return string The status of the submission. */ protected function get_current_status(): string { if (!is_null($this->teamsubmission) && isset($this->teamsubmission->status)) { return $this->teamsubmission->status; } else if (!empty((array)$this->submission)) { return $this->submission->status; } else { return ASSIGN_SUBMISSION_STATUS_NEW; } } /** * Export the submission buttons for the page. * * @param \renderer_base $output renderer base output. * @return array The data to be rendered. */ public function export_for_template(\renderer_base $output): array { $data = ['edit' => false, 'submit' => false, 'remove' => false, 'previoussubmission' => false]; if ($this->showedit) { $url = new moodle_url('/mod/assign/view.php', ['id' => $this->cmid, 'action' => 'editsubmission']); $button = new single_button($url, get_string('editsubmission', 'mod_assign'), 'get'); $data['edit'] = [ 'button' => $button->export_for_template($output), ]; $status = $this->get_current_status(); if ($status !== ASSIGN_SUBMISSION_STATUS_NEW && $status !== ASSIGN_SUBMISSION_STATUS_REOPENED) { $url = new moodle_url('/mod/assign/view.php', ['id' => $this->cmid, 'action' => 'removesubmissionconfirm']); $button = new single_button($url, get_string('removesubmission', 'mod_assign'), 'get'); $data['remove'] = ['button' => $button->export_for_template($output)]; } if ($status === ASSIGN_SUBMISSION_STATUS_REOPENED) { $params = ['id' => $this->cmid, 'action' => 'editprevioussubmission', 'sesskey' => sesskey()]; $url = new moodle_url('/mod/assign/view.php', $params); $button = new single_button($url, get_string('addnewattemptfromprevious', 'mod_assign'), 'get'); $help = new help_icon('addnewattemptfromprevious', 'mod_assign'); $data['previoussubmission'] = [ 'button' => $button->export_for_template($output), 'help' => $help->export_for_template($output) ]; $url = new moodle_url('/mod/assign/view.php', ['id' => $this->cmid, 'action' => 'editsubmission']); $newattemptbutton = new single_button( $url, get_string('addnewattempt', 'mod_assign'), 'get', single_button::BUTTON_PRIMARY ); $newattempthelp = new help_icon('addnewattempt', 'mod_assign'); $data['edit']['button'] = $newattemptbutton->export_for_template($output); $data['edit']['help'] = $newattempthelp->export_for_template($output); } if ($status === ASSIGN_SUBMISSION_STATUS_NEW) { $timelimitenabled = get_config('assign', 'enabletimelimit'); if ($timelimitenabled && $this->timelimit && empty($this->submission->timestarted)) { $confirmation = new \confirm_action( get_string('confirmstart', 'assign', format_time($this->timelimit)), null, get_string('beginassignment', 'assign') ); $urlparams = array('id' => $this->cmid, 'action' => 'editsubmission'); $beginbutton = new \action_link( new moodle_url('/mod/assign/view.php', $urlparams), get_string('beginassignment', 'assign'), $confirmation, ['class' => 'btn btn-primary'] ); $data['edit']['button'] = $beginbutton->export_for_template($output); $data['edit']['begin'] = true; $data['edit']['help'] = ''; } else { $newattemptbutton = new single_button( $url, get_string('addsubmission', 'mod_assign'), 'get', single_button::BUTTON_PRIMARY ); $data['edit']['button'] = $newattemptbutton->export_for_template($output); $data['edit']['help'] = ''; } } } if ($this->showsubmit) { $url = new moodle_url('/mod/assign/view.php', ['id' => $this->cmid, 'action' => 'submit']); $button = new single_button($url, get_string('submitassignment', 'mod_assign'), 'get', single_button::BUTTON_PRIMARY); $help = new help_icon('submitassignment', 'mod_assign'); $data['submit'] = [ 'button' => $button->export_for_template($output), 'help' => $help->export_for_template($output) ]; } return $data; } }