right-rails 1.0.3 → 1.0.5
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.
- data/CHANGELOG +8 -2
- data/Rakefile +28 -28
- data/lib/right_rails/java_script_generator.rb +59 -51
- data/public/images/{colorpicker.png → rightjs-ui/colorpicker.png} +0 -0
- data/public/images/{resizable.png → rightjs-ui/resizable.png} +0 -0
- data/public/javascripts/right-olds-src.js +47 -46
- data/public/javascripts/right-safe-src.js +103 -102
- data/public/javascripts/right-safe.js +1 -1
- data/public/javascripts/right-src.js +611 -541
- data/public/javascripts/right.js +86 -85
- data/public/javascripts/right/autocompleter-src.js +81 -77
- data/public/javascripts/right/autocompleter.js +1 -1
- data/public/javascripts/right/calendar-src.js +209 -197
- data/public/javascripts/right/calendar.js +6 -6
- data/public/javascripts/right/colorpicker-src.js +127 -117
- data/public/javascripts/right/colorpicker.js +6 -6
- data/public/javascripts/right/dnd-src.js +63 -63
- data/public/javascripts/right/dnd.js +2 -2
- data/public/javascripts/right/in-edit-src.js +53 -48
- data/public/javascripts/right/in-edit.js +2 -2
- data/public/javascripts/right/lightbox-src.js +107 -99
- data/public/javascripts/right/lightbox.js +2 -2
- data/public/javascripts/right/rater-src.js +48 -46
- data/public/javascripts/right/rater.js +3 -3
- data/public/javascripts/right/resizable-src.js +53 -61
- data/public/javascripts/right/resizable.js +4 -4
- data/public/javascripts/right/selectable-src.js +97 -95
- data/public/javascripts/right/selectable.js +2 -2
- data/public/javascripts/right/slider-src.js +47 -45
- data/public/javascripts/right/slider.js +8 -8
- data/public/javascripts/right/sortable-src.js +54 -52
- data/public/javascripts/right/tabs-src.js +181 -171
- data/public/javascripts/right/tooltip-src.js +39 -37
- data/public/javascripts/right/uploader-src.js +21 -19
- data/spec/lib/right_rails/java_script_generator_spec.rb +61 -56
- metadata +9 -7
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /**
         | 
| 2 | 
            -
             * Selectable unit for RightJS | 
| 2 | 
            +
             * Selectable unit for RightJS
         | 
| 3 3 | 
             
             * http://rightjs.org/ui/selectable
         | 
| 4 4 | 
             
             *
         | 
| 5 5 | 
             
             * Copyright (C) 2009-2010 Nikolay Nemshilov
         | 
| @@ -10,7 +10,7 @@ if(g(a)){b({target:this});d(this)}else g(h).onReady(e(function(){b({target:this} | |
| 10 10 | 
             
            o(arguments).compact(),b=a.pop();a=a.pop();var d;if(!r(b)||b instanceof n){a=g(a||b);b={}}if(a&&a instanceof u)a=b=this.harvestOptions(d=a);this.$super("selectable",a).setOptions(b).on({mousedown:this._mousedown,mouseover:this._mouseover,mouseout:this._mouseout,mouseup:this._mouseup,click:this._click,select:this._change,unselect:this._change});this.empty()&&this.build();b=this.options;if(!b.multiple||this.hasClass("rui-selectable-single")){this.isSingle=true;this.addClass("rui-selectable-single");
         | 
| 11 11 | 
             
            this.buildSingle();b.selected===null&&this.select(this.items()[0])}b.disabled&&this.disable(b.disabled);b.selected&&this.select(b.selected);b.update&&this.assignTo(b.update);if(d){this.assignTo(d).insertTo(d,"before");d.wrap(i("div",{style:"position:absolute;z-index:-1;visibility:hidden;width:0;height:0;overflow:hidden"}))}},setValue:function(a){if(m(a))a=a.split(",").map("trim").filter(function(b){return!b.blank()});this.items().each("removeClass","rui-selectable-selected");return this.select(a)},
         | 
| 12 12 | 
             
            getValue:function(){if(this.isSingle){var a=this.items().first("hasClass","rui-selectable-selected");return a?this.itemValue(a):null}else return this.items().filter("hasClass","rui-selectable-selected").map(function(b){return this.itemValue(b)},this)},disable:function(a){this.mapOrAll(a).each(function(b){this.fire("disable",b.addClass("rui-selectable-disabled"))},this);return this},enable:function(a){this.mapOrAll(a).each(function(b){this.fire("enable",b.removeClass("rui-selectable-disabled"))},this);
         | 
| 13 | 
            -
            return this},disabled:function(a){return this.mapOrAll(a).every("hasClass","rui-selectable-disabled")},select:function(a){a=this.mapEnabled(a);if(this.isSingle&&a){this.items().each("removeClass","rui-selectable-selected");a=e([a[0]])}if(!this.isSingle&&this.options.limit){for(var b=this.items().filter("hasClass","rui-selectable-selected"),d=[];a.length&&b.length+d.length<this.options.limit;){var c=a.shift();b.include(c)||d.push(c)}a=d}a.each(function(f){this.fire("select",f.addClass("rui-selectable-selected"))},
         | 
| 13 | 
            +
            return this},disabled:function(a){return this.mapOrAll(a).every("hasClass","rui-selectable-disabled")},select:function(a){a=this.mapEnabled(a);if(this.isSingle&&a){this.items().each("removeClass","rui-selectable-selected");a=e([a[0]])}if(!this.isSingle&&this.options.limit){for(var b=this.items().filter("hasClass","rui-selectable-selected"),d=[];a.length&&b.length+d.length<this.options.limit;){var c=a.shift();b.include(c)||d.push(c)}a=d}a.compact().each(function(f){this.fire("select",f.addClass("rui-selectable-selected"))},
         | 
| 14 14 | 
             
            this);return this},unselect:function(a){this.getValue();this.mapEnabled(a).each(function(b){this.fire("unselect",b.removeClass("rui-selectable-selected"))},this);return this},selected:function(a){return this.mapEnabled(a).every("hasClass","rui-selectable-selected")},insertTo:function(a,b){n.prototype.insertTo.call(this.isSingle?this.container:this,a,b);return this},fire:function(a,b){b&&b instanceof n?this.$super(a,{item:b,index:this.items().indexOf(b)}):this.$super.apply(this,arguments);return this},
         | 
| 15 15 | 
             
            itemValue:function(a){var b=a.get("id")||a.get("val");return b?this.options.parseIds?b.match(/\d+/):b:this.items().indexOf(a)},items:function(){return this.find("li")},mapOrAll:function(a){var b=this.items();if(t(a)){l(a)||(a=[a]);b=e(a).map(function(d){var c=m(d)&&/^\d+$/.test(d)?parseInt(d,10):d,f=d;if(s(c))f=b[c];else if(m(d))f=b.first(function(j){return j.id==d||j.val==d});return f},this).compact()}return b},mapEnabled:function(a){return this.mapOrAll(a).filter(function(b){return!b.hasClass("rui-selectable-disabled")},
         | 
| 16 16 | 
             
            this)},_mousedown:function(a){a.stop();var b=a.target,d=this.items();if(!this.disabled(b)){if(this.isSingle)this.select(b);else if(this.selected(b)){this.unselect(b);this._massRemove=true}else{this.select(b);this._massSelect=true}if((a.shiftKey||a.metaKey)&&this._prevItem){var c=d.indexOf(this._prevItem);a=d.indexOf(b);if(c!=a){if(c>a)a=c=a;for(c=c;c<a;c++)this[this._prevItem.hasClass("rui-selectable-selected")?"select":"unselect"](d[c])}}this._prevItem=b}},_mouseup:function(a){a.stop();this._massRemove=
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /**
         | 
| 2 | 
            -
             * RightJS UI Slider unit | 
| 2 | 
            +
             * RightJS UI Slider unit
         | 
| 3 3 | 
             
             * http://rightjs.org/ui/slider
         | 
| 4 4 | 
             
             *
         | 
| 5 5 | 
             
             * Copyright (C) 2009-2010 Nikolay Nemshilov
         | 
| @@ -38,13 +38,13 @@ var R       = RightJS, | |
| 38 38 | 
             
             * @param String tag-name or Object methods
         | 
| 39 39 | 
             
             * @param Object methods
         | 
| 40 40 | 
             
             * @return Widget wrapper
         | 
| 41 | 
            -
             */ | 
