right-rails 1.0.10 → 1.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +4 -4
- data/Rakefile +4 -4
- data/lib/right_rails.rb +1 -1
- data/public/javascripts/right/autocompleter-src.js +115 -106
- data/public/javascripts/right/autocompleter.js +3 -14
- data/public/javascripts/right/billboard-src.js +58 -38
- data/public/javascripts/right/billboard.js +3 -13
- data/public/javascripts/right/calendar-src.js +136 -133
- data/public/javascripts/right/calendar.js +4 -33
- data/public/javascripts/right/colorpicker-src.js +128 -125
- data/public/javascripts/right/colorpicker.js +4 -23
- data/public/javascripts/right/dialog-src.js +67 -37
- data/public/javascripts/right/dialog.js +3 -17
- data/public/javascripts/right/dnd-src.js +44 -43
- data/public/javascripts/right/dnd.js +3 -16
- data/public/javascripts/right/effects-src.js +125 -98
- data/public/javascripts/right/effects.js +3 -13
- data/public/javascripts/right/in-edit-src.js +54 -38
- data/public/javascripts/right/in-edit.js +4 -10
- data/public/javascripts/right/jquerysh-src.js +344 -20
- data/public/javascripts/right/jquerysh.js +3 -3
- data/public/javascripts/right/json-src.js +22 -35
- data/public/javascripts/right/json.js +4 -7
- data/public/javascripts/right/keys-src.js +87 -0
- data/public/javascripts/right/keys.js +7 -0
- data/public/javascripts/right/lightbox-src.js +76 -58
- data/public/javascripts/right/lightbox.js +3 -20
- data/public/javascripts/right/rails-src.js +108 -107
- data/public/javascripts/right/rails.js +4 -11
- data/public/javascripts/right/rater-src.js +47 -31
- data/public/javascripts/right/rater.js +3 -9
- data/public/javascripts/right/resizable-src.js +60 -33
- data/public/javascripts/right/resizable.js +3 -11
- data/public/javascripts/right/selectable-src.js +87 -51
- data/public/javascripts/right/selectable.js +3 -18
- data/public/javascripts/right/sizzle-src.js +15 -10
- data/public/javascripts/right/sizzle.js +4 -27
- data/public/javascripts/right/slider-src.js +49 -33
- data/public/javascripts/right/slider.js +3 -10
- data/public/javascripts/right/sortable-src.js +46 -32
- data/public/javascripts/right/sortable.js +4 -13
- data/public/javascripts/right/table-src.js +19 -10
- data/public/javascripts/right/table.js +4 -6
- data/public/javascripts/right/tabs-src.js +69 -47
- data/public/javascripts/right/tabs.js +4 -26
- data/public/javascripts/right/tooltips-src.js +78 -56
- data/public/javascripts/right/tooltips.js +4 -9
- data/public/javascripts/right/uploader-src.js +50 -34
- data/public/javascripts/right/uploader.js +3 -9
- data/public/javascripts/right-olds-src.js +528 -355
- data/public/javascripts/right-olds.js +4 -13
- data/public/javascripts/right-safe-src.js +4 -99
- data/public/javascripts/right-safe.js +3 -4
- data/public/javascripts/right-src.js +1618 -1245
- data/public/javascripts/right.js +4 -91
- metadata +8 -6
@@ -1,20 +1,14 @@
|
|
1
1
|
/**
|
2
|
-
*
|
3
|
-
* http://
|
2
|
+
* RubyOnRails Support Module v2.2.1
|
3
|
+
* http://rightjs.org/plugins/rails
|
4
4
|
*
|
5
|
-
* Copyright (C) 2009-
|
5
|
+
* Copyright (C) 2009-2011 Nikolay Nemshilov
|
6
6
|
*/
|
7
7
|
(function(window, document, RightJS) {
|
8
|
-
/**
|
9
|
-
* Underscored aliases for Ruby On Rails
|
10
|
-
*
|
11
|
-
* Copyright (C) 2009-2010 Nikolay Nemshilov
|
12
|
-
*/
|
13
|
-
|
14
8
|
/**
|
15
9
|
* The Rails plugin initialization script
|
16
10
|
*
|
17
|
-
* Copyright (C) 2010 Nikolay Nemshilov
|
11
|
+
* Copyright (C) 2010-2011 Nikolay Nemshilov
|
18
12
|
*/
|
19
13
|
|
20
14
|
var R = RightJS,
|
@@ -24,8 +18,18 @@ var R = RightJS,
|
|
24
18
|
Xhr = RightJS.Xhr,
|
25
19
|
Object = RightJS.Object;
|
26
20
|
|
21
|
+
RightJS.Rails = {
|
22
|
+
version: '2.2.1'
|
23
|
+
};
|
24
|
+
|
27
25
|
|
28
26
|
|
27
|
+
/**
|
28
|
+
* Underscored aliases for Ruby On Rails
|
29
|
+
*
|
30
|
+
* Copyright (C) 2009-2010 Nikolay Nemshilov
|
31
|
+
*/
|
32
|
+
|
29
33
|
// the language and window level aliases
|
30
34
|
R([
|
31
35
|
RightJS.String.prototype,
|
@@ -96,79 +100,76 @@ RightJS.$alias(RightJS.Array.prototype, {
|
|
96
100
|
/**
|
97
101
|
* Rails 3 UJS support module
|
98
102
|
*
|
99
|
-
* Copyright (C) 2010 Nikolay Nemshilov
|
103
|
+
* Copyright (C) 2010-2011 Nikolay Nemshilov
|
100
104
|
*/
|
101
|
-
|
102
|
-
|
103
|
-
var
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
var
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
form.insert('<input type="hidden" name="'+param.get('content')+'" value="'+token.get('content')+'" />');
|
144
|
-
}
|
145
|
-
|
146
|
-
form.insert('<input type="hidden" name="_method" value="'+method+'"/>')
|
147
|
-
.insertTo(document.body).submit();
|
105
|
+
// tries to cancel the event via confirmation
|
106
|
+
var user_cancels = function(event, element) {
|
107
|
+
var message = element.get('data-confirm');
|
108
|
+
if (message && !confirm(message)) {
|
109
|
+
event.stop();
|
110
|
+
return true;
|
111
|
+
}
|
112
|
+
};
|
113
|
+
|
114
|
+
// adds XHR events to the element
|
115
|
+
var add_xhr_events = function(element, options) {
|
116
|
+
return Object.merge({
|
117
|
+
onCreate: function() { element.fire('ajax:loading', {xhr: this}); },
|
118
|
+
onComplete: function() { element.fire('ajax:complete', {xhr: this}); },
|
119
|
+
onSuccess: function() { element.fire('ajax:success', {xhr: this}); },
|
120
|
+
onFailure: function() { element.fire('ajax:failure', {xhr: this}); }
|
121
|
+
}, options);
|
122
|
+
};
|
123
|
+
|
124
|
+
// processes link clicks
|
125
|
+
var try_link_submit = function(event) {
|
126
|
+
var link = event.target,
|
127
|
+
method = link.get('data-method'),
|
128
|
+
remote = link.get('data-remote'),
|
129
|
+
url = link.get('href');
|
130
|
+
|
131
|
+
if (user_cancels(event, link)) { return; }
|
132
|
+
if (method || remote) { event.stop(); }
|
133
|
+
|
134
|
+
if (remote) {
|
135
|
+
Xhr.load(url, add_xhr_events(link, {
|
136
|
+
method: method || 'get',
|
137
|
+
spinner: link.get('data-spinner')
|
138
|
+
}));
|
139
|
+
|
140
|
+
} else if (method) {
|
141
|
+
var param = $$('meta[name=csrf-param]')[0],
|
142
|
+
token = $$('meta[name=csrf-token]')[0],
|
143
|
+
form = $E('form', {action: url, method: 'post'});
|
144
|
+
|
145
|
+
if (param && token) {
|
146
|
+
form.insert('<input type="hidden" name="'+param.get('content')+'" value="'+token.get('content')+'" />');
|
148
147
|
}
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
var form = event.target;
|
162
|
-
if (form.has('data-remote') && !user_cancels(event, form)) {
|
163
|
-
event.stop();
|
164
|
-
form.send(add_xhr_events(form, {
|
165
|
-
spinner: form.get('data-spinner') || form.first('.spinner')
|
166
|
-
}));
|
167
|
-
}
|
148
|
+
|
149
|
+
form.insert('<input type="hidden" name="_method" value="'+method+'"/>')
|
150
|
+
.insertTo(document.body).submit();
|
151
|
+
}
|
152
|
+
};
|
153
|
+
|
154
|
+
// global events listeners
|
155
|
+
$(document).on({
|
156
|
+
click: function(event) {
|
157
|
+
var tag = event.target._.tagName;
|
158
|
+
if (tag === 'A' || tag === 'BUTTON') {
|
159
|
+
try_link_submit(event);
|
168
160
|
}
|
169
|
-
}
|
170
|
-
})();
|
161
|
+
},
|
171
162
|
|
163
|
+
submit: function(event) {
|
164
|
+
var form = event.target;
|
165
|
+
if (form.has('data-remote') && !user_cancels(event, form)) {
|
166
|
+
event.stop();
|
167
|
+
form.send(add_xhr_events(form, {
|
168
|
+
spinner: form.get('data-spinner') || form.first('.spinner')
|
169
|
+
}));
|
170
|
+
}
|
171
|
+
}
|
172
|
+
});
|
172
173
|
|
173
174
|
/**
|
174
175
|
* RR is the common ajax operations wrapper for ruby on rails
|
@@ -184,24 +185,24 @@ var RR = {
|
|
184
185
|
*/
|
185
186
|
Options: {
|
186
187
|
format: 'js', // the working format for remote requests over the application
|
187
|
-
|
188
|
+
|
188
189
|
flashId: 'flashes', // the flashes element id
|
189
190
|
flashHideFx: 'slide', // use null if you don't want any fx in here
|
190
191
|
flashHideDelay: 3200, // use -1 to disable the flash element hidding
|
191
|
-
|
192
|
+
|
192
193
|
highlightUpdates: true,
|
193
|
-
|
194
|
+
|
194
195
|
removeFx: 'fade', // blocks removing fx
|
195
196
|
insertFx: 'fade', // blocks insertion fx
|
196
|
-
|
197
|
+
|
197
198
|
insertPosition: 'bottom', // default insert position
|
198
|
-
|
199
|
+
|
199
200
|
linkToAjaxEdit: '.ajax_edit',
|
200
201
|
linkToAjaxDelete: '.ajax_delete',
|
201
|
-
|
202
|
+
|
202
203
|
rescanWithScopes: true // if it should rescan only updated elements
|
203
204
|
},
|
204
|
-
|
205
|
+
|
205
206
|
/**
|
206
207
|
* Updates the flashes block with the source
|
207
208
|
*
|
@@ -215,7 +216,7 @@ var RR = {
|
|
215
216
|
}
|
216
217
|
return this;
|
217
218
|
},
|
218
|
-
|
219
|
+
|
219
220
|
/**
|
220
221
|
* Initializes the delayed flashes hide call
|
221
222
|
*
|
@@ -230,10 +231,10 @@ var RR = {
|
|
230
231
|
}
|
231
232
|
return this;
|
232
233
|
},
|
233
|
-
|
234
|
+
|
234
235
|
/**
|
235
236
|
* Highlights the element according to the options
|
236
|
-
*
|
237
|
+
*
|
237
238
|
* @param String element id
|
238
239
|
* @return RR this
|
239
240
|
*/
|
@@ -243,7 +244,7 @@ var RR = {
|
|
243
244
|
}
|
244
245
|
return this;
|
245
246
|
},
|
246
|
-
|
247
|
+
|
247
248
|
/**
|
248
249
|
* Inserts the content into the given element
|
249
250
|
*
|
@@ -255,7 +256,7 @@ var RR = {
|
|
255
256
|
insert: function(where, what, in_position) {
|
256
257
|
var position = in_position || this.Options.insertPosition, new_element,
|
257
258
|
container = $(where).insert(what, position);
|
258
|
-
|
259
|
+
|
259
260
|
// trying to find the new block
|
260
261
|
switch (position) {
|
261
262
|
case 'bottom': new_element = container.children().last(); break;
|
@@ -263,7 +264,7 @@ var RR = {
|
|
263
264
|
case 'before': new_element = container.prev(); break;
|
264
265
|
case 'after': new_element = container.next(); break;
|
265
266
|
}
|
266
|
-
|
267
|
+
|
267
268
|
// necely displaying the new block
|
268
269
|
if (new_element && this.Options.insertFx) {
|
269
270
|
new_element.hide().show(this.Options.insertFx, {
|
@@ -272,10 +273,10 @@ var RR = {
|
|
272
273
|
} else {
|
273
274
|
this.highlight(new_element);
|
274
275
|
}
|
275
|
-
|
276
|
+
|
276
277
|
return this.rescan(where);
|
277
278
|
},
|
278
|
-
|
279
|
+
|
279
280
|
/**
|
280
281
|
* Replaces the given element with a new content
|
281
282
|
*
|
@@ -287,7 +288,7 @@ var RR = {
|
|
287
288
|
$(id).replace(source);
|
288
289
|
return this.highlight(id).rescan(id);
|
289
290
|
},
|
290
|
-
|
291
|
+
|
291
292
|
/**
|
292
293
|
* removes the element by id
|
293
294
|
*
|
@@ -299,7 +300,7 @@ var RR = {
|
|
299
300
|
$(id).remove(this.Options.removeFx);
|
300
301
|
}
|
301
302
|
},
|
302
|
-
|
303
|
+
|
303
304
|
/**
|
304
305
|
* Makes a remote form out of the form
|
305
306
|
*
|
@@ -313,7 +314,7 @@ var RR = {
|
|
313
314
|
}
|
314
315
|
return this;
|
315
316
|
},
|
316
|
-
|
317
|
+
|
317
318
|
/**
|
318
319
|
* Replaces the form with new content and makes it remote
|
319
320
|
*
|
@@ -327,10 +328,10 @@ var RR = {
|
|
327
328
|
form.replace(source);
|
328
329
|
this.remotize_form(id);
|
329
330
|
}
|
330
|
-
|
331
|
+
|
331
332
|
return this.rescan(id);
|
332
333
|
},
|
333
|
-
|
334
|
+
|
334
335
|
/**
|
335
336
|
* Inserts the form source into the given element
|
336
337
|
*
|
@@ -339,12 +340,12 @@ var RR = {
|
|
339
340
|
* @return RR this
|
340
341
|
*/
|
341
342
|
show_form_for: function(id, source) {
|
342
|
-
$(id).
|
343
|
+
$(id).find('form').each('remove'); // removing old forms
|
343
344
|
$(id).insert(source);
|
344
|
-
|
345
|
+
|
345
346
|
return this.remotize_form($(id).first('form')).rescan(id);
|
346
347
|
},
|
347
|
-
|
348
|
+
|
348
349
|
/**
|
349
350
|
* watches link clicks and processes the ajax edit/delete operations
|
350
351
|
*
|
@@ -352,16 +353,16 @@ var RR = {
|
|
352
353
|
*/
|
353
354
|
process_click: function(event) {
|
354
355
|
var link;
|
355
|
-
|
356
|
+
|
356
357
|
if ((link = event.find('a'+ this.Options.linkToAjaxEdit))) {
|
357
358
|
event.stop();
|
358
359
|
Xhr.load(link.get('href') + '.' + this.Options.format);
|
359
360
|
} else if ((link = event.find('a'+ this.Options.linkToAjaxDelete)) && link.has('onclick')) {
|
360
361
|
event.stop();
|
361
|
-
|
362
|
+
new Function('return '+ link.onclick.toString().replace('.submit', '.send'))().call(link);
|
362
363
|
}
|
363
364
|
},
|
364
|
-
|
365
|
+
|
365
366
|
/**
|
366
367
|
* Scans for updated elements
|
367
368
|
*
|
@@ -373,8 +374,8 @@ var RR = {
|
|
373
374
|
window[name].rescan(this.Options.rescanWithScopes ? scope : null);
|
374
375
|
}
|
375
376
|
}, this);
|
376
|
-
|
377
|
-
|
377
|
+
|
378
|
+
|
378
379
|
return this;
|
379
380
|
}
|
380
381
|
};
|
@@ -1,14 +1,7 @@
|
|
1
1
|
/**
|
2
|
-
*
|
3
|
-
* http://
|
2
|
+
* RubyOnRails Support Module v2.2.1
|
3
|
+
* http://rightjs.org/plugins/rails
|
4
4
|
*
|
5
|
-
* Copyright (C) 2009-
|
5
|
+
* Copyright (C) 2009-2011 Nikolay Nemshilov
|
6
6
|
*/
|
7
|
-
(function(
|
8
|
-
b[c]}});e.$alias(e.String.prototype,{index_of:"indexOf",last_index_of:"lastIndexOf",to_f:"toFloat",to_i:"toInt",gsub:"replace",downcase:"toLowerCase",upcase:"toUpperCase",index:"indexOf",rindex:"lastIndexOf",strip:"trim"});e.$alias(e.Array.prototype,{collect:"map",detect:"filter",index_of:"indexOf",last_index_of:"lastIndexOf",index:"indexOf",rindex:"lastIndexOf"});(function(){var a=function(c,d){var g=d.get("data-confirm");if(g&&!confirm(g)){c.stop();return true}},b=function(c,d){return p.merge({onCreate:function(){c.fire("ajax:loading",
|
9
|
-
this)},onComplete:function(){c.fire("ajax:complete",this)},onSuccess:function(){c.fire("ajax:success",this)},onFailure:function(){c.fire("ajax:failure",this)}},d)};f(j).on({click:function(c){var d=c.target._.tagName;if(d==="A"||d==="BUTTON"){var g=c.target;d=g.get("data-method");var n=g.get("data-remote"),h=g.get("href");if(!a(c,g)){if(d||n)c.stop();if(n)m.load(h,b(g,{method:d||"get",spinner:g.get("data-spinner")}));else if(d){c=l("meta[name=csrf-param]")[0];g=l("meta[name=csrf-token]")[0];h=o("form",
|
10
|
-
{action:h,method:"post"});c&&g&&h.insert('<input type="hidden" name="'+c.get("content")+'" value="'+g.get("content")+'" />');h.insert('<input type="hidden" name="_method" value="'+d+'"/>').insertTo(j.body).submit()}}}},submit:function(c){var d=c.target;if(d.has("data-remote")&&!a(c,d)){c.stop();d.send(b(d,{spinner:d.get("data-spinner")||d.first(".spinner")}))}}})})();var k={Options:{format:"js",flashId:"flashes",flashHideFx:"slide",flashHideDelay:3200,highlightUpdates:true,removeFx:"fade",insertFx:"fade",
|
11
|
-
insertPosition:"bottom",linkToAjaxEdit:".ajax_edit",linkToAjaxDelete:".ajax_delete",rescanWithScopes:true},update_flash:function(a){var b=f(this.Options.flashId);b&&this.replace(b,a).hide_flash();return this},hide_flash:function(){if(this.Options.flashHideDelay>-1){var a=f(this.Options.flashId);a&&a.visible()&&a.hide.bind(a,this.Options.flashHideFx).delay(this.Options.flashHideDelay)}return this},highlight:function(a){f(a)&&this.Options.highlightUpdates&&f(a).highlight();return this},insert:function(a,
|
12
|
-
b,c){c=c||this.Options.insertPosition;var d;b=f(a).insert(b,c);switch(c){case "bottom":d=b.children().last();break;case "top":d=b.first();break;case "before":d=b.prev();break;case "after":d=b.next();break}d&&this.Options.insertFx?d.hide().show(this.Options.insertFx,{onFinish:this.highlight.bind(this,d)}):this.highlight(d);return this.rescan(a)},replace:function(a,b){f(a).replace(b);return this.highlight(a).rescan(a)},remove:function(a){f(a)&&f(a).remove(this.Options.removeFx)},remotize_form:function(a){if(a=
|
13
|
-
f(a))a.remotize().enable()._.action+="."+this.Options.format;return this},replace_form:function(a,b){var c=f(a);if(c){c.replace(b);this.remotize_form(a)}return this.rescan(a)},show_form_for:function(a,b){f(a).select("form").each("remove");f(a).insert(b);return this.remotize_form(f(a).first("form")).rescan(a)},process_click:function(a){var b;if(b=a.find("a"+this.Options.linkToAjaxEdit)){a.stop();m.load(b.get("href")+"."+this.Options.format)}else if((b=a.find("a"+this.Options.linkToAjaxDelete))&&b.has("onclick")){a.stop();
|
14
|
-
eval("({f:"+b.onclick.toString().replace(".submit",".send")+"})").f.call(b)}},rescan:function(a){$w("Draggable Droppable Tabs Slider Selectable").each(function(b){if(b in i)i[b].rescan(this.Options.rescanWithScopes?a:null)},this);return this}};f(j).on({ready:function(){k.hide_flash()},click:function(a){k.process_click(a)}});i.RR=k})(window,document,RightJS);
|
7
|
+
(function(a,b,c){var d=c,e=c.$,f=c.$$,g=c.$E,h=c.Xhr,i=c.Object;c.Rails={version:"2.2.1"},d([c.String.prototype,c.Array.prototype,c.Function.prototype,c.Object,c.Options,c.Observer,c.Observer.prototype,a,b]).each(function(a){for(var b in a)try{if(/[A-Z]/.test(b)&&typeof a[b]==="function"){var c=d(b).underscored();if(a[c]===null||a[c]===undefined)a[c]=a[b]}}catch(e){}}),d([c.Element,c.Event,c.Form,c.Input]).each(function(a){if(a){var b={},c=a.prototype;for(var e in c)/[A-Z]/.test(e)&&typeof c[e]==="function"&&(a.prototype[d(e).underscored()]=c[e])}}),c.$alias(c.String.prototype,{index_of:"indexOf",last_index_of:"lastIndexOf",to_f:"toFloat",to_i:"toInt",gsub:"replace",downcase:"toLowerCase",upcase:"toUpperCase",index:"indexOf",rindex:"lastIndexOf",strip:"trim"}),c.$alias(c.Array.prototype,{collect:"map",detect:"filter",index_of:"indexOf",last_index_of:"lastIndexOf",index:"indexOf",rindex:"lastIndexOf"});var j=function(a,b){var c=b.get("data-confirm");if(c&&!confirm(c)){a.stop();return!0}},k=function(a,b){return i.merge({onCreate:function(){a.fire("ajax:loading",{xhr:this})},onComplete:function(){a.fire("ajax:complete",{xhr:this})},onSuccess:function(){a.fire("ajax:success",{xhr:this})},onFailure:function(){a.fire("ajax:failure",{xhr:this})}},b)},l=function(a){var c=a.target,d=c.get("data-method"),e=c.get("data-remote"),i=c.get("href");if(!j(a,c)){(d||e)&&a.stop();if(e)h.load(i,k(c,{method:d||"get",spinner:c.get("data-spinner")}));else if(d){var l=f("meta[name=csrf-param]")[0],m=f("meta[name=csrf-token]")[0],n=g("form",{action:i,method:"post"});l&&m&&n.insert('<input type="hidden" name="'+l.get("content")+'" value="'+m.get("content")+'" />'),n.insert('<input type="hidden" name="_method" value="'+d+'"/>').insertTo(b.body).submit()}}};e(b).on({click:function(a){var b=a.target._.tagName;(b==="A"||b==="BUTTON")&&l(a)},submit:function(a){var b=a.target;b.has("data-remote")&&!j(a,b)&&(a.stop(),b.send(k(b,{spinner:b.get("data-spinner")||b.first(".spinner")})))}});var m={Options:{format:"js",flashId:"flashes",flashHideFx:"slide",flashHideDelay:3200,highlightUpdates:!0,removeFx:"fade",insertFx:"fade",insertPosition:"bottom",linkToAjaxEdit:".ajax_edit",linkToAjaxDelete:".ajax_delete",rescanWithScopes:!0},update_flash:function(a){var b=e(this.Options.flashId);b&&this.replace(b,a).hide_flash();return this},hide_flash:function(){if(this.Options.flashHideDelay>-1){var a=e(this.Options.flashId);a&&a.visible()&&a.hide.bind(a,this.Options.flashHideFx).delay(this.Options.flashHideDelay)}return this},highlight:function(a){e(a)&&this.Options.highlightUpdates&&e(a).highlight();return this},insert:function(a,b,c){var d=c||this.Options.insertPosition,f,g=e(a).insert(b,d);switch(d){case"bottom":f=g.children().last();break;case"top":f=g.first();break;case"before":f=g.prev();break;case"after":f=g.next()}f&&this.Options.insertFx?f.hide().show(this.Options.insertFx,{onFinish:this.highlight.bind(this,f)}):this.highlight(f);return this.rescan(a)},replace:function(a,b){e(a).replace(b);return this.highlight(a).rescan(a)},remove:function(a){e(a)&&e(a).remove(this.Options.removeFx)},remotize_form:function(a){var b=e(a);b&&(b.remotize().enable()._.action+="."+this.Options.format);return this},replace_form:function(a,b){var c=e(a);c&&(c.replace(b),this.remotize_form(a));return this.rescan(a)},show_form_for:function(a,b){e(a).find("form").each("remove"),e(a).insert(b);return this.remotize_form(e(a).first("form")).rescan(a)},process_click:function(a){var b;(b=a.find("a"+this.Options.linkToAjaxEdit))?(a.stop(),h.load(b.get("href")+"."+this.Options.format)):(b=a.find("a"+this.Options.linkToAjaxDelete))&&b.has("onclick")&&(a.stop(),(new Function("return "+b.onclick.toString().replace(".submit",".send")))().call(b))},rescan:function(b){$w("Draggable Droppable Tabs Slider Selectable").each(function(c){c in a&&a[c].rescan(this.Options.rescanWithScopes?b:null)},this);return this}};e(b).on({ready:function(){m.hide_flash()},click:function(a){m.process_click(a)}}),a.RR=m})(window,document,RightJS)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/**
|
2
|
-
*
|
2
|
+
* RightJS-UI Rater v2.2.0
|
3
3
|
* http://rightjs.org/ui/rater
|
4
4
|
*
|
5
|
-
* Copyright (C) 2009-
|
5
|
+
* Copyright (C) 2009-2011 Nikolay Nemshilov
|
6
6
|
*/
|
7
7
|
var Rater = RightJS.Rater = (function(document, RightJS) {
|
8
8
|
/**
|
@@ -10,26 +10,9 @@ var Rater = RightJS.Rater = (function(document, RightJS) {
|
|
10
10
|
* it creates an abstract proxy with the common functionality
|
11
11
|
* which then we reuse and override in the actual widgets
|
12
12
|
*
|
13
|
-
* Copyright (C) 2010 Nikolay Nemshilov
|
13
|
+
* Copyright (C) 2010-2011 Nikolay Nemshilov
|
14
14
|
*/
|
15
15
|
|
16
|
-
/**
|
17
|
-
* The init script for Rater
|
18
|
-
*
|
19
|
-
* Copyright (C) 2010 Nikolay Nemshilov
|
20
|
-
*/
|
21
|
-
var R = RightJS,
|
22
|
-
$ = RightJS.$,
|
23
|
-
$w = RightJS.$w,
|
24
|
-
Xhr = RightJS.Xhr,
|
25
|
-
isString = RightJS.isString,
|
26
|
-
isNumber = RightJS.isNumber;
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
16
|
/**
|
34
17
|
* The widget units constructor
|
35
18
|
*
|
@@ -48,7 +31,7 @@ function Widget(tag_name, methods) {
|
|
48
31
|
*
|
49
32
|
* Copyright (C) 2010 Nikolay Nemshilov
|
50
33
|
*/
|
51
|
-
var AbstractWidget = new RightJS.
|
34
|
+
var AbstractWidget = new RightJS.Class(RightJS.Element.Wrappers[tag_name] || RightJS.Element, {
|
52
35
|
/**
|
53
36
|
* The common constructor
|
54
37
|
*
|
@@ -80,7 +63,8 @@ function Widget(tag_name, methods) {
|
|
80
63
|
options = {};
|
81
64
|
}
|
82
65
|
this.setOptions(options, this);
|
83
|
-
|
66
|
+
|
67
|
+
return (RightJS.Wrapper.Cache[RightJS.$uid(this._)] = this);
|
84
68
|
},
|
85
69
|
|
86
70
|
// protected
|
@@ -93,12 +77,16 @@ function Widget(tag_name, methods) {
|
|
93
77
|
* @return void
|
94
78
|
*/
|
95
79
|
setOptions: function(options, element) {
|
96
|
-
|
97
|
-
|
98
|
-
RightJS.Object.merge(options, eval("("+(
|
80
|
+
if (element) {
|
81
|
+
options = RightJS.Object.merge(options, new Function("return "+(
|
99
82
|
element.get('data-'+ this.key) || '{}'
|
100
|
-
)
|
101
|
-
|
83
|
+
))());
|
84
|
+
}
|
85
|
+
|
86
|
+
if (options) {
|
87
|
+
RightJS.Options.setOptions.call(this, RightJS.Object.merge(this.options, options));
|
88
|
+
}
|
89
|
+
|
102
90
|
return this;
|
103
91
|
}
|
104
92
|
});
|
@@ -107,7 +95,7 @@ function Widget(tag_name, methods) {
|
|
107
95
|
* Creating the actual widget class
|
108
96
|
*
|
109
97
|
*/
|
110
|
-
var Klass = new RightJS.
|
98
|
+
var Klass = new RightJS.Class(AbstractWidget, methods);
|
111
99
|
|
112
100
|
// creating the widget related shortcuts
|
113
101
|
RightJS.Observer.createShortcuts(Klass.prototype, Klass.EVENTS || []);
|
@@ -161,16 +149,33 @@ var Updater = {
|
|
161
149
|
};
|
162
150
|
|
163
151
|
|
152
|
+
/**
|
153
|
+
* The init script for Rater
|
154
|
+
*
|
155
|
+
* Copyright (C) 2010 Nikolay Nemshilov
|
156
|
+
*/
|
157
|
+
var R = RightJS,
|
158
|
+
$ = RightJS.$,
|
159
|
+
$w = RightJS.$w,
|
160
|
+
Xhr = RightJS.Xhr,
|
161
|
+
isString = RightJS.isString,
|
162
|
+
isNumber = RightJS.isNumber;
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
164
169
|
/**
|
165
170
|
* The Rating widget
|
166
171
|
*
|
167
|
-
* Copyright (C) 2009-
|
172
|
+
* Copyright (C) 2009-2011 Nikolay Nemshilov
|
168
173
|
*/
|
169
174
|
var Rater = new Widget({
|
170
175
|
include: Updater,
|
171
176
|
|
172
177
|
extend: {
|
173
|
-
version: '2.
|
178
|
+
version: '2.2.0',
|
174
179
|
|
175
180
|
EVENTS: $w('change hover send'),
|
176
181
|
|
@@ -362,7 +367,18 @@ $(document).onMouseover(function(event) {
|
|
362
367
|
});
|
363
368
|
|
364
369
|
|
365
|
-
|
370
|
+
var embed_style = document.createElement('style'),
|
371
|
+
embed_rules = document.createTextNode("div.rui-rater,div.rui-rater div{margin:0;padding:0;background:none;border:none;display:inline-block; *display:inline; *zoom:1;font-family:Arial;font-size:110%}div.rui-rater{width:6em;height:1em;vertical-align:middle}div.rui-rater div{float:left;width:1em;height:1em;line-height:1em;text-align:center;cursor:pointer;color:#888}div.rui-rater div.active{color:brown;text-shadow:#666 .05em .05em .15em}div.rui-rater-disabled div{cursor:default}");
|
372
|
+
|
373
|
+
embed_style.type = 'text/css';
|
374
|
+
document.getElementsByTagName('head')[0].appendChild(embed_style);
|
375
|
+
|
376
|
+
if(embed_style.styleSheet) {
|
377
|
+
embed_style.styleSheet.cssText = embed_rules.nodeValue;
|
378
|
+
} else {
|
379
|
+
embed_style.appendChild(embed_rules);
|
380
|
+
}
|
381
|
+
|
366
382
|
|
367
383
|
return Rater;
|
368
384
|
})(document, RightJS);
|
@@ -1,13 +1,7 @@
|
|
1
1
|
/**
|
2
|
-
*
|
2
|
+
* RightJS-UI Rater v2.2.0
|
3
3
|
* http://rightjs.org/ui/rater
|
4
4
|
*
|
5
|
-
* Copyright (C) 2009-
|
5
|
+
* Copyright (C) 2009-2011 Nikolay Nemshilov
|
6
6
|
*/
|
7
|
-
var Rater=RightJS.Rater=function(
|
8
|
-
c){c=c||this;b.Options.setOptions.call(this,b.Object.merge(d,eval("("+(c.get("data-"+this.key)||"{}")+")")));return this}});f=new b.Wrapper(f,e);b.Observer.createShortcuts(f.prototype,f.EVENTS||[]);return f})({include:{assignTo:function(a){var e=b(function(d,c){if(d=g(d))d[d.setValue?"setValue":"update"](c.target.getValue())}).curry(a),f=b(function(d,c){(d=g(d))&&d.onChange&&d.onChange(b(function(){this.setValue(d.value())}).bind(c))}).curry(a);if(g(a)){e({target:this});f(this)}else g(h).onReady(b(function(){e({target:this});
|
9
|
-
f(this)}.bind(this)));return this.onChange(e)}},extend:{version:"2.0.0",EVENTS:k("change hover send"),Options:{html:"★",size:5,value:null,update:null,disabled:false,disableOnVote:false,url:null,param:"rate",Xhr:null}},initialize:function(a){this.$super("rater",a).on({click:this._clicked,mouseover:this._hovered,mouseout:this._left});if(this.empty())for(a=0;a<this.options.size;a++)this.insert("<div>"+this.options.html+"</div>");a=this.options;if(a.value===null)a.value=this.find(".active").length;
|
10
|
-
this.setValue(a.value);a.disabled&&this.disable();a.update&&this.assignTo(a.update)},setValue:function(a){if(!this.disabled()){a=m(a)?b(a).toInt():a;a=n(a)?b(a).round():0;a=b(a).max(this.options.size);a=b(a).min(0);this.highlight(a);if(this.value!=a)this.fire("change",{value:this.value=a})}return this},getValue:function(){return this.value},send:function(){if(this.options.url){this.request=(new l(this.options.url,this.options.Xhr)).send(this.options.param+"="+this.value);this.fire("send",{value:this.value})}return this},
|
11
|
-
disable:function(){return this.addClass("rui-rater-disabled")},enable:function(){return this.removeClass("rui-rater-disabled")},disabled:function(){return this.hasClass("rui-rater-disabled")},_hovered:function(a){a=this.children().indexOf(a.target);if(!this.disabled()&&a>-1){this.highlight(a+1);this.fire("hover",{value:a+1})}},_clicked:function(a){a=this.children().indexOf(a.target);if(!this.disabled()&&a>-1){this.setValue(a+1);this.options.disableOnVote&&this.disable();this.send()}},_left:function(){this.setValue(this.value)},
|
12
|
-
highlight:function(a){this.children().each(function(e,f){e[a-1<f?"removeClass":"addClass"]("active")})}});g(h).onMouseover(function(a){var e=a.target;if(a=a.find(".rui-rater"))if(!(a instanceof i)){a=new i(a);e.parent()===a&&e.fire("mouseover")}});h.write('<style type="text/css">div.rui-rater,div.rui-rater div{margin:0;padding:0;background:none;border:none;display:inline-block; *display:inline; *zoom:1;font-family:Arial;font-size:110%}div.rui-rater{width:6em;height:1em;vertical-align:middle}div.rui-rater div{float:left;width:1em;height:1em;line-height:1em;text-align:center;cursor:pointer;color:#888}div.rui-rater div.active{color:brown;text-shadow:#666 .05em .05em .15em}div.rui-rater-disabled div{cursor:default}</style>');
|
13
|
-
return i}(document,RightJS);
|
7
|
+
var Rater=RightJS.Rater=function(a,b){function c(a,c){c||(c=a,a="DIV");var d=new b.Class(b.Element.Wrappers[a]||b.Element,{initialize:function(c,d){this.key=c;var e=[{"class":"rui-"+c}];this instanceof b.Input||this instanceof b.Form||e.unshift(a),this.$super.apply(this,e),b.isString(d)&&(d=b.$(d)),d instanceof b.Element&&(this._=d._,"$listeners"in d&&(d.$listeners=d.$listeners),d={}),this.setOptions(d,this);return b.Wrapper.Cache[b.$uid(this._)]=this},setOptions:function(a,c){c&&(a=b.Object.merge(a,(new Function("return "+(c.get("data-"+this.key)||"{}")))())),a&&b.Options.setOptions.call(this,b.Object.merge(this.options,a));return this}}),e=new b.Class(d,c);b.Observer.createShortcuts(e.prototype,e.EVENTS||[]);return e}var d={assignTo:function(b){var c=e(function(a,b){(a=f(a))&&a[a.setValue?"setValue":"update"](b.target.getValue())}).curry(b),d=e(function(a,b){a=f(a),a&&a.onChange&&a.onChange(e(function(){this.setValue(a.value())}).bind(b))}).curry(b);f(b)?(c({target:this}),d(this)):f(a).onReady(e(function(){c({target:this}),d(this)}.bind(this)));return this.onChange(c)}},e=b,f=b.$,g=b.$w,h=b.Xhr,i=b.isString,j=b.isNumber,k=new c({include:d,extend:{version:"2.2.0",EVENTS:g("change hover send"),Options:{html:"★",size:5,value:null,update:null,disabled:!1,disableOnVote:!1,url:null,param:"rate",Xhr:null}},initialize:function(a){this.$super("rater",a).on({click:this._clicked,mouseover:this._hovered,mouseout:this._left});if(this.empty())for(var b=0;b<this.options.size;b++)this.insert("<div>"+this.options.html+"</div>");a=this.options,a.value===null&&(a.value=this.find(".active").length),this.setValue(a.value),a.disabled&&this.disable(),a.update&&this.assignTo(a.update)},setValue:function(a){this.disabled()||(a=i(a)?e(a).toInt():a,a=j(a)?e(a).round():0,a=e(a).max(this.options.size),a=e(a).min(0),this.highlight(a),this.value!=a&&this.fire("change",{value:this.value=a}));return this},getValue:function(){return this.value},send:function(){this.options.url&&(this.request=(new h(this.options.url,this.options.Xhr)).send(this.options.param+"="+this.value),this.fire("send",{value:this.value}));return this},disable:function(){return this.addClass("rui-rater-disabled")},enable:function(){return this.removeClass("rui-rater-disabled")},disabled:function(){return this.hasClass("rui-rater-disabled")},_hovered:function(a){var b=this.children().indexOf(a.target);!this.disabled()&&b>-1&&(this.highlight(b+1),this.fire("hover",{value:b+1}))},_clicked:function(a){var b=this.children().indexOf(a.target);!this.disabled()&&b>-1&&(this.setValue(b+1),this.options.disableOnVote&&this.disable(),this.send())},_left:function(){this.setValue(this.value)},highlight:function(a){this.children().each(function(b,c){b[a-1<c?"removeClass":"addClass"]("active")})}});f(a).onMouseover(function(a){var b=a.target,c=a.find(".rui-rater");c&&(c instanceof k||(c=new k(c),b.parent()===c&&b.fire("mouseover")))});var l=a.createElement("style"),m=a.createTextNode("div.rui-rater,div.rui-rater div{margin:0;padding:0;background:none;border:none;display:inline-block; *display:inline; *zoom:1;font-family:Arial;font-size:110%}div.rui-rater{width:6em;height:1em;vertical-align:middle}div.rui-rater div{float:left;width:1em;height:1em;line-height:1em;text-align:center;cursor:pointer;color:#888}div.rui-rater div.active{color:brown;text-shadow:#666 .05em .05em .15em}div.rui-rater-disabled div{cursor:default}");l.type="text/css",a.getElementsByTagName("head")[0].appendChild(l),l.styleSheet?l.styleSheet.cssText=m.nodeValue:l.appendChild(m);return k}(document,RightJS)
|