ymdp 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. data/VERSION +1 -1
  2. data/bin/ymdp +51 -0
  3. data/lib/new_application/.base +11 -0
  4. data/lib/new_application/Gemfile +12 -0
  5. data/lib/new_application/Rakefile +3 -0
  6. data/lib/new_application/app/.gitignore +1 -0
  7. data/lib/new_application/app/assets/images/lightbox/lightbox_bg.png +0 -0
  8. data/lib/new_application/app/assets/javascripts/OpenMailIntl.js +291 -0
  9. data/lib/new_application/app/assets/javascripts/controls.js +965 -0
  10. data/lib/new_application/app/assets/javascripts/date.js +104 -0
  11. data/lib/new_application/app/assets/javascripts/dragdrop.js +974 -0
  12. data/lib/new_application/app/assets/javascripts/effects.js +1123 -0
  13. data/lib/new_application/app/assets/javascripts/lowpro.js +320 -0
  14. data/lib/new_application/app/assets/javascripts/prototype.js +4874 -0
  15. data/lib/new_application/app/assets/javascripts/scriptaculous.js +68 -0
  16. data/lib/new_application/app/assets/yrb/en-US/application_en-US.pres +7 -0
  17. data/lib/new_application/app/helpers/application_helper.rb +3 -0
  18. data/lib/new_application/app/javascripts/application.js +580 -0
  19. data/lib/new_application/app/javascripts/debug.js +138 -0
  20. data/lib/new_application/app/javascripts/flash.js +96 -0
  21. data/lib/new_application/app/javascripts/header.js +13 -0
  22. data/lib/new_application/app/javascripts/help.js +76 -0
  23. data/lib/new_application/app/javascripts/i18n.js +235 -0
  24. data/lib/new_application/app/javascripts/launcher.js +159 -0
  25. data/lib/new_application/app/javascripts/logger.js +61 -0
  26. data/lib/new_application/app/javascripts/tag_helper.js +178 -0
  27. data/lib/new_application/app/stylesheets/application.css +0 -0
  28. data/lib/new_application/app/stylesheets/ie.css +0 -0
  29. data/lib/new_application/app/stylesheets/ie6.css +0 -0
  30. data/lib/new_application/app/stylesheets/ie7.css +0 -0
  31. data/lib/new_application/app/stylesheets/ie8.css +0 -0
  32. data/lib/new_application/app/stylesheets/lightbox.css +30 -0
  33. data/lib/new_application/app/stylesheets/non_ie.css +0 -0
  34. data/lib/new_application/app/views/layouts/application.html.haml +35 -0
  35. data/lib/new_application/app/views/shared/_error.html.haml +8 -0
  36. data/lib/new_application/app/views/shared/_flash.html.haml +2 -0
  37. data/lib/new_application/app/views/shared/_javascripts.html.haml +22 -0
  38. data/lib/new_application/app/views/shared/_loading.html.haml +13 -0
  39. data/lib/new_application/app/views/shared/_stylesheets.html.haml +23 -0
  40. data/lib/new_application/config/categories.yml +6 -0
  41. data/lib/new_application/config/config.yml.example +30 -0
  42. data/lib/new_application/config/constants.rb +54 -0
  43. data/lib/new_application/config/servers.yml.example +9 -0
  44. data/lib/new_application/lib/init.rb +13 -0
  45. data/lib/new_application/lib/tasks/environment.rake +4 -0
  46. data/lib/new_application/lib/tasks/keys.rake +235 -0
  47. data/lib/new_application/lib/tasks/setup.rake +13 -0
  48. data/lib/new_application/lib/tasks/ymdp.rake +718 -0
  49. data/lib/new_application/script/build +9 -0
  50. data/lib/new_application/script/config +13 -0
  51. data/lib/new_application/script/destroy +18 -0
  52. data/lib/new_application/script/generate +4 -0
  53. data/lib/new_application/script/gitrm +17 -0
  54. data/lib/new_application/script/growl +6 -0
  55. data/lib/new_application/script/images +48 -0
  56. data/lib/new_application/script/jslint.js +5072 -0
  57. data/lib/new_application/script/langs +31 -0
  58. data/lib/new_application/script/translate +5 -0
  59. data/lib/new_application/script/ymdt +1895 -0
  60. data/lib/new_application/script/ymdt.old +1890 -0
  61. data/lib/new_application/script/yuicompressor-2.4.2.jar +0 -0
  62. data/lib/new_application/ymdp +8 -0
  63. data/ymdp.gemspec +64 -1
  64. metadata +65 -4