| 41 | 
            +
             */
         | 
| 42 42 | 
             
            function Widget(tag_name, methods) {
         | 
| 43 43 | 
             
              if (!methods) {
         | 
| 44 44 | 
             
                methods = tag_name;
         | 
| 45 45 | 
             
                tag_name = 'DIV';
         | 
| 46 46 | 
             
              }
         | 
| 47 | 
            -
             | 
| 47 | 
            +
             | 
| 48 48 | 
             
              /**
         | 
| 49 49 | 
             
               * An Abstract Widget Unit
         | 
| 50 50 | 
             
               *
         | 
| @@ -61,17 +61,17 @@ function Widget(tag_name, methods) { | |
| 61 61 | 
             
                initialize: function(key, options) {
         | 
| 62 62 | 
             
                  this.key = key;
         | 
| 63 63 | 
             
                  var args = [{'class': 'rui-' + key}];
         | 
| 64 | 
            -
             | 
| 64 | 
            +
             | 
| 65 65 | 
             
                  // those two have different constructors
         | 
| 66 66 | 
             
                  if (!(this instanceof RightJS.Input || this instanceof RightJS.Form)) {
         | 
| 67 67 | 
             
                    args.unshift(tag_name);
         | 
| 68 68 | 
             
                  }
         | 
| 69 69 | 
             
                  this.$super.apply(this, args);
         | 
| 70 | 
            -
             | 
| 70 | 
            +
             | 
| 71 71 | 
             
                  if (RightJS.isString(options)) {
         | 
| 72 72 | 
             
                    options = RightJS.$(options);
         | 
| 73 73 | 
             
                  }
         | 
| 74 | 
            -
             | 
| 74 | 
            +
             | 
| 75 75 | 
             
                  // if the options is another element then
         | 
| 76 76 | 
             
                  // try to dynamically rewrap it with our widget
         | 
| 77 77 | 
             
                  if (options instanceof RightJS.Element) {
         | 
| @@ -104,16 +104,16 @@ function Widget(tag_name, methods) { | |
| 104 104 | 
             
                  return this;
         | 
| 105 105 | 
             
                }
         | 
| 106 106 | 
             
              });
         | 
| 107 | 
            -
             | 
| 107 | 
            +
             | 
| 108 108 | 
             
              /**
         | 
| 109 109 | 
             
               * Creating the actual widget class
         | 
| 110 110 | 
             
               *
         | 
| 111 111 | 
             
               */
         | 
| 112 112 | 
             
              var Klass = new RightJS.Wrapper(AbstractWidget, methods);
         | 
| 113 | 
            -
             | 
| 113 | 
            +
             | 
| 114 114 | 
             
              // creating the widget related shortcuts
         | 
| 115 115 | 
             
              RightJS.Observer.createShortcuts(Klass.prototype, Klass.EVENTS || []);
         | 
| 116 | 
            -
             | 
| 116 | 
            +
             | 
| 117 117 | 
             
              return Klass;
         | 
| 118 118 | 
             
            }
         | 
