aboutsummaryrefslogtreecommitdiff
path: root/js/data/settings.js
blob: ffea20759e6ff52f71831b4ac1e997ba7cde46ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc.  All Rights Reserved.
</copyright> */

var Montage = require("montage/core/core").Montage,
    Component       = require("montage/ui/component").Component,
    LocalStorage    = require("js/controllers/local-storage-controller").LocalStorage;

exports.Settings = Montage.create( Component, {

    version: {
        value: "11.1213"
    },

    _settings: {
        value: null
    },

    settings: {
        get: function() { return this._settings; },
        set: function(value) { this._settings = value; }
    },

    getSetting: {
        value: function(objName, fieldName, namespace) {
            try {
                objName = objName.replace(/-/gi, "_").replace(/\//gi, "zzSlash");
                return this.settings[objName][fieldName];
            } catch(e) {
                return null;
            }
        }
    },

    setSetting: {
        value: function(objName, fieldName, value, namespace) {
            try {
                objName = objName.replace(/-/gi, "_").replace(/\//gi, "zzSlash");

                if(this.settings === null) {
                    this.settings = {};
                }

                if (this.settings[objName] == null) {
                    this.settings[objName] = {};
                }

                this.settings[objName][fieldName] = value;

                LocalStorage.setItem("settings", this.settings);
            } catch(e) {
                return null;
            }
        }
    },
    
    deserializedFromSerialization: {
        value: function() {

            if (LocalStorage.getItem("version") != this.version) {
                this.settings = {}
                LocalStorage.setItem("version",this.version);
            } else {
                this.settings = LocalStorage.getItem("settings");
            }

        }
    }
});