diff options
| author | Kunal Chavda (OpenERP) <kch@tinyerp.com> | 2011-09-15 12:17:53 +0530 |
|---|---|---|
| committer | Kunal Chavda (OpenERP) <kch@tinyerp.com> | 2011-09-15 12:17:53 +0530 |
| commit | 4eb0672324b905d4e6f43eb194b7c85e8043d856 (patch) | |
| tree | e4948a8b88e935435207cf19cd2f35de05e008cd /addons/web/static | |
| parent | d7c967689a7372772f1fe67415e2149a1d3f1aae (diff) | |
[FIX]Fixed code for select same column or imported file has same column its shows message and field will red coloration.
bzr revid: kch@tinyerp.com-20110915064753-mij2danikyv9iouh
Diffstat (limited to 'addons/web/static')
| -rw-r--r-- | addons/web/static/src/css/data_import.css | 6 | ||||
| -rw-r--r-- | addons/web/static/src/js/data_import.js | 56 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 3 |
3 files changed, 44 insertions, 21 deletions
diff --git a/addons/web/static/src/css/data_import.css b/addons/web/static/src/css/data_import.css index 65f2e0b258b..7ae13fcf5ee 100644 --- a/addons/web/static/src/css/data_import.css +++ b/addons/web/static/src/css/data_import.css @@ -16,4 +16,10 @@ border-bottom-width: 1px; margin: 6px 4px 6px 1px; height: 20px; +} +.openerp .duplicate_fld{ + background-color:#FF6666; +} +.openerp .select_fld{ + background: none repeat scroll 0 0 white; }
\ No newline at end of file diff --git a/addons/web/static/src/js/data_import.js b/addons/web/static/src/js/data_import.js index 11e62983c47..a9daca20373 100644 --- a/addons/web/static/src/js/data_import.js +++ b/addons/web/static/src/js/data_import.js @@ -75,8 +75,7 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ }, on_import_results:function(results){ var self = this; - this.$element.find('#result, #success , #message').empty(); - + this.$element.find('#result, #success').empty(); var result_node = $("#result"); var records = {}; @@ -92,44 +91,63 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ } } this.do_check_req_field(results['req_field']); - var selected_fields = []; + var selected_fields; this.$element.find("td #sel_field").click(function(){ - selected_fields = []; - self.$element.find("td #sel_field option:selected").each(function(){ - selected_fields.push($(this).index()); + selected_fields = _.map(self.$element.find("td #sel_field"), function(field){ + return field.selectedIndex }); }); + this.on_change_check(selected_fields,results['req_field']); this.$element.find("td #sel_field").change(function(){ - self.$element.find("#message").empty(); - self.$element.find("td #sel_field").css('background-color',''); - self.$element.find(".ui-button-text:contains('Import File')").parent().attr("disabled",false); - self.do_check_req_field(results['req_field']); - var curr_selected = this.selectedIndex; - if ((curr_selected != 0) && _.contains(selected_fields, curr_selected)){ - $(this).css('background-color','#FF6666'); - $("#message").append("*Selected column should not be same."); + self.on_change_check(selected_fields,results['req_field']); + }); + }, + on_change_check:function(selected_fields,req_field){ + var self = this; + self.$element.find("#message, #msg").remove(); + var duplicate_flds = self.$element.find("td #sel_field option:selected"); + _.each(duplicate_flds,function(fld){ + if (fld.index != 0){ + var res = self.$element.find("td #sel_field option:selected[value='"+ fld.value +"']"); + if (res.length == 1){ + res.parent().removeClass("duplicate_fld"); + res.parent().addClass("select_fld"); + }else if(res.length > 1){ + res.parent().removeClass("select_fld"); + res.parent().addClass("duplicate_fld"); + res.parent().focus(); + } + }else{ + var elem = self.$element.find("td #sel_field option:selected[value='"+ fld.value +"']"); + elem.parent().removeClass("duplicate_fld"); + elem.parent().addClass("select_fld"); + } + }); + if(self.$element.find(".duplicate_fld").length){ + $("#result").before('<div id="msg" style="color:red">*Selected column should not be same.</div>'); $(".ui-button-text:contains('Import File')").parent().attr("disabled",true); }else{ - $(this).css('background-color',''); + self.$element.find("#msg").remove(); $(".ui-button-text:contains('Import File')").parent().attr("disabled",false); } - }); + self.do_check_req_field(req_field); + }, do_check_req_field: function(req_fld){ var self = this; if (req_fld.length){ + self.$element.find("#message").remove(); var sel_fields = _.map(this.$element.find("td #sel_field option:selected"), function(fld){ return fld['text'] }); - var required_fields = _.filter(req_fld, function(fld){ return !_.contains(sel_fields, fld) }); - if (required_fields.length){ - $("#message").append("*Required Fields are not selected which is "+required_fields+". "); + $("#result").before('<div id="message" style="color:red">*Required Fields are not selected which is '+required_fields+'.</div>'); $(".ui-button-text:contains('Import File')").parent().attr("disabled",true); }else{ + self.$element.find("#message").remove(); $(".ui-button-text:contains('Import File')").parent().attr("disabled",false); } } diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index e103ea0dd43..238edbedb62 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1399,7 +1399,6 @@ </tr> <tr> <td width="100%" colspan="4"> - <div id="message" style="color:red"></div> <div id="result"></div> </td> </tr> @@ -1447,7 +1446,7 @@ </tr> <tr t-if="record=='sel'"> <td t-foreach="records.header" t-as="header"> - <select id="sel_field"> + <select id="sel_field" class="select_fld"> <option selected="selected" value=""></option> <option t-foreach="records.sel" t-as="selection" t-att="{'selected': header[0] === selection ? 'selected' : null}" t-att-value="selection"><t t-esc="selection"/></option> |
