diff --git a/app_ui_enhance/static/src/js/pivot.js b/app_ui_enhance/static/src/js/pivot.js index a8102fbc..f98ce534 100644 --- a/app_ui_enhance/static/src/js/pivot.js +++ b/app_ui_enhance/static/src/js/pivot.js @@ -67,35 +67,7 @@ PivotView.include({ format : time.strftime_to_moment_format(l10n.date_format), } - // Dropdown list - - $(QWeb.render("TGL.TreeSearch.Placeholder", {})).appendTo($node); - - _.each(ts_context, function(item){ - var field = _.find(self.fields, function(value, key, list){ - return value.type == 'many2one' && value.relation && key === item.name; - }); - - if (field) { - self.ts_fields.push(item.name); - - new Model(field.relation).query(['id', 'display_name']).filter(new data.CompoundDomain(item.domain, field.domain)).context(new data.CompoundContext()).order_by('app_sequence').all().then(function (result) { - var $multi_search = $(QWeb.render("TGL.TreeSearch.Item", {'widget': { - 'string': item.string, - 'key': item.name, - 'class_name': 'app_multi_item_' + item.name, - 'fields': result, - }})) - - $multi_search.find('li').click(self.tgl_on_button_click.bind(self)); - - setTimeout(function(){ - $multi_search.appendTo($('.treesearch_placeholder')); - }, 2000); - }); - } - }); - // self.$buttons.find('.app-search').remove(); + $(QWeb.render("odooApp.TreeSearch.Placeholder", {})).appendTo($node); var date_fields = []; // 增加参数控制app_ui_show_search_date @@ -108,21 +80,18 @@ PivotView.include({ }); if (date_fields.length > 0) { - self.$search_button = $(QWeb.render('odooApp.buttons', {'date_fields': date_fields})) - self.$search_button.find('.app_start_date').datetimepicker(datepickers_options); - self.$search_button.find('.app_end_date').datetimepicker(datepickers_options); - self.$search_button.find('.app_start_date').on('change', function () { - self.tgl_search(); + self.$search_date = $(QWeb.render('odooApp.SearchDate', {'date_fields': date_fields})) + self.$search_date.find('.app_start_date').datetimepicker(datepickers_options); + self.$search_date.find('.app_end_date').datetimepicker(datepickers_options); + + self.$search_date.find('.app_start_date').on('keypress', function (e) { + self.do_keypress(e); }); - self.$search_button.find('.app_end_date').on('change', function () { - self.tgl_search(); + self.$search_date.find('.app_end_date').on('keypress', function (e) { + self.do_keypress(e); }); - self.$search_button.find('.app_select_field').on('change', function () { - self.tgl_search(); - }); - setTimeout(function () { - self.$search_button.insertBefore($('.treesearch_placeholder')); - }, 500); + self.$search_date.appendTo($('.o_cp_buttons')); + self.set_search_btn(1); } } }); @@ -140,23 +109,38 @@ PivotView.include({ }); if (number_fields.length > 0) { - self.$search_range = $(QWeb.render('odooApp.SearchRange', {'number_fields': number_fields})) - self.$search_range.find('.app_select_range_field').on('change', function () { - self.tgl_search(); + self.$search_number = $(QWeb.render('odooApp.SearchNumber', {'number_fields': number_fields})) + + self.$search_number.find('.app_start_number').on('keypress', function (e) { + self.do_keypress(e); }); - self.$search_range.find('.app_start_range').on('change', function () { - self.tgl_search(); + self.$search_number.find('.app_end_number').on('keypress', function (e) { + self.do_keypress(e); }); - self.$search_range.find('.app_end_range').on('change', function () { - self.tgl_search(); - }); - setTimeout(function () { - self.$search_range.insertBefore($('.treesearch_placeholder')); - }, 500); + self.$search_number.appendTo($('.o_cp_buttons')); + self.set_search_btn(1); } } }); - }, + + //显示搜索键,因为pivot特殊,故要单独处理 + }, + + set_search_btn: function (show) { + var self = this; + if (self.$search_btn) { + self.$search_btn.remove(); + } + if (show) { + self.$search_btn = $(QWeb.render("odooApp.odooapp-btn", {})).appendTo($('.o_cp_buttons')); + self.$search_btn.children('.odooapp-search-btn').on('click', function () { + self.tgl_search(); + }); + self.$search_btn.children('.odooapp-clear-btn').on('click', function () { + self.do_clear(); + }); + } + }, do_search: function(domain, context, group_by) { var self = this; @@ -167,6 +151,26 @@ PivotView.include({ return self.tgl_search(); }, + do_keypress: function(e) { + var self = this; + var keynum = window.event ? e.keyCode : e.which; + if (keynum==13) + return self.tgl_search(); + }, + + do_clear: function() { + var self = this; + if (self.$search_date) { + self.$search_date.find('.app_start_date').val(''); + self.$search_date.find('.app_end_date').val(''); + } + if (self.$search_number) { + self.$search_number.find('.app_start_number').val(''); + self.$search_number.find('.app_end_number').val(''); + } + return self.tgl_search(); + }, + tgl_search: function() { var self = this; var domain = [], value, value_tmp; @@ -191,10 +195,10 @@ PivotView.include({ }); // 注意,date和datetime型的处理是不同的,已处理完 - if (self.$search_button) { - var start_date = self.$search_button.find('.app_start_date').val(), - end_date = self.$search_button.find('.app_end_date').val(), - field = self.$search_button.find('.app_select_field').val(), + if (self.$search_date) { + var start_date = self.$search_date.find('.app_start_date').val(), + end_date = self.$search_date.find('.app_end_date').val(), + field = self.$search_date.find('.app_select_field').val(), field_type = 'datetime'; var tz = session.user_context.tz, start_utc, @@ -233,10 +237,10 @@ PivotView.include({ } } - if (self.$search_range) { - var start_range = self.$search_range.find('.app_start_range').val(), - end_range = self.$search_range.find('.app_end_range').val(), - range_field = self.$search_range.find('.app_select_range_field').val(); + if (self.$search_number) { + var start_range = self.$search_number.find('.app_start_number').val(), + end_range = self.$search_number.find('.app_end_number').val(), + range_field = self.$search_number.find('.app_select_range_field').val(); if (start_range) { domain.push([range_field, '>=', parseInt(start_range)]); diff --git a/app_ui_enhance/static/src/js/tree.js b/app_ui_enhance/static/src/js/tree.js index 37f45170..ce587996 100644 --- a/app_ui_enhance/static/src/js/tree.js +++ b/app_ui_enhance/static/src/js/tree.js @@ -78,22 +78,18 @@ ListView.include({ } }); if (date_fields.length > 0) { - self.$search_button = $(QWeb.render('odooApp.buttons', {'date_fields': date_fields})) - self.$search_button.find('.app_start_date').datetimepicker(datepickers_options); - self.$search_button.find('.app_end_date').datetimepicker(datepickers_options); - // self.$search_button.find('.app_search_date_rate').click(function() { - // self.tgl_search(); - // }); - self.$search_button.find('.app_start_date').on('change', function () { - self.tgl_search(); + self.$search_date = $(QWeb.render('odooApp.SearchDate', {'date_fields': date_fields})) + self.$search_date.find('.app_start_date').datetimepicker(datepickers_options); + self.$search_date.find('.app_end_date').datetimepicker(datepickers_options); + + self.$search_date.find('.app_start_date').on('keypress', function (e) { + self.do_keypress(e); }); - self.$search_button.find('.app_end_date').on('change', function () { - self.tgl_search(); + self.$search_date.find('.app_end_date').on('keypress', function (e) { + self.do_keypress(e); }); - self.$search_button.find('.app_select_field').on('change', function () { - self.tgl_search(); - }); - self.$search_button.appendTo(self.$buttons); + self.$search_date.appendTo(self.$buttons); + self.set_search_btn(1); } } }); @@ -116,63 +112,36 @@ ListView.include({ } } if (number_fields.length > 0) { - self.$search_range = $(QWeb.render('odooApp.SearchRange', {'number_fields': number_fields})) - // self.$search_range.find('.app_search_date_range').click(function() { - // self.tgl_search(); - // }); - self.$search_range.find('.app_select_range_field').on('change', function () { - self.tgl_search(); + self.$search_number = $(QWeb.render('odooApp.SearchNumber', {'number_fields': number_fields})) + + self.$search_number.find('.app_start_number').on('keypress', function (e) { + self.do_keypress(e); }); - self.$search_range.find('.app_start_range').on('change', function () { - self.tgl_search(); + self.$search_number.find('.app_end_number').on('keypress', function (e) { + self.do_keypress(e); }); - self.$search_range.find('.app_end_range').on('change', function () { - self.tgl_search(); - }); - self.$search_range.appendTo(self.$buttons); + self.$search_number.appendTo(self.$buttons); + self.set_search_btn(1); } } }); + }, - // Dropdown list - _.each(this.ts_context, function(item){ - var field = _.find(self.columns, function(column){ - return column.type == 'many2one' && column.relation && column.name === item.name; + set_search_btn: function (show) { + var self = this; + if (self.$search_btn) { + self.$search_btn.remove(); + } + if (show) { + self.$search_btn = $(QWeb.render("odooApp.odooapp-btn", {})).appendTo(self.$buttons); + self.$search_btn.children('.odooapp-search-btn').on('click', function () { + self.tgl_search(); }); - if (field) { - self.ts_fields.push(item.name); - new Model(field.relation).query(['id', 'display_name']).filter(new data.CompoundDomain(item.domain, field.domain)).context(new data.CompoundContext()).all().then(function (result) { - // var single_search = $(QWeb.render('odooApp.selection', { - // 'string': item.string, - // 'class_name': 'app_item_' + item.name, - // 'fields': result, - // })); - if (!$('.after_control_panel').length) { - // $(QWeb.render('odooApp.after_control_panel', {})).appendTo($('.o_control_panel')); - // $(QWeb.render('odooApp.after_control_panel', {})).appendTo($('.o_cp_left')); - - // $(QWeb.render('odooApp.after_control_panel', {})).appendTo(self.$buttons); - - var multi_search = $(QWeb.render("TGL.TreeSearch.Item", {'widget': { - 'string': item.string, - 'key': item.name, - 'class_name': 'app_multi_item_' + item.name, - 'fields': result, - }})) - - multi_search.find('li').click(self.on_button_click.bind(self)); - multi_search.appendTo(self.$buttons); - } - // single_search.appendTo($('.after_control_panel')); - // $('.app_item_' + item.name).on('change', function() { - // self.tgl_search(); - // }) - }); - } - }); - - - }, + self.$search_btn.children('.odooapp-clear-btn').on('click', function () { + self.do_clear(); + }); + } + }, do_search: function(domain, context, group_by) { var self = this; @@ -183,6 +152,26 @@ ListView.include({ return self.tgl_search(); }, + do_keypress: function(e) { + var self = this; + var keynum = window.event ? e.keyCode : e.which; + if (keynum==13) + return self.tgl_search(); + }, + + do_clear: function() { + var self = this; + if (self.$search_date) { + self.$search_date.find('.app_start_date').val(''); + self.$search_date.find('.app_end_date').val(''); + } + if (self.$search_number) { + self.$search_number.find('.app_start_number').val(''); + self.$search_number.find('.app_end_number').val(''); + } + return self.tgl_search(); + }, + tgl_search: function() { var self = this; var domain = [], value, value_tmp; @@ -206,10 +195,10 @@ ListView.include({ } }); // 注意,date和datetime型的处理是不同的,已处理完 - if (self.$search_button) { - var start_date = self.$search_button.find('.app_start_date').val(), - end_date = self.$search_button.find('.app_end_date').val(), - field = self.$search_button.find('.app_select_field').val(), + if (self.$search_date) { + var start_date = self.$search_date.find('.app_start_date').val(), + end_date = self.$search_date.find('.app_end_date').val(), + field = self.$search_date.find('.app_select_field').val(), field_type = 'datetime'; var tz = session.user_context.tz, start_utc, @@ -248,10 +237,10 @@ ListView.include({ } } - if (self.$search_range) { - var start_range = self.$search_range.find('.app_start_range').val(), - end_range = self.$search_range.find('.app_end_range').val(), - range_field = self.$search_range.find('.app_select_range_field').val(); + if (self.$search_number) { + var start_range = self.$search_number.find('.app_start_number').val(), + end_range = self.$search_number.find('.app_end_number').val(), + range_field = self.$search_number.find('.app_select_range_field').val(); if (start_range) { domain.push([range_field, '>=', parseInt(start_range)]); diff --git a/app_ui_enhance/static/src/xml/pivot_view.xml b/app_ui_enhance/static/src/xml/pivot_view.xml index 4ba3d0c3..cacd5853 100644 --- a/app_ui_enhance/static/src/xml/pivot_view.xml +++ b/app_ui_enhance/static/src/xml/pivot_view.xml @@ -1,10 +1,10 @@ - +