Esempio n. 1
0
RegistrationEditor.prototype.init = function(draft) {
    var self = this;

    self.draft(draft);
    var metaSchema = draft.metaSchema;

    self.saveManager = null;
    var schemaData = {};
    if (draft) {
        self.saveManager = new SaveManager(
            self.urls.update.replace('{draft_pk}', draft.pk),
            null, {
                dirty: self.dirtyCount
            }
        );
        schemaData = draft.schemaData || {};
    }

    self.lastSaveTime = ko.computed(function() {
        if (!self.draft()) {
            return null;
        }
        return self.draft().updated;
    });
    self.lastSaved = ko.computed(function() {
        var t = self.lastSaveTime();
        if (t) {
            return t.toGMTString();
        } else {
            return 'never';
        }
    });

    // Set currentPage to the first page
    var pages = self.draft().pages();
    var index = History.getState().data.page || 0;
    if (index > pages.length) {
        index = 0;
    }
    self.currentPage(pages[index]);

    self.needsSave.subscribe(function(dirty) {
        if (dirty) {
            self.save().then(function(last) {
                if (self.dirtyCount() === last){
                    self.dirtyCount(0);
                }
            }.bind(self, self.dirtyCount()));
        }
    });

    self.getContributors().done(function(data) {
        self.contributors(data);
    });

    self.currentQuestion(self.flatQuestions().shift());
};
Esempio n. 2
0
    History.Adapter.bind(window, 'statechange', function(e) {
        var state = History.getState().data;
        if (!utils.stateChanged(self.vm)){
            return;
        }

        self.vm.optionalFilters = state.optionalFilters;
        self.vm.requiredFilters = state.requiredFilters;
        self.vm.query(state.query);
        self.vm.sort(state.sort);
        utils.search(self.vm);
    });
Esempio n. 3
0
 self.loadState = function() {
     var state = History.getState().data;
     self.currentPage(state.page || 1);
     self.setCategory(state.filter);
     self.query(state.query || '');
 };
Esempio n. 4
0
utils.stateChanged = function(vm){
    var state = History.getState().data;
    return !(state.query === vm.query() && state.sort === vm.sort() &&
            utils.arrayEqual(state.optionalFilters, vm.optionalFilters) &&
            utils.arrayEqual(state.requiredFilters, vm.requiredFilters));
};