diff options
| author | Paul-Christian Volkmer | 2023-09-27 16:24:43 +0200 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-09-27 16:24:43 +0200 |
| commit | c7d6851130aa5c69c81e9414bd3a8a2b790d7ad5 (patch) | |
| tree | cd88c3040ad65d43b204a95d3fedd99d33e1823d /examples/uf-einzelempfehlung/studien-dialog.js | |
| parent | 408726045245b35ab2e8ce5fab29250dd8d1af7e (diff) | |
Verschiebe Formularscripte in Verzeichnis `/scripts`
Diffstat (limited to 'examples/uf-einzelempfehlung/studien-dialog.js')
| -rw-r--r-- | examples/uf-einzelempfehlung/studien-dialog.js | 215 |
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); -} |
