CallBackery

 view release on metacpan or  search on metacpan

lib/CallBackery/qooxdoo/callbackery/source/class/callbackery/ui/plugin/Form.js  view on Meta::CPAN

            // this.setEnabled(false);
            if (!this._form) return;

            var that = this;
            var rpc = callbackery.data.Server.getInstance();
            if (this._loading > 0){
                return;
            }
            this._loading++;
            var parentFormData = {};
            if (this._getParentFormData){
                parentFormData = this._getParentFormData();
            }
            rpc.callAsync(function(data,exc){
                if (!exc){
                    if (that._form) {
                        var statusData = {};
                        that._cfg.form.forEach(function(item){
                            if (item.key in data && data[item.key] !== null) {
                                if (item.reloadOnFormReset === true) {
                                    statusData[item.key] = data[item.key];
                                }
                                else if (item.reloadOnFormReset !== false){
                                    if (item.set && item.set.readOnly){
                                        statusData[item.key] = data[item.key];
                                    }
                                }
                            }
                        });
                        that._form.setData(statusData,true);
                    }
                }
                that._loading--;
            },'getPluginData',this._cfg.name,'allFields',parentFormData,{ currentFormData: this._form.getData()});
        },
        _getUrlData: function () {
            let data    = {};
            let gotData = false;
            let config  = callbackery.data.Config.getInstance();
            this._urlFormElements.forEach(urlFormElement => {
                let urlValue = config.getUrlConfigValue(urlFormElement.urlKey);
                if (urlValue) {
                    data[urlFormElement.formKey] = urlValue;
                    // only do it once for the time being
                    config.removeUrlConfigEntry(urlFormElement.urlKey);
                    gotData = true;
                }
            });
            return data;
        },
        _loadData: function(mergeUrlData){
            if (!this._form) return;

            var that = this;
            var rpc = callbackery.data.Server.getInstance();
            this._loading++;
            var parentFormData = {};
            if (this._getParentFormData){
                parentFormData = this._getParentFormData();
            }
            var busy = callbackery.ui.Busy.getInstance();
            busy.manifest(this.tr('Loading Form Data'));
            rpc.callAsync(function(data,exc){
                if (!exc){
                    if (mergeUrlData) {
                        let urlData = that._getUrlData();
                        if (!data) {
                            data = urlData;
                        }
                        else {
                            Object.assign(data, urlData);
                        }
                    }
                    if (that._form) {
                        that._form.setData(data,true);
                        if (that._hasTrigger) {
                            that._reconfForm();
                        }
                    }
                }
                else {
                    if (exc.code != 2){ /* 2 is for aborted calls, this happens when the popup is closed */
                        callbackery.ui.MsgBox.getInstance().exc(exc);
                    }
                }
                busy.vanish();
                that._loading--;
            },'getPluginData',this._cfg.name,'allFields',parentFormData,{ currentFormData: this._form.getData()});
        }
    },
    destruct : function() {
        // cleanup; setting _form=null will abort _reconfFormHandler()
        this._form.destroy();
        this._form = null;
        if (this._actionResponseHandler) {
            this.removeListenerById(this._actionResponseHandler);
        }
    }
});



( run in 1.371 second using v1.01-cache-2.11-cpan-39bf76dae61 )