diff options
| author | Kunal Chavda (OpenERP) <kch@tinyerp.com> | 2011-09-06 18:24:40 +0530 |
|---|---|---|
| committer | Kunal Chavda (OpenERP) <kch@tinyerp.com> | 2011-09-06 18:24:40 +0530 |
| commit | a9446c53f96bccaf3f8b3a759455ccb65c45efd4 (patch) | |
| tree | 0ad3e48ab90862c6387dcb464d2728fddf0bbcf7 /addons/web/static/src/js/data_import.js | |
| parent | 1127d2b3e33e012a681b93aaf506af0c698a6ad0 (diff) | |
| parent | fd6b4fde142ef971de1eb3daa72ef5a38e8a693c (diff) | |
[MERGE]Merge with trunk upto revision no 931.
bzr revid: kch@tinyerp.com-20110906125440-turixz49exf0po30
Diffstat (limited to 'addons/web/static/src/js/data_import.js')
| -rw-r--r-- | addons/web/static/src/js/data_import.js | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/addons/web/static/src/js/data_import.js b/addons/web/static/src/js/data_import.js new file mode 100644 index 00000000000..25dc6cae0aa --- /dev/null +++ b/addons/web/static/src/js/data_import.js @@ -0,0 +1,119 @@ +openerp.base.data_import = function(openerp) { +openerp.base.DataImport = openerp.base.Dialog.extend({ + init: function(parent, dataset){ + this.parent = parent; + this._super(parent); + this.dataset = dataset; + }, + start: function() { + var self = this; + self._super(false); + self.template = 'ImportDataView'; + self.dialog_title = "Import Data" + self.open({ + modal: true, + width: '70%', + height: 'auto', + position: 'top', + buttons : { + "Close" : function() { + self.stop(); + }, + "Import File" : function() { + self.do_import(); + } + }, + close: function(event, ui){ self.stop();} + }); + this.$element.find('#csvfile').change(this.on_autodetect_data); + this.$element.find('fieldset').change(this.on_autodetect_data); + this.$element.find('fieldset legend').click(function () { + $(this).next().toggle(); + }); + }, + do_import: function() { + var self = this; + if(!this.$element.find('#csvfile').val()) { return; } + this.$element.find('#import_data').attr({ + 'action': '/base/import/import_data' + }).ajaxSubmit({ + success: this.on_import_results + }); + }, + on_autodetect_data: function() { + var self = this; + if(this.$element.find("#res td")){ + this.$element.find("#res td").remove(); + this.$element.find("#imported_success").css('display','none'); + } + if(!this.$element.find('#csvfile').val()) { return; } + this.$element.find('#import_data').attr({ + 'action': '/base/import/detect_data' + }).ajaxSubmit({ + success: this.on_import_results + }); + }, + on_import_results:function(res){ + var self = this; + this.$element.find('#result, #success , #message').empty(); + + var results = $.parseJSON(res); + var result_node = $("#result"); + var records = {}; + + if (results['records']){ + records = {'header':results['header'],'sel':results['all_fields'],'row':results['records']}; + result_node.append(QWeb.render('ImportView-result',{'records':records})); + }else if(results['error']){ + result_node.append(QWeb.render('ImportView-result',{'error': results['error']})); + }else if(results['success']){ + self.stop(); + this.parent.reload_content(); + } + this.do_check_req_field(results['req_field']); + var selected_fields = []; + $("td #sel_field").click(function(){ + selected_fields = []; + $("td #sel_field option:selected").each(function(){ + selected_fields.push($(this).index()); + }); + }); + $("td #sel_field").change(function(){ + $("#message").empty(); + $("td #sel_field").css('background-color',''); + $(".ui-button-text:contains('Import File')").parent().attr("disabled",false); + self.do_check_req_field(results['req_field']); + var curr_selected = this.selectedIndex; + if ($.inArray(curr_selected,selected_fields) > -1){ + $(this).css('background-color','#FF6666'); + $("#message").append("*Selected column should not be same."); + $(".ui-button-text:contains('Import File')").parent().attr("disabled",true); + }else{ + $(this).css('background-color',''); + } + }); + }, + do_check_req_field: function(req_fld){ + if (req_fld.length){ + var sel_fields =[]; + var required_fields = []; + $("td #sel_field option:selected").each(function(){ + sel_fields.push($(this).val()); + }); + _.each(req_fld,function(fld){ + if ($.inArray(fld,sel_fields) <= -1){ + required_fields.push(fld); + } + }); + if (required_fields.length){ + $("#message").append("*Required Fields are not selected which is "+required_fields+". "); + $(".ui-button-text:contains('Import File')").parent().attr("disabled",true); + } + } + }, + stop: function() { + $(this.$dialog).remove(); + this._super(); + } +}); +};
\ No newline at end of file |
