right-rails 0.4.3 → 0.4.4
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 +9 -0
- data/javascripts/right-calendar-src.js +1 -1
- data/javascripts/right-calendar.js +1 -1
- data/javascripts/right-events-src.js +25 -26
- data/javascripts/right-events.js +1 -1
- data/javascripts/right-in-edit-src.js +195 -0
- data/javascripts/right-in-edit.js +6 -0
- data/javascripts/right-json-src.js +59 -93
- data/javascripts/right-json.js +1 -1
- data/javascripts/right-olds-src.js +7 -7
- data/javascripts/right-olds.js +1 -1
- data/javascripts/right-selectable-src.js +39 -3
- data/javascripts/right-selectable.js +1 -1
- data/javascripts/right-src.js +107 -103
- data/javascripts/right-tabs-src.js +27 -16
- data/javascripts/right-tabs.js +1 -1
- data/javascripts/right-ui-i18n-de.js +7 -0
- data/javascripts/right-ui-i18n-es.js +7 -0
- data/javascripts/right-ui-i18n-fr.js +7 -0
- data/javascripts/right-ui-i18n-hu.js +7 -0
- data/javascripts/right-ui-i18n-jp.js +7 -0
- data/javascripts/right-ui-i18n-nl.js +36 -0
- data/javascripts/right-ui-i18n-ru.js +7 -0
- data/javascripts/{right-ui-i18n-uk.js → right-ui-i18n-ua.js} +7 -0
- data/javascripts/right.js +1 -1
- metadata +8 -4
data/javascripts/right-src.js
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
* Copyright (C) 2008-2009 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
13
13
|
*/
|
14
14
|
var RightJS = {
|
15
|
-
version: "1.5.
|
15
|
+
version: "1.5.3",
|
16
16
|
modules: ["core", "form", "cookie", "xhr", "fx"]
|
17
17
|
};
|
18
18
|
|
@@ -848,7 +848,7 @@ $alias(Array.prototype, {
|
|
848
848
|
* The trim function taken from work of Steven Levithan
|
849
849
|
* - http://blog.stevenlevithan.com/archives/faster-trim-javascript
|
850
850
|
*
|
851
|
-
* Copyright (C) 2008-
|
851
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-il>
|
852
852
|
*/
|
853
853
|
$ext(String.prototype, {
|
854
854
|
/**
|
@@ -895,9 +895,8 @@ $ext(String.prototype, {
|
|
895
895
|
* @return String without scripts
|
896
896
|
*/
|
897
897
|
stripScripts: function(option) {
|
898
|
-
var scripts = ''
|
899
|
-
|
900
|
-
scripts += source.trim() + "\n";
|
898
|
+
var scripts = '', text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/img, function(match, source) {
|
899
|
+
scripts += source + "\n";
|
901
900
|
return '';
|
902
901
|
});
|
903
902
|
|
@@ -905,8 +904,6 @@ $ext(String.prototype, {
|
|
905
904
|
$eval(scripts);
|
906
905
|
else if (isFunction(option))
|
907
906
|
option(scripts, text);
|
908
|
-
else if (isNumber(option))
|
909
|
-
$eval.bind(scripts).delay(options);
|
910
907
|
|
911
908
|
return text;
|
912
909
|
},
|
@@ -1447,7 +1444,7 @@ var Options = {
|
|
1447
1444
|
* The naming principle is inspired by
|
1448
1445
|
* - Prototype (http://prototypejs.org) Copyright (C) Sam Stephenson
|
1449
1446
|
*
|
1450
|
-
* Copyright (C) 2008-
|
1447
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-il>
|
1451
1448
|
*/
|
1452
1449
|
var Observer = new Class({
|
1453
1450
|
include: Options,
|
@@ -1463,16 +1460,16 @@ var Observer = new Class({
|
|
1463
1460
|
},
|
1464
1461
|
|
1465
1462
|
/**
|
1466
|
-
*
|
1463
|
+
* binds an event listener
|
1467
1464
|
*
|
1468
1465
|
* USAGE:
|
1469
|
-
*
|
1470
|
-
*
|
1471
|
-
*
|
1466
|
+
* on(String event, Function callback[, arguments, ...]);
|
1467
|
+
* on(String event, String method_name[, arguments, ...]);
|
1468
|
+
* on(Object events_hash);
|
1472
1469
|
*
|
1473
1470
|
* @return Observer self
|
1474
1471
|
*/
|
1475
|
-
|
1472
|
+
on: function() {
|
1476
1473
|
var args = $A(arguments), event = args.shift();
|
1477
1474
|
|
1478
1475
|
if (isString(event)) {
|
@@ -1529,7 +1526,7 @@ var Observer = new Class({
|
|
1529
1526
|
* observes(Function callback)
|
1530
1527
|
* observes(String event, Function callback)
|
1531
1528
|
*
|
1532
|
-
* @retun
|
1529
|
+
* @retun boolean check result
|
1533
1530
|
*/
|
1534
1531
|
observes: function(event, callback) {
|
1535
1532
|
if (this.$listeners) {
|
@@ -1624,14 +1621,12 @@ var Observer = new Class({
|
|
1624
1621
|
*/
|
1625
1622
|
createShortcuts: function(object, names) {
|
1626
1623
|
(names || []).each(function(name) {
|
1627
|
-
var
|
1628
|
-
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1633
|
-
};
|
1634
|
-
$ext(object, shortcuts, true);
|
1624
|
+
var method_name = 'on'+name.replace(/:/g, '_').camelize().capitalize();
|
1625
|
+
if (!defined(object[method_name])) {
|
1626
|
+
object[method_name] = function() {
|
1627
|
+
return this.on.apply(this, [name].concat($A(arguments)));
|
1628
|
+
};
|
1629
|
+
}
|
1635
1630
|
});
|
1636
1631
|
|
1637
1632
|
return object;
|
@@ -1639,7 +1634,7 @@ var Observer = new Class({
|
|
1639
1634
|
}
|
1640
1635
|
});
|
1641
1636
|
|
1642
|
-
$alias(Observer.prototype, {
|
1637
|
+
$alias(Observer.prototype, { observe: 'on' });
|
1643
1638
|
|
1644
1639
|
/**
|
1645
1640
|
* iterators in-callbacks break exception
|
@@ -1659,7 +1654,7 @@ var Break = new Class(Error, {
|
|
1659
1654
|
* The additional method names are inspired by
|
1660
1655
|
* - Prototype (http://prototypejs.org) Copyright (C) Sam Stephenson
|
1661
1656
|
*
|
1662
|
-
* Copyright (C) 2008-
|
1657
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
1663
1658
|
*/
|
1664
1659
|
var Event = new Class(Event, {
|
1665
1660
|
extend: {
|
@@ -1667,35 +1662,30 @@ var Event = new Class(Event, {
|
|
1667
1662
|
* extends a native object with additional functionality
|
1668
1663
|
*
|
1669
1664
|
* @param Event event
|
1665
|
+
* @param Element bounding element
|
1670
1666
|
* @return Event same event but extended
|
1671
1667
|
*/
|
1672
|
-
ext: function(event) {
|
1668
|
+
ext: function(event, bound_element) {
|
1673
1669
|
if (!event.stop) {
|
1674
1670
|
$ext(event, this.Methods, true);
|
1675
1671
|
|
1676
1672
|
if (Browser.IE) {
|
1677
1673
|
// faking the which button
|
1678
|
-
|
1679
|
-
event.which = 1;
|
1680
|
-
} else if (event.type == 'contextmenu') {
|
1681
|
-
event.which = 3;
|
1682
|
-
} else {
|
1683
|
-
event.which = event.button == 2 ? 3 : event.button == 4 ? 2 : 1;
|
1684
|
-
}
|
1674
|
+
event.which = event.button == 2 ? 3 : event.button == 4 ? 2 : 1;
|
1685
1675
|
|
1686
1676
|
// faking the mouse position
|
1687
1677
|
var scrolls = window.scrolls();
|
1688
1678
|
|
1689
1679
|
event.pageX = event.clientX + scrolls.x;
|
1690
1680
|
event.pageY = event.clientY + scrolls.y;
|
1691
|
-
|
1692
|
-
|
1693
|
-
// faking the relatedTarget
|
1694
|
-
event.relatedTarget = event.type == 'mouseover' ? event.fromEvent :
|
1695
|
-
event.type == 'mouseout' ? event.toEvent : null;
|
1696
|
-
|
1681
|
+
|
1697
1682
|
// faking the target property
|
1698
|
-
event.target = event.srcElement;
|
1683
|
+
event.target = event.srcElement || bound_element;
|
1684
|
+
|
1685
|
+
// faking the relatedTarget, currentTarget and other targets
|
1686
|
+
event.relatedTarget = event[(event.target == event.fromElement ? 'to' : 'from') + 'Element'];
|
1687
|
+
event.currentTarget = bound_element;
|
1688
|
+
event.eventPhase = 3; // bubbling phase
|
1699
1689
|
}
|
1700
1690
|
}
|
1701
1691
|
|
@@ -1731,20 +1721,6 @@ var Event = new Class(Event, {
|
|
1731
1721
|
return name;
|
1732
1722
|
},
|
1733
1723
|
|
1734
|
-
/**
|
1735
|
-
* Registers some additional event extendsions
|
1736
|
-
*
|
1737
|
-
* @param Object methods
|
1738
|
-
* @return void
|
1739
|
-
*/
|
1740
|
-
addMethods: function(methods) {
|
1741
|
-
$ext(this.Methods, methods);
|
1742
|
-
|
1743
|
-
try { // extending the events prototype
|
1744
|
-
$ext(Event.parent.prototype, methods, true);
|
1745
|
-
} catch(e) {};
|
1746
|
-
},
|
1747
|
-
|
1748
1724
|
// the additional methods registry
|
1749
1725
|
Methods: {}
|
1750
1726
|
},
|
@@ -1761,8 +1737,23 @@ var Event = new Class(Event, {
|
|
1761
1737
|
}
|
1762
1738
|
});
|
1763
1739
|
|
1740
|
+
|
1741
|
+
/**
|
1742
|
+
* Registers some additional event extendsions
|
1743
|
+
*
|
1744
|
+
* @param Object methods
|
1745
|
+
* @return void
|
1746
|
+
*/
|
1747
|
+
Event.addMethods = Event.include = function(methods) {
|
1748
|
+
$ext(this.Methods, methods);
|
1749
|
+
|
1750
|
+
try { // extending the events prototype
|
1751
|
+
$ext(Event.parent.prototype, methods, true);
|
1752
|
+
} catch(e) {};
|
1753
|
+
};
|
1754
|
+
|
1764
1755
|
// hooking up the standard extendsions
|
1765
|
-
Event.
|
1756
|
+
Event.include({
|
1766
1757
|
stopPropagation: function() {
|
1767
1758
|
this.cancelBubble = true;
|
1768
1759
|
},
|
@@ -1799,7 +1790,7 @@ Event.Custom = function(name, options) {
|
|
1799
1790
|
/**
|
1800
1791
|
* The DOM Element unit handling
|
1801
1792
|
*
|
1802
|
-
* Copyright (C) 2008-
|
1793
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
1803
1794
|
*/
|
1804
1795
|
self.Element = (function(old_Element) {
|
1805
1796
|
|
@@ -1845,7 +1836,7 @@ $ext(Element, {
|
|
1845
1836
|
* will add them to prototype and will generate a non extensive static mirror
|
1846
1837
|
*
|
1847
1838
|
* USAGE:
|
1848
|
-
* Element.
|
1839
|
+
* Element.include({
|
1849
1840
|
* foo: function(bar) {}
|
1850
1841
|
* });
|
1851
1842
|
*
|
@@ -1856,7 +1847,7 @@ $ext(Element, {
|
|
1856
1847
|
* @param Boolean flag if the method should keep the existing methods alive
|
1857
1848
|
* @return Element the global Element object
|
1858
1849
|
*/
|
1859
|
-
|
1850
|
+
include: function(methods, dont_overwrite) {
|
1860
1851
|
$ext(this.Methods, methods, dont_overwrite);
|
1861
1852
|
|
1862
1853
|
try { // busting up the basic element prototypes
|
@@ -1870,9 +1861,12 @@ $ext(Element, {
|
|
1870
1861
|
return this;
|
1871
1862
|
},
|
1872
1863
|
|
1873
|
-
Methods: {} // DO NOT Extend this object manually unless you really need it, use Element#
|
1864
|
+
Methods: {} // DO NOT Extend this object manually unless you really need it, use Element#include
|
1874
1865
|
});
|
1875
1866
|
|
1867
|
+
// the old interface alias, NOTE will be nuked
|
1868
|
+
Element.addMethods = Element.include;
|
1869
|
+
|
1876
1870
|
/**
|
1877
1871
|
* The DOM Element unit structures handling module
|
1878
1872
|
*
|
@@ -1890,9 +1884,9 @@ $ext(Element, {
|
|
1890
1884
|
* The insertions system implementation is inspired by
|
1891
1885
|
* - MooTools (http://mootools.net) Copyright (C) Valerio Proietti
|
1892
1886
|
*
|
1893
|
-
* Copyright (C) 2008 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
1887
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
1894
1888
|
*/
|
1895
|
-
Element.
|
1889
|
+
Element.include({
|
1896
1890
|
parent: function(css_rule) {
|
1897
1891
|
return css_rule ? this.parents(css_rule)[0] : $(this.parentNode);
|
1898
1892
|
},
|
@@ -1902,8 +1896,8 @@ Element.addMethods({
|
|
1902
1896
|
},
|
1903
1897
|
|
1904
1898
|
subNodes: function(css_rule) {
|
1905
|
-
var first_child = this.firstChild;
|
1906
|
-
return first_child ? (first_child.tagName ? [
|
1899
|
+
var first_child = $(this.firstChild);
|
1900
|
+
return first_child ? (first_child.tagName && (!css_rule || first_child.match(css_rule)) ? [first_child] : []
|
1907
1901
|
).concat(this.rCollect.call(first_child, 'nextSibling', css_rule)) : [];
|
1908
1902
|
},
|
1909
1903
|
|
@@ -1962,8 +1956,8 @@ Element.addMethods({
|
|
1962
1956
|
var scripts, insertions = Element.insertions;
|
1963
1957
|
position = isString(position) ? position.toLowerCase() : 'bottom';
|
1964
1958
|
|
1965
|
-
if (isString(content)) {
|
1966
|
-
content = content.stripScripts(function(s) { scripts = s; });
|
1959
|
+
if (isString(content) || isNumber(content)) {
|
1960
|
+
content = (''+content).stripScripts(function(s) { scripts = s; });
|
1967
1961
|
}
|
1968
1962
|
|
1969
1963
|
insertions[position](this, content.tagName ? content :
|
@@ -2006,9 +2000,9 @@ Element.addMethods({
|
|
2006
2000
|
* @return Element self
|
2007
2001
|
*/
|
2008
2002
|
update: function(content) {
|
2009
|
-
if (isString(content)) {
|
2003
|
+
if (isString(content) || isNumber(content)) {
|
2010
2004
|
var scripts;
|
2011
|
-
this.innerHTML = content.stripScripts(function(s) { scripts = s; });
|
2005
|
+
this.innerHTML = (''+content).stripScripts(function(s) { scripts = s; });
|
2012
2006
|
if (scripts) $eval(scripts);
|
2013
2007
|
} else {
|
2014
2008
|
this.clean().insert(content);
|
@@ -2161,9 +2155,9 @@ $alias(Element.insertions.wraps, {
|
|
2161
2155
|
* - MooTools (http://mootools.net) Copyright (C) Valerio Proietti
|
2162
2156
|
* - Dojo (www.dojotoolkit.org) Copyright (C) The Dojo Foundation
|
2163
2157
|
*
|
2164
|
-
* Copyright (C) 2008-
|
2158
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
2165
2159
|
*/
|
2166
|
-
Element.
|
2160
|
+
Element.include({
|
2167
2161
|
/**
|
2168
2162
|
* assigns styles out of the hash to the element
|
2169
2163
|
*
|
@@ -2329,9 +2323,9 @@ Element.addMethods({
|
|
2329
2323
|
* Most of the naming system in the module inspired by
|
2330
2324
|
* - Prototype (http://prototypejs.org) Copyright (C) Sam Stephenson
|
2331
2325
|
*
|
2332
|
-
* Copyright (C) 2008 Nikolay V. Nemshilov aka St. <nemshilov#gma-il>
|
2326
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-il>
|
2333
2327
|
*/
|
2334
|
-
Element.
|
2328
|
+
Element.include({
|
2335
2329
|
/**
|
2336
2330
|
* sets the element attributes
|
2337
2331
|
*
|
@@ -2340,7 +2334,7 @@ Element.addMethods({
|
|
2340
2334
|
* @return Element self
|
2341
2335
|
*/
|
2342
2336
|
set: function(hash, value) {
|
2343
|
-
if (
|
2337
|
+
if (typeof(hash) === 'string') { var val = {}; val[hash] = value; hash = val; }
|
2344
2338
|
|
2345
2339
|
for (var key in hash) {
|
2346
2340
|
// some attributes are not available as properties
|
@@ -2426,9 +2420,11 @@ Element.addMethods({
|
|
2426
2420
|
* @return Element self
|
2427
2421
|
*/
|
2428
2422
|
show: function(effect, options) {
|
2429
|
-
|
2430
|
-
|
2431
|
-
|
2423
|
+
if (this.getStyle('display') == 'none') {
|
2424
|
+
// setting 'block' for the divs and 'inline' for the other elements hidden on the css-level
|
2425
|
+
var value = this.tagName == 'DIV' ? 'block' : 'inline';
|
2426
|
+
this.style.display = this._$pd == 'none' ? value : this._$pd || value;
|
2427
|
+
}
|
2432
2428
|
return this;
|
2433
2429
|
},
|
2434
2430
|
|
@@ -2460,9 +2456,9 @@ Element.addMethods({
|
|
2460
2456
|
* this module contains the Element's part of functionality
|
2461
2457
|
* responsible for the dimensions and positions getting/setting
|
2462
2458
|
*
|
2463
|
-
* Copyright (C) 2008-
|
2459
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-il>
|
2464
2460
|
*/
|
2465
|
-
Element.
|
2461
|
+
Element.include({
|
2466
2462
|
/**
|
2467
2463
|
* Returns the element sizes as a hash
|
2468
2464
|
*
|
@@ -2619,9 +2615,9 @@ Element.addMethods({
|
|
2619
2615
|
/**
|
2620
2616
|
* DOM Element events handling methods
|
2621
2617
|
*
|
2622
|
-
* Copyright (C) 2008-
|
2618
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-il>
|
2623
2619
|
*/
|
2624
|
-
Element.
|
2620
|
+
Element.include((function() {
|
2625
2621
|
var observer = Observer.create({},
|
2626
2622
|
$w('click rightclick contextmenu mousedown mouseup mouseover mouseout mousemove keypress keydown keyup')
|
2627
2623
|
);
|
@@ -2636,7 +2632,7 @@ Element.addMethods((function() {
|
|
2636
2632
|
observer.observe.toString().replace(/(\$listeners\.push\((\w+?)\);)/, '$1'+
|
2637
2633
|
'$2.e=Event.cleanName($2.e);$2.n=Event.realName($2.e);'+
|
2638
2634
|
|
2639
|
-
'$2.w=function(){var a=$A(arguments),e=($2.r&&$2.r!=="stopEvent")?a.shift():Event.ext(a[0]);'+
|
2635
|
+
'$2.w=function(){var a=$A(arguments),e=($2.r&&$2.r!=="stopEvent")?a.shift():Event.ext(a[0],this);'+
|
2640
2636
|
'return $2.f.apply(this,a.concat($2.a))};'+(
|
2641
2637
|
|
2642
2638
|
self.attachEvent ?
|
@@ -2669,6 +2665,8 @@ Element.addMethods((function() {
|
|
2669
2665
|
$ext(window, observer);
|
2670
2666
|
$ext(document, observer);
|
2671
2667
|
|
2668
|
+
Observer.createShortcuts(window, $w('blur focus scroll'));
|
2669
|
+
|
2672
2670
|
return observer;
|
2673
2671
|
})());
|
2674
2672
|
|
@@ -2679,9 +2677,9 @@ Element.addMethods((function() {
|
|
2679
2677
|
* NOTE: this module is just a wrap over the native CSS-selectors feature
|
2680
2678
|
* see the olds/css.js file for the manual selector code
|
2681
2679
|
*
|
2682
|
-
* Copyright (C) 2008-
|
2680
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
2683
2681
|
*/
|
2684
|
-
Element.
|
2682
|
+
Element.include((function() {
|
2685
2683
|
/**
|
2686
2684
|
* Native css-selectors include the current element into the search context
|
2687
2685
|
* and as we actually search only inside of the element we add it's tag
|
@@ -2815,7 +2813,7 @@ return {
|
|
2815
2813
|
*/
|
2816
2814
|
[window, document].each(function(object) {
|
2817
2815
|
Observer.createShortcuts(object, ['ready']);
|
2818
|
-
var ready = object.
|
2816
|
+
var ready = object.fire.bind(object, 'ready');
|
2819
2817
|
|
2820
2818
|
// IE and Konqueror browsers
|
2821
2819
|
if (document.readyState !== undefined) {
|
@@ -2835,7 +2833,7 @@ return {
|
|
2835
2833
|
* The basic principles of the module are inspired by
|
2836
2834
|
* - Prototype (http://prototypejs.org) Copyright (C) Sam Stephenson
|
2837
2835
|
*
|
2838
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
2836
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
2839
2837
|
*/
|
2840
2838
|
var Form = function(options) {
|
2841
2839
|
var options = options || {}, remote = options.remote,
|
@@ -2865,7 +2863,7 @@ $ext(Form, {
|
|
2865
2863
|
* @param Object methods hash
|
2866
2864
|
* @return void
|
2867
2865
|
*/
|
2868
|
-
|
2866
|
+
include: function(methods, dont_overwrite) {
|
2869
2867
|
$ext(Form.Methods, methods, dont_overwrite);
|
2870
2868
|
|
2871
2869
|
try { // trying to extend the form element prototype
|
@@ -2874,7 +2872,8 @@ $ext(Form, {
|
|
2874
2872
|
}
|
2875
2873
|
});
|
2876
2874
|
|
2877
|
-
Form.addMethods
|
2875
|
+
Form.addMethods = Form.include;
|
2876
|
+
Form.include({
|
2878
2877
|
/**
|
2879
2878
|
* returns the form elements as an array of extended units
|
2880
2879
|
*
|
@@ -2963,7 +2962,7 @@ Form.addMethods({
|
|
2963
2962
|
});
|
2964
2963
|
|
2965
2964
|
// creating the shortcuts
|
2966
|
-
Form.
|
2965
|
+
Form.include(Observer.createShortcuts({}, $w('submit reset focus')), true);
|
2967
2966
|
|
2968
2967
|
|
2969
2968
|
|
@@ -2974,7 +2973,7 @@ Form.addMethods(Observer.createShortcuts({}, $w('submit reset focus')), true);
|
|
2974
2973
|
* The basic ideas are taken from
|
2975
2974
|
* - Prototype (http://prototypejs.org) Copyright (C) Sam Stephenson
|
2976
2975
|
*
|
2977
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
2976
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
2978
2977
|
*/
|
2979
2978
|
(function() {
|
2980
2979
|
// trying to get the input element classes list
|
@@ -3006,7 +3005,7 @@ Form.addMethods(Observer.createShortcuts({}, $w('submit reset focus')), true);
|
|
3006
3005
|
* @param Object methods list
|
3007
3006
|
* @return void
|
3008
3007
|
*/
|
3009
|
-
|
3008
|
+
include: function(methods, dont_overwrite) {
|
3010
3009
|
$ext(this.Methods, methods, dont_overwrite);
|
3011
3010
|
|
3012
3011
|
// extending the input element prototypes
|
@@ -3025,8 +3024,8 @@ Form.addMethods(Observer.createShortcuts({}, $w('submit reset focus')), true);
|
|
3025
3024
|
});
|
3026
3025
|
});
|
3027
3026
|
})();
|
3028
|
-
|
3029
|
-
Form.Element.
|
3027
|
+
Form.Element.addMethods = Form.Element.include;
|
3028
|
+
Form.Element.include({
|
3030
3029
|
/**
|
3031
3030
|
* uniform access to the element values
|
3032
3031
|
*
|
@@ -3119,7 +3118,7 @@ Form.Element.addMethods({
|
|
3119
3118
|
});
|
3120
3119
|
|
3121
3120
|
// creating the common event shortcuts
|
3122
|
-
Form.Element.
|
3121
|
+
Form.Element.include(Observer.createShortcuts({}, $w('disable enable focus blur change')), true);
|
3123
3122
|
|
3124
3123
|
|
3125
3124
|
/**
|
@@ -3445,15 +3444,20 @@ var Xhr = new Class(Observer, {
|
|
3445
3444
|
|
3446
3445
|
// sanitizes the json-response texts
|
3447
3446
|
sanitizedJSON: function() {
|
3448
|
-
|
3449
|
-
|
3450
|
-
|
3451
|
-
|
3452
|
-
}
|
3453
|
-
|
3447
|
+
try {
|
3448
|
+
return JSON.parse(this.text);
|
3449
|
+
} catch(e) {
|
3450
|
+
// manual json consistancy check
|
3451
|
+
if (self.JSON || !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(this.text.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) {
|
3452
|
+
if (this.secureJSON) {
|
3453
|
+
throw "JSON parse error: "+this.text;
|
3454
|
+
} else {
|
3455
|
+
return null;
|
3456
|
+
}
|
3454
3457
|
}
|
3455
3458
|
}
|
3456
3459
|
|
3460
|
+
// the fallback JSON extraction
|
3457
3461
|
return eval("("+this.text+")");
|
3458
3462
|
},
|
3459
3463
|
|
@@ -3520,9 +3524,9 @@ Xhr.onCreate(function() {
|
|
3520
3524
|
* - Prototype (http://prototypejs.org) Copyright (C) Sam Stephenson
|
3521
3525
|
* - jQuery (http://jquery.com) Copyright (C) John Resig
|
3522
3526
|
*
|
3523
|
-
* Copyright (C) 2009 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
3527
|
+
* Copyright (C) 2009-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
3524
3528
|
*/
|
3525
|
-
Form.
|
3529
|
+
Form.include({
|
3526
3530
|
/**
|
3527
3531
|
* sends the form via xhr request
|
3528
3532
|
*
|
@@ -3576,9 +3580,9 @@ Form.addMethods({
|
|
3576
3580
|
* Credits:
|
3577
3581
|
* - jQuery (http://jquery.com) Copyright (C) John Resig
|
3578
3582
|
*
|
3579
|
-
* Copyright (C) 2008-
|
3583
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-il>
|
3580
3584
|
*/
|
3581
|
-
Element.
|
3585
|
+
Element.include({
|
3582
3586
|
/**
|
3583
3587
|
* performs an Xhr request to the given url
|
3584
3588
|
* and updates the element internals with the responseText
|
@@ -4313,9 +4317,9 @@ Fx.Scroll = new Class(Fx, {
|
|
4313
4317
|
* Some ideas are inspired by
|
4314
4318
|
* - MooTools (http://mootools.net) Copyright (C) Valerio Proietti
|
4315
4319
|
*
|
4316
|
-
* Copyright (C) 2008-
|
4320
|
+
* Copyright (C) 2008-2010 Nikolay V. Nemshilov aka St. <nemshilov#gma-ilc-om>
|
4317
4321
|
*/
|
4318
|
-
Element.
|
4322
|
+
Element.include((function(methods) {
|
4319
4323
|
var old_hide = methods.hide,
|
4320
4324
|
old_show = methods.show,
|
4321
4325
|
old_scroll = methods.scrollTo;
|
@@ -314,7 +314,7 @@ Tabs.Panel = new Class(Observer, {
|
|
314
314
|
|
315
315
|
var controller = this.tab.controller;
|
316
316
|
var options = controller.options;
|
317
|
-
var prev_panel = controller.element.
|
317
|
+
var prev_panel = controller.element.first('.right-tabs-panel-current');
|
318
318
|
var this_panel = this.element;
|
319
319
|
var swapping = prev_panel != this_panel;
|
320
320
|
var loading = this.element.first('div.right-tabs-panel-locker');
|
@@ -347,19 +347,23 @@ Tabs.Panel = new Class(Observer, {
|
|
347
347
|
// wrapping the element with an overflowed element to visualize the resize
|
348
348
|
var fx_wrapper = $E('div', {'class': 'right-tabs-resizer'});
|
349
349
|
var set_back = fx_wrapper.replace.bind(fx_wrapper, this_panel);
|
350
|
-
|
351
|
-
fx_wrapper.setHeight(prev_panel_height);
|
350
|
+
fx_wrapper.style.height = prev_panel_height + 'px';
|
352
351
|
|
353
352
|
// in case of harmonica nicely hidding the previous panel
|
354
353
|
if (controller.isHarmonica && swapping) {
|
355
354
|
prev_panel.addClass('right-tabs-panel-current');
|
356
|
-
var hide_wrapper = $E('div', {'class': 'right-tabs-resizer'})
|
355
|
+
var hide_wrapper = $E('div', {'class': 'right-tabs-resizer'});
|
356
|
+
hide_wrapper.style.height = prev_panel.offsetHeight + 'px';
|
357
357
|
var prev_back = function() {
|
358
358
|
hide_wrapper.replace(prev_panel.removeClass('right-tabs-panel-current'));
|
359
359
|
};
|
360
360
|
prev_panel.wrap(hide_wrapper);
|
361
|
+
|
362
|
+
fx_wrapper.style.height = '0px';
|
361
363
|
}
|
362
364
|
|
365
|
+
this_panel.wrap(fx_wrapper);
|
366
|
+
|
363
367
|
// getting back the auto-size so we could resize it
|
364
368
|
controller.element.style.height = 'auto';
|
365
369
|
|
@@ -794,20 +798,17 @@ return {
|
|
794
798
|
* @return Tabs this
|
795
799
|
*/
|
796
800
|
startLoop: function(delay) {
|
797
|
-
if (
|
801
|
+
if (!delay && !this.options.loop) return this;
|
798
802
|
|
799
803
|
// attaching the loop pause feature
|
800
804
|
if (this.options.loopPause) {
|
801
|
-
this._stopLoop = this._stopLoop || this.stopLoop.bind(this);
|
802
|
-
this._startLoop = this._startLoop || this.startLoop.bind(this);
|
805
|
+
this._stopLoop = this._stopLoop || this.stopLoop.bind(this, true);
|
806
|
+
this._startLoop = this._startLoop || this.startLoop.bind(this, delay);
|
803
807
|
|
804
|
-
this.
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
mouseover: this._stopLoop,
|
809
|
-
mouseout: this._startLoop
|
810
|
-
});
|
808
|
+
this.forgetHovers().on({
|
809
|
+
mouseover: this._stopLoop,
|
810
|
+
mouseout: this._startLoop
|
811
|
+
});
|
811
812
|
}
|
812
813
|
|
813
814
|
if (this.timer) this.timer.stop();
|
@@ -819,7 +820,7 @@ return {
|
|
819
820
|
|
820
821
|
this.show(next || enabled.first());
|
821
822
|
|
822
|
-
}.bind(this).periodical(this.options.loop);
|
823
|
+
}.bind(this).periodical(this.options.loop || delay);
|
823
824
|
|
824
825
|
return this;
|
825
826
|
},
|
@@ -829,13 +830,23 @@ return {
|
|
829
830
|
*
|
830
831
|
* @return Tabs this
|
831
832
|
*/
|
832
|
-
stopLoop: function() {
|
833
|
+
stopLoop: function(event, pause) {
|
833
834
|
if (this.timer) {
|
834
835
|
this.timer.stop();
|
835
836
|
this.timer = null;
|
836
837
|
}
|
838
|
+
if (!pause && this._startLoop)
|
839
|
+
this.forgetHovers();
|
840
|
+
},
|
841
|
+
|
842
|
+
// private
|
843
|
+
forgetHovers: function() {
|
844
|
+
return this.element
|
845
|
+
.stopObserving('mouseover', this._stopLoop)
|
846
|
+
.stopObserving('mouseout', this._startLoop);
|
837
847
|
}
|
838
848
|
|
849
|
+
|
839
850
|
}})());
|
840
851
|
|
841
852
|
/**
|