# HG changeset patch # User Dustin Demuth # Date 1432214629 -7200 # Node ID ff4330d4aba13b5c08684383acf1824cda767058 # Parent b8fd43021c2979922847238d6b56f8e61a51fe0b Filter Messtellen in Probeform and Messprogramm diff -r b8fd43021c29 -r ff4330d4aba1 app.js --- a/app.js Wed May 20 16:48:03 2015 +0200 +++ b/app.js Thu May 21 15:23:49 2015 +0200 @@ -60,6 +60,7 @@ Lada.username = ''; Lada.userroles = ''; Lada.logintime = ''; + Lada.mst = []; var queryString = document.location.href.split('?')[1]; if (queryString) { @@ -118,6 +119,7 @@ Lada.username = json.data.username; Lada.userroles = json.data.roles; Lada.logintime = json.data.servertime; + Lada.mst = json.data.mst; //Store Messstellen this user may select Ext.create('Lada.store.Datenbasis', { storeId: 'datenbasis' diff -r b8fd43021c29 -r ff4330d4aba1 app/controller/form/Messprogramm.js --- a/app/controller/form/Messprogramm.js Wed May 20 16:48:03 2015 +0200 +++ b/app/controller/form/Messprogramm.js Thu May 21 15:23:49 2015 +0200 @@ -33,6 +33,10 @@ 'messprogrammform': { dirtychange: this.dirtyForm }, + 'messprogrammform messstelle combobox':{ + expand: this.filter, + keydown: this.filter + }, 'messprogrammform location combobox': { select: this.syncOrtWindow }, @@ -55,6 +59,24 @@ } }); }, + + /** + * The Messtellen Store contains ALL Messtellen. + * Filter the store in this combobox to reduce the choices + * to the subset which the user is allowed to use. + */ + filter: function(field) { + var fil = Ext.create('Ext.util.Filter', { + filterFn: function(item) { + if (Ext.Array.contains(Lada.mst, item.get('id'))) { + return true; + } + return false; + } + }); + field.getStore().filter(fil); + }, + /** * When the Probenintervall was changed, update the Sliders * and the the numberfield. diff -r b8fd43021c29 -r ff4330d4aba1 app/controller/form/Probe.js --- a/app/controller/form/Probe.js Wed May 20 16:48:03 2015 +0200 +++ b/app/controller/form/Probe.js Thu May 21 15:23:49 2015 +0200 @@ -27,6 +27,10 @@ 'probeform': { dirtychange: this.dirtyForm }, + 'probeform messstelle combobox':{ + expand: this.filter, + keydown: this.filter + }, 'probeform [xtype="datetime"] field': { blur: this.checkDate }, @@ -37,6 +41,23 @@ }, /** + * The Messtellen Store contains ALL Messtellen. + * Filter the store in this combobox to reduce the choices + * to the subset which the user is allowed to use. + */ + filter: function(field) { + var fil = Ext.create('Ext.util.Filter', { + filterFn: function(item) { + if (Ext.Array.contains(Lada.mst, item.get('id'))) { + return true; + } + return false; + } + }); + field.getStore().filter(fil); + }, + + /** * The save function saves the content of the Location form. * On success it will reload the Store, * on failure, it will display an Errormessage diff -r b8fd43021c29 -r ff4330d4aba1 app/view/widget/Messstelle.js --- a/app/view/widget/Messstelle.js Wed May 20 16:48:03 2015 +0200 +++ b/app/view/widget/Messstelle.js Thu May 21 15:23:49 2015 +0200 @@ -30,6 +30,7 @@ if (!this.store) { this.store = Ext.create('Lada.store.Messstellen'); } + this.store.clearFilter(true); this.callParent(arguments); } });