Artifact
c23a11ff95d8b6c22b50fba974baa4014d10d580:
0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 53 65 74 74 69 pt..$uname Setti
0020: 6e 67 73 4d 61 6e 61 67 65 6d 65 6e 74 0d 0a 24 ngsManagement..$
0030: 64 6e 61 6d 65 20 d0 91 d0 b8 d0 b1 d0 bb d0 b8 dname ..........
0040: d0 be d1 82 d0 b5 d0 ba d0 b0 20 53 65 74 74 69 .......... Setti
0050: 6e 67 73 4d 61 6e 61 67 65 6d 65 6e 74 0d 0a 24 ngsManagement..$
0060: 61 64 64 69 6e 20 67 6c 6f 62 61 6c 0d 0a 24 61 addin global..$a
0070: 64 64 69 6e 20 73 74 64 6c 69 62 0d 0a 0d 0a 2f ddin stdlib..../
0080: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0090: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00d0: 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 7b 20 d0 ///////..////{ .
00e0: a4 d0 b0 d0 b1 d1 80 d0 b8 d0 ba d0 b0 d0 9e d0 ................
00f0: b1 d1 8a d0 b5 d0 ba d1 82 d0 be d0 b2 0d 0a 2f .............../
0100: 2f 2f 2f 0d 0a 0d 0a 53 65 74 74 69 6e 67 73 4d ///....SettingsM
0110: 61 6e 61 67 65 6d 65 6e 74 20 3d 20 73 74 64 6c anagement = stdl
0120: 69 62 2e 43 6c 61 73 73 2e 65 78 74 65 6e 64 28 ib.Class.extend(
0130: 7b 7d 29 3b 0d 0a 0d 0a 53 65 74 74 69 6e 67 73 {});....Settings
0140: 4d 61 6e 61 67 65 6d 65 6e 74 2e 43 72 65 61 74 Management.Creat
0150: 65 4d 61 6e 61 67 65 72 20 3d 20 66 75 6e 63 74 eManager = funct
0160: 69 6f 6e 20 28 72 6f 6f 74 50 61 74 68 2c 20 64 ion (rootPath, d
0170: 65 66 61 75 6c 74 73 2c 20 70 66 6c 53 74 6f 72 efaults, pflStor
0180: 65 54 79 70 65 29 20 7b 0d 0a 20 20 20 20 72 65 eType) {.. re
0190: 74 75 72 6e 20 6e 65 77 20 5f 53 65 74 74 69 6e turn new _Settin
01a0: 67 73 4d 61 6e 61 67 65 72 28 72 6f 6f 74 50 61 gsManager(rootPa
01b0: 74 68 2c 20 64 65 66 61 75 6c 74 73 2c 20 70 66 th, defaults, pf
01c0: 6c 53 74 6f 72 65 54 79 70 65 29 3b 0d 0a 7d 0d lStoreType);..}.
01d0: 0a 0d 0a 2f 2f 2f 2f 7d 0d 0a 0d 0a 2f 2f 2f 2f ...////}....////
01e0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
01f0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0200: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0210: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0220: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0230: 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 7b 20 53 65 74 74 ////..////{ Sett
0240: 69 6e 67 73 4d 61 6e 61 67 65 72 28 73 63 72 69 ingsManager(scri
0250: 70 74 2c 20 64 65 66 61 75 6c 74 73 29 0d 0a 2f pt, defaults)../
0260: 2f 2f 2f 0d 0a 0d 0a 5f 53 65 74 74 69 6e 67 73 ///...._Settings
0270: 4d 61 6e 61 67 65 72 20 3d 20 73 74 64 6c 69 62 Manager = stdlib
0280: 2e 43 6c 61 73 73 2e 65 78 74 65 6e 64 28 7b 0d .Class.extend({.
0290: 0a 0d 0a 20 20 20 20 63 6f 6e 73 74 72 75 63 74 ... construct
02a0: 20 3a 20 66 75 6e 63 74 69 6f 6e 28 72 6f 6f 74 : function(root
02b0: 50 61 74 68 2c 20 64 65 66 61 75 6c 74 73 2c 20 Path, defaults,
02c0: 70 66 6c 53 74 6f 72 65 54 79 70 65 29 20 7b 0d pflStoreType) {.
02d0: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 72 6f . this.ro
02e0: 6f 74 50 61 74 68 20 3d 20 72 6f 6f 74 50 61 74 otPath = rootPat
02f0: 68 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 h;.. this
0300: 2e 70 66 6c 53 74 6f 72 65 54 79 70 65 20 3d 20 .pflStoreType =
0310: 70 66 6c 53 74 6f 72 65 54 79 70 65 20 7c 7c 20 pflStoreType ||
0320: 70 66 6c 53 6e 65 67 6f 70 61 74 3b 0d 0a 20 20 pflSnegopat;..
0330: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
0340: 76 61 72 20 65 6d 70 74 79 53 65 74 74 69 6e 67 var emptySetting
0350: 73 20 3d 20 7b 7d 3b 0d 0a 20 20 20 20 20 20 20 s = {};..
0360: 20 74 68 69 73 2e 44 65 66 61 75 6c 74 53 65 74 this.DefaultSet
0370: 74 69 6e 67 73 20 3d 20 64 65 66 61 75 6c 74 73 tings = defaults
0380: 20 7c 7c 20 65 6d 70 74 79 53 65 74 74 69 6e 67 || emptySetting
0390: 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 s;..
03a0: 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 28 76 61 .. for(va
03b0: 72 20 73 65 74 74 69 6e 67 20 69 6e 20 74 68 69 r setting in thi
03c0: 73 2e 44 65 66 61 75 6c 74 53 65 74 74 69 6e 67 s.DefaultSetting
03d0: 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 s)..
03e0: 70 72 6f 66 69 6c 65 52 6f 6f 74 2e 63 72 65 61 profileRoot.crea
03f0: 74 65 56 61 6c 75 65 28 74 68 69 73 2e 47 65 74 teValue(this.Get
0400: 46 75 6c 6c 53 65 74 74 69 6e 67 50 61 74 68 28 FullSettingPath(
0410: 73 65 74 74 69 6e 67 29 2c 20 74 68 69 73 2e 44 setting), this.D
0420: 65 66 61 75 6c 74 53 65 74 74 69 6e 67 73 5b 73 efaultSettings[s
0430: 65 74 74 69 6e 67 5d 2c 20 74 68 69 73 2e 70 66 etting], this.pf
0440: 6c 53 74 6f 72 65 54 79 70 65 29 3b 0d 0a 20 20 lStoreType);..
0450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0460: 20 20 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 .. this
0470: 2e 63 75 72 72 65 6e 74 20 3d 20 7b 7d 3b 0d 0a .current = {};..
0480: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
0490: 20 20 66 6f 72 28 76 61 72 20 73 65 74 74 69 6e for(var settin
04a0: 67 20 69 6e 20 74 68 69 73 2e 44 65 66 61 75 6c g in this.Defaul
04b0: 74 53 65 74 74 69 6e 67 73 29 0d 0a 20 20 20 20 tSettings)..
04c0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 this.cur
04d0: 72 65 6e 74 5b 73 65 74 74 69 6e 67 5d 20 3d 20 rent[setting] =
04e0: 70 72 6f 66 69 6c 65 52 6f 6f 74 2e 67 65 74 56 profileRoot.getV
04f0: 61 6c 75 65 28 74 68 69 73 2e 47 65 74 46 75 6c alue(this.GetFul
0500: 6c 53 65 74 74 69 6e 67 50 61 74 68 28 73 65 74 lSettingPath(set
0510: 74 69 6e 67 29 29 3b 0d 0a 20 20 20 20 7d 2c 0d ting));.. },.
0520: 0a 0d 0a 20 20 20 20 52 65 61 64 46 72 6f 6d 46 ... ReadFromF
0530: 6f 72 6d 20 3a 20 66 75 6e 63 74 69 6f 6e 28 66 orm : function(f
0540: 6f 72 6d 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 orm) {..
0550: 66 6f 72 28 76 61 72 20 73 65 74 74 69 6e 67 20 for(var setting
0560: 69 6e 20 74 68 69 73 2e 63 75 72 72 65 6e 74 29 in this.current)
0570: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 .. th
0580: 69 73 2e 63 75 72 72 65 6e 74 5b 73 65 74 74 69 is.current[setti
0590: 6e 67 5d 20 3d 20 66 6f 72 6d 5b 73 65 74 74 69 ng] = form[setti
05a0: 6e 67 5d 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a ng];.. },....
05b0: 20 20 20 20 41 70 70 6c 79 54 6f 46 6f 72 6d 20 ApplyToForm
05c0: 3a 20 66 75 6e 63 74 69 6f 6e 28 66 6f 72 6d 29 : function(form)
05d0: 20 7b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 66 6f {.... fo
05e0: 72 28 76 61 72 20 73 65 74 74 69 6e 67 20 69 6e r(var setting in
05f0: 20 74 68 69 73 2e 63 75 72 72 65 6e 74 29 0d 0a this.current)..
0600: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 {..
0610: 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 var value
0620: 20 3d 20 74 68 69 73 2e 63 75 72 72 65 6e 74 5b = this.current[
0630: 73 65 74 74 69 6e 67 5d 3b 0d 0a 20 20 20 20 20 setting];..
0640: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
0650: 20 20 20 20 20 69 66 20 28 76 61 6c 75 65 20 3d if (value =
0660: 3d 3d 20 75 6e 64 65 66 69 6e 65 64 20 7c 7c 20 == undefined ||
0670: 76 61 6c 75 65 20 3d 3d 3d 20 6e 75 6c 6c 29 0d value === null).
0680: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0690: 20 76 61 6c 75 65 20 3d 20 74 68 69 73 2e 44 65 value = this.De
06a0: 66 61 75 6c 74 53 65 74 74 69 6e 67 73 5b 73 65 faultSettings[se
06b0: 74 74 69 6e 67 5d 3b 0d 0a 20 20 20 20 20 20 20 tting];..
06c0: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 ..
06d0: 20 20 20 20 20 20 20 66 6f 72 6d 5b 73 65 74 74 form[sett
06e0: 69 6e 67 5d 20 3d 20 76 61 6c 75 65 3b 0d 0a 20 ing] = value;..
06f0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c }.. },
0700: 0d 0a 0d 0a 20 20 20 20 47 65 74 46 75 6c 6c 53 .... GetFullS
0710: 65 74 74 69 6e 67 50 61 74 68 20 3a 20 66 75 6e ettingPath : fun
0720: 63 74 69 6f 6e 28 73 65 74 74 69 6e 67 4e 61 6d ction(settingNam
0730: 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 e) {.. re
0740: 74 75 72 6e 20 74 68 69 73 2e 72 6f 6f 74 50 61 turn this.rootPa
0750: 74 68 20 2b 20 22 2f 22 20 2b 20 73 65 74 74 69 th + "/" + setti
0760: 6e 67 4e 61 6d 65 3b 0d 0a 20 20 20 20 7d 2c 0d ngName;.. },.
0770: 0a 0d 0a 20 20 20 20 4c 6f 61 64 53 65 74 74 69 ... LoadSetti
0780: 6e 67 73 20 3a 20 66 75 6e 63 74 69 6f 6e 28 29 ngs : function()
0790: 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 {.. this
07a0: 2e 63 75 72 72 65 6e 74 20 3d 20 7b 7d 3b 0d 0a .current = {};..
07b0: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
07c0: 20 20 66 6f 72 28 76 61 72 20 73 65 74 74 69 6e for(var settin
07d0: 67 20 69 6e 20 74 68 69 73 2e 44 65 66 61 75 6c g in this.Defaul
07e0: 74 53 65 74 74 69 6e 67 73 29 0d 0a 20 20 20 20 tSettings)..
07f0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 this.cur
0800: 72 65 6e 74 5b 73 65 74 74 69 6e 67 5d 20 3d 20 rent[setting] =
0810: 70 72 6f 66 69 6c 65 52 6f 6f 74 2e 67 65 74 56 profileRoot.getV
0820: 61 6c 75 65 28 74 68 69 73 2e 47 65 74 46 75 6c alue(this.GetFul
0830: 6c 53 65 74 74 69 6e 67 50 61 74 68 28 73 65 74 lSettingPath(set
0840: 74 69 6e 67 29 29 3b 0d 0a 20 20 20 20 20 20 20 ting));..
0850: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 72 .. r
0860: 65 74 75 72 6e 20 74 68 69 73 2e 63 75 72 72 65 eturn this.curre
0870: 6e 74 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 nt;.. },....
0880: 20 20 20 53 61 76 65 53 65 74 74 69 6e 67 73 20 SaveSettings
0890: 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a : function() {..
08a0: 20 20 20 20 20 20 20 20 66 6f 72 28 76 61 72 20 for(var
08b0: 73 65 74 74 69 6e 67 20 69 6e 20 74 68 69 73 2e setting in this.
08c0: 63 75 72 72 65 6e 74 29 0d 0a 20 20 20 20 20 20 current)..
08d0: 20 20 20 20 20 20 70 72 6f 66 69 6c 65 52 6f 6f profileRoo
08e0: 74 2e 73 65 74 56 61 6c 75 65 28 74 68 69 73 2e t.setValue(this.
08f0: 47 65 74 46 75 6c 6c 53 65 74 74 69 6e 67 50 61 GetFullSettingPa
0900: 74 68 28 73 65 74 74 69 6e 67 29 2c 20 74 68 69 th(setting), thi
0910: 73 2e 63 75 72 72 65 6e 74 5b 73 65 74 74 69 6e s.current[settin
0920: 67 5d 29 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 29 3b g]);.. }..});
0930: 0d 0a 2f 2f 2f 2f 7d 20 53 65 74 74 69 6e 67 73 ..////} Settings
0940: 4d 61 6e 61 67 65 72 0d 0a 0d 0a Manager....