From b270e65d2e147fab81d6d4a9fd3de2fcba00fccc Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 28 Jan 2020 12:26:08 +0100 Subject: [PATCH 01/34] Extended FHC_TableWidget with column picker, header & footer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added standard behaviour to FHC_TableWidget: . Added column picker to new TableWidgetHeader div. . Moved former footerElement (including Alle aus-/abwählen buttons, CSV Downloads) from single specific files to new TableWidgetFooter divs. . Adapted other files to work with new FHC_TableWidget behaviour --- .../lehrauftrag/acceptLehrauftragData.php | 61 ++--- .../lehrauftrag/approveLehrauftragData.php | 53 ++-- .../lehrauftrag/cancelledLehrauftragData.php | 23 +- .../lehre/lehrauftrag/orderLehrauftrag.php | 9 +- .../lehrauftrag/orderLehrauftragData.php | 80 +++--- application/views/widgets/table/table.php | 12 +- public/js/TableWidget.js | 229 +++++++++++++++++- .../js/lehre/lehrauftrag/acceptLehrauftrag.js | 72 ++---- .../lehre/lehrauftrag/approveLehrauftrag.js | 74 ++---- .../js/lehre/lehrauftrag/orderLehrauftrag.js | 73 ++---- 10 files changed, 417 insertions(+), 269 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index 27a348ae7..08cc94e5f 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -326,10 +326,12 @@ $filterWidgetArray = array( 'Angenommen von' ), 'datasetRepOptions' => '{ - height: 550, - layout: "fitColumns", // fit columns to width of table - responsiveLayout: "hide", // hide columns that dont fit on the table - movableColumns: true, // allows changing column + height: func_height(this), + layout: "fitColumns", // fit columns to width of table + persistentLayout:true, // enables persistence (default store in localStorage if available, else in cookie) + persistenceID: "acceptLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables + autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated + movableColumns: true, // allows changing column placeholder: func_placeholder(), headerFilterPlaceholder: " ", index: "row_index", // assign specific column as unique id (important for row indexing) @@ -339,7 +341,6 @@ $filterWidgetArray = array( selectableCheck: function(row){ return func_selectableCheck(row); }, - footerElement: func_footerElement(), rowUpdated:function(row){ func_rowUpdated(row); }, @@ -357,40 +358,44 @@ $filterWidgetArray = array( }, renderStarted:function(){ func_renderStarted(this); - } + }, + tableWidgetFooter: { + selectButtons: true + } }', // tabulator properties 'datasetRepFieldsDefs' => '{ row_index: {visible:false}, // necessary for row indexing - lehreinheit_id: {headerFilter:"input", bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}, width: "7%"}, - lehrveranstaltung_id: {headerFilter:"input", width: "5%"}, - projektarbeit_id: {visible: false}, - studiensemester_kurzbz: {visible: false}, - studiengang_kz: {visible: false}, - stg_typ_kurzbz: {headerFilter:"input", width: "5%"}, + lehreinheit_id: {headerFilter:"input", bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}}, + lehrveranstaltung_id: {headerFilter:"input"}, + projektarbeit_id: {visible: false, headerFilter:"input"}, + studiensemester_kurzbz: {visible: false, headerFilter:"input"}, + studiengang_kz: {visible: false, headerFilter:"input"}, + stg_typ_kurzbz: {headerFilter:"input"}, semester: {headerFilter:"input"}, orgform_kurzbz: {headerFilter:"input"}, - person_id: {visible: false}, - typ: {headerFilter:"input", width: "7%"}, - auftrag: {headerFilter:"input", width: "15%"}, - lv_oe_kurzbz: {headerFilter:"input", width: "8%"}, - gruppe: {headerFilter:"input", width: "5%"}, + person_id: {visible: false, headerFilter:"input"}, + typ: {headerFilter:"input"}, + auftrag: {headerFilter:"input"}, + lv_oe_kurzbz: {headerFilter:"input"}, + gruppe: {headerFilter:"input"}, stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, - bottomCalc:"sum", bottomCalcParams:{precision:1}, width: "5%"}, - betrag: {align:"right", width: "6%", formatter: form_formatNulltoStringNumber, + bottomCalc:"sum", bottomCalcParams:{precision:1} + }, + betrag: {align:"right", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, - bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}, - width: "8%"}, + bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"} + }, vertrag_id: {visible: false}, vertrag_stunden: {visible: false}, vertrag_betrag: {visible: false}, - mitarbeiter_uid: {visible: false}, - bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"}, - erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"}, - akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"}, - bestellt_von: {visible: false}, - erteilt_von: {visible: false}, - akzeptiert_von: {visible: false} + mitarbeiter_uid: {visible: false, headerFilter:"input"}, + bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip}, + erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip}, + akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip}, + bestellt_von: {visible: false, headerFilter:"input"}, + erteilt_von: {visible: false, headerFilter:"input"}, + akzeptiert_von: {visible: false, headerFilter:"input"} }', // col properties ); diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index fbc30db1c..111e7bd01 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -337,14 +337,17 @@ $filterWidgetArray = array( 'Angenommen von' ), 'datasetRepOptions' => '{ - height: 700, - layout: "fitColumns", // fit columns to width of table - responsiveLayout: "hide", // hide columns that dont fit on the table - movableColumns: true, // allows changing column + height: func_height(this), + layout: "fitColumns", // fit columns to width of table + layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded + persistentLayout:true, // enables persistence (default store in localStorage if available, else in cookie) + persistenceID: "approveLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables + autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated + movableColumns: true, // allows changing column placeholder: func_placeholder(), headerFilterPlaceholder: " ", groupBy:"lehrveranstaltung_id", - groupToggleElement:"header", //toggle group on click anywhere in the group header + groupToggleElement:"header", //toggle group on click anywhere in the group header groupHeader: function(value, count, data, group){ return func_groupHeader(data); }, @@ -357,7 +360,6 @@ $filterWidgetArray = array( return func_selectableCheck(row); }, initialFilter: func_initialFilter(), - footerElement: func_footerElement(), rowUpdated:function(row){ func_rowUpdated(row); }, @@ -373,44 +375,47 @@ $filterWidgetArray = array( }, tableBuilt: function(){ func_tableBuilt(this); - } + }, + tableWidgetFooter: { + selectButtons: true + } }', // tabulator properties 'datasetRepFieldsDefs' => '{ // column status is built dynamically in funcTableBuilt(), row_index: {visible:false}, // necessary for row indexing - personalnummer: {visible: false}, - lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%", + personalnummer: {visible: false, headerFilter:"input"}, + lehreinheit_id: {headerFilter:"input", bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();},}, lehrveranstaltung_id: {headerFilter:"input"}, - lv_bezeichnung: {visible: false}, - projektarbeit_id: {visible: false}, + lv_bezeichnung: {visible: false, headerFilter:"input"}, + projektarbeit_id: {visible: false, headerFilter:"input"}, studiensemester_kurzbz: {headerFilter:"input"}, - studiengang_kz: {visible: false}, - stg_typ_kurzbz: {headerFilter:"input", width: "5%"}, + studiengang_kz: {visible: false, headerFilter:"input"}, + stg_typ_kurzbz: {headerFilter:"input"}, semester: {headerFilter:"input"}, orgform_kurzbz: {headerFilter:"input"}, - person_id: {visible: false}, + person_id: {visible: false, headerFilter:"input"}, typ: {headerFilter:"input"}, - auftrag: {headerFilter:"input", width:"20%"}, + auftrag: {headerFilter:"input"}, lv_oe_kurzbz: {headerFilter:"input"}, gruppe: {headerFilter:"input"}, - lektor: {headerFilter:"input", widthGrow: 3}, + lektor: {headerFilter:"input"}, stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:1}}, - betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber, + betrag: {align:"right", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}}, vertrag_id: {visible: false}, vertrag_stunden: {visible: false}, vertrag_betrag: {visible: false}, - mitarbeiter_uid: {visible: false}, - bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"}, - erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"}, - akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"}, - bestellt_von: {visible: false}, - erteilt_von: {visible: false}, - akzeptiert_von: {visible: false}, + mitarbeiter_uid: {visible: false, headerFilter:"input"}, + bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip}, + erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip}, + akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip}, + bestellt_von: {visible: false, headerFilter:"input"}, + erteilt_von: {visible: false, headerFilter:"input"}, + akzeptiert_von: {visible: false, headerFilter:"input"}, }', // col properties ); diff --git a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php index 04d314636..20629cb84 100644 --- a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php @@ -64,8 +64,11 @@ $tableWidgetArray = array( 'Storniert am' ), 'datasetRepOptions' => '{ - layout: "fitColumns", // fit columns to width of table - responsiveLayout: "hide", // hide columns that dont fit on the table + layout: "fitColumns", // fit columns to width of table + layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded + persistentLayout: true, // enables persistence (default store in localStorage if available, else in cookie) + persistenceID: "cancelledLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables + autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated movableColumns: true, // allows changing column placeholder: func_placeholder(), rowFormatter:function(row){ @@ -79,22 +82,24 @@ $tableWidgetArray = array( }, tableBuilt: function(){ func_tableBuilt(this); - } + }, }', // tabulator properties 'datasetRepFieldsDefs' => '{ vertrag_id: {visible: false}, - vertragsstunden_studiensemester_kurzbz: {visible: false}, - vertragstyp_kurzbz: {widthGrow: 2}, - bezeichnung: {widthGrow: 2}, + vertragsstunden_studiensemester_kurzbz: {visible: false, widthShrink:1}, + vertragstyp_kurzbz: {minWidth: 300}, + bezeichnung: {minWidth: 400}, vertragsstunden: { align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, - bottomCalc:"sum", bottomCalcParams:{precision:1} + bottomCalc:"sum", bottomCalcParams:{precision:1}, + minWidth: 300 }, betrag: { align:"right", formatter: form_formatNulltoStringNumber, - bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"} + bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}, + minWidth: 200 }, - storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip}, + storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip, minWidth: 200}, storniert_von: {visible: false}, letzterStatus_vorStorniert: {visible: false} }', // col properties diff --git a/application/views/lehre/lehrauftrag/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php index b04aa7985..27793e8ba 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftrag.php @@ -35,7 +35,7 @@ $this->load->view(
-
-
- load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?> -
-
-
+ load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?>
diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index b2fa3ac2f..d78f5ecfe 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -371,20 +371,22 @@ $filterWidgetArray = array( 'Angenommen von' ), 'datasetRepOptions' => '{ - height: 700, - layout:"fitColumns", // fit columns to width of table - responsiveLayout:"hide", // hide columns that dont fit on the table - movableColumns: true, // allows changing column - placeholder: func_placeholder(), - headerFilterPlaceholder: " ", - groupBy:"lehrveranstaltung_id", - groupToggleElement:"header", //toggle group on click anywhere in the group header - groupHeader: function(value, count, data, group){ - return func_groupHeader(data); - }, - footerElement: func_footerElement(), - columnCalcs:"both", // show column calculations at top and bottom of table and in groups - index: "row_index", // assign specific column as unique id (important for row indexing) + height: func_height(this), + layout:"fitColumns", // fit columns to width of table + layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded + persistentLayout:true, // enables persistence (default store in localStorage if available, else in cookie) + persistenceID: "orderLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables + autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated + movableColumns: true, // allows changing column order + placeholder: func_placeholder(), // shown on empty table (no data) + headerFilterPlaceholder: " ", + groupBy:"lehrveranstaltung_id", + groupToggleElement:"header", //toggle group on click anywhere in the group header + groupHeader: function(value, count, data, group){ + return func_groupHeader(data); + }, + columnCalcs:"both", // show column calculations at top and bottom of table and in groups + index: "row_index", // assign specific column as unique id (important for row indexing) selectable: true, // allows row selection selectableRangeMode: "click", // allows range selection using shift end click on end of range selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated @@ -409,46 +411,50 @@ $filterWidgetArray = array( dataLoaded: function(data){ func_dataLoaded(data, this); }, + tableWidgetFooter: { + selectButtons: true + } }', // tabulator properties 'datasetRepFieldsDefs' => '{ // column status is built dynamically in funcTableBuilt() row_index: {visible: false}, - personalnummer: {visible: false}, - lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%", + personalnummer: {visible: false, headerFilter:"input"}, + lehreinheit_id: {headerFilter:"input", bottomCalc:"count", minWidth: 115, bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}}, lehrveranstaltung_id: {headerFilter:"input"}, - lv_bezeichnung: {visible: false}, - projektarbeit_id: {visible: false}, + lv_bezeichnung: {visible: false, headerFilter:"input"}, + projektarbeit_id: {visible: false, headerFilter:"input"}, studiensemester_kurzbz: {headerFilter:"input"}, - studiengang_kz: {visible: false}, - stg_typ_kurzbz: {headerFilter:"input", width: "5%"}, + studiengang_kz: {visible: false, headerFilter:"input"}, + stg_typ_kurzbz: {headerFilter:"input", minWidth: 70}, semester: {headerFilter:"input"}, - studienplan_bezeichnung: {headerFilter:"input", width: "7%"}, + studienplan_bezeichnung: {headerFilter:"input"}, orgform_kurzbz: {headerFilter:"input"}, - person_id: {visible: false}, - typ: {headerFilter:"input"}, - auftrag: {headerFilter:"input", width:"15%"}, - lv_oe_kurzbz: {headerFilter:"input"}, - gruppe: {headerFilter:"input"}, + person_id: {visible: false, headerFilter:"input"}, + typ: {headerFilter:"input", minWidth:100}, + auftrag: {headerFilter:"input", minWidth:280}, + lv_oe_kurzbz: {headerFilter:"input", minWidth:80}, + gruppe: {headerFilter:"input", minWidth:120}, lektor: {headerFilter:"input", widthGrow: 3}, - stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, + stunden: {align:"right", minWidth: 80, formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:1}}, - stundensatz: {visible: false}, - betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber, + stundensatz: {visible: false, align:"right", minWidth: 100, formatter: form_formatNulltoStringNumber, + headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator}, + betrag: {align:"right", minWidth: 120, formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}}, - vertrag_id: {visible: false}, + vertrag_id: {visible: false, headerFilter:"input"}, vertrag_stunden: {visible: false}, vertrag_betrag: {visible: false}, - mitarbeiter_uid: {visible: false}, - bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"}, - erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"}, - akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"}, - bestellt_von: {visible: false}, - erteilt_von: {visible: false}, - akzeptiert_von: {visible: false} + mitarbeiter_uid: {visible: false, headerFilter:"input"}, + bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, minWidth: 100}, + erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, minWidth: 100}, + akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, minWidth: 100}, + bestellt_von: {visible: false, headerFilter:"input"}, + erteilt_von: {visible: false, headerFilter:"input"}, + akzeptiert_von: {visible: false, headerFilter:"input"} }', // col properties ); diff --git a/application/views/widgets/table/table.php b/application/views/widgets/table/table.php index e73aec335..936c32dc8 100644 --- a/application/views/widgets/table/table.php +++ b/application/views/widgets/table/table.php @@ -1,17 +1,21 @@ - +
+ +
+
-
- -
+
+ +
+
diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index 89e7cf3d5..575ad6b12 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -182,11 +182,90 @@ var FHC_TableWidget = { */ _turnOnEvents: function(tableWidgetDiv) { + var tableUniqueId = tableWidgetDiv.attr('tableUniqueId'); + // If the choosen dataset representation is tablesorter if (FHC_TableWidget._datasetRepresentation == DATASET_REP_TABLESORTER) { FHC_TableWidget._enableTableSorter(tableWidgetDiv); // enable the tablesorter } + + // If the choosen dataset representation is tabulator + if (FHC_TableWidget._datasetRepresentation == DATASET_REP_TABULATOR) + { + // --------------------------------------------------------------------------------------------------------- + // Add events to the elements + // --------------------------------------------------------------------------------------------------------- + + // Click-Event to download csv + tableWidgetDiv.find('#download-csv').on('click', function() + { + // BOM for correct UTF-8 char output + tableWidgetDiv.find("#tableWidgetTabulator").tabulator("download", "csv", "data.csv", {bom:true}); + }) + + // Click-Event to collapse settings div + tableWidgetDiv.find('#settings').on('click', function() + { + + //... auch unteren event für settings hier hinein + $('#tabulatorSettings-' + tableUniqueId).collapse('toggle'); + + $(this).toggleClass('active focus'); + + // De/activate and un/focus on clicked settings button + if(!$(this).hasClass('active focus')) + { + $(this).css({'background-color': 'white', 'border-color' : '#ccc', 'outline': 'none'}); + } + else + { + $(this).css({'background-color': '#e6e6e6'}); + } + }) + + /** + * Click-Event to select all rows + * Default is ALL rows. This can be modified via hook tableWidgetHook_selectAllButton. + */ + if (typeof tableWidgetHook_selectAllButton == 'function') + { + tableWidgetDiv.find('#select-all').on('click', function() { + tableWidgetHook_selectAllButton(tableWidgetDiv); + }); + } + else + { + tableWidgetDiv.find('#select-all').on('click', function() { + tableWidgetDiv.find("#tableWidgetTabulator").tabulator('selectRow', true); + }); + } + + // Click-Event to deselect all rows + tableWidgetDiv.find('#deselect-all').on('click', function() + { + tableWidgetDiv.find("#tableWidgetTabulator").tabulator('deselectRow'); + }) + + // Click-Event to toggle column-picker columns + tableWidgetDiv.find('.btn-select-col').on('click', function() + { + var selected = this.value; + + tableWidgetDiv.find("#tableWidgetTabulator").tabulator('toggleColumn', selected); + + $(this).toggleClass('active'); + + if(!$(this).hasClass('active')) + { + $(this).css('background-color', 'white'); + } + else + { + $(this).css('background-color', '#e6e6e6'); + } + }) + } }, _renderDataset: function(tableWidgetDiv, data) { @@ -443,11 +522,43 @@ var FHC_TableWidget = { options.columns = arrayTabulatorColumns; options.data = data.dataset; - + options.rowSelectionChanged = function(data, rows){ + _func_rowSelectionChanged(data, rows); + }; + options.columnVisibilityChanged = function(column, visible) { + _func_columnVisibilityChanged(column, visible); + }; + // Renders the tabulator tableWidgetDiv.find("#tableWidgetTabulator").tabulator(options); } } + + // ------------------------------------------------------------------------------------------------------------- + // Render TableWidget Header and -Footer + // ------------------------------------------------------------------------------------------------------------- + + // Render tableWidgetHeader + var tabulatorHeaderHTML = _renderTabulatorHeaderHTML(tableWidgetDiv); + tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML); + + // Render the collapsable div triggered by button in tableWidgetHeader + var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv); + tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML); + + /** + * tableWidgetFooter is NOT rendered by default. + * tableWidgetFooter is rendered, if tableWidgetFooter is set in tabulators datasetRepOptions. + * Setup options like this: + * tableWidgetFooter: { + * selectButtons: true // tableWidgetFooter properties are checked in _renderTabulatorFooterHTML function + * } + */ + if (options.tableWidgetFooter != 'undefined' && options.tableWidgetFooter != null) + { + var tabulatorFooterHTML = _renderTabulatorFooterHTML(options.tableWidgetFooter); + tableWidgetDiv.find('#tableWidgetFooter').append(tabulatorFooterHTML); + } }, /** @@ -584,6 +695,122 @@ var FHC_TableWidget = { } }; +//********************************************************************************************************************** +// Render functions +//********************************************************************************************************************** +/* + * Processed when row selection changed. + * Displays number of selected rows on row selection change. + */ +function _func_rowSelectionChanged (data, rows){ + + $('#number-selected').html("Ausgewählte Zeilen: " + rows.length + ""); +} + +/* Processed when columns visibility changed (e.g. using the column picker). + * Redraws the table to expand columns to table width. + */ +function _func_columnVisibilityChanged(column, visible){ + + var table = column.getTable(); + + table.redraw(); +} + +// Returns TableWidget Header HTML (download-, setting button...) +function _renderTabulatorHeaderHTML(tableWidgetDiv){ + + var tableUniqueId = tableWidgetDiv.attr('tableUniqueId'); + + var tabulatorHeaderHTML = ''; + tabulatorHeaderHTML += ''; + + return tabulatorHeaderHTML; +} + +// Returns collapsable HTML element for TableWidget header buttons +function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ + + var tableUniqueId = tableWidgetDiv.attr('tableUniqueId'); + + var tabulatorHeaderCollapseHTML = ''; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
'; + + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += ''; // end panel-heading + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
'; + + // Create column picker (Spalten einstellen) + tableWidgetDiv.find('#tableWidgetTabulator').tabulator('getColumns').forEach(function(column) + { + var field = column.getField(); + var title = column.getDefinition().title; + var active_status = column.getVisibility() ? 'active' : ''; + + // If certain columns should be excluded from the column picker (define them in a blacklist array) + if (typeof tableWidgetBlacklistArray_columnUnselectable != 'undefined' && + Array.isArray(tableWidgetBlacklistArray_columnUnselectable) && + tableWidgetBlacklistArray_columnUnselectable.length) + { + if ($.inArray(field, tableWidgetBlacklistArray_columnUnselectable) < 0) + { + tabulatorHeaderCollapseHTML += ''; + } + } + // Else provide all tabulator fields as pickable columns + else + { + tabulatorHeaderCollapseHTML += ''; + } + }); + + tabulatorHeaderCollapseHTML += '
'; // end btn-group + tabulatorHeaderCollapseHTML += '
'; // end panel-body + tabulatorHeaderCollapseHTML += '
'; // end panel-collapse + tabulatorHeaderCollapseHTML += '
'; // end panel + + tabulatorHeaderCollapseHTML += '
'; // end panel-group + tabulatorHeaderCollapseHTML += '
'; // end col + tabulatorHeaderCollapseHTML += '
'; // end row + + return tabulatorHeaderCollapseHTML; +} + +// Returns TableWidget Footer HTML (de-/select buttons,...) +function _renderTabulatorFooterHTML(tableWidgetFooterOptions){ + + var tabulatorFooterHTML = ''; + + // If property selectButtons is true, render 'Alle auswaehlen / Alle abwaehlen' buttons + if (tableWidgetFooterOptions.selectButtons != 'undefined' && tableWidgetFooterOptions.selectButtons == true) + { + tabulatorFooterHTML += ''; + tabulatorFooterHTML += '

'; + } + + return tabulatorFooterHTML; +} + /** * When JQuery is up */ diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index 03c72e2f2..31ade57fa 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -19,6 +19,18 @@ const ICON_LEHRAUFTRAG_APPROVED = ''; const ICON_LEHRAUFTRAG_CANCELLED = ''; +// Fields that should not be provided in the column picker +var tableWidgetBlacklistArray_columnUnselectable = [ + 'status', + 'row_index', + 'betrag', + 'vertrag_id', + 'vertrag_stunden', + 'vertrag_betrag', + 'storniert_von', // fields from cancelledLehrauftragData + 'letzterStatus_vorStorniert' // fields from cancelledLehrauftragData +]; + // ----------------------------------------------------------------------------------------------------------------- // Mutators - setter methods to manipulate table data when entering the tabulator // ----------------------------------------------------------------------------------------------------------------- @@ -254,66 +266,22 @@ function func_renderComplete(table){ ); } -// Tabulator footer element +// TableWidget Footer element // ----------------------------------------------------------------------------------------------------------------- -// Adds a footer with buttons select all / deselect all / download -function func_footerElement(){ - - var footer_html = '
'; - footer_html += '
'; - - footer_html += ''; - - footer_html += ''; - - footer_html += '
'; - footer_html += '
'; - - return footer_html; -} - -// Performs download CSV -function footer_downloadCSV(){ - $('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output -} - /* - * Performs select all + * Hook to overwrite TableWigdgets select-all-button behaviour * Select all (filtered) rows and ignore rows that are bestellt and erteilt */ -function footer_selectAll(){ - $('#tableWidgetTabulator').tabulator('getRows', true) - .filter(row => row.getData().bestellt != null && // bestellt - row.getData().erteilt != null && // AND erteilt - row.getData().akzeptiert == null && // AND NOT akzeptiert - row.getData().status != 'Geändert') // AND NOT geändert +function tableWidgetHook_selectAllButton(tableWidgetDiv){ + tableWidgetDiv.find("#tableWidgetTabulator").tabulator('getRows', true) + .filter(row => row.getData().bestellt != null && // bestellt + row.getData().erteilt != null && // AND erteilt + row.getData().akzeptiert == null && // AND NOT akzeptiert + row.getData().status != 'Geändert') // AND NOT geändert .forEach((row => row.select())); } -/* - * Performs deselect all - * Deselect all (filtered) rows - */ -function footer_deselectAll(){ - $('#tableWidgetTabulator').tabulator('deselectRow'); -} - -// Displays number of selected rows on row selection change -function func_rowSelectionChanged(data, rows){ - $('#number-selected').html("Für Annehmen ausgewählt: " + rows.length + ""); -} - // ----------------------------------------------------------------------------------------------------------------- // Tabulator columns format functions // ----------------------------------------------------------------------------------------------------------------- diff --git a/public/js/lehre/lehrauftrag/approveLehrauftrag.js b/public/js/lehre/lehrauftrag/approveLehrauftrag.js index 94e6af473..f38d251c0 100644 --- a/public/js/lehre/lehrauftrag/approveLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/approveLehrauftrag.js @@ -19,6 +19,17 @@ const ICON_LEHRAUFTRAG_ORDERED = ''; const ICON_LEHRAUFTRAG_CHANGED = ''; +// Fields that should not be provided in the column picker +var tableWidgetBlacklistArray_columnUnselectable = [ + 'status', + 'row_index', + 'personalnummer', + 'betrag', + 'vertrag_id', + 'vertrag_stunden', + 'vertrag_betrag' +]; + // ----------------------------------------------------------------------------------------------------------------- // Mutators - setter methods to manipulate table data when entering the tabulator // ----------------------------------------------------------------------------------------------------------------- @@ -301,65 +312,20 @@ function func_rowUpdated(row){ row.getElement().style["pointerEvents"] = "none"; } - -// Tabulator footer element +// TableWidget Footer element // ----------------------------------------------------------------------------------------------------------------- -// Adds a footer with buttons select all / deselect all / download -function func_footerElement(){ - - var footer_html = '
'; - footer_html += '
'; - - footer_html += ''; - - footer_html += ''; - - footer_html += '
'; - footer_html += '
'; - - return footer_html; -} - -// Performs download CSV -function footer_downloadCSV(){ - $('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output -} - /* - * Performs select all + * Hook to overwrite TableWigdgets select-all-button behaviour * Select all (filtered) rows that are bestellt */ -function footer_selectAll(){ - $('#tableWidgetTabulator').tabulator('getRows', true) - .filter(row => row.getData().personalnummer >= 0 && // NOT dummies - row.getData().bestellt != null && // AND bestellt - row.getData().erteilt == null && // AND NOT erteilt - row.getData().status != 'Geändert') // AND NOT geaendert - .forEach((row => row.select())); -} - -/* - * Performs deselect all - * Deselect all (filtered) rows - */ -function footer_deselectAll(){ - $('#tableWidgetTabulator').tabulator('deselectRow'); -} - -// Displays number of selected rows on row selection change -function func_rowSelectionChanged(data, rows){ - $('#number-selected').html("Für Erteilung ausgewählt: " + rows.length + ""); +function tableWidgetHook_selectAllButton(tableWidgetDiv){ + tableWidgetDiv.find("#tableWidgetTabulator").tabulator('getRows', true) + .filter(row => row.getData().personalnummer >= 0 && // NOT dummies + row.getData().bestellt != null && // AND bestellt + row.getData().erteilt == null && // AND NOT erteilt + row.getData().status != 'Geändert') // AND NOT geaendert + .forEach((row => row.select())); } // ----------------------------------------------------------------------------------------------------------------- diff --git a/public/js/lehre/lehrauftrag/orderLehrauftrag.js b/public/js/lehre/lehrauftrag/orderLehrauftrag.js index 4e58272e5..a9a59efbb 100644 --- a/public/js/lehre/lehrauftrag/orderLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/orderLehrauftrag.js @@ -18,6 +18,17 @@ const ICON_LEHRAUFTRAG_ORDERED = ''; const ICON_LEHRAUFTRAG_CHANGED = ''; +// Fields that should not be provided in the column picker +var tableWidgetBlacklistArray_columnUnselectable = [ + 'status', + 'row_index', + 'personalnummer', + 'betrag', + 'vertrag_id', + 'vertrag_stunden', + 'vertrag_betrag' +]; + // ----------------------------------------------------------------------------------------------------------------- // Mutators - setter methods to manipulate table data when entering the tabulator // ----------------------------------------------------------------------------------------------------------------- @@ -309,64 +320,20 @@ function func_rowUpdated(row){ row.getElement().style["pointerEvents"] = "none"; } -// Tabulator footer element +// TableWidget Footer element // ----------------------------------------------------------------------------------------------------------------- -// Adds a footer with buttons select all / deselect all / download -function func_footerElement(){ - - var footer_html = '
'; - footer_html += '
'; - - footer_html += ''; - - footer_html += ''; - - footer_html += '
'; - footer_html += '
'; - - return footer_html; -} - -// Performs download CSV -function footer_downloadCSV(){ - $('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output -} - /* - * Performs select all + * Hook to overwrite TableWigdgets select-all-button behaviour * Select all (filtered) rows and ignore rows which have status bestellt */ -function footer_selectAll(){ - $('#tableWidgetTabulator').tabulator('getRows', true) - .filter(row => row.getData().personalnummer >= 0 && // NOT dummies - row.getData().bestellt == null || // AND neu - row.getData().bestellt != null && // OR (bestellt - row.getData().status == 'Geändert') // AND geaendert) - .forEach((row => row.select())); -} - -/* - * Performs deselect all - * Deselect all (filtered) rows - */ -function footer_deselectAll(){ - $('#tableWidgetTabulator').tabulator('deselectRow'); -} - -// Displays number of selected rows on row selection change -function func_rowSelectionChanged(data, rows){ - $('#number-selected').html("Für Bestellung ausgewählt: " + rows.length + ""); +function tableWidgetHook_selectAllButton(tableWidgetDiv){ + tableWidgetDiv.find("#tableWidgetTabulator").tabulator('getRows', true) + .filter(row => row.getData().personalnummer >= 0 && // NOT dummies + row.getData().bestellt == null || // AND neu + row.getData().bestellt != null && // OR (bestellt + row.getData().status == 'Geändert') // AND geaendert) + .forEach((row => row.select())); } // ----------------------------------------------------------------------------------------------------------------- From 198a3eb2d541cd80512ce88060790289fb51516e Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 28 Jan 2020 12:29:18 +0100 Subject: [PATCH 02/34] Adjusted tabulator size to window screen size --- public/js/lehre/lehrauftrag/acceptLehrauftrag.js | 12 ++++++++++++ public/js/lehre/lehrauftrag/approveLehrauftrag.js | 11 +++++++++++ public/js/lehre/lehrauftrag/orderLehrauftrag.js | 11 +++++++++++ 3 files changed, 34 insertions(+) diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index 31ade57fa..c3d89ac52 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -93,6 +93,11 @@ function hf_filterStringnumberWithOperator(headerValue, rowValue, rowData){ // Tabulator table format functions // ----------------------------------------------------------------------------------------------------------------- +// Returns relative height (depending on screen size) +function func_height(table){ + return $(window).height() * 0.50; +} + // Displays text when table is empty function func_placeholder() { @@ -432,6 +437,13 @@ storniert_tooltip = function(cell){ } $(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); + }); + // Show all rows $("#show-all").click(function(){ $('#tableWidgetTabulator').tabulator('clearFilter'); diff --git a/public/js/lehre/lehrauftrag/approveLehrauftrag.js b/public/js/lehre/lehrauftrag/approveLehrauftrag.js index f38d251c0..29e2d9651 100644 --- a/public/js/lehre/lehrauftrag/approveLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/approveLehrauftrag.js @@ -106,6 +106,11 @@ function func_initialFilter(){ // Tabulator table format functions // ----------------------------------------------------------------------------------------------------------------- +// Returns relative height (depending on screen size) +function func_height(table){ + return $(window).height() * 0.50; +} + // Displays text when table is empty function func_placeholder() { @@ -492,6 +497,12 @@ akzeptiert_tooltip = function(cell){ } $(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); + }); + // Show all rows $("#show-all").click(function(){ $('#tableWidgetTabulator').tabulator('clearFilter'); diff --git a/public/js/lehre/lehrauftrag/orderLehrauftrag.js b/public/js/lehre/lehrauftrag/orderLehrauftrag.js index a9a59efbb..6471d988f 100644 --- a/public/js/lehre/lehrauftrag/orderLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/orderLehrauftrag.js @@ -111,6 +111,11 @@ function func_dataLoaded(data, table){ // Tabulator table format functions // ----------------------------------------------------------------------------------------------------------------- +// Returns relative height (depending on screen size) +function func_height(table){ + return $(window).height() * 0.50; +} + // Displays text when table is empty function func_placeholder() { @@ -509,6 +514,12 @@ akzeptiert_tooltip = function(cell){ $(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); + }); + // Show all rows $("#show-all").click(function(){ $('#tableWidgetTabulator').tabulator('clearFilter'); From f22931ffa8939449e4a0d77d050957c18faadb2e Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 28 Jan 2020 12:33:23 +0100 Subject: [PATCH 03/34] Adapted row color when hovering on selected rows Before row color was changing from selected-blue to grey, although row was still selected, which was somehow confusing for the user. Now color stays blue. --- public/css/Tabulator.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/css/Tabulator.css b/public/css/Tabulator.css index 359f29e72..eac315f93 100644 --- a/public/css/Tabulator.css +++ b/public/css/Tabulator.css @@ -12,3 +12,8 @@ .tabulator-page.active { color: #337ab7 !important; } + +/* Avoid confusing color change when hovering over selected rows */ +.tabulator-row.tabulator-selected:hover { + background-color: #769bcc !important; +} \ No newline at end of file From bf1427e90104c40af12f56b7c8c33275b57c902a Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 29 Jan 2020 12:09:10 +0100 Subject: [PATCH 04/34] Added border to tabulator / tabulator header cells --- public/css/Tabulator.css | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/public/css/Tabulator.css b/public/css/Tabulator.css index eac315f93..ffbeed606 100644 --- a/public/css/Tabulator.css +++ b/public/css/Tabulator.css @@ -16,4 +16,18 @@ /* Avoid confusing color change when hovering over selected rows */ .tabulator-row.tabulator-selected:hover { background-color: #769bcc !important; +} + +/* Frame the table */ +.tabulator { + border: 1px solid lightgrey; + border-bottom: none; + margin-top: 20px; + border-top-left-radius: 0.5em; + border-top-right-radius: 0.5em; +} + +/* Frame the header cells */ +.tabulator-col:not(:first-of-type) { + border-left: 0.5px solid lightgrey; } \ No newline at end of file From bc1c33432f9ace5a0398bf195cd26c02814051a2 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 30 Jan 2020 12:24:28 +0100 Subject: [PATCH 05/34] Avoid of triple points at end of header title (more space) --- public/css/Tabulator.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/css/Tabulator.css b/public/css/Tabulator.css index ffbeed606..718295f4e 100644 --- a/public/css/Tabulator.css +++ b/public/css/Tabulator.css @@ -30,4 +30,9 @@ /* Frame the header cells */ .tabulator-col:not(:first-of-type) { border-left: 0.5px solid lightgrey; +} + +/* More space for header title (avoids triple points at the end) */ +.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title { + overflow: initial; } \ No newline at end of file From 3b2b279bf99b4b1e23fdbd439d90c32c82860ef1 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 30 Jan 2020 12:27:13 +0100 Subject: [PATCH 06/34] Changed default visibility / order of columns Now fitted to the users primary needs. Columns can be displayed/hidden via Columnpicker by user afterwards. --- .../lehrauftrag/acceptLehrauftragData.php | 35 ++++++------ .../lehrauftrag/approveLehrauftragData.php | 40 +++++++------- .../lehrauftrag/orderLehrauftragData.php | 55 ++++++++++--------- 3 files changed, 69 insertions(+), 61 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index 08cc94e5f..3211e86a9 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -9,19 +9,19 @@ $query = ' SELECT /* provide extra row index for tabulator, because no other column has unique ids */ ROW_NUMBER() OVER () AS "row_index", + auftrag, + stg_typ_kurzbz, + gruppe, + typ, lehreinheit_id, lehrveranstaltung_id, projektarbeit_id, studiensemester_kurzbz, studiengang_kz, - stg_typ_kurzbz, semester, orgform_kurzbz, person_id, - typ, - auftrag, lv_oe_kurzbz, - gruppe, stunden, betrag, vertrag_id, @@ -299,19 +299,19 @@ $filterWidgetArray = array( 'reloadDataset' => true, // reload query on page refresh 'columnsAliases' => array( // TODO: use phrasen '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', - 'Studiengang', 'Semester', 'OrgForm', 'Person-ID', - 'Typ', - 'LV- / Projektbezeichnung', 'Organisationseinheit', - 'Gruppe', 'Stunden', 'Betrag', 'Vertrag-ID', @@ -365,19 +365,22 @@ $filterWidgetArray = array( }', // tabulator properties 'datasetRepFieldsDefs' => '{ row_index: {visible:false}, // necessary for row indexing - lehreinheit_id: {headerFilter:"input", bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}}, - lehrveranstaltung_id: {headerFilter:"input"}, + auftrag: { + headerFilter:"input", widthGrow: 3, + bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();} + }, + stg_typ_kurzbz: {headerFilter:"input"}, + gruppe: {headerFilter:"input"}, + typ: {headerFilter:"input"}, + lehreinheit_id: {visible: false, headerFilter:"input"}, + lehrveranstaltung_id: {visible: false, headerFilter:"input"}, projektarbeit_id: {visible: false, headerFilter:"input"}, studiensemester_kurzbz: {visible: false, headerFilter:"input"}, studiengang_kz: {visible: false, headerFilter:"input"}, - stg_typ_kurzbz: {headerFilter:"input"}, semester: {headerFilter:"input"}, - orgform_kurzbz: {headerFilter:"input"}, + orgform_kurzbz: {visible: false, headerFilter:"input"}, person_id: {visible: false, headerFilter:"input"}, - typ: {headerFilter:"input"}, - auftrag: {headerFilter:"input"}, - lv_oe_kurzbz: {headerFilter:"input"}, - gruppe: {headerFilter:"input"}, + lv_oe_kurzbz: {visible: false, headerFilter:"input"}, stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:1} diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index 111e7bd01..4ad03e138 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -9,20 +9,20 @@ SELECT /* provide extra row index for tabulator, because no other column has unique ids */ ROW_NUMBER() OVER () AS "row_index", personalnummer, + auftrag, + stg_typ_kurzbz, + gruppe, + typ, lehreinheit_id, lehrveranstaltung_id, lv_bezeichnung, projektarbeit_id, studiensemester_kurzbz, studiengang_kz, - stg_typ_kurzbz, semester, orgform_kurzbz, person_id, - typ, - auftrag, lv_oe_kurzbz, - gruppe, lektor, stunden, betrag, @@ -308,20 +308,20 @@ $filterWidgetArray = array( 'columnsAliases' => array( // TODO: use phrasen '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', - 'Studiengang', 'Semester', 'OrgForm', 'Person-ID', - 'Typ', - 'LV- / Projektbezeichnung', 'Organisationseinheit', - 'Gruppe', 'Lektor', 'Stunden', 'Betrag', @@ -384,22 +384,24 @@ $filterWidgetArray = array( // column status is built dynamically in funcTableBuilt(), row_index: {visible:false}, // necessary for row indexing personalnummer: {visible: false, headerFilter:"input"}, - lehreinheit_id: {headerFilter:"input", bottomCalc:"count", - bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();},}, - lehrveranstaltung_id: {headerFilter:"input"}, + auftrag: { + headerFilter:"input", widthGrow: 2, + bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();} + }, + stg_typ_kurzbz: {headerFilter:"input"}, + gruppe: {headerFilter:"input"}, + typ: {headerFilter:"input"}, + lehreinheit_id: {visible: false, headerFilter:"input"}, + lehrveranstaltung_id: {visible: false, headerFilter:"input"}, lv_bezeichnung: {visible: false, headerFilter:"input"}, projektarbeit_id: {visible: false, headerFilter:"input"}, - studiensemester_kurzbz: {headerFilter:"input"}, + studiensemester_kurzbz: {visible: false, headerFilter:"input"}, studiengang_kz: {visible: false, headerFilter:"input"}, - stg_typ_kurzbz: {headerFilter:"input"}, semester: {headerFilter:"input"}, - orgform_kurzbz: {headerFilter:"input"}, + orgform_kurzbz: {visible: false, headerFilter:"input"}, person_id: {visible: false, headerFilter:"input"}, - typ: {headerFilter:"input"}, - auftrag: {headerFilter:"input"}, - lv_oe_kurzbz: {headerFilter:"input"}, - gruppe: {headerFilter:"input"}, - lektor: {headerFilter:"input"}, + lv_oe_kurzbz: {visible: false, headerFilter:"input"}, + lektor: {headerFilter:"input", widthGrow: 2}, stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:1}}, diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index d78f5ecfe..5576e7886 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -9,13 +9,16 @@ SELECT /* provide extra row index for tabulator, because no other column has unique ids */ ROW_NUMBER() OVER () AS "row_index", personalnummer, + auftrag, + stg_typ_kurzbz, + gruppe, + typ, lehreinheit_id, lehrveranstaltung_id, lv_bezeichnung, projektarbeit_id, studiensemester_kurzbz, studiengang_kz, - stg_typ_kurzbz, semester, /* get valid STPL(s), to which the lehrveranstaltung is assigned to (can be more) */ /* therefore join over lv, studiensemester and semester */ @@ -49,10 +52,7 @@ SELECT ) AS "studienplan_bezeichnung", orgform_kurzbz, person_id, - typ, - auftrag, lv_oe_kurzbz, - gruppe, lektor, stunden, stundensatz, @@ -340,21 +340,22 @@ $filterWidgetArray = array( 'columnsAliases' => array( // TODO: use phrasen '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', - 'Studiengang', + 'Semester', 'Studienplan', 'OrgForm', 'Person-ID', - 'Typ', - 'LV- / Projektbezeichnung', 'Organisationseinheit', - 'Gruppe', 'Lektor', 'Stunden', 'Stundensatz', @@ -419,29 +420,31 @@ $filterWidgetArray = array( // column status is built dynamically in funcTableBuilt() row_index: {visible: false}, personalnummer: {visible: false, headerFilter:"input"}, - lehreinheit_id: {headerFilter:"input", bottomCalc:"count", minWidth: 115, - bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}}, - lehrveranstaltung_id: {headerFilter:"input"}, + auftrag: { + headerFilter:"input", widthGrow: 2, + bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();} + }, + stg_typ_kurzbz: {headerFilter:"input"}, + gruppe: {headerFilter:"input"}, + typ: {headerFilter:"input"}, + lehreinheit_id: {visible: false, headerFilter:"input"}, + lehrveranstaltung_id: {visible: false, headerFilter:"input"}, lv_bezeichnung: {visible: false, headerFilter:"input"}, projektarbeit_id: {visible: false, headerFilter:"input"}, - studiensemester_kurzbz: {headerFilter:"input"}, + studiensemester_kurzbz: {visible: false, headerFilter:"input"}, studiengang_kz: {visible: false, headerFilter:"input"}, - stg_typ_kurzbz: {headerFilter:"input", minWidth: 70}, semester: {headerFilter:"input"}, - studienplan_bezeichnung: {headerFilter:"input"}, - orgform_kurzbz: {headerFilter:"input"}, + studienplan_bezeichnung: {visible: false, headerFilter:"input"}, + orgform_kurzbz: {visible: false, headerFilter:"input", widthGrow: 2}, person_id: {visible: false, headerFilter:"input"}, - typ: {headerFilter:"input", minWidth:100}, - auftrag: {headerFilter:"input", minWidth:280}, - lv_oe_kurzbz: {headerFilter:"input", minWidth:80}, - gruppe: {headerFilter:"input", minWidth:120}, - lektor: {headerFilter:"input", widthGrow: 3}, - stunden: {align:"right", minWidth: 80, formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, + lv_oe_kurzbz: {headerFilter:"input"}, + lektor: {headerFilter:"input", widthGrow: 2}, + stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:1}}, - stundensatz: {visible: false, align:"right", minWidth: 100, formatter: form_formatNulltoStringNumber, + stundensatz: {visible: false, align:"right", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator}, - betrag: {align:"right", minWidth: 120, formatter: form_formatNulltoStringNumber, + betrag: {align:"right", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}}, @@ -449,9 +452,9 @@ $filterWidgetArray = array( vertrag_stunden: {visible: false}, vertrag_betrag: {visible: false}, mitarbeiter_uid: {visible: false, headerFilter:"input"}, - bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, minWidth: 100}, - erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, minWidth: 100}, - akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, minWidth: 100}, + bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip}, + erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip}, + akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip}, bestellt_von: {visible: false, headerFilter:"input"}, erteilt_von: {visible: false, headerFilter:"input"}, akzeptiert_von: {visible: false, headerFilter:"input"} From 8c36b0b67a5a1303de3a89ccf0b1f527f837af37 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 30 Jan 2020 12:28:51 +0100 Subject: [PATCH 07/34] =?UTF-8?q?Reduced=20default=20minimum=20size=20of?= =?UTF-8?q?=20columns=20in=20Stornierte=20Lehrauftr=C3=A4ge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/lehre/lehrauftrag/cancelledLehrauftragData.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php index 20629cb84..2dbecbb69 100644 --- a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php @@ -87,12 +87,12 @@ $tableWidgetArray = array( 'datasetRepFieldsDefs' => '{ vertrag_id: {visible: false}, vertragsstunden_studiensemester_kurzbz: {visible: false, widthShrink:1}, - vertragstyp_kurzbz: {minWidth: 300}, - bezeichnung: {minWidth: 400}, + vertragstyp_kurzbz: {minWidth: 200}, + bezeichnung: {minWidth: 200}, vertragsstunden: { align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, bottomCalc:"sum", bottomCalcParams:{precision:1}, - minWidth: 300 + minWidth: 200 }, betrag: { align:"right", formatter: form_formatNulltoStringNumber, From e1df2cbf23ed86db046736cc1514d46e72bd47bc Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 30 Jan 2020 12:30:26 +0100 Subject: [PATCH 08/34] Added tooltips on column headers (displaying title) in TableWidget Now this is a standard behaviour of TableWidget. --- public/js/TableWidget.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index 575ad6b12..7c1b01b93 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -522,6 +522,7 @@ var FHC_TableWidget = { options.columns = arrayTabulatorColumns; options.data = data.dataset; + options.tooltipsHeader = true; // set header tooltip with column title options.rowSelectionChanged = function(data, rows){ _func_rowSelectionChanged(data, rows); }; From 6897ccdd6b4973e260ebbb355c0f751dc0dc7f10 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 30 Jan 2020 12:43:50 +0100 Subject: [PATCH 09/34] Moved empty table placeholder text to TableWidget Now this is a standard behaviour of TableWidget. --- .../views/lehre/lehrauftrag/acceptLehrauftragData.php | 1 - .../views/lehre/lehrauftrag/approveLehrauftragData.php | 1 - .../views/lehre/lehrauftrag/cancelledLehrauftragData.php | 1 - .../views/lehre/lehrauftrag/orderLehrauftragData.php | 1 - public/js/TableWidget.js | 8 ++++++++ public/js/lehre/lehrauftrag/acceptLehrauftrag.js | 6 ------ public/js/lehre/lehrauftrag/approveLehrauftrag.js | 6 ------ public/js/lehre/lehrauftrag/orderLehrauftrag.js | 6 ------ 8 files changed, 8 insertions(+), 22 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index 3211e86a9..3fa2c603c 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -332,7 +332,6 @@ $filterWidgetArray = array( persistenceID: "acceptLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated movableColumns: true, // allows changing column - placeholder: func_placeholder(), headerFilterPlaceholder: " ", index: "row_index", // assign specific column as unique id (important for row indexing) selectable: true, // allow row selection diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index 4ad03e138..7cc5bd533 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -344,7 +344,6 @@ $filterWidgetArray = array( persistenceID: "approveLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated movableColumns: true, // allows changing column - placeholder: func_placeholder(), headerFilterPlaceholder: " ", groupBy:"lehrveranstaltung_id", groupToggleElement:"header", //toggle group on click anywhere in the group header diff --git a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php index 2dbecbb69..cbf7d8b55 100644 --- a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php @@ -70,7 +70,6 @@ $tableWidgetArray = array( persistenceID: "cancelledLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated movableColumns: true, // allows changing column - placeholder: func_placeholder(), rowFormatter:function(row){ func_rowFormatter(row); }, diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index 5576e7886..f4a122deb 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -379,7 +379,6 @@ $filterWidgetArray = array( persistenceID: "orderLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated movableColumns: true, // allows changing column order - placeholder: func_placeholder(), // shown on empty table (no data) headerFilterPlaceholder: " ", groupBy:"lehrveranstaltung_id", groupToggleElement:"header", //toggle group on click anywhere in the group header diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index 7c1b01b93..7b914cc60 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -523,6 +523,7 @@ var FHC_TableWidget = { options.columns = arrayTabulatorColumns; options.data = data.dataset; options.tooltipsHeader = true; // set header tooltip with column title + options.placeholder = _func_placeholder(); // display text when table is empty options.rowSelectionChanged = function(data, rows){ _func_rowSelectionChanged(data, rows); }; @@ -718,6 +719,13 @@ function _func_columnVisibilityChanged(column, visible){ table.redraw(); } +/* + * Displays text when table is empty + */ +function _func_placeholder(){ + return "

Keine Daten vorhanden.

"; +} + // Returns TableWidget Header HTML (download-, setting button...) function _renderTabulatorHeaderHTML(tableWidgetDiv){ diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index c3d89ac52..341a325fc 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -98,12 +98,6 @@ function func_height(table){ return $(window).height() * 0.50; } -// Displays text when table is empty -function func_placeholder() -{ - return "

Keine Daten vorhanden.

"; -} - // Formats the rows function func_rowFormatter(row){ var bestellt = row.getData().bestellt; diff --git a/public/js/lehre/lehrauftrag/approveLehrauftrag.js b/public/js/lehre/lehrauftrag/approveLehrauftrag.js index 29e2d9651..7326a95c1 100644 --- a/public/js/lehre/lehrauftrag/approveLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/approveLehrauftrag.js @@ -111,12 +111,6 @@ function func_height(table){ return $(window).height() * 0.50; } -// Displays text when table is empty -function func_placeholder() -{ - return "

Keine Daten vorhanden.

"; -} - // Formats the group header function func_groupHeader(data){ return data[0].lv_bezeichnung + "  " + ' ( LV-ID: ' + data[0].lehrveranstaltung_id + ' )'; // change name to lehrveranstaltung; diff --git a/public/js/lehre/lehrauftrag/orderLehrauftrag.js b/public/js/lehre/lehrauftrag/orderLehrauftrag.js index 6471d988f..379a02b6a 100644 --- a/public/js/lehre/lehrauftrag/orderLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/orderLehrauftrag.js @@ -116,12 +116,6 @@ function func_height(table){ return $(window).height() * 0.50; } -// Displays text when table is empty -function func_placeholder() -{ - return "

Keine Daten vorhanden.

"; -} - // Formats the group header function func_groupHeader(data) { return data[0].lv_bezeichnung + "  " + ' ( LV-ID: ' + data[0].lehrveranstaltung_id + ' )'; // change name to lehrveranstaltung; From bce7f60df43509875467378ecf89c4ec7e986bbc Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 30 Jan 2020 13:22:49 +0100 Subject: [PATCH 10/34] Moved layout options to TableWidget Now this is a standard behaviour of TableWidget. --- .../views/lehre/lehrauftrag/acceptLehrauftragData.php | 3 --- .../views/lehre/lehrauftrag/approveLehrauftragData.php | 3 --- .../views/lehre/lehrauftrag/cancelledLehrauftragData.php | 6 ------ .../views/lehre/lehrauftrag/orderLehrauftragData.php | 3 --- public/js/TableWidget.js | 7 +++++-- 5 files changed, 5 insertions(+), 17 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index 3fa2c603c..7b9443edb 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -328,10 +328,7 @@ $filterWidgetArray = array( 'datasetRepOptions' => '{ height: func_height(this), layout: "fitColumns", // fit columns to width of table - persistentLayout:true, // enables persistence (default store in localStorage if available, else in cookie) - persistenceID: "acceptLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated - movableColumns: true, // allows changing column headerFilterPlaceholder: " ", index: "row_index", // assign specific column as unique id (important for row indexing) selectable: true, // allow row selection diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index 7cc5bd533..5e1ae27b6 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -340,10 +340,7 @@ $filterWidgetArray = array( height: func_height(this), layout: "fitColumns", // fit columns to width of table layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded - persistentLayout:true, // enables persistence (default store in localStorage if available, else in cookie) - persistenceID: "approveLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated - movableColumns: true, // allows changing column headerFilterPlaceholder: " ", groupBy:"lehrveranstaltung_id", groupToggleElement:"header", //toggle group on click anywhere in the group header diff --git a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php index cbf7d8b55..ba7b0d4f6 100644 --- a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php @@ -64,12 +64,6 @@ $tableWidgetArray = array( 'Storniert am' ), 'datasetRepOptions' => '{ - layout: "fitColumns", // fit columns to width of table - layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded - persistentLayout: true, // enables persistence (default store in localStorage if available, else in cookie) - persistenceID: "cancelledLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables - autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated - movableColumns: true, // allows changing column rowFormatter:function(row){ func_rowFormatter(row); }, diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index f4a122deb..ca671fbd4 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -375,10 +375,7 @@ $filterWidgetArray = array( height: func_height(this), layout:"fitColumns", // fit columns to width of table layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded - persistentLayout:true, // enables persistence (default store in localStorage if available, else in cookie) - persistenceID: "orderLehrauftrag", // TableWidget unique id to store persistence data seperately for multiple tables autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated - movableColumns: true, // allows changing column order headerFilterPlaceholder: " ", groupBy:"lehrveranstaltung_id", groupToggleElement:"header", //toggle group on click anywhere in the group header diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index 7b914cc60..204d69280 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -522,8 +522,11 @@ var FHC_TableWidget = { options.columns = arrayTabulatorColumns; options.data = data.dataset; - options.tooltipsHeader = true; // set header tooltip with column title - options.placeholder = _func_placeholder(); // display text when table is empty + options.persistentLayout = true; // enables persistence (default store in localStorage if available, else in cookie) + options.persistenceID = data.tableUniqueId; // TableWidget unique id to store persistence data seperately for multiple tables + options.movableColumns = true; // allows changing column order + options.tooltipsHeader = true; // set header tooltip with column title + options.placeholder = _func_placeholder(); // display text when table is empty options.rowSelectionChanged = function(data, rows){ _func_rowSelectionChanged(data, rows); }; From b2542b5fcca581f37a9f9ef1794009edefd06e09 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 30 Jan 2020 17:09:31 +0100 Subject: [PATCH 11/34] Added HELP button and collapsable help-info to TableWidget [ALPHA VERSION] Now this is a standard behaviour of TableWidget. Removed also table related help information from general Hilfe-zu-dieser-Seite help. [ALPHA VERSION]: minor issue to be fixed: button color not toggling correctly when opening help then settings (and way round) --- .../lehre/lehrauftrag/acceptLehrauftrag.php | 22 ----- .../lehre/lehrauftrag/approveLehrauftrag.php | 22 ----- .../lehre/lehrauftrag/orderLehrauftrag.php | 23 ------ public/css/Tabulator.css | 1 - public/js/TableWidget.js | 82 ++++++++++++++++++- 5 files changed, 81 insertions(+), 69 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index 14ebacecb..15de019e5 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -83,28 +83,6 @@ $this->load->view(

- -

Auswahl

-
- -
-
- -

Ansicht

-
- Spaltenbreite verändern -

- 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. -

-
-
diff --git a/application/views/lehre/lehrauftrag/approveLehrauftrag.php b/application/views/lehre/lehrauftrag/approveLehrauftrag.php index f36ae7dc7..ed1852654 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftrag.php @@ -123,28 +123,6 @@ $this->load->view(
-

Auswahl

-
- -
-
- -

Ansicht

-
- Spaltenbreite verändern -

- 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. -

-
-
- diff --git a/application/views/lehre/lehrauftrag/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php index 27793e8ba..1e79bee0d 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftrag.php @@ -124,29 +124,6 @@ $this->load->view(
- -

Auswahl

-
- -
-
- -

Ansicht

-
- Spaltenbreite verändern -

- 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. -

-
-
- diff --git a/public/css/Tabulator.css b/public/css/Tabulator.css index 718295f4e..0545101c9 100644 --- a/public/css/Tabulator.css +++ b/public/css/Tabulator.css @@ -22,7 +22,6 @@ .tabulator { border: 1px solid lightgrey; border-bottom: none; - margin-top: 20px; border-top-left-radius: 0.5em; border-top-right-radius: 0.5em; } diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index 204d69280..bc49b8c69 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -204,6 +204,32 @@ var FHC_TableWidget = { tableWidgetDiv.find("#tableWidgetTabulator").tabulator("download", "csv", "data.csv", {bom:true}); }) + // Click-Event to collapse help div + tableWidgetDiv.find('#help').on('click', function() + { + + //... auch unteren event für settings hier hinein + $('#tabulatorHelp-' + tableUniqueId).collapse('toggle'); + + $(this).toggleClass('active focus'); + + // De/activate and un/focus on clicked settings button + if(!$(this).hasClass('active focus')) + { + $(this).css({'background-color': 'white', 'border-color' : '#ccc', 'outline': 'none'}); + } + else + { + $(this).css({'background-color': '#e6e6e6'}); + } + + if($('#tabulatorSettings-' + tableUniqueId).hasClass('collapse in')) + { + $('#tabulatorSettings-' + tableUniqueId).removeClass('in'); + // $('#settings').toggleClass('active focus'); + } + }) + // Click-Event to collapse settings div tableWidgetDiv.find('#settings').on('click', function() { @@ -222,6 +248,12 @@ var FHC_TableWidget = { { $(this).css({'background-color': '#e6e6e6'}); } + + if($('#tabulatorHelp-' + tableUniqueId).hasClass('collapse in')) + { + $('#tabulatorHelp-' + tableUniqueId).removeClass('in'); + // $('#help').toggleClass('active focus'); + } }) /** @@ -738,7 +770,8 @@ function _renderTabulatorHeaderHTML(tableWidgetDiv){ tabulatorHeaderHTML += ''; @@ -751,6 +784,8 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ var tableUniqueId = tableWidgetDiv.attr('tableUniqueId'); var tabulatorHeaderCollapseHTML = ''; + + // CollapseHTML 'Settings' tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; @@ -799,6 +834,51 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ tabulatorHeaderCollapseHTML += '
'; // end col tabulatorHeaderCollapseHTML += '
'; // end row + // CollapseHTML 'Help' + tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
'; + 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 + + 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 += '
'; // end well + tabulatorHeaderCollapseHTML += '
'; // end col collapse + tabulatorHeaderCollapseHTML += '
'; // end row + return tabulatorHeaderCollapseHTML; } From 3a8e7427a7683f9413336e81ed078644ef814a35 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 11 Feb 2020 08:59:23 +0100 Subject: [PATCH 12/34] Enhanced active status behaviour of button group Active status of button help / settings was not clear before. This is corrected now. --- public/js/TableWidget.js | 63 +++++++++++++++------------------------- 1 file changed, 24 insertions(+), 39 deletions(-) diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index bc49b8c69..eebe5265c 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -204,57 +204,40 @@ var FHC_TableWidget = { tableWidgetDiv.find("#tableWidgetTabulator").tabulator("download", "csv", "data.csv", {bom:true}); }) - // Click-Event to collapse help div + // Click-Event to toggle the collapsable help panel tableWidgetDiv.find('#help').on('click', function() { + // Hide the collapsable settings panel, if it actually shown + $('#tabulatorSettings-' + tableUniqueId).collapse('hide'); - //... auch unteren event für settings hier hinein + // Toggle the collapsable help panel $('#tabulatorHelp-' + tableUniqueId).collapse('toggle'); - - $(this).toggleClass('active focus'); - - // De/activate and un/focus on clicked settings button - if(!$(this).hasClass('active focus')) - { - $(this).css({'background-color': 'white', 'border-color' : '#ccc', 'outline': 'none'}); - } - else - { - $(this).css({'background-color': '#e6e6e6'}); - } - - if($('#tabulatorSettings-' + tableUniqueId).hasClass('collapse in')) - { - $('#tabulatorSettings-' + tableUniqueId).removeClass('in'); - // $('#settings').toggleClass('active focus'); - } }) - // Click-Event to collapse settings div + // Click-Event to toggle the collapsable settings panel tableWidgetDiv.find('#settings').on('click', function() { + // Hide the collapsable help panel, if it actually shown + $('#tabulatorHelp-' + tableUniqueId).collapse('hide'); - //... auch unteren event für settings hier hinein + // Toggle the collapsable settings panel $('#tabulatorSettings-' + tableUniqueId).collapse('toggle'); + }) - $(this).toggleClass('active focus'); - - // De/activate and un/focus on clicked settings button - if(!$(this).hasClass('active focus')) + /* Beautify button group behaviour + * Let buttons stay active even until they are clicked again to close the collapsable help- oder setting panels + * Also remove the disturbing button focus behaviour + */ + $(".btn-group > .btn").click(function(){ + if ($(this).hasClass("active")) { - $(this).css({'background-color': 'white', 'border-color' : '#ccc', 'outline': 'none'}); + $(this).removeClass('active').css('outline', 'none'); } else { - $(this).css({'background-color': '#e6e6e6'}); + $(this).addClass("active").css('outline', 'none').siblings().removeClass("active"); } - - if($('#tabulatorHelp-' + tableUniqueId).hasClass('collapse in')) - { - $('#tabulatorHelp-' + tableUniqueId).removeClass('in'); - // $('#help').toggleClass('active focus'); - } - }) + }); /** * Click-Event to select all rows @@ -774,6 +757,7 @@ function _renderTabulatorHeaderHTML(tableWidgetDiv){ tabulatorHeaderHTML += ''; tabulatorHeaderHTML += ''; tabulatorHeaderHTML += ''; + tabulatorHeaderHTML += '


'; return tabulatorHeaderHTML; } @@ -786,7 +770,6 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ var tabulatorHeaderCollapseHTML = ''; // CollapseHTML 'Settings' - tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; @@ -794,10 +777,13 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += ''; // end panel-heading - tabulatorHeaderCollapseHTML += '
'; + tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; @@ -835,7 +821,6 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ tabulatorHeaderCollapseHTML += '
'; // end row // CollapseHTML 'Help' - tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; tabulatorHeaderCollapseHTML += '
'; From f4747e431cf6eed28e067337f6c87c46ac10e98a Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 24 Mar 2020 17:48:59 +0100 Subject: [PATCH 13/34] Filtered out Lehrauftraege with non-employees and where stunden is 0 (or null) Now the initial filter and the new/changed filter will filter out Lehrauftraege, where no mitarbeiter exist or stunden are not assigned to. The 'show-all'-filter still displays these Lehrauftraege, but will set them to unselectable. A tooltip on the status-icon will show an appropriate information- --- .../js/lehre/lehrauftrag/orderLehrauftrag.js | 80 +++++++++++++++---- 1 file changed, 63 insertions(+), 17 deletions(-) diff --git a/public/js/lehre/lehrauftrag/orderLehrauftrag.js b/public/js/lehre/lehrauftrag/orderLehrauftrag.js index b0684d5ca..8f3953e0b 100644 --- a/public/js/lehre/lehrauftrag/orderLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/orderLehrauftrag.js @@ -88,10 +88,16 @@ function hf_filterStringnumberWithOperator(headerValue, rowValue, rowData){ */ function func_dataLoaded(data, table){ table.setFilter([ - {field: 'personalnummer', type: '>=', value: 0}, // not dummy lector AND [ - {field: 'status', type: '=', value: 'Neu'}, // neu OR - {field: 'status', type: '=', value: 'Geändert'} // geaendert + {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 ] ]); } @@ -114,6 +120,8 @@ function func_groupHeader(data) { // 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 bestellt = row.getData().bestellt; var erteilt = row.getData().erteilt; @@ -149,15 +157,19 @@ function func_rowFormatter(row){ Formats the color of the rows depending on their status - blue: dummy lectors - bold: geaendert - - default (white): neu und erteilt + - default (white): neu - green: akzeptiert - - grey: all other (marks unselectable) + - 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 @@ -181,7 +193,9 @@ function func_rowFormatter(row){ // Formats row selectable/unselectable function func_selectableCheck(row){ - var is_dummy = (row.getData().personalnummer <= 0 && row.getData().personalnummer != null); + var is_dummy = row.getData().personalnummer <= 0; + 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); @@ -211,10 +225,12 @@ function func_selectableCheck(row){ // Only allow to select neue and geaenderte - return !is_dummy && // NOT dummy lector + 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 // OR geanderte (if betrag is 0 or null) + row.getData().bestellt != null && stunden != vertrag_stunden } // Adds column status @@ -349,10 +365,18 @@ function footer_downloadCSV(){ */ function footer_selectAll(){ $('#tableWidgetTabulator').tabulator('getRows', true) - .filter(row => row.getData().personalnummer >= 0 && // NOT dummies - row.getData().bestellt == null || // AND neu - row.getData().bestellt != null && // OR (bestellt - row.getData().status == 'Geändert') // AND geaendert) + .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) + ) + ) .forEach((row => row.select())); } @@ -448,6 +472,8 @@ status_formatter = function(cell, formatterParams, onRendered){ // 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; @@ -492,6 +518,14 @@ status_tooltip = function(cell){ { 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.' @@ -547,11 +581,17 @@ $(function() { $('#tableWidgetTabulator').tabulator('clearFilter'); }); - // Show only rows with new lehrauftraege (not dummy lectors) + // 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}, + [ + {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} @@ -598,9 +638,15 @@ $(function() { // needs custom filter to compare fields betrag and vertrag_betrag $('#tableWidgetTabulator').tabulator('setFilter', [ - {field: 'personalnummer', type: '>=', value: 0}, // NOT dummy lector AND - {field: 'bestellt', type: '!=', value: null}, // bestellt AND - {field: 'status', type: '=', value: 'Geändert'} // geaendert + [ + {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 ] ); }); From 0b1d84788220bc3ea9c218e73b4bceaefbb975e6 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 26 Mar 2020 14:16:37 +0100 Subject: [PATCH 14/34] Added Download PDF of accepted Lehrauftraege (seperated by FH /Lehrgaenge) Lectors can now download as pfd all their accepted Lehrauftraege. Therefore two buttons are available for seperate download of Lehrauftraege on FH or Lehrgaenge. The queries are proofing now if a contract exists and if the status is 'akzeptiert'. --- .../lehre/lehrauftrag/acceptLehrauftrag.php | 1 + cis/private/pdfExport.php | 9 +++-- .../js/lehre/lehrauftrag/acceptLehrauftrag.js | 33 +++++++++++++++++++ rdf/lehrauftrag.xml.php | 32 ++++++++++++++++-- 4 files changed, 70 insertions(+), 5 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index a4116e8d0..dbf54deda 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -111,6 +111,7 @@ $this->load->view(
+
widgetlib->widget( diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index 851c0c6c8..f5322d1ff 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -37,6 +37,7 @@ require_once('../../include/studiengang.class.php'); require_once('../../include/student.class.php'); require_once('../../include/prestudent.class.php'); require_once('../../include/dokument_export.class.php'); +require_once('../../include/person.class.php'); if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); @@ -135,6 +136,8 @@ if (isset($_GET['typ'])) $params .= '&typ='.$_GET['typ']; if (isset($_GET['all'])) $params .= '&all=1'; +if (isset($_GET['xsl_oe_kurzbz'])) + $params .= '&xsl_oe_kurzbz='. $_GET['xsl_oe_kurzbz']; //OE fuer Output ermitteln @@ -166,7 +169,7 @@ else $konto = new konto(); -if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) +if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin')) { $buchungstypen = array(); if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) @@ -232,7 +235,9 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) $filename .= '-'.$studienordnung->studiengangkurzbzlang; break; default: - $filename = $xsl; + $person = new Person(); + $person->getPersonFromBenutzer($user); + $filename = $xsl. '_'. $person->nachname; } $dokument->setFilename($filename); diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index da041c232..dc4fbe97e 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -19,6 +19,8 @@ const ICON_LEHRAUFTRAG_APPROVED = ''; const ICON_LEHRAUFTRAG_CANCELLED = ''; +const APP_ROOT = FHC_JS_DATA_STORAGE_OBJECT.app_root; + // ----------------------------------------------------------------------------------------------------------------- // Mutators - setter methods to manipulate table data when entering the tabulator // ----------------------------------------------------------------------------------------------------------------- @@ -265,6 +267,8 @@ function func_footerElement(){ footer_html += ''; @@ -288,6 +292,35 @@ function footer_downloadCSV(){ $('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output } +// Performs download PDF accepted Lehrauftraege +function footer_downloadPDF_LehrauftraegeFHTW() { + var uid = $("#uid").val(); + var studiensemester = $('#studiensemester').val(); + + window.open(APP_ROOT + '/cis/private/pdfExport.php' + + '?xml=lehrauftrag.xml.php' + + '&xsl=Lehrauftrag' + + '&xsl_oe_kurzbz=etw' + + '&stg_kz=' + + '&uid=' + uid + + '&ss=' + studiensemester, '_parent' + ); +} + +function footer_downloadPDF_LehrauftraegeLehrgaenge() { + var uid = $("#uid").val(); + var studiensemester = $('#studiensemester').val(); + + window.open(APP_ROOT + '/cis/private/pdfExport.php' + + '?xml=lehrauftrag.xml.php' + + '&xsl=Lehrauftrag' + + '&xsl_oe_kurzbz=lehrgang' + + '&stg_kz=' + + '&uid=' + uid + + '&ss=' + studiensemester, '_parent' + ); +} + /* * Performs select all * Select all (filtered) rows and ignore rows that are bestellt and erteilt diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php index 8d65f0a38..6c29f5f5a 100644 --- a/rdf/lehrauftrag.xml.php +++ b/rdf/lehrauftrag.xml.php @@ -31,6 +31,7 @@ require_once('../include/lehreinheit.class.php'); require_once('../include/organisationseinheit.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/bisverwendung.class.php'); +require_once('../include/person.class.php'); if (isset($_SERVER['REMOTE_USER'])) { @@ -65,6 +66,8 @@ if (isset($_GET['ss'])) else die('Fehlerhafte Parameteruebergabe'); +$xsl_oe_kurzbz = isset($_GET['xsl_oe_kurzbz']) && !empty($_GET['xsl_oe_kurzbz']) ? $_GET['xsl_oe_kurzbz'] : ''; + // GENERATE XML $xml = ''; $stg_arr = array(); @@ -149,6 +152,7 @@ function drawLehrauftrag($uid) { global $studiengang; global $studiengang_kz; + global $xsl_oe_kurzbz; global $oe_arr; global $stg_arr; global $ss; @@ -270,12 +274,31 @@ function drawLehrauftrag($uid) * FROM campus.vw_lehreinheit + JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid) + JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id) WHERE mitarbeiter_uid=".$db->db_add_param($uid)." - AND studiensemester_kurzbz=".$db->db_add_param($ss); + AND studiensemester_kurzbz=".$db->db_add_param($ss). " + AND lema.vertrag_id IS NOT NULL + AND vertragsstatus_kurzbz = 'akzeptiert'"; if ($studiengang_kz != '') //$studiengang_kz!='0' && - $qry .= "AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz); + { + $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz); + } + elseif (!empty($xsl_oe_kurzbz)) + { + if ($xsl_oe_kurzbz == 'etw') + { + $qry .= " AND lv_studiengang_kz > 0"; + } + + if ($xsl_oe_kurzbz == 'lehrgang') + { + $qry .= " AND lv_studiengang_kz <= 0"; + } + } + $qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id"; $lv = array(); $anzahl_lvs = 0; @@ -367,7 +390,7 @@ function drawLehrauftrag($uid) $gesamtstunden = $gesamtstunden + $stunden; } } - $qry = "SELECT tbl_projektarbeit.projektarbeit_id + $qry = "SELECT DISTINCT tbl_projektarbeit.projektarbeit_id ,tbl_projektbetreuer.faktor ,tbl_projektbetreuer.stunden ,tbl_projektbetreuer.stundensatz @@ -385,7 +408,10 @@ function drawLehrauftrag($uid) ,public.tbl_benutzer ,lehre.tbl_projektarbeit ,campus.vw_student + ,lehre.tbl_vertrag_vertragsstatus WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id + AND tbl_projektbetreuer.vertrag_id IS NOT NULL + AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = 'akzeptiert' AND tbl_benutzer.uid = ".$db->db_add_param($uid)." AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id AND student_uid = vw_student.uid From e272975a17c8d81f30ce744f1ed5dc89323d7b85 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 30 Mar 2020 19:10:59 +0200 Subject: [PATCH 15/34] Changed / Adapted Dropdown PDF Download for Lehrauftraege Changed: GUI. Now using Dropup button instead of 2 single buttons to give clarity and ability to add more pdf download in a single point. Adapted: GUI and JS now adapted to newer GUI version (after merging column picker branch into feature branch) --- .../lehre/lehrauftrag/acceptLehrauftrag.php | 18 +- .../js/lehre/lehrauftrag/acceptLehrauftrag.js | 24 + rdf/lehrauftrag.xml.php | 30 +- rdf/lehrauftrag_annehmen.xml.php | 514 ++++++++++++++++++ 4 files changed, 556 insertions(+), 30 deletions(-) create mode 100644 rdf/lehrauftrag_annehmen.xml.php diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index c4bbabb4c..170796c10 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -119,7 +119,7 @@ $this->load->view(
-
+
-
+ + +
+
+ + +
+
+ +
diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index b8d6e888c..8ea2df17c 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -7,6 +7,7 @@ // ----------------------------------------------------------------------------------------------------------------- // Global vars // ----------------------------------------------------------------------------------------------------------------- +const APP_ROOT = FHC_JS_DATA_STORAGE_OBJECT.app_root; const COLOR_LIGHTGREY = "#f5f5f5"; @@ -498,6 +499,29 @@ $(function() { $(this).addClass('focus').addClass('active'); }); + // Performs download PDF accepted Lehrauftraege + $("#ul-download-pdf").on('click', 'li', function(){ + var uid = $("#uid").val(); + var studiensemester = $('#studiensemester').val(); + + if ($(this).attr('value') != null && $(this).attr('value') != '') + { + var selected = $(this).attr('value'); + + if (selected == 'etw' || selected == 'lehrgang') + { + window.open(APP_ROOT + 'cis/private/pdfExport.php' + + '?xml=lehrauftrag_annehmen.xml.php' + + '&xsl=Lehrauftrag' + + '&xsl_oe_kurzbz=' + selected + + '&stg_kz=' + + '&uid=' + uid + + '&ss=' + studiensemester, '_parent' + ); + } + } + }); + // Redraw table stornierte lehrauftraege on button click $('#collapseCancelledLehrauftraege').on('shown.bs.collapse', function () { $('[tableuniqueid = cancelledLehrauftrag] #tableWidgetTabulator').tabulator('redraw', true); diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php index 6c29f5f5a..b4e90101e 100644 --- a/rdf/lehrauftrag.xml.php +++ b/rdf/lehrauftrag.xml.php @@ -31,7 +31,6 @@ require_once('../include/lehreinheit.class.php'); require_once('../include/organisationseinheit.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/bisverwendung.class.php'); -require_once('../include/person.class.php'); if (isset($_SERVER['REMOTE_USER'])) { @@ -66,8 +65,6 @@ if (isset($_GET['ss'])) else die('Fehlerhafte Parameteruebergabe'); -$xsl_oe_kurzbz = isset($_GET['xsl_oe_kurzbz']) && !empty($_GET['xsl_oe_kurzbz']) ? $_GET['xsl_oe_kurzbz'] : ''; - // GENERATE XML $xml = ''; $stg_arr = array(); @@ -152,7 +149,6 @@ function drawLehrauftrag($uid) { global $studiengang; global $studiengang_kz; - global $xsl_oe_kurzbz; global $oe_arr; global $stg_arr; global $ss; @@ -274,31 +270,12 @@ function drawLehrauftrag($uid) * FROM campus.vw_lehreinheit - JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid) - JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id) WHERE mitarbeiter_uid=".$db->db_add_param($uid)." - AND studiensemester_kurzbz=".$db->db_add_param($ss). " - AND lema.vertrag_id IS NOT NULL - AND vertragsstatus_kurzbz = 'akzeptiert'"; + AND studiensemester_kurzbz=".$db->db_add_param($ss); if ($studiengang_kz != '') //$studiengang_kz!='0' && - { $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz); - } - elseif (!empty($xsl_oe_kurzbz)) - { - if ($xsl_oe_kurzbz == 'etw') - { - $qry .= " AND lv_studiengang_kz > 0"; - } - - if ($xsl_oe_kurzbz == 'lehrgang') - { - $qry .= " AND lv_studiengang_kz <= 0"; - } - } - $qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id"; $lv = array(); $anzahl_lvs = 0; @@ -390,7 +367,7 @@ function drawLehrauftrag($uid) $gesamtstunden = $gesamtstunden + $stunden; } } - $qry = "SELECT DISTINCT tbl_projektarbeit.projektarbeit_id + $qry = "SELECT tbl_projektarbeit.projektarbeit_id ,tbl_projektbetreuer.faktor ,tbl_projektbetreuer.stunden ,tbl_projektbetreuer.stundensatz @@ -408,10 +385,7 @@ function drawLehrauftrag($uid) ,public.tbl_benutzer ,lehre.tbl_projektarbeit ,campus.vw_student - ,lehre.tbl_vertrag_vertragsstatus WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id - AND tbl_projektbetreuer.vertrag_id IS NOT NULL - AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = 'akzeptiert' AND tbl_benutzer.uid = ".$db->db_add_param($uid)." AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id AND student_uid = vw_student.uid diff --git a/rdf/lehrauftrag_annehmen.xml.php b/rdf/lehrauftrag_annehmen.xml.php new file mode 100644 index 000000000..415e3a239 --- /dev/null +++ b/rdf/lehrauftrag_annehmen.xml.php @@ -0,0 +1,514 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/* Erstellt einen Lehrauftrag im PDF Format + * + * Erstellt ein XML File fuer den Lehrauftrag + */ +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/studiengang.class.php'); +require_once('../include/lehreinheit.class.php'); +require_once('../include/organisationseinheit.class.php'); +require_once('../include/mitarbeiter.class.php'); +require_once('../include/bisverwendung.class.php'); +require_once('../include/person.class.php'); + +if (isset($_SERVER['REMOTE_USER'])) +{ + // Wenn das Script direkt aufgerufen wird muss es ein Admin sein + $user=get_uid(); + $berechtigung = new benutzerberechtigung(); + $berechtigung->getBerechtigungen($user); + if (!$berechtigung->isBerechtigt('admin')) + die('Sie haben keine Berechtigung fuer diese Seite'); +} + +// header für no cache +header("Cache-Control: no-cache"); +header("Cache-Control: post-check=0, pre-check=0",false); +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/xhtml+xml"); + +//Parameter holen +if (isset($_GET['uid'])) + $uid = $_GET['uid']; +else + $uid = null; + +if (isset($_GET['stg_kz'])) + $studiengang_kz = $_GET['stg_kz']; +else + die('Fehlerhafte Parameteruebergabe'); +if (isset($_GET['ss'])) + $ss = $_GET['ss']; +else + die('Fehlerhafte Parameteruebergabe'); + +$xsl_oe_kurzbz = isset($_GET['xsl_oe_kurzbz']) && !empty($_GET['xsl_oe_kurzbz']) ? $_GET['xsl_oe_kurzbz'] : ''; + +// GENERATE XML +$xml = ''; +$stg_arr = array(); +$studiengang = new studiengang(); +$studiengang->getAll(null, false); + +foreach ($studiengang->result as $row) + $stg_arr[$row->studiengang_kz] = $row->kuerzel; + +//Studiengang laden +$studiengang = new studiengang($studiengang_kz); + +//Organisationseinheiten laden +$oe_arr = array(); +$organisationseinheit_obj = new organisationseinheit(); +$organisationseinheit_obj->getAll(); +foreach ($organisationseinheit_obj->result as $oe) +{ + $oe_arr[$oe->oe_kurzbz] = $oe->bezeichnung; +} + +//Studiengangsleiter holen +$stgl = ''; +$db = new basis_db(); +if ($studiengang_kz != '') +{ + $studiengang_obj = new studiengang(); + $stgleiter = $studiengang_obj->getLeitung($studiengang_kz); + + foreach ($stgleiter as $stgleiter_uid) + { + $row = new mitarbeiter($stgleiter_uid); + $stgl .= trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost); + } +} + +if ($uid == null) +{ + $qry = " + SELECT + distinct mitarbeiter_uid + FROM ( + SELECT + tbl_lehreinheitmitarbeiter.mitarbeiter_uid + FROM + lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung + WHERE + tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." + UNION + SELECT + tbl_benutzer.uid as mitarbeiter_uid + FROM + lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter + WHERE + tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND + student_uid=vw_student.uid AND + tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND + tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND + tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND + tbl_projektbetreuer.stunden!='0' + ) as mitarbeiter ORDER BY mitarbeiter_uid"; + + if ($db->db_query($qry)) + { + while ($row = $db->db_fetch_object()) + { + drawLehrauftrag($row->mitarbeiter_uid); + } + } +} +else + drawLehrauftrag($uid); + +function drawLehrauftrag($uid) +{ + global $studiengang; + global $studiengang_kz; + global $xsl_oe_kurzbz; + global $oe_arr; + global $stg_arr; + global $ss; + global $xml; + global $stgl; + + $db = new basis_db(); + + $xml.=' + typ=='d') + { + $xml.= 'Diplom-'; + $typ = 'Diplom'; + } + elseif ($studiengang->typ=='m') + { + $xml.= 'Master-'; + $typ = 'Master'; + } + elseif ($studiengang->typ=='b') + { + $xml.= 'Bachelor-'; + $typ = 'Bachelor'; + } + + $xml.= 'Studiengang '.$studiengang->bezeichnung.']]>'; + $xml.= 'bezeichnung. ']]>'; + $xml.= 'english. ']]>'; + $xml.= ''; + + //Studiensemester + if (substr($ss,0,2) == 'WS') + $studiensemester = 'Wintersemester '.substr($ss,2); + else + $studiensemester = 'Sommersemester '.substr($ss,2); + $xml .= ' + '; + + //Lektor + $qry = " + SELECT + * + FROM + campus.vw_mitarbeiter + LEFT JOIN public.tbl_adresse USING(person_id) + WHERE + uid=".$db->db_add_param($uid)." + ORDER BY zustelladresse DESC, firma_id + LIMIT 1"; + + if ($result = $db->db_query($qry)) + { + if ($row = $db->db_fetch_object($result)) + { + $firmenanschrift = false; + if ($row->firma_id != '') + { + $qry =" + SELECT + tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort + FROM + public.tbl_firma + JOIN public.tbl_adresse USING(firma_id) + WHERE + tbl_firma.firma_id=".$db->db_add_param($row->firma_id)." + AND person_id=".$db->db_add_param($row->person_id)." + LIMIT 1"; + + if ($result_firma = $db->db_query($qry)) + { + if ($row_firma = $db->db_fetch_object($result_firma)) + { + $name_gesamt = $row_firma->name; + $strasse = $row_firma->strasse; + $plz = $row_firma->plz; + $ort = $row_firma->ort; + $zuhanden = "zu Handen ".trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost); + $firmenanschrift = true; + } + } + } + + if (!$firmenanschrift) + { + $strasse = $row->strasse; + $plz = $row->plz; + $ort = $row->ort; + $name_gesamt = trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost); + $zuhanden=''; + } + // Lädt die letzte (aktuellste) Verwendungen eines Mitarbeiters um die inkludierte Lehre auslesen zu können + $bis = new bisverwendung(); + $bis->getLastAktVerwendung($uid); + + $xml .= ' + + titelpre.']]> + vorname.']]> + nachname.']]> + titelpost.']]> + + + + + + svnr.']]> + personalnummer.']]> + inkludierte_lehre.']]> + '; + } + } + + //Lehreinheiten + $qry = " + SELECT + * + FROM + campus.vw_lehreinheit + JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid) + JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id) + WHERE + mitarbeiter_uid=".$db->db_add_param($uid)." + AND studiensemester_kurzbz=".$db->db_add_param($ss). " + AND lema.vertrag_id IS NOT NULL + AND vertragsstatus_kurzbz = 'akzeptiert'"; + + if ($studiengang_kz != '') //$studiengang_kz!='0' && + { + $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz); + } + elseif (!empty($xsl_oe_kurzbz)) + { + if ($xsl_oe_kurzbz == 'etw') + { + $qry .= " AND lv_studiengang_kz > 0"; + } + + if ($xsl_oe_kurzbz == 'lehrgang') + { + $qry .= " AND lv_studiengang_kz <= 0"; + } + } + + $qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id"; + $lv = array(); + $anzahl_lvs = 0; + if ($result = $db->db_query($qry)) + { + $last_le = ''; + $gesamtkosten = 0; + $gesamtstunden = 0; + $gruppen = array(); + $grp = ''; + $gruppen_getrennt = ''; + $einzelgruppe = ''; + while ($row = $db->db_fetch_object($result)) + { + if ($last_le != $row->lehreinheit_id && $last_le != '') + { + array_unique($gruppen); + sort($gruppen); + foreach ($gruppen as $gruppe) + { + $grp .= $gruppe.' '; + $gruppen_getrennt .= ''; + } + $einzelgruppe = $gruppen_getrennt; + $lv[$anzahl_lvs]['lehreinheit_id'] = $lehreinheit_id; + $lv[$anzahl_lvs]['lehrveranstaltung'] = $lehrveranstaltung; + $lv[$anzahl_lvs]['fachbereich'] = (isset($oe_arr[$lehrfach_oe_kurzbz])?$oe_arr[$lehrfach_oe_kurzbz]:''); + $lv[$anzahl_lvs]['gruppe'] = ($grp != ''?trim($grp):' '); + $lv[$anzahl_lvs]['stunden'] = ($stunden != ''?$stunden:' '); + $lv[$anzahl_lvs]['satz'] = ($satz != ''?$satz:' '); + $lv[$anzahl_lvs]['faktor'] = ($faktor != ''?$faktor:' '); + $lv[$anzahl_lvs]['brutto'] = number_format($brutto,2,',','.'); + $lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt != ''?$gruppen_getrennt:' '); + $anzahl_lvs++; + + $gesamtkosten = $gesamtkosten + $brutto; + $gesamtstunden = $gesamtstunden + $stunden; + + $lehreinheit_id = ''; + $lehrveranstaltung = ''; + $lehrfach_oe_kurzbz = ''; + $gruppen = array(); + $stunden = ''; + $satz = ''; + $faktor = ''; + $brutto = ''; + $grp = ''; + $gruppen_getrennt = ''; + } + + $lehreinheit_id = $row->lehreinheit_id; + $lehrveranstaltung = CutString($row->lv_bezeichnung, 30, '...').' '.$row->lehrform_kurzbz.' '.$row->lv_semester.'. Semester'; + $lehrfach_oe_kurzbz = $row->lehrfach_oe_kurzbz; + + if ($row->gruppe_kurzbz != '') + $gruppen[] = $row->gruppe_kurzbz; + else + $gruppen[] = trim($stg_arr[$row->studiengang_kz].'-'.$row->semester.$row->verband.$row->gruppe).' '; + + $stunden = $row->semesterstunden; + $satz = $row->stundensatz; + $faktor = $row->faktor; + $brutto = $row->semesterstunden * $row->stundensatz; + $last_le = $row->lehreinheit_id; + } + array_unique($gruppen); + sort($gruppen); + foreach ($gruppen as $gruppe) + { + $grp .= $gruppe.' '; + $gruppen_getrennt .= ''; + } + if (isset($lehreinheit_id)) + { + $lv[$anzahl_lvs]['lehreinheit_id'] = (isset($lehreinheit_id)?$lehreinheit_id:' '); + $lv[$anzahl_lvs]['lehrveranstaltung'] = (isset($lehrveranstaltung)?$lehrveranstaltung:' '); + $lv[$anzahl_lvs]['fachbereich'] = (isset($lehrfach_oe_kurzbz)?$oe_arr[$lehrfach_oe_kurzbz]:' '); + $lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' '); + $lv[$anzahl_lvs]['stunden'] = (isset($stunden)?$stunden:' '); + $lv[$anzahl_lvs]['satz'] = (isset($satz)?$satz:' '); + $lv[$anzahl_lvs]['faktor'] = (isset($faktor)?$faktor:' '); + $lv[$anzahl_lvs]['brutto'] = (isset($brutto)?number_format($brutto,2,',','.'):' '); + $lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' '); + $anzahl_lvs++; + + if (isset($brutto)) + $gesamtkosten = $gesamtkosten + $brutto; + if (isset($stunden)) + $gesamtstunden = $gesamtstunden + $stunden; + } + } + $qry = "SELECT DISTINCT tbl_projektarbeit.projektarbeit_id + ,tbl_projektbetreuer.faktor + ,tbl_projektbetreuer.stunden + ,tbl_projektbetreuer.stundensatz + ,tbl_lehrveranstaltung.semester + ,vorname + ,nachname + ,vw_student.studiengang_kz + ,projekttyp_kurzbz + ,lehrfach.oe_kurzbz + FROM lehre.tbl_projektbetreuer + ,lehre.tbl_lehreinheit + ,lehre.tbl_lehrveranstaltung AS lehrfach + ,lehre.tbl_lehrveranstaltung + ,public.tbl_organisationseinheit + ,public.tbl_benutzer + ,lehre.tbl_projektarbeit + ,campus.vw_student + ,lehre.tbl_vertrag_vertragsstatus + WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id + AND tbl_projektbetreuer.vertrag_id IS NOT NULL + AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = 'akzeptiert' + AND tbl_benutzer.uid = ".$db->db_add_param($uid)." + AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id + AND student_uid = vw_student.uid + AND tbl_organisationseinheit.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz + AND tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id + AND tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id + AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($ss)." + AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id"; + if ($studiengang_kz != '') + { + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + } + elseif (!empty($xsl_oe_kurzbz)) + { + if ($xsl_oe_kurzbz == 'etw') + { + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz > 0"; + } + + if ($xsl_oe_kurzbz == 'lehrgang') + { + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz <= 0"; + } + } + + if ($result = $db->db_query($qry)) + { + while ($row = $db->db_fetch_object($result)) + { + $stg = new studiengang(); + $stg->load($row->studiengang_kz); + $stg_kuerzel = $stg->kuerzel; + + $brutto = $row->stunden * $row->stundensatz; + if ($row->stunden != 0) + { + switch ($row->projekttyp_kurzbz) + { + case 'Bachelor': $kuerzel = 'BA'; break; + case 'Diplom': $kuerzel = 'DA'; break; + case 'Projekt': $kuerzel = 'PJ'; break; + case 'Praktikum': $kuerzel = 'PX'; break; + case 'Praxis': $kuerzel = 'PX'; break; + default: $kuerzel = 'PA'; break; + } + + $lv[$anzahl_lvs]['lehreinheit_id'] = (isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:' '); + $lv[$anzahl_lvs]['lehrveranstaltung'] = 'Betreuung '.$row->vorname.' '.$row->nachname; + $lv[$anzahl_lvs]['fachbereich'] = (isset($row->oe_kurzbz) && array_key_exists($row->oe_kurzbz, $oe_arr)?$oe_arr[$row->oe_kurzbz]:' '); + $lv[$anzahl_lvs]['gruppe'] = ' '; + $lv[$anzahl_lvs]['stunden'] = (isset($row->stunden)?number_format($row->stunden,2):' '); + $lv[$anzahl_lvs]['satz'] = (isset($row->stundensatz)?$row->stundensatz:' '); + $lv[$anzahl_lvs]['faktor'] = (isset($row->faktor)?$row->faktor:''); + $lv[$anzahl_lvs]['brutto'] = (isset($brutto)?number_format($brutto,2,',','.'):' '); + $lv[$anzahl_lvs]['einzelgruppe'] = 'semester.']]>'; + $anzahl_lvs++; + + $gesamtkosten = $gesamtkosten + $brutto; + $gesamtstunden = $gesamtstunden + $row->stunden; + } + } + } + + + + foreach ($lv as $lv_row) + { + $xml .= ' + + + + + + '. $lv_row['einzelgruppe']. ' + + + + + '; + }; + + // Gesamtstunden und Gesamtkosten + $xml .= " + + "; + + + $xml .= " + "; + + $xml .= ' + + + '; +} + +// END GENERATE XML +echo $xml.''; + +?> From 2938e0bdb06e4d14b46c1a60cf9475d6198181a3 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 30 Mar 2020 19:27:12 +0200 Subject: [PATCH 16/34] Bugfixed: Removed undefined functions After moving functions to Tablewidget.js, these function calls doesnt exist anymore in the earlier corresponding javascripts. Therefore they must be removed. --- application/views/lehre/lehrauftrag/acceptLehrauftragData.php | 3 --- application/views/lehre/lehrauftrag/approveLehrauftragData.php | 3 --- application/views/lehre/lehrauftrag/orderLehrauftragData.php | 3 --- 3 files changed, 9 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index af864dd51..4fe41a8a4 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -340,9 +340,6 @@ $filterWidgetArray = array( rowUpdated:function(row){ func_rowUpdated(row); }, - rowSelectionChanged:function(data, rows){ - func_rowSelectionChanged(data, rows); - }, rowFormatter:function(row){ func_rowFormatter(row); }, diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index 0fb1bfc7e..b359defaa 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -359,9 +359,6 @@ $filterWidgetArray = array( rowUpdated:function(row){ func_rowUpdated(row); }, - rowSelectionChanged:function(data, rows){ - func_rowSelectionChanged(data, rows); - }, rowFormatter:function(row) { func_rowFormatter(row); diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index 4f605277b..4a857b4b5 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -393,9 +393,6 @@ $filterWidgetArray = array( rowUpdated:function(row){ func_rowUpdated(row); }, - rowSelectionChanged:function(data, rows){ - func_rowSelectionChanged(data, rows); - }, rowFormatter:function(row){ func_rowFormatter(row); }, From 76afc73c492c7c17b04834ff9635cd577397b882 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 31 Mar 2020 11:50:11 +0200 Subject: [PATCH 17/34] Fixed: Now Projektbetreuer are selectable again Before Projektbetreuer, that should be selectable in ordering process, were excluded from selection. This is fixed now. --- public/js/lehre/lehrauftrag/orderLehrauftrag.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/public/js/lehre/lehrauftrag/orderLehrauftrag.js b/public/js/lehre/lehrauftrag/orderLehrauftrag.js index e52a7599e..22d856d52 100644 --- a/public/js/lehre/lehrauftrag/orderLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/orderLehrauftrag.js @@ -203,7 +203,7 @@ function func_rowFormatter(row){ // Formats row selectable/unselectable function func_selectableCheck(row){ - var is_dummy = row.getData().personalnummer <= 0; + 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; @@ -575,7 +575,10 @@ $(function() { $("#show-ordered").click(function(){ $('#tableWidgetTabulator').tabulator('setFilter', [ - {field: 'personalnummer', type: '>=', value: 0}, + [ + {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} From 0aef62913459db86a345c13d3c053ab8750a8795 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 31 Mar 2020 11:57:46 +0200 Subject: [PATCH 18/34] Adapted SQL query for Projektbetreuungen --- rdf/lehrauftrag_annehmen.xml.php | 60 +++++++++++++++----------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/rdf/lehrauftrag_annehmen.xml.php b/rdf/lehrauftrag_annehmen.xml.php index 415e3a239..c0f691fe3 100644 --- a/rdf/lehrauftrag_annehmen.xml.php +++ b/rdf/lehrauftrag_annehmen.xml.php @@ -390,36 +390,32 @@ function drawLehrauftrag($uid) $gesamtstunden = $gesamtstunden + $stunden; } } - $qry = "SELECT DISTINCT tbl_projektarbeit.projektarbeit_id - ,tbl_projektbetreuer.faktor - ,tbl_projektbetreuer.stunden - ,tbl_projektbetreuer.stundensatz - ,tbl_lehrveranstaltung.semester - ,vorname - ,nachname - ,vw_student.studiengang_kz - ,projekttyp_kurzbz - ,lehrfach.oe_kurzbz - FROM lehre.tbl_projektbetreuer - ,lehre.tbl_lehreinheit - ,lehre.tbl_lehrveranstaltung AS lehrfach - ,lehre.tbl_lehrveranstaltung - ,public.tbl_organisationseinheit - ,public.tbl_benutzer - ,lehre.tbl_projektarbeit - ,campus.vw_student - ,lehre.tbl_vertrag_vertragsstatus - WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id - AND tbl_projektbetreuer.vertrag_id IS NOT NULL - AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = 'akzeptiert' - AND tbl_benutzer.uid = ".$db->db_add_param($uid)." - AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id - AND student_uid = vw_student.uid - AND tbl_organisationseinheit.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz - AND tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id - AND tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id - AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($ss)." - AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id"; + $qry = 'SELECT + pa.projektarbeit_id, + pb.faktor, + pb.stunden, + pb.stundensatz, + lv.semester, + vorname, + nachname, + student.studiengang_kz, + projekttyp_kurzbz, + lv.oe_kurzbz, + vertragsstatus_kurzbz + FROM lehre.tbl_projektbetreuer pb + JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) + JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id) + JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id) + JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) + JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id + JOIN campus.vw_student student ON pa.student_uid = student.uid + LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id) + LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id) + WHERE pb.vertrag_id IS NOT NULL + AND vvst.vertragsstatus_kurzbz = \'akzeptiert\' + AND benutzer.uid = '.$db->db_add_param($uid).' + AND le.studiensemester_kurzbz = '.$db->db_add_param($ss); + if ($studiengang_kz != '') { $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); @@ -428,12 +424,12 @@ function drawLehrauftrag($uid) { if ($xsl_oe_kurzbz == 'etw') { - $qry .= " AND tbl_lehrveranstaltung.studiengang_kz > 0"; + $qry .= " AND lv.studiengang_kz > 0"; } if ($xsl_oe_kurzbz == 'lehrgang') { - $qry .= " AND tbl_lehrveranstaltung.studiengang_kz <= 0"; + $qry .= " AND lv.studiengang_kz <= 0"; } } From fe9e222182a6385c00cdeb8b640a12c26d7e9322 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Apr 2020 15:46:07 +0200 Subject: [PATCH 19/34] Introduced user_language to FHC_JS_DATA_STORAGE_OBJECT This is to retrieve easily user language via Javascript. Retrieving using the storage will not cause any async issues as an AJAX Call would do. --- application/helpers/hlp_header_helper.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 .= ''; From b960a5ec586c0dbad95965fbc8411cfbe0acba6b Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Apr 2020 15:53:06 +0200 Subject: [PATCH 20/34] Added Multilingualism for Tablewidget: Help / GUI items Shorter phrases are realised via FHC_PhrasesLib. Longer text (including HTML tags) are realised by . first retrieving language of FHC_JS_Storage_Object . then switching to corresponding language text while rendering. --- public/js/TableWidget.js | 149 +++++++++++++++++++++++++++------------ 1 file changed, 105 insertions(+), 44 deletions(-) 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 += '

'; From b6f509c057b407bbf6427d8afd003fe9c6dea1d5 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Apr 2020 16:33:26 +0200 Subject: [PATCH 21/34] Added Multilingualism to all Lehrauftraege Tablewidgets' columns fields --- .../lehrauftrag/acceptLehrauftragData.php | 49 +++++++-------- .../lehrauftrag/approveLehrauftragData.php | 61 ++++++++++--------- .../lehrauftrag/cancelledLehrauftragData.php | 15 ++--- .../lehrauftrag/orderLehrauftragData.php | 60 +++++++++--------- 4 files changed, 94 insertions(+), 91 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index e172cc83a..02507646f 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), @@ -363,7 +364,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/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index 0fb1bfc7e..d2a2e08fc 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), @@ -382,7 +383,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/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index 4f605277b..24a86ce14 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), @@ -418,7 +418,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"}, From aaaa5f52aebe72638bafdac8a6c0193dbd8437af Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Apr 2020 17:07:04 +0200 Subject: [PATCH 22/34] Added Multilingualism to all Lehrauftraege tooltips --- .../js/lehre/lehrauftrag/acceptLehrauftrag.js | 25 +- .../lehre/lehrauftrag/approveLehrauftrag.js | 22 +- .../js/lehre/lehrauftrag/orderLehrauftrag.js | 968 +++++++++--------- 3 files changed, 508 insertions(+), 507 deletions(-) diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index b8d6e888c..d69195fa9 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -368,36 +368,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"); } } @@ -405,28 +404,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 b7f5e7430..41d872bc0 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,13 +98,13 @@ 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 lector AND - [ - {field: 'status', type: '=', value: 'Neu'}, // neu OR - {field: 'status', type: '=', value: 'Geändert'} // geaendert - ] - ]); + table.setFilter([ + {field: 'personalnummer', type: '>=', value: 0}, // not dummy lector AND + [ + {field: 'status', type: '=', value: 'Neu'}, // neu OR + {field: 'status', type: '=', value: 'Geändert'} // geaendert + ] + ]); } // ----------------------------------------------------------------------------------------------------------------- @@ -113,210 +113,210 @@ 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_dummy = (row.getData().personalnummer <= 0 && row.getData().personalnummer != 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 und erteilt - - green: akzeptiert - - grey: all other (marks unselectable) - */ - row.getCells().forEach(function(cell){ - if(is_dummy) - { - cell.getElement().classList.add('bg-info'); // dummy lectors - } - 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) + */ + row.getCells().forEach(function(cell){ + if(is_dummy) + { + cell.getElement().classList.add('bg-info'); // dummy lectors + } + 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_dummy = (row.getData().personalnummer <= 0 && row.getData().personalnummer != 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 - row.getData().bestellt == null || // AND neue - row.getData().bestellt != null && betrag != vertrag_betrag || // OR geaenderte - row.getData().bestellt != null && stunden != vertrag_stunden // OR geanderte (if betrag is 0 or null) + // Only allow to select neue and geaenderte + return !is_dummy && // NOT dummy lector + row.getData().bestellt == null || // AND neue + row.getData().bestellt != null && betrag != vertrag_betrag || // OR geaenderte + row.getData().bestellt != null && stunden != vertrag_stunden // OR geanderte (if betrag is 0 or null) } // 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 @@ -340,353 +340,355 @@ 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_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 betrag = parseFloat(cell.getRow().getData().betrag); - var stunden = parseFloat(cell.getRow().getData().stunden); - var stundensatz = parseFloat(cell.getRow().getData().stundensatz); + var betrag = parseFloat(cell.getRow().getData().betrag); + var stunden = parseFloat(cell.getRow().getData().stunden); + var stundensatz = parseFloat(cell.getRow().getData().stundensatz); - var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); - var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); - var vertrag_stundensatz = 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(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; + } - // Calculate vertrag stundensatz - if (vertrag_stunden != 0) - { - vertrag_stundensatz = vertrag_betrag/vertrag_stunden; - } + // Calculate vertrag stundensatz + if (vertrag_stunden != 0) + { + vertrag_stundensatz = vertrag_betrag/vertrag_stunden; + } - // Return tooltip message - if (is_dummy) // dummy (no lector) - { - return 'Neuer Lehrauftrag. Ohne Lektor verplant.' - } - 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.'; - } + // Return tooltip message + if (is_dummy) // dummy (no lector) + { + return FHC_PhrasesLib.t("ui", "neuerLehrauftragOhneLektorVerplant"); + } + 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) - $("#show-new").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', - [ - {field: 'personalnummer', 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) + $("#show-new").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', + [ + {field: 'personalnummer', 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}, - {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}, + {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 AND - {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 AND + {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."); + } + } + ); + }); }); From db78fa20f3bbe113ad7ff4a191cfbfe5833de9fd Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Apr 2020 17:12:36 +0200 Subject: [PATCH 23/34] Added Multilingualism to all Lehrauftraege View GUI-items Attention: part of phrases-array is used by javascripts. (acceptLehrauftrag.js, approveLehrauftrag.js, orderLehrauftrag.js) --- .../lehrauftrag/LehrauftragAkzeptieren.php | 3 +- .../lehre/lehrauftrag/acceptLehrauftrag.php | 50 +++++++++++++++---- .../lehre/lehrauftrag/approveLehrauftrag.php | 49 ++++++++++++++---- .../lehre/lehrauftrag/orderLehrauftrag.php | 48 ++++++++++++++---- 4 files changed, 119 insertions(+), 31 deletions(-) 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/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index 0408366a7..50895a18e 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(
- +
@@ -124,21 +154,21 @@ $this->load->view( @@ -146,9 +176,9 @@ $this->load->view(
- + - +
diff --git a/application/views/lehre/lehrauftrag/approveLehrauftrag.php b/application/views/lehre/lehrauftrag/approveLehrauftrag.php index ed1852654..880e13c1a 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 +220,20 @@ $this->load->view(
- +
diff --git a/application/views/lehre/lehrauftrag/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php index 1e79bee0d..927b24b07 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftrag.php @@ -18,6 +18,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 +64,7 @@ $this->load->view(
- +
@@ -187,20 +215,20 @@ $this->load->view(
- +
From abf8671ac9d6ce406d1210363f58bf3563c622f9 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Apr 2020 17:14:52 +0200 Subject: [PATCH 24/34] Added phrases to phrasesupdate --- system/phrasesupdate.php | 1144 +++++++++++++++++++++++++++++++++++++- 1 file changed, 1142 insertions(+), 2 deletions(-) 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' + ) + ) ) ); From 262fdc277eca6564fc9ff3bd6fecd47f2c21a659 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Apr 2020 17:59:18 +0200 Subject: [PATCH 25/34] Added Help-Text (Guide to this page) to acceptLehrauftrag Moved text to function_getHelptext, which will switch language depending on the given user language. --- .../lehre/lehrauftrag/acceptLehrauftrag.php | 135 +++++++++++++----- 1 file changed, 96 insertions(+), 39 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index 50895a18e..aefeb7898 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -75,45 +75,8 @@ $this->load->view(
-

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
-
-
-
-
+ +
@@ -211,3 +174,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; +} + +?> From 2a99f37508c163ce62aef81f65891be4ad458bda Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 14 Apr 2020 13:58:40 +0200 Subject: [PATCH 26/34] Added Help-Text (Guide to this page) to orderLehrauftrag & approveLehrauftrag Moved text to function_getHelptext, which will switch language depending on the given user language. --- .../lehre/lehrauftrag/approveLehrauftrag.php | 200 ++++++++++------- .../lehre/lehrauftrag/orderLehrauftrag.php | 204 +++++++++++------- 2 files changed, 252 insertions(+), 152 deletions(-) diff --git a/application/views/lehre/lehrauftrag/approveLehrauftrag.php b/application/views/lehre/lehrauftrag/approveLehrauftrag.php index 880e13c1a..0e45420bf 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftrag.php @@ -77,81 +77,7 @@ $this->load->view(
- -

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
-
-
- +
@@ -245,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/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php index 927b24b07..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( @@ -76,82 +75,7 @@ $this->load->view(
- -

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
-
-
+
@@ -240,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 From e25bf60bf1176fd25fa50842a09bfe35e59a44af Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 15 Apr 2020 09:49:38 +0200 Subject: [PATCH 27/34] Added GUI and phrase for info sheet for external lecturers A new link was set. . only shown to external lecturers . links to dms document infoblatt for external lecturers --- .../lehrauftrag/LehrauftragAkzeptieren.php | 17 +- .../lehre/lehrauftrag/acceptLehrauftrag.php | 171 ++++++++++-------- system/phrasesupdate.php | 20 ++ 3 files changed, 126 insertions(+), 82 deletions(-) diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php index 4fc0a879b..ff61a7281 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', + 'dms' ) ); @@ -82,8 +83,20 @@ class LehrauftragAkzeptieren extends Auth_Controller } } + // Check if user is external lector + $is_external_lector = false; + + if ($result = getData($this->BisverwendungModel->getLast($this->_uid, false))) + { + if (is_null($result[0]->inkludierte_lehre) || $result[0]->inkludierte_lehre == 0) + { + $is_external_lector = true; + } + } + $view_data = array( - 'studiensemester_selected' => $studiensemester_kurzbz + 'studiensemester_selected' => $studiensemester_kurzbz, + 'is_external_lector' => $is_external_lector ); $this->load->view('lehre/lehrauftrag/acceptLehrauftrag.php', $view_data); diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index 170796c10..dd633fd5f 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -1,45 +1,46 @@ load->view( - 'templates/FHC-Header', - array( - 'title' => 'Lehrauftrag annehmen', - 'jquery' => true, - 'jqueryui' => true, - 'jquerycheckboxes' => true, - 'bootstrap' => true, - 'fontawesome' => true, - 'sbadmintemplate' => false, - 'tabulator' => true, - 'momentjs' => true, - 'ajaxlib' => true, - 'dialoglib' => true, - 'tablewidget' => true, - 'phrases' => array( - 'global' => array('lehrauftraegeAnnehmen'), - ), - 'customJSs' => array( - 'public/js/bootstrapper.js', - 'public/js/lehre/lehrauftrag/acceptLehrauftrag.js') - ) + 'templates/FHC-Header', + array( + 'title' => 'Lehrauftrag annehmen', + 'jquery' => true, + 'jqueryui' => true, + 'jquerycheckboxes' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'sbadmintemplate' => false, + 'tabulator' => true, + 'momentjs' => true, + 'ajaxlib' => true, + 'dialoglib' => true, + 'tablewidget' => true, + 'phrases' => array( + 'global' => array('lehrauftraegeAnnehmen'), + 'dms' => array('informationsblattExterneLehrende') + ), + 'customJSs' => array( + 'public/js/bootstrapper.js', + 'public/js/lehre/lehrauftrag/acceptLehrauftrag.js') + ) ); ?>
-
+
-
-
@@ -86,74 +87,84 @@ $this->load->view(
-
-
-
- -
- widgetlib->widget( - 'Studiensemester_widget', - array( - DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected - ), - array( - 'name' => 'studiensemester', - 'id' => 'studiensemester' - ) - ); - ?> -
- -
-
-
+
+
+
+ +
+ widgetlib->widget( + 'Studiensemester_widget', + array( + DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected + ), + array( + 'name' => 'studiensemester', + 'id' => 'studiensemester' + ) + ); + ?> +
+ +
+
+
-
-
- load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?> -
-
-
+
+
+ load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?> +
+
+
+ + + +
+
+ p->t('dms' , 'informationsblattExterneLehrende'); ?> +
+
+
+ -
-
- -
-
+
+
-
-
- - -
-
+
+
+ + +
+
-
+
@@ -161,8 +172,8 @@ $this->load->view(
-
-
+
+


@@ -185,7 +196,7 @@ $this->load->view(
-
+

diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 64a0acc31..6ae855150 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -4453,6 +4453,26 @@ When on hold, the date is only a reminder.', 'insertvon' => 'system' ) ) + ), + array( + 'app' => 'core', + 'category' => 'dms', + 'phrase' => 'informationsblattExterneLehrende', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Informationsblatt für externe Lehrende', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Information sheet for external lecturers', // TODO: change to dms id as soon as english info sheet is available + 'description' => '', + 'insertvon' => 'system' + ) + ) ) ); From 637dbefce065dfdf8c5ee6ef3dbbb2354ce5be2b Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 20 Apr 2020 14:55:01 +0200 Subject: [PATCH 28/34] Removed user_language property from FHC_JS_DATA_STORAGE_OBJECT To persist on a consistent translation system, the translation should be performed by phrases system on serversite. Therefore the user_language property is removed from FHC_JS_DATA_STORAGE_OBJECT. --- application/helpers/hlp_header_helper.php | 3 +-- public/js/TableWidget.js | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/application/helpers/hlp_header_helper.php b/application/helpers/hlp_header_helper.php index 8939b4d38..f8bbb9ad2 100644 --- a/application/helpers/hlp_header_helper.php +++ b/application/helpers/hlp_header_helper.php @@ -78,8 +78,7 @@ function generateJSDataStorageObject($indexPage, $calledPath, $calledMethod) app_root: "'.APP_ROOT.'", ci_router: "'.$indexPage.'", called_path: "'.$calledPath.'", - called_method: "'.$calledMethod.'", - user_language: "'.$user_language.'" + called_method: "'.$calledMethod.'" };'; $toPrint .= "\n"; $toPrint .= ''; diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index 01dad24bb..da0df14f2 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, FHC_JS_DATA_STORAGE_OBJECT.user_language); + var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv); tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML); /** @@ -777,7 +777,7 @@ function _renderTabulatorHeaderHTML(tableWidgetDiv){ } // Returns collapsable HTML element for TableWidget header buttons -function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv, language){ +function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ var tableUniqueId = tableWidgetDiv.attr('tableUniqueId'); From 67a29b2ff7b70ae51520311597439cba67ae0266 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 20 Apr 2020 14:58:24 +0200 Subject: [PATCH 29/34] Moved Tablesettings-Helptext to server (using phrases-system) --- .../lehre/lehrauftrag/Lehrauftrag.php | 3 +- .../lehrauftrag/LehrauftragAkzeptieren.php | 3 +- .../lehre/lehrauftrag/LehrauftragErteilen.php | 3 +- .../lehre/lehrauftrag/acceptLehrauftrag.php | 16 +- .../lehre/lehrauftrag/approveLehrauftrag.php | 16 +- .../lehre/lehrauftrag/orderLehrauftrag.php | 16 +- application/views/widgets/table/table.php | 5 +- .../views/widgets/table/tableHelpsite.php | 39 +++ public/js/TableWidget.js | 79 ----- system/phrasesupdate.php | 270 +++++++++++++++++- 10 files changed, 362 insertions(+), 88 deletions(-) create mode 100644 application/views/widgets/table/tableHelpsite.php diff --git a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php index dade1fb21..b7140c7c3 100644 --- a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php +++ b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php @@ -52,7 +52,8 @@ class Lehrauftrag extends Auth_Controller array( 'global', 'ui', - 'lehre' + 'lehre', + 'table' ) ); diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php index aab6d9c04..3bb44e4fc 100644 --- a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php +++ b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php @@ -52,7 +52,8 @@ class LehrauftragAkzeptieren extends Auth_Controller 'ui', 'lehre', 'password', - 'dms' + 'dms', + 'table' ) ); diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php b/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php index b339c81a4..64a2be69b 100644 --- a/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php +++ b/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php @@ -50,7 +50,8 @@ class LehrauftragErteilen extends Auth_Controller array( 'global', 'ui', - 'lehre' + 'lehre', + 'table' ) ); diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index 19e6a5ac1..f0f1247be 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -46,7 +46,21 @@ $this->load->view( 'vertragWurdeStorniert', ), 'password' => array('password'), - 'dms' => array('informationsblattExterneLehrende') + 'dms' => array('informationsblattExterneLehrende'), + 'table' => array( + 'spaltenEinAusblenden', + 'spaltenEinAusblendenMitKlickOeffnen', + 'spaltenEinAusblendenAufEinstellungenKlicken', + 'spaltenEinAusblendenMitKlickAktivieren', + 'spaltenEinAusblendenMitKlickSchliessen', + 'spaltenbreiteVeraendern', + 'spaltenbreiteVeraendernText', + 'spaltenbreiteVeraendernInfotext', + 'zeilenAuswaehlen', + 'zeilenAuswaehlenEinzeln', + 'zeilenAuswaehlenBereich', + 'zeilenAuswaehlenAlle' + ) ), 'customJSs' => array( 'public/js/bootstrapper.js', diff --git a/application/views/lehre/lehrauftrag/approveLehrauftrag.php b/application/views/lehre/lehrauftrag/approveLehrauftrag.php index 0e45420bf..11608757a 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftrag.php @@ -45,7 +45,21 @@ $this->load->view( 'letzterStatusBestellt', 'letzterStatusErteilt', 'letzterStatusAngenommen', - ) + ), + 'table' => array( + 'spaltenEinAusblenden', + 'spaltenEinAusblendenMitKlickOeffnen', + 'spaltenEinAusblendenAufEinstellungenKlicken', + 'spaltenEinAusblendenMitKlickAktivieren', + 'spaltenEinAusblendenMitKlickSchliessen', + 'spaltenbreiteVeraendern', + 'spaltenbreiteVeraendernText', + 'spaltenbreiteVeraendernInfotext', + 'zeilenAuswaehlen', + 'zeilenAuswaehlenEinzeln', + 'zeilenAuswaehlenBereich', + 'zeilenAuswaehlenAlle' + ) ), 'customJSs' => array( 'public/js/bootstrapper.js', diff --git a/application/views/lehre/lehrauftrag/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php index 628e068c8..32c490250 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftrag.php @@ -44,7 +44,21 @@ $this->load->view( 'letzterStatusAngenommen', 'nachAenderungStundensatzStunden', 'vorAenderungStundensatzStunden' - ) + ), + 'table' => array( + 'spaltenEinAusblenden', + 'spaltenEinAusblendenMitKlickOeffnen', + 'spaltenEinAusblendenAufEinstellungenKlicken', + 'spaltenEinAusblendenMitKlickAktivieren', + 'spaltenEinAusblendenMitKlickSchliessen', + 'spaltenbreiteVeraendern', + 'spaltenbreiteVeraendernText', + 'spaltenbreiteVeraendernInfotext', + 'zeilenAuswaehlen', + 'zeilenAuswaehlenEinzeln', + 'zeilenAuswaehlenBereich', + 'zeilenAuswaehlenAlle' + ) ), 'customJSs' => array( 'public/js/bootstrapper.js', diff --git a/application/views/widgets/table/table.php b/application/views/widgets/table/table.php index 936c32dc8..35d66988a 100644 --- a/application/views/widgets/table/table.php +++ b/application/views/widgets/table/table.php @@ -4,7 +4,10 @@
- + + + load->view('widgets/table/tableHelpsite') ?> +
diff --git a/application/views/widgets/table/tableHelpsite.php b/application/views/widgets/table/tableHelpsite.php new file mode 100644 index 000000000..56523f7da --- /dev/null +++ b/application/views/widgets/table/tableHelpsite.php @@ -0,0 +1,39 @@ + +
+
+
+ +

p->t('ui', 'tabelleneinstellungen')); ?>

+
+ p->t('table', 'spaltenEinAusblenden'); ?> +

+

    +
  • p->t('table', 'spaltenEinAusblendenMitKlickOeffnen'); ?>
  • +
  • p->t('table', 'spaltenEinAusblendenAufEinstellungenKlicken'); ?>
  • +
  • p->t('table', 'spaltenEinAusblendenMitKlickAktivieren'); ?>
  • +
  • p->t('table', 'spaltenEinAusblendenMitKlickSchliessen'); ?>
  • +
+

+
+ p->t('table', 'spaltenbreiteVeraendern'); ?> +

p->t('table', 'spaltenbreiteVeraendernText'); ?>

+
+ INFO: + p->t('table', 'spaltenbreiteVeraendernInfotext'); ?> +
+
+
+ +

p->t('table', 'zeilenAuswaehlen'); ?>

+
+
    +
  • p->t('table', 'zeilenAuswaehlenEinzeln'); ?>
  • +
  • p->t('table', 'zeilenAuswaehlenBereich'); ?>
  • +
  • p->t('table', 'zeilenAuswaehlenAlle'); ?>
  • +
+
+
+ +
+
+
\ No newline at end of file diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index da0df14f2..559de7f40 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -837,85 +837,6 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ tabulatorHeaderCollapseHTML += '
'; // end col tabulatorHeaderCollapseHTML += '
'; // end row - // CollapseHTML 'Help' - tabulatorHeaderCollapseHTML += '
'; - tabulatorHeaderCollapseHTML += '
'; - tabulatorHeaderCollapseHTML += '
'; - - 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 - } - 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 - tabulatorHeaderCollapseHTML += '
'; // end row - return tabulatorHeaderCollapseHTML; } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index e21e5e741..bedcd6fe8 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -5613,8 +5613,274 @@ When on hold, the date is only a reminder.', 'insertvon' => 'system' ) ) -======= ->>>>>>> feature-5961/DigitalerLehrauftrag_Auszahlungsinfoblatt_externe_Lehrende + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'spaltenEinAusblenden', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Spalten ein- und ausblenden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Show and hide columns', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'spaltenEinAusblendenMitKlickOeffnen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => ' + Mit einem Klick auf werden die Einstellungen geöffnet. + ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'With a click on the settings will open', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'spaltenEinAusblendenAufEinstellungenKlicken', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Auf Spalteneinstellungen klicken', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Click on column settings', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'spaltenEinAusblendenMitKlickAktivieren', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => ' + Durch (wiederholtes) Klicken auf ein Feld mit dem Spaltennamen wird die entsprechende Spalte in der + Tabelle ein- bzw. ausgeblendet. + ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => ' + By clicking on a field with a column name the corresponding column is shown / hidden in the table. + ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'spaltenEinAusblendenMitKlickSchliessen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => ' + Mit einem Klick auf werden die Einstellungen wieder + geschlossen. + ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => ' + With a click on the settings will be closed again. + ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'spaltenbreiteVeraendern', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Spaltenbreite verändern', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Change column width', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'spaltenbreiteVeraendernText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => ' + 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. + ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => ' + 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 it to the left.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'spaltenbreiteVeraendernInfotext', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => ' + 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. + ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => ' + All individual table settings are saved in your browser cache. If you clear your browser + cache, your settings will be erased. You will then need to reset them again. + ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'zeilenAuswaehlen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Zeilen auswählen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Select rows', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'zeilenAuswaehlenEinzeln', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Einzeln auswählen: Strg + Klick auf einzelne Zeile(n)', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Select individually: Ctrl + click on single line (s)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'zeilenAuswaehlenBereich', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bereich auswählen: Shift + Klick auf Anfangs- und Endzeile', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Select a range: Shift + click on the start and end line', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'table', + 'phrase' => 'zeilenAuswaehlenAlle', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Alle auswählen: Button \'Alle auswählen\'', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Select all: Button \'Select all \' ', + 'description' => '', + 'insertvon' => 'system' + ) + ) ) ); From af8b6ed93d240d0b7dcb4e7d64468a6b49a12dde Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 21 Apr 2020 13:31:13 +0200 Subject: [PATCH 30/34] Created view for orderLehrauftrag-Helptext (using phrases-system) --- .../lehre/lehrauftrag/orderLehrauftrag.php | 159 ++++-------------- .../lehrauftrag/orderLehrauftragHelp.php | 77 +++++++++ 2 files changed, 107 insertions(+), 129 deletions(-) create mode 100644 application/views/lehre/lehrauftrag/orderLehrauftragHelp.php diff --git a/application/views/lehre/lehrauftrag/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php index 32c490250..4498dacb4 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftrag.php @@ -16,7 +16,11 @@ $this->load->view( 'tablewidget' => true, 'navigationwidget' => true, 'phrases' => array( - 'global' => array('lehrauftraegeBestellen'), + 'global' => array( + 'lehrauftraegeBestellen', + 'mehrHilfe', + 'weitereInformationenUnter' + ), 'ui' => array( 'anzeigen', 'alleAnzeigen', @@ -58,6 +62,29 @@ $this->load->view( 'zeilenAuswaehlenEinzeln', 'zeilenAuswaehlenBereich', 'zeilenAuswaehlenAlle' + ), + 'lehre' => array( + 'lehrauftragStandardBestellprozess', + 'lehrauftragStandardBestellprozessBestellen', + 'lehrauftragStandardBestellprozessErteilen', + 'lehrauftragStandardBestellprozessAnnehmen', + 'lehrauftraegeBestellen', + 'lehrauftraegeBestellenText', + 'lehrauftraegeBestellenKlickStatusicon', + 'lehrauftraegeBestellenLehrauftraegeWaehlen', + 'lehrauftraegeBestellenMitKlickBestellen', + 'lehrauftraegeBestellenVertragWirdAngelegt', + 'geaenderteLehrauftraege', + 'geaenderteLehrauftraegeText', + 'lehrauftraegeNichtAuswaehlbar', + 'lehrauftraegeNichtAuswaehlbarText', + 'filterAlle', + 'filterNeu', + 'filterBestellt', + 'filterErteilt', + 'filterAngenommen', + 'filterGeaendert', + 'filterDummies' ) ), 'customJSs' => array( @@ -89,7 +116,7 @@ $this->load->view(
- + load->view('lehre/lehrauftrag/orderLehrauftragHelp') ?>
@@ -177,130 +204,4 @@ $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 +load->view('templates/FHC-Footer'); ?> \ No newline at end of file diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragHelp.php b/application/views/lehre/lehrauftrag/orderLehrauftragHelp.php new file mode 100644 index 000000000..5ea991002 --- /dev/null +++ b/application/views/lehre/lehrauftrag/orderLehrauftragHelp.php @@ -0,0 +1,77 @@ +

p->t('lehre', 'lehrauftragStandardBestellprozess'); ?>

+
+ + + + + + + + + + + + + + + +
p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?>p->t('lehre', 'lehrauftragStandardBestellprozessErteilen'); ?>p->t('lehre', 'lehrauftragStandardBestellprozessAnnehmen'); ?>
+
+
+ +

p->t('lehre', 'lehrauftraegeBestellen'); ?>

+
+ p->t('lehre', 'lehrauftraegeBestellenText'); ?> +
+
    +
  1. p->t('lehre', 'lehrauftraegeBestellenKlickStatusicon'); ?>
  2. +
  3. p->t('lehre', 'lehrauftraegeBestellenLehrauftraegeWaehlen'); ?>
  4. +
  5. p->t('lehre', 'lehrauftraegeBestellenMitKlickBestellen'); ?>
  6. +
+ p->t('lehre', 'lehrauftraegeBestellenVertragWirdAngelegt'); ?> +
+
+ +

p->t('lehre', 'geaenderteLehrauftraege'); ?>

+
+ p->t('lehre', 'geaenderteLehrauftraegeText'); ?> +
+
+ +

p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?>

+
+ p->t('lehre', 'lehrauftraegeNichtAuswaehlbarText'); ?> +
+
+ +

Filter

+
+ + + + + + + + + + + + + + + + + + + + +
p->t('lehre', 'filterAlle'); ?>p->t('lehre', 'filterNeu'); ?>p->t('lehre', 'filterBestellt'); ?>p->t('lehre', 'filterErteilt'); ?>p->t('lehre', 'filterAngenommen'); ?>p->t('lehre', 'filterGeaendert'); ?>p->t('lehre', 'filterDummies'); ?>
+
+
+ +

p->t('global', 'mehrHilfe'); ?>

+
+ p->t('global', 'weitereInformationenUnter'); ?> + FH Complete WIKI +

\ No newline at end of file From 3dacba5625aed465931b45e7e82a74f35e62bdae Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 21 Apr 2020 13:31:37 +0200 Subject: [PATCH 31/34] Created view for approveLehrauftrag-Helptext (using phrases-system) --- .../lehre/lehrauftrag/approveLehrauftrag.php | 155 ++++-------------- .../lehrauftrag/approveLehrauftragHelp.php | 74 +++++++++ 2 files changed, 102 insertions(+), 127 deletions(-) create mode 100644 application/views/lehre/lehrauftrag/approveLehrauftragHelp.php diff --git a/application/views/lehre/lehrauftrag/approveLehrauftrag.php b/application/views/lehre/lehrauftrag/approveLehrauftrag.php index 11608757a..7e0c062bf 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftrag.php @@ -16,7 +16,11 @@ $this->load->view( 'tablewidget' => true, 'navigationwidget' => true, 'phrases' => array( - 'global' => array('lehrauftraegeErteilen'), + 'global' => array( + 'lehrauftraegeErteilen', + 'mehrHilfe', + 'weitereInformationenUnter' + ), 'ui' => array( 'anzeigen', 'alleAnzeigen', @@ -59,6 +63,28 @@ $this->load->view( 'zeilenAuswaehlenEinzeln', 'zeilenAuswaehlenBereich', 'zeilenAuswaehlenAlle' + ), + 'lehre' => array( + 'lehrauftragStandardBestellprozess', + 'lehrauftragStandardBestellprozessBestellen', + 'lehrauftragStandardBestellprozessErteilen', + 'lehrauftragStandardBestellprozessAnnehmen', + 'lehrauftraegeErteilen', + 'lehrauftraegeErteilenText', + 'lehrauftraegeErteilenKlickStatusicon', + 'lehrauftraegeErteilenLehrauftraegeWaehlen', + 'lehrauftraegeErteilenMitKlickErteilen', + 'geaenderteLehrauftraege', + 'geaenderteLehrauftraegeTextBeiErteilung', + 'lehrauftraegeNichtAuswaehlbar', + 'lehrauftraegeNichtAuswaehlbarTextBeiErteilung', + 'filterAlle', + 'filterNeu', + 'filterBestellt', + 'filterErteilt', + 'filterAngenommen', + 'filterGeaendert', + 'filterDummies' ) ), 'customJSs' => array( @@ -67,7 +93,6 @@ $this->load->view( ) ) ); - ?> @@ -91,7 +116,7 @@ $this->load->view(
- + load->view('lehre/lehrauftrag/approveLehrauftragHelp') ?>
@@ -185,127 +210,3 @@ $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/approveLehrauftragHelp.php b/application/views/lehre/lehrauftrag/approveLehrauftragHelp.php new file mode 100644 index 000000000..0343da5f1 --- /dev/null +++ b/application/views/lehre/lehrauftrag/approveLehrauftragHelp.php @@ -0,0 +1,74 @@ +

p->t('lehre', 'lehrauftragStandardBestellprozess'); ?>

+
+ + + + + + + + + + + + + + + +
p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?>p->t('lehre', 'lehrauftragStandardBestellprozessErteilen'); ?>p->t('lehre', 'lehrauftragStandardBestellprozessAnnehmen'); ?>
+
+
+ +

p->t('lehre', 'lehrauftraegeErteilen'); ?>

+
+ p->t('lehre', 'lehrauftraegeErteilenText'); ?> +
    +
  1. p->t('lehre', 'lehrauftraegeErteilenKlickStatusicon'); ?>
  2. +
  3. p->t('lehre', 'lehrauftraegeErteilenLehrauftraegeWaehlen'); ?>
  4. +
  5. p->t('lehre', 'lehrauftraegeErteilenMitKlickErteilen'); ?>
  6. +
+
+
+ +

p->t('lehre', 'geaenderteLehrauftraege'); ?>

+
+ p->t('lehre', 'geaenderteLehrauftraegeTextBeiErteilung'); ?> +
+
+ +

p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?>

+
+ p->t('lehre', 'lehrauftraegeNichtAuswaehlbarTextBeiErteilung'); ?> +
+
+ +

Filter

+
+ + + + + + + + + + + + + + + + + + + + +
p->t('lehre', 'filterAlle'); ?>p->t('lehre', 'filterNeu'); ?>p->t('lehre', 'filterBestellt'); ?>p->t('lehre', 'filterErteilt'); ?>p->t('lehre', 'filterAngenommen'); ?>p->t('lehre', 'filterGeaendert'); ?>p->t('lehre', 'filterDummies'); ?>
+
+
+ +

p->t('global', 'mehrHilfe'); ?>

+
+ p->t('global', 'weitereInformationenUnter'); ?>FH Complete WIKI +

\ No newline at end of file From 989409f860700a901a2763215be107d8e6f173fe Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 21 Apr 2020 13:31:58 +0200 Subject: [PATCH 32/34] Created view for acceptLehrauftrag-Helptext (using phrases-system) --- .../lehre/lehrauftrag/acceptLehrauftrag.php | 126 ++++-------------- .../lehrauftrag/acceptLehrauftragHelp.php | 35 +++++ 2 files changed, 58 insertions(+), 103 deletions(-) create mode 100644 application/views/lehre/lehrauftrag/acceptLehrauftragHelp.php diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index f0f1247be..385845026 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -16,8 +16,11 @@ $this->load->view( 'tablewidget' => true, 'phrases' => array( 'global' => array( - 'lehrauftraegeAnnehmen' - ), + 'lehrauftraegeAnnehmen', + 'dokumentePDF', + 'PDFLehrauftraegeFH', + 'PDFLehrauftraegeLehrgaenge' + ), 'ui' => array( 'anzeigen', 'alleAnzeigen', @@ -60,14 +63,25 @@ $this->load->view( 'zeilenAuswaehlenEinzeln', 'zeilenAuswaehlenBereich', 'zeilenAuswaehlenAlle' - ) + ), + 'lehre' => array( + 'lehrauftraegeAnnehmen', + 'lehrauftraegeAnnehmenText', + 'lehrauftraegeAnnehmenKlickStatusicon', + 'lehrauftraegeAnnehmenLehrauftraegeWaehlen', + 'lehrauftraegeAnnehmenMitKlickAnnehmen', + 'lehrauftraegeNichtAuswaehlbar', + 'lehrauftraegeNichtAuswaehlbarTextBeiAnnahme', + 'filterAlleBeiAnnahme', + 'filterErteiltBeiAnnahme', + 'filterAngenommen' + ) ), 'customJSs' => array( 'public/js/bootstrapper.js', 'public/js/lehre/lehrauftrag/acceptLehrauftrag.js') ) ); - ?> @@ -90,7 +104,7 @@ $this->load->view(
- + load->view('lehre/lehrauftrag/acceptLehrauftragHelp') ?>
@@ -137,7 +151,7 @@ $this->load->view(
- +