newjs 1.5.1 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +11 -0
- data/Manifest.txt +162 -14
- data/{README.txt → README.rdoc} +1 -1
- data/Rakefile +25 -3
- data/app_generators/newjs_iphone/templates/Html/test/assets/jsunittest.js +41 -13
- data/app_generators/newjs_iphone/templates/Html/test/assets/unittest.css +4 -0
- data/features/development.feature +13 -0
- data/features/imported_files_for_generators.feature +19 -0
- data/features/steps/common.rb +205 -0
- data/features/steps/env.rb +6 -0
- data/javascript_test_generators/functional_test/functional_test_generator.rb +9 -1
- data/javascript_test_generators/functional_test/templates/test/assets/jshoulda.js +186 -0
- data/javascript_test_generators/functional_test/templates/test/test.html.erb +15 -1
- data/javascript_test_generators/unit_test/templates/test/assets/jshoulda.js +186 -0
- data/javascript_test_generators/unit_test/templates/test/test.html.erb +18 -20
- data/javascript_test_generators/unit_test/templates/test/test_jshoulda.html.erb +45 -0
- data/javascript_test_generators/unit_test/unit_test_generator.rb +11 -3
- data/lib/newjs.rb +3 -2
- data/newjs_iphone_generators/page/USAGE +5 -0
- data/newjs_iphone_generators/page/page_generator.rb +36 -0
- data/newjs_iphone_generators/page/templates/src/name.css.erb +0 -0
- data/newjs_iphone_generators/page/templates/src/name.html.erb +13 -0
- data/newjs_iphone_generators/page/templates/src/name.js.erb +4 -0
- data/newjs_iphone_generators/page/templates/test/fixtures/name.js.erb +5 -0
- data/newjs_iphone_generators/page/templates/test/unit/name_test.html.erb +61 -0
- data/rack_generators/javascript_test/USAGE +5 -0
- data/rack_generators/javascript_test/javascript_test_generator.rb +88 -0
- data/rack_generators/javascript_test/templates/assets/jshoulda.js +186 -0
- data/rack_generators/javascript_test/templates/assets/jsunittest.js +1004 -0
- data/rack_generators/javascript_test/templates/assets/unittest.css +54 -0
- data/rack_generators/javascript_test/templates/ext/jquery.js +3408 -0
- data/{app_generators/newjs_iphone/templates/Html/test/assets → rack_generators/javascript_test/templates/ext}/prototype.js +56 -122
- data/rack_generators/javascript_test/templates/library.js.erb +3 -0
- data/rack_generators/javascript_test/templates/test.html.erb +59 -0
- data/rack_generators/javascript_test/templates/test_jshoulda.html.erb +48 -0
- data/rails_generators/javascript_test/javascript_test_generator.rb +15 -3
- data/rails_generators/javascript_test/templates/assets/jshoulda.js +186 -0
- data/rails_generators/javascript_test/templates/test_jshoulda.html.erb +48 -0
- data/script/console +10 -0
- data/script/destroy +1 -1
- data/tasks/vendor/update/jshoulda.rake +18 -0
- data/tasks/vendor/update/jsunittest.rake +18 -0
- data/test/test_functional_test_generator.rb +13 -0
- data/test/test_generator_helper.rb +10 -1
- data/test/test_page_generator.rb +50 -0
- data/test/test_rack_javascript_test.rb +166 -0
- data/test/{test_javascript_test_generator.rb → test_rails_javascript_test_generator.rb} +15 -1
- data/test/test_unit_test_generator.rb +13 -0
- data/vendor/jshoulda/History.txt +108 -0
- data/vendor/jshoulda/License.txt +20 -0
- data/vendor/jshoulda/README.mdown +34 -0
- data/vendor/jshoulda/Rakefile +120 -0
- data/vendor/jshoulda/config/javascript_test_autotest.yml.sample +15 -0
- data/vendor/jshoulda/dist/jshoulda-0.0.1.js +62 -0
- data/vendor/jshoulda/dist/jshoulda-0.0.2.js +72 -0
- data/vendor/jshoulda/dist/jshoulda-0.0.3.js +72 -0
- data/vendor/jshoulda/dist/jshoulda-1.0.1.js +74 -0
- data/vendor/jshoulda/dist/jshoulda-1.0.js +72 -0
- data/vendor/jshoulda/dist/jshoulda-1.1.js +110 -0
- data/vendor/jshoulda/dist/jshoulda-1.2.1.js +186 -0
- data/vendor/jshoulda/dist/jshoulda-1.2.js +141 -0
- data/vendor/jshoulda/dist/jshoulda-1.2.x.js +142 -0
- data/vendor/jshoulda/dist/jshoulda.js +186 -0
- data/vendor/jshoulda/jshoulda/test/basic_test.html +42 -0
- data/vendor/jshoulda/lib/jstest.rb +382 -0
- data/vendor/jshoulda/lib/protodoc.rb +36 -0
- data/vendor/jshoulda/script/destroy +14 -0
- data/vendor/jshoulda/script/generate +14 -0
- data/vendor/jshoulda/script/js_autotest +1 -0
- data/vendor/jshoulda/script/rstakeout +97 -0
- data/vendor/jshoulda/site/asset_defaults.yaml +6 -0
- data/vendor/jshoulda/site/config.yaml +3 -0
- data/vendor/jshoulda/site/content/content.html +27 -0
- data/vendor/jshoulda/site/content/content.yaml +4 -0
- data/vendor/jshoulda/site/content/tutorial/tutorial.html +268 -0
- data/vendor/jshoulda/site/content/tutorial/tutorial.yaml +4 -0
- data/vendor/jshoulda/site/css/blackboard.css +88 -0
- data/vendor/jshoulda/site/css/jshoulda_site.css +33 -0
- data/vendor/jshoulda/site/css/unittest.css +42 -0
- data/vendor/jshoulda/site/example/minimal.html +55 -0
- data/vendor/jshoulda/site/js/editable.js +42 -0
- data/vendor/jshoulda/site/layouts/default/default.html +29 -0
- data/vendor/jshoulda/site/layouts/default/default.yaml +4 -0
- data/vendor/jshoulda/site/layouts/home_test/home_test.js +18 -0
- data/vendor/jshoulda/site/layouts/home_test/home_test.yaml +4 -0
- data/vendor/jshoulda/site/lib/analytics.rb +12 -0
- data/vendor/jshoulda/site/lib/default.rb +2 -0
- data/vendor/jshoulda/site/lib/example.rb +10 -0
- data/vendor/jshoulda/site/lib/hash.rb +11 -0
- data/vendor/jshoulda/site/lib/highlight.rb +17 -0
- data/vendor/jshoulda/site/page_defaults.yaml +10 -0
- data/vendor/jshoulda/site/templates/default/default.html +1 -0
- data/vendor/jshoulda/site/templates/default/default.yaml +4 -0
- data/vendor/jshoulda/src/HEADER +8 -0
- data/vendor/jshoulda/src/jshoulda.js +177 -0
- data/vendor/jshoulda/src/jshoulda.js.erb +3 -0
- data/vendor/jshoulda/tasks/bundle.rake +12 -0
- data/vendor/jshoulda/tasks/demo.rake +9 -0
- data/vendor/jshoulda/tasks/deploy.rake +29 -0
- data/{tasks → vendor/jshoulda/tasks}/environment.rake +0 -0
- data/vendor/jshoulda/tasks/javascript_test_autotest_tasks.rake +45 -0
- data/vendor/jshoulda/tasks/site.rake +74 -0
- data/vendor/jshoulda/test/assets/jsunittest.js +1004 -0
- data/vendor/jshoulda/test/assets/prototype.js +4324 -0
- data/{app_generators/newjs_iphone/templates/Html/test/assets/unittest.js → vendor/jshoulda/test/assets/prototype_unittest.js} +15 -9
- data/vendor/jshoulda/test/assets/unittest.css +50 -0
- data/vendor/jshoulda/test/unit/factory_test.html +82 -0
- data/vendor/jshoulda/test/unit/jshoulda2_test.html +85 -0
- data/vendor/jshoulda/test/unit/jshoulda_prototype_test.html +87 -0
- data/vendor/jshoulda/test/unit/jshoulda_test.html +86 -0
- data/vendor/jshoulda/test/unit/merge_methods_test.html +77 -0
- data/vendor/jshoulda/test/unit/names_and_count.html +68 -0
- data/vendor/jshoulda/test/unit/no_config_test.html +57 -0
- data/vendor/jshoulda/test/unit/styles_test.html +77 -0
- data/vendor/jshoulda/test/unit/unify_runners.html +69 -0
- data/vendor/jshoulda/test/unit/unnamed_context_test.html +67 -0
- data/vendor/jsunittest/Capfile +4 -0
- data/vendor/jsunittest/History.txt +37 -0
- data/{License.txt → vendor/jsunittest/License.txt} +0 -0
- data/vendor/jsunittest/README.txt +21 -0
- data/vendor/jsunittest/Rakefile +118 -0
- data/vendor/jsunittest/config/deploy.rb +20 -0
- data/vendor/jsunittest/config/website.yml.sample +2 -0
- data/vendor/jsunittest/dist/jsunittest-0.7.2.js +1004 -0
- data/vendor/jsunittest/dist/jsunittest.js +1004 -0
- data/vendor/jsunittest/dist/unittest.css +54 -0
- data/vendor/jsunittest/lib/jstest.rb +390 -0
- data/vendor/jsunittest/lib/protodoc.rb +36 -0
- data/vendor/jsunittest/script/destroy +14 -0
- data/vendor/jsunittest/script/generate +14 -0
- data/vendor/jsunittest/script/js_autotest +1 -0
- data/vendor/jsunittest/script/rstakeout +97 -0
- data/vendor/jsunittest/script/txt2html +75 -0
- data/vendor/jsunittest/src/HEADER +8 -0
- data/vendor/jsunittest/src/ajax.js +121 -0
- data/vendor/jsunittest/src/assertions.js +244 -0
- data/vendor/jsunittest/src/common.js +191 -0
- data/vendor/jsunittest/src/jsunittest.js +1004 -0
- data/vendor/jsunittest/src/logger.js +86 -0
- data/vendor/jsunittest/src/message_template.js +17 -0
- data/vendor/jsunittest/src/orig/unittest.js +484 -0
- data/vendor/jsunittest/src/prototype/event.js +72 -0
- data/vendor/jsunittest/src/prototype/template.js +33 -0
- data/vendor/jsunittest/src/runner.js +120 -0
- data/vendor/jsunittest/src/test_case.js +106 -0
- data/vendor/jsunittest/tasks/deploy.rake +29 -0
- data/vendor/jsunittest/tasks/environment.rake +7 -0
- data/vendor/jsunittest/tasks/javascript_test_autotest_tasks.rake +44 -0
- data/vendor/jsunittest/tasks/tmbundle.rake +24 -0
- data/vendor/jsunittest/tasks/website.rake +53 -0
- data/vendor/jsunittest/test/assets/example_test.html +50 -0
- data/{app_generators/newjs/templates → vendor/jsunittest}/test/assets/prototype.js +0 -0
- data/vendor/jsunittest/test/assets/unittest.css +54 -0
- data/{app_generators/newjs/templates → vendor/jsunittest}/test/assets/unittest.js +0 -0
- data/vendor/jsunittest/test/functional/jsunittest_test.html +209 -0
- data/vendor/jsunittest/test/unit/assertions_test.html +202 -0
- data/vendor/jsunittest/test/unit/common_test.html +61 -0
- data/vendor/jsunittest/test/unit/logger_test.html +98 -0
- data/vendor/jsunittest/test/unit/message_template_test.html +44 -0
- data/vendor/jsunittest/test/unit/runner_test.html +77 -0
- data/vendor/jsunittest/test/unit/template_test.html +57 -0
- data/vendor/jsunittest/test/unit/test_case_test.html +97 -0
- data/vendor/jsunittest/website/dist/jsunittest-0.7.2.js +1004 -0
- data/vendor/jsunittest/website/dist/jsunittest-getting-started.tar.gz +0 -0
- data/vendor/jsunittest/website/dist/jsunittest-getting-started.zip +0 -0
- data/vendor/jsunittest/website/dist/jsunittest-getting-started/assets/jsunittest.js +1004 -0
- data/vendor/jsunittest/website/dist/jsunittest-getting-started/assets/unittest.css +54 -0
- data/vendor/jsunittest/website/dist/jsunittest-getting-started/example_test.html +50 -0
- data/vendor/jsunittest/website/dist/jsunittest.js +1004 -0
- data/vendor/jsunittest/website/images/logo_bundle.png +0 -0
- data/vendor/jsunittest/website/images/passing_prototypejs_unittest_tests.jpg +0 -0
- data/vendor/jsunittest/website/index.html +94 -0
- data/vendor/jsunittest/website/index.txt +80 -0
- data/vendor/jsunittest/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/vendor/jsunittest/website/stylesheets/screen.css +138 -0
- data/vendor/jsunittest/website/template.html.erb +46 -0
- data/vendor/jsunittest/website/tmbundle/JavaScript Unit Testing.tmbundle.tar.gz +0 -0
- metadata +189 -24
- data/config/hoe.rb +0 -75
- data/config/requirements.rb +0 -17
- data/lib/newjs/version.rb +0 -9
- data/tasks/deployment.rake +0 -34
- data/tasks/jsunittest/update.rake +0 -18
- data/tasks/website.rake +0 -17
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Prototype JavaScript framework, version 1.6.0.
|
1
|
+
/* Prototype JavaScript framework, version 1.6.0.1
|
2
2
|
* (c) 2005-2007 Sam Stephenson
|
3
3
|
*
|
4
4
|
* Prototype is freely distributable under the terms of an MIT-style license.
|
@@ -7,7 +7,7 @@
|
|
7
7
|
*--------------------------------------------------------------------------*/
|
8
8
|
|
9
9
|
var Prototype = {
|
10
|
-
Version: '1.6.0.
|
10
|
+
Version: '1.6.0.1',
|
11
11
|
|
12
12
|
Browser: {
|
13
13
|
IE: !!(window.attachEvent && !window.opera),
|
@@ -110,7 +110,7 @@ Object.extend(Object, {
|
|
110
110
|
try {
|
111
111
|
if (Object.isUndefined(object)) return 'undefined';
|
112
112
|
if (object === null) return 'null';
|
113
|
-
return object.inspect ? object.inspect() :
|
113
|
+
return object.inspect ? object.inspect() : object.toString();
|
114
114
|
} catch (e) {
|
115
115
|
if (e instanceof RangeError) return '...';
|
116
116
|
throw e;
|
@@ -171,8 +171,7 @@ Object.extend(Object, {
|
|
171
171
|
},
|
172
172
|
|
173
173
|
isArray: function(object) {
|
174
|
-
return object
|
175
|
-
'splice' in object && 'join' in object;
|
174
|
+
return object && object.constructor === Array;
|
176
175
|
},
|
177
176
|
|
178
177
|
isHash: function(object) {
|
@@ -579,7 +578,7 @@ var Template = Class.create({
|
|
579
578
|
}
|
580
579
|
|
581
580
|
return before + String.interpret(ctx);
|
582
|
-
});
|
581
|
+
}.bind(this));
|
583
582
|
}
|
584
583
|
});
|
585
584
|
Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
|
@@ -603,7 +602,6 @@ var Enumerable = {
|
|
603
602
|
eachSlice: function(number, iterator, context) {
|
604
603
|
iterator = iterator ? iterator.bind(context) : Prototype.K;
|
605
604
|
var index = -number, slices = [], array = this.toArray();
|
606
|
-
if (number < 1) return array;
|
607
605
|
while ((index += number) < array.length)
|
608
606
|
slices.push(array.slice(index, index+number));
|
609
607
|
return slices.collect(iterator, context);
|
@@ -814,14 +812,14 @@ function $A(iterable) {
|
|
814
812
|
}
|
815
813
|
|
816
814
|
if (Prototype.Browser.WebKit) {
|
817
|
-
$A
|
815
|
+
function $A(iterable) {
|
818
816
|
if (!iterable) return [];
|
819
817
|
if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') &&
|
820
818
|
iterable.toArray) return iterable.toArray();
|
821
819
|
var length = iterable.length || 0, results = new Array(length);
|
822
820
|
while (length--) results[length] = iterable[length];
|
823
821
|
return results;
|
824
|
-
}
|
822
|
+
}
|
825
823
|
}
|
826
824
|
|
827
825
|
Array.from = $A;
|
@@ -1300,7 +1298,7 @@ Ajax.Request = Class.create(Ajax.Base, {
|
|
1300
1298
|
|
1301
1299
|
var contentType = response.getHeader('Content-type');
|
1302
1300
|
if (this.options.evalJS == 'force'
|
1303
|
-
|| (this.options.evalJS &&
|
1301
|
+
|| (this.options.evalJS && contentType
|
1304
1302
|
&& contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
|
1305
1303
|
this.evalResponse();
|
1306
1304
|
}
|
@@ -1318,15 +1316,6 @@ Ajax.Request = Class.create(Ajax.Base, {
|
|
1318
1316
|
}
|
1319
1317
|
},
|
1320
1318
|
|
1321
|
-
isSameOrigin: function() {
|
1322
|
-
var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
|
1323
|
-
return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
|
1324
|
-
protocol: location.protocol,
|
1325
|
-
domain: document.domain,
|
1326
|
-
port: location.port ? ':' + location.port : ''
|
1327
|
-
}));
|
1328
|
-
},
|
1329
|
-
|
1330
1319
|
getHeader: function(name) {
|
1331
1320
|
try {
|
1332
1321
|
return this.transport.getResponseHeader(name) || null;
|
@@ -1402,8 +1391,7 @@ Ajax.Response = Class.create({
|
|
1402
1391
|
if (!json) return null;
|
1403
1392
|
json = decodeURIComponent(escape(json));
|
1404
1393
|
try {
|
1405
|
-
return json.evalJSON(this.request.options.sanitizeJSON
|
1406
|
-
!this.request.isSameOrigin());
|
1394
|
+
return json.evalJSON(this.request.options.sanitizeJSON);
|
1407
1395
|
} catch (e) {
|
1408
1396
|
this.request.dispatchException(e);
|
1409
1397
|
}
|
@@ -1416,8 +1404,7 @@ Ajax.Response = Class.create({
|
|
1416
1404
|
this.responseText.blank())
|
1417
1405
|
return null;
|
1418
1406
|
try {
|
1419
|
-
return this.responseText.evalJSON(options.sanitizeJSON
|
1420
|
-
!this.request.isSameOrigin());
|
1407
|
+
return this.responseText.evalJSON(options.sanitizeJSON);
|
1421
1408
|
} catch (e) {
|
1422
1409
|
this.request.dispatchException(e);
|
1423
1410
|
}
|
@@ -1559,7 +1546,6 @@ if (!Node.ELEMENT_NODE) {
|
|
1559
1546
|
return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
|
1560
1547
|
};
|
1561
1548
|
Object.extend(this.Element, element || { });
|
1562
|
-
if (element) this.Element.prototype = element.prototype;
|
1563
1549
|
}).call(window);
|
1564
1550
|
|
1565
1551
|
Element.cache = { };
|
@@ -1624,7 +1610,7 @@ Element.Methods = {
|
|
1624
1610
|
|
1625
1611
|
var content, insert, tagName, childNodes;
|
1626
1612
|
|
1627
|
-
for (
|
1613
|
+
for (position in insertions) {
|
1628
1614
|
content = insertions[position];
|
1629
1615
|
position = position.toLowerCase();
|
1630
1616
|
insert = Element._insertionTranslations[position];
|
@@ -1877,8 +1863,7 @@ Element.Methods = {
|
|
1877
1863
|
do { ancestor = ancestor.parentNode; }
|
1878
1864
|
while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode);
|
1879
1865
|
}
|
1880
|
-
if (nextAncestor && nextAncestor.sourceIndex)
|
1881
|
-
return (e > a && e < nextAncestor.sourceIndex);
|
1866
|
+
if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);
|
1882
1867
|
}
|
1883
1868
|
|
1884
1869
|
while (element = element.parentNode)
|
@@ -2020,9 +2005,9 @@ Element.Methods = {
|
|
2020
2005
|
valueL += element.offsetLeft || 0;
|
2021
2006
|
element = element.offsetParent;
|
2022
2007
|
if (element) {
|
2023
|
-
if (element.tagName
|
2008
|
+
if (element.tagName == 'BODY') break;
|
2024
2009
|
var p = Element.getStyle(element, 'position');
|
2025
|
-
if (p
|
2010
|
+
if (p == 'relative' || p == 'absolute') break;
|
2026
2011
|
}
|
2027
2012
|
} while (element);
|
2028
2013
|
return Element._returnOffset(valueL, valueT);
|
@@ -2030,7 +2015,7 @@ Element.Methods = {
|
|
2030
2015
|
|
2031
2016
|
absolutize: function(element) {
|
2032
2017
|
element = $(element);
|
2033
|
-
if (element.getStyle('position') == 'absolute') return
|
2018
|
+
if (element.getStyle('position') == 'absolute') return;
|
2034
2019
|
// Position.prepare(); // To be done manually by Scripty when it needs it.
|
2035
2020
|
|
2036
2021
|
var offsets = element.positionedOffset();
|
@@ -2054,7 +2039,7 @@ Element.Methods = {
|
|
2054
2039
|
|
2055
2040
|
relativize: function(element) {
|
2056
2041
|
element = $(element);
|
2057
|
-
if (element.getStyle('position') == 'relative') return
|
2042
|
+
if (element.getStyle('position') == 'relative') return;
|
2058
2043
|
// Position.prepare(); // To be done manually by Scripty when it needs it.
|
2059
2044
|
|
2060
2045
|
element.style.position = 'relative';
|
@@ -2105,7 +2090,7 @@ Element.Methods = {
|
|
2105
2090
|
|
2106
2091
|
element = forElement;
|
2107
2092
|
do {
|
2108
|
-
if (!Prototype.Browser.Opera || element.tagName
|
2093
|
+
if (!Prototype.Browser.Opera || element.tagName == 'BODY') {
|
2109
2094
|
valueT -= element.scrollTop || 0;
|
2110
2095
|
valueL -= element.scrollLeft || 0;
|
2111
2096
|
}
|
@@ -2215,36 +2200,12 @@ if (Prototype.Browser.Opera) {
|
|
2215
2200
|
}
|
2216
2201
|
|
2217
2202
|
else if (Prototype.Browser.IE) {
|
2218
|
-
|
2219
|
-
// to "relative" to get the values, then change them back.
|
2220
|
-
Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
|
2221
|
-
function(proceed, element) {
|
2222
|
-
element = $(element);
|
2223
|
-
// IE throws an error if element is not in document
|
2224
|
-
try { element.offsetParent }
|
2225
|
-
catch(e) { return $(document.body) }
|
2226
|
-
var position = element.getStyle('position');
|
2227
|
-
if (position !== 'static') return proceed(element);
|
2228
|
-
element.setStyle({ position: 'relative' });
|
2229
|
-
var value = proceed(element);
|
2230
|
-
element.setStyle({ position: position });
|
2231
|
-
return value;
|
2232
|
-
}
|
2233
|
-
);
|
2234
|
-
|
2235
|
-
$w('positionedOffset viewportOffset').each(function(method) {
|
2203
|
+
$w('positionedOffset getOffsetParent viewportOffset').each(function(method) {
|
2236
2204
|
Element.Methods[method] = Element.Methods[method].wrap(
|
2237
2205
|
function(proceed, element) {
|
2238
2206
|
element = $(element);
|
2239
|
-
try { element.offsetParent }
|
2240
|
-
catch(e) { return Element._returnOffset(0,0) }
|
2241
2207
|
var position = element.getStyle('position');
|
2242
|
-
if (position
|
2243
|
-
// Trigger hasLayout on the offset parent so that IE6 reports
|
2244
|
-
// accurate offsetTop and offsetLeft values for position: fixed.
|
2245
|
-
var offsetParent = element.getOffsetParent();
|
2246
|
-
if (offsetParent && offsetParent.getStyle('position') === 'fixed')
|
2247
|
-
offsetParent.setStyle({ zoom: 1 });
|
2208
|
+
if (position != 'static') return proceed(element);
|
2248
2209
|
element.setStyle({ position: 'relative' });
|
2249
2210
|
var value = proceed(element);
|
2250
2211
|
element.setStyle({ position: position });
|
@@ -2253,14 +2214,6 @@ else if (Prototype.Browser.IE) {
|
|
2253
2214
|
);
|
2254
2215
|
});
|
2255
2216
|
|
2256
|
-
Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
|
2257
|
-
function(proceed, element) {
|
2258
|
-
try { element.offsetParent }
|
2259
|
-
catch(e) { return Element._returnOffset(0,0) }
|
2260
|
-
return proceed(element);
|
2261
|
-
}
|
2262
|
-
);
|
2263
|
-
|
2264
2217
|
Element.Methods.getStyle = function(element, style) {
|
2265
2218
|
element = $(element);
|
2266
2219
|
style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
|
@@ -2334,10 +2287,7 @@ else if (Prototype.Browser.IE) {
|
|
2334
2287
|
};
|
2335
2288
|
|
2336
2289
|
Element._attributeTranslations.write = {
|
2337
|
-
names: Object.
|
2338
|
-
cellpadding: 'cellPadding',
|
2339
|
-
cellspacing: 'cellSpacing'
|
2340
|
-
}, Element._attributeTranslations.read.names),
|
2290
|
+
names: Object.clone(Element._attributeTranslations.read.names),
|
2341
2291
|
values: {
|
2342
2292
|
checked: function(element, value) {
|
2343
2293
|
element.checked = !!value;
|
@@ -2405,7 +2355,7 @@ else if (Prototype.Browser.WebKit) {
|
|
2405
2355
|
(value < 0.00001) ? 0 : value;
|
2406
2356
|
|
2407
2357
|
if (value == 1)
|
2408
|
-
if(element.tagName
|
2358
|
+
if(element.tagName == 'IMG' && element.width) {
|
2409
2359
|
element.width++; element.width--;
|
2410
2360
|
} else try {
|
2411
2361
|
var n = document.createTextNode(' ');
|
@@ -2562,7 +2512,7 @@ Element.extend = (function() {
|
|
2562
2512
|
element.nodeType != 1 || element == window) return element;
|
2563
2513
|
|
2564
2514
|
var methods = Object.clone(Methods),
|
2565
|
-
tagName = element.tagName
|
2515
|
+
tagName = element.tagName, property, value;
|
2566
2516
|
|
2567
2517
|
// extend methods for specific tags
|
2568
2518
|
if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
|
@@ -2951,13 +2901,13 @@ Object.extend(Selector, {
|
|
2951
2901
|
},
|
2952
2902
|
|
2953
2903
|
criteria: {
|
2954
|
-
tagName: 'n = h.tagName(n, r, "#{1}", c);
|
2955
|
-
className: 'n = h.className(n, r, "#{1}", c);
|
2956
|
-
id: 'n = h.id(n, r, "#{1}", c);
|
2957
|
-
attrPresence: 'n = h.attrPresence(n, r, "#{1}"
|
2904
|
+
tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
|
2905
|
+
className: 'n = h.className(n, r, "#{1}", c); c = false;',
|
2906
|
+
id: 'n = h.id(n, r, "#{1}", c); c = false;',
|
2907
|
+
attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;',
|
2958
2908
|
attr: function(m) {
|
2959
2909
|
m[3] = (m[5] || m[6]);
|
2960
|
-
return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"
|
2910
|
+
return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);
|
2961
2911
|
},
|
2962
2912
|
pseudo: function(m) {
|
2963
2913
|
if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
|
@@ -2983,7 +2933,7 @@ Object.extend(Selector, {
|
|
2983
2933
|
className: /^\.([\w\-\*]+)(\b|$)/,
|
2984
2934
|
pseudo:
|
2985
2935
|
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
|
2986
|
-
attrPresence: /^\[(
|
2936
|
+
attrPresence: /^\[([\w]+)\]/,
|
2987
2937
|
attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
|
2988
2938
|
},
|
2989
2939
|
|
@@ -3007,7 +2957,7 @@ Object.extend(Selector, {
|
|
3007
2957
|
|
3008
2958
|
attr: function(element, matches) {
|
3009
2959
|
var nodeValue = Element.readAttribute(element, matches[1]);
|
3010
|
-
return
|
2960
|
+
return Selector.operators[matches[2]](nodeValue, matches[3]);
|
3011
2961
|
}
|
3012
2962
|
},
|
3013
2963
|
|
@@ -3022,15 +2972,14 @@ Object.extend(Selector, {
|
|
3022
2972
|
|
3023
2973
|
// marks an array of nodes for counting
|
3024
2974
|
mark: function(nodes) {
|
3025
|
-
var _true = Prototype.emptyFunction;
|
3026
2975
|
for (var i = 0, node; node = nodes[i]; i++)
|
3027
|
-
node.
|
2976
|
+
node._counted = true;
|
3028
2977
|
return nodes;
|
3029
2978
|
},
|
3030
2979
|
|
3031
2980
|
unmark: function(nodes) {
|
3032
2981
|
for (var i = 0, node; node = nodes[i]; i++)
|
3033
|
-
node.
|
2982
|
+
node._counted = undefined;
|
3034
2983
|
return nodes;
|
3035
2984
|
},
|
3036
2985
|
|
@@ -3038,15 +2987,15 @@ Object.extend(Selector, {
|
|
3038
2987
|
// "ofType" flag indicates whether we're indexing for nth-of-type
|
3039
2988
|
// rather than nth-child
|
3040
2989
|
index: function(parentNode, reverse, ofType) {
|
3041
|
-
parentNode.
|
2990
|
+
parentNode._counted = true;
|
3042
2991
|
if (reverse) {
|
3043
2992
|
for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
|
3044
2993
|
var node = nodes[i];
|
3045
|
-
if (node.nodeType == 1 && (!ofType || node.
|
2994
|
+
if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
|
3046
2995
|
}
|
3047
2996
|
} else {
|
3048
2997
|
for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
|
3049
|
-
if (node.nodeType == 1 && (!ofType || node.
|
2998
|
+
if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
|
3050
2999
|
}
|
3051
3000
|
},
|
3052
3001
|
|
@@ -3055,8 +3004,8 @@ Object.extend(Selector, {
|
|
3055
3004
|
if (nodes.length == 0) return nodes;
|
3056
3005
|
var results = [], n;
|
3057
3006
|
for (var i = 0, l = nodes.length; i < l; i++)
|
3058
|
-
if (!(n = nodes[i]).
|
3059
|
-
n.
|
3007
|
+
if (!(n = nodes[i])._counted) {
|
3008
|
+
n._counted = true;
|
3060
3009
|
results.push(Element.extend(n));
|
3061
3010
|
}
|
3062
3011
|
return Selector.handlers.unmark(results);
|
@@ -3168,18 +3117,16 @@ Object.extend(Selector, {
|
|
3168
3117
|
return results;
|
3169
3118
|
},
|
3170
3119
|
|
3171
|
-
attrPresence: function(nodes, root, attr
|
3120
|
+
attrPresence: function(nodes, root, attr) {
|
3172
3121
|
if (!nodes) nodes = root.getElementsByTagName("*");
|
3173
|
-
if (nodes && combinator) nodes = this[combinator](nodes);
|
3174
3122
|
var results = [];
|
3175
3123
|
for (var i = 0, node; node = nodes[i]; i++)
|
3176
3124
|
if (Element.hasAttribute(node, attr)) results.push(node);
|
3177
3125
|
return results;
|
3178
3126
|
},
|
3179
3127
|
|
3180
|
-
attr: function(nodes, root, attr, value, operator
|
3128
|
+
attr: function(nodes, root, attr, value, operator) {
|
3181
3129
|
if (!nodes) nodes = root.getElementsByTagName("*");
|
3182
|
-
if (nodes && combinator) nodes = this[combinator](nodes);
|
3183
3130
|
var handler = Selector.operators[operator], results = [];
|
3184
3131
|
for (var i = 0, node; node = nodes[i]; i++) {
|
3185
3132
|
var nodeValue = Element.readAttribute(node, attr);
|
@@ -3258,7 +3205,7 @@ Object.extend(Selector, {
|
|
3258
3205
|
var h = Selector.handlers, results = [], indexed = [], m;
|
3259
3206
|
h.mark(nodes);
|
3260
3207
|
for (var i = 0, node; node = nodes[i]; i++) {
|
3261
|
-
if (!node.parentNode.
|
3208
|
+
if (!node.parentNode._counted) {
|
3262
3209
|
h.index(node.parentNode, reverse, ofType);
|
3263
3210
|
indexed.push(node.parentNode);
|
3264
3211
|
}
|
@@ -3296,7 +3243,7 @@ Object.extend(Selector, {
|
|
3296
3243
|
var exclusions = new Selector(selector).findElements(root);
|
3297
3244
|
h.mark(exclusions);
|
3298
3245
|
for (var i = 0, results = [], node; node = nodes[i]; i++)
|
3299
|
-
if (!node.
|
3246
|
+
if (!node._counted) results.push(node);
|
3300
3247
|
h.unmark(exclusions);
|
3301
3248
|
return results;
|
3302
3249
|
},
|
@@ -3330,19 +3277,11 @@ Object.extend(Selector, {
|
|
3330
3277
|
'|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); }
|
3331
3278
|
},
|
3332
3279
|
|
3333
|
-
split: function(expression) {
|
3334
|
-
var expressions = [];
|
3335
|
-
expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
|
3336
|
-
expressions.push(m[1].strip());
|
3337
|
-
});
|
3338
|
-
return expressions;
|
3339
|
-
},
|
3340
|
-
|
3341
3280
|
matchElements: function(elements, expression) {
|
3342
3281
|
var matches = $$(expression), h = Selector.handlers;
|
3343
3282
|
h.mark(matches);
|
3344
3283
|
for (var i = 0, results = [], element; element = elements[i]; i++)
|
3345
|
-
if (element.
|
3284
|
+
if (element._counted) results.push(element);
|
3346
3285
|
h.unmark(matches);
|
3347
3286
|
return results;
|
3348
3287
|
},
|
@@ -3355,7 +3294,11 @@ Object.extend(Selector, {
|
|
3355
3294
|
},
|
3356
3295
|
|
3357
3296
|
findChildElements: function(element, expressions) {
|
3358
|
-
|
3297
|
+
var exprs = expressions.join(',');
|
3298
|
+
expressions = [];
|
3299
|
+
exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
|
3300
|
+
expressions.push(m[1].strip());
|
3301
|
+
});
|
3359
3302
|
var results = [], h = Selector.handlers;
|
3360
3303
|
for (var i = 0, l = expressions.length, selector; i < l; i++) {
|
3361
3304
|
selector = new Selector(expressions[i].strip());
|
@@ -3366,22 +3309,13 @@ Object.extend(Selector, {
|
|
3366
3309
|
});
|
3367
3310
|
|
3368
3311
|
if (Prototype.Browser.IE) {
|
3369
|
-
|
3370
|
-
|
3371
|
-
|
3372
|
-
|
3373
|
-
|
3374
|
-
|
3375
|
-
|
3376
|
-
},
|
3377
|
-
|
3378
|
-
// IE improperly serializes _countedByPrototype in (inner|outer)HTML.
|
3379
|
-
unmark: function(nodes) {
|
3380
|
-
for (var i = 0, node; node = nodes[i]; i++)
|
3381
|
-
node.removeAttribute('_countedByPrototype');
|
3382
|
-
return nodes;
|
3383
|
-
}
|
3384
|
-
});
|
3312
|
+
// IE returns comment nodes on getElementsByTagName("*").
|
3313
|
+
// Filter them out.
|
3314
|
+
Selector.handlers.concat = function(a, b) {
|
3315
|
+
for (var i = 0, node; node = b[i]; i++)
|
3316
|
+
if (node.tagName !== "!") a.push(node);
|
3317
|
+
return a;
|
3318
|
+
};
|
3385
3319
|
}
|
3386
3320
|
|
3387
3321
|
function $$() {
|
@@ -3859,9 +3793,9 @@ Object.extend(Event, (function() {
|
|
3859
3793
|
var cache = Event.cache;
|
3860
3794
|
|
3861
3795
|
function getEventID(element) {
|
3862
|
-
if (element.
|
3796
|
+
if (element._eventID) return element._eventID;
|
3863
3797
|
arguments.callee.id = arguments.callee.id || 1;
|
3864
|
-
return element.
|
3798
|
+
return element._eventID = ++arguments.callee.id;
|
3865
3799
|
}
|
3866
3800
|
|
3867
3801
|
function getDOMEventName(eventName) {
|
@@ -4233,4 +4167,4 @@ Object.extend(Element.ClassNames.prototype, Enumerable);
|
|
4233
4167
|
|
4234
4168
|
/*--------------------------------------------------------------------------*/
|
4235
4169
|
|
4236
|
-
Element.addMethods();
|
4170
|
+
Element.addMethods();
|