ymdp 0.8.5 → 0.8.6
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/ymdp.gemspec +1 -13
- metadata +3 -15
- data/lib/ymdp/javascripts/jquery/ab_testing.js +0 -116
- data/lib/ymdp/javascripts/jquery/ajax.js +0 -174
- data/lib/ymdp/javascripts/jquery/application.js +0 -135
- data/lib/ymdp/javascripts/jquery/authorization.js +0 -120
- data/lib/ymdp/javascripts/jquery/browser.js +0 -36
- data/lib/ymdp/javascripts/jquery/debug.js +0 -98
- data/lib/ymdp/javascripts/jquery/init.js +0 -140
- data/lib/ymdp/javascripts/jquery/launcher.js +0 -153
- data/lib/ymdp/javascripts/jquery/logger.js +0 -27
- data/lib/ymdp/javascripts/jquery/params.js +0 -27
- data/lib/ymdp/javascripts/jquery/reporter.js +0 -47
- data/lib/ymdp/javascripts/jquery/user.js +0 -205
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.6
|
data/ymdp.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ymdp}
|
8
|
-
s.version = "0.8.
|
8
|
+
s.version = "0.8.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Isaac Priestley"]
|
@@ -54,36 +54,24 @@ Gem::Specification.new do |s|
|
|
54
54
|
"lib/ymdp/generator/templates/stylesheet.css",
|
55
55
|
"lib/ymdp/generator/templates/translation.pres",
|
56
56
|
"lib/ymdp/generator/templates/view.html.haml",
|
57
|
-
"lib/ymdp/javascripts/jquery/ab_testing.js",
|
58
57
|
"lib/ymdp/javascripts/jquery/ab_testing.js.coffee",
|
59
|
-
"lib/ymdp/javascripts/jquery/ajax.js",
|
60
58
|
"lib/ymdp/javascripts/jquery/ajax.js.coffee",
|
61
|
-
"lib/ymdp/javascripts/jquery/application.js",
|
62
59
|
"lib/ymdp/javascripts/jquery/application.js.coffee",
|
63
|
-
"lib/ymdp/javascripts/jquery/authorization.js",
|
64
60
|
"lib/ymdp/javascripts/jquery/authorization.js.coffee",
|
65
|
-
"lib/ymdp/javascripts/jquery/browser.js",
|
66
61
|
"lib/ymdp/javascripts/jquery/browser.js.coffee",
|
67
62
|
"lib/ymdp/javascripts/jquery/data.js",
|
68
63
|
"lib/ymdp/javascripts/jquery/data.js.coffee",
|
69
|
-
"lib/ymdp/javascripts/jquery/debug.js",
|
70
64
|
"lib/ymdp/javascripts/jquery/debug.js.coffee",
|
71
65
|
"lib/ymdp/javascripts/jquery/education.js",
|
72
66
|
"lib/ymdp/javascripts/jquery/flash.js",
|
73
67
|
"lib/ymdp/javascripts/jquery/help.js",
|
74
68
|
"lib/ymdp/javascripts/jquery/i18n.js",
|
75
|
-
"lib/ymdp/javascripts/jquery/init.js",
|
76
69
|
"lib/ymdp/javascripts/jquery/init.js.coffee",
|
77
|
-
"lib/ymdp/javascripts/jquery/launcher.js",
|
78
70
|
"lib/ymdp/javascripts/jquery/launcher.js.coffee",
|
79
|
-
"lib/ymdp/javascripts/jquery/logger.js",
|
80
71
|
"lib/ymdp/javascripts/jquery/logger.js.coffee",
|
81
|
-
"lib/ymdp/javascripts/jquery/params.js",
|
82
72
|
"lib/ymdp/javascripts/jquery/params.js.coffee",
|
83
|
-
"lib/ymdp/javascripts/jquery/reporter.js",
|
84
73
|
"lib/ymdp/javascripts/jquery/reporter.js.coffee",
|
85
74
|
"lib/ymdp/javascripts/jquery/tag_helper.js",
|
86
|
-
"lib/ymdp/javascripts/jquery/user.js",
|
87
75
|
"lib/ymdp/javascripts/jquery/user.js.coffee",
|
88
76
|
"lib/ymdp/javascripts/prototype/ab_testing.js",
|
89
77
|
"lib/ymdp/javascripts/prototype/ajax.js",
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ymdp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 51
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 6
|
10
|
+
version: 0.8.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Isaac Priestley
|
@@ -587,36 +587,24 @@ files:
|
|
587
587
|
- lib/ymdp/generator/templates/stylesheet.css
|
588
588
|
- lib/ymdp/generator/templates/translation.pres
|
589
589
|
- lib/ymdp/generator/templates/view.html.haml
|
590
|
-
- lib/ymdp/javascripts/jquery/ab_testing.js
|
591
590
|
- lib/ymdp/javascripts/jquery/ab_testing.js.coffee
|
592
|
-
- lib/ymdp/javascripts/jquery/ajax.js
|
593
591
|
- lib/ymdp/javascripts/jquery/ajax.js.coffee
|
594
|
-
- lib/ymdp/javascripts/jquery/application.js
|
595
592
|
- lib/ymdp/javascripts/jquery/application.js.coffee
|
596
|
-
- lib/ymdp/javascripts/jquery/authorization.js
|
597
593
|
- lib/ymdp/javascripts/jquery/authorization.js.coffee
|
598
|
-
- lib/ymdp/javascripts/jquery/browser.js
|
599
594
|
- lib/ymdp/javascripts/jquery/browser.js.coffee
|
600
595
|
- lib/ymdp/javascripts/jquery/data.js
|
601
596
|
- lib/ymdp/javascripts/jquery/data.js.coffee
|
602
|
-
- lib/ymdp/javascripts/jquery/debug.js
|
603
597
|
- lib/ymdp/javascripts/jquery/debug.js.coffee
|
604
598
|
- lib/ymdp/javascripts/jquery/education.js
|
605
599
|
- lib/ymdp/javascripts/jquery/flash.js
|
606
600
|
- lib/ymdp/javascripts/jquery/help.js
|
607
601
|
- lib/ymdp/javascripts/jquery/i18n.js
|
608
|
-
- lib/ymdp/javascripts/jquery/init.js
|
609
602
|
- lib/ymdp/javascripts/jquery/init.js.coffee
|
610
|
-
- lib/ymdp/javascripts/jquery/launcher.js
|
611
603
|
- lib/ymdp/javascripts/jquery/launcher.js.coffee
|
612
|
-
- lib/ymdp/javascripts/jquery/logger.js
|
613
604
|
- lib/ymdp/javascripts/jquery/logger.js.coffee
|
614
|
-
- lib/ymdp/javascripts/jquery/params.js
|
615
605
|
- lib/ymdp/javascripts/jquery/params.js.coffee
|
616
|
-
- lib/ymdp/javascripts/jquery/reporter.js
|
617
606
|
- lib/ymdp/javascripts/jquery/reporter.js.coffee
|
618
607
|
- lib/ymdp/javascripts/jquery/tag_helper.js
|
619
|
-
- lib/ymdp/javascripts/jquery/user.js
|
620
608
|
- lib/ymdp/javascripts/jquery/user.js.coffee
|
621
609
|
- lib/ymdp/javascripts/prototype/ab_testing.js
|
622
610
|
- lib/ymdp/javascripts/prototype/ajax.js
|
@@ -1,116 +0,0 @@
|
|
1
|
-
|
2
|
-
// DO NOT USE the @view instance variable in any files in /app/javascripts/base.
|
3
|
-
// The way they are cached makes it not safe to do so.
|
4
|
-
|
5
|
-
var ABTesting;
|
6
|
-
|
7
|
-
ABTesting = {
|
8
|
-
on: true,
|
9
|
-
languages: <%= english_languages.to_json %>,
|
10
|
-
|
11
|
-
enable: function() {
|
12
|
-
ABTesting.on = true;
|
13
|
-
},
|
14
|
-
|
15
|
-
disable: function() {
|
16
|
-
ABTesting.on = false;
|
17
|
-
},
|
18
|
-
|
19
|
-
randomAB: function() {
|
20
|
-
return Math.floor(Math.random()*2) ? "a" : "b";
|
21
|
-
},
|
22
|
-
|
23
|
-
get: function(content_id) {
|
24
|
-
var url, host;
|
25
|
-
|
26
|
-
url = "ymdp/experiment";
|
27
|
-
|
28
|
-
OIB.get(url, {
|
29
|
-
"domain": View.domain
|
30
|
-
}, function(response) {
|
31
|
-
ABTesting.success(content_id, response);
|
32
|
-
}, function(response) {
|
33
|
-
ABTesting.error(response);
|
34
|
-
});
|
35
|
-
},
|
36
|
-
|
37
|
-
post: function(params) {
|
38
|
-
params = params || {};
|
39
|
-
OIB.post("ymdp/view", params, function(response) {
|
40
|
-
Debug.log("ABTesting.post success", response);
|
41
|
-
}, function(response) {
|
42
|
-
Debug.error("ABTesting.post error", response);
|
43
|
-
});
|
44
|
-
},
|
45
|
-
|
46
|
-
postView: function(experimentId) {
|
47
|
-
var params;
|
48
|
-
|
49
|
-
params = {
|
50
|
-
"var": ABTesting.variable
|
51
|
-
};
|
52
|
-
if (experimentId) {
|
53
|
-
params["experiment_id"] = experimentId;
|
54
|
-
}
|
55
|
-
Debug.log("ABTesting.postView: ", params);
|
56
|
-
ABTesting.post(params);
|
57
|
-
},
|
58
|
-
|
59
|
-
setVariable: function(value) {
|
60
|
-
ABTesting.variable = value;
|
61
|
-
},
|
62
|
-
|
63
|
-
apply: function(content_id, language) {
|
64
|
-
if (ABTesting.on && $.inArray(language, ABTesting.languages) >= 0) {
|
65
|
-
var index;
|
66
|
-
|
67
|
-
index = ABTesting.randomAB();
|
68
|
-
ABTesting.setVariable(index);
|
69
|
-
|
70
|
-
ABTesting.get(content_id);
|
71
|
-
} else {
|
72
|
-
YMDP.Init.showAndFinish();
|
73
|
-
}
|
74
|
-
},
|
75
|
-
|
76
|
-
error: function(data) {
|
77
|
-
Debug.log("applyError", data);
|
78
|
-
if (data.error !== 3002) {
|
79
|
-
Debug.error("Received body contents fetch error on page " + View.name + ": " + data.error + ' - ' + data.errorMsg);
|
80
|
-
}
|
81
|
-
YMDP.Init.showAndFinish();
|
82
|
-
},
|
83
|
-
|
84
|
-
success: function(content_id, response) {
|
85
|
-
var content, experiment, experimentId;
|
86
|
-
Debug.log("ABTesting.success", response);
|
87
|
-
|
88
|
-
experiment = response.experiment;
|
89
|
-
|
90
|
-
if (experiment) {
|
91
|
-
content = ABTesting.content(experiment);
|
92
|
-
experimentId = response.experiment.id;
|
93
|
-
|
94
|
-
ABTesting.postView(experimentId);
|
95
|
-
ABTesting.replaceContents(content_id, content);
|
96
|
-
} else {
|
97
|
-
Debug.log("No experiment running");
|
98
|
-
}
|
99
|
-
|
100
|
-
YMDP.Init.showAndFinish();
|
101
|
-
},
|
102
|
-
|
103
|
-
replaceContents: function(content_id, content) {
|
104
|
-
openmail.Application.filterHTML({html: content}, function(response) {
|
105
|
-
if (response.html && response.html !== '') {
|
106
|
-
$("#" + content_id).html(response.html);
|
107
|
-
}
|
108
|
-
YMDP.Init.showAndFinish();
|
109
|
-
});
|
110
|
-
},
|
111
|
-
|
112
|
-
content: function(experiment) {
|
113
|
-
return experiment["content_" + ABTesting.variable];
|
114
|
-
}
|
115
|
-
};
|
116
|
-
|
@@ -1,174 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
CALL OIB
|
3
|
-
|
4
|
-
global to every view. sends Ajax call to OtherInbox.
|
5
|
-
*/
|
6
|
-
|
7
|
-
// send an Ajax call to OtherInbox.
|
8
|
-
// takes as parameters:
|
9
|
-
// - the path to call
|
10
|
-
// - any additional query string params
|
11
|
-
// - a callback function to run when the Ajax call is a success
|
12
|
-
// - an optional error function
|
13
|
-
// - a base URL to use, if you don't want this call going to YMDP.Constants.base_url
|
14
|
-
// TODO refactor this function to take a second params hash where we could stick success_function, error_function, and base_url
|
15
|
-
|
16
|
-
OIB = {
|
17
|
-
get: function(oib_path, params, success_function, error_function, base_url) {
|
18
|
-
params.method = "GET";
|
19
|
-
OIB.call(oib_path, params, success_function, error_function, base_url);
|
20
|
-
},
|
21
|
-
|
22
|
-
post: function(oib_path, params, success_function, error_function, base_url) {
|
23
|
-
params.method = "POST";
|
24
|
-
OIB.call(oib_path, params, success_function, error_function, base_url);
|
25
|
-
},
|
26
|
-
|
27
|
-
call: function(oib_path, params, success_function, error_function, base_url) {
|
28
|
-
var success;
|
29
|
-
|
30
|
-
success = function(response) {
|
31
|
-
response = JSON.parse(response.data);
|
32
|
-
if (response.error) {
|
33
|
-
if (error_function) {
|
34
|
-
error_function(response);
|
35
|
-
} else {
|
36
|
-
YMDP.showError(
|
37
|
-
{
|
38
|
-
"method": "OIB.call",
|
39
|
-
"description": "error callback"
|
40
|
-
}
|
41
|
-
); // OIB.call response: error
|
42
|
-
}
|
43
|
-
} else {
|
44
|
-
if (success_function) {
|
45
|
-
success_function(response);
|
46
|
-
} else {
|
47
|
-
YMDP.showError(
|
48
|
-
{
|
49
|
-
"method": "OIB.call",
|
50
|
-
"description": "success callback error"
|
51
|
-
}
|
52
|
-
); // OIB.call response: success error
|
53
|
-
}
|
54
|
-
}
|
55
|
-
};
|
56
|
-
OIB.request(oib_path, params, success, error_function, base_url);
|
57
|
-
},
|
58
|
-
|
59
|
-
ajax_response: false,
|
60
|
-
|
61
|
-
ajax: function(url, method, params, success_function, error_function) {
|
62
|
-
var debug;
|
63
|
-
|
64
|
-
params = params || {};
|
65
|
-
params["application"] = View.application;
|
66
|
-
|
67
|
-
debug = !params["_hide_debug"];
|
68
|
-
|
69
|
-
if (debug) {
|
70
|
-
Debug.log("OIB.ajax: About to call openmail.Application.callWebService: ", {
|
71
|
-
"method": method,
|
72
|
-
"url": url + "?" + $.param(params)
|
73
|
-
});
|
74
|
-
}
|
75
|
-
|
76
|
-
openmail.Application.callWebService(
|
77
|
-
{
|
78
|
-
url: url,
|
79
|
-
method: method,
|
80
|
-
parameters: params
|
81
|
-
},
|
82
|
-
function(response) {
|
83
|
-
// response from Ajax call was a 200 response
|
84
|
-
//
|
85
|
-
if (debug) {
|
86
|
-
Debug.log("inside response from openMail.Application.callWebService", response);
|
87
|
-
}
|
88
|
-
if (response.error) {
|
89
|
-
// response has a parameter called "error"
|
90
|
-
//
|
91
|
-
if (error_function) {
|
92
|
-
error_function(response);
|
93
|
-
} else {
|
94
|
-
if (debug) {
|
95
|
-
OIB.error(url, params, response);
|
96
|
-
}
|
97
|
-
}
|
98
|
-
} else {
|
99
|
-
// SUCCESSFUL RESPONSE
|
100
|
-
//
|
101
|
-
// response doesn't have a parameter called "error"
|
102
|
-
//
|
103
|
-
success_function(response);
|
104
|
-
}
|
105
|
-
});
|
106
|
-
},
|
107
|
-
|
108
|
-
request: function(oib_path, params, success_function, error_function, base_url) {
|
109
|
-
var oib_url, method, debug;
|
110
|
-
|
111
|
-
debug = !params["_hide_debug"];
|
112
|
-
|
113
|
-
if (debug) {
|
114
|
-
Debug.log("inside OIB.request: ", {
|
115
|
-
"oib_path": oib_path,
|
116
|
-
"params": JSON.stringify(params)
|
117
|
-
});
|
118
|
-
}
|
119
|
-
|
120
|
-
oib_url = base_url ? base_url : YMDP.Constants.base_url;
|
121
|
-
|
122
|
-
if (!(oib_path && typeof(oib_path) === "string")) {
|
123
|
-
throw("OIB.request must define oib_path");
|
124
|
-
}
|
125
|
-
if (!(params && typeof(params) === "object")) {
|
126
|
-
throw("OIB.request must define params");
|
127
|
-
}
|
128
|
-
|
129
|
-
oib_url = oib_url + oib_path;
|
130
|
-
method = "GET";
|
131
|
-
if (!params.format) {
|
132
|
-
params.format = 'json';
|
133
|
-
}
|
134
|
-
if (params.method) {
|
135
|
-
method = params.method;
|
136
|
-
delete params.method;
|
137
|
-
}
|
138
|
-
params.version = params.version || <%= @version %>;
|
139
|
-
|
140
|
-
if (debug) {
|
141
|
-
Debug.log("about to call OIB.ajax");
|
142
|
-
}
|
143
|
-
|
144
|
-
OIB.ajax(oib_url, method, params, success_function, error_function);
|
145
|
-
},
|
146
|
-
|
147
|
-
// overwrite this function locally if you need to
|
148
|
-
error: function(url, params, response) {
|
149
|
-
var message, debug;
|
150
|
-
|
151
|
-
debug = !params["_hide_debug"];
|
152
|
-
|
153
|
-
if (debug) {
|
154
|
-
message = "OIB.error: " + JSON.stringify(response) + " calling url: " + url + "?" + $.param(params);
|
155
|
-
Debug.error(message);
|
156
|
-
}
|
157
|
-
},
|
158
|
-
|
159
|
-
// advance the user to the next state in the signup process
|
160
|
-
//
|
161
|
-
advance: function(success_function, error_function) {
|
162
|
-
OIB.post("ymdp/state", {}, function(response) {
|
163
|
-
Debug.log("Scanning.next success", response);
|
164
|
-
if (success_function) {
|
165
|
-
success_function(response);
|
166
|
-
}
|
167
|
-
}, function(response) {
|
168
|
-
Debug.error("Scanning.next error", response);
|
169
|
-
if (error_function) {
|
170
|
-
error_function(response);
|
171
|
-
}
|
172
|
-
});
|
173
|
-
}
|
174
|
-
};
|
@@ -1,135 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
APPLICATION
|
3
|
-
|
4
|
-
// DO NOT USE the @view instance variable in any files in /app/javascripts/base.
|
5
|
-
// The way they are cached makes it not safe to do so.
|
6
|
-
|
7
|
-
*/
|
8
|
-
|
9
|
-
var OIB, YMDP;
|
10
|
-
|
11
|
-
/*
|
12
|
-
GLOBAL CONSTANTS
|
13
|
-
*/
|
14
|
-
|
15
|
-
var View = {
|
16
|
-
application: "<%= @application_name %>",
|
17
|
-
domain: "<%= @domain %>",
|
18
|
-
page_loaded: false,
|
19
|
-
|
20
|
-
authorized: function(user) {
|
21
|
-
return (user[View.application + "_user"]);
|
22
|
-
}
|
23
|
-
};
|
24
|
-
|
25
|
-
var YMDP = {
|
26
|
-
Constants: {},
|
27
|
-
Init: {}
|
28
|
-
};
|
29
|
-
|
30
|
-
function unixTimeToDate(unixtime) {
|
31
|
-
return new Date(unixtime * 1000);
|
32
|
-
}
|
33
|
-
|
34
|
-
function formatUnixDate(unixtime) {
|
35
|
-
var date;
|
36
|
-
date = unixTimeToDate(unixtime);
|
37
|
-
return date.toString("MMMM d, yyyy");
|
38
|
-
}
|
39
|
-
|
40
|
-
// Shows the error view.
|
41
|
-
//
|
42
|
-
// YMDP.showError({
|
43
|
-
// heading: "optional heading text can overwrite the error view's heading",
|
44
|
-
// message: "optional message can overwrite the view's first paragraph",
|
45
|
-
// retry: "hide"
|
46
|
-
// });
|
47
|
-
//
|
48
|
-
// Set the "retry" option to "hide" to hide the Retry button.
|
49
|
-
//
|
50
|
-
|
51
|
-
YMDP.showError = function(options) {
|
52
|
-
var params;
|
53
|
-
|
54
|
-
options = options || {};
|
55
|
-
|
56
|
-
if (options["heading"]) {
|
57
|
-
$("#error_1").html(options["heading"]);
|
58
|
-
}
|
59
|
-
if (options["message"]) {
|
60
|
-
$("#error_2").html(options["message"]);
|
61
|
-
}
|
62
|
-
if (options["retry"] && options["retry"] === "hide") {
|
63
|
-
$("#retry_button_container").hide();
|
64
|
-
}
|
65
|
-
|
66
|
-
params = {};
|
67
|
-
params["description"] = options["description"];
|
68
|
-
params["method_name"] = options["method"];
|
69
|
-
params["error"] = JSON.stringify(options["error"]);
|
70
|
-
params["page"] = View.name;
|
71
|
-
|
72
|
-
Reporter.error(YMDP.guid, params);
|
73
|
-
$('#main').hide();
|
74
|
-
$('#utility').show();
|
75
|
-
$('#loading').hide();
|
76
|
-
$('#error').show();
|
77
|
-
};
|
78
|
-
|
79
|
-
YMDP.showLoading = function() {
|
80
|
-
$('#main').hide();
|
81
|
-
$('#utility').show();
|
82
|
-
$('#error').hide();
|
83
|
-
$('#loading').show();
|
84
|
-
};
|
85
|
-
|
86
|
-
YMDP.Init.upgradeCheck = function(success_callback, failure_callback) {
|
87
|
-
// test for Minty
|
88
|
-
//
|
89
|
-
openmail.Application.getParameters(function(response) {
|
90
|
-
if (response.version === "2") {
|
91
|
-
|
92
|
-
// Minty-only code goes here
|
93
|
-
|
94
|
-
Debug.log("Minty found");
|
95
|
-
|
96
|
-
success_callback();
|
97
|
-
} else {
|
98
|
-
// non-Minty
|
99
|
-
|
100
|
-
if (failure_callback) {
|
101
|
-
failure_callback();
|
102
|
-
} else {
|
103
|
-
YMDP.Init.upgrade();
|
104
|
-
}
|
105
|
-
}
|
106
|
-
});
|
107
|
-
};
|
108
|
-
|
109
|
-
YMDP.Init.upgrade = function() {
|
110
|
-
YMDP.showTranslations();
|
111
|
-
|
112
|
-
View.page_loaded = true;
|
113
|
-
|
114
|
-
$('#loading').hide();
|
115
|
-
$('#error').hide();
|
116
|
-
$('#upgrade').show();
|
117
|
-
};
|
118
|
-
|
119
|
-
YMDP.setTimeoutInSeconds = function(callback_function, interval) {
|
120
|
-
setTimeout(callback_function, interval * 1000);
|
121
|
-
};
|
122
|
-
|
123
|
-
YMDP.showTranslations = function() {
|
124
|
-
Debug.log("begin YMDP.showTranslations");
|
125
|
-
I18n.findAndTranslateAll();
|
126
|
-
|
127
|
-
// define I18n.localTranslations in the view template
|
128
|
-
I18n.localTranslations();
|
129
|
-
|
130
|
-
Debug.log("end YMDP.showTranslations");
|
131
|
-
};
|
132
|
-
|
133
|
-
String.prototype.capitalize = function() {
|
134
|
-
return this.charAt(0).toUpperCase() + this.slice(1);
|
135
|
-
}
|