Commit 560cd58a authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Remember status of Hide Inherited checkbox.

Created separate store for Docs app settings to remember that.
parent 7e6171c2
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -10,7 +10,8 @@ Ext.define('Docs.Application', {

    requires: [
        'Docs.Favorites',
        'Docs.History'
        'Docs.History',
        'Docs.Settings'
    ],

    controllers: [
@@ -24,5 +25,6 @@ Ext.define('Docs.Application', {
        Docs.App = this;
        Docs.Favorites.init();
        Docs.History.init();
        Docs.Settings.init();
    }
});
+36 −0
Original line number Diff line number Diff line
/**
 * Provides access to Docs app settings.
 */
Ext.define("Docs.Settings", {
    extend: 'Docs.LocalStore',
    storeName: 'Settings',
    singleton: true,

    /**
     * Saves a setting
     *
     * @param {String} key  Name of the setting
     * @param {Mixed} value  Value of the setting
     */
    set: function(key, value) {
        var index = this.store.findExact("key", key);
        if (index > -1) {
            this.store.getAt(index).set({key: key, value: value});
        }
        else {
            this.store.add({key: key, value: value});
        }
        this.syncStore();
    },

    /**
     * Gets value of a setting.
     *
     * @param {String} key  Name of the setting
     * @return {Mixed} value of the setting or undefined.
     */
    get: function(key) {
        var index = this.store.findExact("key", key);
        return index > -1 ? this.store.getAt(index).get("value") : undefined;
    }
});
+4 −2
Original line number Diff line number Diff line
@@ -10,12 +10,14 @@ Ext.define('Docs.controller.Classes', {

    stores: [
        'Favorites',
        'History'
        'History',
        'Settings'
    ],

    models: [
        'Favorite',
        'History'
        'History',
        'Setting'
    ],

    init: function() {
+11 −0
Original line number Diff line number Diff line
/**
 * Key-value pairs of Docs app settings.
 */
Ext.define('Docs.model.Setting', {
    fields: ['id', 'key', 'value'],
    extend: 'Ext.data.Model',
    proxy: {
        type: ('localStorage' in window && window['localStorage'] !== null) ? 'localstorage' : 'memory',
        id  : 'docs-settings'
    }
});
+7 −0
Original line number Diff line number Diff line
/**
 * Store for keeping Docs app settings
 */
Ext.define('Docs.store.Settings', {
    extend: 'Ext.data.Store',
    model: 'Docs.model.Setting'
});
Loading