summaryrefslogtreecommitdiff
path: root/examples/uf-einzelempfehlung/studien-dialog.js
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-09-27 16:24:43 +0200
committerPaul-Christian Volkmer2023-09-27 16:24:43 +0200
commitc7d6851130aa5c69c81e9414bd3a8a2b790d7ad5 (patch)
treecd88c3040ad65d43b204a95d3fedd99d33e1823d /examples/uf-einzelempfehlung/studien-dialog.js
parent408726045245b35ab2e8ce5fab29250dd8d1af7e (diff)
Verschiebe Formularscripte in Verzeichnis `/scripts`
Diffstat (limited to 'examples/uf-einzelempfehlung/studien-dialog.js')
-rw-r--r--examples/uf-einzelempfehlung/studien-dialog.js215
1 files changed, 0 insertions, 215 deletions
diff --git a/examples/uf-einzelempfehlung/studien-dialog.js b/examples/uf-einzelempfehlung/studien-dialog.js
deleted file mode 100644
index 4ec4da8..0000000
--- a/examples/uf-einzelempfehlung/studien-dialog.js
+++ /dev/null
@@ -1,215 +0,0 @@
-const availableStore = new Ext.data.ArrayStore({
- fields: [
- {name: 'kategorieName'},
- {name: 'version'},
- {name: 'code'},
- {name: 'type'},
- {name: 'studiennummer'},
- {name: 'shortDesc'},
- {name: 'description'}
- ]
-});
-
-let pluginRequestsDisabled = false;
-
-const findButtonFieldFormInformation = function (context) {
- const findElemId = function (elem) {
- if (elem.tagName === 'BODY') {
- return undefined;
- }
-
- if (elem.tagName === 'TABLE') {
- return elem.id;
- }
-
- return findElemId(elem.parentElement);
- }
-
- const formInfo = function (formItem, blockIndex = undefined) {
- if (formItem.xtype === 'buttonField') {
- return formInfo(formItem.ownerCt, formItem.blockIndex);
- }
-
- if (formItem.xtype === 'panel' || formItem.xtype === 'sectionField') {
- return formInfo(formItem.ownerCt, blockIndex);
- }
-
- if (formItem.xtype === 'subformField') {
- return {
- isSubform: true,
- formName: formItem.formName,
- subformFieldName: formItem.subformName,
- blockIndex: blockIndex
- };
- }
-
- if (formItem.xtype === 'form') {
- return {
- isSubform: false,
- };
- }
-
- console.warn('No information found!');
- return undefined;
- }
-
- if (context.genericEditForm && document.activeElement.tagName === 'BUTTON') {
- let elemId = findElemId(document.activeElement);
- if (elemId) {
- let formItem = context.genericEditForm.down('#' + elemId);
- if (formItem) {
- return formInfo(formItem);
- }
- }
- }
-
- return undefined;
-}
-
-const request = function (query, includeInactive) {
- if (pluginRequestsDisabled) return;
- executePluginMethod(
- 'EinzelempfehlungAnalyzer',
- 'getStudien',
- includeInactive ? {q: query, inactive: true} : {q: query},
- function (response) {
- if (response.status.code < 0) {
- onFailure();
- return;
- }
- onSuccess(response.result);
- },
- false
- );
-};
-
-const itemMapping = function (item) {
- return [item.kategorieName, item.version, item.code, item.type, item.studiennummer, item.shortDesc, item.description];
-}
-
-const onFailure = function () {
- pluginRequestsDisabled = true;
- Ext.MessageBox.show({
- title: 'Hinweis',
- msg: 'Plugin "DNPM" nicht verfügbar.',
- buttons: Ext.MessageBox.OKCANCEL
- });
-};
-
-const onSuccess = function (d) {
- available = d;
- const extData = available.map(itemMapping);
- availableStore.loadData(extData);
-}
-
-const save = (selectedItemIndex) => {
- this.getFieldByEntriesArray('studie', blockIndex).setValue(available[selectedItemIndex].shortDesc);
- this.getFieldByEntriesArray('studienct', blockIndex).setValue(available[selectedItemIndex].studiennummer);
-}
-
-const showDialog = function (blockIndex) {
- let selectedItemIndex = -1;
- let queryString = '';
- let includeInactive = false;
-
- const gridColumns = [
- {header: 'Kategorie', width: 80, sortable: false, dataIndex: 'kategorieName'},
- {header: 'Version', width: 80, sortable: false, dataIndex: 'version'},
- {header: 'Typ', width: 120, sortable: false, dataIndex: 'type'},
- {header: 'Studiennummer', width: 120, sortable: true, dataIndex: 'studiennummer'},
- {header: 'Name', width: 320, sortable: true, dataIndex: 'shortDesc'},
- {header: 'Beschreibung', width: 400, sortable: false, dataIndex: 'description'}
- ];
-
-
- const query = new Ext.form.field.Text({
- name: 'query',
- fieldLabel: 'Suche',
- padding: 8,
- listeners: {
- change: (f) => {
- queryString = f.value;
- request(queryString, includeInactive);
- }
- }
- });
-
- const inactiveSelection = new Ext.form.field.Checkbox({
- name: 'inactive',
- fieldLabel: 'Inaktive Studien einschließen',
- labelWidth: 240,
- padding: 8,
- listeners: {
- handler: (_, checked) => {
- includeInactive = checked;
- request(queryString, includeInactive);
- }
- }
- });
-
- const availableGrid = new Ext.grid.GridPanel({
- title: 'Verfügbare Studien',
- store: availableStore,
- loadMask: true,
- border: true,
- columns: gridColumns,
- flex: 1,
- listeners: {
- itemclick: (dv, record, item, index) => {
- selectedItemIndex = index;
- },
- itemdblclick: (dv, record, item, index) => {
- save(selectedItemIndex);
- let win = Ext.WindowManager.getActive();
- if (win) {
- win.close();
- }
- }
- }
- });
-
- const layout = Ext.create('Ext.Panel', {
- flex: 1,
- layout: {
- type: 'vbox',
- align: 'stretch'
- },
- items: [query, inactiveSelection, availableGrid]
- });
-
- Ext.create('Ext.window.Window', {
- title: 'Studienauswahl',
- height: 600,
- width: 1080,
- layout: 'fit',
- items: [layout],
- buttons: [{
- id: 'btnAdd',
- text: 'Studie auswählen',
- handler: () => {
- save(selectedItemIndex);
- let win = Ext.WindowManager.getActive();
- if (win) {
- win.close();
- }
- }
- }, {
- text: 'Abbrechen',
- cls: 'onko-btn-cta',
- handler: () => {
- let win = Ext.WindowManager.getActive();
- if (win) {
- win.close();
- }
- }
- }]
- }).show();
-
- request();
-};
-
-let buttonFieldFormInformation = findButtonFieldFormInformation(this);
-if (buttonFieldFormInformation && buttonFieldFormInformation.blockIndex) {
- blockIndex = buttonFieldFormInformation.blockIndex;
- showDialog(blockIndex);
-}