Hex Artifact Content Вы: nobody
Вход

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....