You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2013/11/25 23:55:51 UTC
git commit: Rename t5/core/dom:ElementWrapper.attribute() to .attr()
Add logic to t5/core/dom to express, on the body element,
whether Ajax requests are active or not Fix broken tests
Updated Branches:
refs/heads/master 09bd34c8b -> 0ef56e79b
Rename t5/core/dom:ElementWrapper.attribute() to .attr()
Add logic to t5/core/dom to express, on the body element, whether Ajax requests are active or not
Fix broken tests
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/0ef56e79
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/0ef56e79
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/0ef56e79
Branch: refs/heads/master
Commit: 0ef56e79b254bc730de04586236bbe7f1ea94b62
Parents: 09bd34c
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Mon Nov 25 14:53:55 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Mon Nov 25 14:53:55 2013 -0800
----------------------------------------------------------------------
.../beanvalidator-validation.coffee | 6 ++--
.../modules/t5/core/ajaxformloop.coffee | 6 ++--
.../META-INF/modules/t5/core/alert.coffee | 6 ++--
.../META-INF/modules/t5/core/console.coffee | 12 +++----
.../META-INF/modules/t5/core/datefield.coffee | 6 ++--
.../META-INF/modules/t5/core/fields.coffee | 10 +++---
.../modules/t5/core/form-fragment.coffee | 4 +--
.../META-INF/modules/t5/core/forms.coffee | 6 ++--
.../META-INF/modules/t5/core/pageinit.coffee | 2 +-
.../META-INF/modules/t5/core/select.coffee | 2 +-
.../META-INF/modules/t5/core/tree.coffee | 4 +--
.../META-INF/modules/t5/core/validation.coffee | 24 +++++++-------
.../META-INF/modules/t5/core/zone.coffee | 8 ++---
.../org/apache/tapestry5/t5-core-dom.coffee | 34 ++++++++++++++++++--
.../apache/tapestry5/test/SeleniumTestCase.java | 19 +++++++++--
.../META-INF/modules/t5/core/injected-upload.js | 4 +--
16 files changed, 97 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-beanvalidator/src/main/coffeescript/META-INF/modules/t5/beanvalidator/beanvalidator-validation.coffee
----------------------------------------------------------------------
diff --git a/tapestry-beanvalidator/src/main/coffeescript/META-INF/modules/t5/beanvalidator/beanvalidator-validation.coffee b/tapestry-beanvalidator/src/main/coffeescript/META-INF/modules/t5/beanvalidator/beanvalidator-validation.coffee
index 835e24f..c721088 100644
--- a/tapestry-beanvalidator/src/main/coffeescript/META-INF/modules/t5/beanvalidator/beanvalidator-validation.coffee
+++ b/tapestry-beanvalidator/src/main/coffeescript/META-INF/modules/t5/beanvalidator/beanvalidator-validation.coffee
@@ -22,7 +22,7 @@ define ["underscore", "t5/core/dom", "t5/core/events", "t5/core/utils", "t5/core
(_, dom, events, utils) ->
rangeValue = (element, attribute, defaultValue) ->
- v = element.attribute attribute
+ v = element.attr attribute
if v is null
defaultValue
else
@@ -48,7 +48,7 @@ define ["underscore", "t5/core/dom", "t5/core/events", "t5/core/utils", "t5/core
value = value.length
unless min <= value <= max
- memo.error = (element.attribute "data-range-message") or "RANGE ERROR"
+ memo.error = (element.attr "data-range-message") or "RANGE ERROR"
return false
return true
@@ -56,7 +56,7 @@ define ["underscore", "t5/core/dom", "t5/core/events", "t5/core/utils", "t5/core
dom.onDocument events.field.optional, "[data-optionality=prohibited]", (event, memo) ->
unless utils.isBlank memo.value
- memo.error = (@attribute "data-prohibited-message") or "PROHIBITED"
+ memo.error = (@attr "data-prohibited-message") or "PROHIBITED"
return false
return true
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/ajaxformloop.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/ajaxformloop.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/ajaxformloop.coffee
index 09f6f3b..69025d5 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/ajaxformloop.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/ajaxformloop.coffee
@@ -31,11 +31,11 @@ define ["./dom", "./events", "./console", "./ajax"],
console.error "Enclosing element for AjaxFormLoop remove row link not found."
return false
- url = afl.attribute "data-remove-row-url"
+ url = afl.attr "data-remove-row-url"
ajax url,
data:
- "t:rowvalue": @attribute "data-afl-row-value"
+ "t:rowvalue": @attr "data-afl-row-value"
success: =>
# The server has removed the row from persistent storage, lets
# do the same on the UI.
@@ -56,7 +56,7 @@ define ["./dom", "./events", "./console", "./ajax"],
insertionPoint = @findParent "[data-afl-behavior=insert-before]"
- url = afl.attribute "data-inject-row-url"
+ url = afl.attr "data-inject-row-url"
ajax url,
success: (response) =>
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/alert.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/alert.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/alert.coffee
index 2d2da61..1a1bfcd 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/alert.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/alert.coffee
@@ -25,7 +25,7 @@ define ["./dom", "./console", "./messages", "./ajax", "underscore", "./bootstrap
warn: "alert-warning"
error: "alert-danger"
- getURL = (container) -> container.attribute "data-dismiss-url"
+ getURL = (container) -> container.attr "data-dismiss-url"
removeAlert = (container, alert) ->
alert.remove()
@@ -48,7 +48,7 @@ define ["./dom", "./console", "./messages", "./ajax", "underscore", "./bootstrap
alert = button.parent()
- id = alert.attribute "data-alert-id"
+ id = alert.attr "data-alert-id"
unless id
removeAlert container, alert
@@ -64,7 +64,7 @@ define ["./dom", "./console", "./messages", "./ajax", "underscore", "./bootstrap
<div data-container-type="inner"></div>
"""
- if (outer.attribute "data-show-dismiss-all") is "true"
+ if (outer.attr "data-show-dismiss-all") is "true"
outer.append """
<div class="pull-right">
<button class="btn btn-xs btn-default" data-action="dismiss-all">
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/console.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/console.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/console.coffee
index 2b52f0b..d57697e 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/console.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/console.coffee
@@ -43,7 +43,7 @@ define ["./dom", "underscore", "./bootstrap"],
return
- consoleAttribute = dom.body.attribute "data-floating-console"
+ consoleAttribute = dom.body.attr "data-floating-console"
forceFloating = (consoleAttribute is "enabled") or (consoleAttribute is "invisible")
@@ -92,7 +92,7 @@ define ["./dom", "underscore", "./bootstrap"],
messages = floatingConsole.findFirst ".message-container"
- floatingConsole.findFirst("[data-action=enable]").attribute "disabled", true
+ floatingConsole.findFirst("[data-action=enable]").attr "disabled", true
floatingConsole.on "click", "[data-action=clear]", ->
floatingConsole.hide()
@@ -100,8 +100,8 @@ define ["./dom", "underscore", "./bootstrap"],
floatingConsole.on "click", "[data-action=disable]", ->
- @attribute "disabled", true
- floatingConsole.findFirst("[data-action=enable]").attribute "disabled", false
+ @attr "disabled", true
+ floatingConsole.findFirst("[data-action=enable]").attr "disabled", false
messages.hide()
@@ -109,8 +109,8 @@ define ["./dom", "underscore", "./bootstrap"],
floatingConsole.on "click", "[data-action=enable]", ->
- @attribute "disabled", true
- floatingConsole.findFirst("[data-action=disable]").attribute "disabled", false
+ @attr "disabled", true
+ floatingConsole.findFirst("[data-action=disable]").attr "disabled", false
messages.show()
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee
index 20a9782..bb3a6b5 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee
@@ -81,7 +81,7 @@ define ["./dom", "./events", "./messages", "./ajax", "underscore", "./fields"],
@field.addClass "ajax-wait"
- ajax (@container.attribute "data-parse-url"),
+ ajax (@container.attr "data-parse-url"),
data:
input: value
onerror: (message) =>
@@ -131,7 +131,7 @@ define ["./dom", "./events", "./messages", "./ajax", "underscore", "./fields"],
@field.addClass "ajax-wait"
- ajax (@container.attribute "data-format-url"),
+ ajax (@container.attr "data-format-url"),
data:
input: date.getTime()
failure: (response, message) =>
@@ -147,7 +147,7 @@ define ["./dom", "./events", "./messages", "./ajax", "underscore", "./fields"],
scan = (root) ->
for container in root.find "[data-component-type='core/DateField']"
# Hide it from later scans
- container.attribute "data-component-type", null
+ container.attr "data-component-type", null
new Controller(container)
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/fields.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/fields.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/fields.coffee
index 92a48f8..6ae7fcb 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/fields.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/fields.coffee
@@ -20,11 +20,11 @@ define ["underscore", "./events", "./dom", "./utils", "./forms"],
(_, events, dom, utils) ->
ensureFieldId = (field) ->
- fieldId = field.attribute "id"
+ fieldId = field.attr "id"
unless fieldId
fieldId = _.uniqueId "field"
- field.attribute "id", fieldId
+ field.attr "id", fieldId
return fieldId
@@ -37,7 +37,7 @@ define ["underscore", "./events", "./dom", "./utils", "./forms"],
#
# * field - element wrapper for the field
findHelpBlocks = (field) ->
- fieldId = field.attribute "id"
+ fieldId = field.attr "id"
# When the field has an id (the normal case!), search the body for
# the matching help blocks.
@@ -63,7 +63,7 @@ define ["underscore", "./events", "./dom", "./utils", "./forms"],
block = group.findFirst "[data-presentation=error]"
if block
- block.attribute "data-error-block-for", fieldId
+ block.attr "data-error-block-for", fieldId
return [block]
# Not found, so perhaps it will be created dynamically.
@@ -108,7 +108,7 @@ define ["underscore", "./events", "./dom", "./utils", "./forms"],
failure = false
fieldValue =
- if (@attribute "data-value-mode") is "options"
+ if (@attr "data-value-mode") is "options"
collectOptionValues this
else
@value()
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/form-fragment.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/form-fragment.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/form-fragment.coffee
index de21428..24c8fd8 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/form-fragment.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/form-fragment.coffee
@@ -29,12 +29,12 @@ define ["underscore", "./dom", "./events", "./forms"],
_.each fragments, (frag) ->
- fragmentId = frag.attribute "id"
+ fragmentId = frag.attr "id"
hidden = frag.findFirst "input[type=hidden][data-for-fragment='#{fragmentId}']"
# If found (e.g., not alwaysSubmit), then enable/disable the field.
- hidden && hidden.attribute "disabled", not frag.deepVisible()
+ hidden && hidden.attr "disabled", not frag.deepVisible()
# Again, a DOM event to make the FormFragment visible or invisible; this is useful
# because of the didShow/didHide events ... but we're really just seeing the evolution
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/forms.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/forms.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/forms.coffee
index d3adb11..c09a716 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/forms.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/forms.coffee
@@ -35,7 +35,7 @@ define ["./events", "./dom", "underscore"],
setSubmittingHidden = (form, submitter) ->
- mode = submitter.attribute "data-submit-mode"
+ mode = submitter.attr "data-submit-mode"
isCancel = mode is "cancel"
if mode and mode isnt "normal"
form.meta SKIP_VALIDATION, true
@@ -65,7 +65,7 @@ define ["./events", "./dom", "underscore"],
fields = form.find "input, select, textarea"
_.each fields, (field) ->
- return if field.attribute "disabled"
+ return if field.attr "disabled"
type = field.element.type
@@ -108,7 +108,7 @@ define ["./events", "./dom", "underscore"],
try
- if ((@attribute "data-validate") is "submit") and
+ if ((@attr "data-validate") is "submit") and
(not @meta SKIP_VALIDATION)
@meta SKIP_VALIDATION, null
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/pageinit.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/pageinit.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/pageinit.coffee
index bd7f9e6..b72e788 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/pageinit.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/pageinit.coffee
@@ -124,7 +124,7 @@ define ["underscore", "./console", "./dom", "./events"],
# be ready to go. We set a flag, mostly used by test suites, to ensure that all is ready.
# Note that later Ajax requests do not change this attribute, so their timing continues to be tricky.
- dom.body.attribute "data-page-initialized", "true"
+ dom.body.attr "data-page-initialized", "true"
exports = _.extend loadLibrariesAndInitialize,
# Passed a list of initializers, executes each initializer in order. Due to asynchronous loading
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/select.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/select.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/select.coffee
index d35b5e1..23c05e2 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/select.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/select.coffee
@@ -25,6 +25,6 @@ define ["./events", "./dom", "./zone"],
containingZone = zone.findZone this
containingZone and containingZone.trigger events.zone.refresh,
- url: @attribute "data-update-url"
+ url: @attr "data-update-url"
parameters:
"t:selectvalue": @value()
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/tree.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/tree.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/tree.coffee
index 65ece69..c7d045c 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/tree.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/tree.coffee
@@ -28,12 +28,12 @@ define ["./dom", "./ajax", "./zone"],
send = (node, action, success) ->
container = node.findParent TREE
- url = container.attribute "data-tree-action-url"
+ url = container.attr "data-tree-action-url"
ajax url,
data:
"t:action": action
- "t:nodeid": node.attribute NODE_ID
+ "t:nodeid": node.attr NODE_ID
success: success
loadChildren = (node) ->
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/validation.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/validation.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/validation.coffee
index 4547c05..9a22686 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/validation.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/validation.coffee
@@ -93,13 +93,13 @@ define ["underscore", "./dom", "./events", "./utils", "./messages", "./fields"],
memo.translated = result
catch e
- memo.error = (field.attribute "data-translation-message") or e.message or "ERROR"
+ memo.error = (field.attr "data-translation-message") or e.message or "ERROR"
return false
dom.onDocument events.field.optional, "[data-optionality=required]", (event, memo) ->
if utils.isBlank memo.value
- memo.error = (@attribute "data-required-message") or "REQUIRED"
+ memo.error = (@attr "data-required-message") or "REQUIRED"
dom.onDocument events.field.translate, "[data-translation=numeric]", (event, memo) ->
translate this, memo, false
@@ -108,31 +108,31 @@ define ["underscore", "./dom", "./events", "./utils", "./messages", "./fields"],
translate this, memo, true
dom.onDocument events.field.validate, "[data-validate-min-length]", (event, memo) ->
- min = parseInt @attribute "data-validate-min-length"
+ min = parseInt @attr "data-validate-min-length"
if memo.translated.length < min
- memo.error = (@attribute "data-min-length-message") or "TOO SHORT"
+ memo.error = (@attr "data-min-length-message") or "TOO SHORT"
return false
dom.onDocument events.field.validate, "[data-validate-max-length]", (event, memo) ->
- max = parseInt @attribute "data-validate-max-length"
+ max = parseInt @attr "data-validate-max-length"
if memo.translated.length > max
- memo.error = (@attribute "data-max-length-message") or "TOO LONG"
+ memo.error = (@attr "data-max-length-message") or "TOO LONG"
return false
dom.onDocument events.field.validate, "[data-validate-max]", (event, memo) ->
- max = parseInt @attribute "data-validate-max"
+ max = parseInt @attr "data-validate-max"
if memo.translated > max
- memo.error = (@attribute "data-max-message") or "TOO LARGE"
+ memo.error = (@attr "data-max-message") or "TOO LARGE"
return false
dom.onDocument events.field.validate, "[data-validate-min]", (event, memo) ->
- min = parseInt @attribute "data-validate-min"
+ min = parseInt @attr "data-validate-min"
if memo.translated < min
- memo.error = (@attribute "data-min-message") or "TOO SMALL"
+ memo.error = (@attr "data-min-message") or "TOO SMALL"
return false
dom.onDocument events.field.validate, "[data-validate-regexp]", (event, memo) ->
@@ -140,11 +140,11 @@ define ["underscore", "./dom", "./events", "./utils", "./messages", "./fields"],
# Cache the compiled regular expression.
re = @meta REGEXP_META
unless re
- re = new RegExp(@attribute "data-validate-regexp")
+ re = new RegExp(@attr "data-validate-regexp")
@meta REGEXP_META, re
unless re.test memo.translated
- memo.error = (@attribute "data-regexp-message") or "INVALID"
+ memo.error = (@attr "data-regexp-message") or "INVALID"
return false
# Export the number parser, just to be nice (and to support some testing).
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee
index 3ec463b..08696ae 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee
@@ -32,7 +32,7 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"],
#
# * element - starting point for determining zone
findZone = (element) ->
- zoneId = element.attribute "data-update-zone"
+ zoneId = element.attr "data-update-zone"
if zoneId is "^"
zone = element.findParent "[data-container-type=zone]"
@@ -59,7 +59,7 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"],
zone = findZone element
if zone
- zone.trigger events.zone.refresh, url: element.attribute "href"
+ zone.trigger events.zone.refresh, url: element.attr "href"
return false
@@ -71,7 +71,7 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"],
formParameters = forms.gatherParameters this
zone.trigger events.zone.refresh,
- url: (@attribute "action")
+ url: (@attr "action")
parameters: formParameters
return false
@@ -100,7 +100,7 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"],
zone = @closest "[data-container-type=zone]"
# A Zone inside a form will render some additional parameters to coordinate updates with the Form on the server.
- attr = zone.attribute "data-zone-parameters"
+ attr = zone.attr "data-zone-parameters"
parameters = attr and JSON.parse attr
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-core/src/main/preprocessed-coffeescript/org/apache/tapestry5/t5-core-dom.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/preprocessed-coffeescript/org/apache/tapestry5/t5-core-dom.coffee b/tapestry-core/src/main/preprocessed-coffeescript/org/apache/tapestry5/t5-core-dom.coffee
index 2cec0cc..58d07e1 100644
--- a/tapestry-core/src/main/preprocessed-coffeescript/org/apache/tapestry5/t5-core-dom.coffee
+++ b/tapestry-core/src/main/preprocessed-coffeescript/org/apache/tapestry5/t5-core-dom.coffee
@@ -280,11 +280,11 @@ define ["underscore", "./utils", "./events", "jquery"],
#
# * name - the attribute to read or update, or an object of keys and values
# * value - (optional) the new value for the attribute
- attribute: (name, value) ->
+ attr: (name, value) ->
if _.isObject name
for attributeName, value of name
- @attribute attributeName, value
+ @attr attributeName, value
return this
@@ -666,6 +666,18 @@ define ["underscore", "./utils", "./events", "jquery"],
@res.getHeader name
#endif
+ # Used to track how many active Ajax requests are currently in-process. This is incremented
+ # when an Ajax request is started, and decremented when an Ajax request completes or fails.
+ # The body attribute `data-ajax-active` is set to "true" or "false" whenever the
+ # count changes. This only applies to Ajax requests that are filtered through the t5/core/dom API;
+ # other libraries (including RequireJS) which bypass this API are not counted.
+
+ activeAjaxCount = 0
+
+ adjustAjaxCount = (delta) ->
+ activeAjaxCount += delta
+
+ exports.body.attr "data-ajax-active", (activeAjaxCount > 0)
# Performs an asynchronous Ajax request, invoking callbacks when it completes.
#
@@ -694,6 +706,8 @@ define ["underscore", "./utils", "./events", "jquery"],
data: options.data
# jQuery doesn't have the equivalent of Protoype's onException
error: (jqXHR, textStatus, errorThrown) ->
+ adjustAjaxCount -1
+
return if textStatus is "abort"
message = "Request to #{url} failed with status #{textStatus}"
text = jqXHR.statusText
@@ -710,8 +724,13 @@ define ["underscore", "./utils", "./events", "jquery"],
success: (data, textStatus, jqXHR) ->
+ adjustAjaxCount -1
+
options.success and options.success(new ResponseWrapper jqXHR, data)
return
+
+ adjustAjaxCount +1
+
new RequestWrapper jqxhr
#elseif prototype
finalOptions =
@@ -719,6 +738,9 @@ define ["underscore", "./utils", "./events", "jquery"],
contentType: options.contentType or "application/x-www-form-urlencoded"
parameters: options.data
onException: (ajaxRequest, exception) ->
+
+ adjustAjaxCount -1
+
if options.exception
options.exception exception
else
@@ -727,6 +749,8 @@ define ["underscore", "./utils", "./events", "jquery"],
return
onFailure: (response) ->
+ adjustAjaxCount -1
+
message = "Request to #{url} failed with status #{response.getStatus()}"
text = response.getStatusText()
if not _.isEmpty text
@@ -742,6 +766,8 @@ define ["underscore", "./utils", "./events", "jquery"],
onSuccess: (response) ->
+ adjustAjaxCount -1
+
# Prototype treats status == 0 as success, even though it may
# indicate that the server didn't respond.
if (not response.getStatus()) or (not response.request.success())
@@ -753,6 +779,8 @@ define ["underscore", "./utils", "./events", "jquery"],
options.success and options.success(new ResponseWrapper response)
return
+ adjustAjaxCount +1
+
new RequestWrapper (new Ajax.Request url, finalOptions)
#endif
@@ -802,7 +830,7 @@ define ["underscore", "./utils", "./events", "jquery"],
element = wrapElement document.createElement (elementName or "div")
if attributes
- element.attribute attributes
+ element.attr attributes
if body
element.update body
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java
----------------------------------------------------------------------
diff --git a/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java b/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java
index 1aee01a..e731d48 100644
--- a/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java
+++ b/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java
@@ -1470,7 +1470,7 @@ public abstract class SeleniumTestCase extends Assert implements Selenium
*/
protected void waitForCSSSelectedElementToAppear(String cssSelector)
{
- String condition = String.format("selenium.browserbot.getCurrentWindow().testSupport.findCSSMatchCount(\"%s\") > 0", cssSelector);
+ String condition = String.format("window.testSupport.findCSSMatchCount(\"%s\") > 0", cssSelector);
waitForCondition(condition, PAGE_LOAD_TIMEOUT);
}
@@ -1493,7 +1493,7 @@ public abstract class SeleniumTestCase extends Assert implements Selenium
/**
* Waits for the element to be removed from the DOM.
- *
+ * <p/>
* <p/>
* This implementation depends on window being extended with testSupport.isNotVisible().
*
@@ -1571,7 +1571,20 @@ public abstract class SeleniumTestCase extends Assert implements Selenium
*/
protected final void waitForAjaxRequestsToComplete(String timeout)
{
- waitForCondition("selenium.browserbot.getCurrentWindow().Ajax.activeRequestCount == 0", timeout);
+ for (int i = 0; i < 5; i++)
+ {
+ if (i > 0)
+ {
+ sleep(100);
+ }
+
+ if (getAttribute("//body/@data-ajax-active").equals("false"))
+ {
+ return;
+ }
+ }
+
+ reportAndThrowAssertionError("Body 'data-ajax-active' attribute never reverted to 'false'.");
}
public Number getCssCount(String str)
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0ef56e79/tapestry-upload/src/main/resources/META-INF/modules/t5/core/injected-upload.js
----------------------------------------------------------------------
diff --git a/tapestry-upload/src/main/resources/META-INF/modules/t5/core/injected-upload.js b/tapestry-upload/src/main/resources/META-INF/modules/t5/core/injected-upload.js
index fe3cb95..7a6a71c 100644
--- a/tapestry-upload/src/main/resources/META-INF/modules/t5/core/injected-upload.js
+++ b/tapestry-upload/src/main/resources/META-INF/modules/t5/core/injected-upload.js
@@ -23,8 +23,8 @@ define(["./dom"],
var form = dom(elementId).closest("form");
if (form) {
- form.attribute("enctype", "multipart/form-data");
- form.attribute("encoding", "multipart/form-data");
+ form.attr("enctype", "multipart/form-data");
+ form.attr("encoding", "multipart/form-data");
}
}
});