roroacms 0.0.7.1 → 0.0.7.2
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.
- checksums.yaml +4 -4
- data/app/assets/images/roroacms/admin/favicon.ico +0 -0
- data/app/assets/javascripts/roroacms/admin/site.js +7 -0
- data/app/assets/stylesheets/roroacms/admin/main.css.scss +14 -0
- data/app/helpers/roroacms/media_helper.rb +1 -0
- data/app/helpers/roroacms/menu_helper.rb +26 -15
- data/app/views/layouts/roroacms/admin.html.erb +2 -2
- data/app/views/roroacms/admin/settings/index.html.erb +2 -2
- data/docs/Makefile +177 -0
- data/docs/_build/doctrees/environment.pickle +0 -0
- data/docs/_build/doctrees/index.doctree +0 -0
- data/docs/_build/html/.buildinfo +4 -0
- data/docs/_build/html/_sources/index.txt +41 -0
- data/docs/_build/html/_static/ajax-loader.gif +0 -0
- data/docs/_build/html/_static/basic.css +537 -0
- data/docs/_build/html/_static/comment-bright.png +0 -0
- data/docs/_build/html/_static/comment-close.png +0 -0
- data/docs/_build/html/_static/comment.png +0 -0
- data/docs/_build/html/_static/default.css +256 -0
- data/docs/_build/html/_static/doctools.js +238 -0
- data/docs/_build/html/_static/down-pressed.png +0 -0
- data/docs/_build/html/_static/down.png +0 -0
- data/docs/_build/html/_static/file.png +0 -0
- data/docs/_build/html/_static/jquery.js +2 -0
- data/docs/_build/html/_static/minus.png +0 -0
- data/docs/_build/html/_static/plus.png +0 -0
- data/docs/_build/html/_static/pygments.css +62 -0
- data/docs/_build/html/_static/searchtools.js +622 -0
- data/docs/_build/html/_static/sidebar.js +159 -0
- data/docs/_build/html/_static/underscore.js +31 -0
- data/docs/_build/html/_static/up-pressed.png +0 -0
- data/docs/_build/html/_static/up.png +0 -0
- data/docs/_build/html/_static/websupport.js +808 -0
- data/docs/_build/html/genindex.html +92 -0
- data/docs/_build/html/index.html +138 -0
- data/docs/_build/html/objects.inv +0 -0
- data/docs/_build/html/search.html +99 -0
- data/docs/_build/html/searchindex.js +1 -0
- data/docs/_images/logo.png +0 -0
- data/docs/_themes/roroa_rtd_theme/__init__.py +17 -0
- data/docs/_themes/roroa_rtd_theme/breadcrumbs.html +19 -0
- data/docs/_themes/roroa_rtd_theme/footer.html +31 -0
- data/docs/_themes/roroa_rtd_theme/layout.html +161 -0
- data/docs/_themes/roroa_rtd_theme/layout_old.html +205 -0
- data/docs/_themes/roroa_rtd_theme/search.html +50 -0
- data/docs/_themes/roroa_rtd_theme/searchbox.html +7 -0
- data/docs/_themes/roroa_rtd_theme/static/css/badge_only.css +1 -0
- data/docs/_themes/roroa_rtd_theme/static/css/sylius.css +57 -0
- data/docs/_themes/roroa_rtd_theme/static/css/theme.css +3224 -0
- data/docs/_themes/roroa_rtd_theme/static/fonts/FontAwesome.otf +0 -0
- data/docs/_themes/roroa_rtd_theme/static/fonts/fontawesome-webfont.eot +0 -0
- data/docs/_themes/roroa_rtd_theme/static/fonts/fontawesome-webfont.svg +414 -0
- data/docs/_themes/roroa_rtd_theme/static/fonts/fontawesome-webfont.ttf +0 -0
- data/docs/_themes/roroa_rtd_theme/static/fonts/fontawesome-webfont.woff +0 -0
- data/docs/_themes/roroa_rtd_theme/static/img/logo.png +0 -0
- data/docs/_themes/roroa_rtd_theme/static/js/theme.js +47 -0
- data/docs/_themes/roroa_rtd_theme/theme.conf +8 -0
- data/docs/_themes/roroa_rtd_theme/versions.html +37 -0
- data/docs/conf.py +259 -0
- data/docs/index.rst +41 -0
- data/docs/make.bat +242 -0
- data/lib/roroacms/engine.rb +1 -1
- data/lib/roroacms/version.rb +1 -1
- metadata +318 -3
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,256 @@
|
|
1
|
+
/*
|
2
|
+
* default.css_t
|
3
|
+
* ~~~~~~~~~~~~~
|
4
|
+
*
|
5
|
+
* Sphinx stylesheet -- default theme.
|
6
|
+
*
|
7
|
+
* :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
|
8
|
+
* :license: BSD, see LICENSE for details.
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
@import url("basic.css");
|
13
|
+
|
14
|
+
/* -- page layout ----------------------------------------------------------- */
|
15
|
+
|
16
|
+
body {
|
17
|
+
font-family: sans-serif;
|
18
|
+
font-size: 100%;
|
19
|
+
background-color: #11303d;
|
20
|
+
color: #000;
|
21
|
+
margin: 0;
|
22
|
+
padding: 0;
|
23
|
+
}
|
24
|
+
|
25
|
+
div.document {
|
26
|
+
background-color: #1c4e63;
|
27
|
+
}
|
28
|
+
|
29
|
+
div.documentwrapper {
|
30
|
+
float: left;
|
31
|
+
width: 100%;
|
32
|
+
}
|
33
|
+
|
34
|
+
div.bodywrapper {
|
35
|
+
margin: 0 0 0 230px;
|
36
|
+
}
|
37
|
+
|
38
|
+
div.body {
|
39
|
+
background-color: #ffffff;
|
40
|
+
color: #000000;
|
41
|
+
padding: 0 20px 30px 20px;
|
42
|
+
}
|
43
|
+
|
44
|
+
div.footer {
|
45
|
+
color: #ffffff;
|
46
|
+
width: 100%;
|
47
|
+
padding: 9px 0 9px 0;
|
48
|
+
text-align: center;
|
49
|
+
font-size: 75%;
|
50
|
+
}
|
51
|
+
|
52
|
+
div.footer a {
|
53
|
+
color: #ffffff;
|
54
|
+
text-decoration: underline;
|
55
|
+
}
|
56
|
+
|
57
|
+
div.related {
|
58
|
+
background-color: #133f52;
|
59
|
+
line-height: 30px;
|
60
|
+
color: #ffffff;
|
61
|
+
}
|
62
|
+
|
63
|
+
div.related a {
|
64
|
+
color: #ffffff;
|
65
|
+
}
|
66
|
+
|
67
|
+
div.sphinxsidebar {
|
68
|
+
}
|
69
|
+
|
70
|
+
div.sphinxsidebar h3 {
|
71
|
+
font-family: 'Trebuchet MS', sans-serif;
|
72
|
+
color: #ffffff;
|
73
|
+
font-size: 1.4em;
|
74
|
+
font-weight: normal;
|
75
|
+
margin: 0;
|
76
|
+
padding: 0;
|
77
|
+
}
|
78
|
+
|
79
|
+
div.sphinxsidebar h3 a {
|
80
|
+
color: #ffffff;
|
81
|
+
}
|
82
|
+
|
83
|
+
div.sphinxsidebar h4 {
|
84
|
+
font-family: 'Trebuchet MS', sans-serif;
|
85
|
+
color: #ffffff;
|
86
|
+
font-size: 1.3em;
|
87
|
+
font-weight: normal;
|
88
|
+
margin: 5px 0 0 0;
|
89
|
+
padding: 0;
|
90
|
+
}
|
91
|
+
|
92
|
+
div.sphinxsidebar p {
|
93
|
+
color: #ffffff;
|
94
|
+
}
|
95
|
+
|
96
|
+
div.sphinxsidebar p.topless {
|
97
|
+
margin: 5px 10px 10px 10px;
|
98
|
+
}
|
99
|
+
|
100
|
+
div.sphinxsidebar ul {
|
101
|
+
margin: 10px;
|
102
|
+
padding: 0;
|
103
|
+
color: #ffffff;
|
104
|
+
}
|
105
|
+
|
106
|
+
div.sphinxsidebar a {
|
107
|
+
color: #98dbcc;
|
108
|
+
}
|
109
|
+
|
110
|
+
div.sphinxsidebar input {
|
111
|
+
border: 1px solid #98dbcc;
|
112
|
+
font-family: sans-serif;
|
113
|
+
font-size: 1em;
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
/* -- hyperlink styles ------------------------------------------------------ */
|
119
|
+
|
120
|
+
a {
|
121
|
+
color: #355f7c;
|
122
|
+
text-decoration: none;
|
123
|
+
}
|
124
|
+
|
125
|
+
a:visited {
|
126
|
+
color: #355f7c;
|
127
|
+
text-decoration: none;
|
128
|
+
}
|
129
|
+
|
130
|
+
a:hover {
|
131
|
+
text-decoration: underline;
|
132
|
+
}
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
/* -- body styles ----------------------------------------------------------- */
|
137
|
+
|
138
|
+
div.body h1,
|
139
|
+
div.body h2,
|
140
|
+
div.body h3,
|
141
|
+
div.body h4,
|
142
|
+
div.body h5,
|
143
|
+
div.body h6 {
|
144
|
+
font-family: 'Trebuchet MS', sans-serif;
|
145
|
+
background-color: #f2f2f2;
|
146
|
+
font-weight: normal;
|
147
|
+
color: #20435c;
|
148
|
+
border-bottom: 1px solid #ccc;
|
149
|
+
margin: 20px -20px 10px -20px;
|
150
|
+
padding: 3px 0 3px 10px;
|
151
|
+
}
|
152
|
+
|
153
|
+
div.body h1 { margin-top: 0; font-size: 200%; }
|
154
|
+
div.body h2 { font-size: 160%; }
|
155
|
+
div.body h3 { font-size: 140%; }
|
156
|
+
div.body h4 { font-size: 120%; }
|
157
|
+
div.body h5 { font-size: 110%; }
|
158
|
+
div.body h6 { font-size: 100%; }
|
159
|
+
|
160
|
+
a.headerlink {
|
161
|
+
color: #c60f0f;
|
162
|
+
font-size: 0.8em;
|
163
|
+
padding: 0 4px 0 4px;
|
164
|
+
text-decoration: none;
|
165
|
+
}
|
166
|
+
|
167
|
+
a.headerlink:hover {
|
168
|
+
background-color: #c60f0f;
|
169
|
+
color: white;
|
170
|
+
}
|
171
|
+
|
172
|
+
div.body p, div.body dd, div.body li {
|
173
|
+
text-align: justify;
|
174
|
+
line-height: 130%;
|
175
|
+
}
|
176
|
+
|
177
|
+
div.admonition p.admonition-title + p {
|
178
|
+
display: inline;
|
179
|
+
}
|
180
|
+
|
181
|
+
div.admonition p {
|
182
|
+
margin-bottom: 5px;
|
183
|
+
}
|
184
|
+
|
185
|
+
div.admonition pre {
|
186
|
+
margin-bottom: 5px;
|
187
|
+
}
|
188
|
+
|
189
|
+
div.admonition ul, div.admonition ol {
|
190
|
+
margin-bottom: 5px;
|
191
|
+
}
|
192
|
+
|
193
|
+
div.note {
|
194
|
+
background-color: #eee;
|
195
|
+
border: 1px solid #ccc;
|
196
|
+
}
|
197
|
+
|
198
|
+
div.seealso {
|
199
|
+
background-color: #ffc;
|
200
|
+
border: 1px solid #ff6;
|
201
|
+
}
|
202
|
+
|
203
|
+
div.topic {
|
204
|
+
background-color: #eee;
|
205
|
+
}
|
206
|
+
|
207
|
+
div.warning {
|
208
|
+
background-color: #ffe4e4;
|
209
|
+
border: 1px solid #f66;
|
210
|
+
}
|
211
|
+
|
212
|
+
p.admonition-title {
|
213
|
+
display: inline;
|
214
|
+
}
|
215
|
+
|
216
|
+
p.admonition-title:after {
|
217
|
+
content: ":";
|
218
|
+
}
|
219
|
+
|
220
|
+
pre {
|
221
|
+
padding: 5px;
|
222
|
+
background-color: #eeffcc;
|
223
|
+
color: #333333;
|
224
|
+
line-height: 120%;
|
225
|
+
border: 1px solid #ac9;
|
226
|
+
border-left: none;
|
227
|
+
border-right: none;
|
228
|
+
}
|
229
|
+
|
230
|
+
tt {
|
231
|
+
background-color: #ecf0f3;
|
232
|
+
padding: 0 1px 0 1px;
|
233
|
+
font-size: 0.95em;
|
234
|
+
}
|
235
|
+
|
236
|
+
th {
|
237
|
+
background-color: #ede;
|
238
|
+
}
|
239
|
+
|
240
|
+
.warning tt {
|
241
|
+
background: #efc2c2;
|
242
|
+
}
|
243
|
+
|
244
|
+
.note tt {
|
245
|
+
background: #d6d6d6;
|
246
|
+
}
|
247
|
+
|
248
|
+
.viewcode-back {
|
249
|
+
font-family: sans-serif;
|
250
|
+
}
|
251
|
+
|
252
|
+
div.viewcode-block:target {
|
253
|
+
background-color: #f4debf;
|
254
|
+
border-top: 1px solid #ac9;
|
255
|
+
border-bottom: 1px solid #ac9;
|
256
|
+
}
|
@@ -0,0 +1,238 @@
|
|
1
|
+
/*
|
2
|
+
* doctools.js
|
3
|
+
* ~~~~~~~~~~~
|
4
|
+
*
|
5
|
+
* Sphinx JavaScript utilities for all documentation.
|
6
|
+
*
|
7
|
+
* :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
|
8
|
+
* :license: BSD, see LICENSE for details.
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
/**
|
13
|
+
* select a different prefix for underscore
|
14
|
+
*/
|
15
|
+
$u = _.noConflict();
|
16
|
+
|
17
|
+
/**
|
18
|
+
* make the code below compatible with browsers without
|
19
|
+
* an installed firebug like debugger
|
20
|
+
if (!window.console || !console.firebug) {
|
21
|
+
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
|
22
|
+
"dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
|
23
|
+
"profile", "profileEnd"];
|
24
|
+
window.console = {};
|
25
|
+
for (var i = 0; i < names.length; ++i)
|
26
|
+
window.console[names[i]] = function() {};
|
27
|
+
}
|
28
|
+
*/
|
29
|
+
|
30
|
+
/**
|
31
|
+
* small helper function to urldecode strings
|
32
|
+
*/
|
33
|
+
jQuery.urldecode = function(x) {
|
34
|
+
return decodeURIComponent(x).replace(/\+/g, ' ');
|
35
|
+
};
|
36
|
+
|
37
|
+
/**
|
38
|
+
* small helper function to urlencode strings
|
39
|
+
*/
|
40
|
+
jQuery.urlencode = encodeURIComponent;
|
41
|
+
|
42
|
+
/**
|
43
|
+
* This function returns the parsed url parameters of the
|
44
|
+
* current request. Multiple values per key are supported,
|
45
|
+
* it will always return arrays of strings for the value parts.
|
46
|
+
*/
|
47
|
+
jQuery.getQueryParameters = function(s) {
|
48
|
+
if (typeof s == 'undefined')
|
49
|
+
s = document.location.search;
|
50
|
+
var parts = s.substr(s.indexOf('?') + 1).split('&');
|
51
|
+
var result = {};
|
52
|
+
for (var i = 0; i < parts.length; i++) {
|
53
|
+
var tmp = parts[i].split('=', 2);
|
54
|
+
var key = jQuery.urldecode(tmp[0]);
|
55
|
+
var value = jQuery.urldecode(tmp[1]);
|
56
|
+
if (key in result)
|
57
|
+
result[key].push(value);
|
58
|
+
else
|
59
|
+
result[key] = [value];
|
60
|
+
}
|
61
|
+
return result;
|
62
|
+
};
|
63
|
+
|
64
|
+
/**
|
65
|
+
* highlight a given string on a jquery object by wrapping it in
|
66
|
+
* span elements with the given class name.
|
67
|
+
*/
|
68
|
+
jQuery.fn.highlightText = function(text, className) {
|
69
|
+
function highlight(node) {
|
70
|
+
if (node.nodeType == 3) {
|
71
|
+
var val = node.nodeValue;
|
72
|
+
var pos = val.toLowerCase().indexOf(text);
|
73
|
+
if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
|
74
|
+
var span = document.createElement("span");
|
75
|
+
span.className = className;
|
76
|
+
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
|
77
|
+
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
|
78
|
+
document.createTextNode(val.substr(pos + text.length)),
|
79
|
+
node.nextSibling));
|
80
|
+
node.nodeValue = val.substr(0, pos);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
else if (!jQuery(node).is("button, select, textarea")) {
|
84
|
+
jQuery.each(node.childNodes, function() {
|
85
|
+
highlight(this);
|
86
|
+
});
|
87
|
+
}
|
88
|
+
}
|
89
|
+
return this.each(function() {
|
90
|
+
highlight(this);
|
91
|
+
});
|
92
|
+
};
|
93
|
+
|
94
|
+
/**
|
95
|
+
* Small JavaScript module for the documentation.
|
96
|
+
*/
|
97
|
+
var Documentation = {
|
98
|
+
|
99
|
+
init : function() {
|
100
|
+
this.fixFirefoxAnchorBug();
|
101
|
+
this.highlightSearchWords();
|
102
|
+
this.initIndexTable();
|
103
|
+
},
|
104
|
+
|
105
|
+
/**
|
106
|
+
* i18n support
|
107
|
+
*/
|
108
|
+
TRANSLATIONS : {},
|
109
|
+
PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
|
110
|
+
LOCALE : 'unknown',
|
111
|
+
|
112
|
+
// gettext and ngettext don't access this so that the functions
|
113
|
+
// can safely bound to a different name (_ = Documentation.gettext)
|
114
|
+
gettext : function(string) {
|
115
|
+
var translated = Documentation.TRANSLATIONS[string];
|
116
|
+
if (typeof translated == 'undefined')
|
117
|
+
return string;
|
118
|
+
return (typeof translated == 'string') ? translated : translated[0];
|
119
|
+
},
|
120
|
+
|
121
|
+
ngettext : function(singular, plural, n) {
|
122
|
+
var translated = Documentation.TRANSLATIONS[singular];
|
123
|
+
if (typeof translated == 'undefined')
|
124
|
+
return (n == 1) ? singular : plural;
|
125
|
+
return translated[Documentation.PLURALEXPR(n)];
|
126
|
+
},
|
127
|
+
|
128
|
+
addTranslations : function(catalog) {
|
129
|
+
for (var key in catalog.messages)
|
130
|
+
this.TRANSLATIONS[key] = catalog.messages[key];
|
131
|
+
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
|
132
|
+
this.LOCALE = catalog.locale;
|
133
|
+
},
|
134
|
+
|
135
|
+
/**
|
136
|
+
* add context elements like header anchor links
|
137
|
+
*/
|
138
|
+
addContextElements : function() {
|
139
|
+
$('div[id] > :header:first').each(function() {
|
140
|
+
$('<a class="headerlink">\u00B6</a>').
|
141
|
+
attr('href', '#' + this.id).
|
142
|
+
attr('title', _('Permalink to this headline')).
|
143
|
+
appendTo(this);
|
144
|
+
});
|
145
|
+
$('dt[id]').each(function() {
|
146
|
+
$('<a class="headerlink">\u00B6</a>').
|
147
|
+
attr('href', '#' + this.id).
|
148
|
+
attr('title', _('Permalink to this definition')).
|
149
|
+
appendTo(this);
|
150
|
+
});
|
151
|
+
},
|
152
|
+
|
153
|
+
/**
|
154
|
+
* workaround a firefox stupidity
|
155
|
+
*/
|
156
|
+
fixFirefoxAnchorBug : function() {
|
157
|
+
if (document.location.hash && $.browser.mozilla)
|
158
|
+
window.setTimeout(function() {
|
159
|
+
document.location.href += '';
|
160
|
+
}, 10);
|
161
|
+
},
|
162
|
+
|
163
|
+
/**
|
164
|
+
* highlight the search words provided in the url in the text
|
165
|
+
*/
|
166
|
+
highlightSearchWords : function() {
|
167
|
+
var params = $.getQueryParameters();
|
168
|
+
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
|
169
|
+
if (terms.length) {
|
170
|
+
var body = $('div.body');
|
171
|
+
if (!body.length) {
|
172
|
+
body = $('body');
|
173
|
+
}
|
174
|
+
window.setTimeout(function() {
|
175
|
+
$.each(terms, function() {
|
176
|
+
body.highlightText(this.toLowerCase(), 'highlighted');
|
177
|
+
});
|
178
|
+
}, 10);
|
179
|
+
$('<p class="highlight-link"><a href="javascript:Documentation.' +
|
180
|
+
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
|
181
|
+
.appendTo($('#searchbox'));
|
182
|
+
}
|
183
|
+
},
|
184
|
+
|
185
|
+
/**
|
186
|
+
* init the domain index toggle buttons
|
187
|
+
*/
|
188
|
+
initIndexTable : function() {
|
189
|
+
var togglers = $('img.toggler').click(function() {
|
190
|
+
var src = $(this).attr('src');
|
191
|
+
var idnum = $(this).attr('id').substr(7);
|
192
|
+
$('tr.cg-' + idnum).toggle();
|
193
|
+
if (src.substr(-9) == 'minus.png')
|
194
|
+
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
|
195
|
+
else
|
196
|
+
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
|
197
|
+
}).css('display', '');
|
198
|
+
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
|
199
|
+
togglers.click();
|
200
|
+
}
|
201
|
+
},
|
202
|
+
|
203
|
+
/**
|
204
|
+
* helper function to hide the search marks again
|
205
|
+
*/
|
206
|
+
hideSearchWords : function() {
|
207
|
+
$('#searchbox .highlight-link').fadeOut(300);
|
208
|
+
$('span.highlighted').removeClass('highlighted');
|
209
|
+
},
|
210
|
+
|
211
|
+
/**
|
212
|
+
* make the url absolute
|
213
|
+
*/
|
214
|
+
makeURL : function(relativeURL) {
|
215
|
+
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
|
216
|
+
},
|
217
|
+
|
218
|
+
/**
|
219
|
+
* get the current relative url
|
220
|
+
*/
|
221
|
+
getCurrentURL : function() {
|
222
|
+
var path = document.location.pathname;
|
223
|
+
var parts = path.split(/\//);
|
224
|
+
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
|
225
|
+
if (this == '..')
|
226
|
+
parts.pop();
|
227
|
+
});
|
228
|
+
var url = parts.join('/');
|
229
|
+
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
|
230
|
+
}
|
231
|
+
};
|
232
|
+
|
233
|
+
// quick alias for translations
|
234
|
+
_ = Documentation.gettext;
|
235
|
+
|
236
|
+
$(document).ready(function() {
|
237
|
+
Documentation.init();
|
238
|
+
});
|