Author: konstantin.mishin
Date: 2010-12-01 15:22:27 -0500 (Wed, 01 Dec 2010)
New Revision: 20282
Modified:
sandbox/trunk/ui/fileupload/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js
sandbox/trunk/ui/fileupload/ui/src/main/templates/fileupload.template.xml
Log:
RF-9496
Modified:
sandbox/trunk/ui/fileupload/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js
===================================================================
---
sandbox/trunk/ui/fileupload/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js 2010-12-01
20:22:02 UTC (rev 20281)
+++
sandbox/trunk/ui/fileupload/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js 2010-12-01
20:22:27 UTC (rev 20282)
@@ -52,7 +52,7 @@
items: [],
- uploadedItems: [],
+ submitedItems: [],
init: function(id, options) {
this.id = id;
@@ -108,7 +108,7 @@
__removeItem: function(item) {
this.items.splice(this.items.indexOf(item), 1);
- this.uploadedItems.splice(this.uploadedItems.indexOf(item), 1);
+ this.submitedItems.splice(this.submitedItems.indexOf(item), 1);
this.__updateButtons();
},
@@ -116,7 +116,7 @@
this.inputContainer.children(":not(:visible)").remove();
this.list.empty();
this.items.splice(0);
- this.uploadedItems.splice(0);
+ this.submitedItems.splice(0);
this.__updateButtons();
},
@@ -163,27 +163,30 @@
var contentDocument = event.target.contentWindow.document;
contentDocument = contentDocument.XMLDocument || contentDocument;
var documentElement = contentDocument.documentElement;
- if (documentElement.tagName.toUpperCase() != "HTML") {
- jsf.ajax.response({responseXML: contentDocument}, {});
- this.loadableItem.finishUploading();
- this.uploadedItems.push(this.loadableItem);
- if (this.items.length) {
+ var responseStatus, id;
+ if (documentElement.tagName.toUpperCase() == "PARTIAL-RESPONSE") {
+ responseStatus = ITEM_STATE.DONE;
+ } else if ((id = documentElement.id) && id.indexOf(UID +
this.loadableItem.uid + ":") == 0) {
+ responseStatus = id.split(":")[1];
+ }
+ if (responseStatus) {
+ responseStatus == ITEM_STATE.DONE && jsf.ajax.response({responseXML:
contentDocument}, {});
+ this.loadableItem.finishUploading(responseStatus);
+ this.submitedItems.push(this.loadableItem);
+ if (responseStatus == ITEM_STATE.DONE && this.items.length) {
this.__startUpload();
} else {
this.loadableItem = null;
this.__updateButtons();
var items = [];
- for (var i in this.uploadedItems) {
- items.push(this.uploadedItems[i].model);
+ for (var i in this.items) {
+ items.push(this.items[i].model);
}
+ for (var i in this.submitedItems) {
+ items.push(this.submitedItems[i].model);
+ }
richfaces.Event.fire(this.element, "onuploadcomplete", items);
}
- } else {
- var result = documentElement.id.split(":");
- if (UID + 1 == result[0]) {
- if ("done" == result[1]) {
- }
- }
}
}
},
@@ -203,8 +206,8 @@
result = this.items[i].model.name == fileName;
}
result = result || (this.loadableItem && this.loadableItem.model.name ==
fileName);
- for (var i = 0; !result && i < this.uploadedItems.length; i++) {
- result = this.uploadedItems[i].model.name == fileName;
+ for (var i = 0; !result && i < this.submitedItems.length; i++) {
+ result = this.submitedItems[i].model.name == fileName;
}
return result;
}
@@ -251,15 +254,15 @@
}
},
- finishUploading: function() {
+ finishUploading: function(state) {
if (this.fileUpload.progressBar) {
this.fileUpload.progressBar.disable();
this.fileUpload.hiddenContainer.append(this.fileUpload.progressBarElement.detach());
}
this.input.remove();
- this.state.html("Done");
+ this.state.html(state == ITEM_STATE.DONE ? "Done" : "File size
exceeded");
this.link.html("Clear");
- this.model.state = ITEM_STATE.DONE;
+ this.model.state = state;
}
});
}(window.RichFaces, jQuery));
Modified: sandbox/trunk/ui/fileupload/ui/src/main/templates/fileupload.template.xml
===================================================================
--- sandbox/trunk/ui/fileupload/ui/src/main/templates/fileupload.template.xml 2010-12-01
20:22:02 UTC (rev 20281)
+++ sandbox/trunk/ui/fileupload/ui/src/main/templates/fileupload.template.xml 2010-12-01
20:22:27 UTC (rev 20282)
@@ -72,7 +72,7 @@
<div class="rf-fu-cntr-hdn">
<iframe name="#{clientId}"/>
<cdk:object name="progressBar"
value="#{component.facets['progress']}"/>
- <c:if test="#{progressBar.isRendered()}">
+ <c:if test="#{progressBar != null and progressBar.isRendered()}">
<cdk:call expression="progressBar.encodeAll(facesContext)" />
</c:if>
</div>
Show replies by date