@@ -0,0 +1,68 @@
1
+ // script.aculo.us scriptaculous.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
2
+
3
+ // Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
4
+ //
5
+ // Permission is hereby granted, free of charge, to any person obtaining
6
+ // a copy of this software and associated documentation files (the
7
+ // "Software"), to deal in the Software without restriction, including
8
+ // without limitation the rights to use, copy, modify, merge, publish,
9
+ // distribute, sublicense, and/or sell copies of the Software, and to
10
+ // permit persons to whom the Software is furnished to do so, subject to
11
+ // the following conditions:
12
+ //
13
+ // The above copyright notice and this permission notice shall be
14
+ // included in all copies or substantial portions of the Software.
15
+ //
16
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ //
24
+ // For details, see the script.aculo.us web site: http://script.aculo.us/
25
+
26
+ var Scriptaculous = {
27
+ Version: '1.8.3',
28
+ require: function(libraryName) {
29
+ try{
30
+ // inserting via DOM fails in Safari 2.0, so brute force approach
31
+ document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
32
+ } catch(e) {
33
+ // for xhtml+xml served content, fall back to DOM methods
34
+ var script = document.createElement('script');
35
+ script.type = 'text/javascript';
36
+ script.src = libraryName;
37
+ document.getElementsByTagName('head')[0].appendChild(script);
38
+ }
39
+ },
40
+ REQUIRED_PROTOTYPE: '1.6.0.3',
41
+ load: function() {
42
+ function convertVersionString(versionString) {
43
+ var v = versionString.replace(/_.*|\./g, '');
44
+ v = parseInt(v + '0'.times(4-v.length));
45
+ return versionString.indexOf('_') > -1 ? v-1 : v;
46
+ }
47
+
48
+ if((typeof Prototype=='undefined') ||
49
+ (typeof Element == 'undefined') ||
50
+ (typeof Element.Methods=='undefined') ||
51
+ (convertVersionString(Prototype.Version) <
52
+ convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
53
+ throw("script.aculo.us requires the Prototype JavaScript framework >= " +
54
+ Scriptaculous.REQUIRED_PROTOTYPE);
55
+
56
+ var js = /scriptaculous\.js(\?.*)?$/;
57
+ $$('head script[src]').findAll(function(s) {
58
+ return s.src.match(js);
59
+ }).each(function(s) {
60
+ var path = s.src.replace(js, ''),
61
+ includes = s.src.match(/\?.*load=([a-z,]*)/);
62
+ (includes ? includes[1] : 'effects,dragdrop,controls').split(',').each(
63
+ function(include) { Scriptaculous.require(path+include+'.js') });
64
+ });
65
+ }
66
+ };
67
+
68
+ Scriptaculous.load();
@@ -0,0 +1,7 @@
1
+ #
2
+ # Application resource file
3
+ #
4
+
5
+ # Place your global translations in this file.
6
+
7
+ APPLICATION_NAME=Application
@@ -0,0 +1,3 @@
1
+ module ApplicationHelper
2
+ end
3
+
@@ -0,0 +1,580 @@
1
+ /*
2
+ APPLICATION
3
+
4
+ */
5
+
6
+ var APPLICATION, Browser, OIB;
7
+
8
+ /* set asset version */
9
+ APPLICATION = {
10
+ VERSION: "<%= @hash %>",
11
+ MESSAGE: "<%= @message %>",
12
+ DEPLOYED: <%= Time.now.to_i %>,
13
+ DEPLOYED_STRING: "<%= Time.now.to_s %>"
14
+ };
15
+
16
+
17
+
18
+ /*
19
+ GLOBAL CONSTANTS
20
+ */
21
+
22
+ YAHOO.namespace("oib");
23
+ YAHOO.namespace("constants");
24
+ YAHOO.namespace("images");
25
+
26
+ YAHOO.constants.states = ["nil", "authorized", "inspect", "new_active", "processing", "active", "inactive", "invalid", "maintenance"];
27
+
28
+ /*
29
+ Authorze/Reauthorize NAMESPACES/CONSTANTS
30
+ */
31
+
32
+ YAHOO.constants.check_user_interval = 3;
33
+ YAHOO.constants.error_timeout = 60;
34
+
35
+ Browser = {
36
+ version: function(v) {
37
+ var version, app_version;
38
+ app_version = navigator.appVersion;
39
+
40
+ if (app_version.match("MSIE 6.0")) {
41
+ version = 6.0;
42
+ }
43
+
44
+ if (v) {
45
+ return (version === v);
46
+ } else {
47
+ return version;
48
+ }
49
+ },
50
+
51
+ ie: function() {
52
+ return navigator.appName.match("Internet Explorer");
53
+ },
54
+
55
+ ie6: function() {
56
+ return (Browser.ie() && Browser.version(6.0));
57
+ },
58
+
59
+ ie7: function() {
60
+ return (Browser.ie() && Browser.version(7.0));
61
+ },
62
+
63
+ ie8: function() {
64
+ return (Browser.ie() && Browser.version(8.0));
65
+ }
66
+ };
67
+
68
+
69
+ function unixTimeToDate(unixtime) {
70
+ return new Date(unixtime * 1000);
71
+ }
72
+
73
+ function formatUnixDate(unixtime) {
74
+ var date;
75
+ date = unixTimeToDate(unixtime);
76
+ return date.toString("MMMM d, yyyy");
77
+ }
78
+
79
+ Try.these(function() {
80
+
81
+ /*
82
+ CALL OIB
83
+
84
+ global to every view. sends Ajax call to OtherInbox.
85
+ */
86
+
87
+ // send an Ajax call to OtherInbox.
88
+ // takes as parameters:
89
+ // - the path to call
90
+ // - any additional query string params
91
+ // - a callback function to run when the Ajax call is a success
92
+ // - an optional error function
93
+ // - a base URL to use, if you don't want this call going to YAHOO.constants.base_url
94
+ // TODO refactor this function to take a second params hash where we could stick success_function, error_function, and base_url
95
+
96
+ YAHOO.oib.callOIB = function(oib_path, params, success_function, error_function, base_url) {
97
+ Debug.log("inside YAHOO.oib.call: ", {
98
+ "oib_path": oib_path,
99
+ "params": Object.toJSON(params)
100
+ });
101
+ var oib_url, method;
102
+
103
+ oib_url = base_url ? base_url : YAHOO.constants.base_url;
104
+
105
+ if (!(oib_path && typeof(oib_path) === "string")) {
106
+ throw("YAHOO.oib.callOIB must define oib_path");
107
+ }
108
+ if (!(params && typeof(params) === "object")) {
109
+ throw("YAHOO.oib.callOIB must define params");
110
+ }
111
+
112
+ oib_url = oib_url + oib_path;
113
+ method = "GET";
114
+ if (!params.format) {
115
+ params.format = 'json';
116
+ }
117
+ if (params.method) {
118
+ method = params.method;
119
+ delete params.method;
120
+ }
121
+ params.version = params.version || <%= @version %>;
122
+ Try.these(function() {
123
+ Debug.log("About to openmail.Application.callWebService: ", {
124
+ "url": oib_url + "?" + Object.toQueryString(params)
125
+ });
126
+ openmail.Application.callWebService(
127
+ {
128
+ url: oib_url,
129
+ method: method,
130
+ parameters: params
131
+ },
132
+ function(response) {
133
+ if (response.error) {
134
+ Debug.ajaxError("Error in YAHOO.oib.callOIB", oib_url, params, response);
135
+ if (error_function) {
136
+ error_function(response);
137
+ } else {
138
+ OIB.error(oib_url, params, response);
139
+ }
140
+ } else {
141
+ Try.these(function() {
142
+ success_function(response);
143
+ });
144
+ }
145
+ });
146
+ });
147
+ };
148
+
149
+ });
150
+
151
+ OIB = {
152
+ get: function(oib_path, params, success_function, error_function, base_url) {
153
+ params.method = "GET";
154
+ OIB.call(oib_path, params, success_function, error_function, base_url);
155
+ },
156
+
157
+ post: function(oib_path, params, success_function, error_function, base_url) {
158
+ params.method = "POST";
159
+ OIB.call(oib_path, params, success_function, error_function, base_url);
160
+ },
161
+
162
+ call: function(oib_path, params, success_function, error_function, base_url) {
163
+ var success;
164
+
165
+ success = function(response) {
166
+ response = YAHOO.lang.JSON.parse(response.data);
167
+ if (response.error) {
168
+ error_function(response);
169
+ } else {
170
+ success_function(response);
171
+ }
172
+ };
173
+ YAHOO.oib.callOIB(oib_path, params, success, error_function, base_url);
174
+ },
175
+
176
+ // overwrite this function locally if you need to
177
+ error: function(url, params, response) {
178
+ var message;
179
+
180
+ message = "OIB.error: " + Object.toJSON(response) + " calling url: " + url + "?" + Object.toQueryString(params);
181
+ Debug.error(message);
182
+ // Logger.error(message);
183
+ }
184
+ };
185
+
186
+
187
+ YAHOO.oib.showError = function() {
188
+ $('main').hide();
189
+ $('utility').show();
190
+ $('loading').hide();
191
+ $('error').show();
192
+ };
193
+
194
+ YAHOO.oib.showLoading = function() {
195
+ $('main').hide();
196
+ $('utility').show();
197
+ $('error').hide();
198
+ $('loading').show();
199
+ };
200
+
201
+ Try.these(function() {
202
+
203
+ // gets the guid from the Yahoo! environment and executes the success callback
204
+ // if there is a guid, and the error callback if it's undefined
205
+ //
206
+ // YAHOO.oib.guid
207
+ //
208
+ YAHOO.oib.getGuid = function(success_function, error_function) {
209
+ openmail.Application.getParameters(function(response) {
210
+ YAHOO.oib.guid = response.user.guid;
211
+ if (YAHOO.oib.guid !== undefined) {
212
+ Try.these(
213
+ function() { success_function(YAHOO.oib.guid); }
214
+ );
215
+ }
216
+ else {
217
+ Try.these(error_function);
218
+ }
219
+ });
220
+ };
221
+ });
222
+
223
+ Try.these(function() {
224
+
225
+ // gets the ymail_wssid from the permanent store and executes the callback function
226
+ // if there is a ymail_wssid, and the error callback if it's undefined
227
+ //
228
+ // YAHOO.oib.ymail_wssid
229
+ //
230
+ YAHOO.oib.getYmailWssid = function(success_function, error_function) {
231
+ openmail.Application.getData({keys: ["ymail_wssid"]}, function(response) {
232
+ YAHOO.oib.ymail_wssid = response.data.ymail_wssid;
233
+ if (YAHOO.oib.ymail_wssid !== undefined) {
234
+ Try.these(
235
+ function() { success_function(YAHOO.oib.ymail_wssid); }
236
+ );
237
+ }
238
+ else {
239
+ Try.these(error_function);
240
+ }
241
+ });
242
+ };
243
+
244
+ });
245
+
246
+ Try.these(function() {
247
+
248
+ // gets both guid and ymail_wssid and stores them then runs the callback_function
249
+ //
250
+ // YAHOO.oib.ymail_wssid
251
+ // YAHOO.oib.guid
252
+ //
253
+ YAHOO.oib.getGuidAndYmailWssid = function(callback_function) {
254
+ YAHOO.oib.getGuid(function(guid) {
255
+ YAHOO.oib.getYmailWssid(function(ymail_wssid) {
256
+ Try.these(
257
+ function() {callback_function(guid, ymail_wssid); }
258
+ );
259
+ });
260
+ });
261
+ };
262
+
263
+
264
+ });
265
+
266
+ Try.these(function() {
267
+
268
+ // gets user's state info from /ymdp/state
269
+ // including the user's OIB login
270
+ //
271
+ YAHOO.oib.getUserState = function(success_function) {
272
+ YAHOO.oib.callOIB("ymdp/state", {}, function(response) {
273
+ response = YAHOO.lang.JSON.parse(response.data);
274
+ YAHOO.oib.response = response;
275
+ YAHOO.oib.login = response.login;
276
+ YAHOO.oib.state = response.state;
277
+
278
+ if (success_function !== undefined) {
279
+ success_function(response);
280
+ }
281
+ },
282
+ function() {
283
+ YAHOO.logger.error("Failed to get user's state");
284
+ });
285
+ };
286
+
287
+
288
+ });
289
+
290
+ Try.these(function() {
291
+
292
+ /*
293
+ YAHOO.oib.verifyUser
294
+
295
+ global to all views. calls the 'verify' action on ymdp controller and executes
296
+ a function with the result.
297
+ */
298
+ YAHOO.oib.verifyUser = function(success_function) {
299
+ YAHOO.oib.callOIB("ymdp/verify", {
300
+ ymail_guid: YAHOO.oib.guid,
301
+ ymail_wssid: YAHOO.oib.ymail_wssid
302
+ }, function(response) {
303
+ YAHOO.oib.user = YAHOO.lang.JSON.parse(response.data);
304
+ if (success_function !== undefined) {
305
+ success_function(YAHOO.oib.user);
306
+ }
307
+ });
308
+ };
309
+
310
+
311
+ /*
312
+ AUTHENTICATION
313
+
314
+ */
315
+
316
+ });
317
+
318
+ Try.these(function() {
319
+
320
+ YAHOO.oib.signInUser = function() {
321
+ YAHOO.oib.callOIB("ymdp/signin", {}, function(response) {
322
+ YAHOO.oib.response = YAHOO.lang.JSON.parse(response.data);
323
+
324
+ if (YAHOO.oib.response.ymail_wssid === "false") {
325
+ // signin didn't work properly, display an error
326
+ YAHOO.showError();
327
+ } else {
328
+ // store ymail_wssid in permanent store
329
+ openmail.Application.setData({keys : {ymail_wssid: YAHOO.oib.response.ymail_wssid}});
330
+ YAHOO.oib.ymail_wssid = YAHOO.oib.response.ymail_wssid;
331
+
332
+ YAHOO.oib.verifyUser(YAHOO.launcher.launchSettings);
333
+ }
334
+ });
335
+ };
336
+
337
+ });
338
+
339
+ YAHOO.oib.clearPermanentStore = function() {
340
+ openmail.Application.setData({keys : {ymail_wssid: null}});
341
+ YAHOO.oib.guid = null;
342
+ YAHOO.oib.ymail_wssid = null;
343
+ };
344
+
345
+
346
+ YAHOO.oib.setTimeoutInSeconds = function(callback_function, interval) {
347
+ setTimeout(callback_function, interval * 1000);
348
+ };
349
+
350
+ YAHOO.oib.deactivateUser = function() {
351
+ YAHOO.oib.getGuidAndYmailWssid(function() {
352
+ var guid, ymail_wssid;
353
+
354
+ guid = YAHOO.oib.guid;
355
+ ymail_wssid = YAHOO.oib.ymail_wssid;
356
+
357
+ YAHOO.oib.clearPermanentStore();
358
+
359
+ OIB.post("/ymdp/deactivate", {
360
+ ymail_guid: guid,
361
+ ymail_wssid: ymail_wssid
362
+ },
363
+ function(response) {
364
+ // YAHOO.logger.info("Finished deactivating user");
365
+ if ("<%= @view %>" !== "deactivate") {
366
+ YAHOO.launcher.launchGoodbye();
367
+ }
368
+ });
369
+ });
370
+ };
371
+
372
+
373
+ YAHOO.oib.submitForm = function(url, form_name, success_function, error_function) {
374
+ Try.these(function() {
375
+ $('submit_link').hide();
376
+ $('submit_spinner').show();
377
+ });
378
+
379
+ var form_id, params;
380
+
381
+ form_id = form_name + "_form";
382
+
383
+ params = {};
384
+ params["method"] = "POST";
385
+ params[form_name] = Object.toJSON($(form_id).serialize(true));
386
+
387
+ YAHOO.oib.callOIB(url, params, success_function,
388
+ function(response) {
389
+ Try.these(function() {
390
+ $('submit_spinner').hide();
391
+ $('submit_link').show();
392
+ });
393
+
394
+ YAHOO.flash.t.error('PROBLEM_SUBMITTING', 'settings');
395
+ YAHOO.logger.error("Error submitting params: " + Object.toJSON(params) + " Error: " + Object.toJSON(response.error));
396
+ }
397
+ );
398
+ return false;
399
+ };
400
+
401
+
402
+ YAHOO.oib.showTranslations = function() {
403
+ Debug.log("begin YAHOO.oib.showTranslations");
404
+ Try.these(YAHOO.init.translateToolbar);
405
+ Try.these(YAHOO.init.translateFooter);
406
+ Try.these(I18n.findAndTranslateAll);
407
+
408
+ // define I18n.localTranslations in the view template
409
+ Try.these(I18n.localTranslations);
410
+
411
+ Debug.log("end YAHOO.oib.showTranslations");
412
+ };
413
+
414
+ /*
415
+
416
+ INITIALIZER CODE
417
+
418
+ */
419
+
420
+ YAHOO.namespace("init");
421
+
422
+ // Adds behaviors/observers to elements on the page
423
+ //
424
+ YAHOO.init.addBehaviors = function() {
425
+ // overwrite this function locally
426
+ };
427
+
428
+ // hide the loading screen and show the main body of the summary
429
+ YAHOO.init.show = function() {
430
+ $('utility').hide();
431
+ $('error').hide();
432
+ $('loading').hide();
433
+ $('main').show();
434
+ };
435
+
436
+
437
+ // Local initializer. When your page starts up, this method will be called after fetching the user's guid and ymail wssid.
438
+ //
439
+ YAHOO.init.local = function() {
440
+ alert("This hasn't been overwritten.");
441
+ // overwrite this function locally
442
+ };
443
+
444
+ // To be run before any other initializers have run.
445
+ //
446
+ YAHOO.init.before = function() {
447
+ // overwrite this function locally
448
+ };
449
+
450
+ // Main startup code. Overwrite this function to execute after YAHOO.init.before and before YAHOO.init.after.
451
+ //
452
+ YAHOO.init.startup = function() {
453
+ Debug.log("init.startup");
454
+ // gets the user
455
+ YAHOO.oib.getGuid(function(guid) {
456
+ Debug.log("inside getGuid callback");
457
+ YAHOO.oib.getUserState(function(response) {
458
+ Debug.log("inside getUserState callback");
459
+ Try.these(YAHOO.init.local);
460
+ });
461
+ });
462
+ };
463
+
464
+ YAHOO.init.abTesting = function() {
465
+ // to enable abTesting in your view, overwrite this file locally.
466
+ //
467
+ // be sure to finish your post-Ajax callback with YAHOO.init.show()
468
+ //
469
+ Try.these(YAHOO.init.show);
470
+ Try.these(YAHOO.init.after);
471
+ };
472
+
473
+ // Finishing code. Runs after startup, executes translations and behaviors. Shows the page and then
474
+ // runs the A/B testing callback, which in turn will execute the last callbacks.
475
+ //
476
+ YAHOO.init.finish = function() {
477
+ Debug.info("init.finish for view <%= @view %>");
478
+ Try.these(YAHOO.oib.showTranslations);
479
+ Try.these(YAHOO.init.addBehaviors);
480
+ Try.these(YAHOO.init.abTesting);
481
+ YAHOO.oib.page_loaded = true;
482
+ Debug.info("finished init.finish for view <%= @view %>");
483
+ };
484
+
485
+ // Post-initalizer. Very last thing that runs, after content has been shown.
486
+ //
487
+ YAHOO.init.after = function() {
488
+ // overwrite this function locally
489
+ };
490
+
491
+ // Execute the before, startup and after methods. Do not overwrite. (Change YAHOO.init.startup to create a custom initializer.)
492
+ YAHOO.oib.init = function() {
493
+ // Debug.profile("loading");
494
+ Debug.info("OIB.init for view <%= @view %>", "<%= @message %>");
495
+ try {
496
+ YAHOO.init.resources();
497
+ I18n.addLanguageToBody();
498
+ I18n.translateLoading();
499
+ I18n.translateError();
500
+ YAHOO.init.before();
501
+ YAHOO.init.startup();
502
+ } catch(err_f) {
503
+ YAHOO.oib.showError();
504
+ Debug.error("Error in YAHOO.oib.init", err_f);
505
+ }
506
+ };
507
+
508
+ YAHOO.init.resources = function() {
509
+ Debug.log("about to call I18n.setResources");
510
+
511
+ I18n.assets_path = "<%= @assets_path %>/yrb";
512
+
513
+ I18n.availableLanguages = <%= supported_languages.to_json %>;
514
+
515
+ I18n.currentLanguage = OpenMailIntl.findBestLanguage(I18n.availableLanguages);
516
+
517
+ I18n.setResources();
518
+
519
+ Debug.log("finished calling I18n.setResources");
520
+ };
521
+
522
+ // Contains the last two callbacks, to show the page contents and run post-show function. Do not overwrite.
523
+ YAHOO.init.showAndFinish = function() {
524
+ Debug.log("YAHOO.init.showAndFinish");
525
+ YAHOO.init.show();
526
+ YAHOO.init.after();
527
+ };
528
+
529
+ YAHOO.init.translateToolbar = function() {
530
+ Debug.log("begin YAHOO.init.translateToolbar");
531
+ Try.these(function() {
532
+ I18n.update('help_link', 'HELP');
533
+ I18n.update('settings_link', 'SETTINGS');
534
+ I18n.update('identity_link', 'IDENTITY');
535
+ });
536
+ Try.these(YAHOO.init.translateGreeting);
537
+ Try.these(YAHOO.init.translateSubhead);
538
+ Debug.log("end YAHOO.init.translateToolbar");
539
+ };
540
+
541
+ YAHOO.init.translateGreeting = function() {
542
+ Debug.log("begin YAHOO.init.translateGreeting");
543
+ var username;
544
+ username = YAHOO.oib.login;
545
+ I18n.update('greeting', 'GREETING', [username]);
546
+ };
547
+
548
+ YAHOO.init.translateSubhead = function() {
549
+ try {
550
+ var total_organized_messages, formatted_date;
551
+
552
+ total_organized_messages = Try.these(function() {
553
+ return YAHOO.oib.response.total_organized_messages;
554
+ }
555
+ );
556
+
557
+ formatted_date = Try.these(function() {
558
+ var since_date;
559
+ since_date = YAHOO.oib.response.since_date.s;
560
+ return formatUnixDate(since_date);
561
+ });
562
+
563
+ if (total_organized_messages && formatted_date) {
564
+ I18n.update('toolbar_subhead', 'TOOLBAR_SUBHEAD', [total_organized_messages, formatted_date]);
565
+ }
566
+ } catch(err) {
567
+ Debug.log("error in YAHOO.init.translateSubhead: " + err);
568
+ }
569
+ };
570
+
571
+
572
+ YAHOO.init.translateFooter = function() {
573
+ I18n.update('copyright', 'COPYRIGHT');
574
+ I18n.update('about_link', 'ABOUT');
575
+ I18n.update('support_link', 'SUPPORT');
576
+ I18n.update('contact_link', 'CONTACT');
577
+ I18n.update('privacy_link', 'PRIVACY');
578
+ I18n.update('terms_and_conditions_link', 'TERMS_AND_CONDITIONS');
579
+ };
580
+