diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php index 4fc0a879b..2df69bf56 100644 --- a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php +++ b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php @@ -50,7 +50,8 @@ class LehrauftragAkzeptieren extends Auth_Controller array( 'global', 'ui', - 'lehre' + 'lehre', + 'password' ) ); diff --git a/application/helpers/hlp_header_helper.php b/application/helpers/hlp_header_helper.php index 1a0d9dc49..8939b4d38 100644 --- a/application/helpers/hlp_header_helper.php +++ b/application/helpers/hlp_header_helper.php @@ -69,6 +69,8 @@ function generateCSSsInclude($CSSs) */ function generateJSDataStorageObject($indexPage, $calledPath, $calledMethod) { + $user_language = getUserLanguage(); + $toPrint = "\n"; $toPrint .= ''; diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index 170796c10..1135f1cca 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -15,7 +15,37 @@ $this->load->view( 'dialoglib' => true, 'tablewidget' => true, 'phrases' => array( - 'global' => array('lehrauftraegeAnnehmen'), + 'global' => array( + 'lehrauftraegeAnnehmen' + ), + 'ui' => array( + 'anzeigen', + 'alleAnzeigen', + 'nurBestellteAnzeigen', + 'nurErteilteAnzeigen', + 'nurAngenommeneAnzeigen', + 'nurStornierteAnzeigen', + 'hilfeZuDieserSeite', + 'alleAuswaehlen', + 'alleAbwaehlen', + 'ausgewaehlteZeilen', + 'hilfe', + 'tabelleneinstellungen', + 'keineDatenVorhanden', + 'spaltenEinstellen', + 'bestelltVon', + 'erteiltVon', + 'angenommenVon', + 'storniertVon', + 'lehrauftragInBearbeitung', + 'wartetAufErteilung', + 'wartetAufErneuteErteilung', + 'letzterStatusBestellt', + 'letzterStatusErteilt', + 'letzterStatusAngenommen', + 'vertragWurdeStorniert', + ), + 'password' => array('password') ), 'customJSs' => array( 'public/js/bootstrapper.js', @@ -33,7 +63,7 @@ $this->load->view(
@@ -104,7 +99,7 @@ $this->load->view( ); ?>
- + @@ -123,18 +118,21 @@ $this->load->view( @@ -156,9 +154,9 @@ $this->load->view(
- + - +
@@ -191,3 +189,97 @@ $this->load->view( load->view('templates/FHC-Footer'); ?> + +Wie nehme ich Lehraufträge an? +
+ Sobald Ihnen ein oder mehrere Lehraufträge erteilt wurden, können Sie diese annehmen. +
    +
  1. Klicken Sie unten auf das Status-Icon 'Nur erteilte anzeigen' oder 'Alle anzeigen'
  2. +
  3. Wählen Sie die Lehraufträge, die Sie annehmen möchten, selbst oder alle über den Button 'Alle auswählen'.
  4. +
  5. Geben Sie Ihr CIS-Passwort ein und klicken auf Lehrauftrag annehmen.
  6. +
+
+
+ +

Warum kann ich manche Lehraufträge nicht auswählen?

+
+ Nur Lehraufträge mit dem Status 'erteilt' können gewählt werden.
+ Angenommene Lehraufträge oder Lehraufträge in Bearbeitung werden nur zu Ihrer Information angezeigt. +
+
+ +

Filter

+
+
+ + + + + + + + + + + + + +
Alle
Alle Lehraufträge mit jedem Status
Bestellt
Nur bestellte UND bestellte Lehraufträge, die in Bearbeitung sind
Erteilt
Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind
Angenommen
Nur von Ihnen angenommene Lehraufträge
+
+
+
+EOT; + } + elseif ($user_language == 'English') + { + $html = << How do I accept teaching lectureships? +
+ As soon as a teaching lectureship has been approved (status = approved), you can accept it. +
    +
  1. Click on the status icon 'Show only approved’ or 'Show all' below
  2. +
  3. Select the teaching assignments you would like to accept either by selecting them individually or by using the 'Select all' button.
  4. +
  5. Enter your CIS password and click on ‘Accept lectureships’.
  6. +
+

+ +

Why can't I select some teaching lectureships?

+
+ Only approved teaching lectureships are selectable. (status MUST be approved)
+

+ +

Filtering teaching lectureships by status

+
+
+ + + + + + + + + + + + + +
All
All teaching lectureships (any status)
Ordered
Only ordered teaching lectureships
Approved
Only approved teaching lectureships
Accepted
Only accepted lectureships
+
+

+EOT; + } + + return $html; +} + +?> diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index 4fe41a8a4..f09eb62a0 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -297,33 +297,34 @@ $filterWidgetArray = array( 'tableUniqueId' => 'acceptLehrauftrag', 'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren', 'datasetRepresentation' => 'tabulator', - 'columnsAliases' => array( // TODO: use phrasen + 'columnsAliases' => array( 'Status', // alias for row_index, because row_index is formatted to display the status icons - 'LV- / Projektbezeichnung', - 'Studiengang', - 'Gruppe', - 'Typ', - 'LV-Teil', - 'LV-ID', - 'PA-ID', - 'Studiensemester', - 'Studiengang-KZ', + ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '. + ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')), + ucfirst($this->p->t('lehre', 'studiengang')), + ucfirst($this->p->t('lehre', 'gruppe')), + ucfirst($this->p->t('global', 'typ')), + ucfirst($this->p->t('lehre', 'lehreinheit')), + ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID', + ucfirst($this->p->t('ui', 'projektarbeit')). '-ID', + ucfirst($this->p->t('lehre', 'studiensemester')), + ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')), 'Semester', - 'OrgForm', + ucfirst($this->p->t('lehre', 'organisationsform')), 'Person-ID', - 'Organisationseinheit', - 'Stunden', - 'Betrag', - 'Vertrag-ID', - 'Vertrag-Stunden', - 'Vertrag-Betrag', + ucfirst($this->p->t('lehre', 'organisationseinheit')), + ucfirst($this->p->t('ui', 'stunden')), + ucfirst($this->p->t('ui', 'betrag')), + ucfirst($this->p->t('ui', 'vertrag')). '-ID', + ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')), + ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')), 'UID', - 'Bestellt', - 'Erteilt', - 'Angenommen', - 'Bestellt von', - 'Erteilt von', - 'Angenommen von' + ucfirst($this->p->t('ui', 'bestellt')), + ucfirst($this->p->t('ui', 'erteilt')), + ucfirst($this->p->t('ui', 'angenommen')), + ucfirst($this->p->t('ui', 'bestelltVon')), + ucfirst($this->p->t('ui', 'erteiltVon')), + ucfirst($this->p->t('ui', 'angenommenVon')) ), 'datasetRepOptions' => '{ height: func_height(this), @@ -360,7 +361,7 @@ $filterWidgetArray = array( row_index: {visible:false}, // necessary for row indexing auftrag: { headerFilter:"input", widthGrow: 3, - bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();} + bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();} }, stg_typ_kurzbz: {headerFilter:"input"}, gruppe: {headerFilter:"input"}, diff --git a/application/views/lehre/lehrauftrag/approveLehrauftrag.php b/application/views/lehre/lehrauftrag/approveLehrauftrag.php index ed1852654..0e45420bf 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftrag.php @@ -17,6 +17,35 @@ $this->load->view( 'navigationwidget' => true, 'phrases' => array( 'global' => array('lehrauftraegeErteilen'), + 'ui' => array( + 'anzeigen', + 'alleAnzeigen', + 'nurNeueAnzeigen', + 'nurBestellteAnzeigen', + 'nurErteilteAnzeigen', + 'nurAngenommeneAnzeigen', + 'nurGeaenderteAnzeigen', + 'nurDummiesAnzeigen', + 'hilfeZuDieserSeite', + 'alleAuswaehlen', + 'alleAbwaehlen', + 'ausgewaehlteZeilen', + 'hilfe', + 'tabelleneinstellungen', + 'keineDatenVorhanden', + 'spaltenEinstellen', + 'bestelltVon', + 'erteiltVon', + 'angenommenVon', + 'stundenStundensatzGeaendert', + 'neuerLehrauftragOhneLektorVerplant', + 'wartetAufBestellung', + 'wartetAufErneuteBestellung', + 'neuerLehrauftragWartetAufBestellung', + 'letzterStatusBestellt', + 'letzterStatusErteilt', + 'letzterStatusAngenommen', + ) ), 'customJSs' => array( 'public/js/bootstrapper.js', @@ -36,7 +65,7 @@ $this->load->view(
- +
@@ -191,20 +146,20 @@ $this->load->view(
- +
@@ -216,3 +171,127 @@ $this->load->view( load->view('templates/FHC-Footer'); ?> + +Lehrauftrag Standard-Bestellprozess +
+ + + + + + + + + + + + + + + +
BESTELLEN
(Studiengangsleitung)
ERTEILEN
(Department-/Kompetenzfeldleitung)
ANNEHMEN
(LektorIn)
+
+
+ +

Lehraufträge erteilen

+
+ Sobald Lehraufträge bestellt wurden, können Sie diese hier erteilen.
+ Erteilte Lehraufträge können von den Lehrenden angenommen werden.
+
    +
  1. Klicken Sie unten auf das Status-Icon 'Nur bestellte anzeigen' oder 'Alle anzeigen'
  2. +
  3. Wählen Sie die zu erteilenden Lehraufträge selbst oder alle über den Button 'Alle auswählen'.
  4. +
  5. Klicken Sie auf Lehrauftrag erteilen.
  6. +
+
+
+ +

Geänderte Lehraufträge

+
+ Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.
+ Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, müssen diese vom Studiengang erneut bestellt werden.
+ Bei bereits erteilten Lehraufträgen wird zusätzlich der Status 'erteilt' zurückgesetzt. +
+
+ +

Warum kann ich manche Lehraufträge nicht auswählen?

+
+ Nur Lehraufträge mit dem Status 'bestellt' können gewählt werden.
+ Neue, Bestellte, Akzeptierte oder geänderte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar. +
+
+ +

Filter

+
+ + + + + + + + + + + + + + + + + + + + +
Alle
Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge
Neu
Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind
Bestellt
Nur bestellte UND geänderte bestellte Lehraufträge
Erteilt
Nur erteilte UND geänderte erteilte Lehraufträge
Angenommen
Nur vom Lehrenden angenommene Lehraufträge
Geändert
Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind
Dummies
Nur Lehraufträge, die mit einem Dummylektor angelegt sind
+
+
+ +

Mehr Hilfe?

+
+ Weitere Informationen unter FH Complete WIKI +

+EOT; + } + elseif ($user_language == 'English') + { + $html = <<Standard Ordering Process for Teaching Lectureships +
+ + + + + + + + + + + + + + + +
ORDER
(Study course Director)
APPROVEMENT
(Department- / Competence field Manager)
ACCEPTANCE
(Lecturer)
+
+
+ +

Need more Help?

+
+ For further information please go to FH Complete WIKI +

+EOT; + } + return $html; +} + +?> diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index b359defaa..88b3eabd0 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -305,36 +305,37 @@ $filterWidgetArray = array( 'tableUniqueId' => 'approveLehrauftrag', 'requiredPermissions' => 'lehre/lehrauftrag_erteilen', 'datasetRepresentation' => 'tabulator', - 'columnsAliases' => array( // TODO: use phrasen + 'columnsAliases' => array( 'Status', // alias for row_index, because row_index is formatted to display the status icons - 'Personalnummer', - 'LV- / Projektbezeichnung', - 'Studiengang', - 'Gruppe', - 'Typ', - 'LV-Teil', - 'LV-ID', - 'LV', - 'PA-ID', - 'Studiensemester', - 'Studiengang-KZ', - 'Semester', - 'OrgForm', - 'Person-ID', - 'Organisationseinheit', - 'Lektor', - 'Stunden', - 'Betrag', - 'Vertrag-ID', - 'Vertrag-Stunden', - 'Vertrag-Betrag', - 'UID', - 'Bestellt', - 'Erteilt', - 'Angenommen', - 'Bestellt von', - 'Erteilt von', - 'Angenommen von' + ucfirst($this->p->t('global', 'personalnummer')), + ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '. + ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')), + ucfirst($this->p->t('lehre', 'studiengang')), + ucfirst($this->p->t('lehre', 'gruppe')), + ucfirst($this->p->t('global', 'typ')), + ucfirst($this->p->t('lehre', 'lehreinheit')), + ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID', + ucfirst($this->p->t('lehre', 'lehrveranstaltung')), + ucfirst($this->p->t('ui', 'projektarbeit')). '-ID', + ucfirst($this->p->t('lehre', 'studiensemester')), + ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')), + 'Semester', + ucfirst($this->p->t('lehre', 'organisationsform')), + 'Person-ID', + ucfirst($this->p->t('lehre', 'organisationseinheit')), + ucfirst($this->p->t('lehre', 'lektor')), + ucfirst($this->p->t('ui', 'stunden')), + ucfirst($this->p->t('ui', 'betrag')), + ucfirst($this->p->t('ui', 'vertrag')). '-ID', + ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')), + ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')), + 'UID', + ucfirst($this->p->t('ui', 'bestellt')), + ucfirst($this->p->t('ui', 'erteilt')), + ucfirst($this->p->t('ui', 'angenommen')), + ucfirst($this->p->t('ui', 'bestelltVon')), + ucfirst($this->p->t('ui', 'erteiltVon')), + ucfirst($this->p->t('ui', 'angenommenVon')) ), 'datasetRepOptions' => '{ height: func_height(this), @@ -379,7 +380,7 @@ $filterWidgetArray = array( personalnummer: {visible: false, headerFilter:"input"}, auftrag: { headerFilter:"input", widthGrow: 2, - bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();} + bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();} }, stg_typ_kurzbz: {headerFilter:"input"}, gruppe: {headerFilter:"input"}, diff --git a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php index e167941d7..54948fb26 100644 --- a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php @@ -53,14 +53,15 @@ $tableWidgetArray = array( 'tableUniqueId' => 'cancelledLehrauftrag', 'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren', 'datasetRepresentation' => 'tabulator', - 'columnsAliases' => array( // TODO: use phrasen + 'columnsAliases' => array( 'Status', - 'Studiensemester', - 'Typ', - 'LV- / Projektbezeichnung', - 'Stunden', - 'Betrag', - 'Storniert am' + ucfirst($this->p->t('lehre', 'studiensemester')), + ucfirst($this->p->t('global', 'typ')), + ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '. ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')), + ucfirst($this->p->t('ui', 'stunden')), + ucfirst($this->p->t('ui', 'betrag')), + ucfirst($this->p->t('ui', 'storniertAm')), + ucfirst($this->p->t('ui', 'storniertVon')) ), 'datasetRepOptions' => '{ rowFormatter:function(row){ diff --git a/application/views/lehre/lehrauftrag/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php index 1e79bee0d..628e068c8 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftrag.php @@ -1,5 +1,4 @@ load->view( 'templates/FHC-Header', array( @@ -18,6 +17,34 @@ $this->load->view( 'navigationwidget' => true, 'phrases' => array( 'global' => array('lehrauftraegeBestellen'), + 'ui' => array( + 'anzeigen', + 'alleAnzeigen', + 'nurNeueAnzeigen', + 'nurBestellteAnzeigen', + 'nurErteilteAnzeigen', + 'nurAngenommeneAnzeigen', + 'nurGeaenderteAnzeigen', + 'nurDummiesAnzeigen', + 'hilfeZuDieserSeite', + 'alleAuswaehlen', + 'alleAbwaehlen', + 'ausgewaehlteZeilen', + 'hilfe', + 'tabelleneinstellungen', + 'keineDatenVorhanden', + 'spaltenEinstellen', + 'bestelltVon', + 'erteiltVon', + 'angenommenVon', + 'neuerLehrauftragOhneLektorVerplant', + 'neuerLehrauftragWartetAufBestellung', + 'letzterStatusBestellt', + 'letzterStatusErteilt', + 'letzterStatusAngenommen', + 'nachAenderungStundensatzStunden', + 'vorAenderungStundensatzStunden' + ) ), 'customJSs' => array( 'public/js/bootstrapper.js', @@ -36,7 +63,7 @@ $this->load->view(
- +
@@ -187,20 +139,20 @@ $this->load->view(
- +
@@ -212,3 +164,129 @@ $this->load->view( load->view('templates/FHC-Footer'); ?> + +Lehrauftrag Standard-Bestellprozess +
+ + + + + + + + + + + + + + + +
BESTELLEN
(Studiengangsleitung)
ERTEILEN
(Department-/Kompetenzfeldleitung)
ANNEHMEN
(LektorIn)
+
+
+ +

Lehraufträge bestellen

+
+ Sobald im FAS ein Lehrauftrag/eine Projektbetreuung angelegt wurde, können Sie diese hier bestellen.
+ Bestellte Lehraufträge sind zur Erteilung freigegeben.
+
    +
  1. Klicken Sie unten auf das Status-Icon 'Nur neue anzeigen', 'Nur geänderte anzeigen' oder 'Alle anzeigen'
  2. +
  3. Wählen Sie die zu bestellenden Lehraufträge selbst oder über den Button 'Alle auswählen'.
  4. +
  5. Klicken Sie auf Lehrauftrag bestellen.
  6. +
+ Für jeden bestellten Lehrauftrag legt das System einen Vertrag an. +
+
+ +

Geänderte Lehraufträge

+
+ Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.
+ Diese müssen dann erneut bestellt werden.

+ Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, werden diese in einem tooltip angezeigt.
+ Fahren Sie dazu mit der Maus über dem Status-Icon am Beginn der Zeile.
+
+
+ +

Warum kann ich manche Lehraufträge nicht auswählen?

+
+ Nur Lehraufträge mit dem Status 'neu' und 'geändert' können bestellt werden.
+ Erteilte oder akzeptierte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar. +
+
+ +

Filter

+
+ + + + + + + + + + + + + + + + + + + + +
Alle
Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge
Neu
Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind
Bestellt
Nur bestellte UND geänderte bestellte Lehraufträge
Erteilt
Nur erteilte UND geänderte erteilte Lehraufträge
Angenommen
Nur vom Lehrenden angenommene Lehraufträge
Geändert
Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind
Dummies
Nur Lehraufträge, die mit einem Dummylektor angelegt sind
+
+
+ +

Mehr Hilfe?

+
+ Weitere Informationen unter FH Complete WIKI +

+EOT; + } + elseif ($user_language == 'English') + { + $html = <<Standard Ordering Process for Teaching Lectureships +
+ + + + + + + + + + + + + + + +
ORDER
(Study course Director)
APPROVEMENT
(Department- / Competence field Manager)
ACCEPTANCE
(Lecturer)
+
+
+ +

Need more Help?

+
+ For further information please go to FH Complete WIKI +

+EOT; + } + return $html; +} + +?> \ No newline at end of file diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index 4a857b4b5..aea7d5181 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -337,39 +337,39 @@ $filterWidgetArray = array( 'tableUniqueId' => 'orderLehrauftrag', 'requiredPermissions' => 'lehre/lehrauftrag_bestellen', 'datasetRepresentation' => 'tabulator', - 'columnsAliases' => array( // TODO: use phrasen + 'columnsAliases' => array( 'Status', // alias for row_index, because row_index is formatted to display the status icons - 'Personalnummer', - 'LV- / Projektbezeichnung', - 'Studiengang', - 'Gruppe', - 'Typ', - 'LV-Teil', - 'LV-ID', - 'LV', - 'PA-ID', - 'Studiensemester', - 'Studiengang-KZ', - + ucfirst($this->p->t('global', 'personalnummer')), + ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '. + ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')), + ucfirst($this->p->t('lehre', 'studiengang')), + ucfirst($this->p->t('lehre', 'gruppe')), + ucfirst($this->p->t('global', 'typ')), + ucfirst($this->p->t('lehre', 'lehreinheit')), + ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID', + ucfirst($this->p->t('lehre', 'lehrveranstaltung')), + ucfirst($this->p->t('ui', 'projektarbeit')). '-ID', + ucfirst($this->p->t('lehre', 'studiensemester')), + ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')), 'Semester', - 'Studienplan', - 'OrgForm', + ucfirst($this->p->t('lehre', 'studienplan')), + ucfirst($this->p->t('lehre', 'organisationsform')), 'Person-ID', - 'Organisationseinheit', - 'Lektor', - 'Stunden', - 'Stundensatz', - 'Betrag', - 'Vertrag-ID', - 'Vertrag-Stunden', - 'Vertrag-Betrag', + ucfirst($this->p->t('lehre', 'organisationseinheit')), + ucfirst($this->p->t('lehre', 'lektor')), + ucfirst($this->p->t('ui', 'stunden')), + ucfirst($this->p->t('ui', 'stundensatz')), + ucfirst($this->p->t('ui', 'betrag')), + ucfirst($this->p->t('ui', 'vertrag')). '-ID', + ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')), + ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')), 'UID', - 'Bestellt', - 'Erteilt', - 'Angenommen', - 'Bestellt von', - 'Erteilt von', - 'Angenommen von' + ucfirst($this->p->t('ui', 'bestellt')), + ucfirst($this->p->t('ui', 'erteilt')), + ucfirst($this->p->t('ui', 'angenommen')), + ucfirst($this->p->t('ui', 'bestelltVon')), + ucfirst($this->p->t('ui', 'erteiltVon')), + ucfirst($this->p->t('ui', 'angenommenVon')) ), 'datasetRepOptions' => '{ height: func_height(this), @@ -415,7 +415,7 @@ $filterWidgetArray = array( personalnummer: {visible: false, headerFilter:"input"}, auftrag: { headerFilter:"input", widthGrow: 2, - bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();} + bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();} }, stg_typ_kurzbz: {headerFilter:"input"}, gruppe: {headerFilter:"input"}, diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index eebe5265c..01dad24bb 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -563,7 +563,7 @@ var FHC_TableWidget = { tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML); // Render the collapsable div triggered by button in tableWidgetHeader - var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv); + var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv, FHC_JS_DATA_STORAGE_OBJECT.user_language); tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML); /** @@ -741,7 +741,7 @@ function _func_columnVisibilityChanged(column, visible){ * Displays text when table is empty */ function _func_placeholder(){ - return "

Keine Daten vorhanden.

"; + return '

' + FHC_PhrasesLib.t('ui', 'keineDatenVorhanden') + '

'; } // Returns TableWidget Header HTML (download-, setting button...) @@ -752,9 +752,23 @@ function _renderTabulatorHeaderHTML(tableWidgetDiv){ var tabulatorHeaderHTML = ''; tabulatorHeaderHTML += ''; tabulatorHeaderHTML += '


'; @@ -763,7 +777,7 @@ function _renderTabulatorHeaderHTML(tableWidgetDiv){ } // Returns collapsable HTML element for TableWidget header buttons -function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ +function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv, language){ var tableUniqueId = tableWidgetDiv.attr('tableUniqueId'); @@ -777,9 +791,12 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += ''; // end panel-heading tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; - tabulatorHeaderCollapseHTML += '

Tabelleneinstellungen

'; - tabulatorHeaderCollapseHTML += '
'; - tabulatorHeaderCollapseHTML += 'Spalten ein- und ausblenden'; - tabulatorHeaderCollapseHTML += '

'; - tabulatorHeaderCollapseHTML += '

    '; - tabulatorHeaderCollapseHTML += '
  • Mit einem Klick auf ' + - 'werden die Einstellungen geöffnet.
  • '; - tabulatorHeaderCollapseHTML += '
  • Auf Spalteneinstellungen klicken
  • '; - tabulatorHeaderCollapseHTML += '
  • Durch (wiederholtes) Klicken auf die einzelnen Spaltennamen können ' + - 'diese in der Tabelle beliebig oft aktiviert / deaktiviert werden.
  • '; - tabulatorHeaderCollapseHTML += '
  • Mit einem Klick auf ' + - 'werden die Einstellungen wieder geschlossen.
  • '; - tabulatorHeaderCollapseHTML += '
'; - tabulatorHeaderCollapseHTML += '

'; - tabulatorHeaderCollapseHTML += 'Spaltenbreite verändern'; - tabulatorHeaderCollapseHTML += '

Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam ' + - 'mit dem Mauszeiger auf den rechten Rand der entprechenden Spalte.
' + - 'Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und ' + - 'mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.'; - tabulatorHeaderCollapseHTML += '

'; - tabulatorHeaderCollapseHTML += '
INFO: Alle individuellen Tabelleneinstellungen werden in ' + - 'Ihrem Browser Cache gespeichert. Wenn Sie Ihren Browser Cache löschen, werden Ihre Einstellungen zurückgesetzt und ' + - 'müssen gegebenenfalls neu eingestellt werden.'; - tabulatorHeaderCollapseHTML += '
'; - tabulatorHeaderCollapseHTML += '

'; // end panel-body + if (language == 'German') + { + tabulatorHeaderCollapseHTML += '

Tabelleneinstellungen

'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += 'Spalten ein- und ausblenden'; + tabulatorHeaderCollapseHTML += '

'; + tabulatorHeaderCollapseHTML += '

    '; + tabulatorHeaderCollapseHTML += '
  • Mit einem Klick auf ' + + 'werden die Einstellungen geöffnet.
  • '; + tabulatorHeaderCollapseHTML += '
  • Auf Spalteneinstellungen klicken
  • '; + tabulatorHeaderCollapseHTML += '
  • Durch (wiederholtes) Klicken auf die einzelnen Spaltennamen können ' + + 'diese in der Tabelle beliebig oft aktiviert / deaktiviert werden.
  • '; + tabulatorHeaderCollapseHTML += '
  • Mit einem Klick auf ' + + 'werden die Einstellungen wieder geschlossen.
  • '; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '

'; + tabulatorHeaderCollapseHTML += 'Spaltenbreite verändern'; + tabulatorHeaderCollapseHTML += '

Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam ' + + 'mit dem Mauszeiger auf den rechten Rand der entprechenden Spalte.
' + + 'Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und ' + + 'mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.'; + tabulatorHeaderCollapseHTML += '

'; + tabulatorHeaderCollapseHTML += '
INFO: Alle individuellen Tabelleneinstellungen werden in ' + + 'Ihrem Browser Cache gespeichert. Wenn Sie Ihren Browser Cache löschen, werden Ihre Einstellungen zurückgesetzt und ' + + 'müssen gegebenenfalls neu eingestellt werden.'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '

'; // end panel-body - tabulatorHeaderCollapseHTML += '

Zeilen auswählen

'; - tabulatorHeaderCollapseHTML += '
'; - tabulatorHeaderCollapseHTML += '
    '; - tabulatorHeaderCollapseHTML += '
  • Einzeln auswählen: Strg + Klick auf einzelne Zeile(n)
  • '; - tabulatorHeaderCollapseHTML += '
  • Bereich auswählen: Shift + Klick auf Anfangs- und Endzeile
  • '; - tabulatorHeaderCollapseHTML += '
  • Alle auswählen: Button \'Alle auswählen\'
  • '; - tabulatorHeaderCollapseHTML += '
'; - tabulatorHeaderCollapseHTML += '

'; // end panel-body + tabulatorHeaderCollapseHTML += '

Zeilen auswählen

'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
    '; + tabulatorHeaderCollapseHTML += '
  • Einzeln auswählen: Strg + Klick auf einzelne Zeile(n)
  • '; + tabulatorHeaderCollapseHTML += '
  • Bereich auswählen: Shift + Klick auf Anfangs- und Endzeile
  • '; + tabulatorHeaderCollapseHTML += '
  • Alle auswählen: Button \'Alle auswählen\'
  • '; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '

'; // end panel-body + } + else if (language == 'English') + { + tabulatorHeaderCollapseHTML += '

Table settings

'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += 'Show and hide columns'; + tabulatorHeaderCollapseHTML += '

'; + tabulatorHeaderCollapseHTML += '

    '; + tabulatorHeaderCollapseHTML += '
  • With a click on the settings will open.
  • '; + tabulatorHeaderCollapseHTML += '
  • Click on column settings
  • '; + tabulatorHeaderCollapseHTML += '
  • By clicking on the individual column names the columns are shown / hidden in the table. Click again to gain the opposite state.
  • '; + tabulatorHeaderCollapseHTML += '
  • With a click on the settings will be closed again.
  • '; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '

'; + tabulatorHeaderCollapseHTML += 'Change column width'; + tabulatorHeaderCollapseHTML += '

To change the column width, slowly hover with the mouse pointer on the right edge of the corresponding column header.
' + + 'As soon as the mouse pointer changes into a double arrow, click the mouse button and ' + + 'keep it pressed while expanding the column width to the right or reducing the width to the left.'; + tabulatorHeaderCollapseHTML += '

'; + tabulatorHeaderCollapseHTML += '
INFO: ' + + 'All individual table settings are saved in your browser cache. If you clear your browser cache, ' + + 'your settings will be erased.'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '

'; + tabulatorHeaderCollapseHTML += '

Select rows

'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
    '; + tabulatorHeaderCollapseHTML += '
  • Select individually: Ctrl + click on single line (s)
  • '; + tabulatorHeaderCollapseHTML += '
  • Select a range: Shift + click on the start and end line
  • '; + tabulatorHeaderCollapseHTML += '
  • Select all: Button \'Select all \'
  • '; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '

'; + } tabulatorHeaderCollapseHTML += '
'; // end well tabulatorHeaderCollapseHTML += '
'; // end col collapse @@ -877,9 +929,18 @@ function _renderTabulatorFooterHTML(tableWidgetFooterOptions){ { tabulatorFooterHTML += ''; tabulatorFooterHTML += '

'; diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index 951d89f0a..a39fe3667 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -369,36 +369,35 @@ status_tooltip = function(cell){ letzterStatus_vorStorniert = 'angenommen'; } - var text = 'Lehrauftrag in Bearbeitung. '; + var text = FHC_PhrasesLib.t("ui", "lehrauftragInBearbeitung"); if (bestellt != null && erteilt == null && akzeptiert == null && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when never erteilt before) { - text += 'Wartet auf Erteilung.'; + text += FHC_PhrasesLib.t("ui", "wartetAufErteilung");; return text; } else if (bestellt != null && erteilt != null && akzeptiert == null && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when has been erteilt once) { - text += 'Wartet auf erneute Erteilung.'; + text += FHC_PhrasesLib.t("ui", "wartetAufErneuteErteilung"); return text; } else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt { - return 'Letzter Status: Bestellt. Wartet auf Erteilung.'; + return FHC_PhrasesLib.t("ui", "letzterStatusBestellt"); } else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt { - return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.'; + return FHC_PhrasesLib.t("ui", "letzterStatusErteilt"); } else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert { - return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.'; + return FHC_PhrasesLib.t("ui", "letzterStatusAngenommen"); } - else if (is_storniert) + else if (is_storniert) // storniert { - return 'Dieser Vertrag wurde storniert. Letzter Status vor Stornierung war: ' - + letzterStatus_vorStorniert; // storniert + return FHC_PhrasesLib.t("ui", "vertragWurdeStorniert"); } } @@ -406,28 +405,28 @@ status_tooltip = function(cell){ bestellt_tooltip = function(cell){ if (cell.getRow().getData().bestellt_von != null) { - return 'Bestellt von: ' + cell.getRow().getData().bestellt_von; + return FHC_PhrasesLib.t("ui", "bestelltVon") + cell.getRow().getData().bestellt_von; } } // Generates erteilt tooltip erteilt_tooltip = function(cell){ if (cell.getRow().getData().erteilt_von != null) { - return 'Erteilt von: ' + cell.getRow().getData().erteilt_von; + return FHC_PhrasesLib.t("ui", "erteiltVon") + cell.getRow().getData().erteilt_von; } } // Generates akzeptiert tooltip akzeptiert_tooltip = function(cell){ if (cell.getRow().getData().akzeptiert_von != null) { - return 'Angenommen von: ' + cell.getRow().getData().akzeptiert_von; + return FHC_PhrasesLib.t("ui", "angenommenVon") + cell.getRow().getData().akzeptiert_von; } } // Generates storniert tooltip storniert_tooltip = function(cell){ if (cell.getRow().getData().storniert_von != null) { - return 'Storniert von: ' + cell.getRow().getData().storniert_von; + return FHC_PhrasesLib.t("ui", "storniertVon") + cell.getRow().getData().storniert_von; } } diff --git a/public/js/lehre/lehrauftrag/approveLehrauftrag.js b/public/js/lehre/lehrauftrag/approveLehrauftrag.js index 3131bcfb3..cd8816c1e 100644 --- a/public/js/lehre/lehrauftrag/approveLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/approveLehrauftrag.js @@ -433,38 +433,38 @@ status_tooltip = function(cell){ vertrag_stunden = 0; } - var text = 'Lehrauftragstunden/-stundensatz geändert.'; + var text = FHC_PhrasesLib.t("ui", "stundenStundensatzGeaendert"); text += "\n"; if (is_dummy) // dummy (no lector) { - return 'Neuer Lehrauftrag. Ohne Lektor verplant.' + return FHC_PhrasesLib.t("ui", "neuerLehrauftragOhneLektorVerplant"); } else if ((bestellt != null && erteilt == null && betrag != vertrag_betrag) || (bestellt != null && erteilt == null && stunden != vertrag_stunden)) // geaendert (when never erteilt before) { - return text += 'Wartet auf Bestellung, danach Erteilen möglich.'; + return text += FHC_PhrasesLib.t("ui", "wartetAufBestellung"); } else if ((bestellt != null && erteilt != null && betrag != vertrag_betrag) || (bestellt != null && erteilt != null && stunden != vertrag_stunden)) // geaendert (when has been erteilt once) { - return text += 'Wartet auf neuerliche Bestellung, danach erneut Erteilen möglich.'; + return text += FHC_PhrasesLib.t("ui", "wartetAufErneuteBestellung"); } else if (bestellt == null) // neu { - return 'Neuer Lehrauftrag. Wartet auf Bestellung.'; + return FHC_PhrasesLib.t("ui", "neuerLehrauftragWartetAufBestellung"); } else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt { - return 'Letzter Status: Bestellt. Wartet auf Erteilung.'; + return FHC_PhrasesLib.t("ui", "letzterStatusBestellt"); } else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt { - return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.'; + return FHC_PhrasesLib.t("ui", "letzterStatusErteilt"); } else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert { - return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.'; + return FHC_PhrasesLib.t("ui", "letzterStatusAngenommen"); } } @@ -472,21 +472,21 @@ status_tooltip = function(cell){ bestellt_tooltip = function(cell){ if (cell.getRow().getData().bestellt_von != null) { - return 'Bestellt von: ' + cell.getRow().getData().bestellt_von; + return FHC_PhrasesLib.t("ui", "bestelltVon") + cell.getRow().getData().bestellt_von; } } // Generates erteilt tooltip erteilt_tooltip = function(cell){ if (cell.getRow().getData().erteilt_von != null) { - return 'Erteilt von: ' + cell.getRow().getData().erteilt_von; + return FHC_PhrasesLib.t("ui", "erteiltVon") + cell.getRow().getData().erteilt_von; } } // Generates akzeptiert tooltip akzeptiert_tooltip = function(cell){ if (cell.getRow().getData().akzeptiert_von != null) { - return 'Angenommen von: ' + cell.getRow().getData().akzeptiert_von; + return FHC_PhrasesLib.t("ui", "angenommenVon") + cell.getRow().getData().akzeptiert_von; } } $(function() { diff --git a/public/js/lehre/lehrauftrag/orderLehrauftrag.js b/public/js/lehre/lehrauftrag/orderLehrauftrag.js index 22d856d52..2cc793d0c 100644 --- a/public/js/lehre/lehrauftrag/orderLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/orderLehrauftrag.js @@ -36,11 +36,11 @@ var tableWidgetBlacklistArray_columnUnselectable = [ // Converts string date postgre style to string DD.MM.YYYY. // This will allow correct filtering. var mut_formatStringDate = function(value, data, type, params, component) { - if (value != null) - { - var d = new Date(value); - return ("0" + (d.getDate())).slice(-2) + "." + ("0" + (d.getMonth() + 1)).slice(-2) + "." + d.getFullYear(); - } + if (value != null) + { + var d = new Date(value); + return ("0" + (d.getDate())).slice(-2) + "." + ("0" + (d.getMonth() + 1)).slice(-2) + "." + d.getFullYear(); + } } // ----------------------------------------------------------------------------------------------------------------- @@ -49,16 +49,16 @@ var mut_formatStringDate = function(value, data, type, params, component) { // Formats null values to a string number '0.00' var form_formatNulltoStringNumber = function(cell, formatterParams){ - if (cell.getValue() == null){ - if (formatterParams.precision == 1) - { - return '0.0'; - } - return '0.00'; - } - else { - return cell.getValue(); - } + if (cell.getValue() == null){ + if (formatterParams.precision == 1) + { + return '0.0'; + } + return '0.00'; + } + else { + return cell.getValue(); + } } // ----------------------------------------------------------------------------------------------------------------- @@ -68,23 +68,23 @@ var form_formatNulltoStringNumber = function(cell, formatterParams){ // Filters values using comparison operator or just by string comparison function hf_filterStringnumberWithOperator(headerValue, rowValue, rowData){ - // If string starts with <, <=, >, >=, !=, ==, compare values with that operator - var operator = ''; - if (headerValue.match(/([<=>!]{1,2})/g)) { - var operator_arr = headerValue.match(/([<=>!]{1,2})/g); - operator = operator_arr[0]; + // If string starts with <, <=, >, >=, !=, ==, compare values with that operator + var operator = ''; + if (headerValue.match(/([<=>!]{1,2})/g)) { + var operator_arr = headerValue.match(/([<=>!]{1,2})/g); + operator = operator_arr[0]; - headerValue = headerValue - .replace(operator, '') - .trim() - ; + headerValue = headerValue + .replace(operator, '') + .trim() + ; - // return if value comparison is true - return eval(rowValue + operator + headerValue); - } + // return if value comparison is true + return eval(rowValue + operator + headerValue); + } - // If just a stringnumber, return if exact match found - return parseFloat(rowValue) == headerValue; + // If just a stringnumber, return if exact match found + return parseFloat(rowValue) == headerValue; } // ----------------------------------------------------------------------------------------------------------------- @@ -98,19 +98,20 @@ function hf_filterStringnumberWithOperator(headerValue, rowValue, rowData){ * The callback dataLoaded is processed after tableBuild and provides the status. */ function func_dataLoaded(data, table){ - table.setFilter([ - [ - {field: 'personalnummer', type: '>', value: 0}, // not dummy - {field: 'personalnummer', type: '=', value: null} // include projektbetreuer - ], - {field: 'mitarbeiter_uid', type: '!=', value: null}, // AND is Mitarbeiter - {field: 'stunden', type: '!=', value: null}, // AND has Semesterstunden (not null and not 0) - {field: 'stunden', type: '!=', value: 0}, - [ - {field: 'status', type: '=', value: 'Neu'}, // AND neu - {field: 'status', type: '=', value: 'Geändert'} // OR geaendert - ] - ]); + + table.setFilter([ + [ + {field: 'personalnummer', type: '>', value: 0}, // not dummy + {field: 'personalnummer', type: '=', value: null} // include projektbetreuer + ], + {field: 'mitarbeiter_uid', type: '!=', value: null}, // AND is Mitarbeiter + {field: 'stunden', type: '!=', value: null}, // AND has Semesterstunden (not null and not 0) + {field: 'stunden', type: '!=', value: 0}, + [ + {field: 'status', type: '=', value: 'Neu'}, // AND neu + {field: 'status', type: '=', value: 'Geändert'} // OR geaendert + ] + ]); } // ----------------------------------------------------------------------------------------------------------------- @@ -119,220 +120,219 @@ function func_dataLoaded(data, table){ // Returns relative height (depending on screen size) function func_height(table){ - return $(window).height() * 0.50; + return $(window).height() * 0.50; } // Formats the group header function func_groupHeader(data) { - return data[0].lv_bezeichnung + "  " + ' ( LV-ID: ' + data[0].lehrveranstaltung_id + ' )'; // change name to lehrveranstaltung; + return data[0].lv_bezeichnung + "  " + ' ( LV-ID: ' + data[0].lehrveranstaltung_id + ' )'; // change name to lehrveranstaltung; } // Formats the rows function func_rowFormatter(row){ - var is_dummy = (row.getData().personalnummer <= 0 && row.getData().personalnummer != null); - var is_mitarbeiter = row.getData().mitarbeiter_uid != null; - var has_stunden = row.getData().stunden != 0 && row.getData().stunden != null; + var is_dummy = (row.getData().personalnummer <= 0 && row.getData().personalnummer != null); + var is_mitarbeiter = row.getData().mitarbeiter_uid != null; + var has_stunden = row.getData().stunden != 0 && row.getData().stunden != null; - var bestellt = row.getData().bestellt; - var erteilt = row.getData().erteilt; - var akzeptiert = row.getData().akzeptiert; + var bestellt = row.getData().bestellt; + var erteilt = row.getData().erteilt; + var akzeptiert = row.getData().akzeptiert; - var stunden = parseFloat(row.getData().stunden); - var vertrag_stunden = parseFloat(row.getData().vertrag_stunden); + var stunden = parseFloat(row.getData().stunden); + var vertrag_stunden = parseFloat(row.getData().vertrag_stunden); - var betrag = parseFloat(row.getData().betrag); - var vertrag_betrag = parseFloat(row.getData().vertrag_betrag); + var betrag = parseFloat(row.getData().betrag); + var vertrag_betrag = parseFloat(row.getData().vertrag_betrag); - if (isNaN(betrag)) - { - betrag = 0; - } + if (isNaN(betrag)) + { + betrag = 0; + } - if (isNaN(stunden)) - { - stunden = 0; - } + if (isNaN(stunden)) + { + stunden = 0; + } - if (isNaN(vertrag_stunden)) - { - vertrag_stunden = 0; - } + if (isNaN(vertrag_stunden)) + { + vertrag_stunden = 0; + } - if (isNaN(vertrag_betrag)) - { - vertrag_betrag = 0; - } + if (isNaN(vertrag_betrag)) + { + vertrag_betrag = 0; + } - /* - Formats the color of the rows depending on their status - - blue: dummy lectors - - bold: geaendert - - default (white): neu - - green: akzeptiert - - grey: all other (marks unselectable), not mitarbeiter, has no semesterstunden - */ - row.getCells().forEach(function(cell){ - if(is_dummy) - { - cell.getElement().classList.add('bg-info'); // dummy lectors - } - else if ((!is_mitarbeiter || !has_stunden) && akzeptiert == null) - { - row.getElement().style["background-color"] = COLOR_LIGHTGREY; - } - else if (bestellt != null && (betrag != vertrag_betrag) || - bestellt != null && stunden != vertrag_stunden && - !row._row.element.classList.contains('tabulator-calcs')) // exclude calculation rows - { - row.getElement().style['font-weight'] = 'bold'; // geaendert - } - else if(bestellt == null) - { - return; // neu und erteilt - } - else if(bestellt != null && erteilt != null && akzeptiert != null) - { - cell.getElement().classList.add('bg-success') // akzeptiert - } - else - { - row.getElement().style["background-color"] = COLOR_LIGHTGREY; // default - } - }); + /* + Formats the color of the rows depending on their status + - blue: dummy lectors + - bold: geaendert + - default (white): neu und erteilt + - green: akzeptiert + - grey: all other (marks unselectable), not mitarbeiter, has no semesterstunden + */ + row.getCells().forEach(function(cell){ + if(is_dummy) + { + cell.getElement().classList.add('bg-info'); // dummy lectors + } + else if ((!is_mitarbeiter || !has_stunden) && akzeptiert == null) + { + row.getElement().style["background-color"] = COLOR_LIGHTGREY; + } + else if (bestellt != null && (betrag != vertrag_betrag) || + bestellt != null && stunden != vertrag_stunden && + !row._row.element.classList.contains('tabulator-calcs')) // exclude calculation rows + { + row.getElement().style['font-weight'] = 'bold'; // geaendert + } + else if(bestellt == null) + { + return; // neu und erteilt + } + else if(bestellt != null && erteilt != null && akzeptiert != null) + { + cell.getElement().classList.add('bg-success') // akzeptiert + } + else + { + row.getElement().style["background-color"] = COLOR_LIGHTGREY; // default + } + }); } // Formats row selectable/unselectable function func_selectableCheck(row){ - var is_dummy = (row.getData().personalnummer <= 0 && row.getData().personalnummer != null); - var is_mitarbeiter = row.getData().mitarbeiter_uid != null; - var has_stunden = row.getData().stunden != 0 && row.getData().stunden != null; + var is_dummy = (row.getData().personalnummer <= 0 && row.getData().personalnummer != null); + var is_mitarbeiter = row.getData().mitarbeiter_uid != null; + var has_stunden = row.getData().stunden != 0 && row.getData().stunden != null; - var stunden = parseFloat(row.getData().stunden); - var vertrag_stunden = parseFloat(row.getData().vertrag_stunden); + var stunden = parseFloat(row.getData().stunden); + var vertrag_stunden = parseFloat(row.getData().vertrag_stunden); - var betrag = parseFloat(row.getData().betrag); - var vertrag_betrag = parseFloat(row.getData().vertrag_betrag); + var betrag = parseFloat(row.getData().betrag); + var vertrag_betrag = parseFloat(row.getData().vertrag_betrag); - if (isNaN(betrag)) - { - betrag = 0; - } + if (isNaN(betrag)) + { + betrag = 0; + } - if (isNaN(stunden)) - { - stunden = 0; - } + if (isNaN(stunden)) + { + stunden = 0; + } - if (isNaN(vertrag_stunden)) - { - vertrag_stunden = 0; - } + if (isNaN(vertrag_stunden)) + { + vertrag_stunden = 0; + } - if (isNaN(vertrag_betrag)) - { - vertrag_betrag = 0; - } + if (isNaN(vertrag_betrag)) + { + vertrag_betrag = 0; + } - - // Only allow to select neue and geaenderte - return !is_dummy && // NOT dummy lector - is_mitarbeiter && // AND is Mitarbeiter - has_stunden && // AND has Semesterstunden (not null and not 0) - row.getData().bestellt == null || // AND neue - row.getData().bestellt != null && betrag != vertrag_betrag || // OR geaenderte - row.getData().bestellt != null && stunden != vertrag_stunden + // Only allow to select neue and geaenderte + return !is_dummy && // NOT dummy lector + is_mitarbeiter && // AND is Mitarbeiter + has_stunden && // AND has Semesterstunden (not null and not 0) + ((row.getData().bestellt == null) || // AND neue + (row.getData().bestellt != null && betrag != vertrag_betrag) || // OR geaenderte + (row.getData().bestellt != null && stunden != vertrag_stunden)); } // Adds column status function func_tableBuilt(table) { - // Add status column to table - table.addColumn( - { - title: "", - field: "status", - width:40, - align:"center", - downloadTitle: 'Status', - formatter: status_formatter, - tooltip: status_tooltip - }, true - ); + // Add status column to table + table.addColumn( + { + title: "", + field: "status", + width:40, + align:"center", + downloadTitle: 'Status', + formatter: status_formatter, + tooltip: status_tooltip + }, true + ); } // Sets status values into column status function func_renderStarted(table){ - // set literally status to each row - this enables sorting by status despite using icons - table.getRows().forEach(function(row){ - var bestellt = row.getData().bestellt; - var erteilt = row.getData().erteilt; - var akzeptiert = row.getData().akzeptiert; + // set literally status to each row - this enables sorting by status despite using icons + table.getRows().forEach(function(row){ + var bestellt = row.getData().bestellt; + var erteilt = row.getData().erteilt; + var akzeptiert = row.getData().akzeptiert; - var stunden = parseFloat(row.getData().stunden); - var vertrag_stunden = parseFloat(row.getData().vertrag_stunden); + var stunden = parseFloat(row.getData().stunden); + var vertrag_stunden = parseFloat(row.getData().vertrag_stunden); - var betrag = parseFloat(row.getData().betrag); - var vertrag_betrag = parseFloat(row.getData().vertrag_betrag); + var betrag = parseFloat(row.getData().betrag); + var vertrag_betrag = parseFloat(row.getData().vertrag_betrag); - if (isNaN(betrag)) - { - betrag = 0; - } + if (isNaN(betrag)) + { + betrag = 0; + } - if (isNaN(stunden)) - { - stunden = 0; - } + if (isNaN(stunden)) + { + stunden = 0; + } - if (isNaN(vertrag_stunden)) - { - vertrag_stunden = 0; - } + if (isNaN(vertrag_stunden)) + { + vertrag_stunden = 0; + } - if (isNaN(vertrag_betrag)) - { - vertrag_betrag = 0; - } + if (isNaN(vertrag_betrag)) + { + vertrag_betrag = 0; + } - if ((bestellt != null && betrag != vertrag_betrag) || - (bestellt != null && stunden != vertrag_stunden)) - { - row.getData().status = 'Geändert'; // geaendert - } - else if (bestellt == null && erteilt == null && akzeptiert == null) - { - row.getData().status = 'Neu'; // neu - } - else if (bestellt != null && erteilt == null && akzeptiert == null) - { - row.getData().status = 'Bestellt'; // bestellt - } - else if (bestellt != null && erteilt != null && akzeptiert == null) - { - row.getData().status = 'Erteilt'; // erteilt - } - else if (bestellt != null && erteilt != null && akzeptiert != null) - { - row.getData().status = 'Akzeptiert'; // akzeptiert - } - else - { - row.getData().status = null; // default - } - }); + if ((bestellt != null && betrag != vertrag_betrag) || + (bestellt != null && stunden != vertrag_stunden)) + { + row.getData().status = 'Geändert'; // geaendert + } + else if (bestellt == null && erteilt == null && akzeptiert == null) + { + row.getData().status = 'Neu'; // neu + } + else if (bestellt != null && erteilt == null && akzeptiert == null) + { + row.getData().status = 'Bestellt'; // bestellt + } + else if (bestellt != null && erteilt != null && akzeptiert == null) + { + row.getData().status = 'Erteilt'; // erteilt + } + else if (bestellt != null && erteilt != null && akzeptiert != null) + { + row.getData().status = 'Akzeptiert'; // akzeptiert + } + else + { + row.getData().status = null; // default + } + }); } // Performes after row was updated function func_rowUpdated(row){ - // Refresh status icon and row color - row.reformat(); // retriggers cell formatters and rowFormatter callback + // Refresh status icon and row color + row.reformat(); // retriggers cell formatters and rowFormatter callback - // Format font-weight normal (needed after geaenderte were bestellt) - row.getElement().style['font-weight'] = 'normal'; + // Format font-weight normal (needed after geaenderte were bestellt) + row.getElement().style['font-weight'] = 'normal'; - // Deselect and disable new selection of updated rows (ordering done) - row.deselect(); - row.getElement().style["pointerEvents"] = "none"; + // Deselect and disable new selection of updated rows (ordering done) + row.deselect(); + row.getElement().style["pointerEvents"] = "none"; } // TableWidget Footer element @@ -345,17 +345,17 @@ function func_rowUpdated(row){ function tableWidgetHook_selectAllButton(tableWidgetDiv){ tableWidgetDiv.find("#tableWidgetTabulator").tabulator('getRows', true) .filter(row => ( - row.getData().personalnummer > 0 || // not dummies - row.getData().personalnummer == null) && // include Projektbetreuer - row.getData().mitarbeiter_uid != null && // AND is Mitarbeiter - row.getData().stunden != null && // AND has Semesterstunden (not null and not 0) - row.getData().stunden != 0 && - ( - row.getData().bestellt == null || // AND neu - row.getData().bestellt != null && // OR (bestellt - row.getData().status == 'Geändert' // AND geaendert) - ) - ) + row.getData().personalnummer > 0 || // not dummies + row.getData().personalnummer == null) && // include Projektbetreuer + row.getData().mitarbeiter_uid != null && // AND is Mitarbeiter + row.getData().stunden != null && // AND has Semesterstunden (not null and not 0) + row.getData().stunden != 0 && + ( + (row.getData().bestellt == null) || // AND neu + (row.getData().bestellt != null && // OR (bestellt + row.getData().status == 'Geändert') // AND geaendert) + ) + ) .forEach((row => row.select())); } @@ -364,378 +364,381 @@ function tableWidgetHook_selectAllButton(tableWidgetDiv){ // ----------------------------------------------------------------------------------------------------------------- // Generates status icons status_formatter = function(cell, formatterParams, onRendered){ - var is_dummy = (cell.getRow().getData().personalnummer <= 0 && cell.getRow().getData().personalnummer != null); + var is_dummy = (cell.getRow().getData().personalnummer <= 0 && cell.getRow().getData().personalnummer != null); - var bestellt = cell.getRow().getData().bestellt; - var erteilt = cell.getRow().getData().erteilt; - var akzeptiert = cell.getRow().getData().akzeptiert; + var bestellt = cell.getRow().getData().bestellt; + var erteilt = cell.getRow().getData().erteilt; + var akzeptiert = cell.getRow().getData().akzeptiert; - var stunden = parseFloat(cell.getRow().getData().stunden); - var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); + var stunden = parseFloat(cell.getRow().getData().stunden); + var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); - var betrag = parseFloat(cell.getRow().getData().betrag); - var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); + var betrag = parseFloat(cell.getRow().getData().betrag); + var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); - if (isNaN(betrag)) - { - betrag = 0; - } + if (isNaN(betrag)) + { + betrag = 0; + } - if (isNaN(stunden)) - { - stunden = 0; - } + if (isNaN(stunden)) + { + stunden = 0; + } - if (isNaN(vertrag_stunden)) - { - vertrag_stunden = 0; - } + if (isNaN(vertrag_stunden)) + { + vertrag_stunden = 0; + } - if (isNaN(vertrag_betrag)) - { - vertrag_betrag = 0; - } + if (isNaN(vertrag_betrag)) + { + vertrag_betrag = 0; + } - // commented icons would be so nice to have with fontawsome 5.11... - if (is_dummy) - { - return ""; // dummy lector - } - else if (bestellt != null && isNaN(vertrag_betrag)) - { - return ""; // kein Vertrag - } - else if (bestellt != null && (betrag != vertrag_betrag) || // geaendert - bestellt != null && stunden != vertrag_stunden) // geaendert ((if betrag is 0 or null) - { - return ICON_LEHRAUFTRAG_CHANGED; // geaendert - // return ""; - } - else if (bestellt == null && erteilt == null && akzeptiert == null) - { - return ""; // neu - } - else if (bestellt != null && erteilt == null && akzeptiert == null) - { - return ICON_LEHRAUFTRAG_ORDERED; // bestellt - // return ""; - } - else if (bestellt != null && erteilt != null && akzeptiert == null) - { - return ICON_LEHRAUFTRAG_APPROVED; // erteilt - // return ""; - } - else if (bestellt != null && erteilt != null && akzeptiert != null) - { - return ""; // akzeptiert - } - else - { - return ""; // default - } + // commented icons would be so nice to have with fontawsome 5.11... + if (is_dummy) + { + return ""; // dummy lector + } + else if (bestellt != null && isNaN(vertrag_betrag)) + { + return ""; // kein Vertrag + } + else if (bestellt != null && (betrag != vertrag_betrag) || // geaendert + bestellt != null && stunden != vertrag_stunden) // geaendert ((if betrag is 0 or null) + { + return ICON_LEHRAUFTRAG_CHANGED; // geaendert + // return ""; + } + else if (bestellt == null && erteilt == null && akzeptiert == null) + { + return ""; // neu + } + else if (bestellt != null && erteilt == null && akzeptiert == null) + { + return ICON_LEHRAUFTRAG_ORDERED; // bestellt + // return ""; + } + else if (bestellt != null && erteilt != null && akzeptiert == null) + { + return ICON_LEHRAUFTRAG_APPROVED; // erteilt + // return ""; + } + else if (bestellt != null && erteilt != null && akzeptiert != null) + { + return ""; // akzeptiert + } + else + { + return ""; // default + } }; // Generates status tooltip status_tooltip = function(cell){ - var is_dummy = (cell.getRow().getData().personalnummer <= 0 && cell.getRow().getData().personalnummer != null); - var is_mitarbeiter = cell.getRow().getData().mitarbeiter_uid != null; - var has_stunden = cell.getRow().getData().stunden != 0 && cell.getRow().getData().stunden != null; - var bestellt = cell.getRow().getData().bestellt; - var erteilt = cell.getRow().getData().erteilt; - var akzeptiert = cell.getRow().getData().akzeptiert; + var is_dummy = (cell.getRow().getData().personalnummer <= 0 && cell.getRow().getData().personalnummer != null); + var is_mitarbeiter = cell.getRow().getData().mitarbeiter_uid != null; + var has_stunden = cell.getRow().getData().stunden != 0 && cell.getRow().getData().stunden != null; - var betrag = parseFloat(cell.getRow().getData().betrag); - var stunden = parseFloat(cell.getRow().getData().stunden); - var stundensatz = parseFloat(cell.getRow().getData().stundensatz); + var bestellt = cell.getRow().getData().bestellt; + var erteilt = cell.getRow().getData().erteilt; + var akzeptiert = cell.getRow().getData().akzeptiert; - var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); - var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); - var vertrag_stundensatz = 0; + var betrag = parseFloat(cell.getRow().getData().betrag); + var stunden = parseFloat(cell.getRow().getData().stunden); + var stundensatz = parseFloat(cell.getRow().getData().stundensatz); - if (isNaN(betrag)) - { - betrag = 0; - } + var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); + var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); + var vertrag_stundensatz = 0; - if (isNaN(stunden)) - { - stunden = 0; - } + if (isNaN(betrag)) + { + betrag = 0; + } - if (isNaN(vertrag_stunden)) - { - vertrag_stunden = 0; - } + if (isNaN(stunden)) + { + stunden = 0; + } - if (isNaN(vertrag_betrag)) - { - vertrag_betrag = 0; - } + if (isNaN(vertrag_stunden)) + { + vertrag_stunden = 0; + } - // Calculate vertrag stundensatz - if (vertrag_stunden != 0) - { - vertrag_stundensatz = vertrag_betrag/vertrag_stunden; - } + if (isNaN(vertrag_betrag)) + { + vertrag_betrag = 0; + } - // Return tooltip message - if (is_dummy) // dummy (no lector) - { - return 'Neuer Lehrauftrag. Ohne Lektor verplant.' - } - else if (!is_mitarbeiter) - { - return 'Lektor ist nicht als Mitarbeiter erfasst.' - } - else if (!has_stunden) - { - return 'Es wurden noch keine Stunden zugeteilt.' - } - else if (isNaN(vertrag_betrag)) // neu - { - return 'Neuer Lehrauftrag. Wartet auf Bestellung.' - } - else if (betrag != vertrag_betrag || // geaendert - bestellt != null && stunden != vertrag_stunden) // geaendert (if betrag is 0 or null) - { - var text = 'NACH Änderung: Stundensatz: ' + stundensatz + ' Stunden: ' + stunden; - text += "\n"; - text += 'VOR Änderung:' + '\xa0\xa0\xa0' + 'Stundensatz: ' + vertrag_stundensatz + ' Stunden: ' + vertrag_stunden; - return text; - } - else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt - { - return 'Letzter Status: Bestellt. Wartet auf Erteilung.'; - } - else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt - { - return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.'; - } - else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert - { - return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.'; - } + // Calculate vertrag stundensatz + if (vertrag_stunden != 0) + { + vertrag_stundensatz = vertrag_betrag/vertrag_stunden; + } + + // Return tooltip message + if (is_dummy) // dummy (no lector) + { + return FHC_PhrasesLib.t("ui", "neuerLehrauftragOhneLektorVerplant"); + } + else if (!is_mitarbeiter) + { + return 'Lektor ist nicht als Mitarbeiter erfasst.' + } + else if (!has_stunden) + { + return 'Es wurden noch keine Stunden zugeteilt.' + } + else if (vertrag_betrag == 0) // neu + { + return FHC_PhrasesLib.t("ui", "neuerLehrauftragWartetAufBestellung"); + } + else if (betrag != vertrag_betrag || // geaendert + bestellt != null && stunden != vertrag_stunden) // geaendert (if betrag is 0 or null) + { + var text = FHC_PhrasesLib.t("ui", "nachAenderungStundensatzStunden", + new Array(stundensatz, stunden)); + text += "\n"; + text += FHC_PhrasesLib.t("ui", "vorAenderungStundensatzStunden", + new Array(vertrag_stundensatz, vertrag_stunden)); + return text; + } + else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt + { + return FHC_PhrasesLib.t("ui", "letzterStatusBestellt"); + } + else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt + { + return FHC_PhrasesLib.t("ui", "letzterStatusErteilt"); + } + else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert + { + return FHC_PhrasesLib.t("ui", "letzterStatusAngenommen"); + } } // Generates bestellt tooltip bestellt_tooltip = function(cell){ - if (cell.getRow().getData().bestellt_von != null) - { - return 'Bestellt von: ' + cell.getRow().getData().bestellt_von; - } + if (cell.getRow().getData().bestellt_von != null) + { + return FHC_PhrasesLib.t("ui", "bestelltVon") + cell.getRow().getData().bestellt_von; + } } // Generates erteilt tooltip erteilt_tooltip = function(cell){ - if (cell.getRow().getData().erteilt_von != null) { - return 'Erteilt von: ' + cell.getRow().getData().erteilt_von; - } + if (cell.getRow().getData().erteilt_von != null) { + return FHC_PhrasesLib.t("ui", "erteiltVon") + cell.getRow().getData().erteilt_von; + } } // Generates akzeptiert tooltip akzeptiert_tooltip = function(cell){ - if (cell.getRow().getData().akzeptiert_von != null) { - return 'Angenommen von: ' + cell.getRow().getData().akzeptiert_von; - } + if (cell.getRow().getData().akzeptiert_von != null) { + return FHC_PhrasesLib.t("ui", "akzeptiertVon") + cell.getRow().getData().akzeptiert_von; + } } $(function() { - // Redraw table on resize to fit tabulators height to windows height - window.addEventListener('resize', function(){ - $('#tableWidgetTabulator').tabulator('setHeight', $(window).height() * 0.50); - $('#tableWidgetTabulator').tabulator('redraw', true); - }); + // Redraw table on resize to fit tabulators height to windows height + window.addEventListener('resize', function(){ + $('#tableWidgetTabulator').tabulator('setHeight', $(window).height() * 0.50); + $('#tableWidgetTabulator').tabulator('redraw', true); + }); - // Show all rows - $("#show-all").click(function(){ - $('#tableWidgetTabulator').tabulator('clearFilter'); - }); + // Show all rows + $("#show-all").click(function(){ + $('#tableWidgetTabulator').tabulator('clearFilter'); + }); - // Show only rows with new lehrauftraege (not dummy lectors or external projektbetreuer; stunden not 0 or null) - $("#show-new").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', - [ - [ - {field: 'personalnummer', type: '>', value: 0}, // not dummy lector - {field: 'personalnummer', type: '=', value: null} // include Projektbetreuer - ], - {field: 'mitarbeiter_uid', type: '!=', value: null}, // AND is Mitarbeiter - {field: 'stunden', type: '!=', value: null}, // AND has Semesterstunden (not null and not 0) - {field: 'stunden', type: '!=', value: 0}, - {field: 'bestellt', type: '=', value: null}, - {field: 'erteilt', type: '=', value: null}, - {field: 'akzeptiert', type: '=', value: null} - ] - ); - }); + // Show only rows with new lehrauftraege (not dummy lectors or external projektbetreuer; stunden not 0 or null) + $("#show-new").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', + [ + [ + {field: 'personalnummer', type: '>', value: 0}, // not dummy lector + {field: 'personalnummer', type: '=', value: null} // include Projektbetreuer + ], + {field: 'mitarbeiter_uid', type: '!=', value: null}, // AND is Mitarbeiter + {field: 'stunden', type: '!=', value: null}, // AND has Semesterstunden (not null and not 0) + {field: 'stunden', type: '!=', value: 0}, + {field: 'bestellt', type: '=', value: null}, + {field: 'erteilt', type: '=', value: null}, + {field: 'akzeptiert', type: '=', value: null} + ] + ); + }); - // Show only rows with ordered lehrauftraege - $("#show-ordered").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', - [ - [ - {field: 'personalnummer', type: '>', value: 0}, // not dummy lector - {field: 'personalnummer', type: '=', value: null} // include Projektbetreuer - ], - {field: 'bestellt', type: '!=', value: null}, - {field: 'erteilt', type: '=', value: null}, - {field: 'akzeptiert', type: '=', value: null} - ] - ); - }); + // Show only rows with ordered lehrauftraege + $("#show-ordered").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', + [ + [ + {field: 'personalnummer', type: '>', value: 0}, // not dummy lector + {field: 'personalnummer', type: '=', value: null} // include Projektbetreuer + ], + {field: 'bestellt', type: '!=', value: null}, + {field: 'erteilt', type: '=', value: null}, + {field: 'akzeptiert', type: '=', value: null} + ] + ); + }); - // Show only rows with erteilte lehrauftraege - $("#show-approved").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', - [ - {field: 'bestellt', type: '!=', value: null}, - {field: 'erteilt', type: '!=', value: null}, - {field: 'akzeptiert', type: '=', value: null} - ] - ); - }); + // Show only rows with erteilte lehrauftraege + $("#show-approved").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', + [ + {field: 'bestellt', type: '!=', value: null}, + {field: 'erteilt', type: '!=', value: null}, + {field: 'akzeptiert', type: '=', value: null} + ] + ); + }); - // Show only rows with akzeptierte lehrauftraege - $("#show-accepted").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', - [ - {field: 'bestellt', type: '!=', value: null}, - {field: 'erteilt', type: '!=', value: null}, - {field: 'akzeptiert', type: '!=', value: null} - ] - ); - }); + // Show only rows with akzeptierte lehrauftraege + $("#show-accepted").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', + [ + {field: 'bestellt', type: '!=', value: null}, + {field: 'erteilt', type: '!=', value: null}, + {field: 'akzeptiert', type: '!=', value: null} + ] + ); + }); - // Show only rows with geaenderte lectors - $("#show-changed").click(function(){ - // needs custom filter to compare fields betrag and vertrag_betrag - $('#tableWidgetTabulator').tabulator('setFilter', - [ - [ - {field: 'personalnummer', type: '>', value: 0}, // NOT dummy lector - {field: 'personalnummer', type: '=', value: null} // include Projektbetreuer - ], - {field: 'mitarbeiter_uid', type: '!=', value: null}, // AND is Mitarbeiter - {field: 'stunden', type: '!=', value: null}, // AND has Semesterstunden (not null and not 0) - {field: 'stunden', type: '!=', value: 0}, - {field: 'bestellt', type: '!=', value: null}, // bestellt AND - {field: 'status', type: '=', value: 'Geändert'} // geaendert - ] - ); - }); + // Show only rows with geaenderte lectors + $("#show-changed").click(function(){ + // needs custom filter to compare fields betrag and vertrag_betrag + $('#tableWidgetTabulator').tabulator('setFilter', + [ + [ + {field: 'personalnummer', type: '>', value: 0}, // NOT dummy lector + {field: 'personalnummer', type: '=', value: null} // include Projektbetreuer + ], + {field: 'mitarbeiter_uid', type: '!=', value: null}, // AND is Mitarbeiter + {field: 'stunden', type: '!=', value: null}, // AND has Semesterstunden (not null and not 0) + {field: 'stunden', type: '!=', value: 0}, + {field: 'bestellt', type: '!=', value: null}, // bestellt AND + {field: 'status', type: '=', value: 'Geändert'} // geaendert + ] + ); + }); - // Show only rows with dummy lectors - $("#show-dummies").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', - [ - {field: 'personalnummer', type: '!=', value: null}, - {field: 'personalnummer', type: '<=', value: 0}, - ] - ); - }); + // Show only rows with dummy lectors + $("#show-dummies").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', + [ + {field: 'personalnummer', type: '!=', value: null}, + {field: 'personalnummer', type: '<=', value: 0}, + ] + ); + }); - // Set png-icons into filter-buttons - $(".btn-lehrauftrag").each(function(){ - switch(this.id) { - case 'show-ordered': - this.innerHTML = ICON_LEHRAUFTRAG_ORDERED; - break; - case 'show-approved': - this.innerHTML = ICON_LEHRAUFTRAG_APPROVED; - break; - case 'show-changed': - this.innerHTML = ICON_LEHRAUFTRAG_CHANGED; - break; - } - }); + // Set png-icons into filter-buttons + $(".btn-lehrauftrag").each(function(){ + switch(this.id) { + case 'show-ordered': + this.innerHTML = ICON_LEHRAUFTRAG_ORDERED; + break; + case 'show-approved': + this.innerHTML = ICON_LEHRAUFTRAG_APPROVED; + break; + case 'show-changed': + this.innerHTML = ICON_LEHRAUFTRAG_CHANGED; + break; + } + }); - // De/activate and un/focus on clicked button, En-/Disable 'Lehrauftrag bestellen' - $(".btn-lehrauftrag").click(function() { + // De/activate and un/focus on clicked button, En-/Disable 'Lehrauftrag bestellen' + $(".btn-lehrauftrag").click(function() { - // De/activate and un/focus on clicked button - $(".btn-lehrauftrag").removeClass('focus').removeClass('active'); - $(this).addClass('focus').addClass('active'); + // De/activate and un/focus on clicked button + $(".btn-lehrauftrag").removeClass('focus').removeClass('active'); + $(this).addClass('focus').addClass('active'); - //Enable button 'Lehrauftrag bestellen' by default - $('#order-lehrauftraege').attr('disabled', false).attr('title', ''); + //Enable button 'Lehrauftrag bestellen' by default + $('#order-lehrauftraege').attr('disabled', false).attr('title', ''); - // Disable button Lehrauftrag bestellen for dummies - if (this.id == 'show-dummies') - { - $('#order-lehrauftraege').attr('disabled', true).attr('title', 'Lehraufträge ohne Lektorzuteilung können nicht bestellt werden.'); - } - }); + // Disable button Lehrauftrag bestellen for dummies + if (this.id == 'show-dummies') + { + $('#order-lehrauftraege').attr('disabled', true).attr('title', 'Lehraufträge ohne Lektorzuteilung können nicht bestellt werden.'); + } + }); - // Order Lehrauftraege - $("#order-lehrauftraege").click(function(){ + // Order Lehrauftraege + $("#order-lehrauftraege").click(function(){ - var selected_data = $('#tableWidgetTabulator').tabulator('getSelectedData') - .filter(function(val){ - // filter pseudo lines of groupBy (e.g. the bottom calculations lines) - return val.row_index != null || typeof(val.row_index) !== 'undefined'; - }) - .map(function(data){ - // reduce to necessary fields - return { - 'row_index' : data.row_index, - 'lehreinheit_id' : data.lehreinheit_id, - 'lehrveranstaltung_id' : data.lehrveranstaltung_id, - 'person_id' : data.person_id, - 'mitarbeiter_uid' : data.mitarbeiter_uid, - 'vertrag_id' : data.vertrag_id, - 'projektarbeit_id' : data.projektarbeit_id, - 'stunden' : data.stunden, - 'betrag' : data.betrag, - 'studiensemester_kurzbz' : data.studiensemester_kurzbz, - 'studiengang_kz' : data.studiengang_kz, - 'lv_oe_kurzbz' : data.lv_oe_kurzbz - } - }); + var selected_data = $('#tableWidgetTabulator').tabulator('getSelectedData') + .filter(function(val){ + // filter pseudo lines of groupBy (e.g. the bottom calculations lines) + return val.row_index != null || typeof(val.row_index) !== 'undefined'; + }) + .map(function(data){ + // reduce to necessary fields + return { + 'row_index' : data.row_index, + 'lehreinheit_id' : data.lehreinheit_id, + 'lehrveranstaltung_id' : data.lehrveranstaltung_id, + 'person_id' : data.person_id, + 'mitarbeiter_uid' : data.mitarbeiter_uid, + 'vertrag_id' : data.vertrag_id, + 'projektarbeit_id' : data.projektarbeit_id, + 'stunden' : data.stunden, + 'betrag' : data.betrag, + 'studiensemester_kurzbz' : data.studiensemester_kurzbz, + 'studiengang_kz' : data.studiengang_kz, + 'lv_oe_kurzbz' : data.lv_oe_kurzbz + } + }); - // Alert and exit if no lehraufgang is selected - if (selected_data.length == 0) - { - FHC_DialogLib.alertInfo('Bitte wählen Sie erst zumindest einen Lehrauftrag'); - return; - } + // Alert and exit if no lehraufgang is selected + if (selected_data.length == 0) + { + FHC_DialogLib.alertInfo('Bitte wählen Sie erst zumindest einen Lehrauftrag'); + return; + } - /* - * Prepare data object for ajax call - * NOTE: Stringify to send only ONE post param (json string) instead of many single post params. - * This avoids issues with POST param limitation. - */ - var data = { - 'selected_data': JSON.stringify(selected_data) - }; + /* + * Prepare data object for ajax call + * NOTE: Stringify to send only ONE post param (json string) instead of many single post params. + * This avoids issues with POST param limitation. + */ + var data = { + 'selected_data': JSON.stringify(selected_data) + }; - FHC_AjaxClient.ajaxCallPost( - FHC_JS_DATA_STORAGE_OBJECT.called_path + "/orderLehrauftrag", - data, - { - successCallback: function (data, textStatus, jqXHR) - { - if (!data.error && data.retval != null) - { - // Update status 'Bestellt' - $('#tableWidgetTabulator').tabulator('updateData', data.retval); + FHC_AjaxClient.ajaxCallPost( + FHC_JS_DATA_STORAGE_OBJECT.called_path + "/orderLehrauftrag", + data, + { + successCallback: function (data, textStatus, jqXHR) + { + if (!data.error && data.retval != null) + { + // Update status 'Bestellt' + $('#tableWidgetTabulator').tabulator('updateData', data.retval); - // Print success message - FHC_DialogLib.alertSuccess("Alle " + data.retval.length + " Lehraufträge wurden bestellt.") - } + // Print success message + FHC_DialogLib.alertSuccess("Alle " + data.retval.length + " Lehraufträge wurden bestellt.") + } - if (data.error && data.retval != null) - { - // Print error message - FHC_DialogLib.alertError(data.retval); - } - }, - errorCallback: function (jqXHR, textStatus, errorThrown) - { - FHC_DialogLib.alertError("Sytemfehler
Bitte kontaktieren Sie Ihren Administrator."); - } - } - ); - }); + if (data.error && data.retval != null) + { + // Print error message + FHC_DialogLib.alertError(data.retval); + } + }, + errorCallback: function (jqXHR, textStatus, errorThrown) + { + FHC_DialogLib.alertError("Sytemfehler
Bitte kontaktieren Sie Ihren Administrator."); + } + } + ); + }); }); diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 64a0acc31..429bda97e 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -2123,6 +2123,26 @@ $phrases = array( ) ) ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'gruppe', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Gruppe', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'group', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'lehre', @@ -2363,6 +2383,26 @@ $phrases = array( ) ) ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'lehreinheit', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'LV-Teil', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'teaching unit', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'lehre', @@ -2403,6 +2443,46 @@ $phrases = array( ) ) ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'studienplan', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Studienplan', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'study plan', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'lektor', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Lektor', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'lector', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'lehre', @@ -3034,7 +3114,7 @@ $phrases = array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'an Ausgewählte', + 'text' => 'an Ausgewählte', 'description' => '', 'insertvon' => 'system' ), @@ -3694,6 +3774,26 @@ When on hold, the date is only a reminder.', ) ) ), + array( + 'app' => 'core', + 'category' => 'password', + 'phrase' => 'password', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Passwort', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'password', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'password', @@ -4062,7 +4162,7 @@ When on hold, the date is only a reminder.', 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Lehraufträge bestellen', + 'text' => 'Lehraufträge bestellen', 'description' => '', 'insertvon' => 'system' ), @@ -4453,6 +4553,1046 @@ When on hold, the date is only a reminder.', 'insertvon' => 'system' ) ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'hilfeZuDieserSeite', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Hilfe zu dieser Seite', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Guide to this site', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'anzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'alleAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Alle anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show all', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'nurNeueAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur neue anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show only new ones', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'nurGeaenderteAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur geänderte anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show only changed ones', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'nurBestellteAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur bestellte anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show only ordered ones', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'nurErteilteAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur erteilte anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show only approved ones', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'nurAngenommeneAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur angenommene anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show only accepted ones', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'nurStornierteAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur stornierte anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show only cancelled ones', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'nurDummiesAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur Dummies anzeigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show only dummies', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'alleAuswaehlen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Alle auswählen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Select all', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'alleAbwaehlen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Alle abwählen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Deselect all', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'ausgewaehlteZeilen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ausgewählte Zeilen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Selected rows', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'nurVerplanteOhneLektorAnzeigen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur verplante ohne Lektor anzeigen (Dummies)', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show only planned without lectors (dummies)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'bestellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'bestellt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'ordered', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'erteilt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'erteilt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'approved', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'angenommen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'angenommen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'accepted', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'storniert', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'storniert', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'cancelled', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'bestelltVon', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'bestellt von ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'ordered by ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'erteiltVon', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'erteilt von ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'approved by ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'angenommenVon', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'angenommen von ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'accepted by ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'storniertVon', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'storniert von ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'cancelled by ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'storniertAm', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'storniert am ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'cancelled on ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'von', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'von', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'by', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'stunden', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stunden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Hours', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'betrag', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Betrag', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'amount', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'vertrag', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Vertrag', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'contract', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'bezeichnung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bezeichnung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'title', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'kz', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'KZ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'projekt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Projekt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'project', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'projektarbeit', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Projektarbeit', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'project work', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'tabelleneinstellungen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Tabelleneinstellungen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Table settings', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'hilfe', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Hilfe', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Help', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'keineDatenVorhanden', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Keine Daten vorhanden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'No data available', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'spaltenEinstellen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Spalten einstellen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Column settings', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'global', + 'phrase' => 'personalnummer', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Personalnummer', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'personnel number', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'stundensatz', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stundensatz', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'hourly rate', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'am', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'am', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'on', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'lehrauftragInBearbeitung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Lehrauftrag in Bearbeitung.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Teaching lectureship in progress.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'wartetAufErteilung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Wartet auf Erteilung.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Waiting for approvement.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'wartetAufErneuteErteilung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Wartet auf erneute Erteilung.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Waiting for re-approvement', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'letzterStatusBestellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Letzter Status: Bestellt. Wartet auf Erteilung.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Last status: Ordered. Waiting for approvement.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'letzterStatusErteilt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Last status: Approved. Waiting for the lector\'s acceptance.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'letzterStatusAngenommen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Last status: Accepted. Contract is mutually concluded.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'vertragWurdeStorniert', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Vertrag wurde storniert.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Contract was cancelled.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'stundenStundensatzGeaendert', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stunden / Stundensatz geändert.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Hours / Hourly rate changed', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'neuerLehrauftragOhneLektorVerplant', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Neuer Lehrauftrag. Ohne Lektor verplant.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'New teaching lectureship. No lector assigned yet.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'wartetAufBestellung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Wartet auf Bestellung. Danach Erteilen möglich.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Waiting for order. Afterwards you can approve.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'wartetAufErneuteBestellung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Wartet auf erneute Bestellung. Danach erneut Erteilen möglich.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Waiting for re-order. Afterwards you can re-approve.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'neuerLehrauftragWartetAufBestellung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Neuer Lehrauftrag. Wartet auf Bestellung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'New teaching lectureship. Waiting for order.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'nachAenderungStundensatzStunden', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'NACH Änderung: Stundensatz: {0} Stunden: {1}', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'AFTER change: Hourly rate: {0} Hours: {1}', + 'description' => 'Hours', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lehrauftrag', + 'category' => 'ui', + 'phrase' => 'vorAenderungStundensatzStunden', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'VOR Änderung: Stundensatz: {0} Stunden: {1}', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'BEFORE change: Hourly rate: {0} Hours: {1}', + 'description' => 'Hours', + 'insertvon' => 'system' + ) + ) ) );