From 6db2748163859b93c032ca003b3953e6ec2e28ad Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 24 Nov 2021 17:47:01 +0100 Subject: [PATCH] Added Zeitwunsch Edit lock of if LV had already been assigned - Message is shown and form buttons for changing / copying Zeitwunsch are disabled if LV had already been assigned to lector. - Lector can unlock by clicking on link. --- cis/private/profile/zeitwunsch.php | 81 ++++++++++++++++++++++++++---- 1 file changed, 72 insertions(+), 9 deletions(-) diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index 8f65bfbcb..c4def2671 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -35,6 +35,7 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/zeitaufzeichnung_gd.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); +require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/sprache.class.php'); @@ -80,6 +81,9 @@ if(!$person->load($uid)) $ma = new mitarbeiter($uid); $fixangestellt = $ma->fixangestellt; +// Check, ob Lektor bereits zugewiesene LVs hat +$isAssignedToLv = checkIsAssigendToLV($uid, $selected_ss); // boolean + // Erklärung zu Pausen bei geteilten Arbeitszeiten speichern if (isset($_GET['selbstverwaltete-pause-akt']) && !empty($_GET['submit-akt'])) { @@ -261,6 +265,10 @@ if (isset($_GET['type']) && $_GET['type'] == 'save') } } } + + // Wenn speichern möglich ist, dann hat der Lektor entweder keine LVs zugeteilt oder hat aktiv die Bearbeitungssperre + // deaktiviert. Bearbeitungssperre wird gesetzt, wenn isAssignedToLv true ist. Deshalb hier mit false überschreiben. + $isAssignedToLv = false; } /** @@ -328,6 +336,23 @@ function updateZWG($uid, $zwg_id, $bis) return; } +/** + * Check, ob Lektor bereits zugewiesene LVs hat + * @param $uid + * @param $studiensemester_kurzbz + * @return bool|void + */ +function checkIsAssigendToLV($uid, $studiensemester_kurzbz) +{ + $lv = new Lehrveranstaltung(); + if (!$lv->getLVByMitarbeiter($uid, $studiensemester_kurzbz)) + { + die($lv->errormsg); + } + + return empty($lv->lehrveranstaltungen) ? false : true; +} + ?> @@ -365,6 +390,22 @@ function updateZWG($uid, $zwg_id, $bis) } $(function() { + // Bearbeitung deaktivieren, wenn Lektor zugewiesene LV im Studiensemester hat + const isAssignedToLv = $('input[name=isAssigendToLv]').val(); + if (isAssignedToLv == 'true') + { + $('input[name=radioZWG]').attr("disabled", true); + $('input[name=submit]').attr("disabled", true); + } + + // Bearbeitung aktivieren, wenn Lektor Aktivierungslink klickt + $('#bearbeitung-aktivieren').click(function(){ + $('input[name=radioZWG]').attr("disabled", false); + $('input[name=submit]').attr("disabled", false); + + $('#divChangeZWG').removeClass('hidden'); + $('#divIsAssignedToLv').addClass('hidden'); + }); // Bei Wechsel von Studiensemester die Seite mit GET params neu laden $('#stsem').change(function(){ @@ -488,6 +529,7 @@ function updateZWG($uid, $zwg_id, $bis) // FORM Begin echo '
'; echo ''; + echo ''; // Mein Zeitwunsch-Semesterplan Dropdown, Default = naechstes Studiensemester $next_ss_selected = $next_ss->studiensemester_kurzbz == $selected_ss ? 'selected' : ''; @@ -537,7 +579,8 @@ function updateZWG($uid, $zwg_id, $bis) echo '
'; echo '
'; echo 'Sie können Ihren Zeitwunsch direkt in der Tabelle bearbeiten oder einen Zeitwunsch eines vergangenen Studiensemester kopieren.
- Solange Sie keine Änderungen vornehmen, wird Ihr Zeitwunsch immer ins nächste Studiensemester übernommen.


'; + Solange Sie keine Änderungen vornehmen, wird Ihr Zeitwunsch immer ins nächste Studiensemester übernommen.
'; + echo '
'; // Radiobuttons aendern / kopieren $radioChangeChecked = is_null($selected_past_ss) ? 'checked' : ''; @@ -549,8 +592,12 @@ function updateZWG($uid, $zwg_id, $bis) echo ' ändern'; echo ''; echo ''; + if ($isAssignedToLv) + { + echo 'LV bereits zugeteilt'; + } echo '
'; echo '
'; // end col-xs-12 @@ -558,10 +605,11 @@ function updateZWG($uid, $zwg_id, $bis) echo '
'; - $divChangeHidden = !is_null($selected_past_ss) ? 'hidden' : ''; - $divCopyHidden = is_null($selected_past_ss) ? 'hidden' : ''; + $divChangeHidden = !is_null($selected_past_ss) || $isAssignedToLv ? 'hidden' : ''; + $divCopyHidden = is_null($selected_past_ss) || $isAssignedToLv ? 'hidden' : ''; + $divIsAssignedToLVHidden = $isAssignedToLv ? '' : 'hidden'; - echo '
'; + echo '
'; echo '
'; echo '' . $p->t('zeitwunsch/tragenSieInDiesesNormwochenraster') .' Klicken Sie danach auf \'Speichern\''; echo '
'; // end col @@ -571,10 +619,10 @@ function updateZWG($uid, $zwg_id, $bis) echo '
'; // end divChangeZWG echo '
'; - echo '
'; - echo 'Wählen Sie das gewünschte Studiensemester aus dem rechten Dropdown aus. + echo '
'; + echo 'Wählen Sie rechts das gewünschte Studiensemester aus. Der Zeitwunsch wird dann automatisch in die Tabelle übernommen.
- Nehmen Sie gegebenenfalls Änderungen vor und klicken Sie dann auf \'Speichern\'.
'; + Nehmen Sie gegebenenfalls Änderungen vor und klicken danach auf \'Speichern\'.'; echo '
'; // end col $studiensemester = new Studiensemester(); @@ -584,7 +632,7 @@ function updateZWG($uid, $zwg_id, $bis) $zwg = new Zeitwunsch_gueltigkeit(); $zwg->getByUID($uid, 4, true, $studiensemester->ende); $past_zwg_arr = $zwg->result; - echo '
'; + echo '
'; echo '';