diff --git a/admin/js/dates.js b/admin/js/dates.js index c2d93362308045c4174895362818cdc62d6ca9af..b472acfe62704d1b2747b086b376b45d58482ad7 100644 --- a/admin/js/dates.js +++ b/admin/js/dates.js @@ -730,26 +730,15 @@ $(document).ready(function () { complete: function () { $("#loader").hide(); // generate e-mail - const email = $dp_mail; - const subject = "Moodle-Prüfungsbackup #" + exam_nr; - const emailBody = - "Hallo zusammen%0D%0A%0D%0ADas Backup der Prüfung «" + - exam + - "» (Doz.: " + - lecturer_name + - ") vom " + - date + - " ist gemacht und auf dem Share abgelegt.%0D%0ADateiname: " + - filename + - "%0D%0A%0D%0A-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --%0D%0APfad zur Ablage der Backups:%0D%0AWindows: \\\\d\\Groups\\ETH\\Stab\\let-exam-bkp%0D%0AMac: smb://nas22.ethz.ch/ethstab_let_2%0D%0A-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --%0D%0A%0D%0AGruss " + - user_prename; - document.location = - "mailto:" + email + "?subject=" + subject + "&body=" + emailBody; - - let $archive = confirm(lang.archive_exam); - if ($archive) { - $("#t_a_" + id).trigger("click"); - } + $.generateMail( + id, + exam_nr, + exam, + lecturer_name, + date, + filename, + user_prename + ); }, error: function (error) { if (error.errorcode) { @@ -761,6 +750,67 @@ $(document).ready(function () { }); e.preventDefault(); //STOP default action }); + + $(".mail_icon").off(); + $(".mail_icon").click(function (e) { + let id = $(this).attr("name"); + let obj = JSON.parse($(this).attr("data-href").replace(/'/g, '"')); + + let exam_nr = obj.exam_nr; + let lecturer_name = $("#lecturer_" + id + " .lastname").text(); + let lecturer_name_us = lecturer_name.replace(/ /g, "_"); + let exam = $("#exam_" + id).text(); + let date = $("#date_" + id).text(); + let date_reverse = date.split(".").reverse().join("."); + date_reverse = date_reverse.split(".").join(""); + let user_info = $("#user_info").attr("title"); + let user_prename = user_info.substring(0, user_info.indexOf(" ")); + let user_name = user_info.substring( + user_info.indexOf(" ") + 1, + user_info.length + ); + let user_init = user_prename.substr(0, 1) + user_name.substr(0, 1); + let filename = + date_reverse + "_" + lecturer_name_us + "_Backup_" + user_init + ".mbz"; + + // generate e-mail + $.generateMail( + id, + exam_nr, + exam, + lecturer_name, + date, + filename, + user_prename + ); + e.preventDefault(); //STOP default action + }); + }; +})(jQuery); + +(function ($) { + $.generateMail = function (id, exam_nr, exam, lecturer_name, date, filename, user_prename) { + const email = $dp_mail; + const subject = "Moodle-Prüfungsbackup #" + exam_nr; + const emailBody = + "Hallo zusammen%0D%0A%0D%0ADas Backup der Prüfung «" + + exam + + "» (Doz.: " + + lecturer_name + + ") vom " + + date + + " ist gemacht und auf dem Share abgelegt.%0D%0ADateiname: " + + filename + + "%0D%0A%0D%0A-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --%0D%0APfad zur Ablage der Backups:%0D%0AWindows: \\\\d\\Groups\\ETH\\Stab\\let-exam-bkp%0D%0AMac: smb://nas22.ethz.ch/ethstab_let_2%0D%0A-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --%0D%0A%0D%0AGruss " + + user_prename; + document.location = + "mailto:" + email + "?subject=" + subject + "&body=" + emailBody; + + // archive exam + let $archive = confirm(lang.archive_exam); + if ($archive) { + $("#t_a_" + id).trigger("click"); + } }; })(jQuery); diff --git a/admin/mod/get_date_list.php b/admin/mod/get_date_list.php index 24a26d6c0de1d4182c4a8aa858cb4e8d28434db9..4d3c85a104515b0a243e8d9bf290f4e4bbc4344c 100644 --- a/admin/mod/get_date_list.php +++ b/admin/mod/get_date_list.php @@ -16,7 +16,7 @@ if ($_SESSION['loggedin']) { $limit = htmlspecialchars($_POST["limit"]); $start = htmlspecialchars($_POST["start"]); - // Validate parameters + // validate parameters if (!is_numeric($limit)) { $limit = 20; } @@ -24,7 +24,7 @@ if ($_SESSION['loggedin']) { $start = 0; } - // Include language file + // include language file if (isset($_SESSION['lang'])) { $lang = $_SESSION['lang']; } else { @@ -100,6 +100,13 @@ function getData($mode, $start, $form, $qry) global $examNameID; global $peopleID; + // get moodle backup preference + $pref_qry = $SELECT_pref . " WHERE pref_name = 'moodle_backup'"; + $res = pg_query($con, $pref_qry); + $row = pg_fetch_assoc($res); + $moodle_backup = $row['pref_value']; + $response_array['moodle_backup'] = $moodle_backup; + switch ($mode) { case "exam_list": $res = pg_query($con, $qry); @@ -205,7 +212,11 @@ function getData($mode, $start, $form, $qry) $content = $content . "<i id=\"t_a_" . $id . "\" class=\"icon fa fa-archive fa-fw archive_exam_icon\" title=\"" . _ARCHIVE . "\" aria-label=\"" . _ARCHIVE . "\" name=\"" . $id . "\"></i>"; $content = $content . "<i class=\"icon fa fa-trash fa-fw delete_date_icon\" title=\"" . _DELETE . "\" aria-label=\"" . _DELETE . "\" name=\"" . $id . "\"></i>"; if ($courseID) { - $content = $content . "<i id=\"backup_" . $id . "\" class=\"icon fa fa-file-archive-o fa-fw backup_icon\" title=\"" . _BACKUP . "\" aria-label=\"" . _BACKUP . "\" name=\"" . $id . "\" data-href=\"{'moodle_id':" . $courseID . ", 'exam_nr':'" . $examNumber . "'}\"></i></td></tr>"; + if ($moodle_backup == "true") { + $content = $content . "<i id=\"backup_" . $id . "\" class=\"icon fa fa-file-archive-o fa-fw backup_icon\" title=\"" . _BACKUP . "\" aria-label=\"" . _BACKUP . "\" name=\"" . $id . "\" data-href=\"{'moodle_id':" . $courseID . ", 'exam_nr':'" . $examNumber . "'}\"></i></td></tr>"; + } else { + $content = $content . "<i id=\"mail_" . $id . "\" class=\"icon fa fa-envelope fa-fw mail_icon\" title=\"" . _BACKUP . " (" . _EMAIL . ")\" aria-label=\"" . _BACKUP . " (" . _EMAIL . ")\" name=\"" . $id . "\" data-href=\"{'moodle_id':" . $courseID . ", 'exam_nr':'" . $examNumber . "'}\"></i></td></tr>"; + } } }