Project

General

Profile

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

« Previous - Version 3/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
        }
    });