On May 20, 2010, at 7:15 PM, dgervalle (SVN) wrote:
> Author: dgervalle
> Date: 2010-05-20 19:15:53 +0200 (Thu, 20 May 2010)
> New Revision: 28950
>
> Modified:
>
> platform/web/branches/xwiki-web-2.3/standard/src/main/webapp/resources/js/xwiki/table/livetable.js
> Log:
> XWIKI-5212 - Livetable filter serialization does not properly support
> multi-valued form elements
> Merge from trunk r28947
Do we have a test for this? How do we unit-test UI components?
Thanks
-Vincent
> Modified:
> platform/web/branches/xwiki-web-2.3/standard/src/main/webapp/resources/js/xwiki/table/livetable.js
> ===================================================================
> ---
> platform/web/branches/xwiki-web-2.3/standard/src/main/webapp/resources/js/xwiki/table/livetable.js
> 2010-05-20 17:11:02 UTC (rev 28949)
> +++
> platform/web/branches/xwiki-web-2.3/standard/src/main/webapp/resources/js/xwiki/table/livetable.js
> 2010-05-20 17:15:53 UTC (rev 28950)
> @@ -609,11 +609,12 @@
> for (var i = 0; i < this.inputs.length; ++i) {
> var key = this.inputs[i].name;
> if ((this.inputs[i].type == "radio") || (this.inputs[i].type ==
> "checkbox")) {
> - if (this.filters[key]) {
> - if (this.filters[key] == this.inputs[i].value.strip()) {
> - this.inputs[i].checked = true;
> + var filter = this.filters[key];
> + if (filter) {
> + if (Object.isArray(filter)) {
> + this.inputs[i].checked =
> (filter.indexOf(this.inputs[i].value.strip()) != -1);
> } else {
> - this.inputs[i].checked = false;
> + this.inputs[i].checked = (filter ==
> this.inputs[i].value.strip());
> }
> }
> } else {
> @@ -624,14 +625,14 @@
> }
>
> for (var i = 0; i < this.selects.length; ++i) {
> - if (!this.filters[this.selects[i].name]) {
> - continue;
> - }
> - for (var j = 0; j < this.selects[i].options.length; ++j) {
> - if (this.selects[i].options[j].value ==
> this.filters[this.selects[i].name]) {
> - this.selects[i].options[j].selected = true;
> - } else {
> - this.selects[i].options[j].selected = false;
> + var filter = this.filters[this.selects[i].name];
> + if (filter) {
> + for (var j = 0; j < this.selects[i].options.length; ++j) {
> + if (Object.isArray(filter)) {
> + this.selects[i].options[j].selected =
> (filter.indexOf(this.selects[i].options[j].value) != -1);
> + } else {
> + this.selects[i].options[j].selected =
> (this.selects[i].options[j].value == filter);
> + }
> }
> }
> }
> @@ -649,7 +650,7 @@
> // Ignore filters with blank value
> if (!filters[i].value.blank()) {
> if ((filters[i].type != "radio" && filters[i].type != "checkbox") ||
> filters[i].checked) {
> - result += ("&" + filters[i].name + "=" +
> encodeURIComponent(filters[i].value));
> + result += ("&" + filters[i].serialize());
> }
> }
> }
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs