-rw-r--r-- | frontend/beta/css/yui-extensions/basic-dialog.css | 6 | ||||
-rw-r--r-- | frontend/beta/js/Clipperz/PM/DataModel/Record.js | 10 | ||||
-rw-r--r-- | frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js | 2 |
3 files changed, 15 insertions, 3 deletions
diff --git a/frontend/beta/css/yui-extensions/basic-dialog.css b/frontend/beta/css/yui-extensions/basic-dialog.css index 2b1e20c..5a6cefb 100644 --- a/frontend/beta/css/yui-extensions/basic-dialog.css +++ b/frontend/beta/css/yui-extensions/basic-dialog.css | |||
@@ -1,247 +1,253 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz Community Edition. | 5 | This file is part of Clipperz Community Edition. |
6 | Clipperz Community Edition is an online password manager. | 6 | Clipperz Community Edition is an online password manager. |
7 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
8 | refer to http://www.clipperz.com. | 8 | refer to http://www.clipperz.com. |
9 | 9 | ||
10 | * Clipperz Community Edition is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
11 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
12 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
13 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
14 | 14 | ||
15 | * Clipperz Community Edition is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
16 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
19 | 19 | ||
20 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
21 | License along with Clipperz Community Edition. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
22 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
23 | 23 | ||
24 | */ | 24 | */ |
25 | 25 | ||
26 | .ydlg-proxy { | 26 | .ydlg-proxy { |
27 | <<<<<<< HEAD | ||
27 | background-image: url(./images/default/gradient-bg.gif); | 28 | background-image: url(./images/default/gradient-bg.gif); |
29 | ======= | ||
30 | >>>>>>> 0db1d5c8b18eadc4bd9cfc6603e86227fa94b5a9 | ||
28 | background-color:#c3daf9; | 31 | background-color:#c3daf9; |
29 | border:1px solid #6593cf; | 32 | border:1px solid #6593cf; |
30 | z-index:10001; | 33 | z-index:10001; |
31 | overflow:hidden; | 34 | overflow:hidden; |
32 | position:absolute; | 35 | position:absolute; |
33 | left:0;top:0; | 36 | left:0;top:0; |
34 | } | 37 | } |
35 | .ydlg-shadow{ | 38 | .ydlg-shadow{ |
36 | background:#aaaaaa; | 39 | background:#aaaaaa; |
37 | position:absolute; | 40 | position:absolute; |
38 | left:0;top:0; | 41 | left:0;top:0; |
39 | } | 42 | } |
40 | .ydlg-focus{ | 43 | .ydlg-focus{ |
41 | -moz-outline:0 none; | 44 | -moz-outline:0 none; |
42 | outline:0 none; | 45 | outline:0 none; |
43 | width:0; | 46 | width:0; |
44 | height:0; | 47 | height:0; |
45 | overflow:hidden; | 48 | overflow:hidden; |
46 | position:absolute; | 49 | position:absolute; |
47 | top:0; | 50 | top:0; |
48 | left:0; | 51 | left:0; |
49 | } | 52 | } |
50 | .ydlg-mask{ | 53 | .ydlg-mask{ |
51 | z-index:10000; | 54 | z-index:10000; |
52 | display:none; | 55 | display:none; |
53 | position:absolute; | 56 | position:absolute; |
54 | top:0; | 57 | top:0; |
55 | left:0; | 58 | left:0; |
56 | -moz-opacity: 0.5; | 59 | -moz-opacity: 0.5; |
57 | opacity:.50; | 60 | opacity:.50; |
58 | filter: alpha(opacity=50); | 61 | filter: alpha(opacity=50); |
59 | background-color:#CCC; | 62 | background-color:#CCC; |
60 | } | 63 | } |
61 | body.masked{ | 64 | body.masked{ |
62 | } | 65 | } |
63 | body.masked select { | 66 | body.masked select { |
64 | visibility:hidden; | 67 | visibility:hidden; |
65 | } | 68 | } |
66 | body.masked .ydlg select { | 69 | body.masked .ydlg select { |
67 | visibility:visible; | 70 | visibility:visible; |
68 | } | 71 | } |
69 | .ydlg{ | 72 | .ydlg{ |
70 | z-index:10001; | 73 | z-index:10001; |
71 | overflow:hidden; | 74 | overflow:hidden; |
72 | position:absolute; | 75 | position:absolute; |
73 | left:300;top:0; | 76 | left:300;top:0; |
74 | } | 77 | } |
75 | .yresizable-proxy{ | 78 | .yresizable-proxy{ |
76 | z-index:10002; | 79 | z-index:10002; |
77 | } | 80 | } |
78 | .ydlg .ydlg-hd { | 81 | .ydlg .ydlg-hd { |
79 | background: url(./images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; | 82 | background: url(./images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; |
80 | background-color:navy; | 83 | background-color:navy; |
81 | color:#ffffff; | 84 | color:#ffffff; |
82 | font:bold 12px "sans serif", tahoma, verdana, helvetica; | 85 | font:bold 12px "sans serif", tahoma, verdana, helvetica; |
83 | overflow:hidden; | 86 | overflow:hidden; |
84 | padding:5px; | 87 | padding:5px; |
85 | } | 88 | } |
86 | .ydlg .ydlg-hd-left { | 89 | .ydlg .ydlg-hd-left { |
87 | background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; | 90 | background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; |
88 | padding-left:3px; | 91 | padding-left:3px; |
89 | margin:0px; | 92 | margin:0px; |
90 | } | 93 | } |
91 | .ydlg .ydlg-hd-right { | 94 | .ydlg .ydlg-hd-right { |
92 | background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat right 0; | 95 | background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat right 0; |
93 | padding-right:3px; | 96 | padding-right:3px; |
94 | } | 97 | } |
95 | .ydlg .ydlg-dlg-body{ | 98 | .ydlg .ydlg-dlg-body{ |
99 | <<<<<<< HEAD | ||
96 | background:url(./images/default/layout/gradient-bg.gif); | 100 | background:url(./images/default/layout/gradient-bg.gif); |
101 | ======= | ||
102 | >>>>>>> 0db1d5c8b18eadc4bd9cfc6603e86227fa94b5a9 | ||
97 | border:1px solid #6593cf; | 103 | border:1px solid #6593cf; |
98 | border-top:0 none; | 104 | border-top:0 none; |
99 | padding:10px; | 105 | padding:10px; |
100 | overflow:hidden; | 106 | overflow:hidden; |
101 | } | 107 | } |
102 | .ydlg .ydlg-bd{ | 108 | .ydlg .ydlg-bd{ |
103 | overflow:hidden; | 109 | overflow:hidden; |
104 | } | 110 | } |
105 | .ydlg .ydlg-ft{ | 111 | .ydlg .ydlg-ft{ |
106 | overflow:hidden; | 112 | overflow:hidden; |
107 | padding:5px; | 113 | padding:5px; |
108 | padding-bottom:0; | 114 | padding-bottom:0; |
109 | } | 115 | } |
110 | .ydlg .yui-ext-tabbody{ | 116 | .ydlg .yui-ext-tabbody{ |
111 | background:white; | 117 | background:white; |
112 | overflow:auto; | 118 | overflow:auto; |
113 | } | 119 | } |
114 | .ydlg .ytabs-top .yui-ext-tabbody{ | 120 | .ydlg .ytabs-top .yui-ext-tabbody{ |
115 | border:1px solid #6593cf; | 121 | border:1px solid #6593cf; |
116 | border-top:0 none; | 122 | border-top:0 none; |
117 | } | 123 | } |
118 | .ydlg .ytabs-bottom .yui-ext-tabbody{ | 124 | .ydlg .ytabs-bottom .yui-ext-tabbody{ |
119 | border:1px solid #6593cf; | 125 | border:1px solid #6593cf; |
120 | border-bottom:0 none; | 126 | border-bottom:0 none; |
121 | } | 127 | } |
122 | .ydlg .ylayout-container .yui-ext-tabbody{ | 128 | .ydlg .ylayout-container .yui-ext-tabbody{ |
123 | border:0 none; | 129 | border:0 none; |
124 | } | 130 | } |
125 | .ydlg .inner-tab{ | 131 | .ydlg .inner-tab{ |
126 | margin:5px; | 132 | margin:5px; |
127 | } | 133 | } |
128 | .ydlg .ydlg-ft .ybtn{ | 134 | .ydlg .ydlg-ft .ybtn{ |
129 | margin-right:5px; | 135 | margin-right:5px; |
130 | float:right; | 136 | float:right; |
131 | clear:none; | 137 | clear:none; |
132 | } | 138 | } |
133 | .ydlg .ydlg-ft .ydlg-btns td { | 139 | .ydlg .ydlg-ft .ydlg-btns td { |
134 | border:0; | 140 | border:0; |
135 | padding:0; | 141 | padding:0; |
136 | } | 142 | } |
137 | .ydlg .ydlg-ft .ydlg-btns-right table{ | 143 | .ydlg .ydlg-ft .ydlg-btns-right table{ |
138 | float:right; | 144 | float:right; |
139 | clear:none; | 145 | clear:none; |
140 | } | 146 | } |
141 | .ydlg .ydlg-ft .ydlg-btns-left table{ | 147 | .ydlg .ydlg-ft .ydlg-btns-left table{ |
142 | float:left; | 148 | float:left; |
143 | clear:none; | 149 | clear:none; |
144 | } | 150 | } |
145 | .ydlg .ydlg-ft .ydlg-btns-center{ | 151 | .ydlg .ydlg-ft .ydlg-btns-center{ |
146 | text-align:center; /*ie*/ | 152 | text-align:center; /*ie*/ |
147 | } | 153 | } |
148 | .ydlg .ydlg-ft .ydlg-btns-center table{ | 154 | .ydlg .ydlg-ft .ydlg-btns-center table{ |
149 | margin:0 auto; /*everyone else*/ | 155 | margin:0 auto; /*everyone else*/ |
150 | } | 156 | } |
151 | .ydlg-draggable .ydlg-hd{ | 157 | .ydlg-draggable .ydlg-hd{ |
152 | cursor:move; | 158 | cursor:move; |
153 | } | 159 | } |
154 | .ydlg-closable .ydlg-hd{ | 160 | .ydlg-closable .ydlg-hd{ |
155 | padding-right:22px; | 161 | padding-right:22px; |
156 | } | 162 | } |
157 | .ydlg .ydlg-close { | 163 | .ydlg .ydlg-close { |
158 | position:absolute; | 164 | position:absolute; |
159 | top:4px; | 165 | top:4px; |
160 | right:4px; | 166 | right:4px; |
161 | z-index:6; | 167 | z-index:6; |
162 | height:15px; | 168 | height:15px; |
163 | width:15px; | 169 | width:15px; |
164 | margin:0; | 170 | margin:0; |
165 | padding:0; | 171 | padding:0; |
166 | line-height:1px; | 172 | line-height:1px; |
167 | font-size:1px; | 173 | font-size:1px; |
168 | background-repeat:no-repeat; | 174 | background-repeat:no-repeat; |
169 | cursor:pointer; | 175 | cursor:pointer; |
170 | visibility:inherit; | 176 | visibility:inherit; |
171 | background-image:url(./images/default/basic-dialog/close.gif); | 177 | background-image:url(./images/default/basic-dialog/close.gif); |
172 | } | 178 | } |
173 | .ydlg div.yresizable-handle-east{ | 179 | .ydlg div.yresizable-handle-east{ |
174 | background-image:url(./images/default/sizer/e-handle-dark.gif); | 180 | background-image:url(./images/default/sizer/e-handle-dark.gif); |
175 | border:0; | 181 | border:0; |
176 | background-position:left; | 182 | background-position:left; |
177 | margin-right:0; | 183 | margin-right:0; |
178 | } | 184 | } |
179 | .ydlg div.yresizable-handle-south{ | 185 | .ydlg div.yresizable-handle-south{ |
180 | background-image:url(./images/default/sizer/s-handle-dark.gif); | 186 | background-image:url(./images/default/sizer/s-handle-dark.gif); |
181 | border:0; | 187 | border:0; |
182 | height:6px; | 188 | height:6px; |
183 | } | 189 | } |
184 | .ydlg div.yresizable-handle-west{ | 190 | .ydlg div.yresizable-handle-west{ |
185 | background-image:url(./images/default/sizer/e-handle-dark.gif); | 191 | background-image:url(./images/default/sizer/e-handle-dark.gif); |
186 | border:0; | 192 | border:0; |
187 | background-position:1px; | 193 | background-position:1px; |
188 | } | 194 | } |
189 | .ydlg div.yresizable-handle-north{ | 195 | .ydlg div.yresizable-handle-north{ |
190 | background-image:url(./images/default/s.gif); | 196 | background-image:url(./images/default/s.gif); |
191 | border:0; | 197 | border:0; |
192 | } | 198 | } |
193 | .ydlg div.yresizable-handle-northeast, .ytheme-gray .ydlg div.yresizable-handle-northeast{ | 199 | .ydlg div.yresizable-handle-northeast, .ytheme-gray .ydlg div.yresizable-handle-northeast{ |
194 | background-image:url(./images/default/s.gif); | 200 | background-image:url(./images/default/s.gif); |
195 | border:0; | 201 | border:0; |
196 | } | 202 | } |
197 | .ydlg div.yresizable-handle-northwest, .ytheme-gray .ydlg div.yresizable-handle-northwest{ | 203 | .ydlg div.yresizable-handle-northwest, .ytheme-gray .ydlg div.yresizable-handle-northwest{ |
198 | background-image:url(./images/default/s.gif); | 204 | background-image:url(./images/default/s.gif); |
199 | border:0; | 205 | border:0; |
200 | } | 206 | } |
201 | .ydlg div.yresizable-handle-southeast{ | 207 | .ydlg div.yresizable-handle-southeast{ |
202 | background-image:url(./images/default/sizer/corners-sprite.gif); | 208 | background-image:url(./images/default/sizer/corners-sprite.gif); |
203 | background-position: top left; | 209 | background-position: top left; |
204 | width:8px; | 210 | width:8px; |
205 | height:8px; | 211 | height:8px; |
206 | border:0; | 212 | border:0; |
207 | } | 213 | } |
208 | .ydlg div.yresizable-handle-southwest{ | 214 | .ydlg div.yresizable-handle-southwest{ |
209 | background-image:url(./images/default/sizer/corners-sprite.gif); | 215 | background-image:url(./images/default/sizer/corners-sprite.gif); |
210 | background-position: top right; | 216 | background-position: top right; |
211 | margin-left:1px; | 217 | margin-left:1px; |
212 | margin-bottom:1px; | 218 | margin-bottom:1px; |
213 | border:0; | 219 | border:0; |
214 | } | 220 | } |
215 | 221 | ||
216 | #mb-dlg .ydlg-ft .ybtn{ | 222 | #mb-dlg .ydlg-ft .ybtn{ |
217 | float:none; | 223 | float:none; |
218 | clear:none; | 224 | clear:none; |
219 | margin:0 3px; | 225 | margin:0 3px; |
220 | } | 226 | } |
221 | 227 | ||
222 | #mb-dlg .ydlg-bd { | 228 | #mb-dlg .ydlg-bd { |
223 | padding:5px; | 229 | padding:5px; |
224 | overflow:hidden !important; | 230 | overflow:hidden !important; |
225 | } | 231 | } |
226 | #mb-dlg .ext-mb-input { | 232 | #mb-dlg .ext-mb-input { |
227 | margin-top:4px; | 233 | margin-top:4px; |
228 | width:95%; | 234 | width:95%; |
229 | } | 235 | } |
230 | #mb-dlg .ext-mb-textarea { | 236 | #mb-dlg .ext-mb-textarea { |
231 | margin-top:4px; | 237 | margin-top:4px; |
232 | font:normal 13px verdana,tahoma,sans-serif; | 238 | font:normal 13px verdana,tahoma,sans-serif; |
233 | } | 239 | } |
234 | #mb-dlg .ext-mb-progress-wrap { | 240 | #mb-dlg .ext-mb-progress-wrap { |
235 | margin-top:4px; | 241 | margin-top:4px; |
236 | border:1px solid #6593cf; | 242 | border:1px solid #6593cf; |
237 | } | 243 | } |
238 | #mb-dlg .ext-mb-progress { | 244 | #mb-dlg .ext-mb-progress { |
239 | height:18px; | 245 | height:18px; |
240 | background:transparent url(./images/default/basic-dialog/progress2.gif) repeat-x 1px 1px; | 246 | background:transparent url(./images/default/basic-dialog/progress2.gif) repeat-x 1px 1px; |
241 | } | 247 | } |
242 | #mb-dlg .ext-mb-progress-bar { | 248 | #mb-dlg .ext-mb-progress-bar { |
243 | height:18px; | 249 | height:18px; |
244 | overflow:hidden; | 250 | overflow:hidden; |
245 | width:0; | 251 | width:0; |
246 | background:#8bb8f3; | 252 | background:#8bb8f3; |
247 | } | 253 | } |
diff --git a/frontend/beta/js/Clipperz/PM/DataModel/Record.js b/frontend/beta/js/Clipperz/PM/DataModel/Record.js index ecb6c37..d6ebb39 100644 --- a/frontend/beta/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/beta/js/Clipperz/PM/DataModel/Record.js | |||
@@ -1,763 +1,769 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz Community Edition. | 5 | This file is part of Clipperz Community Edition. |
6 | Clipperz Community Edition is an online password manager. | 6 | Clipperz Community Edition is an online password manager. |
7 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
8 | refer to http://www.clipperz.com. | 8 | refer to http://www.clipperz.com. |
9 | 9 | ||
10 | * Clipperz Community Edition is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
11 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
12 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
13 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
14 | 14 | ||
15 | * Clipperz Community Edition is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
16 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
19 | 19 | ||
20 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
21 | License along with Clipperz Community Edition. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
22 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
23 | 23 | ||
24 | */ | 24 | */ |
25 | 25 | ||
26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
29 | 29 | ||
30 | 30 | ||
31 | //############################################################################# | 31 | //############################################################################# |
32 | 32 | ||
33 | Clipperz.PM.DataModel.Record = function(args) { | 33 | Clipperz.PM.DataModel.Record = function(args) { |
34 | args = args || {}; | 34 | args = args || {}; |
35 | 35 | ||
36 | this._user = args['user'] || null; | 36 | this._user = args['user'] || null; |
37 | this._reference = args['reference'] || Clipperz.PM.Crypto.randomKey(); | 37 | this._reference = args['reference'] || Clipperz.PM.Crypto.randomKey(); |
38 | this._version = args['version'] || Clipperz.PM.Crypto.encryptingFunctions.currentVersion; | 38 | this._version = args['version'] || Clipperz.PM.Crypto.encryptingFunctions.currentVersion; |
39 | this._key = args['key'] || Clipperz.PM.Crypto.randomKey(); | 39 | this._key = args['key'] || Clipperz.PM.Crypto.randomKey(); |
40 | 40 | ||
41 | this.setLabel(args['label'] || Clipperz.PM.Strings['newRecordTitleLabel']); | 41 | this.setLabel(args['label'] || Clipperz.PM.Strings['newRecordTitleLabel']); |
42 | 42 | ||
43 | this.setHeaderNotes(args['headerNotes'] || null); | 43 | this.setHeaderNotes(args['headerNotes'] || null); |
44 | this.setNotes(args['notes'] || args['headerNotes'] || ""); | 44 | this.setNotes(args['notes'] || args['headerNotes'] || ""); |
45 | //MochiKit.Logging.logDebug("--- new Record ('" + this._label + "')- _headerNotes: '" + this._headerNotes + "'"); | 45 | //MochiKit.Logging.logDebug("--- new Record ('" + this._label + "')- _headerNotes: '" + this._headerNotes + "'"); |
46 | //MochiKit.Logging.logDebug("--- new Record ('" + this._label + "')- _notes: '" + this._notes + "'"); | 46 | //MochiKit.Logging.logDebug("--- new Record ('" + this._label + "')- _notes: '" + this._notes + "'"); |
47 | //this._notes = args.notes || ""; | 47 | //this._notes = args.notes || ""; |
48 | 48 | ||
49 | this._versions = {}; | 49 | this._versions = {}; |
50 | this._directLogins = {}; | 50 | this._directLogins = {}; |
51 | this._removedDirectLogins = []; | 51 | this._removedDirectLogins = []; |
52 | 52 | ||
53 | this.setIsBrandNew(args['reference'] == null); | 53 | this.setIsBrandNew(args['reference'] == null); |
54 | 54 | ||
55 | this.setShouldLoadData(this.isBrandNew() ? false: true); | 55 | this.setShouldLoadData(this.isBrandNew() ? false: true); |
56 | this.setShouldDecryptData(this.isBrandNew() ? false: true); | 56 | this.setShouldDecryptData(this.isBrandNew() ? false: true); |
57 | this.setShouldProcessData(this.isBrandNew() ? false: true); | 57 | this.setShouldProcessData(this.isBrandNew() ? false: true); |
58 | 58 | ||
59 | this.setCurrentVersion(this.isBrandNew() ? new Clipperz.PM.DataModel.RecordVersion(this, null): null); | 59 | this.setCurrentVersion(this.isBrandNew() ? new Clipperz.PM.DataModel.RecordVersion(this, null): null); |
60 | this.setCurrentVersionKey(null); | 60 | this.setCurrentVersionKey(null); |
61 | 61 | ||
62 | this._serverData = null; | 62 | this._serverData = null; |
63 | this._decryptedData = null; | 63 | this._decryptedData = null; |
64 | this._cachedData = null; | 64 | this._cachedData = null; |
65 | 65 | ||
66 | return this; | 66 | return this; |
67 | } | 67 | } |
68 | 68 | ||
69 | Clipperz.PM.DataModel.Record.prototype = MochiKit.Base.update(null, { | 69 | Clipperz.PM.DataModel.Record.prototype = MochiKit.Base.update(null, { |
70 | 70 | ||
71 | 'toString': function() { | 71 | 'toString': function() { |
72 | return "Record (" + this.label() + ")"; | 72 | return "Record (" + this.label() + ")"; |
73 | }, | 73 | }, |
74 | 74 | ||
75 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
76 | 76 | ||
77 | 'isBrandNew': function() { | 77 | 'isBrandNew': function() { |
78 | return this._isBrandNew; | 78 | return this._isBrandNew; |
79 | }, | 79 | }, |
80 | 80 | ||
81 | 'setIsBrandNew': function(aValue) { | 81 | 'setIsBrandNew': function(aValue) { |
82 | this._isBrandNew = aValue; | 82 | this._isBrandNew = aValue; |
83 | }, | 83 | }, |
84 | 84 | ||
85 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
86 | /* | 86 | /* |
87 | 'shouldRunTheRecordCreationWizard': function() { | 87 | 'shouldRunTheRecordCreationWizard': function() { |
88 | return (this.isBrandNew() && (MochiKit.Base.keys(this.currentVersion().fields()).length == 0)); | 88 | return (this.isBrandNew() && (MochiKit.Base.keys(this.currentVersion().fields()).length == 0)); |
89 | }, | 89 | }, |
90 | */ | 90 | */ |
91 | //------------------------------------------------------------------------- | 91 | //------------------------------------------------------------------------- |
92 | 92 | ||
93 | 'user': function() { | 93 | 'user': function() { |
94 | return this._user; | 94 | return this._user; |
95 | }, | 95 | }, |
96 | 96 | ||
97 | //------------------------------------------------------------------------- | 97 | //------------------------------------------------------------------------- |
98 | 98 | ||
99 | 'reference': function() { | 99 | 'reference': function() { |
100 | return this._reference; | 100 | return this._reference; |
101 | }, | 101 | }, |
102 | 102 | ||
103 | //------------------------------------------------------------------------- | 103 | //------------------------------------------------------------------------- |
104 | 104 | ||
105 | 'key': function() { | 105 | 'key': function() { |
106 | return this._key; | 106 | return this._key; |
107 | }, | 107 | }, |
108 | 108 | ||
109 | 'updateKey': function() { | 109 | 'updateKey': function() { |
110 | this._key = Clipperz.PM.Crypto.randomKey(); | 110 | this._key = Clipperz.PM.Crypto.randomKey(); |
111 | }, | 111 | }, |
112 | 112 | ||
113 | //------------------------------------------------------------------------- | 113 | //------------------------------------------------------------------------- |
114 | 114 | ||
115 | 'label': function() { | 115 | 'label': function() { |
116 | return this._label; | 116 | return this._label; |
117 | }, | 117 | }, |
118 | 118 | ||
119 | 'setLabel': function(aValue) { | 119 | 'setLabel': function(aValue) { |
120 | this._label = aValue; | 120 | this._label = aValue; |
121 | }, | 121 | }, |
122 | 122 | ||
123 | 'lowerCaseLabel': function() { | 123 | 'lowerCaseLabel': function() { |
124 | return this.label().toLowerCase(); | 124 | return this.label().toLowerCase(); |
125 | }, | 125 | }, |
126 | 126 | ||
127 | //------------------------------------------------------------------------- | 127 | //------------------------------------------------------------------------- |
128 | 128 | ||
129 | 'versions': function() { | 129 | 'versions': function() { |
130 | return this._versions; | 130 | return this._versions; |
131 | }, | 131 | }, |
132 | 132 | ||
133 | //------------------------------------------------------------------------- | 133 | //------------------------------------------------------------------------- |
134 | 134 | ||
135 | 'currentVersion': function() { | 135 | 'currentVersion': function() { |
136 | return this._currentVersion; | 136 | return this._currentVersion; |
137 | }, | 137 | }, |
138 | 138 | ||
139 | 'setCurrentVersion': function(aValue) { | 139 | 'setCurrentVersion': function(aValue) { |
140 | this._currentVersion = aValue; | 140 | this._currentVersion = aValue; |
141 | }, | 141 | }, |
142 | 142 | ||
143 | //------------------------------------------------------------------------- | 143 | //------------------------------------------------------------------------- |
144 | 144 | ||
145 | 'currentVersionKey': function() { | 145 | 'currentVersionKey': function() { |
146 | return this._currentVersionKey; | 146 | return this._currentVersionKey; |
147 | }, | 147 | }, |
148 | 148 | ||
149 | 'setCurrentVersionKey': function(aValue) { | 149 | 'setCurrentVersionKey': function(aValue) { |
150 | this._currentVersionKey = aValue; | 150 | this._currentVersionKey = aValue; |
151 | }, | 151 | }, |
152 | 152 | ||
153 | //------------------------------------------------------------------------- | 153 | //------------------------------------------------------------------------- |
154 | 154 | ||
155 | 'deferredData': function() { | 155 | 'deferredData': function() { |
156 | vardeferredResult; | 156 | vardeferredResult; |
157 | 157 | ||
158 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.deferredData - this: " + this); | 158 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.deferredData - this: " + this); |
159 | deferredResult = new MochiKit.Async.Deferred(); | 159 | deferredResult = new MochiKit.Async.Deferred(); |
160 | deferredResult.addCallback(MochiKit.Base.method(this, 'loadData')); | 160 | deferredResult.addCallback(MochiKit.Base.method(this, 'loadData')); |
161 | deferredResult.addCallback(MochiKit.Base.method(this, 'decryptData')); | 161 | deferredResult.addCallback(MochiKit.Base.method(this, 'decryptData')); |
162 | deferredResult.addCallback(MochiKit.Base.method(this, 'processData')); | 162 | deferredResult.addCallback(MochiKit.Base.method(this, 'processData')); |
163 | deferredResult.addCallback(function(aRecord) { | 163 | deferredResult.addCallback(function(aRecord) { |
164 | return aRecord.currentVersion().deferredData(); | 164 | return aRecord.currentVersion().deferredData(); |
165 | }); | 165 | }); |
166 | deferredResult.addCallback(MochiKit.Base.method(this, 'takeSnapshotOfCurrentData')); | 166 | deferredResult.addCallback(MochiKit.Base.method(this, 'takeSnapshotOfCurrentData')); |
167 | deferredResult.addCallback(MochiKit.Async.succeed, this); | 167 | deferredResult.addCallback(MochiKit.Async.succeed, this); |
168 | deferredResult.callback(); | 168 | deferredResult.callback(); |
169 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.deferredData"); | 169 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.deferredData"); |
170 | 170 | ||
171 | return deferredResult; | 171 | return deferredResult; |
172 | }, | 172 | }, |
173 | 173 | ||
174 | //------------------------------------------------------------------------- | 174 | //------------------------------------------------------------------------- |
175 | 175 | ||
176 | 'exportedData': function() { | 176 | 'exportedData': function() { |
177 | var result; | 177 | var result; |
178 | 178 | ||
179 | result = {}; | 179 | result = {}; |
180 | result['label'] = this.label(); | 180 | result['label'] = this.label(); |
181 | result['data'] = this.serializedData(); | 181 | result['data'] = this.serializedData(); |
182 | result['currentVersion'] = this.currentVersion().serializedData(); | 182 | result['currentVersion'] = this.currentVersion().serializedData(); |
183 | result['currentVersion']['reference'] = this.currentVersion().reference(); | 183 | result['currentVersion']['reference'] = this.currentVersion().reference(); |
184 | // result['versions'] = MochiKit.Base.map(MochiKit.Base.methodcaller("serializedData"), MochiKit.Base.values(this.versions())); | 184 | // result['versions'] = MochiKit.Base.map(MochiKit.Base.methodcaller("serializedData"), MochiKit.Base.values(this.versions())); |
185 | 185 | ||
186 | return Clipperz.Base.serializeJSON(result); | 186 | return Clipperz.Base.serializeJSON(result); |
187 | }, | 187 | }, |
188 | 188 | ||
189 | //------------------------------------------------------------------------- | 189 | //------------------------------------------------------------------------- |
190 | 190 | ||
191 | 'shouldLoadData': function() { | 191 | 'shouldLoadData': function() { |
192 | return this._shouldLoadData; | 192 | return this._shouldLoadData; |
193 | }, | 193 | }, |
194 | 194 | ||
195 | 'setShouldLoadData': function(aValue) { | 195 | 'setShouldLoadData': function(aValue) { |
196 | this._shouldLoadData = aValue; | 196 | this._shouldLoadData = aValue; |
197 | }, | 197 | }, |
198 | 198 | ||
199 | //------------------------------------------------------------------------- | 199 | //------------------------------------------------------------------------- |
200 | 200 | ||
201 | 'shouldDecryptData': function() { | 201 | 'shouldDecryptData': function() { |
202 | return this._shouldDecryptData; | 202 | return this._shouldDecryptData; |
203 | }, | 203 | }, |
204 | 204 | ||
205 | 'setShouldDecryptData': function(aValue) { | 205 | 'setShouldDecryptData': function(aValue) { |
206 | this._shouldDecryptData = aValue; | 206 | this._shouldDecryptData = aValue; |
207 | }, | 207 | }, |
208 | 208 | ||
209 | //------------------------------------------------------------------------- | 209 | //------------------------------------------------------------------------- |
210 | 210 | ||
211 | 'shouldProcessData': function() { | 211 | 'shouldProcessData': function() { |
212 | return this._shouldProcessData; | 212 | return this._shouldProcessData; |
213 | }, | 213 | }, |
214 | 214 | ||
215 | 'setShouldProcessData': function(aValue) { | 215 | 'setShouldProcessData': function(aValue) { |
216 | this._shouldProcessData = aValue; | 216 | this._shouldProcessData = aValue; |
217 | }, | 217 | }, |
218 | 218 | ||
219 | //------------------------------------------------------------------------- | 219 | //------------------------------------------------------------------------- |
220 | 220 | ||
221 | 'loadData': function() { | 221 | 'loadData': function() { |
222 | var result; | 222 | var result; |
223 | 223 | ||
224 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.loadData - this: " + this); | 224 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.loadData - this: " + this); |
225 | if (this.shouldLoadData()) { | 225 | if (this.shouldLoadData()) { |
226 | var deferredResult; | 226 | var deferredResult; |
227 | 227 | ||
228 | deferredResult = new MochiKit.Async.Deferred(); | 228 | deferredResult = new MochiKit.Async.Deferred(); |
229 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'loadingRecordData'); | 229 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'loadingRecordData'); |
230 | deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'getRecordDetail', {reference: this.reference()}); | 230 | deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'getRecordDetail', {reference: this.reference()}); |
231 | deferredResult.addCallback(MochiKit.Base.method(this,'setServerData')); | 231 | deferredResult.addCallback(MochiKit.Base.method(this,'setServerData')); |
232 | deferredResult.callback(); | 232 | deferredResult.callback(); |
233 | result = deferredResult; | 233 | result = deferredResult; |
234 | } else { | 234 | } else { |
235 | result = MochiKit.Async.succeed(this.serverData()); | 235 | result = MochiKit.Async.succeed(this.serverData()); |
236 | } | 236 | } |
237 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.loadData"); | 237 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.loadData"); |
238 | 238 | ||
239 | return result; | 239 | return result; |
240 | }, | 240 | }, |
241 | 241 | ||
242 | //------------------------------------------------------------------------- | 242 | //------------------------------------------------------------------------- |
243 | 243 | ||
244 | 'decryptData': function(anEncryptedData) { | 244 | 'decryptData': function(anEncryptedData) { |
245 | var result; | 245 | var result; |
246 | 246 | ||
247 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.decryptData - this: " + this + " (" + anEncryptedData + ")"); | 247 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.decryptData - this: " + this + " (" + anEncryptedData + ")"); |
248 | if (this.shouldDecryptData()) { | 248 | if (this.shouldDecryptData()) { |
249 | var deferredResult; | 249 | var deferredResult; |
250 | 250 | ||
251 | deferredResult = new MochiKit.Async.Deferred(); | 251 | deferredResult = new MochiKit.Async.Deferred(); |
252 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'decryptingRecordData'); | 252 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'decryptingRecordData'); |
253 | deferredResult.addCallback(Clipperz.PM.Crypto.deferredDecrypt, this.key(), anEncryptedData['data'], anEncryptedData['version']); | 253 | deferredResult.addCallback(Clipperz.PM.Crypto.deferredDecrypt, this.key(), anEncryptedData['data'], anEncryptedData['version']); |
254 | deferredResult.addCallback(function(anEncryptedData, someDecryptedValues) { | 254 | deferredResult.addCallback(function(anEncryptedData, someDecryptedValues) { |
255 | varresult; | 255 | varresult; |
256 | 256 | ||
257 | result = anEncryptedData; | 257 | result = anEncryptedData; |
258 | result['data'] = someDecryptedValues; | 258 | result['data'] = someDecryptedValues; |
259 | 259 | ||
260 | return result; | 260 | return result; |
261 | }, anEncryptedData); | 261 | }, anEncryptedData); |
262 | deferredResult.addCallback(MochiKit.Base.method(this, 'setDecryptedData')); | 262 | deferredResult.addCallback(MochiKit.Base.method(this, 'setDecryptedData')); |
263 | deferredResult.callback(); | 263 | deferredResult.callback(); |
264 | 264 | ||
265 | result = deferredResult; | 265 | result = deferredResult; |
266 | } else { | 266 | } else { |
267 | result = MochiKit.Async.succeed(this.decryptedData()); | 267 | result = MochiKit.Async.succeed(this.decryptedData()); |
268 | } | 268 | } |
269 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.decryptData"); | 269 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.decryptData"); |
270 | 270 | ||
271 | return result; | 271 | return result; |
272 | }, | 272 | }, |
273 | 273 | ||
274 | //------------------------------------------------------------------------- | 274 | //------------------------------------------------------------------------- |
275 | 275 | ||
276 | 'processData': function(someValues) { | 276 | 'processData': function(someValues) { |
277 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.processData"); | 277 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.processData"); |
278 | //MochiKit.Logging.logDebug("--- Record.processData: " + Clipperz.Base.serializeJSON(someValues)); | 278 | //MochiKit.Logging.logDebug("--- Record.processData: " + Clipperz.Base.serializeJSON(someValues)); |
279 | if (this.shouldProcessData()) { | 279 | if (this.shouldProcessData()) { |
280 | var currentVersionParameters; | 280 | var currentVersionParameters; |
281 | 281 | ||
282 | console.log("Record.processData", someValues); | 282 | console.log("Record.processData", someValues); |
283 | this.processDataToExtractLegacyValues(someValues['data']); | 283 | this.processDataToExtractLegacyValues(someValues['data']); |
284 | 284 | ||
285 | if (typeof(someValues['data']['notes']) != 'undefined') { | 285 | if (typeof(someValues['data']['notes']) != 'undefined') { |
286 | this.setNotes(someValues['data']['notes']); | 286 | this.setNotes(someValues['data']['notes']); |
287 | } | 287 | } |
288 | 288 | ||
289 | if (someValues['data']['currentVersionKey'] != null) { | 289 | if (someValues['data']['currentVersionKey'] != null) { |
290 | this.setCurrentVersionKey(someValues['data']['currentVersionKey']); | 290 | this.setCurrentVersionKey(someValues['data']['currentVersionKey']); |
291 | } else { | 291 | } else { |
292 | this.setCurrentVersionKey(this.key()); | 292 | this.setCurrentVersionKey(this.key()); |
293 | } | 293 | } |
294 | 294 | ||
295 | // currentVersionParameters = someValues['currentVersion']; | 295 | // community edition doesn't currently pass version |
296 | currentVersionParameters = someValues['versions'][someValues['currentVersion']]; | 296 | // information |
297 | if (someValues['versions'] == null) { | ||
298 | currentVersionParameters = someValues['currentVersion']; | ||
299 | } else { | ||
300 | currentVersionParameters = someValues['versions'][someValues['currentVersion']]; | ||
301 | } | ||
302 | |||
297 | console.log("Record.processData - this.currentVersionKey()", this.currentVersionKey()); | 303 | console.log("Record.processData - this.currentVersionKey()", this.currentVersionKey()); |
298 | console.log("Record.processData - currentVersionParameters", currentVersionParameters); | 304 | console.log("Record.processData - currentVersionParameters", currentVersionParameters); |
299 | currentVersionParameters['key'] = this.currentVersionKey(); | 305 | currentVersionParameters['key'] = this.currentVersionKey(); |
300 | this.setCurrentVersion(new Clipperz.PM.DataModel.RecordVersion(this, currentVersionParameters)); | 306 | this.setCurrentVersion(new Clipperz.PM.DataModel.RecordVersion(this, currentVersionParameters)); |
301 | 307 | ||
302 | if (someValues['data']['directLogins'] != null) { | 308 | if (someValues['data']['directLogins'] != null) { |
303 | vardirectLoginReference; | 309 | vardirectLoginReference; |
304 | 310 | ||
305 | for (directLoginReference in someValues['data']['directLogins']) { | 311 | for (directLoginReference in someValues['data']['directLogins']) { |
306 | var directLogin; | 312 | var directLogin; |
307 | var directLoginParameters; | 313 | var directLoginParameters; |
308 | 314 | ||
309 | directLoginParameters = someValues['data']['directLogins'][directLoginReference]; | 315 | directLoginParameters = someValues['data']['directLogins'][directLoginReference]; |
310 | directLoginParameters.record = this; | 316 | directLoginParameters.record = this; |
311 | directLoginParameters.reference = directLoginReference; | 317 | directLoginParameters.reference = directLoginReference; |
312 | 318 | ||
313 | directLogin = new Clipperz.PM.DataModel.DirectLogin(directLoginParameters); | 319 | directLogin = new Clipperz.PM.DataModel.DirectLogin(directLoginParameters); |
314 | this.addDirectLogin(directLogin, true); | 320 | this.addDirectLogin(directLogin, true); |
315 | } | 321 | } |
316 | } | 322 | } |
317 | this.setShouldProcessData(false); | 323 | this.setShouldProcessData(false); |
318 | } | 324 | } |
319 | 325 | ||
320 | Clipperz.NotificationCenter.notify(this, 'recordDataReady'); | 326 | Clipperz.NotificationCenter.notify(this, 'recordDataReady'); |
321 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.processData"); | 327 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.processData"); |
322 | //MochiKit.Logging.logDebug("<<< Record.processData"); | 328 | //MochiKit.Logging.logDebug("<<< Record.processData"); |
323 | 329 | ||
324 | return this; | 330 | return this; |
325 | }, | 331 | }, |
326 | 332 | ||
327 | //------------------------------------------------------------------------- | 333 | //------------------------------------------------------------------------- |
328 | 334 | ||
329 | 'processDataToExtractLegacyValues': function(someValues) { | 335 | 'processDataToExtractLegacyValues': function(someValues) { |
330 | //MochiKit.Logging.logDebug(">>> Record.processDataToExtractLegacyValues"); | 336 | //MochiKit.Logging.logDebug(">>> Record.processDataToExtractLegacyValues"); |
331 | if (someValues['data'] != null) { | 337 | if (someValues['data'] != null) { |
332 | this.setNotes(someValues['data']); | 338 | this.setNotes(someValues['data']); |
333 | } | 339 | } |
334 | 340 | ||
335 | if ( | 341 | if ( |
336 | (typeof(someValues['loginFormData']) != "undefined") | 342 | (typeof(someValues['loginFormData']) != "undefined") |
337 | &&(typeof(someValues['loginBindings'] != "undefined")) | 343 | &&(typeof(someValues['loginBindings'] != "undefined")) |
338 | &&(someValues['loginFormData'] != "") | 344 | &&(someValues['loginFormData'] != "") |
339 | &&(someValues['loginBindings'] != "") | 345 | &&(someValues['loginBindings'] != "") |
340 | ) { | 346 | ) { |
341 | vardirectLogin; | 347 | vardirectLogin; |
342 | 348 | ||
343 | directLogin = new Clipperz.PM.DataModel.DirectLogin({ | 349 | directLogin = new Clipperz.PM.DataModel.DirectLogin({ |
344 | record:this, | 350 | record:this, |
345 | label:this.label() + Clipperz.PM.Strings['newDirectLoginLabelSuffix'], | 351 | label:this.label() + Clipperz.PM.Strings['newDirectLoginLabelSuffix'], |
346 | reference:Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray(this.label() + | 352 | reference:Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray(this.label() + |
347 | someValues['loginFormData'] + | 353 | someValues['loginFormData'] + |
348 | someValues['loginBindings'])).toHexString().substring(2), | 354 | someValues['loginBindings'])).toHexString().substring(2), |
349 | formData:Clipperz.Base.evalJSON(someValues['loginFormData']), | 355 | formData:Clipperz.Base.evalJSON(someValues['loginFormData']), |
350 | legacyBindingData:Clipperz.Base.evalJSON(someValues['loginBindings']), | 356 | legacyBindingData:Clipperz.Base.evalJSON(someValues['loginBindings']), |
351 | bookmarkletVersion:'0.1' | 357 | bookmarkletVersion:'0.1' |
352 | }); | 358 | }); |
353 | this.addDirectLogin(directLogin, true); | 359 | this.addDirectLogin(directLogin, true); |
354 | } | 360 | } |
355 | //MochiKit.Logging.logDebug("<<< Record.processDataToExtractLegacyValues"); | 361 | //MochiKit.Logging.logDebug("<<< Record.processDataToExtractLegacyValues"); |
356 | }, | 362 | }, |
357 | 363 | ||
358 | //------------------------------------------------------------------------- | 364 | //------------------------------------------------------------------------- |
359 | 365 | ||
360 | 'getReadyBeforeUpdatingVersionValues': function() { | 366 | 'getReadyBeforeUpdatingVersionValues': function() { |
361 | }, | 367 | }, |
362 | 368 | ||
363 | //------------------------------------------------------------------------- | 369 | //------------------------------------------------------------------------- |
364 | 370 | ||
365 | 'addNewField': function() { | 371 | 'addNewField': function() { |
366 | varnewField; | 372 | varnewField; |
367 | 373 | ||
368 | //MochiKit.Logging.logDebug(">>> Record.addNewField - " + this); | 374 | //MochiKit.Logging.logDebug(">>> Record.addNewField - " + this); |
369 | this.getReadyBeforeUpdatingVersionValues(); | 375 | this.getReadyBeforeUpdatingVersionValues(); |
370 | newField = this.currentVersion().addNewField(); | 376 | newField = this.currentVersion().addNewField(); |
371 | Clipperz.NotificationCenter.notify(this, 'recordUpdated'); | 377 | Clipperz.NotificationCenter.notify(this, 'recordUpdated'); |
372 | //MochiKit.Logging.logDebug("<<< Record.addNewField"); | 378 | //MochiKit.Logging.logDebug("<<< Record.addNewField"); |
373 | 379 | ||
374 | return newField; | 380 | return newField; |
375 | }, | 381 | }, |
376 | 382 | ||
377 | //------------------------------------------------------------------------- | 383 | //------------------------------------------------------------------------- |
378 | 384 | ||
379 | 'removeField': function(aField) { | 385 | 'removeField': function(aField) { |
380 | this.getReadyBeforeUpdatingVersionValues(); | 386 | this.getReadyBeforeUpdatingVersionValues(); |
381 | this.currentVersion().removeField(aField); | 387 | this.currentVersion().removeField(aField); |
382 | Clipperz.NotificationCenter.notify(this, 'recordUpdated'); | 388 | Clipperz.NotificationCenter.notify(this, 'recordUpdated'); |
383 | }, | 389 | }, |
384 | 390 | ||
385 | 'removeEmptyFields': function() { | 391 | 'removeEmptyFields': function() { |
386 | MochiKit.Iter.forEach(MochiKit.Base.values(this.currentVersion().fields()), MochiKit.Base.bind(function(aField) { | 392 | MochiKit.Iter.forEach(MochiKit.Base.values(this.currentVersion().fields()), MochiKit.Base.bind(function(aField) { |
387 | if (aField.isEmpty()) { | 393 | if (aField.isEmpty()) { |
388 | this.removeField(aField); | 394 | this.removeField(aField); |
389 | // this.currentVersion().removeField(aField); | 395 | // this.currentVersion().removeField(aField); |
390 | } | 396 | } |
391 | }, this)); | 397 | }, this)); |
392 | }, | 398 | }, |
393 | 399 | ||
394 | //------------------------------------------------------------------------- | 400 | //------------------------------------------------------------------------- |
395 | 401 | ||
396 | 'notes': function() { | 402 | 'notes': function() { |
397 | return this._notes; | 403 | return this._notes; |
398 | }, | 404 | }, |
399 | 405 | ||
400 | 'setNotes': function(aValue) { | 406 | 'setNotes': function(aValue) { |
401 | this._notes = aValue; | 407 | this._notes = aValue; |
402 | this.setHeaderNotes(null); | 408 | this.setHeaderNotes(null); |
403 | }, | 409 | }, |
404 | 410 | ||
405 | //------------------------------------------------------------------------- | 411 | //------------------------------------------------------------------------- |
406 | 412 | ||
407 | 'headerNotes': function() { | 413 | 'headerNotes': function() { |
408 | return this._headerNotes; | 414 | return this._headerNotes; |
409 | }, | 415 | }, |
410 | 416 | ||
411 | 'setHeaderNotes': function(aValue) { | 417 | 'setHeaderNotes': function(aValue) { |
412 | this._headerNotes = aValue; | 418 | this._headerNotes = aValue; |
413 | }, | 419 | }, |
414 | 420 | ||
415 | //------------------------------------------------------------------------- | 421 | //------------------------------------------------------------------------- |
416 | 422 | ||
417 | 'remove': function() { | 423 | 'remove': function() { |
418 | //MochiKit.Logging.logDebug(">>> Record.remove - " + this); | 424 | //MochiKit.Logging.logDebug(">>> Record.remove - " + this); |
419 | MochiKit.Iter.forEach(MochiKit.Base.values(this.directLogins()), MochiKit.Base.method(this, 'removeDirectLogin')); | 425 | MochiKit.Iter.forEach(MochiKit.Base.values(this.directLogins()), MochiKit.Base.method(this, 'removeDirectLogin')); |
420 | 426 | ||
421 | this.syncDirectLoginReferenceValues(); | 427 | this.syncDirectLoginReferenceValues(); |
422 | this.user().removeRecord(this); | 428 | this.user().removeRecord(this); |
423 | //MochiKit.Logging.logDebug("<<< Record.remove"); | 429 | //MochiKit.Logging.logDebug("<<< Record.remove"); |
424 | }, | 430 | }, |
425 | 431 | ||
426 | //------------------------------------------------------------------------- | 432 | //------------------------------------------------------------------------- |
427 | 433 | ||
428 | 'directLogins': function() { | 434 | 'directLogins': function() { |
429 | return this._directLogins; | 435 | return this._directLogins; |
430 | }, | 436 | }, |
431 | 437 | ||
432 | 'addDirectLogin': function(aDirectLogin, shouldUpdateUser) { | 438 | 'addDirectLogin': function(aDirectLogin, shouldUpdateUser) { |
433 | this.directLogins()[aDirectLogin.reference()] = aDirectLogin; | 439 | this.directLogins()[aDirectLogin.reference()] = aDirectLogin; |
434 | if (shouldUpdateUser == true) { | 440 | if (shouldUpdateUser == true) { |
435 | this.user().addDirectLogin(aDirectLogin); | 441 | this.user().addDirectLogin(aDirectLogin); |
436 | } | 442 | } |
437 | }, | 443 | }, |
438 | 444 | ||
439 | 'removeDirectLogin': function(aDirectLogin) { | 445 | 'removeDirectLogin': function(aDirectLogin) { |
440 | this.removedDirectLogins().push(aDirectLogin); | 446 | this.removedDirectLogins().push(aDirectLogin); |
441 | delete this.directLogins()[aDirectLogin.reference()]; | 447 | delete this.directLogins()[aDirectLogin.reference()]; |
442 | // this.user().removeDirectLogin(aDirectLogin); | 448 | // this.user().removeDirectLogin(aDirectLogin); |
443 | }, | 449 | }, |
444 | 450 | ||
445 | 'resetDirectLogins': function() { | 451 | 'resetDirectLogins': function() { |
446 | this._directLogins = {}; | 452 | this._directLogins = {}; |
447 | }, | 453 | }, |
448 | 454 | ||
449 | 'removedDirectLogins': function() { | 455 | 'removedDirectLogins': function() { |
450 | return this._removedDirectLogins; | 456 | return this._removedDirectLogins; |
451 | }, | 457 | }, |
452 | 458 | ||
453 | 'resetRemovedDirectLogins': function() { | 459 | 'resetRemovedDirectLogins': function() { |
454 | this._removedDirectLogins = []; | 460 | this._removedDirectLogins = []; |
455 | }, | 461 | }, |
456 | 462 | ||
457 | //------------------------------------------------------------------------- | 463 | //------------------------------------------------------------------------- |
458 | 464 | ||
459 | 'serverData': function() { | 465 | 'serverData': function() { |
460 | return this._serverData; | 466 | return this._serverData; |
461 | }, | 467 | }, |
462 | 468 | ||
463 | 'setServerData': function(aValue) { | 469 | 'setServerData': function(aValue) { |
464 | this._serverData = aValue; | 470 | this._serverData = aValue; |
465 | this.setShouldLoadData(false); | 471 | this.setShouldLoadData(false); |
466 | return aValue; | 472 | return aValue; |
467 | }, | 473 | }, |
468 | 474 | ||
469 | //------------------------------------------------------------------------- | 475 | //------------------------------------------------------------------------- |
470 | 476 | ||
471 | 'decryptedData': function() { | 477 | 'decryptedData': function() { |
472 | return this._decryptedData; | 478 | return this._decryptedData; |
473 | }, | 479 | }, |
474 | 480 | ||
475 | 'setDecryptedData': function(aValue) { | 481 | 'setDecryptedData': function(aValue) { |
476 | this._decryptedData = aValue; | 482 | this._decryptedData = aValue; |
477 | this.setShouldDecryptData(false); | 483 | this.setShouldDecryptData(false); |
478 | return aValue; | 484 | return aValue; |
479 | }, | 485 | }, |
480 | 486 | ||
481 | //------------------------------------------------------------------------- | 487 | //------------------------------------------------------------------------- |
482 | 488 | ||
483 | 'cachedData': function() { | 489 | 'cachedData': function() { |
484 | return this._cachedData; | 490 | return this._cachedData; |
485 | }, | 491 | }, |
486 | 492 | ||
487 | 'setCachedData': function(aValue) { | 493 | 'setCachedData': function(aValue) { |
488 | //MochiKit.Logging.logDebug(">>> Record.setCachedData"); | 494 | //MochiKit.Logging.logDebug(">>> Record.setCachedData"); |
489 | //MochiKit.Logging.logDebug("--- Record.setCachedData - aValue: " + Clipperz.Base.serializeJSON(aValue)); | 495 | //MochiKit.Logging.logDebug("--- Record.setCachedData - aValue: " + Clipperz.Base.serializeJSON(aValue)); |
490 | this._cachedData = aValue; | 496 | this._cachedData = aValue; |
491 | this.setShouldProcessData(false); | 497 | this.setShouldProcessData(false); |
492 | //MochiKit.Logging.logDebug("<<< Record.setCachedData"); | 498 | //MochiKit.Logging.logDebug("<<< Record.setCachedData"); |
493 | 499 | ||
494 | return aValue; | 500 | return aValue; |
495 | }, | 501 | }, |
496 | 502 | ||
497 | //------------------------------------------------------------------------- | 503 | //------------------------------------------------------------------------- |
498 | 504 | ||
499 | 'hasPendingChanges': function() { | 505 | 'hasPendingChanges': function() { |
500 | var result; | 506 | var result; |
501 | 507 | ||
502 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.hasPendingChanges"); | 508 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.hasPendingChanges"); |
503 | //MochiKit.Logging.logDebug(">>> Record.hasPendingChanges - cachedData: " + this.cachedData()); | 509 | //MochiKit.Logging.logDebug(">>> Record.hasPendingChanges - cachedData: " + this.cachedData()); |
504 | //MochiKit.Logging.logDebug(">>> Record.hasPendingChanges - cachedData: " + Clipperz.Base.serializeJSON(this.cachedData())); | 510 | //MochiKit.Logging.logDebug(">>> Record.hasPendingChanges - cachedData: " + Clipperz.Base.serializeJSON(this.cachedData())); |
505 | //MochiKit.Logging.logDebug(">>> Record.hasPendingChanges - currentSnapshot: " + this.currentDataSnapshot()); | 511 | //MochiKit.Logging.logDebug(">>> Record.hasPendingChanges - currentSnapshot: " + this.currentDataSnapshot()); |
506 | //MochiKit.Logging.logDebug(">>> Record.hasPendingChanges - currentSnapshot: " + Clipperz.Base.serializeJSON(this.currentDataSnapshot())); | 512 | //MochiKit.Logging.logDebug(">>> Record.hasPendingChanges - currentSnapshot: " + Clipperz.Base.serializeJSON(this.currentDataSnapshot())); |
507 | //console.log(">>> Record.hasPendingChanges - cachedData: %o", this.cachedData()); | 513 | //console.log(">>> Record.hasPendingChanges - cachedData: %o", this.cachedData()); |
508 | //console.log(">>> Record.hasPendingChanges - currentSnapshot: %o", this.currentDataSnapshot()); | 514 | //console.log(">>> Record.hasPendingChanges - currentSnapshot: %o", this.currentDataSnapshot()); |
509 | result = (MochiKit.Base.compare(this.cachedData(), this.currentDataSnapshot()) != 0); | 515 | result = (MochiKit.Base.compare(this.cachedData(), this.currentDataSnapshot()) != 0); |
510 | //MochiKit.Logging.logDebug("<<< Record.hasPendingChanges - " + result); | 516 | //MochiKit.Logging.logDebug("<<< Record.hasPendingChanges - " + result); |
511 | 517 | ||
512 | if ((result == false) && this.isBrandNew() && (this.label() != Clipperz.PM.Strings['newRecordTitleLabel'])) { | 518 | if ((result == false) && this.isBrandNew() && (this.label() != Clipperz.PM.Strings['newRecordTitleLabel'])) { |
513 | result = true; | 519 | result = true; |
514 | } | 520 | } |
515 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.hasPendingChanges"); | 521 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.hasPendingChanges"); |
516 | 522 | ||
517 | return result; | 523 | return result; |
518 | }, | 524 | }, |
519 | 525 | ||
520 | //------------------------------------------------------------------------- | 526 | //------------------------------------------------------------------------- |
521 | 527 | ||
522 | 'currentDataSnapshot': function() { | 528 | 'currentDataSnapshot': function() { |
523 | varresult; | 529 | varresult; |
524 | 530 | ||
525 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.currentDataSnapshot"); | 531 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.currentDataSnapshot"); |
526 | result = { | 532 | result = { |
527 | 'label': this.label(), | 533 | 'label': this.label(), |
528 | 'data': this.serializedData(), | 534 | 'data': this.serializedData(), |
529 | 'currentVersion': this.currentVersion().currentDataSnapshot() | 535 | 'currentVersion': this.currentVersion().currentDataSnapshot() |
530 | }; | 536 | }; |
531 | 537 | ||
532 | // result['data']['data'] = this.notes(); | 538 | // result['data']['data'] = this.notes(); |
533 | result = Clipperz.Base.serializeJSON(result); | 539 | result = Clipperz.Base.serializeJSON(result); |
534 | 540 | ||
535 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.currentDataSnapshot"); | 541 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.currentDataSnapshot"); |
536 | //MochiKit.Logging.logDebug("<<< Record.currentDataSnapshot"); | 542 | //MochiKit.Logging.logDebug("<<< Record.currentDataSnapshot"); |
537 | 543 | ||
538 | return result; | 544 | return result; |
539 | }, | 545 | }, |
540 | 546 | ||
541 | //......................................................................... | 547 | //......................................................................... |
542 | 548 | ||
543 | 'takeSnapshotOfCurrentData': function() { | 549 | 'takeSnapshotOfCurrentData': function() { |
544 | this.setCachedData(this.currentDataSnapshot()); | 550 | this.setCachedData(this.currentDataSnapshot()); |
545 | }, | 551 | }, |
546 | 552 | ||
547 | //------------------------------------------------------------------------- | 553 | //------------------------------------------------------------------------- |
548 | 554 | ||
549 | 'headerData': function() { | 555 | 'headerData': function() { |
550 | var result; | 556 | var result; |
551 | 557 | ||
552 | result = { | 558 | result = { |
553 | 'label': this.label(), | 559 | 'label': this.label(), |
554 | 'key': this.key() | 560 | 'key': this.key() |
555 | }; | 561 | }; |
556 | 562 | ||
557 | if (this.headerNotes() != null) { | 563 | if (this.headerNotes() != null) { |
558 | result['headerNotes'] = this.headerNotes(); | 564 | result['headerNotes'] = this.headerNotes(); |
559 | } | 565 | } |
560 | 566 | ||
561 | return result; | 567 | return result; |
562 | }, | 568 | }, |
563 | 569 | ||
564 | //------------------------------------------------------------------------- | 570 | //------------------------------------------------------------------------- |
565 | 571 | ||
566 | 'serializedData': function() { | 572 | 'serializedData': function() { |
567 | var result; | 573 | var result; |
568 | var directLoginReference; | 574 | var directLoginReference; |
569 | 575 | ||
570 | result = {}; | 576 | result = {}; |
571 | result['currentVersionKey'] = this.currentVersion().key(); | 577 | result['currentVersionKey'] = this.currentVersion().key(); |
572 | 578 | ||
573 | result['directLogins'] = {}; | 579 | result['directLogins'] = {}; |
574 | for (directLoginReference in this.directLogins()) { | 580 | for (directLoginReference in this.directLogins()) { |
575 | result['directLogins'][directLoginReference] = this.directLogins()[directLoginReference].serializedData(); | 581 | result['directLogins'][directLoginReference] = this.directLogins()[directLoginReference].serializedData(); |
576 | } | 582 | } |
577 | result['notes'] = this.notes(); | 583 | result['notes'] = this.notes(); |
578 | 584 | ||
579 | return result; | 585 | return result; |
580 | }, | 586 | }, |
581 | 587 | ||
582 | //------------------------------------------------------------------------- | 588 | //------------------------------------------------------------------------- |
583 | 589 | ||
584 | 'encryptedData': function() { | 590 | 'encryptedData': function() { |
585 | var deferredResult; | 591 | var deferredResult; |
586 | varresult; | 592 | varresult; |
587 | 593 | ||
588 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.encryptedData"); | 594 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.encryptedData"); |
589 | result = {} | 595 | result = {} |
590 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 1"); | 596 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 1"); |
591 | deferredResult = new MochiKit.Async.Deferred(); | 597 | deferredResult = new MochiKit.Async.Deferred(); |
592 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 2"); | 598 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 2"); |
593 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 1: " + res); return res;}); | 599 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 1: " + res); return res;}); |
594 | deferredResult.addCallback(function(aResult, aRecord) { | 600 | deferredResult.addCallback(function(aResult, aRecord) { |
595 | aResult['reference'] = aRecord.reference(); | 601 | aResult['reference'] = aRecord.reference(); |
596 | return aResult; | 602 | return aResult; |
597 | }, result, this); | 603 | }, result, this); |
598 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 3"); | 604 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 3"); |
599 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 2: " + res); return res;}); | 605 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 2: " + res); return res;}); |
600 | deferredResult.addCallback(Clipperz.PM.Crypto.deferredEncryptWithCurrentVersion, this.key(), this.serializedData()); | 606 | deferredResult.addCallback(Clipperz.PM.Crypto.deferredEncryptWithCurrentVersion, this.key(), this.serializedData()); |
601 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 4"); | 607 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 4"); |
602 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 3: " + res); return res;}); | 608 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 3: " + res); return res;}); |
603 | deferredResult.addCallback(function(aResult, res) { | 609 | deferredResult.addCallback(function(aResult, res) { |
604 | aResult['data'] = res; | 610 | aResult['data'] = res; |
605 | return aResult; | 611 | return aResult; |
606 | }, result); | 612 | }, result); |
607 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 5"); | 613 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 5"); |
608 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 4: " + res); return res;}); | 614 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 4: " + res); return res;}); |
609 | deferredResult.addCallback(function(aResult) { | 615 | deferredResult.addCallback(function(aResult) { |
610 | aResult['version'] = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; | 616 | aResult['version'] = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; |
611 | return aResult; | 617 | return aResult; |
612 | }, result); | 618 | }, result); |
613 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 6"); | 619 | //MochiKit.Logging.logDebug("--- Record.encryptedData - 6"); |
614 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 5: " + res); return res;}); | 620 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Record.encryptedData - 5: " + res); return res;}); |
615 | deferredResult.callback(); | 621 | deferredResult.callback(); |
616 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.encryptedData"); | 622 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.encryptedData"); |
617 | 623 | ||
618 | return deferredResult; | 624 | return deferredResult; |
619 | }, | 625 | }, |
620 | 626 | ||
621 | //------------------------------------------------------------------------- | 627 | //------------------------------------------------------------------------- |
622 | 628 | ||
623 | 'syncDirectLoginReferenceValues': function() { | 629 | 'syncDirectLoginReferenceValues': function() { |
624 | //MochiKit.Logging.logDebug(">>> Record.syncDirectLoginReferenceValues"); | 630 | //MochiKit.Logging.logDebug(">>> Record.syncDirectLoginReferenceValues"); |
625 | MochiKit.Iter.forEach(MochiKit.Base.values(this.directLogins()), function(aDirectLogin) { | 631 | MochiKit.Iter.forEach(MochiKit.Base.values(this.directLogins()), function(aDirectLogin) { |
626 | aDirectLogin.record().user().synchronizeDirectLogin(aDirectLogin); | 632 | aDirectLogin.record().user().synchronizeDirectLogin(aDirectLogin); |
627 | }); | 633 | }); |
628 | 634 | ||
629 | MochiKit.Iter.forEach(this.removedDirectLogins(), function(aDirectLogin) { | 635 | MochiKit.Iter.forEach(this.removedDirectLogins(), function(aDirectLogin) { |
630 | aDirectLogin.record().user().removeDirectLogin(aDirectLogin); | 636 | aDirectLogin.record().user().removeDirectLogin(aDirectLogin); |
631 | }); | 637 | }); |
632 | 638 | ||
633 | this.resetRemovedDirectLogins(); | 639 | this.resetRemovedDirectLogins(); |
634 | //MochiKit.Logging.logDebug("<<< Record.syncDirectLoginReferenceValues"); | 640 | //MochiKit.Logging.logDebug("<<< Record.syncDirectLoginReferenceValues"); |
635 | }, | 641 | }, |
636 | 642 | ||
637 | //------------------------------------------------------------------------- | 643 | //------------------------------------------------------------------------- |
638 | 644 | ||
639 | 'saveChanges': function() { | 645 | 'saveChanges': function() { |
640 | var result; | 646 | var result; |
641 | 647 | ||
642 | // if (this.isBrandNew() == false) { | 648 | // if (this.isBrandNew() == false) { |
643 | // result = this.user().saveRecords([this], 'updateData'); | 649 | // result = this.user().saveRecords([this], 'updateData'); |
644 | // } else { | 650 | // } else { |
645 | // result = this.user().saveRecords([this], 'addNewRecords'); | 651 | // result = this.user().saveRecords([this], 'addNewRecords'); |
646 | // } | 652 | // } |
647 | 653 | ||
648 | result = this.user().saveRecords([this]); | 654 | result = this.user().saveRecords([this]); |
649 | 655 | ||
650 | return result; | 656 | return result; |
651 | }, | 657 | }, |
652 | 658 | ||
653 | /* | 659 | /* |
654 | 'saveChanges': function() { | 660 | 'saveChanges': function() { |
655 | var deferredResult; | 661 | var deferredResult; |
656 | varresult; | 662 | varresult; |
657 | 663 | ||
658 | Clipperz.NotificationCenter.notify(this.user(), 'updatedSection', 'records', true); | 664 | Clipperz.NotificationCenter.notify(this.user(), 'updatedSection', 'records', true); |
659 | //MochiKit.Logging.logDebug(">>> Record.saveChanges"); | 665 | //MochiKit.Logging.logDebug(">>> Record.saveChanges"); |
660 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.saveChanges"); | 666 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.saveChanges"); |
661 | if (this.headerNotes() != null) { | 667 | if (this.headerNotes() != null) { |
662 | this.setNotes(this.headerNotes()); | 668 | this.setNotes(this.headerNotes()); |
663 | } | 669 | } |
664 | this.syncDirectLoginReferenceValues(); | 670 | this.syncDirectLoginReferenceValues(); |
665 | this.currentVersion().createNewVersion(); | 671 | this.currentVersion().createNewVersion(); |
666 | 672 | ||
667 | result = {'records': [{}]}; | 673 | result = {'records': [{}]}; |
668 | 674 | ||
669 | deferredResult = new MochiKit.Async.Deferred(); | 675 | deferredResult = new MochiKit.Async.Deferred(); |
670 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_collectRecordInfo'); | 676 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_collectRecordInfo'); |
671 | deferredResult.addCallback(MochiKit.Base.method(this, 'updateKey')); | 677 | deferredResult.addCallback(MochiKit.Base.method(this, 'updateKey')); |
672 | 678 | ||
673 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptUserData'); | 679 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptUserData'); |
674 | deferredResult.addCallback(MochiKit.Base.method(this.user(), 'encryptedData')); | 680 | deferredResult.addCallback(MochiKit.Base.method(this.user(), 'encryptedData')); |
675 | deferredResult.addCallback(function(aResult, res) { | 681 | deferredResult.addCallback(function(aResult, res) { |
676 | aResult['user'] = res; | 682 | aResult['user'] = res; |
677 | return aResult; | 683 | return aResult; |
678 | }, result); | 684 | }, result); |
679 | 685 | ||
680 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptRecordData'); | 686 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptRecordData'); |
681 | deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); | 687 | deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); |
682 | deferredResult.addCallback(function(aResult, res) { | 688 | deferredResult.addCallback(function(aResult, res) { |
683 | //# aResult['record'] = res; | 689 | //# aResult['record'] = res; |
684 | aResult['records'][0]['record'] = res; | 690 | aResult['records'][0]['record'] = res; |
685 | return aResult; | 691 | return aResult; |
686 | }, result); | 692 | }, result); |
687 | 693 | ||
688 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptRecordVersions'); | 694 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptRecordVersions'); |
689 | deferredResult.addCallback(MochiKit.Base.method(this.currentVersion(), 'encryptedData')); | 695 | deferredResult.addCallback(MochiKit.Base.method(this.currentVersion(), 'encryptedData')); |
690 | deferredResult.addCallback(function(aResult, res) { | 696 | deferredResult.addCallback(function(aResult, res) { |
691 | // aResult['currentRecordVersion'] = res; | 697 | // aResult['currentRecordVersion'] = res; |
692 | aResult['records'][0]['currentRecordVersion'] = res; | 698 | aResult['records'][0]['currentRecordVersion'] = res; |
693 | return aResult; | 699 | return aResult; |
694 | }, result); | 700 | }, result); |
695 | 701 | ||
696 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_sendingData'); | 702 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_sendingData'); |
697 | if (this.isBrandNew() == false) { | 703 | if (this.isBrandNew() == false) { |
698 | deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'updateData'); | 704 | deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'updateData'); |
699 | } else { | 705 | } else { |
700 | //# deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'addNewRecord'); | 706 | //# deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'addNewRecord'); |
701 | deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'addNewRecords'); | 707 | deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'addNewRecords'); |
702 | } | 708 | } |
703 | 709 | ||
704 | deferredResult.addCallback(MochiKit.Base.method(this, 'takeSnapshotOfCurrentData')); | 710 | deferredResult.addCallback(MochiKit.Base.method(this, 'takeSnapshotOfCurrentData')); |
705 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_updatingInterface'); | 711 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_updatingInterface'); |
706 | deferredResult.addCallback(MochiKit.Base.method(this, 'setIsBrandNew'), false); | 712 | deferredResult.addCallback(MochiKit.Base.method(this, 'setIsBrandNew'), false); |
707 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'recordUpdated'); | 713 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'recordUpdated'); |
708 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'directLoginUpdated'); | 714 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'directLoginUpdated'); |
709 | deferredResult.callback(); | 715 | deferredResult.callback(); |
710 | 716 | ||
711 | return deferredResult; | 717 | return deferredResult; |
712 | }, | 718 | }, |
713 | */ | 719 | */ |
714 | //------------------------------------------------------------------------- | 720 | //------------------------------------------------------------------------- |
715 | 721 | ||
716 | 'cancelChanges': function() { | 722 | 'cancelChanges': function() { |
717 | //MochiKit.Logging.logDebug(">>> Record.cancelChanges"); | 723 | //MochiKit.Logging.logDebug(">>> Record.cancelChanges"); |
718 | //MochiKit.Logging.logDebug("--- Record.cancelChanges - cachedData: " + Clipperz.Base.serializeJSON(this.cachedData())); | 724 | //MochiKit.Logging.logDebug("--- Record.cancelChanges - cachedData: " + Clipperz.Base.serializeJSON(this.cachedData())); |
719 | if (this.isBrandNew()) { | 725 | if (this.isBrandNew()) { |
720 | this.user().removeRecord(this); | 726 | this.user().removeRecord(this); |
721 | } else { | 727 | } else { |
722 | this.restoreValuesFromSnapshot(this.cachedData()); | 728 | this.restoreValuesFromSnapshot(this.cachedData()); |
723 | } | 729 | } |
724 | //MochiKit.Logging.logDebug("<<< Record.cancelChanges"); | 730 | //MochiKit.Logging.logDebug("<<< Record.cancelChanges"); |
725 | }, | 731 | }, |
726 | 732 | ||
727 | //------------------------------------------------------------------------- | 733 | //------------------------------------------------------------------------- |
728 | 734 | ||
729 | 'restoreValuesFromSnapshot': function(someSnapshotData) { | 735 | 'restoreValuesFromSnapshot': function(someSnapshotData) { |
730 | varsnapshotData; | 736 | varsnapshotData; |
731 | 737 | ||
732 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.restoreValuesFromSnapshot"); | 738 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.restoreValuesFromSnapshot"); |
733 | snapshotData = Clipperz.Base.evalJSON(someSnapshotData); | 739 | snapshotData = Clipperz.Base.evalJSON(someSnapshotData); |
734 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - someSnapshotData (1): " + Clipperz.Base.serializeJSON(someSnapshotData)); | 740 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - someSnapshotData (1): " + Clipperz.Base.serializeJSON(someSnapshotData)); |
735 | this.setLabel(snapshotData['label']); | 741 | this.setLabel(snapshotData['label']); |
736 | this.resetDirectLogins(); | 742 | this.resetDirectLogins(); |
737 | this.setShouldProcessData(true); | 743 | this.setShouldProcessData(true); |
738 | this.processData(snapshotData); | 744 | this.processData(snapshotData); |
739 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - snapshotData: (2)" + Clipperz.Base.serializeJSON(snapshotData)); | 745 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - snapshotData: (2)" + Clipperz.Base.serializeJSON(snapshotData)); |
740 | 746 | ||
741 | this.resetRemovedDirectLogins(); | 747 | this.resetRemovedDirectLogins(); |
742 | 748 | ||
743 | { | 749 | { |
744 | var currentSnapshot; | 750 | var currentSnapshot; |
745 | varcomparisonResult; | 751 | varcomparisonResult; |
746 | 752 | ||
747 | currentSnapshot = this.currentDataSnapshot(); | 753 | currentSnapshot = this.currentDataSnapshot(); |
748 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - 1"); | 754 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - 1"); |
749 | //console.log("snapshot data: %o", someSnapshotData.currentVersion); | 755 | //console.log("snapshot data: %o", someSnapshotData.currentVersion); |
750 | //console.log("current data: %o", currentSnapshot.currentVersion); | 756 | //console.log("current data: %o", currentSnapshot.currentVersion); |
751 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - someSnapshotData: " + Clipperz.Base.serializeJSON(someSnapshotData.currentVersion)); | 757 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - someSnapshotData: " + Clipperz.Base.serializeJSON(someSnapshotData.currentVersion)); |
752 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - currentSnapshot: " + Clipperz.Base.serializeJSON(currentSnapshot.currentVersion)); | 758 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - currentSnapshot: " + Clipperz.Base.serializeJSON(currentSnapshot.currentVersion)); |
753 | comparisonResult = MochiKit.Base.compare(someSnapshotData.currentVersion, currentSnapshot.currentVersion); | 759 | comparisonResult = MochiKit.Base.compare(someSnapshotData.currentVersion, currentSnapshot.currentVersion); |
754 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - " + comparisonResult); | 760 | //MochiKit.Logging.logDebug("--- Record.restoreValuesFromSnapshot - " + comparisonResult); |
755 | } | 761 | } |
756 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.restoreValuesFromSnapshot"); | 762 | //MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.restoreValuesFromSnapshot"); |
757 | }, | 763 | }, |
758 | 764 | ||
759 | //------------------------------------------------------------------------- | 765 | //------------------------------------------------------------------------- |
760 | __syntaxFix__: "syntax fix" | 766 | __syntaxFix__: "syntax fix" |
761 | }); | 767 | }); |
762 | 768 | ||
763 | 769 | ||
diff --git a/frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js b/frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js index 9fa95e9..299ebc7 100644 --- a/frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js +++ b/frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js | |||
@@ -1,1256 +1,1256 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz Community Edition. | 5 | This file is part of Clipperz Community Edition. |
6 | Clipperz Community Edition is an online password manager. | 6 | Clipperz Community Edition is an online password manager. |
7 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
8 | refer to http://www.clipperz.com. | 8 | refer to http://www.clipperz.com. |
9 | 9 | ||
10 | * Clipperz Community Edition is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
11 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
12 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
13 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
14 | 14 | ||
15 | * Clipperz Community Edition is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
16 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
19 | 19 | ||
20 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
21 | License along with Clipperz Community Edition. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
22 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
23 | 23 | ||
24 | */ | 24 | */ |
25 | 25 | ||
26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
28 | if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } | 28 | if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } |
29 | if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; } | 29 | if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; } |
30 | 30 | ||
31 | //============================================================================= | 31 | //============================================================================= |
32 | // | 32 | // |
33 | // E N G L I S H A M E R I C A N ( en_US ) | 33 | // E N G L I S H A M E R I C A N ( en_US ) |
34 | // | 34 | // |
35 | //============================================================================= | 35 | //============================================================================= |
36 | 36 | ||
37 | Clipperz.PM.Strings.Languages['en-us'] = { | 37 | Clipperz.PM.Strings.Languages['en-us'] = { |
38 | 38 | ||
39 | //Login page - description | 39 | //Login page - description |
40 | 'clipperzServiceDescription': "\ | 40 | 'clipperzServiceDescription': "\ |
41 | <!-- FIX CSS DONE -->\ | 41 | <!-- FIX CSS DONE -->\ |
42 | <h2>Keep it to yourself!</h2>\ | 42 | <h2>Keep it to yourself!</h2>\ |
43 | <ul>\ | 43 | <ul>\ |
44 | <li>\ | 44 | <li>\ |
45 | <h3>Clipperz is:</h3>\ | 45 | <h3>Clipperz is:</h3>\ |
46 | <ul>\ | 46 | <ul>\ |
47 | <li><p>a secure and simple password manager</p></li>\ | 47 | <li><p>a secure and simple password manager</p></li>\ |
48 | <li><p>an effective single sign-on solution</p></li>\ | 48 | <li><p>an effective single sign-on solution</p></li>\ |
49 | <li><p>a digital vault for your personal data</p></li>\ | 49 | <li><p>a digital vault for your personal data</p></li>\ |
50 | </ul>\ | 50 | </ul>\ |
51 | </li>\ | 51 | </li>\ |
52 | <li>\ | 52 | <li>\ |
53 | <h3>With Clipperz you can:</h3>\ | 53 | <h3>With Clipperz you can:</h3>\ |
54 | <ul>\ | 54 | <ul>\ |
55 | <li><p>store and manage your passwords and online credentials</p></li>\ | 55 | <li><p>store and manage your passwords and online credentials</p></li>\ |
56 | <li><p>login to your web services without entering any username or password</p></li>\ | 56 | <li><p>login to your web services without entering any username or password</p></li>\ |
57 | <li><p>protect all your sensitive data: codes for burglar alarms, PINs, credit card numbers, …</p></li>\ | 57 | <li><p>protect all your sensitive data: codes for burglar alarms, PINs, credit card numbers, …</p></li>\ |
58 | <li><p>share secrets with family members and associates (coming soon)</p></li>\ | 58 | <li><p>share secrets with family members and associates (coming soon)</p></li>\ |
59 | </ul>\ | 59 | </ul>\ |
60 | </li>\ | 60 | </li>\ |
61 | <li>\ | 61 | <li>\ |
62 | <h3>Clipperz benefits:</h3>\ | 62 | <h3>Clipperz benefits:</h3>\ |
63 | <ul>\ | 63 | <ul>\ |
64 | <li><p>free and completely anonymous</p></li>\ | 64 | <li><p>free and completely anonymous</p></li>\ |
65 | <li><p>access it any time from any computer</p></li>\ | 65 | <li><p>access it any time from any computer</p></li>\ |
66 | <li><p>no software to download and nothing to install</p></li>\ | 66 | <li><p>no software to download and nothing to install</p></li>\ |
67 | <li><p>avoid keeping secrets on your PC or on paper</p></li>\ | 67 | <li><p>avoid keeping secrets on your PC or on paper</p></li>\ |
68 | </ul>\ | 68 | </ul>\ |
69 | </li>\ | 69 | </li>\ |
70 | <li>\ | 70 | <li>\ |
71 | <h3>Clipperz security:</h3>\ | 71 | <h3>Clipperz security:</h3>\ |
72 | <ul>\ | 72 | <ul>\ |
73 | <li><p>your secrets are locally encrypted by your browser before being uploaded to Clipperz</p></li>\ | 73 | <li><p>your secrets are locally encrypted by your browser before being uploaded to Clipperz</p></li>\ |
74 | <li><p>the encryption key is a passphrase known only to you</p></li>\ | 74 | <li><p>the encryption key is a passphrase known only to you</p></li>\ |
75 | <li><p>Clipperz hosts your sensitive data in encrypted form and could never actually access the data in its plain form</p></li>\ | 75 | <li><p>Clipperz hosts your sensitive data in encrypted form and could never actually access the data in its plain form</p></li>\ |
76 | <li><p>Clipperz is built upon standard encryption schemes, nothing fancies or homemade</p></li>\ | 76 | <li><p>Clipperz is built upon standard encryption schemes, nothing fancies or homemade</p></li>\ |
77 | <li><p>you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!</p></li>\ | 77 | <li><p>you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!</p></li>\ |
78 | </ul>\ | 78 | </ul>\ |
79 | </li>\ | 79 | </li>\ |
80 | <li>\ | 80 | <li>\ |
81 | <a href=\"http://www.clipperz.com\" target=\"_blank\">Learn more</a>\ | 81 | <a href=\"http://www.clipperz.com\" target=\"_blank\">Learn more</a>\ |
82 | </li>\ | 82 | </li>\ |
83 | </ul>", | 83 | </ul>", |
84 | 84 | ||
85 | 85 | ||
86 | 'loginFormTitle': "login with your Clipperz account", | 86 | 'loginFormTitle': "login with your Clipperz account", |
87 | 'loginFormUsernameLabel': "username", | 87 | 'loginFormUsernameLabel': "username", |
88 | 'loginFormPassphraseLabel': "passphrase", | 88 | 'loginFormPassphraseLabel': "passphrase", |
89 | 'loginFormDontHaveAnAccountLabel': "don\'t have an account?", | 89 | 'loginFormDontHaveAnAccountLabel': "don\'t have an account?", |
90 | 'loginFormCreateOneLabel': "create one", | 90 | 'loginFormCreateOneLabel': "create one", |
91 | 'loginFormForgotYourCredentialsLabel': "forgot your credentials?", | 91 | 'loginFormForgotYourCredentialsLabel': "forgot your credentials?", |
92 | 'loginFormAarghThatsBadLabel': "aargh! that\'s bad!", | 92 | 'loginFormAarghThatsBadLabel': "aargh! that\'s bad!", |
93 | 'loginFormAfraidOfMaliciousScriptsLabel': "afraid of malicious scripts?", | 93 | 'loginFormAfraidOfMaliciousScriptsLabel': "afraid of malicious scripts?", |
94 | 'loginFormVerifyTheCodeLabel': "verify the code", | 94 | 'loginFormVerifyTheCodeLabel': "verify the code", |
95 | 'loginFormButtonLabel': "Login", | 95 | 'loginFormButtonLabel': "Login", |
96 | 'loginFormOneTimePasswordCheckboxLabel': "use a one-time passphrase", | 96 | 'loginFormOneTimePasswordCheckboxLabel': "use a one-time passphrase", |
97 | 'loginFormOneTimePasswordCheckboxDescription': "", | 97 | 'loginFormOneTimePasswordCheckboxDescription': "", |
98 | 98 | ||
99 | // Login page - language selection | 99 | // Login page - language selection |
100 | 'loginPanelSwithLanguageDescription': "<h5>Switch to your preferred language</h5>", | 100 | 'loginPanelSwithLanguageDescription': "<h5>Switch to your preferred language</h5>", |
101 | 101 | ||
102 | // Login page - browser compatibility | 102 | // Login page - browser compatibility |
103 | 'browserCompatibilityDescription': "<p>Have a better and safer Clipperz experience with Firefox. However Clipperz works just fine also with Opera, Safari and MS Internet Explorer!</p>", | 103 | 'browserCompatibilityDescription': "<p>Have a better and safer Clipperz experience with Firefox. However Clipperz works just fine also with Opera, Safari and MS Internet Explorer!</p>", |
104 | 104 | ||
105 | // Login with OTP - message panel | 105 | // Login with OTP - message panel |
106 | 'OTPloginMessagePanelInitialTitle': "Logging in using a one-time passphrase", | 106 | 'OTPloginMessagePanelInitialTitle': "Logging in using a one-time passphrase", |
107 | 'OTPloginMessagePanelInitialText': "Sending OTP credentials …", | 107 | 'OTPloginMessagePanelInitialText': "Sending OTP credentials …", |
108 | 'OTPloginMessagePanelLoadingTitle': "Logging in using a one-time passphrase", | 108 | 'OTPloginMessagePanelLoadingTitle': "Logging in using a one-time passphrase", |
109 | 'OTPloginMessagePanelLoadingText': "Fetching encrypted authentication data from the server …", | 109 | 'OTPloginMessagePanelLoadingText': "Fetching encrypted authentication data from the server …", |
110 | 'OTPloginMessagePanelProcessingTitle': "Logging in using a one-time passphrase", | 110 | 'OTPloginMessagePanelProcessingTitle': "Logging in using a one-time passphrase", |
111 | 'OTPloginMessagePanelProcessingText': "Local decryption of authentication data", | 111 | 'OTPloginMessagePanelProcessingText': "Local decryption of authentication data", |
112 | 112 | ||
113 | // Regular login - message panel | 113 | // Regular login - message panel |
114 | 'loginMessagePanelInitialTitle': "Logging in …", | 114 | 'loginMessagePanelInitialTitle': "Logging in …", |
115 | 'loginMessagePanelInitialText': "---", | 115 | 'loginMessagePanelInitialText': "---", |
116 | 'loginMessagePanelInitialButtonLabel': "Cancel", | 116 | 'loginMessagePanelInitialButtonLabel': "Cancel", |
117 | 'loginMessagePanelConnectedTitle': "Connected", | 117 | 'loginMessagePanelConnectedTitle': "Connected", |
118 | 'loginMessagePanelConnectedText': "Done", | 118 | 'loginMessagePanelConnectedText': "Done", |
119 | 'loginMessagePanelFailureTitle': "Error", | 119 | 'loginMessagePanelFailureTitle': "Error", |
120 | 'loginMessagePanelFailureText': "Login failed", | 120 | 'loginMessagePanelFailureText': "Login failed", |
121 | 'loginMessagePanelFailureButtonLabel': "Close", | 121 | 'loginMessagePanelFailureButtonLabel': "Close", |
122 | 122 | ||
123 | // Regular login - message panel - connection | 123 | // Regular login - message panel - connection |
124 | 'connectionLoginSendingCredentialsMessageTitle': "Verifying credentials", | 124 | 'connectionLoginSendingCredentialsMessageTitle': "Verifying credentials", |
125 | 'connectionLoginSendingCredentialsMessageText': "Sending credentials", | 125 | 'connectionLoginSendingCredentialsMessageText': "Sending credentials", |
126 | 'connectionLoginCredentialsVerificationMessageTitle':"Verifying credentials", | 126 | 'connectionLoginCredentialsVerificationMessageTitle':"Verifying credentials", |
127 | 'connectionLoginCredentialsVerificationMessageText':"Performing SRP authentication", | 127 | 'connectionLoginCredentialsVerificationMessageText':"Performing SRP authentication", |
128 | 'connectionLoginDoneMessageTitle': "Verifying credentials", | 128 | 'connectionLoginDoneMessageTitle': "Verifying credentials", |
129 | 'connectionLoginDoneMessageText': "Connected", | 129 | 'connectionLoginDoneMessageText': "Connected", |
130 | 130 | ||
131 | //Regular login - message panel - user | 131 | //Regular login - message panel - user |
132 | 'userLoginPanelUpgradingUserCredentialsMessageTitle': "Verifying credentials", | 132 | 'userLoginPanelUpgradingUserCredentialsMessageTitle': "Verifying credentials", |
133 | 'userLoginPanelUpgradingUserCredentialsMessageText': "Upgrading your credentials to a new authentication schema", | 133 | 'userLoginPanelUpgradingUserCredentialsMessageText': "Upgrading your credentials to a new authentication schema", |
134 | 'userLoginPanelConnectedMessageTitle': "User authenticated", | 134 | 'userLoginPanelConnectedMessageTitle': "User authenticated", |
135 | 'userLoginPanelConnectedMessageText': "Successfully logged in", | 135 | 'userLoginPanelConnectedMessageText': "Successfully logged in", |
136 | 'userLoginPanelTryingAnOlderConnectionSchemaMessageTitle': "Verifying credentials", | 136 | 'userLoginPanelTryingAnOlderConnectionSchemaMessageTitle': "Verifying credentials", |
137 | 'userLoginPanelTryingAnOlderConnectionSchemaMessageText': "Trying an older authentication schema", | 137 | 'userLoginPanelTryingAnOlderConnectionSchemaMessageText': "Trying an older authentication schema", |
138 | 'userLoginPanelLoadingUserDataMessageTitle': "User authenticated", | 138 | 'userLoginPanelLoadingUserDataMessageTitle': "User authenticated", |
139 | 'userLoginPanelLoadingUserDataMessageText': "Downloading encrypted card headers from Clipperz", | 139 | 'userLoginPanelLoadingUserDataMessageText': "Downloading encrypted card headers from Clipperz", |
140 | 'userLoginPanelDecryptingUserDataMessageTitle': "User authenticated", | 140 | 'userLoginPanelDecryptingUserDataMessageTitle': "User authenticated", |
141 | 'userLoginPanelDecryptingUserDataMessageText': "Local decryption of card headers", | 141 | 'userLoginPanelDecryptingUserDataMessageText': "Local decryption of card headers", |
142 | 'userLoginPanelDecryptingUserStatisticsMessageTitle': "User authenticated", | 142 | 'userLoginPanelDecryptingUserStatisticsMessageTitle': "User authenticated", |
143 | 'userLoginPanelDecryptingUserStatisticsMessageText': "Local decryption of usage statistics", | 143 | 'userLoginPanelDecryptingUserStatisticsMessageText': "Local decryption of usage statistics", |
144 | 144 | ||
145 | //Registration page - splash alert | 145 | //Registration page - splash alert |
146 | 'splashAlertTitle':"Welcome to Clipperz!", | 146 | 'splashAlertTitle':"Welcome to Clipperz!", |
147 | 'splashAlertText': "\ | 147 | 'splashAlertText': "\ |
148 | <!-- FIX CSS DONE! -->\ | 148 | <!-- FIX CSS DONE! -->\ |
149 | <p>Some security advice</p>\ | 149 | <p>Some security advice</p>\ |
150 | <ul>\ | 150 | <ul>\ |
151 | <li><p>Storing your data at Clipperz is as secure as the passphrase you choose to protect them. Nobody can access them unless they know your passphrase.</p></li>\ | 151 | <li><p>Storing your data at Clipperz is as secure as the passphrase you choose to protect them. Nobody can access them unless they know your passphrase.</p></li>\ |
152 | <li><p>If you are going to use Clipperz for safeguarding sensitive and critical information please make sure to use a strong passphrase. The longer the better!</p></li>\ | 152 | <li><p>If you are going to use Clipperz for safeguarding sensitive and critical information please make sure to use a strong passphrase. The longer the better!</p></li>\ |
153 | <li><p>Clipperz will not be able to recover a lost passphrase!</p></li>\ | 153 | <li><p>Clipperz will not be able to recover a lost passphrase!</p></li>\ |
154 | </ul>\ | 154 | </ul>\ |
155 | <p>For any further information, please refer to <a href=\"http://www.clipperz.com\" target=\"_blank\">Clipperz</a> website.</p>", | 155 | <p>For any further information, please refer to <a href=\"http://www.clipperz.com\" target=\"_blank\">Clipperz</a> website.</p>", |
156 | 'splashAlertCloseButtonLabel':"Ok", | 156 | 'splashAlertCloseButtonLabel':"Ok", |
157 | 157 | ||
158 | // Registration page - form | 158 | // Registration page - form |
159 | 'registrationFormTitle': "create your account", | 159 | 'registrationFormTitle': "create your account", |
160 | 'registrationFormUsernameLabel': "username", | 160 | 'registrationFormUsernameLabel': "username", |
161 | 'registrationFormPassphraseLabel': "passphrase", | 161 | 'registrationFormPassphraseLabel': "passphrase", |
162 | 'registrationFormRetypePassphraseLabel': "re-enter passphrase", | 162 | 'registrationFormRetypePassphraseLabel': "re-enter passphrase", |
163 | 'registrationFormSafetyCheckLabel': "I understand that Clipperz will not be able to recover a lost passphrase.", | 163 | 'registrationFormSafetyCheckLabel': "I understand that Clipperz will not be able to recover a lost passphrase.", |
164 | 'registrationFormTermsOfServiceCheckLabel': "I have read and agreed to the <a href='http://www.clipperz.com/terms_of_service' target='_blank'>Terms of Service</a>.", | 164 | 'registrationFormTermsOfServiceCheckLabel': "I have read and agreed to the <a href='http://www.clipperz.com/terms_of_service' target='_blank'>Terms of Service</a>.", |
165 | 'registrationFormDoYouAlreadyHaveAnAccountLabel': "do you already have an account?", | 165 | 'registrationFormDoYouAlreadyHaveAnAccountLabel': "do you already have an account?", |
166 | 'registrationFormSimplyLoginLabel': "simply login", | 166 | 'registrationFormSimplyLoginLabel': "simply login", |
167 | 'registrationFormButtonLabel': "Register", | 167 | 'registrationFormButtonLabel': "Register", |
168 | 168 | ||
169 | // Registration page - warning messages | 169 | // Registration page - warning messages |
170 | 'registrationFormWarningMessageNotMatchingPassphrases':"Your passphrases don't match, please re-type them.", | 170 | 'registrationFormWarningMessageNotMatchingPassphrases':"Your passphrases don't match, please re-type them.", |
171 | 'registrationFormWarningMessageSafetyCheckNotSelected':"Please read and check all the boxes below.", | 171 | 'registrationFormWarningMessageSafetyCheckNotSelected':"Please read and check all the boxes below.", |
172 | 'registrationFormWarningMessageTermsOfServiceCheckNotSelected':"You need to agree to the Terms of Service.", | 172 | 'registrationFormWarningMessageTermsOfServiceCheckNotSelected':"You need to agree to the Terms of Service.", |
173 | 173 | ||
174 | // Registration page - message panel | 174 | // Registration page - message panel |
175 | 'registrationMessagePanelInitialTitle': "Creating account …", | 175 | 'registrationMessagePanelInitialTitle': "Creating account …", |
176 | 'registrationMessagePanelInitialText': "---", | 176 | 'registrationMessagePanelInitialText': "---", |
177 | 'registrationMessagePanelInitialButtonLabel': "Cancel", | 177 | 'registrationMessagePanelInitialButtonLabel': "Cancel", |
178 | 'registrationMessagePanelRegistrationDoneTitle': "Registration", | 178 | 'registrationMessagePanelRegistrationDoneTitle': "Registration", |
179 | 'registrationMessagePanelRegistrationDoneText': "Done", | 179 | 'registrationMessagePanelRegistrationDoneText': "Done", |
180 | 'registrationMessagePanelFailureTitle': "Registration failed", | 180 | 'registrationMessagePanelFailureTitle': "Registration failed", |
181 | 'registrationMessagePanelFailureButtonLabel': "Close", | 181 | 'registrationMessagePanelFailureButtonLabel': "Close", |
182 | 182 | ||
183 | // Registration page - message panel - connection | 183 | // Registration page - message panel - connection |
184 | 'connectionRegistrationSendingRequestMessageText': "Verifying credentials", | 184 | 'connectionRegistrationSendingRequestMessageText': "Verifying credentials", |
185 | 'connectionRegistrationSendingCredentialsMessageText':"Sending credentials", | 185 | 'connectionRegistrationSendingCredentialsMessageText':"Sending credentials", |
186 | 186 | ||
187 | // Registration page - splash panel | 187 | // Registration page - splash panel |
188 | 'registrationSplashPanelTitle': "Security advice", | 188 | 'registrationSplashPanelTitle': "Security advice", |
189 | 'registrationSplashPanelDescription': "<p>These are your Clipperz credentials, take good care of them. Clipperz will never display your username and passphrase a second time!</p>", | 189 | 'registrationSplashPanelDescription': "<p>These are your Clipperz credentials, take good care of them. Clipperz will never display your username and passphrase a second time!</p>", |
190 | 'registrationSplashPanelUsernameLabel': "username", | 190 | 'registrationSplashPanelUsernameLabel': "username", |
191 | 'registrationSplashPanelPassphraseLabel':"passphrase", | 191 | 'registrationSplashPanelPassphraseLabel':"passphrase", |
192 | 192 | ||
193 | 'registrationSplashPanelShowPassphraseButtonLabel':"show passphrase", | 193 | 'registrationSplashPanelShowPassphraseButtonLabel':"show passphrase", |
194 | 194 | ||
195 | //Header links | 195 | //Header links |
196 | 'donateHeaderLinkLabel': "donate", | 196 | 'donateHeaderLinkLabel': "donate", |
197 | 'creditsHeaderLinkLabel': "credits", | 197 | 'creditsHeaderLinkLabel': "credits", |
198 | 'feedbackHeaderLinkLabel': "feedback", | 198 | 'feedbackHeaderLinkLabel': "feedback", |
199 | 'helpHeaderLinkLabel': "help", | 199 | 'helpHeaderLinkLabel': "help", |
200 | 'forumHeaderLinkLabel': "forum", | 200 | 'forumHeaderLinkLabel': "forum", |
201 | 201 | ||
202 | //Menu labels | 202 | //Menu labels |
203 | 'recordMenuLabel': "cards", | 203 | 'recordMenuLabel': "cards", |
204 | 'accountMenuLabel': "account", | 204 | 'accountMenuLabel': "account", |
205 | 'dataMenuLabel': "data", | 205 | 'dataMenuLabel': "data", |
206 | 'contactsMenuLabel': "contacts", | 206 | 'contactsMenuLabel': "contacts", |
207 | 'toolsMenuLabel': "tools", | 207 | 'toolsMenuLabel': "tools", |
208 | 'logoutMenuLabel': "logout", | 208 | 'logoutMenuLabel': "logout", |
209 | 'lockMenuLabel': "lock", | 209 | 'lockMenuLabel': "lock", |
210 | 210 | ||
211 | //Lock dialog | 211 | //Lock dialog |
212 | 'lockTitle': "The account is locked", | 212 | 'lockTitle': "The account is locked", |
213 | 'lockDescription': "<p>To unlock your account, please enter your passphrase.</p>", | 213 | 'lockDescription': "<p>To unlock your account, please enter your passphrase.</p>", |
214 | 'unlockButtonLabel': "Unlock", | 214 | 'unlockButtonLabel': "Unlock", |
215 | 215 | ||
216 | //Account panel - change passphrase | 216 | //Account panel - change passphrase |
217 | 'changePasswordTabLabel': "Change your passphrase", | 217 | 'changePasswordTabLabel': "Change your passphrase", |
218 | 'changePasswordTabTitle': "Change your passphrase", | 218 | 'changePasswordTabTitle': "Change your passphrase", |
219 | 219 | ||
220 | 'changePasswordFormUsernameLabel': "username", | 220 | 'changePasswordFormUsernameLabel': "username", |
221 | 'changePasswordFormOldPassphraseLabel': "old passphrase", | 221 | 'changePasswordFormOldPassphraseLabel': "old passphrase", |
222 | 'changePasswordFormNewPassphraseLabel': "new passphrase", | 222 | 'changePasswordFormNewPassphraseLabel': "new passphrase", |
223 | 'changePasswordFormRetypePassphraseLabel':"re-enter new passphrase", | 223 | 'changePasswordFormRetypePassphraseLabel':"re-enter new passphrase", |
224 | 'changePasswordFormSafetyCheckboxLabel':"I understand that Clipperz will not be able to recover a lost passphrase.", | 224 | 'changePasswordFormSafetyCheckboxLabel':"I understand that Clipperz will not be able to recover a lost passphrase.", |
225 | 'changePasswordFormSubmitLabel': "Change passphrase", | 225 | 'changePasswordFormSubmitLabel': "Change passphrase", |
226 | 226 | ||
227 | //Account panel - change passphrase - warning messages | 227 | //Account panel - change passphrase - warning messages |
228 | 'changePasswordFormWrongUsernameWarning': "Wrong username", | 228 | 'changePasswordFormWrongUsernameWarning': "Wrong username", |
229 | 'changePasswordFormWrongPassphraseWarning': "Wrong passphrase", | 229 | 'changePasswordFormWrongPassphraseWarning': "Wrong passphrase", |
230 | 'changePasswordFormWrongRetypePassphraseWarning':"Your passphrases don't match, please re-type them.", | 230 | 'changePasswordFormWrongRetypePassphraseWarning':"Your passphrases don't match, please re-type them.", |
231 | 'changePasswordFormSafetyCheckWarning': "Please read and check the box below.", | 231 | 'changePasswordFormSafetyCheckWarning': "Please read and check the box below.", |
232 | 232 | ||
233 | //Account panel - change passphrase - progress dialog | 233 | //Account panel - change passphrase - progress dialog |
234 | 'changePasswordFormProgressDialogTitle': "Changing user credentials", | 234 | 'changePasswordFormProgressDialogTitle': "Changing user credentials", |
235 | 'changePasswordFormProgressDialogEmptyText': "---", | 235 | 'changePasswordFormProgressDialogEmptyText': "---", |
236 | 'changePasswordFormProgressDialogConnectedMessageTitle': "Connected", | 236 | 'changePasswordFormProgressDialogConnectedMessageTitle': "Connected", |
237 | 'changePasswordFormProgressDialogConnectedMessageText': "Done", | 237 | 'changePasswordFormProgressDialogConnectedMessageText': "Done", |
238 | 'changePasswordFormProgressDialogErrorMessageTitle': "Error", | 238 | 'changePasswordFormProgressDialogErrorMessageTitle': "Error", |
239 | 'changePasswordFormProgressDialogErrorMessageText': "Credentials change failed!", | 239 | 'changePasswordFormProgressDialogErrorMessageText': "Credentials change failed!", |
240 | 240 | ||
241 | 'changeCredentialsPanelEncryptingDataMessageTitle': "Changing your passphrase", | 241 | 'changeCredentialsPanelEncryptingDataMessageTitle': "Changing your passphrase", |
242 | 'changeCredentialsPanelEncryptingDataMessageText': "Local encryption of card headers", | 242 | 'changeCredentialsPanelEncryptingDataMessageText': "Local encryption of card headers", |
243 | 'changeCredentialsPanelCreatingNewCredentialsMessageTitle': "Changing your passphrase", | 243 | 'changeCredentialsPanelCreatingNewCredentialsMessageTitle': "Changing your passphrase", |
244 | 'changeCredentialsPanelCreatingNewCredentialsMessageText': "Updating your credentials", | 244 | 'changeCredentialsPanelCreatingNewCredentialsMessageText': "Updating your credentials", |
245 | 'changeCredentialsPanelSendingNewCredentialsToTheServerMessageTitle':"Changing your passphrase", | 245 | 'changeCredentialsPanelSendingNewCredentialsToTheServerMessageTitle':"Changing your passphrase", |
246 | 'changeCredentialsPanelSendingNewCredentialsToTheServerMessageText':"Uploading your encrypted credentials to Clipperz", | 246 | 'changeCredentialsPanelSendingNewCredentialsToTheServerMessageText':"Uploading your encrypted credentials to Clipperz", |
247 | 'changeCredentialsPanelDoneMessageTitle': "Changing your passphrase", | 247 | 'changeCredentialsPanelDoneMessageTitle': "Changing your passphrase", |
248 | 'changeCredentialsPanelDoneMessageText': "Done", | 248 | 'changeCredentialsPanelDoneMessageText': "Done", |
249 | 249 | ||
250 | //Account panel - OTP | 250 | //Account panel - OTP |
251 | 'manageOTPTabLabel': "Manage your one-time passphrases", | 251 | 'manageOTPTabLabel': "Manage your one-time passphrases", |
252 | 'manageOTPTabTitle': "Manage your one-time passphrases", | 252 | 'manageOTPTabTitle': "Manage your one-time passphrases", |
253 | 253 | ||
254 | 'manageOTPTabDescription':"\ | 254 | 'manageOTPTabDescription':"\ |
255 | <p>A one-time passphrase works like your regular passphrase, but can be used only once.</p>\ | 255 | <p>A one-time passphrase works like your regular passphrase, but can be used only once.</p>\ |
256 | <p>If the same passphrase is used again at a later stage in a login attempt it will be rejected and the login process will fail.</p>\ | 256 | <p>If the same passphrase is used again at a later stage in a login attempt it will be rejected and the login process will fail.</p>\ |
257 | <p>Immediately after a successful login, your one-time passphrase will be deleted preventing any fraudulent access.</p>\ | 257 | <p>Immediately after a successful login, your one-time passphrase will be deleted preventing any fraudulent access.</p>\ |
258 | <p>One-time passphrases are an excellent choice if one is concerned about keyloggers or spyware infections that may be collecting data from compromised machines.</p>\ | 258 | <p>One-time passphrases are an excellent choice if one is concerned about keyloggers or spyware infections that may be collecting data from compromised machines.</p>\ |
259 | <p><b>It's strongly advisable to use one-time passphrases when accessing Clipperz from public terminals, such as Internet cafes and libraries.</b></p>", | 259 | <p><b>It's strongly advisable to use one-time passphrases when accessing Clipperz from public terminals, such as Internet cafes and libraries.</b></p>", |
260 | 260 | ||
261 | //Account panel - OTP - OTP table | 261 | //Account panel - OTP - OTP table |
262 | 'oneTimePasswordReadOnlyMessage': "\ | 262 | 'oneTimePasswordReadOnlyMessage': "\ |
263 | <h6>Sorry!</h6>\ | 263 | <h6>Sorry!</h6>\ |
264 | <p>You cannot manage your one-time passphrases when using the offline version of Clipperz.</p>", | 264 | <p>You cannot manage your one-time passphrases when using the offline version of Clipperz.</p>", |
265 | 265 | ||
266 | 'oneTimePasswordLoadingMessage':"\ | 266 | 'oneTimePasswordLoadingMessage':"\ |
267 | <h6>Loading data</h6>\ | 267 | <h6>Loading data</h6>\ |
268 | <p>Please wait …</p>", | 268 | <p>Please wait …</p>", |
269 | 269 | ||
270 | 'oneTimePasswordNoPasswordAvailable':"\ | 270 | 'oneTimePasswordNoPasswordAvailable':"\ |
271 | <h6>No one-time passphrase available</h6>\ | 271 | <h6>No one-time passphrase available</h6>\ |
272 | <p>Click the “New” button above to add one-time passphrases to your account.</p>", | 272 | <p>Click the “New” button above to add one-time passphrases to your account.</p>", |
273 | 273 | ||
274 | 'createNewOTPButtonLabel': "New", | 274 | 'createNewOTPButtonLabel': "New", |
275 | 'deleteOTPButtonLabel': "Delete", | 275 | 'deleteOTPButtonLabel': "Delete", |
276 | 'printOTPButtonLabel': "Print", | 276 | 'printOTPButtonLabel': "Print", |
277 | 277 | ||
278 | 'disabledOneTimePassword_warning': "disabled", | 278 | 'disabledOneTimePassword_warning': "disabled", |
279 | 279 | ||
280 | 'oneTimePasswordSelectionLink_selectLabel':"Select:", | 280 | 'oneTimePasswordSelectionLink_selectLabel':"Select:", |
281 | 'oneTimePasswordSelectionLink_all': "all", | 281 | 'oneTimePasswordSelectionLink_all': "all", |
282 | 'oneTimePasswordSelectionLink_none': "none", | 282 | 'oneTimePasswordSelectionLink_none': "none", |
283 | 'oneTimePasswordSelectionLink_used': "used", | 283 | 'oneTimePasswordSelectionLink_used': "used", |
284 | 'oneTimePasswordSelectionLink_unused': "unused", | 284 | 'oneTimePasswordSelectionLink_unused': "unused", |
285 | 285 | ||
286 | //Account panel - OTP - saving new OTP dialog | 286 | //Account panel - OTP - saving new OTP dialog |
287 | 'saveOTP_encryptUserDataTitle': "Saving one-time passphrase", | 287 | 'saveOTP_encryptUserDataTitle': "Saving one-time passphrase", |
288 | 'saveOTP_encryptUserDataText': "Processing new OTP credentials …", | 288 | 'saveOTP_encryptUserDataText': "Processing new OTP credentials …", |
289 | 'saveOTP_encryptOTPDataTitle': "Saving one-time passphrase", | 289 | 'saveOTP_encryptOTPDataTitle': "Saving one-time passphrase", |
290 | 'saveOTP_encryptOTPDataText': "Local encryption of authentication data …", | 290 | 'saveOTP_encryptOTPDataText': "Local encryption of authentication data …", |
291 | 'saveOTP_sendingDataTitle': "Saving one-time passphrase", | 291 | 'saveOTP_sendingDataTitle': "Saving one-time passphrase", |
292 | 'saveOTP_sendingDataText': "Sending authentication data to the server …", | 292 | 'saveOTP_sendingDataText': "Sending authentication data to the server …", |
293 | 'saveOTP_updatingInterfaceTitle': "Saving one-time passphrase", | 293 | 'saveOTP_updatingInterfaceTitle': "Saving one-time passphrase", |
294 | 'saveOTP_updatingInterfaceText': "Updating interface", | 294 | 'saveOTP_updatingInterfaceText': "Updating interface", |
295 | 295 | ||
296 | // Account panel - preferences | 296 | // Account panel - preferences |
297 | 'accountPreferencesLabel': "Preferences", | 297 | 'accountPreferencesLabel': "Preferences", |
298 | 'accountPreferencesTabTitle': "Preferences", | 298 | 'accountPreferencesTabTitle': "Preferences", |
299 | 299 | ||
300 | 'accountPreferencesLanguageTitle': "Language", | 300 | 'accountPreferencesLanguageTitle': "Language", |
301 | 'accountPreferencesLanguageDescription':"<p>Choose your preferred language from the list below.</p>", | 301 | 'accountPreferencesLanguageDescription':"<p>Choose your preferred language from the list below.</p>", |
302 | 302 | ||
303 | 'showDonationReminderPanelTitle': "Donation reminders", | 303 | 'showDonationReminderPanelTitle': "Donation reminders", |
304 | 'showDonationReminderPanelDescription': "<p>Show donation reminders</p>", | 304 | 'showDonationReminderPanelDescription': "<p>Show donation reminders</p>", |
305 | 305 | ||
306 | 'saveUserPreferencesFormSubmitLabel': "Save", | 306 | 'saveUserPreferencesFormSubmitLabel': "Save", |
307 | 'cancelUserPreferencesFormSubmitLabel': "Cancel", | 307 | 'cancelUserPreferencesFormSubmitLabel': "Cancel", |
308 | 308 | ||
309 | // Account panel - preferences - saving dialog | 309 | // Account panel - preferences - saving dialog |
310 | 'accountPreferencesSavingPanelTitle_Step1': "Saving preferences", | 310 | 'accountPreferencesSavingPanelTitle_Step1': "Saving preferences", |
311 | 'accountPreferencesSavingPanelText_Step1': "Local encryption of your preferences", | 311 | 'accountPreferencesSavingPanelText_Step1': "Local encryption of your preferences", |
312 | 'accountPreferencesSavingPanelTitle_Step2': "Saving preferences", | 312 | 'accountPreferencesSavingPanelTitle_Step2': "Saving preferences", |
313 | 'accountPreferencesSavingPanelText_Step2': "Sending encrypted preferences to Clipperz", | 313 | 'accountPreferencesSavingPanelText_Step2': "Sending encrypted preferences to Clipperz", |
314 | 314 | ||
315 | //Account panel - login history | 315 | //Account panel - login history |
316 | 'accountLoginHistoryLabel': "Login history", | 316 | 'accountLoginHistoryLabel': "Login history", |
317 | 'loginHistoryTabTitle': "Login history", | 317 | 'loginHistoryTabTitle': "Login history", |
318 | 318 | ||
319 | 'loginHistoryReadOnlyMessage': "\ | 319 | 'loginHistoryReadOnlyMessage': "\ |
320 | <h6>Sorry!</h6>\ | 320 | <h6>Sorry!</h6>\ |
321 | <p>The login history is not available while using the offline version of Clipperz.</p>", | 321 | <p>The login history is not available while using the offline version of Clipperz.</p>", |
322 | 322 | ||
323 | 'loginHistoryLoadingMessage': "\ | 323 | 'loginHistoryLoadingMessage': "\ |
324 | <h6>Loading data</h6>\ | 324 | <h6>Loading data</h6>\ |
325 | <p>Please wait …</p>", | 325 | <p>Please wait …</p>", |
326 | 326 | ||
327 | 'loginHistoryLoadedMessage': "\ | 327 | 'loginHistoryLoadedMessage': "\ |
328 | <h6>Your latest 10 logins</h6>\ | 328 | <h6>Your latest 10 logins</h6>\ |
329 | <p></p>", | 329 | <p></p>", |
330 | 330 | ||
331 | 'loginHistoryIPLabel': "IP", | 331 | 'loginHistoryIPLabel': "IP", |
332 | 'loginHistoryTimeLabel': "date", | 332 | 'loginHistoryTimeLabel': "date", |
333 | 'loginHistoryCurrentSessionText': "current session", | 333 | 'loginHistoryCurrentSessionText': "current session", |
334 | 'loginHistoryReloadButtonLabel': "Reload login history", | 334 | 'loginHistoryReloadButtonLabel': "Reload login history", |
335 | 335 | ||
336 | //Account panel - delete account | 336 | //Account panel - delete account |
337 | 'deleteAccountTabLabel': "Delete your account", | 337 | 'deleteAccountTabLabel': "Delete your account", |
338 | 'deleteAccountTabTitle': "Delete your account", | 338 | 'deleteAccountTabTitle': "Delete your account", |
339 | 339 | ||
340 | 'deleteAccountFormUsernameLabel': "username", | 340 | 'deleteAccountFormUsernameLabel': "username", |
341 | 'deleteAccountFormPassphraseLabel': "passphrase", | 341 | 'deleteAccountFormPassphraseLabel': "passphrase", |
342 | 'deleteAccountFormSafetyCheckboxLabel': "I understand that all my data will be deleted and that this action is irreversible.", | 342 | 'deleteAccountFormSafetyCheckboxLabel': "I understand that all my data will be deleted and that this action is irreversible.", |
343 | 'deleteAccountFormSubmitLabel': "Delete my account", | 343 | 'deleteAccountFormSubmitLabel': "Delete my account", |
344 | 344 | ||
345 | //Account panel - delete account - warnings | 345 | //Account panel - delete account - warnings |
346 | 'deleteAccountFormWrongUsernameWarning':"Wrong username", | 346 | 'deleteAccountFormWrongUsernameWarning':"Wrong username", |
347 | 'deleteAccountFormWrongPassphraseWarning':"Wrong passphrase", | 347 | 'deleteAccountFormWrongPassphraseWarning':"Wrong passphrase", |
348 | 'deleteAccountFormSafetyCheckWarning': "Please read and check the box below.", | 348 | 'deleteAccountFormSafetyCheckWarning': "Please read and check the box below.", |
349 | 349 | ||
350 | //Account panel - delete account - confirmation | 350 | //Account panel - delete account - confirmation |
351 | 'accountPanelDeletingAccountPanelConfirmationTitle':"ATTENTION", | 351 | 'accountPanelDeletingAccountPanelConfirmationTitle':"ATTENTION", |
352 | 'accountPanelDeleteAccountPanelConfirmationText': "Are your sure you want to delete your account?", | 352 | 'accountPanelDeleteAccountPanelConfirmationText': "Are your sure you want to delete your account?", |
353 | 'accountPanelDeleteAccountPanelConfirmButtonLabel': "Yes", | 353 | 'accountPanelDeleteAccountPanelConfirmButtonLabel': "Yes", |
354 | 'accountPanelDeleteAccountPanelDenyButtonLabel': "No", | 354 | 'accountPanelDeleteAccountPanelDenyButtonLabel': "No", |
355 | 355 | ||
356 | //Account panel - delete account - confirmation | 356 | //Account panel - delete account - confirmation |
357 | 'accountPanelDeletingAccountPanelProgressTitle': "Deleting the account data", | 357 | 'accountPanelDeletingAccountPanelProgressTitle': "Deleting the account data", |
358 | 'accountPanelDeletingAccountPanelProgressText': "The operation could take long, please be patient.", | 358 | 'accountPanelDeletingAccountPanelProgressText': "The operation could take long, please be patient.", |
359 | 359 | ||
360 | //Data panel - offline copy | 360 | //Data panel - offline copy |
361 | 'offlineCopyTabLabel': "Offline copy", | 361 | 'offlineCopyTabLabel': "Offline copy", |
362 | 'offlineCopyTabTitle': "Offline copy", | 362 | 'offlineCopyTabTitle': "Offline copy", |
363 | 363 | ||
364 | 'offlineCopyTabDescription': "\ | 364 | 'offlineCopyTabDescription': "\ |
365 | <!-- FIX CSS DONE! -->\ | 365 | <!-- FIX CSS DONE! -->\ |
366 | <p>With just one click you can dump all your encrypted data from Clipperz servers to your hard disk and create a read-only offline version of Clipperz to be used when you are not connected to the Internet.</p>\ | 366 | <p>With just one click you can dump all your encrypted data from Clipperz servers to your hard disk and create a read-only offline version of Clipperz to be used when you are not connected to the Internet.</p>\ |
367 | <p>The read-only version is as secure as the read-and-write one and will not expose your data to higher risks since they both share the same code and security architecture.</p>\ | 367 | <p>The read-only version is as secure as the read-and-write one and will not expose your data to higher risks since they both share the same code and security architecture.</p>\ |
368 | <ol>\ | 368 | <ol>\ |
369 | <li><p>Click the link below to start the download.</p></li>\ | 369 | <li><p>Click the link below to start the download.</p></li>\ |
370 | <li><p>The browser will ask you what to do with the “Clipperz_YYYYMMDD.html” file. Save it on your hard disk.</p></li>\ | 370 | <li><p>The browser will ask you what to do with the “Clipperz_YYYYMMDD.html” file. Save it on your hard disk.</p></li>\ |
371 | <li><p>Double click on the downloaded file to launch the offline version in your browser.</p></li>\ | 371 | <li><p>Double click on the downloaded file to launch the offline version in your browser.</p></li>\ |
372 | <li><p>Enter the usual username and passphrase.</p></li>\ | 372 | <li><p>Enter the usual username and passphrase.</p></li>\ |
373 | </ol>", | 373 | </ol>", |
374 | 374 | ||
375 | 'offlineCopyDownloadLinkLabel': "Download", | 375 | 'offlineCopyDownloadLinkLabel': "Download", |
376 | 376 | ||
377 | //Data panel - offline copy - not updated | 377 | //Data panel - offline copy - not updated |
378 | 'offlineCopyDownloadWarning': "\ | 378 | 'offlineCopyDownloadWarning': "\ |
379 | <!-- FIX CSS DONE! -->\ | 379 | <!-- FIX CSS DONE! -->\ |
380 | <h4><a href=\"#\" id=\"offlineCopyDownloadWarningLink\">Update your “offline copy”!</a></h4>\ | 380 | <h4><a href=\"#\" id=\"offlineCopyDownloadWarningLink\">Update your “offline copy”!</a></h4>\ |
381 | <p>You have recently created or modified one or more cards, it would be wise to download a new copy of the offline version.</p>", | 381 | <p>You have recently created or modified one or more cards, it would be wise to download a new copy of the offline version.</p>", |
382 | 382 | ||
383 | 'offlineCopyDownloadOk': "", | 383 | 'offlineCopyDownloadOk': "", |
384 | 384 | ||
385 | //Data panel - sharing | 385 | //Data panel - sharing |
386 | 'sharingTabLabel': "Sharing", | 386 | 'sharingTabLabel': "Sharing", |
387 | 'sharingTabTitle': "Sharing", | 387 | 'sharingTabTitle': "Sharing", |
388 | 388 | ||
389 | 'sharingTabDescription': "\ | 389 | 'sharingTabDescription': "\ |
390 | <p>Quite often a confidential piece of information needs to be shared with one or more persons.</p>\ | 390 | <p>Quite often a confidential piece of information needs to be shared with one or more persons.</p>\ |
391 | <p>This could be as simple as giving your colleague the access code of your voice mailbox when you are out of the office, or as complicated as enabling the entitled heirs to access your safe deposit box at the local bank when you pass on.</p>\ | 391 | <p>This could be as simple as giving your colleague the access code of your voice mailbox when you are out of the office, or as complicated as enabling the entitled heirs to access your safe deposit box at the local bank when you pass on.</p>\ |
392 | <p>Clipperz can make sharing your secrets a secure and straightforward process.</p>\ | 392 | <p>Clipperz can make sharing your secrets a secure and straightforward process.</p>\ |
393 | <p></p>\ | 393 | <p></p>\ |
394 | <p><b>Coming soon …</b></p>", | 394 | <p><b>Coming soon …</b></p>", |
395 | 395 | ||
396 | // Data panel - import | 396 | // Data panel - import |
397 | 'importTabLabel': "Import", | 397 | 'importTabLabel': "Import", |
398 | 'importTabTitle': "Import", | 398 | 'importTabTitle': "Import", |
399 | 399 | ||
400 | 'importTabDescription': "<p>You can bulk import data to your Clipperz account from several file formats.</p>", | 400 | 'importTabDescription': "<p>You can bulk import data to your Clipperz account from several file formats.</p>", |
401 | 401 | ||
402 | //Data panel - export | 402 | //Data panel - export |
403 | 'printingTabLabel': "Export", | 403 | 'printingTabLabel': "Export", |
404 | 'printingTabTitle': "Export", | 404 | 'printingTabTitle': "Export", |
405 | 405 | ||
406 | 'printingTabDescription': "\ | 406 | 'printingTabDescription': "\ |
407 | <h5>Printing</h5>\ | 407 | <h5>Printing</h5>\ |
408 | <p>Click on the link below to open a new window displaying all your cards in a printable format.</p>\ | 408 | <p>Click on the link below to open a new window displaying all your cards in a printable format.</p>\ |
409 | <p>If you are going to print for backup purposes, please consider the safer option provided by the “offline copy”.</p>", | 409 | <p>If you are going to print for backup purposes, please consider the safer option provided by the “offline copy”.</p>", |
410 | 410 | ||
411 | 'printingLinkLabel': "Printable version", | 411 | 'printingLinkLabel': "Printable version", |
412 | 412 | ||
413 | 'exportTabDescription': "\ | 413 | 'exportTabDescription': "\ |
414 | <h5>Exporting to JSON</h5>\ | 414 | <h5>Exporting to JSON</h5>\ |
415 | <p>JSON enables a “lossless” export of your cards. All the information will be preserved, including direct login configurations.</p>\ | 415 | <p>JSON enables a “lossless” export of your cards. All the information will be preserved, including direct login configurations.</p>\ |
416 | <p>This custom format it’s quite convenient if you need to move some of all of your cards to a different Clipperz account. Or if you want to restore a card that has been accidentally deleted.</p>\ | 416 | <p>This custom format it’s quite convenient if you need to move some of all of your cards to a different Clipperz account. Or if you want to restore a card that has been accidentally deleted.</p>\ |
417 | <p>Click on the link below to start the export process.</p>", | 417 | <p>Click on the link below to start the export process.</p>", |
418 | 418 | ||
419 | 'exportLinkLabel': "Export to JSON", | 419 | 'exportLinkLabel': "Export to JSON", |
420 | 420 | ||
421 | 'exportDataInProgressDescription':"<h4>Exporting, please wait while your data are being processed …</h4>", | 421 | 'exportDataInProgressDescription':"<h4>Exporting, please wait while your data are being processed …</h4>", |
422 | 422 | ||
423 | 'exportDataDescription': "\ | 423 | 'exportDataDescription': "\ |
424 | <h4>Instructions</h4>\ | 424 | <h4>Instructions</h4>\ |
425 | <p>Copy the text below to your favorite editor and save it. (e.g. “clipperz_export_20071217.json”)</p>", | 425 | <p>Copy the text below to your favorite editor and save it. (e.g. “clipperz_export_20071217.json”)</p>", |
426 | 426 | ||
427 | //Contacts panel | 427 | //Contacts panel |
428 | 'contactsTabLabel': "Contacts", | 428 | 'contactsTabLabel': "Contacts", |
429 | 'contactsTabTitle': "Contacts", | 429 | 'contactsTabTitle': "Contacts", |
430 | 430 | ||
431 | //Tools panel - password generator | 431 | //Tools panel - password generator |
432 | 'passwordGeneratorTabLabel': "Password generator", | 432 | 'passwordGeneratorTabLabel': "Password generator", |
433 | 'bookmarkletTabLabel': "Bookmarklet", | 433 | 'bookmarkletTabLabel': "Bookmarklet", |
434 | 'compactTabLabel': "Compact edition", | 434 | 'compactTabLabel': "Compact edition", |
435 | 'httpAuthTabLabel': "HTTP authentication", | 435 | 'httpAuthTabLabel': "HTTP authentication", |
436 | 436 | ||
437 | 'passwordGeneratorTabTitle': "Password generator", | 437 | 'passwordGeneratorTabTitle': "Password generator", |
438 | 'bookmarkletTabTitle': "Bookmarklet", | 438 | 'bookmarkletTabTitle': "Bookmarklet", |
439 | 'compactTabTitle': "Compact edition", | 439 | 'compactTabTitle': "Compact edition", |
440 | 'httpAuthTabTitle': "HTTP authentication", | 440 | 'httpAuthTabTitle': "HTTP authentication", |
441 | 441 | ||
442 | 442 | ||
443 | //Tools panel - password generator - description | 443 | //Tools panel - password generator - description |
444 | 'paswordGeneratorTabDescription':"<p></p>", | 444 | 'paswordGeneratorTabDescription':"<p></p>", |
445 | 'passwordGeneratorTabButtonLabel':"Generate password", | 445 | 'passwordGeneratorTabButtonLabel':"Generate password", |
446 | 446 | ||
447 | //Tools panel - bookmarklet | 447 | //Tools panel - bookmarklet |
448 | 'bookmarkletTabLabel': "Bookmarklet", | 448 | 'bookmarkletTabLabel': "Bookmarklet", |
449 | 'bookmarkletTabTitle': "Bookmarklet", | 449 | 'bookmarkletTabTitle': "Bookmarklet", |
450 | 450 | ||
451 | 'bookmarkletTabDescription': "\ | 451 | 'bookmarkletTabDescription': "\ |
452 | <!-- FIX CSS DONE! -->\ | 452 | <!-- FIX CSS DONE! -->\ |
453 | <p>A bookmarklet is a simple “one-click” tool that can perform very useful tasks. It can be saved and used like a normal web page bookmark.</p>\ | 453 | <p>A bookmarklet is a simple “one-click” tool that can perform very useful tasks. It can be saved and used like a normal web page bookmark.</p>\ |
454 | <p>The Clipperz bookmarklet will help you to quickly create new cards and new “direct logins” within existing cards.</p>\ | 454 | <p>The Clipperz bookmarklet will help you to quickly create new cards and new “direct logins” within existing cards.</p>\ |
455 | <p><b>Please note that the bookmarklet does not include any information related to your account (e.g. your username or passphrase), the bookmarklet is a general tool containing the same code for every Clipperz user.</b></p>\ | 455 | <p><b>Please note that the bookmarklet does not include any information related to your account (e.g. your username or passphrase), the bookmarklet is a general tool containing the same code for every Clipperz user.</b></p>\ |
456 | <h3>How to install the bookmarklet</h3>\ | 456 | <h3>How to install the bookmarklet</h3>\ |
457 | <h>Firefox, Camino, Opera, Safari</h5>\ | 457 | <h>Firefox, Camino, Opera, Safari</h5>\ |
458 | <ol>\ | 458 | <ol>\ |
459 | <li><p>Make sure that the “Bookmarks Bar” is displayed by selecting “View > Toolbars > Bookmarks”, or similar menu items, from the browser menu.</p></li>\ | 459 | <li><p>Make sure that the “Bookmarks Bar” is displayed by selecting “View > Toolbars > Bookmarks”, or similar menu items, from the browser menu.</p></li>\ |
460 | <li><p>Drag and drop the “Add to Clipperz” link below to the bookmark bar.</p></li>\ | 460 | <li><p>Drag and drop the “Add to Clipperz” link below to the bookmark bar.</p></li>\ |
461 | </ol>\ | 461 | </ol>\ |
462 | \ | 462 | \ |
463 | <h5>Internet Explorer</h5>\ | 463 | <h5>Internet Explorer</h5>\ |
464 | <ol>\ | 464 | <ol>\ |
465 | <li><p>Make sure that the “Links” toolbar is displayed by selecting “View > Toolbars > Links” from the browser menu.</p></li>\ | 465 | <li><p>Make sure that the “Links” toolbar is displayed by selecting “View > Toolbars > Links” from the browser menu.</p></li>\ |
466 | <li><p>Right-click on the “Add to Clipperz” link below.</p></li>\ | 466 | <li><p>Right-click on the “Add to Clipperz” link below.</p></li>\ |
467 | <li><p>Select “Add to favorites” from the contextual menu.</p></li>\ | 467 | <li><p>Select “Add to favorites” from the contextual menu.</p></li>\ |
468 | <li><p>Click “Yes” for any security message that pops up.</p></li>\ | 468 | <li><p>Click “Yes” for any security message that pops up.</p></li>\ |
469 | <li><p>Open the “Links” folder and click “OK”</p></li>\ | 469 | <li><p>Open the “Links” folder and click “OK”</p></li>\ |
470 | </ol>", | 470 | </ol>", |
471 | 471 | ||
472 | 'bookmarkletTabBookmarkletTitle':"Add to Clipperz", | 472 | 'bookmarkletTabBookmarkletTitle':"Add to Clipperz", |
473 | 473 | ||
474 | //Tools panel - bookmarklet - instructions | 474 | //Tools panel - bookmarklet - instructions |
475 | 'bookmarkletTabInstructions': "\ | 475 | 'bookmarkletTabInstructions': "\ |
476 | <!-- FIX CSS DONE! -->\ | 476 | <!-- FIX CSS DONE! -->\ |
477 | <h3>How to create a new card inclusive of a “direct login” link to an online service</h3>\ | 477 | <h3>How to create a new card inclusive of a “direct login” link to an online service</h3>\ |
478 | <ol>\ | 478 | <ol>\ |
479 | <li><p>Open the web page where the login form is hosted. (this is the page where you usually enter your sign-in credentials)</p></li>\ | 479 | <li><p>Open the web page where the login form is hosted. (this is the page where you usually enter your sign-in credentials)</p></li>\ |
480 | <li><p>Launch the bookmarklet by clicking on it: a pop-up window will appear over the web page.</p></li>\ | 480 | <li><p>Launch the bookmarklet by clicking on it: a pop-up window will appear over the web page.</p></li>\ |
481 | <li><p>Copy to the clipboard the content of the large text area within the pop-up. (ctrl-C)</p></li>\ | 481 | <li><p>Copy to the clipboard the content of the large text area within the pop-up. (ctrl-C)</p></li>\ |
482 | <li><p>Enter your Clipperz account and click on the <b>Add new card</b> button.</p></li>\ | 482 | <li><p>Enter your Clipperz account and click on the <b>Add new card</b> button.</p></li>\ |
483 | <li><p>Select the “Direct login” template and paste the content of the clipboard to the large text area in the form. (ctrl-V)</p></li>\ | 483 | <li><p>Select the “Direct login” template and paste the content of the clipboard to the large text area in the form. (ctrl-V)</p></li>\ |
484 | <li><p>Press the <b>Create</b> button, complete and review the details, then click <b>Save</b>.</p></li>\ | 484 | <li><p>Press the <b>Create</b> button, complete and review the details, then click <b>Save</b>.</p></li>\ |
485 | </ol>\ | 485 | </ol>\ |
486 | \ | 486 | \ |
487 | <h3>How to add a “direct login” link to an existing card</h3>\ | 487 | <h3>How to add a “direct login” link to an existing card</h3>\ |
488 | <ol>\ | 488 | <ol>\ |
489 | <li><p>Same as above.</p></li>\ | 489 | <li><p>Same as above.</p></li>\ |
490 | <li><p>Same as above.</p></li>\ | 490 | <li><p>Same as above.</p></li>\ |
491 | <li><p>Same as above.</p></li>\ | 491 | <li><p>Same as above.</p></li>\ |
492 | <li><p>Enter your Clipperz account and select the card containing the credentials for the web service you just visited and click the <b>Edit</b> button.</p></li>\ | 492 | <li><p>Enter your Clipperz account and select the card containing the credentials for the web service you just visited and click the <b>Edit</b> button.</p></li>\ |
493 | <li><p>Paste the content of the clipboard to the large text area in the “Direct logins” section. (ctrl-V)</p></li>\ | 493 | <li><p>Paste the content of the clipboard to the large text area in the “Direct logins” section. (ctrl-V)</p></li>\ |
494 | <li><p>Press the <b>Add direct login</b> button, review the details and then click <b>Save</b>.</p></li>\ | 494 | <li><p>Press the <b>Add direct login</b> button, review the details and then click <b>Save</b>.</p></li>\ |
495 | </ol>\ | 495 | </ol>\ |
496 | \ | 496 | \ |
497 | <p></p>\ | 497 | <p></p>\ |
498 | <p>Further information about the bookmarklet are <a href=\"http://www.clipperz.com/support/user_guide/bookmarklet\" target=\"_blank\">available here</a>.</p>", | 498 | <p>Further information about the bookmarklet are <a href=\"http://www.clipperz.com/support/user_guide/bookmarklet\" target=\"_blank\">available here</a>.</p>", |
499 | 499 | ||
500 | //Tools panel - Compact - instructions | 500 | //Tools panel - Compact - instructions |
501 | 'compactTabDescription': "\ | 501 | 'compactTabDescription': "\ |
502 | <!-- FIX CSS DONE! -->\ | 502 | <!-- FIX CSS DONE! -->\ |
503 | <p>Clipperz Compact is a special version of Clipperz designed to be opened in the Firefox sidebar.</p>\ | 503 | <p>Clipperz Compact is a special version of Clipperz designed to be opened in the Firefox sidebar.</p>\ |
504 | <p>Its purpose is to keep your collection of “direct logins” always at hand. Read more <a href=\"http://www.clipperz.com/support/user_guide/clipperz_compact\", target=\"blank\">here</a></p>\ | 504 | <p>Its purpose is to keep your collection of “direct logins” always at hand. Read more <a href=\"http://www.clipperz.com/support/user_guide/clipperz_compact\", target=\"blank\">here</a></p>\ |
505 | \ | 505 | \ |
506 | <h3>How to launch Clipperz Compact in the sidebar</h3>\ | 506 | <h3>How to launch Clipperz Compact in the sidebar</h3>\ |
507 | <ol>\ | 507 | <ol>\ |
508 | <li><p>Get Firefox! Sidebars are only available in Firefox and you need to switch to Firefox in order to enjoy the convenience of Clipperz Compact.</p></li>\ | 508 | <li><p>Get Firefox! Sidebars are only available in Firefox and you need to switch to Firefox in order to enjoy the convenience of Clipperz Compact.</p></li>\ |
509 | <li>\ | 509 | <li>\ |
510 | <p>Add the following URL to Firefox bookmarks, or even better, drag it to the bookmark bar.</p>\ | 510 | <p>Add the following URL to Firefox bookmarks, or even better, drag it to the bookmark bar.</p>\ |
511 | <div id=\"compactLinkBox\"><a href=\"https://www.clipperz.com/beta/index.html?compact\" target=\"_search\">Clipperz Compact</a></div>\ | 511 | <div id=\"compactLinkBox\"><a href=\"index.html?compact\" target=\"_search\">Clipperz Compact</a></div>\ |
512 | </li>\ | 512 | </li>\ |
513 | <li><p>Change the properties of the bookmark so that “load this bookmark in the sidebar” is checked.</p></li>\ | 513 | <li><p>Change the properties of the bookmark so that “load this bookmark in the sidebar” is checked.</p></li>\ |
514 | </ol>\ | 514 | </ol>\ |
515 | \ | 515 | \ |
516 | <h5>Added bonus: Clipperz Compact works also in Opera’s panel.</h5>", | 516 | <h5>Added bonus: Clipperz Compact works also in Opera’s panel.</h5>", |
517 | 517 | ||
518 | //Tools panel - HTTP authentication - instructions | 518 | //Tools panel - HTTP authentication - instructions |
519 | 'httpAuthTabDescription': "\ | 519 | 'httpAuthTabDescription': "\ |
520 | <!-- FIX CSS DONE! -->\ | 520 | <!-- FIX CSS DONE! -->\ |
521 | <p>HTTP authentication is a method designed to allow a web browser to provide credentials – in the form of a username and password – including them in a website address (HTTP or HTTPS URL).</p>\ | 521 | <p>HTTP authentication is a method designed to allow a web browser to provide credentials – in the form of a username and password – including them in a website address (HTTP or HTTPS URL).</p>\ |
522 | <p>Nowadays it is rarely used, but it can still be found on small, private websites. You can tell that a website is protected by HTTP authentication when the browser displays a pop-up window to enter username and password.</p>\ | 522 | <p>Nowadays it is rarely used, but it can still be found on small, private websites. You can tell that a website is protected by HTTP authentication when the browser displays a pop-up window to enter username and password.</p>\ |
523 | <p>Unfortunately the Clipperz bookmarklet does not work on websites that use HTTP authentication. However you can still create a “direct login”.</p>\ | 523 | <p>Unfortunately the Clipperz bookmarklet does not work on websites that use HTTP authentication. However you can still create a “direct login”.</p>\ |
524 | \ | 524 | \ |
525 | <h3>How to create a “direct login” for a website that uses HTTP authentication</h3>\ | 525 | <h3>How to create a “direct login” for a website that uses HTTP authentication</h3>\ |
526 | <ol>\ | 526 | <ol>\ |
527 | <li><p>Store website URL, username and password in a new card.</p></li>\ | 527 | <li><p>Store website URL, username and password in a new card.</p></li>\ |
528 | <li><p>Copy the configuration below and paste it to the large text area in the “Direct logins” section of the new card.</p></li>\ | 528 | <li><p>Copy the configuration below and paste it to the large text area in the “Direct logins” section of the new card.</p></li>\ |
529 | <li><p>Press the <b>Add direct login</b> button, bind URL, username and password fields and then click <b>Save</b>.</p></li>\ | 529 | <li><p>Press the <b>Add direct login</b> button, bind URL, username and password fields and then click <b>Save</b>.</p></li>\ |
530 | </ol>\ | 530 | </ol>\ |
531 | \ | 531 | \ |
532 | <h5><a href=\"http://support.microsoft.com/kb/834489\" target=\"_blank\">Warning: Internet Explorer does not support HTTP authentication.</a></h5>", | 532 | <h5><a href=\"http://support.microsoft.com/kb/834489\" target=\"_blank\">Warning: Internet Explorer does not support HTTP authentication.</a></h5>", |
533 | 533 | ||
534 | // Direct logins block | 534 | // Direct logins block |
535 | 'mainPanelDirectLoginBlockLabel': "Direct logins", | 535 | 'mainPanelDirectLoginBlockLabel': "Direct logins", |
536 | 'directLinkReferenceShowButtonLabel': "show", | 536 | 'directLinkReferenceShowButtonLabel': "show", |
537 | 537 | ||
538 | // Direct logins - blank slate | 538 | // Direct logins - blank slate |
539 | 'mainPanelDirectLoginBlockDescription': "\ | 539 | 'mainPanelDirectLoginBlockDescription': "\ |
540 | <!-- FIX CSS DONE! -->\ | 540 | <!-- FIX CSS DONE! -->\ |
541 | <p>Add “direct logins” to sign in to your web accounts without typing usernames and passwords!</p>\ | 541 | <p>Add “direct logins” to sign in to your web accounts without typing usernames and passwords!</p>\ |
542 | <p>“Direct logins” greatly enhance your password security since you can:</p>\ | 542 | <p>“Direct logins” greatly enhance your password security since you can:</p>\ |
543 | <ul>\ | 543 | <ul>\ |
544 | <li><p>conveniently adopt and enter complex passwords;</p></li>\ | 544 | <li><p>conveniently adopt and enter complex passwords;</p></li>\ |
545 | <li><p>never re-use the same and easy-to-guess password.</p></li>\ | 545 | <li><p>never re-use the same and easy-to-guess password.</p></li>\ |
546 | </ul>\ | 546 | </ul>\ |
547 | <p>Simple and quick configuration with the <b>Clipperz bookmarklet</b>.</p>\ | 547 | <p>Simple and quick configuration with the <b>Clipperz bookmarklet</b>.</p>\ |
548 | <a href=\"http://www.clipperz.com/support/user_guide/direct_logins\" target=\"_blank\">Learn more about “direct logins”</a>", | 548 | <a href=\"http://www.clipperz.com/support/user_guide/direct_logins\" target=\"_blank\">Learn more about “direct logins”</a>", |
549 | 549 | ||
550 | // Cards block | 550 | // Cards block |
551 | 'mainPanelRecordsBlockLabel': "Cards", | 551 | 'mainPanelRecordsBlockLabel': "Cards", |
552 | 'mainPanelAddRecordButtonLabel': "Add new card", | 552 | 'mainPanelAddRecordButtonLabel': "Add new card", |
553 | 'mainPanelRemoveRecordButtonLabel': "Delete card", | 553 | 'mainPanelRemoveRecordButtonLabel': "Delete card", |
554 | 554 | ||
555 | // Cards block - filter tabs | 555 | // Cards block - filter tabs |
556 | 'mainPanelRecordFilterBlockAllLabel': "all", | 556 | 'mainPanelRecordFilterBlockAllLabel': "all", |
557 | 'mainPanelRecordFilterBlockTagsLabel': "tags", | 557 | 'mainPanelRecordFilterBlockTagsLabel': "tags", |
558 | 'mainPanelRecordFilterBlockSearchLabel':"search", | 558 | 'mainPanelRecordFilterBlockSearchLabel':"search", |
559 | 559 | ||
560 | // Cards block - blank slate | 560 | // Cards block - blank slate |
561 | 'recordDetailNoRecordAtAllTitle': "Welcome to Clipperz!", | 561 | 'recordDetailNoRecordAtAllTitle': "Welcome to Clipperz!", |
562 | 'recordDetailNoRecordAtAllDescription': "\ | 562 | 'recordDetailNoRecordAtAllDescription': "\ |
563 | <h5>Get started by adding cards to your account.</h5>\ | 563 | <h5>Get started by adding cards to your account.</h5>\ |
564 | <p>Cards are simple and flexible forms where you can store your passwords and any other confidential data.</p>\ | 564 | <p>Cards are simple and flexible forms where you can store your passwords and any other confidential data.</p>\ |
565 | <p>Cards could contain credentials for accessing a web site, the combination of your bicycle lock, details of your credit card, …</p>\ | 565 | <p>Cards could contain credentials for accessing a web site, the combination of your bicycle lock, details of your credit card, …</p>\ |
566 | \ | 566 | \ |
567 | <h5>Don't forget the Clipperz bookmarklet!</h5>\ | 567 | <h5>Don't forget the Clipperz bookmarklet!</h5>\ |
568 | <p>Before you start, install the “Add to Clipperz” bookmarklet: it will make creating cards easier and more fun.</p>\ | 568 | <p>Before you start, install the “Add to Clipperz” bookmarklet: it will make creating cards easier and more fun.</p>\ |
569 | <p>Go to the “Tools” tab to discover how to install it and how it use it.</p>\ | 569 | <p>Go to the “Tools” tab to discover how to install it and how it use it.</p>\ |
570 | <p></p>\ | 570 | <p></p>\ |
571 | <p>Then simply click the <b>\"Add new card\"</b> button and enjoy your Clipperz account.</p>\ | 571 | <p>Then simply click the <b>\"Add new card\"</b> button and enjoy your Clipperz account.</p>\ |
572 | <p></p>\ | 572 | <p></p>\ |
573 | <a href=\"http://www.clipperz.com/support/user_guide/managing_cards\" target=\"_blank\">Learn more about creating and managing cards</a>", | 573 | <a href=\"http://www.clipperz.com/support/user_guide/managing_cards\" target=\"_blank\">Learn more about creating and managing cards</a>", |
574 | 574 | ||
575 | // Cards block - new card wizard - bookmarklet configuration | 575 | // Cards block - new card wizard - bookmarklet configuration |
576 | 'newRecordWizardTitleBox': "\ | 576 | 'newRecordWizardTitleBox': "\ |
577 | <h5>Please select a template</h5>\ | 577 | <h5>Please select a template</h5>\ |
578 | <p>Cards are simple and flexible forms where you can store passwords or any other confidential data.</p>\ | 578 | <p>Cards are simple and flexible forms where you can store passwords or any other confidential data.</p>\ |
579 | <p>Start choosing one of the templates below. You can always customize your cards later by adding or removing fields.</p>", | 579 | <p>Start choosing one of the templates below. You can always customize your cards later by adding or removing fields.</p>", |
580 | 580 | ||
581 | 'newRecordWizardBookmarkletConfigurationTitle': "Direct login", | 581 | 'newRecordWizardBookmarkletConfigurationTitle': "Direct login", |
582 | 'newRecordWizardBookmarkletConfigurationDescription':"\ | 582 | 'newRecordWizardBookmarkletConfigurationDescription':"\ |
583 | <p>Paste below the configuration code generated by the Clipperz bookmarklet.</p>\ | 583 | <p>Paste below the configuration code generated by the Clipperz bookmarklet.</p>\ |
584 | <p>A new card complete with a direct login to your web account will be created.</p>", | 584 | <p>A new card complete with a direct login to your web account will be created.</p>", |
585 | 585 | ||
586 | 'newRecordWizardCreateButtonLabel': "Create", | 586 | 'newRecordWizardCreateButtonLabel': "Create", |
587 | 'newRecordWizardCancelButtonLabel': "Cancel", | 587 | 'newRecordWizardCancelButtonLabel': "Cancel", |
588 | 588 | ||
589 | //Create new card - Donation splash | 589 | //Create new card - Donation splash |
590 | 'donateSplashPanelTitle': "Support Clipperz, make a donation today!", | 590 | 'donateSplashPanelTitle': "Support Clipperz, make a donation today!", |
591 | 'donateSplashPanelDescription': "\ | 591 | 'donateSplashPanelDescription': "\ |
592 | <!-- FIX CSS DONE! -->\ | 592 | <!-- FIX CSS DONE! -->\ |
593 | <p>A few good reasons to make a donation:</p>\ | 593 | <p>A few good reasons to make a donation:</p>\ |
594 | <ul>\ | 594 | <ul>\ |
595 | <li><p>support the development of new features</p></li>\ | 595 | <li><p>support the development of new features</p></li>\ |
596 | <li><p>keep Clipperz free</p></li>\ | 596 | <li><p>keep Clipperz free</p></li>\ |
597 | <li><p>show appreciation for our hard work</p></li>\ | 597 | <li><p>show appreciation for our hard work</p></li>\ |
598 | </ul>\ | 598 | </ul>\ |
599 | <p>For any further information, please visit our <a href=\"http://www.clipperz.com/donations\" target=\"_blank\">Donations page</a>.</p>\ | 599 | <p>For any further information, please visit our <a href=\"http://www.clipperz.com/donations\" target=\"_blank\">Donations page</a>.</p>\ |
600 | <p><b>Ready to donate?</b></p>", | 600 | <p><b>Ready to donate?</b></p>", |
601 | 601 | ||
602 | 'donateCloseButtonLabel': "Not yet", | 602 | 'donateCloseButtonLabel': "Not yet", |
603 | 'donateDonateButtonLabel': "Yes", | 603 | 'donateDonateButtonLabel': "Yes", |
604 | 604 | ||
605 | // Card templates | 605 | // Card templates |
606 | 'recordTemplates': { | 606 | 'recordTemplates': { |
607 | 607 | ||
608 | //Web password | 608 | //Web password |
609 | 'WebAccount': { | 609 | 'WebAccount': { |
610 | 'title': "Web password", | 610 | 'title': "Web password", |
611 | 'description':"<p>A simple card to store login credentials for your online services.</p>", | 611 | 'description':"<p>A simple card to store login credentials for your online services.</p>", |
612 | 'fields': [ | 612 | 'fields': [ |
613 | {label:"Web address", type:'URL'}, | 613 | {label:"Web address", type:'URL'}, |
614 | {label:"Username or email", type:'TXT'}, | 614 | {label:"Username or email", type:'TXT'}, |
615 | {label:"Password", type:'PWD'} | 615 | {label:"Password", type:'PWD'} |
616 | ] | 616 | ] |
617 | }, | 617 | }, |
618 | 618 | ||
619 | //Bank account | 619 | //Bank account |
620 | 'BankAccount': { | 620 | 'BankAccount': { |
621 | 'title': "Bank account", | 621 | 'title': "Bank account", |
622 | 'description':"<p>Safely store your bank account number and online banking credentials.</p>", | 622 | 'description':"<p>Safely store your bank account number and online banking credentials.</p>", |
623 | 'fields': [ | 623 | 'fields': [ |
624 | {label:"Bank", type:'TXT'}, | 624 | {label:"Bank", type:'TXT'}, |
625 | {label:"Account number", type:'TXT'}, | 625 | {label:"Account number", type:'TXT'}, |
626 | {label:"Bank website", type:'URL'}, | 626 | {label:"Bank website", type:'URL'}, |
627 | {label:"Online banking ID", type:'TXT'}, | 627 | {label:"Online banking ID", type:'TXT'}, |
628 | {label:"Online banking password", type:'PWD'} | 628 | {label:"Online banking password", type:'PWD'} |
629 | ] | 629 | ] |
630 | }, | 630 | }, |
631 | 631 | ||
632 | // Credit card | 632 | // Credit card |
633 | 'CreditCard': { | 633 | 'CreditCard': { |
634 | 'title': "Credit card", | 634 | 'title': "Credit card", |
635 | 'description':"<p>Card number, expire date, CVV2 and PIN always at hand with Clipperz.</p>", | 635 | 'description':"<p>Card number, expire date, CVV2 and PIN always at hand with Clipperz.</p>", |
636 | 'fields': [ | 636 | 'fields': [ |
637 | {label:"Type (Visa, AmEx, …)", type:'TXT'}, | 637 | {label:"Type (Visa, AmEx, …)", type:'TXT'}, |
638 | {label:"Number", type:'TXT'}, | 638 | {label:"Number", type:'TXT'}, |
639 | {label:"Owner name", type:'TXT'}, | 639 | {label:"Owner name", type:'TXT'}, |
640 | {label:"Expiry date", type:'TXT'}, | 640 | {label:"Expiry date", type:'TXT'}, |
641 | {label:"CVV2", type:'TXT'}, | 641 | {label:"CVV2", type:'TXT'}, |
642 | {label:"PIN", type:'PWD'}, | 642 | {label:"PIN", type:'PWD'}, |
643 | {label:"Card website", type:'URL'}, | 643 | {label:"Card website", type:'URL'}, |
644 | {label:"Username", type:'TXT'}, | 644 | {label:"Username", type:'TXT'}, |
645 | {label:"Password", type:'PWD'} | 645 | {label:"Password", type:'PWD'} |
646 | ] | 646 | ] |
647 | }, | 647 | }, |
648 | 648 | ||
649 | // Address book entry | 649 | // Address book entry |
650 | 'AddressBookEntry': { | 650 | 'AddressBookEntry': { |
651 | 'title': "Address book entry", | 651 | 'title': "Address book entry", |
652 | 'description':"<p>Clipperz could also work as your new private address book. Use this template to easily add a new entry.</p>", | 652 | 'description':"<p>Clipperz could also work as your new private address book. Use this template to easily add a new entry.</p>", |
653 | 'fields': [ | 653 | 'fields': [ |
654 | {label:"Name", type:'TXT'}, | 654 | {label:"Name", type:'TXT'}, |
655 | {label:"Email", type:'TXT'}, | 655 | {label:"Email", type:'TXT'}, |
656 | {label:"Phone", type:'TXT'}, | 656 | {label:"Phone", type:'TXT'}, |
657 | {label:"Mobile", type:'TXT'}, | 657 | {label:"Mobile", type:'TXT'}, |
658 | {label:"Address", type:'ADDR'}, | 658 | {label:"Address", type:'ADDR'}, |
659 | ] | 659 | ] |
660 | }, | 660 | }, |
661 | 661 | ||
662 | //Custom card | 662 | //Custom card |
663 | 'Custom': { | 663 | 'Custom': { |
664 | 'title': "Custom card", | 664 | 'title': "Custom card", |
665 | 'description':"<p>No matter which kind of confidential data you need to protect, create a custom card to match your needs.</p>", | 665 | 'description':"<p>No matter which kind of confidential data you need to protect, create a custom card to match your needs.</p>", |
666 | 'fields': [ | 666 | 'fields': [ |
667 | {label:"Label 1", type:'TXT'}, | 667 | {label:"Label 1", type:'TXT'}, |
668 | {label:"Label 2", type:'TXT'}, | 668 | {label:"Label 2", type:'TXT'}, |
669 | {label:"Label 3", type:'TXT'} | 669 | {label:"Label 3", type:'TXT'} |
670 | ] | 670 | ] |
671 | } | 671 | } |
672 | }, | 672 | }, |
673 | 673 | ||
674 | 674 | ||
675 | 'recordFieldTypologies': { | 675 | 'recordFieldTypologies': { |
676 | 'TXT': { | 676 | 'TXT': { |
677 | description: "simple text field", | 677 | description: "simple text field", |
678 | shortDescription: "text" | 678 | shortDescription: "text" |
679 | }, | 679 | }, |
680 | 'PWD': { | 680 | 'PWD': { |
681 | description: "simple text field, with default status set to hidden", | 681 | description: "simple text field, with default status set to hidden", |
682 | shortDescription: "password" | 682 | shortDescription: "password" |
683 | }, | 683 | }, |
684 | 'URL': { | 684 | 'URL': { |
685 | description: "simple text field in edit mode, that became an active url in view mode", | 685 | description: "simple text field in edit mode, that became an active url in view mode", |
686 | shortDescription: "web address" | 686 | shortDescription: "web address" |
687 | }, | 687 | }, |
688 | 'DATE': { | 688 | 'DATE': { |
689 | description: "a value set with a calendar helper", | 689 | description: "a value set with a calendar helper", |
690 | shortDescription: "date" | 690 | shortDescription: "date" |
691 | }, | 691 | }, |
692 | 'ADDR': { | 692 | 'ADDR': { |
693 | description: "just like the URL, but the active link points to Google Maps (or similar service) passing the address value as argument", | 693 | description: "just like the URL, but the active link points to Google Maps (or similar service) passing the address value as argument", |
694 | shortDescription: "street address" | 694 | shortDescription: "street address" |
695 | }, | 695 | }, |
696 | 'CHECK': { | 696 | 'CHECK': { |
697 | description: "check description", | 697 | description: "check description", |
698 | shortDescription: "check" | 698 | shortDescription: "check" |
699 | }, | 699 | }, |
700 | 'RADIO': { | 700 | 'RADIO': { |
701 | description: "radio description", | 701 | description: "radio description", |
702 | shortDescription: "radio" | 702 | shortDescription: "radio" |
703 | }, | 703 | }, |
704 | 'SELECT': { | 704 | 'SELECT': { |
705 | description: "select description", | 705 | description: "select description", |
706 | shortDescription: "select" | 706 | shortDescription: "select" |
707 | } | 707 | } |
708 | }, | 708 | }, |
709 | 709 | ||
710 | // Cards block - new card - warnings | 710 | // Cards block - new card - warnings |
711 | 'newRecordPanelGeneralExceptionTitle': "Error", | 711 | 'newRecordPanelGeneralExceptionTitle': "Error", |
712 | 'newRecordPanelGeneralExceptionMessage': "The configuration text is not valid. Make sure to get your text from the bookmarklet pop-up and retry.", | 712 | 'newRecordPanelGeneralExceptionMessage': "The configuration text is not valid. Make sure to get your text from the bookmarklet pop-up and retry.", |
713 | 'newRecordPanelWrongBookmarkletVersionExceptionTitle': "Error", | 713 | 'newRecordPanelWrongBookmarkletVersionExceptionTitle': "Error", |
714 | 'newRecordPanelWrongBookmarkletVersionExceptionMessage':"The configuration text has been generated by an old version of the bookmarklet. Please update your bookmarklet and retry.", | 714 | 'newRecordPanelWrongBookmarkletVersionExceptionMessage':"The configuration text has been generated by an old version of the bookmarklet. Please update your bookmarklet and retry.", |
715 | 'newRecordPanelExceptionPanelCloseButtonLabel': "Cancel", | 715 | 'newRecordPanelExceptionPanelCloseButtonLabel': "Cancel", |
716 | 716 | ||
717 | // Cards block - delete card | 717 | // Cards block - delete card |
718 | 'mainPanelDeletingRecordPanelConfirmationTitle': "Deleting selected card", | 718 | 'mainPanelDeletingRecordPanelConfirmationTitle': "Deleting selected card", |
719 | 'mainPanelDeleteRecordPanelConfirmationText': "Do your really want to delete the selected card?", | 719 | 'mainPanelDeleteRecordPanelConfirmationText': "Do your really want to delete the selected card?", |
720 | 'mainPanelDeleteRecordPanelConfirmButtonLabel': "Yes", | 720 | 'mainPanelDeleteRecordPanelConfirmButtonLabel': "Yes", |
721 | 'mainPanelDeleteRecordPanelDenyButtonLabel': "No", | 721 | 'mainPanelDeleteRecordPanelDenyButtonLabel': "No", |
722 | 'mainPanelDeletingRecordPanelInitialTitle': "Deleting selected card", | 722 | 'mainPanelDeletingRecordPanelInitialTitle': "Deleting selected card", |
723 | 'mainPanelDeletingRecordPanelInitialText': "---", | 723 | 'mainPanelDeletingRecordPanelInitialText': "---", |
724 | 'mainPanelDeletingRecordPanelCompletedText': "Done", | 724 | 'mainPanelDeletingRecordPanelCompletedText': "Done", |
725 | 725 | ||
726 | // Cards block - delete card panel | 726 | // Cards block - delete card panel |
727 | 'deleteRecordPanelCollectRecordDataMessageTitle': "Delete card", | 727 | 'deleteRecordPanelCollectRecordDataMessageTitle': "Delete card", |
728 | 'deleteRecordPanelCollectRecordDataMessageText': "Updating card list", | 728 | 'deleteRecordPanelCollectRecordDataMessageText': "Updating card list", |
729 | 'deleteRecordPanelEncryptUserDataMessageTitle': "Delete card", | 729 | 'deleteRecordPanelEncryptUserDataMessageTitle': "Delete card", |
730 | 'deleteRecordPanelEncryptUserDataMessageText': "Local encryption of card headers", | 730 | 'deleteRecordPanelEncryptUserDataMessageText': "Local encryption of card headers", |
731 | 'deleteRecordPanelSendingDataToTheServerMessageTitle': "Delete card", | 731 | 'deleteRecordPanelSendingDataToTheServerMessageTitle': "Delete card", |
732 | 'deleteRecordPanelSendingDataToTheServerMessageText': "Uploading encrypted card headers to Clipperz", | 732 | 'deleteRecordPanelSendingDataToTheServerMessageText': "Uploading encrypted card headers to Clipperz", |
733 | 'deleteRecordPanelUpdatingTheInterfaceMessageTitle': "Delete card", | 733 | 'deleteRecordPanelUpdatingTheInterfaceMessageTitle': "Delete card", |
734 | 'deleteRecordPanelUpdatingTheInterfaceMessageText': "Updating the interface", | 734 | 'deleteRecordPanelUpdatingTheInterfaceMessageText': "Updating the interface", |
735 | 735 | ||
736 | // Cards block - no record selected | 736 | // Cards block - no record selected |
737 | 'recordDetailNoRecordSelectedTitle': "No card selected", | 737 | 'recordDetailNoRecordSelectedTitle': "No card selected", |
738 | 'recordDetailNoRecordSelectedDescription': "<p>Please select a card from the list on the left.</p>", | 738 | 'recordDetailNoRecordSelectedDescription': "<p>Please select a card from the list on the left.</p>", |
739 | 739 | ||
740 | // Cards block - loading messages | 740 | // Cards block - loading messages |
741 | 'recordDetailLoadingRecordMessage': "Downloading encrypted card from Clipperz", | 741 | 'recordDetailLoadingRecordMessage': "Downloading encrypted card from Clipperz", |
742 | 'recordDetailDecryptingRecordMessage': "Local decryption of card\'s data", | 742 | 'recordDetailDecryptingRecordMessage': "Local decryption of card\'s data", |
743 | 'recordDetailLoadingRecordVersionMessage': "Downloading latest card version", | 743 | 'recordDetailLoadingRecordVersionMessage': "Downloading latest card version", |
744 | 'recordDetailDecryptingRecordVersionMessage': "Local decryption of latest version", | 744 | 'recordDetailDecryptingRecordVersionMessage': "Local decryption of latest version", |
745 | 'recordDetailLoadingErrorMessageTitle': "Error while downloading the card", | 745 | 'recordDetailLoadingErrorMessageTitle': "Error while downloading the card", |
746 | 746 | ||
747 | // Cards block - card details | 747 | // Cards block - card details |
748 | 'recordDetailNotesLabel': "Notes", | 748 | 'recordDetailNotesLabel': "Notes", |
749 | 'recordDetailLabelFieldColumnLabel': "Field label", | 749 | 'recordDetailLabelFieldColumnLabel': "Field label", |
750 | 'recordDetailDataFieldColumnLabel': "Field data", | 750 | 'recordDetailDataFieldColumnLabel': "Field data", |
751 | 'recordDetailTypeFieldColumnLabel': "Type", | 751 | 'recordDetailTypeFieldColumnLabel': "Type", |
752 | 752 | ||
753 | 'recordDetailSavingChangesMessagePanelInitialTitle': "Saving card", | 753 | 'recordDetailSavingChangesMessagePanelInitialTitle': "Saving card", |
754 | 'recordDetailSavingChangesMessagePanelInitialText': "---", | 754 | 'recordDetailSavingChangesMessagePanelInitialText': "---", |
755 | 755 | ||
756 | 'recordDetailRemoveFieldButtonLabel': "-", | 756 | 'recordDetailRemoveFieldButtonLabel': "-", |
757 | 'recordDetailAddFieldButtonLabel': "Add new field", | 757 | 'recordDetailAddFieldButtonLabel': "Add new field", |
758 | 'recordDetailPasswordFieldHelpLabel': "click the stars to select the password and then Ctrl-C to copy", | 758 | 'recordDetailPasswordFieldHelpLabel': "click the stars to select the password and then Ctrl-C to copy", |
759 | 759 | ||
760 | 'recordDetailPasswordFieldScrambleLabel': "scramble", | 760 | 'recordDetailPasswordFieldScrambleLabel': "scramble", |
761 | 'recordDetailPasswordFieldUnscrambleLabel': "unscramble", | 761 | 'recordDetailPasswordFieldUnscrambleLabel': "unscramble", |
762 | 762 | ||
763 | 'recordDetailDirectLoginBlockTitle': "Direct logins", | 763 | 'recordDetailDirectLoginBlockTitle': "Direct logins", |
764 | 'recordDetailNewDirectLoginDescription': "<p>Direct login configuration</p>", | 764 | 'recordDetailNewDirectLoginDescription': "<p>Direct login configuration</p>", |
765 | 765 | ||
766 | 'recordDetailDirectLoginBlockNoDirectLoginConfiguredDescription':"\ | 766 | 'recordDetailDirectLoginBlockNoDirectLoginConfiguredDescription':"\ |
767 | <p>Does this card contain credentials to access an online service?</p>\ | 767 | <p>Does this card contain credentials to access an online service?</p>\ |
768 | <p>Use the bookmarklet to configure a “direct login” from Clipperz with just one click!</p>", | 768 | <p>Use the bookmarklet to configure a “direct login” from Clipperz with just one click!</p>", |
769 | 769 | ||
770 | 'recordDetailDeleteDirectLoginButtonLabel': "-", | 770 | 'recordDetailDeleteDirectLoginButtonLabel': "-", |
771 | 'recordDetailAddNewDirectLoginButtonLabel': "Add new direct login", | 771 | 'recordDetailAddNewDirectLoginButtonLabel': "Add new direct login", |
772 | 772 | ||
773 | 'recordDetailEditButtonLabel': "Edit", | 773 | 'recordDetailEditButtonLabel': "Edit", |
774 | 'recordDetailSaveButtonLabel': "Save", | 774 | 'recordDetailSaveButtonLabel': "Save", |
775 | 'recordDetailCancelButtonLabel': "Cancel", | 775 | 'recordDetailCancelButtonLabel': "Cancel", |
776 | 776 | ||
777 | 'newRecordTitleLabel': "_new card_", | 777 | 'newRecordTitleLabel': "_new card_", |
778 | 'newDirectLoginLabelSuffix': "", | 778 | 'newDirectLoginLabelSuffix': "", |
779 | 779 | ||
780 | // Cards block - save card panel | 780 | // Cards block - save card panel |
781 | 'recordSaveChangesPanelCollectRecordInfoMessageTitle': "Save card", | 781 | 'recordSaveChangesPanelCollectRecordInfoMessageTitle': "Save card", |
782 | 'recordSaveChangesPanelCollectRecordInfoMessageText': "Updating card headers", | 782 | 'recordSaveChangesPanelCollectRecordInfoMessageText': "Updating card headers", |
783 | 'recordSaveChangesPanelEncryptUserDataMessageTitle': "Save card", | 783 | 'recordSaveChangesPanelEncryptUserDataMessageTitle': "Save card", |
784 | 'recordSaveChangesPanelEncryptUserDataMessageText': "Local encryption of card headers", | 784 | 'recordSaveChangesPanelEncryptUserDataMessageText': "Local encryption of card headers", |
785 | 'recordSaveChangesPanelEncryptRecordDataMessageTitle': "Save card", | 785 | 'recordSaveChangesPanelEncryptRecordDataMessageTitle': "Save card", |
786 | 'recordSaveChangesPanelEncryptRecordDataMessageText': "Local encryption of card's data", | 786 | 'recordSaveChangesPanelEncryptRecordDataMessageText': "Local encryption of card's data", |
787 | 'recordSaveChangesPanelEncryptRecordVersionDataMessageTitle':"Save card", | 787 | 'recordSaveChangesPanelEncryptRecordVersionDataMessageTitle':"Save card", |
788 | 'recordSaveChangesPanelEncryptRecordVersionDataMessageText':"Local encryption of card's version data", | 788 | 'recordSaveChangesPanelEncryptRecordVersionDataMessageText':"Local encryption of card's version data", |
789 | 'recordSaveChangesPanelSendingDataToTheServerMessageTitle': "Save card", | 789 | 'recordSaveChangesPanelSendingDataToTheServerMessageTitle': "Save card", |
790 | 'recordSaveChangesPanelSendingDataToTheServerMessageText': "Uploading encrypted card's header to Clipperz", | 790 | 'recordSaveChangesPanelSendingDataToTheServerMessageText': "Uploading encrypted card's header to Clipperz", |
791 | 'recordSaveChangesPanelUpdatingTheInterfaceMessageTitle': "Save card", | 791 | 'recordSaveChangesPanelUpdatingTheInterfaceMessageTitle': "Save card", |
792 | 'recordSaveChangesPanelUpdatingTheInterfaceMessageText': "Updating the interface", | 792 | 'recordSaveChangesPanelUpdatingTheInterfaceMessageText': "Updating the interface", |
793 | 793 | ||
794 | //Password Generator strings | 794 | //Password Generator strings |
795 | 'passwordGeneratorPanelTitle': "Password generator", | 795 | 'passwordGeneratorPanelTitle': "Password generator", |
796 | 'passwordGeneratorPanelOkLabel': "Ok", | 796 | 'passwordGeneratorPanelOkLabel': "Ok", |
797 | 'passwordGeneratorPanelCancelLabel': "Cancel", | 797 | 'passwordGeneratorPanelCancelLabel': "Cancel", |
798 | 798 | ||
799 | 'passwordGeneratorLowercaseLabel': "abc", | 799 | 'passwordGeneratorLowercaseLabel': "abc", |
800 | 'passwordGeneratorUppercaseLabel': "ABC", | 800 | 'passwordGeneratorUppercaseLabel': "ABC", |
801 | 'passwordGeneratorNumberLabel': "012", | 801 | 'passwordGeneratorNumberLabel': "012", |
802 | 'passwordGeneratorSymbolLabel': "@#$", | 802 | 'passwordGeneratorSymbolLabel': "@#$", |
803 | 803 | ||
804 | 'passwordGeneratorLengthLabel': "length:", | 804 | 'passwordGeneratorLengthLabel': "length:", |
805 | 805 | ||
806 | 806 | ||
807 | //Miscellaneous strings | 807 | //Miscellaneous strings |
808 | 808 | ||
809 | //'DWRUtilLoadingMessage': "Loading data …", | 809 | //'DWRUtilLoadingMessage': "Loading data …", |
810 | 'comingSoon': "coming soon …", | 810 | 'comingSoon': "coming soon …", |
811 | 'panelCollectingEntryopyMessageText': "Collecting entropy", | 811 | 'panelCollectingEntryopyMessageText': "Collecting entropy", |
812 | 'directLoginConfigurationCheckBoxFieldSelectedValue': "Yes", | 812 | 'directLoginConfigurationCheckBoxFieldSelectedValue': "Yes", |
813 | 'directLoginConfigurationCheckBoxFieldNotSelectedValue': "No", | 813 | 'directLoginConfigurationCheckBoxFieldNotSelectedValue': "No", |
814 | 814 | ||
815 | 815 | ||
816 | 816 | ||
817 | // NEW - Import panel | 817 | // NEW - Import panel |
818 | 'importFormats':{ | 818 | 'importFormats':{ |
819 | 'CSV': { | 819 | 'CSV': { |
820 | 'label': "CSV", | 820 | 'label': "CSV", |
821 | 'description':"<p>A widely recognized file format that stores tabular data. Several password managers can export data to this format.</p>" | 821 | 'description':"<p>A widely recognized file format that stores tabular data. Several password managers can export data to this format.</p>" |
822 | }, | 822 | }, |
823 | 'Excel': { | 823 | 'Excel': { |
824 | 'label': "Excel", | 824 | 'label': "Excel", |
825 | 'description':"<p>The popular spreadsheet from Microsoft. Storing passwords in Excel files is very common but not advisable.</p>" | 825 | 'description':"<p>The popular spreadsheet from Microsoft. Storing passwords in Excel files is very common but not advisable.</p>" |
826 | }, | 826 | }, |
827 | 'KeePass': { | 827 | 'KeePass': { |
828 | 'label': "KeePass", | 828 | 'label': "KeePass", |
829 | 'description':"<p>The custom TXT file created by KeePass password manager.</p>" | 829 | 'description':"<p>The custom TXT file created by KeePass password manager.</p>" |
830 | }, | 830 | }, |
831 | 'PasswordPlus': { | 831 | 'PasswordPlus': { |
832 | 'label': "Password Plus", | 832 | 'label': "Password Plus", |
833 | 'description':"<p>The custom CSV format produced by Password Plus, a password manager mostly used on mobile devices.</p>" | 833 | 'description':"<p>The custom CSV format produced by Password Plus, a password manager mostly used on mobile devices.</p>" |
834 | }, | 834 | }, |
835 | 'Roboform': { | 835 | 'Roboform': { |
836 | 'label': "RoboForm", | 836 | 'label': "RoboForm", |
837 | 'description':"<p>The special HTML file created by Roboform password manager when displaying Passcard and Safenotes for printing.</p>" | 837 | 'description':"<p>The special HTML file created by Roboform password manager when displaying Passcard and Safenotes for printing.</p>" |
838 | }, | 838 | }, |
839 | 'ClipperzExport': { | 839 | 'ClipperzExport': { |
840 | 'label': "JSON", | 840 | 'label': "JSON", |
841 | 'description':"<p>The file created by Clipperz itself in JSON format. It preserves all information contained in your cards, even direct login configurations.</p>" | 841 | 'description':"<p>The file created by Clipperz itself in JSON format. It preserves all information contained in your cards, even direct login configurations.</p>" |
842 | } | 842 | } |
843 | }, | 843 | }, |
844 | 844 | ||
845 | //JSON | 845 | //JSON |
846 | 'Clipperz_ImportWizard_Title': "JSON import", | 846 | 'Clipperz_ImportWizard_Title': "JSON import", |
847 | 'importOptions_clipperz_description': "<p>Open the JSON file exported from Clipperz in a text editor. Then copy and paste its content to the text area below.</p>", | 847 | 'importOptions_clipperz_description': "<p>Open the JSON file exported from Clipperz in a text editor. Then copy and paste its content to the text area below.</p>", |
848 | 848 | ||
849 | //CSV | 849 | //CSV |
850 | 'CSV_ImportWizard_Title': "CSV import", | 850 | 'CSV_ImportWizard_Title': "CSV import", |
851 | 'importOptions_csv_description_': "\ | 851 | 'importOptions_csv_description_': "\ |
852 | <p>Open the CSV file in a text editor. Then copy and paste its content to the text area below.</p>\ | 852 | <p>Open the CSV file in a text editor. Then copy and paste its content to the text area below.</p>\ |
853 | <p>Please select the special characters used within your file.</p>", | 853 | <p>Please select the special characters used within your file.</p>", |
854 | 854 | ||
855 | //Excel | 855 | //Excel |
856 | 'Excel_ImportWizard_Title': "Excel import", | 856 | 'Excel_ImportWizard_Title': "Excel import", |
857 | 'importOptions_excel_description_': "<p>Open the Excel file and select the cells you want to import. Then copy and paste them to the text area below.</p>", | 857 | 'importOptions_excel_description_': "<p>Open the Excel file and select the cells you want to import. Then copy and paste them to the text area below.</p>", |
858 | 858 | ||
859 | //KeePass | 859 | //KeePass |
860 | 'KeePass_ImportWizard_Title': "KeePass import", | 860 | 'KeePass_ImportWizard_Title': "KeePass import", |
861 | 'importOptions_keePass_description_': "<p>Open the TXT file created by Keepass in a text editor. Then copy and paste its content to the text area below.</p>", | 861 | 'importOptions_keePass_description_': "<p>Open the TXT file created by Keepass in a text editor. Then copy and paste its content to the text area below.</p>", |
862 | 862 | ||
863 | //PasswordPlus | 863 | //PasswordPlus |
864 | 'PasswordPlus_ImportWizard_Title': "Password Plus import", | 864 | 'PasswordPlus_ImportWizard_Title': "Password Plus import", |
865 | 'importOptions_passwordPlus_description':"<p>Open the CSV file created by PasswordPlus in a text editor. Then copy and paste its content to the text area below.</p>", | 865 | 'importOptions_passwordPlus_description':"<p>Open the CSV file created by PasswordPlus in a text editor. Then copy and paste its content to the text area below.</p>", |
866 | 866 | ||
867 | //RoboForm | 867 | //RoboForm |
868 | 'RoboForm_ImportWizard_Title': "RoboForm import", | 868 | 'RoboForm_ImportWizard_Title': "RoboForm import", |
869 | 'importOptions_roboForm_description': "<p>Open the HTML file created by RoboForm in a text editor. Then copy and paste its content to the text area below.</p>", | 869 | 'importOptions_roboForm_description': "<p>Open the HTML file created by RoboForm in a text editor. Then copy and paste its content to the text area below.</p>", |
870 | 870 | ||
871 | 871 | ||
872 | 'importData_parsingDataTitle': "Import", | 872 | 'importData_parsingDataTitle': "Import", |
873 | 'importData_parsingDataText': "Parsing data …", | 873 | 'importData_parsingDataText': "Parsing data …", |
874 | 874 | ||
875 | 'importData_previewingDataTitle': "Import", | 875 | 'importData_previewingDataTitle': "Import", |
876 | 'importData_previewingDataText': "Processing data …", | 876 | 'importData_previewingDataText': "Processing data …", |
877 | 877 | ||
878 | 'importData_processingDataTitle': "Import", | 878 | 'importData_processingDataTitle': "Import", |
879 | 'importData_processingDataText': "Creating new cards …", | 879 | 'importData_processingDataText': "Creating new cards …", |
880 | 880 | ||
881 | 'ImportWizard': { | 881 | 'ImportWizard': { |
882 | 'EDIT': "edit", | 882 | 'EDIT': "edit", |
883 | 'PREVIEW': "preview", | 883 | 'PREVIEW': "preview", |
884 | 'IMPORT': "import", | 884 | 'IMPORT': "import", |
885 | 885 | ||
886 | 'KEEPASS_SETTINGS': "settings", | 886 | 'KEEPASS_SETTINGS': "settings", |
887 | 887 | ||
888 | 'CSV_EDIT': "paste", | 888 | 'CSV_EDIT': "paste", |
889 | 'CSV_COLUMNS': "columns", | 889 | 'CSV_COLUMNS': "columns", |
890 | 'CSV_HEADER': "labels", | 890 | 'CSV_HEADER': "labels", |
891 | 'CSV_TITLE': "titles", | 891 | 'CSV_TITLE': "titles", |
892 | 'CSV_NOTES': "notes", | 892 | 'CSV_NOTES': "notes", |
893 | 'CSV_FIELDS': "types", | 893 | 'CSV_FIELDS': "types", |
894 | 894 | ||
895 | 'EXCEL_EDIT': "edit" | 895 | 'EXCEL_EDIT': "edit" |
896 | }, | 896 | }, |
897 | 897 | ||
898 | 'CSV_ImportWizard_Columns': "<p>Select the columns you want to import.</p>", | 898 | 'CSV_ImportWizard_Columns': "<p>Select the columns you want to import.</p>", |
899 | 'CSV_ImportWizard_Header': "<p>If the first row of the CSV file contains field labels, tick off the checkbox below.</p>", | 899 | 'CSV_ImportWizard_Header': "<p>If the first row of the CSV file contains field labels, tick off the checkbox below.</p>", |
900 | 'CSV_ImportWizard_Header_Settings_firstRowHeaderLabel':"Use the first row as labels?", | 900 | 'CSV_ImportWizard_Header_Settings_firstRowHeaderLabel':"Use the first row as labels?", |
901 | 'CSV_ImportWizard_Title': "<p>Select the column that contains titles of the cards you are importing. (mandatory)</p>", | 901 | 'CSV_ImportWizard_Title': "<p>Select the column that contains titles of the cards you are importing. (mandatory)</p>", |
902 | 'CSV_ImportWizard_Notes': "<p>Select the column that represents a \"notes\" field. (optional)</p>", | 902 | 'CSV_ImportWizard_Notes': "<p>Select the column that represents a \"notes\" field. (optional)</p>", |
903 | 'CSV_ImportWizard_Notes_Settings_noSelectionLabel': "\"notes\" field not present", | 903 | 'CSV_ImportWizard_Notes_Settings_noSelectionLabel': "\"notes\" field not present", |
904 | 'CSV_ImportWizard_Fields': "<p>Select the correct type for each column from the drop down lists.</p>", | 904 | 'CSV_ImportWizard_Fields': "<p>Select the correct type for each column from the drop down lists.</p>", |
905 | 'CSV_ImportWizard_Fields_MissingLabelWarning': "Missing label", | 905 | 'CSV_ImportWizard_Fields_MissingLabelWarning': "Missing label", |
906 | 906 | ||
907 | 'importData_importConfirmation_title': "Import", | 907 | 'importData_importConfirmation_title': "Import", |
908 | 'importData_importConfirmation_text': "Do you want to import __numberOfRecords__ cards?", | 908 | 'importData_importConfirmation_text': "Do you want to import __numberOfRecords__ cards?", |
909 | 909 | ||
910 | 910 | ||
911 | //Vulnerability warning | 911 | //Vulnerability warning |
912 | 'VulnerabilityWarning_Panel_title': "Vulnerability warning", | 912 | 'VulnerabilityWarning_Panel_title': "Vulnerability warning", |
913 | 'VulnerabilityWarning_Panel_message': "The action as been aborted due to a catched vulnerability", | 913 | 'VulnerabilityWarning_Panel_message': "The action as been aborted due to a catched vulnerability", |
914 | 'VulnerabilityWarning_Panel_buttonLabel':"Close", | 914 | 'VulnerabilityWarning_Panel_buttonLabel':"Close", |
915 | 915 | ||
916 | 916 | ||
917 | 917 | ||
918 | //All the loginInfo panel infos | 918 | //All the loginInfo panel infos |
919 | 919 | ||
920 | 'WELCOME_BACK': "Welcome back!", | 920 | 'WELCOME_BACK': "Welcome back!", |
921 | 921 | ||
922 | 'currentConnectionText': "You are connected from ip __ip__, apparently from __country__, using __browser__ on __operatingSystem__.", | 922 | 'currentConnectionText': "You are connected from ip __ip__, apparently from __country__, using __browser__ on __operatingSystem__.", |
923 | 'latestConnectionText': "Your latest connection was __elapsedTimeDescription__ (__time__) from ip __ip__, apparently from __country__, using __browser__ on __operatingSystem__.", | 923 | 'latestConnectionText': "Your latest connection was __elapsedTimeDescription__ (__time__) from ip __ip__, apparently from __country__, using __browser__ on __operatingSystem__.", |
924 | 924 | ||
925 | 'fullLoginHistoryLinkLabel': "show login history", | 925 | 'fullLoginHistoryLinkLabel': "show login history", |
926 | 926 | ||
927 | 'elapsedTimeDescriptions': { | 927 | 'elapsedTimeDescriptions': { |
928 | 'MORE_THAN_A_MONTH_AGO': "more than a month ago", | 928 | 'MORE_THAN_A_MONTH_AGO': "more than a month ago", |
929 | 'MORE_THAN_A_WEEK_AGO': "more than a week ago", | 929 | 'MORE_THAN_A_WEEK_AGO': "more than a week ago", |
930 | 'MORE_THAN_*_WEEKS_AGO': "more than __elapsed__ weeks ago", | 930 | 'MORE_THAN_*_WEEKS_AGO': "more than __elapsed__ weeks ago", |
931 | 'YESTERDAY': "yesterday", | 931 | 'YESTERDAY': "yesterday", |
932 | '*_DAYS_AGO': "__elapsed__ days ago", | 932 | '*_DAYS_AGO': "__elapsed__ days ago", |
933 | 'ABOUT_AN_HOUR_AGO': "about an hour ago", | 933 | 'ABOUT_AN_HOUR_AGO': "about an hour ago", |
934 | '*_HOURS_AGO': "__elapsed__ hours ago", | 934 | '*_HOURS_AGO': "__elapsed__ hours ago", |
935 | 'JUST_A_FEW_MINUTES_AGO': "just a few minutes ago", | 935 | 'JUST_A_FEW_MINUTES_AGO': "just a few minutes ago", |
936 | 'ABOUT_*_MINUTES_AGO': "about __elapsed__ minutes ago" | 936 | 'ABOUT_*_MINUTES_AGO': "about __elapsed__ minutes ago" |
937 | }, | 937 | }, |
938 | 938 | ||
939 | 'unknown_ip': "unknown", | 939 | 'unknown_ip': "unknown", |
940 | 940 | ||
941 | 'countries': { | 941 | 'countries': { |
942 | '--': "unknown", | 942 | '--': "unknown", |
943 | 'AD': "Andorra", | 943 | 'AD': "Andorra", |
944 | 'AE': "United Arab Emirates", | 944 | 'AE': "United Arab Emirates", |
945 | 'AF': "Afghanistan", | 945 | 'AF': "Afghanistan", |
946 | 'AG': "Antigua and Barbuda", | 946 | 'AG': "Antigua and Barbuda", |
947 | 'AI': "Anguilla", | 947 | 'AI': "Anguilla", |
948 | 'AL': "Albania", | 948 | 'AL': "Albania", |
949 | 'AM': "Armenia", | 949 | 'AM': "Armenia", |
950 | 'AN': "Netherlands Antilles", | 950 | 'AN': "Netherlands Antilles", |
951 | 'AO': "Angola", | 951 | 'AO': "Angola", |
952 | 'AP': "Non-Spec Asia Pas Location", | 952 | 'AP': "Non-Spec Asia Pas Location", |
953 | 'AR': "Argentina", | 953 | 'AR': "Argentina", |
954 | 'AS': "American Samoa", | 954 | 'AS': "American Samoa", |
955 | 'AT': "Austria", | 955 | 'AT': "Austria", |
956 | 'AU': "Australia", | 956 | 'AU': "Australia", |
957 | 'AW': "Aruba", | 957 | 'AW': "Aruba", |
958 | 'AX': "Aland Islands", | 958 | 'AX': "Aland Islands", |
959 | 'AZ': "Azerbaijan", | 959 | 'AZ': "Azerbaijan", |
960 | 'BA': "Bosnia and Herzegowina", | 960 | 'BA': "Bosnia and Herzegowina", |
961 | 'BB': "Barbados", | 961 | 'BB': "Barbados", |
962 | 'BD': "Bangladesh", | 962 | 'BD': "Bangladesh", |
963 | 'BE': "Belgium", | 963 | 'BE': "Belgium", |
964 | 'BF': "Burkina Faso", | 964 | 'BF': "Burkina Faso", |
965 | 'BG': "Bulgaria", | 965 | 'BG': "Bulgaria", |
966 | 'BH': "Bahrain", | 966 | 'BH': "Bahrain", |
967 | 'BI': "Burundi", | 967 | 'BI': "Burundi", |
968 | 'BJ': "Benin", | 968 | 'BJ': "Benin", |
969 | 'BM': "Bermuda", | 969 | 'BM': "Bermuda", |
970 | 'BN': "Brunei Darussalam", | 970 | 'BN': "Brunei Darussalam", |
971 | 'BO': "Bolivia", | 971 | 'BO': "Bolivia", |
972 | 'BR': "Brazil", | 972 | 'BR': "Brazil", |
973 | 'BS': "Bahamas", | 973 | 'BS': "Bahamas", |
974 | 'BT': "Bhutan", | 974 | 'BT': "Bhutan", |
975 | 'BW': "Botswana", | 975 | 'BW': "Botswana", |
976 | 'BY': "Belarus", | 976 | 'BY': "Belarus", |
977 | 'BZ': "Belize", | 977 | 'BZ': "Belize", |
978 | 'CA': "Canada", | 978 | 'CA': "Canada", |
979 | 'CD': "Congo the Democratic Republic of the", | 979 | 'CD': "Congo the Democratic Republic of the", |
980 | 'CF': "Central African Republic", | 980 | 'CF': "Central African Republic", |
981 | 'CH': "Switzerland", | 981 | 'CH': "Switzerland", |
982 | 'CI': "Cote D'ivoire", | 982 | 'CI': "Cote D'ivoire", |
983 | 'CK': "Cook Islands", | 983 | 'CK': "Cook Islands", |
984 | 'CL': "Chile", | 984 | 'CL': "Chile", |
985 | 'CM': "Cameroon", | 985 | 'CM': "Cameroon", |
986 | 'CN': "China", | 986 | 'CN': "China", |
987 | 'CO': "Colombia", | 987 | 'CO': "Colombia", |
988 | 'CR': "Costa Rica", | 988 | 'CR': "Costa Rica", |
989 | 'CS': "Serbia and Montenegro", | 989 | 'CS': "Serbia and Montenegro", |
990 | 'CU': "Cuba", | 990 | 'CU': "Cuba", |
991 | 'CY': "Cyprus", | 991 | 'CY': "Cyprus", |
992 | 'CZ': "Czech Republic", | 992 | 'CZ': "Czech Republic", |
993 | 'DE': "Germany", | 993 | 'DE': "Germany", |
994 | 'DJ': "Djibouti", | 994 | 'DJ': "Djibouti", |
995 | 'DK': "Denmark", | 995 | 'DK': "Denmark", |
996 | 'DO': "Dominican Republic", | 996 | 'DO': "Dominican Republic", |
997 | 'DZ': "Algeria", | 997 | 'DZ': "Algeria", |
998 | 'EC': "Ecuador", | 998 | 'EC': "Ecuador", |
999 | 'EE': "Estonia", | 999 | 'EE': "Estonia", |
1000 | 'EG': "Egypt", | 1000 | 'EG': "Egypt", |
1001 | 'ER': "Eritrea", | 1001 | 'ER': "Eritrea", |
1002 | 'ES': "Spain", | 1002 | 'ES': "Spain", |
1003 | 'ET': "Ethiopia", | 1003 | 'ET': "Ethiopia", |
1004 | 'EU': "European Union", | 1004 | 'EU': "European Union", |
1005 | 'FI': "Finland", | 1005 | 'FI': "Finland", |
1006 | 'FJ': "Fiji", | 1006 | 'FJ': "Fiji", |
1007 | 'FM': "Micronesia Federated States of", | 1007 | 'FM': "Micronesia Federated States of", |
1008 | 'FO': "Faroe Islands", | 1008 | 'FO': "Faroe Islands", |
1009 | 'FR': "France", | 1009 | 'FR': "France", |
1010 | 'GA': "Gabon", | 1010 | 'GA': "Gabon", |
1011 | 'GB': "United Kingdom", | 1011 | 'GB': "United Kingdom", |
1012 | 'GD': "Grenada", | 1012 | 'GD': "Grenada", |
1013 | 'GE': "Georgia", | 1013 | 'GE': "Georgia", |
1014 | 'GF': "French Guiana", | 1014 | 'GF': "French Guiana", |
1015 | 'GG': "Guernsey", | 1015 | 'GG': "Guernsey", |
1016 | 'GH': "Ghana", | 1016 | 'GH': "Ghana", |
1017 | 'GI': "Gibraltar", | 1017 | 'GI': "Gibraltar", |
1018 | 'GL': "Greenland", | 1018 | 'GL': "Greenland", |
1019 | 'GM': "Gambia", | 1019 | 'GM': "Gambia", |
1020 | 'GP': "Guadeloupe", | 1020 | 'GP': "Guadeloupe", |
1021 | 'GR': "Greece", | 1021 | 'GR': "Greece", |
1022 | 'GT': "Guatemala", | 1022 | 'GT': "Guatemala", |
1023 | 'GU': "Guam", | 1023 | 'GU': "Guam", |
1024 | 'GW': "Guinea-Bissau", | 1024 | 'GW': "Guinea-Bissau", |
1025 | 'GY': "Guyana", | 1025 | 'GY': "Guyana", |
1026 | 'HK': "Hong Kong", | 1026 | 'HK': "Hong Kong", |
1027 | 'HN': "Honduras", | 1027 | 'HN': "Honduras", |
1028 | 'HR': "Croatia (Local Name: Hrvatska)", | 1028 | 'HR': "Croatia (Local Name: Hrvatska)", |
1029 | 'HT': "Haiti", | 1029 | 'HT': "Haiti", |
1030 | 'HU': "Hungary", | 1030 | 'HU': "Hungary", |
1031 | 'ID': "Indonesia", | 1031 | 'ID': "Indonesia", |
1032 | 'IE': "Ireland", | 1032 | 'IE': "Ireland", |
1033 | 'IL': "Israel", | 1033 | 'IL': "Israel", |
1034 | 'IM': "Isle of Man", | 1034 | 'IM': "Isle of Man", |
1035 | 'IN': "India", | 1035 | 'IN': "India", |
1036 | 'IO': "British Indian Ocean Territory", | 1036 | 'IO': "British Indian Ocean Territory", |
1037 | 'IQ': "Iraq", | 1037 | 'IQ': "Iraq", |
1038 | 'IR': "Iran (Islamic Republic of)", | 1038 | 'IR': "Iran (Islamic Republic of)", |
1039 | 'IS': "Iceland", | 1039 | 'IS': "Iceland", |
1040 | 'IT': "Italy", | 1040 | 'IT': "Italy", |
1041 | 'JE': "Jersey", | 1041 | 'JE': "Jersey", |
1042 | 'JM': "Jamaica", | 1042 | 'JM': "Jamaica", |
1043 | 'JO': "Jordan", | 1043 | 'JO': "Jordan", |
1044 | 'JP': "Japan", | 1044 | 'JP': "Japan", |
1045 | 'KE': "Kenya", | 1045 | 'KE': "Kenya", |
1046 | 'KG': "Kyrgyzstan", | 1046 | 'KG': "Kyrgyzstan", |
1047 | 'KH': "Cambodia", | 1047 | 'KH': "Cambodia", |
1048 | 'KI': "Kiribati", | 1048 | 'KI': "Kiribati", |
1049 | 'KN': "Saint Kitts and Nevis", | 1049 | 'KN': "Saint Kitts and Nevis", |
1050 | 'KR': "Korea Republic of", | 1050 | 'KR': "Korea Republic of", |
1051 | 'KW': "Kuwait", | 1051 | 'KW': "Kuwait", |
1052 | 'KY': "Cayman Islands", | 1052 | 'KY': "Cayman Islands", |
1053 | 'KZ': "Kazakhstan", | 1053 | 'KZ': "Kazakhstan", |
1054 | 'LA': "Lao People's Democratic Republic", | 1054 | 'LA': "Lao People's Democratic Republic", |
1055 | 'LB': "Lebanon", | 1055 | 'LB': "Lebanon", |
1056 | 'LC': "Saint Lucia", | 1056 | 'LC': "Saint Lucia", |
1057 | 'LI': "Liechtenstein", | 1057 | 'LI': "Liechtenstein", |
1058 | 'LK': "Sri Lanka", | 1058 | 'LK': "Sri Lanka", |
1059 | 'LR': "Liberia", | 1059 | 'LR': "Liberia", |
1060 | 'LS': "Lesotho", | 1060 | 'LS': "Lesotho", |
1061 | 'LT': "Lithuania", | 1061 | 'LT': "Lithuania", |
1062 | 'LU': "Luxembourg", | 1062 | 'LU': "Luxembourg", |
1063 | 'LV': "Latvia", | 1063 | 'LV': "Latvia", |
1064 | 'LY': "Libyan Arab Jamahiriya", | 1064 | 'LY': "Libyan Arab Jamahiriya", |
1065 | 'MA': "Morocco", | 1065 | 'MA': "Morocco", |
1066 | 'MC': "Monaco", | 1066 | 'MC': "Monaco", |
1067 | 'MD': "Moldova Republic of", | 1067 | 'MD': "Moldova Republic of", |
1068 | 'MG': "Madagascar", | 1068 | 'MG': "Madagascar", |
1069 | 'MH': "Marshall Islands", | 1069 | 'MH': "Marshall Islands", |
1070 | 'MK': "Macedonia the Former Yugoslav Republic of", | 1070 | 'MK': "Macedonia the Former Yugoslav Republic of", |
1071 | 'ML': "Mali", | 1071 | 'ML': "Mali", |
1072 | 'MM': "Myanmar", | 1072 | 'MM': "Myanmar", |
1073 | 'MN': "Mongolia", | 1073 | 'MN': "Mongolia", |
1074 | 'MO': "Macau", | 1074 | 'MO': "Macau", |
1075 | 'MP': "Northern Mariana Islands", | 1075 | 'MP': "Northern Mariana Islands", |
1076 | 'MR': "Mauritania", | 1076 | 'MR': "Mauritania", |
1077 | 'MS': "Montserrat", | 1077 | 'MS': "Montserrat", |
1078 | 'MT': "Malta", | 1078 | 'MT': "Malta", |
1079 | 'MU': "Mauritius", | 1079 | 'MU': "Mauritius", |
1080 | 'MV': "Maldives", | 1080 | 'MV': "Maldives", |
1081 | 'MW': "Malawi", | 1081 | 'MW': "Malawi", |
1082 | 'MX': "Mexico", | 1082 | 'MX': "Mexico", |
1083 | 'MY': "Malaysia", | 1083 | 'MY': "Malaysia", |
1084 | 'MZ': "Mozambique", | 1084 | 'MZ': "Mozambique", |
1085 | 'NA': "Namibia", | 1085 | 'NA': "Namibia", |
1086 | 'NC': "New Caledonia", | 1086 | 'NC': "New Caledonia", |
1087 | 'NF': "Norfolk Island", | 1087 | 'NF': "Norfolk Island", |
1088 | 'NG': "Nigeria", | 1088 | 'NG': "Nigeria", |
1089 | 'NI': "Nicaragua", | 1089 | 'NI': "Nicaragua", |
1090 | 'NL': "Netherlands", | 1090 | 'NL': "Netherlands", |
1091 | 'NO': "Norway", | 1091 | 'NO': "Norway", |
1092 | 'NP': "Nepal", | 1092 | 'NP': "Nepal", |
1093 | 'NR': "Nauru", | 1093 | 'NR': "Nauru", |
1094 | 'NU': "Niue", | 1094 | 'NU': "Niue", |
1095 | 'NZ': "New Zealand", | 1095 | 'NZ': "New Zealand", |
1096 | 'OM': "Oman", | 1096 | 'OM': "Oman", |
1097 | 'PA': "Panama", | 1097 | 'PA': "Panama", |
1098 | 'PE': "Peru", | 1098 | 'PE': "Peru", |
1099 | 'PF': "French Polynesia", | 1099 | 'PF': "French Polynesia", |
1100 | 'PG': "Papua New Guinea", | 1100 | 'PG': "Papua New Guinea", |
1101 | 'PH': "Philippines", | 1101 | 'PH': "Philippines", |
1102 | 'PK': "Pakistan", | 1102 | 'PK': "Pakistan", |
1103 | 'PL': "Poland", | 1103 | 'PL': "Poland", |
1104 | 'PR': "Puerto Rico", | 1104 | 'PR': "Puerto Rico", |
1105 | 'PS': "Palestinian Territory Occupied", | 1105 | 'PS': "Palestinian Territory Occupied", |
1106 | 'PT': "Portugal", | 1106 | 'PT': "Portugal", |
1107 | 'PW': "Palau", | 1107 | 'PW': "Palau", |
1108 | 'PY': "Paraguay", | 1108 | 'PY': "Paraguay", |
1109 | 'QA': "Qatar", | 1109 | 'QA': "Qatar", |
1110 | 'RO': "Romania", | 1110 | 'RO': "Romania", |
1111 | 'RS': "Serbia", | 1111 | 'RS': "Serbia", |
1112 | 'RU': "Russian Federation", | 1112 | 'RU': "Russian Federation", |
1113 | 'RW': "Rwanda", | 1113 | 'RW': "Rwanda", |
1114 | 'SA': "Saudi Arabia", | 1114 | 'SA': "Saudi Arabia", |
1115 | 'SB': "Solomon Islands", | 1115 | 'SB': "Solomon Islands", |
1116 | 'SC': "Seychelles", | 1116 | 'SC': "Seychelles", |
1117 | 'SD': "Sudan", | 1117 | 'SD': "Sudan", |
1118 | 'SE': "Sweden", | 1118 | 'SE': "Sweden", |
1119 | 'SG': "Singapore", | 1119 | 'SG': "Singapore", |
1120 | 'SI': "Slovenia", | 1120 | 'SI': "Slovenia", |
1121 | 'SK': "Slovakia (Slovak Republic)", | 1121 | 'SK': "Slovakia (Slovak Republic)", |
1122 | 'SL': "Sierra Leone", | 1122 | 'SL': "Sierra Leone", |
1123 | 'SM': "San Marino", | 1123 | 'SM': "San Marino", |
1124 | 'SN': "Senegal", | 1124 | 'SN': "Senegal", |
1125 | 'SR': "Suriname", | 1125 | 'SR': "Suriname", |
1126 | 'SV': "El Salvador", | 1126 | 'SV': "El Salvador", |
1127 | 'SY': "Syrian Arab Republic", | 1127 | 'SY': "Syrian Arab Republic", |
1128 | 'SZ': "Swaziland", | 1128 | 'SZ': "Swaziland", |
1129 | 'TC': "Turks and Caicos Islands", | 1129 | 'TC': "Turks and Caicos Islands", |
1130 | 'TG': "Togo", | 1130 | 'TG': "Togo", |
1131 | 'TH': "Thailand", | 1131 | 'TH': "Thailand", |
1132 | 'TJ': "Tajikistan", | 1132 | 'TJ': "Tajikistan", |
1133 | 'TM': "Turkmenistan", | 1133 | 'TM': "Turkmenistan", |
1134 | 'TN': "Tunisia", | 1134 | 'TN': "Tunisia", |
1135 | 'TO': "Tonga", | 1135 | 'TO': "Tonga", |
1136 | 'TR': "Turkey", | 1136 | 'TR': "Turkey", |
1137 | 'TT': "Trinidad and Tobago", | 1137 | 'TT': "Trinidad and Tobago", |
1138 | 'TV': "Tuvalu", | 1138 | 'TV': "Tuvalu", |
1139 | 'TW': "Taiwan Province of China", | 1139 | 'TW': "Taiwan Province of China", |
1140 | 'TZ': "Tanzania United Republic of", | 1140 | 'TZ': "Tanzania United Republic of", |
1141 | 'UA': "Ukraine", | 1141 | 'UA': "Ukraine", |
1142 | 'UG': "Uganda", | 1142 | 'UG': "Uganda", |
1143 | 'US': "United States", | 1143 | 'US': "United States", |
1144 | 'UY': "Uruguay", | 1144 | 'UY': "Uruguay", |
1145 | 'UZ': "Uzbekistan", | 1145 | 'UZ': "Uzbekistan", |
1146 | 'VA': "Holy See (Vatican City State)", | 1146 | 'VA': "Holy See (Vatican City State)", |
1147 | 'VE': "Venezuela", | 1147 | 'VE': "Venezuela", |
1148 | 'VG': "Virgin Islands (British)", | 1148 | 'VG': "Virgin Islands (British)", |
1149 | 'VI': "Virgin Islands (U.S.)", | 1149 | 'VI': "Virgin Islands (U.S.)", |
1150 | 'VN': "Viet Nam", | 1150 | 'VN': "Viet Nam", |
1151 | 'VU': "Vanuatu", | 1151 | 'VU': "Vanuatu", |
1152 | 'WF': "Wallis and Futuna Islands", | 1152 | 'WF': "Wallis and Futuna Islands", |
1153 | 'WS': "Samoa", | 1153 | 'WS': "Samoa", |
1154 | 'YE': "Yemen", | 1154 | 'YE': "Yemen", |
1155 | 'ZA': "South Africa", | 1155 | 'ZA': "South Africa", |
1156 | 'ZM': "Zambia", | 1156 | 'ZM': "Zambia", |
1157 | 'ZW': "Zimbabwe", | 1157 | 'ZW': "Zimbabwe", |
1158 | 'ZZ': "Reserved" | 1158 | 'ZZ': "Reserved" |
1159 | }, | 1159 | }, |
1160 | 1160 | ||
1161 | 'browsers': { | 1161 | 'browsers': { |
1162 | 'UNKNOWN': "Unknown", | 1162 | 'UNKNOWN': "Unknown", |
1163 | 'MSIE': "Internet Explorer", | 1163 | 'MSIE': "Internet Explorer", |
1164 | 'FIREFOX': "Firefox", | 1164 | 'FIREFOX': "Firefox", |
1165 | 'OPERA': "Opera", | 1165 | 'OPERA': "Opera", |
1166 | 'SAFARI': "Safari", | 1166 | 'SAFARI': "Safari", |
1167 | 'OMNIWEB': "OmniWeb", | 1167 | 'OMNIWEB': "OmniWeb", |
1168 | 'CAMINO': "Camino", | 1168 | 'CAMINO': "Camino", |
1169 | 'CHROME': "Chrome" | 1169 | 'CHROME': "Chrome" |
1170 | }, | 1170 | }, |
1171 | 1171 | ||
1172 | 'operatingSystems': { | 1172 | 'operatingSystems': { |
1173 | 'UNKNOWN': "Unknown", | 1173 | 'UNKNOWN': "Unknown", |
1174 | 'WINDOWS': "Windows", | 1174 | 'WINDOWS': "Windows", |
1175 | 'MAC': "Mac", | 1175 | 'MAC': "Mac", |
1176 | 'LINUX': "Linux", | 1176 | 'LINUX': "Linux", |
1177 | 'IPHONE': "iPhone", | 1177 | 'IPHONE': "iPhone", |
1178 | 'MOBILE': "Mobile", | 1178 | 'MOBILE': "Mobile", |
1179 | 'OPENBSD': "OpenBSD", | 1179 | 'OPENBSD': "OpenBSD", |
1180 | 'FREEBSD': "FreeBSD", | 1180 | 'FREEBSD': "FreeBSD", |
1181 | 'NETBSD': "NetBSD" | 1181 | 'NETBSD': "NetBSD" |
1182 | }, | 1182 | }, |
1183 | 1183 | ||
1184 | 1184 | ||
1185 | //Calendar texts | 1185 | //Calendar texts |
1186 | 'calendarStrings': { | 1186 | 'calendarStrings': { |
1187 | 'months': { | 1187 | 'months': { |
1188 | '0':"January", | 1188 | '0':"January", |
1189 | '1':"February", | 1189 | '1':"February", |
1190 | '2':"March", | 1190 | '2':"March", |
1191 | '3':"April", | 1191 | '3':"April", |
1192 | '4':"May", | 1192 | '4':"May", |
1193 | '5':"June", | 1193 | '5':"June", |
1194 | '6':"July", | 1194 | '6':"July", |
1195 | '7':"August", | 1195 | '7':"August", |
1196 | '8':"September", | 1196 | '8':"September", |
1197 | '9':"October", | 1197 | '9':"October", |
1198 | '10':"November", | 1198 | '10':"November", |
1199 | '11':"December" | 1199 | '11':"December" |
1200 | }, | 1200 | }, |
1201 | 'shortMonths':{ | 1201 | 'shortMonths':{ |
1202 | '0':"Jan", | 1202 | '0':"Jan", |
1203 | '1':"Feb", | 1203 | '1':"Feb", |
1204 | '2':"Mar", | 1204 | '2':"Mar", |
1205 | '3':"Apr", | 1205 | '3':"Apr", |
1206 | '4':"May", | 1206 | '4':"May", |
1207 | '5':"Jun", | 1207 | '5':"Jun", |
1208 | '6':"Jul", | 1208 | '6':"Jul", |
1209 | '7':"Aug", | 1209 | '7':"Aug", |
1210 | '8':"Sep", | 1210 | '8':"Sep", |
1211 | '9':"Oct", | 1211 | '9':"Oct", |
1212 | '10':"Nov", | 1212 | '10':"Nov", |
1213 | '11':"Dec" | 1213 | '11':"Dec" |
1214 | }, | 1214 | }, |
1215 | 1215 | ||
1216 | 'days':{ | 1216 | 'days':{ |
1217 | '0':"Sunday", | 1217 | '0':"Sunday", |
1218 | '1':"Monday", | 1218 | '1':"Monday", |
1219 | '2':"Tuesday", | 1219 | '2':"Tuesday", |
1220 | '3':"Wednesday", | 1220 | '3':"Wednesday", |
1221 | '4':"Thursday", | 1221 | '4':"Thursday", |
1222 | '5':"Friday", | 1222 | '5':"Friday", |
1223 | '6':"Saturday" | 1223 | '6':"Saturday" |
1224 | }, | 1224 | }, |
1225 | 1225 | ||
1226 | 'shortDays':{ | 1226 | 'shortDays':{ |
1227 | '0':"Sun", | 1227 | '0':"Sun", |
1228 | '1':"Mon", | 1228 | '1':"Mon", |
1229 | '2':"Tue", | 1229 | '2':"Tue", |
1230 | '3':"Wed", | 1230 | '3':"Wed", |
1231 | '4':"Thu", | 1231 | '4':"Thu", |
1232 | '5':"Fri", | 1232 | '5':"Fri", |
1233 | '6':"Sat" | 1233 | '6':"Sat" |
1234 | }, | 1234 | }, |
1235 | 1235 | ||
1236 | 'veryShortDays':{ | 1236 | 'veryShortDays':{ |
1237 | '0':"Su", | 1237 | '0':"Su", |
1238 | '1':"Mo", | 1238 | '1':"Mo", |
1239 | '2':"Tu", | 1239 | '2':"Tu", |
1240 | '3':"We", | 1240 | '3':"We", |
1241 | '4':"Th", | 1241 | '4':"Th", |
1242 | '5':"Fr", | 1242 | '5':"Fr", |
1243 | '6':"Sa" | 1243 | '6':"Sa" |
1244 | }, | 1244 | }, |
1245 | 1245 | ||
1246 | 'amDesignation':"am", | 1246 | 'amDesignation':"am", |
1247 | 'pmDesignation':"pm" | 1247 | 'pmDesignation':"pm" |
1248 | }, | 1248 | }, |
1249 | 1249 | ||
1250 | 1250 | ||
1251 | // Date format | 1251 | // Date format |
1252 | 'fullDate_format':"l, F d, Y H:i:s", | 1252 | 'fullDate_format':"l, F d, Y H:i:s", |
1253 | 1253 | ||
1254 | __syntaxFix__: "syntax fix" | 1254 | __syntaxFix__: "syntax fix" |
1255 | 1255 | ||
1256 | } | 1256 | } |