1 openerp.base.data_import = function(openerp) {
2 openerp.base.DataImport = openerp.base.Dialog.extend({
3 init: function(parent, dataset){
5 this.dataset = dataset;
10 self.template = 'ImportDataView';
11 self.dialog_title = "Import Data"
18 "Close" : function() {
21 "Import File" : function() {
25 close: function(event, ui){ self.stop();}
27 this.$element.find('#csvfile').change(this.on_autodetect_data);
28 this.$element.find('fieldset').change(this.on_autodetect_data);
29 this.$element.find('fieldset legend').click(function () {
30 $(this).next().toggle();
33 do_import: function() {
35 if(!this.$element.find('#csvfile').val()) { return; }
36 this.$element.find('#import_data').attr({
37 'action': '/base/import/import_data'
39 success: this.import_results
42 on_autodetect_data: function() {
44 if(this.$element.find("#res td")){
45 this.$element.find("#res td").remove();
46 this.$element.find("#imported_success").css('display','none');
48 if(!this.$element.find('#csvfile').val()) { return; }
49 this.$element.find('#import_data').attr({
50 'action': '/base/import/detect_data'
52 success: this.import_results
55 import_results:function(res){
56 $('#result, #success').empty();
58 var results = $.parseJSON(res);
59 var result_node = $("#result");
60 if (results['records']){
61 records = {'header':results['header'],'sel':results['all_fields'],'row':results['records']};
62 result_node.append(QWeb.render('ImportView-result',{'records':records}));
63 }else if(results['error']){
64 result_node.append(QWeb.render('ImportView-result',{'error': results['error']}));
65 }else if(results['success']){
66 var success_node = $("#success");
67 success_node.append(QWeb.render('ImportView-result',{'success': results['success']}));
70 $("td #sel_field").click(function(){
72 $("td #sel_field option:selected").each(function(){
73 mm.push($(this).index());
76 $("td #sel_field").change(function(){
77 $(this).css('background-color','');
78 var kk = this.selectedIndex;
79 if ($.inArray(kk,mm) > -1){
80 $(this).css('background-color','#FF6666');
82 $(this).css('background-color','');
87 $(this.$dialog).remove();