Project

General

Profile

Rajout du bouton Filter dans la barre de menu » History » Version 4

« Previous - Version 4/5 (diff) - Next » - Current version
Marc Nicolas, 22/03/2013 10:27


Rajout du bouton Filter dans la barre de menu

Pour Rajouter le bouton Filter, il faut dans le fichier Livegrid.js (client-user/js/components/dataviews/livegrid) :

  • Rajouter le code suivant dans l'élément this.topBar (l.507) :
    {
                text : i18n.get("label.filter"),
                scope : this, 
                handler : function () {
                    var pos = this.getPosition();
                    var up = new sitools.widget.filterTool({
                        pos : pos,
                        store : this.storefilters,
                        columnModel : config.datasetCm,
                    });
                    up.show();
                }, 
                icon : loadUrl.get('APP_URL') + "/common/res/images/icons/hmenu-asc-all.png" 
            }
    
  • Rajouter dans la fonction sitools.user.component.dataviews.livegrid.LiveGrid = function (config) (l.248)
       this.storefilters = new sitools.user.component.dataviews.tplView.StoreTplView({
            datasetCm : config.datasetCm,
            urlRecords : this.urlRecords,
            sitoolsAttachementForUsers : this.sitoolsAttachementForUsers,
            userPreference : config.userPreference, 
            bufferSize : DEFAULT_LIVEGRID_BUFFER_SIZE, 
            formParams : config.formParams, 
            formMultiDsParams : config.formMultiDsParams, 
            mainView : this, 
            datasetId : config.datasetId,
            filtersCfg : config.filtersCfg,
            isFirstCountDone : false
        });
    
        this.storefilters.filters = new sitools.widget.FiltersCollection({
            filters : config.filters 
        });
    
        this.storefilters.on("beforeload", function (storefilters, options) {
            //set the nocount param to false.
            //before load is called only when a new action (sort, filter) is applied
            var noCount;
    
            if (!storefilters.isFirstCountDone || storefilters.isNewFilter) {
                options.params.nocount = false;
            } else {
                options.params.nocount = true;
            }
    
            if (storefilters.isNewFilter) {
                options.params.start = 0;
                options.params.limit = DEFAULT_LIVEGRID_BUFFER_SIZE;
            }
    
            storefilters.isNewFilter = false;        
            if (!Ext.isEmpty(storefilters.filters)) {
                var params = storefilters.buildQuery(storefilters.filters.getFilterData());
                Ext.apply(options.params, params);
            }
    
            if (!Ext.isEmpty(this.dataView)) {
                this._loadMaskAnchor = Ext.get(this.el.dom);
    
                this._loadMaskAnchor.mask(i18n.get('label.waitMessage'), "x-mask-loading");
            }
            this.storefilters.storeOptions(options);
            //this.el.mask(i18n.get('label.waitMessage'), "x-mask-loading");
         }, this);
    
        this.storefilters.on('load', function (store, records, options) {
            if (this._loadMaskAnchor && this._loadMaskAnchor.isMasked()) {
                this._loadMaskAnchor.unmask();
            }
            var plotComp = Ext.getCmp("plot" + config.datasetId);
            if (plotComp) {
                var rightPanel = plotComp.findById('plot-right-panel');
                var success = rightPanel.fireEvent('buffer', storefilters);
            }
            this.storefilters.isFirstCountDone = true;
    
        }, this);
    
        this.storefilters.load({
            params : {
                start : 0, 
                limit : DEFAULT_LIVEGRID_BUFFER_SIZE
            }
        });