Author: bleny Date: 2014-06-10 17:10:23 +0200 (Tue, 10 Jun 2014) New Revision: 2020 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2020 Log: prevent editing multiple fields at the same time in filters Modified: trunk/wao-web/src/main/webapp/wao.js Modified: trunk/wao-web/src/main/webapp/wao.js =================================================================== --- trunk/wao-web/src/main/webapp/wao.js 2014-06-10 14:31:39 UTC (rev 2019) +++ trunk/wao-web/src/main/webapp/wao.js 2014-06-10 15:10:23 UTC (rev 2020) @@ -281,6 +281,7 @@ this.model = new FilterModel2(filterMappings, filter, filterValuesUrl); this.view = new FilterView2(this.model, $filtersForm); + this.oneFilterControllers = []; this.init = function () { @@ -289,8 +290,9 @@ $.each(this.model.filterMappings, function (index, filterMapping) { - var oneFilterController = new OneFilterController(filterMapping, self.model); + var oneFilterController = new OneFilterController(filterMapping, self.model, self); oneFilterController.init(); + self.oneFilterControllers.push(oneFilterController); self.view.$filtersForm.append(oneFilterController.view.$container); @@ -308,6 +310,14 @@ }; + this.onOpen = function (openedOneFilterController) { + $.each(this.oneFilterControllers, function (index, oneFilterController) { + if (oneFilterController != openedOneFilterController) { + oneFilterController.close(); + } + }); + } + }; var OneFilterModel = function (filterMapping, filterModel) { @@ -480,12 +490,13 @@ }; -var OneFilterController = function (filterMapping, filterModel) { +var OneFilterController = function (filterMapping, filterModel, filterController) { var self = this; this.model = new OneFilterModel(filterMapping, filterModel); this.view = new OneFilterView(this.model); + this.filterController = filterController; this.init = function () { @@ -514,10 +525,11 @@ }; this.open = function () { + this.filterController.onOpen(this); this.model.updateOptions(); this.view.show(); this.view.lockSelection(); - } + }; this.close = function () { this.view.updateSelectedOptions();