| 119 119 |  | 
| @@ -125,7 +125,7 @@ function Widget(tag_name, methods) { | |
| 125 125 | 
             
             * Copyright (C) 2010 Nikolay Nemshilov
         | 
| 126 126 | 
             
             */
         | 
| 127 127 | 
             
            var Updater = {
         | 
| 128 | 
            -
             | 
| 128 | 
            +
             | 
| 129 129 | 
             
              /**
         | 
| 130 130 | 
             
               * Assigns the unit to work with an input element
         | 
| 131 131 | 
             
               *
         | 
| @@ -138,7 +138,7 @@ var Updater = { | |
| 138 138 | 
             
                    element[element.setValue ? 'setValue' : 'update'](event.target.getValue());
         | 
| 139 139 | 
             
                  }
         | 
| 140 140 | 
             
                }).curry(element);
         | 
| 141 | 
            -
             | 
| 141 | 
            +
             | 
| 142 142 | 
             
                var connect = R(function(element, object) {
         | 
| 143 143 | 
             
                  element = $(element);
         | 
| 144 144 | 
             
                  if (element && element.onChange) {
         | 
| @@ -147,7 +147,7 @@ var Updater = { | |
| 147 147 | 
             
                    }).bind(object));
         | 
| 148 148 | 
             
                  }
         | 
| 149 149 | 
             
                }).curry(element);
         | 
| 150 | 
            -
             | 
| 150 | 
            +
             | 
| 151 151 | 
             
                if ($(element)) {
         | 
| 152 152 | 
             
                  assign({target: this});
         | 
| 153 153 | 
             
                  connect(this);
         | 
| @@ -157,7 +157,7 @@ var Updater = { | |
| 157 157 | 
             
                    connect(this);
         | 
| 158 158 | 
             
                  }.bind(this)));
         | 
| 159 159 | 
             
                }
         | 
| 160 | 
            -
             | 
| 160 | 
            +
             | 
| 161 161 | 
             
                return this.onChange(assign);
         | 
| 162 162 | 
             
              }
         | 
| 163 163 | 
             
            };
         | 
| @@ -170,12 +170,12 @@ var Updater = { | |
| 170 170 | 
             
             */
         | 
| 171 171 | 
             
            var Slider = new Widget({
         | 
| 172 172 | 
             
              include: Updater,
         | 
| 173 | 
            -
             | 
| 173 | 
            +
             | 
| 174 174 | 
             
              extend: {
         | 
| 175 175 | 
             
                version: '2.0.0',
         | 
| 176 | 
            -
             | 
| 176 | 
            +
             | 
| 177 177 | 
             
                EVENTS: $w('change'),
         | 
| 178 | 
            -
             | 
| 178 | 
            +
             | 
| 179 179 | 
             
                Options: {
         | 
| 180 180 | 
             
                  min:       0,     // the min value
         | 
| 181 181 | 
             
                  max:       100,   // the max value
         | 
| @@ -185,10 +185,10 @@ var Slider = new Widget({ | |
| 185 185 | 
             
                  update:    null,  // reference to an element to update
         | 
| 186 186 | 
             
                  round:     0      // the number of symbols after the decimal pointer
         | 
| 187 187 | 
             
                },
         | 
| 188 | 
            -
             | 
| 188 | 
            +
             | 
| 189 189 | 
             
                current: false
         | 
| 190 190 | 
             
              },
         | 
| 191 | 
            -
             | 
| 191 | 
            +
             | 
| 192 192 | 
             
              /**
         | 
| 193 193 | 
             
               * basic constructor
         | 
| 194 194 | 
             
               * USAGE:
         | 
| @@ -200,29 +200,29 @@ var Slider = new Widget({ | |
| 200 200 | 
             
               */
         | 
| 201 201 | 
             
              initialize: function() {
         | 
| 202 202 | 
             
                var args = $A(arguments).compact(), options = args.pop(), element = args.pop();
         | 
| 203 | 
            -
             | 
| 203 | 
            +
             | 
| 204 204 | 
             
                // figuring out the arguments
         | 
| 205 205 | 
             
                if (!isHash(options) || options instanceof Element) {
         | 
| 206 206 | 
             
                  element = $(element || options);
         | 
| 207 207 | 
             
                  options = {};
         | 
| 208 208 | 
             
                }
         | 
| 209 | 
            -
             | 
| 209 | 
            +
             | 
| 210 210 | 
             
                this.$super('slider', element).setOptions(options)
         | 
| 211 211 | 
             
                  .on('selectstart', 'stopEvent'); // disable select under IE
         | 
| 212 | 
            -
             | 
| 212 | 
            +
             | 
| 213 213 | 
             
                this.level  = this.first('.level')  || $E('div', {'class': 'level'}).insertTo(this);
         | 
| 214 214 | 
             
                this.handle = this.first('.handle') || $E('div', {'class': 'handle'}).insertTo(this);
         | 
| 215 | 
            -
             | 
| 215 | 
            +
             | 
| 216 216 | 
             
                options = this.options;
         | 
| 217 217 | 
             
                this.value = options.value === null ? options.min : options.value;
         | 
| 218 | 
            -
             | 
| 218 | 
            +
             | 
| 219 219 | 
             
                if (options.update) { this.assignTo(options.update); }
         | 
| 220 220 | 
             
                if (options.direction === 'y') { this.addClass('rui-slider-vertical'); }
         | 
| 221 221 | 
             
                else if (this.hasClass('rui-slider-vertical')) { options.direction = 'y'; }
         | 
| 222 | 
            -
             | 
| 222 | 
            +
             | 
| 223 223 | 
             
                this.setValue(this.value);
         | 
| 224 224 | 
             
              },
         | 
| 225 | 
            -
             | 
| 225 | 
            +
             | 
| 226 226 | 
             
              /**
         | 
| 227 227 | 
             
               * The value setter
         | 
| 228 228 | 
             
               *
         | 
| @@ -234,7 +234,7 @@ var Slider = new Widget({ | |
| 234 234 | 
             
              setValue: function(value) {
         | 
| 235 235 | 
             
                return this.precalc().shiftTo(value);
         | 
| 236 236 | 
             
              },
         | 
| 237 | 
            -
             | 
| 237 | 
            +
             | 
| 238 238 | 
             
              /**
         | 
| 239 239 | 
             
               * Returns the value
         | 
| 240 240 | 
             
               *
         | 
| @@ -243,7 +243,7 @@ var Slider = new Widget({ | |
| 243 243 | 
             
              getValue: function() {
         | 
| 244 244 | 
             
                return this.value;
         | 
| 245 245 | 
             
              },
         | 
| 246 | 
            -
             | 
| 246 | 
            +
             | 
| 247 247 | 
             
              /**
         | 
| 248 248 | 
             
               * Inserts the widget into the element
         | 
| 249 249 | 
             
               *
         | 
| @@ -254,7 +254,7 @@ var Slider = new Widget({ | |
| 254 254 | 
             
              insertTo: function(element, position) {
         | 
| 255 255 | 
             
                return this.$super(element, position).setValue(this.value);
         | 
| 256 256 | 
             
              },
         | 
| 257 | 
            -
             | 
| 257 | 
            +
             | 
| 258 258 | 
             
            // protected
         | 
| 259 259 |  | 
| 260 260 | 
             
              // precalculates dimensions, direction and offset for further use
         | 
| @@ -263,10 +263,10 @@ var Slider = new Widget({ | |
| 263 263 | 
             
                    handle      = this.handle.setStyle(horizontal ? {left: 0} : {bottom: 0}).dimensions(),
         | 
| 264 264 | 
             
                    handle_size = this.hSize = horizontal ? handle.width : handle.height,
         | 
| 265 265 | 
             
                    dims        = this.dims  = this.dimensions();
         | 
| 266 | 
            -
             | 
| 266 | 
            +
             | 
| 267 267 | 
             
                this.offset = horizontal ? handle.left - dims.left : dims.top + dims.height - handle.top - handle_size;
         | 
| 268 268 | 
             
                this.space  = (horizontal ? dims.width - handle_size - this.offset * 2 : dims.height - handle_size) - this.offset * 2;
         | 
| 269 | 
            -
             | 
| 269 | 
            +
             | 
| 270 270 | 
             
                return this;
         | 
| 271 271 | 
             
              },
         | 
| 272 272 |  | 
| @@ -274,19 +274,19 @@ var Slider = new Widget({ | |
| 274 274 | 
             
              start: function(event) {
         | 
| 275 275 | 
             
                return this.precalc().e2val(event);
         | 
| 276 276 | 
             
              },
         | 
| 277 | 
            -
             | 
| 277 | 
            +
             | 
| 278 278 | 
             
              // processes the slider-drag
         | 
| 279 279 | 
             
              move: function(event) {
         | 
| 280 280 | 
             
                return this.e2val(event);
         | 
| 281 281 | 
             
              },
         | 
| 282 | 
            -
             | 
| 282 | 
            +
             | 
| 283 283 | 
             
              // shifts the slider to the value
         | 
| 284 284 | 
             
              shiftTo: function(value) {
         | 
| 285 285 | 
             
                var options = this.options, base = Math.pow(10, options.round), horizontal = options.direction === 'x';
         | 
| 286 | 
            -
             | 
| 286 | 
            +
             | 
| 287 287 | 
             
                // rounding the value up
         | 
| 288 288 | 
             
                value = Math.round(value * base) / base;
         | 
| 289 | 
            -
             | 
| 289 | 
            +
             | 
| 290 290 | 
             
                // checking the value constraings
         | 
| 291 291 | 
             
                if (value < options.min) { value = options.min; }
         | 
| 292 292 | 
             
                if (value > options.max) { value = options.max; }
         | 
| @@ -295,22 +295,22 @@ var Slider = new Widget({ | |
| 295 295 | 
             
                  var diff = value % snap;
         | 
| 296 296 | 
             
                  value = diff < snap/2 ? value - diff : value - diff + snap;
         | 
| 297 297 | 
             
                }
         | 
| 298 | 
            -
             | 
| 298 | 
            +
             | 
| 299 299 | 
             
                // calculating and setting the actual position
         | 
| 300 300 | 
             
                var position = this.space / (options.max - options.min) * (value - options.min);
         | 
| 301 | 
            -
             | 
| 301 | 
            +
             | 
| 302 302 | 
             
                this.handle._.style[horizontal ? 'left' : 'bottom'] = position + 'px';
         | 
| 303 303 | 
             
                this.level._.style[horizontal  ? 'width': 'height'] = ((position > 0 ? position : 0) + 2) + 'px';
         | 
| 304 | 
            -
             | 
| 304 | 
            +
             | 
| 305 305 | 
             
                // checking the change status
         | 
| 306 306 | 
             
                if (value !== this.value) {
         | 
| 307 307 | 
             
                  this.value = value;
         | 
| 308 | 
            -
                  this.fire('change');
         | 
| 308 | 
            +
                  this.fire('change', {value: value});
         | 
| 309 309 | 
             
                }
         | 
| 310 | 
            -
             | 
| 310 | 
            +
             | 
| 311 311 | 
             
                return this;
         | 
| 312 312 | 
             
              },
         | 
| 313 | 
            -
             | 
| 313 | 
            +
             | 
| 314 314 | 
             
              // converts the event position into the actual value in terms of the slider measures
         | 
| 315 315 | 
             
              e2val: function(event) {
         | 
| 316 316 | 
             
                var options = this.options, horizontal = options.direction === 'x',
         | 
| @@ -318,11 +318,12 @@ var Slider = new Widget({ | |
| 318 318 | 
             
                    cur_pos = event.position()[horizontal ? 'x' : 'y'] - offset - this.hSize/2,
         | 
| 319 319 | 
             
                    min_pos = horizontal ? dims.left + offset : dims.top + offset,
         | 
| 320 320 | 
             
                    value   = (options.max - options.min) / space * (cur_pos - min_pos);
         | 
| 321 | 
            -
             | 
| 321 | 
            +
             | 
| 322 322 | 
             
                return this.shiftTo(horizontal ? options.min + value : options.max - value);
         | 
| 323 323 | 
             
              }
         | 
| 324 324 | 
             
            });
         | 
| 325 325 |  | 
| 326 | 
            +
             | 
| 326 327 | 
             
            /**
         | 
| 327 328 | 
             
             * Document onReady hook for sliders
         | 
| 328 329 | 
             
             *
         | 
| @@ -337,7 +338,7 @@ $(document).on({ | |
| 337 338 | 
             
                  }
         | 
| 338 339 | 
             
                });
         | 
| 339 340 | 
             
              },
         | 
| 340 | 
            -
             | 
| 341 | 
            +
             | 
| 341 342 | 
             
              // initiates the slider move
         | 
| 342 343 | 
             
              mousedown: function(event) {
         | 
| 343 344 | 
             
                var slider = event.find('.rui-slider');
         | 
| @@ -349,14 +350,14 @@ $(document).on({ | |
| 349 350 | 
             
                  Slider.current = slider.start(event);
         | 
| 350 351 | 
             
                }
         | 
| 351 352 | 
             
              },
         | 
| 352 | 
            -
             | 
| 353 | 
            +
             | 
| 353 354 | 
             
              // handles the slider move
         | 
| 354 355 | 
             
              mousemove: function(event) {
         | 
| 355 356 | 
             
                if (Slider.current) {
         | 
| 356 357 | 
             
                  Slider.current.move(event);
         | 
| 357 358 | 
             
                }
         | 
| 358 359 | 
             
              },
         | 
| 359 | 
            -
             | 
| 360 | 
            +
             | 
| 360 361 | 
             
              // handles the slider release
         | 
| 361 362 | 
             
              mouseup: function(event) {
         | 
| 362 363 | 
             
                if (Slider.current) {
         | 
| @@ -371,7 +372,8 @@ $(window).onBlur(function() { | |
| 371 372 | 
             
              }
         | 
| 372 373 | 
             
            });
         | 
| 373 374 |  | 
| 375 | 
            +
             | 
| 374 376 | 
             
            document.write("<style type=\"text/css\">div.rui-slider,div.rui-slider .handle div.rui-slider .level{margin:0;padding:0;border:none;background:none}div.rui-slider{height:0.4em;width:20em;border:1px solid #bbb;background:#F8F8F8;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;position:relative;margin:.6em 0;display:inline-block; *display:inline; *zoom:1;vertical-align:middle;user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:pointer}div.rui-slider .handle{font-size:25%;position:absolute;left:0;top:0;width:4pt;height:4em;margin-top:-1.6em;margin-left:0.4em;background:#BBB;border:1px solid #999;border-radius:.8em;-moz-border-radius:.8em;-webkit-border-radius:.8em;z-index:20}div.rui-slider .level{font-size:25%;position:absolute;top:0;left:0;width:0;height:100%;background:#ddd;z-index:1}div.rui-slider-vertical{height:10em;width:0.4em;margin:0 .3em}div.rui-slider-vertical .handle{top:auto;bottom:0;margin:0;margin-left:-1.6em;margin-bottom:0.4em;height:4pt;width:4em}div.rui-slider-vertical .level{height:0;width:100%;top:auto;bottom:0}</style>");
         | 
| 375 377 |  | 
| 376 378 | 
             
            return Slider;
         | 
| 377 | 
            -
            })(document, Math, RightJS);
         | 
| 379 | 
            +
            })(document, Math, RightJS);
         | 
| @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            /**
         | 
| 2 | 
            -
             * RightJS UI Slider unit | 
| 2 | 
            +
             * RightJS UI Slider unit
         | 
| 3 3 | 
             
             * http://rightjs.org/ui/slider
         | 
| 4 4 | 
             
             *
         | 
| 5 5 | 
             
             * Copyright (C) 2009-2010 Nikolay Nemshilov
         | 
| 6 6 | 
             
             */
         | 
| 7 | 
            -
            var Slider=RightJS.Slider=function(j,k,e){var h=e.$,m=e.$$,n=e.$w,l=e.$E,o=e.$A,p=e.isHash,q=e.Element,g=new (function(b | 
| 8 | 
            -
            d){d=d||this;e.Options.setOptions.call(this,e.Object.merge(c,eval("("+(d.get("data-"+this.key)||"{}")+")")));return this}});f=new e.Wrapper(f, | 
| 9 | 
            -
            f(this)}.bind(this)));return this.onChange( | 
| 10 | 
            -
             | 
| 11 | 
            -
            f=this.hSize=b | 
| 12 | 
            -
            "left":"bottom"]= | 
| 13 | 
            -
            if( | 
| 7 | 
            +
            var Slider=RightJS.Slider=function(j,k,e){var h=e.$,m=e.$$,n=e.$w,l=e.$E,o=e.$A,p=e.isHash,q=e.Element,g=new (function(a,b){if(!b){b=a;a="DIV"}var f=new e.Wrapper(e.Element.Wrappers[a]||e.Element,{initialize:function(c,d){this.key=c;var i=[{"class":"rui-"+c}];this instanceof e.Input||this instanceof e.Form||i.unshift(a);this.$super.apply(this,i);if(e.isString(d))d=e.$(d);if(d instanceof e.Element){this._=d._;if("$listeners"in d)d.$listeners=d.$listeners;d={}}this.setOptions(d,this);return this},setOptions:function(c,
         | 
| 8 | 
            +
            d){d=d||this;e.Options.setOptions.call(this,e.Object.merge(c,eval("("+(d.get("data-"+this.key)||"{}")+")")));return this}});f=new e.Wrapper(f,b);e.Observer.createShortcuts(f.prototype,f.EVENTS||[]);return f})({include:{assignTo:function(a){var b=e(function(c,d){if(c=h(c))c[c.setValue?"setValue":"update"](d.target.getValue())}).curry(a),f=e(function(c,d){(c=h(c))&&c.onChange&&c.onChange(e(function(){this.setValue(c.value())}).bind(d))}).curry(a);if(h(a)){b({target:this});f(this)}else h(j).onReady(e(function(){b({target:this});
         | 
| 9 | 
            +
            f(this)}.bind(this)));return this.onChange(b)}},extend:{version:"2.0.0",EVENTS:n("change"),Options:{min:0,max:100,snap:0,value:null,direction:"x",update:null,round:0},current:false},initialize:function(){var a=o(arguments).compact(),b=a.pop();a=a.pop();if(!p(b)||b instanceof q){a=h(a||b);b={}}this.$super("slider",a).setOptions(b).on("selectstart","stopEvent");this.level=this.first(".level")||l("div",{"class":"level"}).insertTo(this);this.handle=this.first(".handle")||l("div",{"class":"handle"}).insertTo(this);
         | 
| 10 | 
            +
            b=this.options;this.value=b.value===null?b.min:b.value;b.update&&this.assignTo(b.update);if(b.direction==="y")this.addClass("rui-slider-vertical");else if(this.hasClass("rui-slider-vertical"))b.direction="y";this.setValue(this.value)},setValue:function(a){return this.precalc().shiftTo(a)},getValue:function(){return this.value},insertTo:function(a,b){return this.$super(a,b).setValue(this.value)},precalc:function(){var a=this.options.direction==="x",b=this.handle.setStyle(a?{left:0}:{bottom:0}).dimensions(),
         | 
| 11 | 
            +
            f=this.hSize=a?b.width:b.height,c=this.dims=this.dimensions();this.offset=a?b.left-c.left:c.top+c.height-b.top-f;this.space=(a?c.width-f-this.offset*2:c.height-f)-this.offset*2;return this},start:function(a){return this.precalc().e2val(a)},move:function(a){return this.e2val(a)},shiftTo:function(a){var b=this.options,f=k.pow(10,b.round),c=b.direction==="x";a=k.round(a*f)/f;if(a<b.min)a=b.min;if(a>b.max)a=b.max;if(b.snap){f=b.snap;var d=a%f;a=d<f/2?a-d:a-d+f}b=this.space/(b.max-b.min)*(a-b.min);this.handle._.style[c?
         | 
| 12 | 
            +
            "left":"bottom"]=b+"px";this.level._.style[c?"width":"height"]=(b>0?b:0)+2+"px";if(a!==this.value){this.value=a;this.fire("change",{value:a})}return this},e2val:function(a){var b=this.options,f=b.direction==="x",c=this.dims,d=this.offset,i=this.space;a=a.position()[f?"x":"y"]-d-this.hSize/2;c=(b.max-b.min)/i*(a-(f?c.left+d:c.top+d));return this.shiftTo(f?b.min+c:b.max-c)}});h(j).on({ready:function(){m(".rui-slider").each(function(a){a instanceof g||new g(a)})},mousedown:function(a){var b=a.find(".rui-slider");
         | 
| 13 | 
            +
            if(b){a.stop();b instanceof g||(b=new g(b));g.current=b.start(a)}},mousemove:function(a){g.current&&g.current.move(a)},mouseup:function(){if(g.current)g.current=false}});h(window).onBlur(function(){if(g.current)g.current=false});j.write('<style type="text/css">div.rui-slider,div.rui-slider .handle div.rui-slider .level{margin:0;padding:0;border:none;background:none}div.rui-slider{height:0.4em;width:20em;border:1px solid #bbb;background:#F8F8F8;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;position:relative;margin:.6em 0;display:inline-block; *display:inline; *zoom:1;vertical-align:middle;user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:pointer}div.rui-slider .handle{font-size:25%;position:absolute;left:0;top:0;width:4pt;height:4em;margin-top:-1.6em;margin-left:0.4em;background:#BBB;border:1px solid #999;border-radius:.8em;-moz-border-radius:.8em;-webkit-border-radius:.8em;z-index:20}div.rui-slider .level{font-size:25%;position:absolute;top:0;left:0;width:0;height:100%;background:#ddd;z-index:1}div.rui-slider-vertical{height:10em;width:0.4em;margin:0 .3em}div.rui-slider-vertical .handle{top:auto;bottom:0;margin:0;margin-left:-1.6em;margin-bottom:0.4em;height:4pt;width:4em}div.rui-slider-vertical .level{height:0;width:100%;top:auto;bottom:0}</style>');
         | 
| 14 14 | 
             
            return g}(document,Math,RightJS);
         | 
| @@ -36,13 +36,13 @@ var R        = RightJS, | |
| 36 36 | 
             
             * @param String tag-name or Object methods
         | 
| 37 37 | 
             
             * @param Object methods
         | 
| 38 38 | 
             
             * @return Widget wrapper
         | 
| 39 | 
            -
             */ | 
| 39 | 
            +
             */
         | 
| 40 40 | 
             
            function Widget(tag_name, methods) {
         | 
| 41 41 | 
             
              if (!methods) {
         | 
| 42 42 | 
             
                methods = tag_name;
         | 
| 43 43 | 
             
                tag_name = 'DIV';
         | 
| 44 44 | 
             
              }
         | 
| 45 | 
            -
             | 
| 45 | 
            +
             | 
| 46 46 | 
             
              /**
         | 
| 47 47 | 
             
               * An Abstract Widget Unit
         | 
| 48 48 | 
             
               *
         | 
| @@ -59,17 +59,17 @@ function Widget(tag_name, methods) { | |
| 59 59 | 
             
                initialize: function(key, options) {
         | 
| 60 60 | 
             
                  this.key = key;
         | 
| 61 61 | 
             
                  var args = [{'class': 'rui-' + key}];
         | 
| 62 | 
            -
             | 
| 62 | 
            +
             | 
| 63 63 | 
             
                  // those two have different constructors
         | 
| 64 64 | 
             
                  if (!(this instanceof RightJS.Input || this instanceof RightJS.Form)) {
         | 
| 65 65 | 
             
                    args.unshift(tag_name);
         | 
| 66 66 | 
             
                  }
         | 
| 67 67 | 
             
                  this.$super.apply(this, args);
         | 
| 68 | 
            -
             | 
| 68 | 
            +
             | 
| 69 69 | 
             
                  if (RightJS.isString(options)) {
         | 
| 70 70 | 
             
                    options = RightJS.$(options);
         | 
| 71 71 | 
             
                  }
         | 
| 72 | 
            -
             | 
| 72 | 
            +
             | 
| 73 73 | 
             
                  // if the options is another element then
         | 
| 74 74 | 
             
                  // try to dynamically rewrap it with our widget
         | 
| 75 75 | 
             
                  if (options instanceof RightJS.Element) {
         | 
| @@ -102,16 +102,16 @@ function Widget(tag_name, methods) { | |
| 102 102 | 
             
                  return this;
         | 
| 103 103 | 
             
                }
         | 
| 104 104 | 
             
              });
         | 
| 105 | 
            -
             | 
| 105 | 
            +
             | 
| 106 106 | 
             
              /**
         | 
| 107 107 | 
             
               * Creating the actual widget class
         | 
| 108 108 | 
             
               *
         | 
| 109 109 | 
             
               */
         | 
| 110 110 | 
             
              var Klass = new RightJS.Wrapper(AbstractWidget, methods);
         | 
| 111 | 
            -
             | 
| 111 | 
            +
             | 
| 112 112 | 
             
              // creating the widget related shortcuts
         | 
| 113 113 | 
             
              RightJS.Observer.createShortcuts(Klass.prototype, Klass.EVENTS || []);
         | 
| 114 | 
            -
             | 
| 114 | 
            +
             | 
| 115 115 | 
             
              return Klass;
         | 
| 116 116 | 
             
            }
         | 
| 117 117 |  | 
| @@ -124,29 +124,29 @@ function Widget(tag_name, methods) { | |
| 124 124 | 
             
            var Sortable = new Widget('UL', {
         | 
| 125 125 | 
             
              extend: {
         | 
| 126 126 | 
             
                version: '2.0.0',
         | 
| 127 | 
            -
             | 
| 127 | 
            +
             | 
| 128 128 | 
             
                EVENTS: $w('change'),
         | 
| 129 | 
            -
             | 
| 129 | 
            +
             | 
| 130 130 | 
             
                Options: {
         | 
| 131 131 | 
             
                  url:        null,       // the Xhr requests url address, might contain the '%{id}' placeholder
         | 
| 132 132 | 
             
                  method:     'put',      // the Xhr requests method
         | 
| 133 | 
            -
             | 
| 133 | 
            +
             | 
| 134 134 | 
             
                  Xhr:        {},         // additional Xhr options
         | 
| 135 | 
            -
             | 
| 135 | 
            +
             | 
| 136 136 | 
             
                  idParam:    'id',       // the id value name
         | 
| 137 137 | 
             
                  posParam:   'position', // the position value name
         | 
| 138 138 | 
             
                  parseId:    true,       // if the id attribute should be converted into an integer before sending
         | 
| 139 | 
            -
             | 
| 139 | 
            +
             | 
| 140 140 | 
             
                  dragClass:  'dragging', // the in-process class name
         | 
| 141 141 | 
             
                  accept:     null,       // a reference or a list of references to the other sortables between which you can drag the items
         | 
| 142 142 | 
             
                  minLength:  1,          // minimum number of items on the list when the feature works
         | 
| 143 | 
            -
             | 
| 143 | 
            +
             | 
| 144 144 | 
             
                  cssRule:    '*[data-sortable]' // css-rule for automatically initializable sortables
         | 
| 145 145 | 
             
                },
         | 
| 146 | 
            -
             | 
| 146 | 
            +
             | 
| 147 147 | 
             
                current: false // a reference to the currently active sortable
         | 
| 148 148 | 
             
              },
         | 
| 149 | 
            -
             | 
| 149 | 
            +
             | 
| 150 150 | 
             
              /**
         | 
| 151 151 | 
             
               * basic constructor
         | 
| 152 152 | 
             
               *
         | 
| @@ -161,7 +161,7 @@ var Sortable = new Widget('UL', { | |
| 161 161 | 
             
                  .on('change', this._tryXhr)
         | 
| 162 162 | 
             
                  .on('selectstart', 'stopEvent'); // disable select under IE
         | 
| 163 163 | 
             
              },
         | 
| 164 | 
            -
             | 
| 164 | 
            +
             | 
| 165 165 | 
             
              /**
         | 
| 166 166 | 
             
               * some additional options processing
         | 
| 167 167 | 
             
               *
         | 
| @@ -171,35 +171,35 @@ var Sortable = new Widget('UL', { | |
| 171 171 | 
             
               */
         | 
| 172 172 | 
             
              setOptions: function(options, context) {
         | 
| 173 173 | 
             
                this.$super(options, context);
         | 
| 174 | 
            -
             | 
| 174 | 
            +
             | 
| 175 175 | 
             
                options = this.options;
         | 
| 176 | 
            -
             | 
| 176 | 
            +
             | 
| 177 177 | 
             
                // Preprocessing the acceptance list
         | 
| 178 178 | 
             
                var list = options.accept || [];
         | 
| 179 179 | 
             
                if (!isArray(list)) { list = [list]; }
         | 
| 180 | 
            -
             | 
| 180 | 
            +
             | 
| 181 181 | 
             
                options.accept = R([this].concat(list)).map($).uniq();
         | 
| 182 | 
            -
             | 
| 182 | 
            +
             | 
| 183 183 | 
             
                return this;
         | 
| 184 184 | 
             
              },
         | 
| 185 185 |  | 
| 186 186 | 
             
            // protected
         | 
| 187 | 
            -
             | 
| 187 | 
            +
             | 
| 188 188 | 
             
              // starts the drag
         | 
| 189 189 | 
             
              startDrag: function(event) {
         | 
| 190 190 | 
             
                // don't let to drag out the last item
         | 
| 191 191 | 
             
                if (this.children().length <= this.options.minLength) { return; }
         | 
| 192 | 
            -
             | 
| 192 | 
            +
             | 
| 193 193 | 
             
                // trying to find the list-item upon which the user pressed the mouse
         | 
| 194 194 | 
             
                var target = event.target, targets = R([target].concat(target.parents())),
         | 
| 195 195 | 
             
                    item = targets[targets.indexOf(this) - 1], event_pos = event.position();
         | 
| 196 | 
            -
             | 
| 196 | 
            +
             | 
| 197 197 | 
             
                if (item) {
         | 
| 198 198 | 
             
                  this._initDrag(item, event_pos);
         | 
| 199 199 | 
             
                  Sortable.current = this;
         | 
| 200 200 | 
             
                }
         | 
| 201 201 | 
             
              },
         | 
| 202 | 
            -
             | 
| 202 | 
            +
             | 
| 203 203 | 
             
              // moves the item
         | 
| 204 204 | 
             
              moveItem: function(event) {
         | 
| 205 205 | 
             
                var event_pos = event.position(),
         | 
| @@ -208,11 +208,11 @@ var Sortable = new Widget('UL', { | |
| 208 208 | 
             
                    left   = event_pos.x - this.xRDiff,
         | 
| 209 209 | 
             
                    right  = left + this.cloneWidth,
         | 
| 210 210 | 
             
                    bottom = top  + this.cloneHeight;
         | 
| 211 | 
            -
             | 
| 211 | 
            +
             | 
| 212 212 | 
             
                // moving the clone
         | 
| 213 213 | 
             
                item.top  = (event_pos.y - this.yDiff) + 'px';
         | 
| 214 214 | 
             
                item.left = (event_pos.x - this.xDiff) + 'px';
         | 
| 215 | 
            -
             | 
| 215 | 
            +
             | 
| 216 216 | 
             
                // checking for an overlaping item
         | 
| 217 217 | 
             
                var over_item = this.suspects.first(function(suspect) {
         | 
| 218 218 | 
             
                  return (
         | 
| @@ -223,19 +223,19 @@ var Sortable = new Widget('UL', { | |
| 223 223 | 
             
                    (right  < suspect.right  && right  > suspect.leftHalf)
         | 
| 224 224 | 
             
                  );
         | 
| 225 225 | 
             
                });
         | 
| 226 | 
            -
             | 
| 226 | 
            +
             | 
| 227 227 | 
             
                if (over_item) {
         | 
| 228 228 | 
             
                  item = over_item.item;
         | 
| 229 229 | 
             
                  item.insert(this.item, item.prevSiblings().include(this.item) ? 'after' : 'before');
         | 
| 230 230 | 
             
                  this._findSuspects();
         | 
| 231 | 
            -
             | 
| 231 | 
            +
             | 
| 232 232 | 
             
                  // sending the event
         | 
| 233 233 | 
             
                  var list = item.parent();
         | 
| 234 | 
            -
             | 
| 234 | 
            +
             | 
| 235 235 | 
             
                  if (!(list instanceof Sortable)) {
         | 
| 236 236 | 
             
                    list = new Sortable(list);
         | 
| 237 237 | 
             
                  }
         | 
| 238 | 
            -
             | 
| 238 | 
            +
             | 
| 239 239 | 
             
                  this.fire('change', {
         | 
| 240 240 | 
             
                    list:  list,
         | 
| 241 241 | 
             
                    item:  this.item,
         | 
| @@ -243,7 +243,7 @@ var Sortable = new Widget('UL', { | |
| 243 243 | 
             
                  });
         | 
| 244 244 | 
             
                }
         | 
| 245 245 | 
             
              },
         | 
| 246 | 
            -
             | 
| 246 | 
            +
             | 
| 247 247 | 
             
              // finalizes the drag
         | 
| 248 248 | 
             
              finishDrag: function() {
         | 
| 249 249 | 
             
                if (this.itemClone) {
         | 
| @@ -252,10 +252,10 @@ var Sortable = new Widget('UL', { | |
| 252 252 | 
             
                }
         | 
| 253 253 | 
             
                Sortable.current = false;
         | 
| 254 254 | 
             
              },
         | 
| 255 | 
            -
             | 
| 255 | 
            +
             | 
| 256 256 | 
             
              _initDrag: function(item, event_pos) {
         | 
| 257 257 | 
             
                var dims   = this.dimensions(), item_dims = item.dimensions();
         | 
| 258 | 
            -
             | 
| 258 | 
            +
             | 
| 259 259 | 
             
                // creating the draggable clone
         | 
| 260 260 | 
             
                var clone = item.clone().setStyle({
         | 
| 261 261 | 
             
                  margin:   0,
         | 
| @@ -267,27 +267,27 @@ var Sortable = new Widget('UL', { | |
| 267 267 | 
             
                .addClass(this.options.dragClass).insertTo(this)
         | 
| 268 268 | 
             
                .setHeight(this.cloneHeight = item_dims.height)
         | 
| 269 269 | 
             
                .setWidth(this.cloneWidth = item_dims.width);
         | 
| 270 | 
            -
             | 
| 270 | 
            +
             | 
| 271 271 | 
             
                // adjusting the clone position to compensate relative fields and margins
         | 
| 272 272 | 
             
                var clone_pos = clone.position(),
         | 
| 273 273 | 
             
                    real_x    = item_dims.left - clone_pos.x,
         | 
| 274 274 | 
             
                    real_y    = item_dims.top  - clone_pos.y;
         | 
| 275 | 
            -
             | 
| 275 | 
            +
             | 
| 276 276 | 
             
                clone.moveTo(real_x, real_y);
         | 
| 277 | 
            -
             | 
| 277 | 
            +
             | 
| 278 278 | 
             
                this.item = item.setStyle('visibility:hidden');
         | 
| 279 279 | 
             
                this.itemClone = clone;
         | 
| 280 | 
            -
             | 
| 280 | 
            +
             | 
| 281 281 | 
             
                // mouse event-position diffs
         | 
| 282 282 | 
             
                this.xDiff  = event_pos.x - real_x;
         | 
| 283 283 | 
             
                this.yDiff  = event_pos.y - real_y;
         | 
| 284 284 | 
             
                this.xRDiff = event_pos.x - clone.position().x;
         | 
| 285 285 | 
             
                this.yRDiff = event_pos.y - clone.position().y;
         | 
| 286 | 
            -
             | 
| 286 | 
            +
             | 
| 287 287 | 
             
                // collecting the list of interchangable items with their positions
         | 
| 288 288 | 
             
                this._findSuspects();
         | 
| 289 289 | 
             
              },
         | 
| 290 | 
            -
             | 
| 290 | 
            +
             | 
| 291 291 | 
             
              // collects the precached list of suspects
         | 
| 292 292 | 
             
              _findSuspects: function() {
         | 
| 293 293 | 
             
                var suspects = this.suspects = R([]), item = this.item, clone = this.itemClone;
         | 
| @@ -295,7 +295,7 @@ var Sortable = new Widget('UL', { | |
| 295 295 | 
             
                  list.children().each(function(element) {
         | 
| 296 296 | 
             
                    if (element !== item && element !== clone) {
         | 
| 297 297 | 
             
                      var dims = element.dimensions();
         | 
| 298 | 
            -
             | 
| 298 | 
            +
             | 
| 299 299 | 
             
                      // caching the sizes
         | 
| 300 300 | 
             
                      suspects.push({
         | 
| 301 301 | 
             
                        item:     element,
         | 
| @@ -310,24 +310,24 @@ var Sortable = new Widget('UL', { | |
| 310 310 | 
             
                  });
         | 
| 311 311 | 
             
                });
         | 
| 312 312 | 
             
              },
         | 
| 313 | 
            -
             | 
| 313 | 
            +
             | 
| 314 314 | 
             
              // tries to send an Xhr request about the element relocation
         | 
| 315 315 | 
             
              _tryXhr: function(event) {
         | 
| 316 316 | 
             
                if (this.options.url) {
         | 
| 317 317 | 
             
                  var url = R(this.options.url), params = {}, item = event.item, position = event.index + 1;
         | 
| 318 | 
            -
             | 
| 318 | 
            +
             | 
| 319 319 | 
             
                  // building the Xhr request options
         | 
| 320 320 | 
             
                  var options = Object.merge({
         | 
| 321 321 | 
             
                    method: this.options.method,
         | 
| 322 322 | 
             
                    params: {}
         | 
| 323 323 | 
             
                  }, this.options.Xhr);
         | 
| 324 | 
            -
             | 
| 324 | 
            +
             | 
| 325 325 | 
             
                  // grabbing the id
         | 
| 326 326 | 
             
                  var id = item.get('id') || '';
         | 
| 327 327 | 
             
                  if (this.options.parseId && id) {
         | 
| 328 328 | 
             
                    id = (id.match(/\d+/) || [''])[0];
         | 
| 329 329 | 
             
                  }
         | 
| 330 | 
            -
             | 
| 330 | 
            +
             | 
| 331 331 | 
             
                  // assigning the parameters
         | 
| 332 332 | 
             
                  if (url.include('%{id}')) {
         | 
| 333 333 | 
             
                    url = url.replace('%{id}', id);
         | 
| @@ -335,20 +335,21 @@ var Sortable = new Widget('UL', { | |
| 335 335 | 
             
                    params[this.options.idParam] = id;
         | 
| 336 336 | 
             
                  }
         | 
| 337 337 | 
             
                  params[this.options.posParam] = position;
         | 
| 338 | 
            -
             | 
| 338 | 
            +
             | 
| 339 339 | 
             
                  // merging the params with possible Xhr params
         | 
| 340 340 | 
             
                  if (isString(options.params)) {
         | 
| 341 341 | 
             
                    options.params += '&'+Object.toQueryString(params);
         | 
| 342 342 | 
             
                  } else {
         | 
| 343 343 | 
             
                    options.params = Object.merge(options.params, params);
         | 
| 344 344 | 
             
                  }
         | 
| 345 | 
            -
             | 
| 345 | 
            +
             | 
| 346 346 | 
             
                  // calling the server
         | 
| 347 347 | 
             
                  RightJS.Xhr.load(url, options);
         | 
| 348 348 | 
             
                }
         | 
| 349 349 | 
             
              }
         | 
| 350 350 | 
             
            });
         | 
| 351 351 |  | 
| 352 | 
            +
             | 
| 352 353 | 
             
            /**
         | 
| 353 354 | 
             
             * Document level hooks for sortables
         | 
| 354 355 | 
             
             *
         | 
| @@ -357,22 +358,22 @@ var Sortable = new Widget('UL', { | |
| 357 358 | 
             
            $(document).on({
         | 
| 358 359 | 
             
              mousedown: function(event) {
         | 
| 359 360 | 
             
                var element = event.find(Sortable.Options.cssRule);
         | 
| 360 | 
            -
             | 
| 361 | 
            +
             | 
| 361 362 | 
             
                if (element) {
         | 
| 362 363 | 
             
                  if (!(element instanceof Sortable)) {
         | 
| 363 364 | 
             
                    element = new Sortable(element);
         | 
| 364 365 | 
             
                  }
         | 
| 365 | 
            -
             | 
| 366 | 
            +
             | 
| 366 367 | 
             
                  element.startDrag(event);
         | 
| 367 368 | 
             
                }
         | 
| 368 369 | 
             
              },
         | 
| 369 | 
            -
             | 
| 370 | 
            +
             | 
| 370 371 | 
             
              mousemove: function(event) {
         | 
| 371 372 | 
             
                if (Sortable.current) {
         | 
| 372 373 | 
             
                  Sortable.current.moveItem(event);
         | 
| 373 374 | 
             
                }
         | 
| 374 375 | 
             
              },
         | 
| 375 | 
            -
             | 
| 376 | 
            +
             | 
| 376 377 | 
             
              mouseup: function() {
         | 
| 377 378 | 
             
                if (Sortable.current) {
         | 
| 378 379 | 
             
                  Sortable.current.finishDrag();
         | 
| @@ -386,7 +387,8 @@ $(window).onBlur(function() { | |
| 386 387 | 
             
              }
         | 
| 387 388 | 
             
            });
         | 
| 388 389 |  | 
| 390 | 
            +
             | 
| 389 391 | 
             
            document.write("<style type=\"text/css\">.rui-sortable{user-select:none;-moz-user-select:none;-webkit-user-select:none}</style>");
         | 
| 390 392 |  | 
| 391 393 | 
             
            return Sortable;
         | 
| 392 | 
            -
            })(document, RightJS);
         | 
| 394 | 
            +
            })(document, RightJS);
         |