Benutzer-Werkzeuge

Webseiten-Werkzeuge


Plugin installed incorrectly. Rename plugin directory 'swiftmail.backup' to 'swiftmail'.
projekt:jsfundgrube:filter

Inhaltsverzeichnis

Vorbelegte Filter

Es ist möglich Filter per Javascript mit Werten aus dem User Profil vorzubelegen. Um dies zu erreichen muss folgender Code in die verwendete custom.js Datei kopiert werden.

(function($){
 
	var GADGET_NAME = 'pmprocesses';
	var TAB_NAME = 'instances'; //Gibt an auf welchem Tab der vorzubelegende Filter liegt (z.B.: definitions,myStartedProcessInstances,...)
	var FILTER = 'name'; //Gibt an welcher Filter vorbelegt werden soll (z.B.: smartFormIndex1,smartFormIndex2,...)
	var SOURCE = gadget.getEntity('currentUserProfile'); //Oder gadget.getEntity('currentUser') um Werte wie Vorname, Nachname,... zu beziehen
	var FIELD = 'department'; //Gibt an welches Feld verwendet werden soll (z.B.: namefirst, namelast,...)
        var USER_PROFILE = gadget.getEntity('currentUserProfile');
	var SYSTEM_PROPS = USER_PROFILE.systemConfigurationProperties;
	var FILTER_NAME = 'filter.' + GADGET_NAME + '.' + TAB_NAME + '.' + FILTER;
	var FIELD_NAME = 'fields.' + GADGET_NAME + '.' + TAB_NAME;
	var APPLY = true;
 
	function applyFilter(gui, value){
		var callback = gui.requestMethodCallback;
		gui.requestMethod.filter = " ( " + FILTER + " like '%" + value + "%' ) ";
		gui.requestMethod(callback);
		gui.filters[FILTER] = {visible: false, active: true, value: value};
	}
 
	function overrideUpdateMe(gui){
		var old = gui.updateMe;
		gui.updateMe = function(){
			if(this.gadget.name==GADGET_NAME && this.tabName==TAB_NAME){
				var filter = this.filters[FILTER] || '';
				webService.SystemManager.saveGui(FILTER_NAME, filter.value || filter);
			}
			old.bind(this)();
		}
	}
 
	if(Gadget.CLIENTNAME=='Processmanager Client'){
		$(SYSTEM_PROPS).each(function(i, e){
			if(e.name==FIELD_NAME && e.value.indexOf(FILTER)===-1)
    			APPLY = false;
   		});
		var checkExist = setInterval(function(){
			var g = gadget.getGadget(GADGET_NAME);
			if(typeof(g)!='undefined'){
				var t = g.tabView.getTab(TAB_NAME);
				if(typeof(t)!='undefined'){
					overrideUpdateMe(t.gui);
					var field = SOURCE.getValue(FIELD);
					if(typeof(field)!='undefined' && $.trim(field)!='' && APPLY)
						applyFilter(t.gui, field);
					$(SYSTEM_PROPS).each(function(i, e){
						if(e.name==FILTER_NAME && $.trim(e.value)!='' && APPLY)
    						applyFilter(t.gui, e.value);
   					});
					clearInterval(checkExist);
				}
			}
		}, 300);
	}
 
}(jQuery));
projekt/jsfundgrube/filter.txt · Zuletzt geändert: 2021/07/01 09:52 (Externe Bearbeitung)