summaryrefslogtreecommitdiff
path: root/addons/web
diff options
context:
space:
mode:
authorKunal Chavda (OpenERP) <kch@tinyerp.com>2011-09-15 12:17:53 +0530
committerKunal Chavda (OpenERP) <kch@tinyerp.com>2011-09-15 12:17:53 +0530
commit4eb0672324b905d4e6f43eb194b7c85e8043d856 (patch)
treee4948a8b88e935435207cf19cd2f35de05e008cd /addons/web
parentd7c967689a7372772f1fe67415e2149a1d3f1aae (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')
-rw-r--r--addons/web/static/src/css/data_import.css6
-rw-r--r--addons/web/static/src/js/data_import.js56
-rw-r--r--addons/web/static/src/xml/base.xml3
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>