diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js index 841ca4ba81c..f4d322542c8 100644 --- a/addons/web/static/src/js/view_editor.js +++ b/addons/web/static/src/js/view_editor.js @@ -83,16 +83,32 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ buttons: { "Save": function(){ var view_values = {}; + var warn = false; _.each(self.create_view_widget, function(widget) { + if (widget.invalid) { + warn = true + return false; + }; if (widget.dirty && !widget.invalid) { view_values[widget.name] = widget.get_value(); } }); - $.when(self.do_save_view(view_values)).then(function() { - self.create_view_dialog.close(); - var controller = self.action_manager.inner_viewmanager.views[self.action_manager.inner_viewmanager.active_view].controller; - controller.reload_content(); - }); + if (warn) { + var msg = ""; + self.do_warn("The following fields are invalid :", msg); + } else { + $.when(self.do_save_view(view_values)).then(function() { + self.create_view_dialog.close(); + var controller = self.action_manager.inner_viewmanager.views[self.action_manager.inner_viewmanager.active_view].controller; + controller.reload_content(); + }); + } }, "Cancel": function(){ self.create_view_dialog.close(); @@ -100,9 +116,9 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ } }); this.create_view_dialog.start().open(); - var view_widget = [{'name': 'view_name', 'type': 'char', 'required': true, 'value' : this.model + '.custom_' + Math.round(Math.random() * 1000)}, - {'name': 'view_type', 'type': 'selection', 'required': true, 'value': 'Form', 'selection': [['',''],['tree', 'Tree'],['form', 'Form'],['graph', 'Graph'],['calendar', 'Calender']]}, - {'name': 'pririty', 'type': 'char', 'required': true, 'value':'16'}]; + var view_widget = [{'name': 'view_name', 'string':'View Name', 'type': 'char', 'required': true, 'value' : this.model + '.custom_' + Math.round(Math.random() * 1000)}, + {'name': 'view_type', 'string': 'View Type', 'type': 'selection', 'required': true, 'value': 'Form', 'selection': [['',''],['tree', 'Tree'],['form', 'Form'],['graph', 'Graph'],['calendar', 'Calender']]}, + {'name': 'proirity', 'string': 'Priority', 'type': 'char', 'required': true, 'value':'16'}]; this.create_view_dialog.$element.append('
'); this.create_view_widget = []; _.each(view_widget, function(widget) { @@ -111,7 +127,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ type_widget.selection = widget.selection; } type_widget.required = widget.required; - self.create_view_dialog.$element.find('table[id=create_view]').append('' + widget.name + ':' + type_widget.render()+''); + self.create_view_dialog.$element.find('table[id=create_view]').append('' + widget.string + ':' + type_widget.render()+''); var value = null; if (widget.value) { value = [widget.name, widget.value];