From bd579db4992d85a1dc4924d58dafd585deb8ff40 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Tue, 10 Apr 2012 01:36:15 +0200 Subject: [PATCH] form ro by default fix namespace bzr revid: al@openerp.com-20120409233615-u13xttozjdmzqqcr --- addons/web/static/src/css/base.css | 109 ++++------------------ addons/web/static/src/js/view_form.js | 59 ++++++------ addons/web_kanban/static/src/js/kanban.js | 2 +- 3 files changed, 53 insertions(+), 117 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 79449db568e..5dd481c0b04 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -831,12 +831,11 @@ text-decoration: none; } .openerp2 .oe-view-manager-header .button-group .active { + width: 100%; background: #999999; -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; -} -.openerp2 .oe-view-manager-header .button-group .active a { color: white; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); } @@ -928,78 +927,30 @@ .openerp2 .oe_view_manager_header .oe_view_manager_pager { float: right; } -.openerp2 .oe_view_manager_switch { - float: right; - margin: 2px 0 0 0; +.openerp2 .oe_view_manager_switch li { + padding-left: 1px; + text-align: center; + width: 24px; + height: 24px; + line-height: 24px; } -.openerp2 .oe_view_manager_switch .oe_vm_switch_form, -.openerp2 .oe_view_manager_switch .oe_vm_switch_page, -.openerp2 .oe_view_manager_switch .oe_vm_switch_tree, -.openerp2 .oe_view_manager_switch .oe_vm_switch_list, -.openerp2 .oe_view_manager_switch .oe_vm_switch_graph, -.openerp2 .oe_view_manager_switch .oe_vm_switch_gantt, -.openerp2 .oe_view_manager_switch .oe_vm_switch_calendar, -.openerp2 .oe_view_manager_switch .oe_vm_switch_kanban, -.openerp2 .oe_view_manager_switch .oe_vm_switch_diagram { - background: url("/web/static/src/img/views-icons-a.png") repeat-x scroll left top transparent; - overflow: hidden; - width: 22px; - height: 21px; - border: none; - background-position: 0px 0px; +.openerp2 .oe_view_manager_switch .oe_vm_switch_list:after, .openerp2 .oe_view_manager_switch .oe_vm_switch_tree:after { + content: "ö"; } -.openerp2 .oe_view_manager_switch .oe_vm_switch_form span, -.openerp2 .oe_view_manager_switch .oe_vm_switch_page span, -.openerp2 .oe_view_manager_switch .oe_vm_switch_tree span, -.openerp2 .oe_view_manager_switch .oe_vm_switch_list span, -.openerp2 .oe_view_manager_switch .oe_vm_switch_graph span, -.openerp2 .oe_view_manager_switch .oe_vm_switch_gantt span, -.openerp2 .oe_view_manager_switch .oe_vm_switch_calendar span, -.openerp2 .oe_view_manager_switch .oe_vm_switch_kanban span, -.openerp2 .oe_view_manager_switch .oe_vm_switch_diagram span { - display: none; +.openerp2 .oe_view_manager_switch .oe_vm_switch_graph:after { + content: "ó"; } -.openerp2 .oe_view_manager_switch .oe_vm_switch_list, .openerp2 .oe_view_manager_switch .oe_vm_switch_tree { - background-position: 0px 0px; +.openerp2 .oe_view_manager_switch .oe_vm_switch_gantt:after { + content: "y"; } -.openerp2 .oe_view_manager_switch .oe_vm_switch_list:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_list:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_list:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_list.oe_view_manager_switch_selected, .openerp2 .oe_view_manager_switch .oe_vm_switch_tree:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_tree:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_tree:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_tree.oe_view_manager_switch_selected { - background-position: 0px -21px; +.openerp2 .oe_view_manager_switch .oe_vm_switch_calendar:after { + content: "b"; } -.openerp2 .oe_view_manager_switch .oe_vm_switch_form, .openerp2 .oe_view_manager_switch .oe_vm_switch_page { - background-position: -22px 0px; +.openerp2 .oe_view_manager_switch .oe_vm_switch_kanban:after { + content: "ó"; } -.openerp2 .oe_view_manager_switch .oe_vm_switch_form:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_form:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_form:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_form.oe_view_manager_switch_selected, .openerp2 .oe_view_manager_switch .oe_vm_switch_page:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_page:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_page:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_page.oe_view_manager_switch_selected { - background-position: -22px -21px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_graph { - background-position: -44px 0px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_graph:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_graph:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_graph:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_graph.oe_view_manager_switch_selected { - background-position: -44px -21px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_gantt { - background-position: -66px 0px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_gantt:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_gantt:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_gantt:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_gantt.oe_view_manager_switch_selected { - background-position: -66px -21px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_calendar { - background-position: -88px 0px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_calendar:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_calendar:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_calendar:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_calendar.oe_view_manager_switch_selected { - background-position: -88px -21px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_kanban { - background-position: -110px 0px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_kanban:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_kanban:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_kanban:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_kanban.oe_view_manager_switch_selected { - background-position: -110px -21px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_diagram { - background-position: 0px 0px; -} -.openerp2 .oe_view_manager_switch .oe_vm_switch_diagram:active, .openerp2 .oe_view_manager_switch .oe_vm_switch_diagram:hover, .openerp2 .oe_view_manager_switch .oe_vm_switch_diagram:focus, .openerp2 .oe_view_manager_switch .oe_vm_switch_diagram.oe_view_manager_switch_selected { - background-position: 0px -21px; +.openerp2 .oe_view_manager_switch .oe_vm_switch_diagram:after { + content: "}"; } .openerp2 .oe_form_dropdown_section { position: relative; @@ -1606,28 +1557,6 @@ .openerp2 .oe_form .oe_form_field_progressbar.ui-progressbar .ui-widget-header { background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; } -.openerp2 .oe_form .oe_form_field_progressbar.ui-progressbar { - height: 22px; - font-size: 10px; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #999999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: white; - min-width: 90px; -} -.openerp2 .oe_form .oe_form_field_progressbar.ui-progressbar span { - position: absolute; - margin-left: 10px; - font-weight: bold; -} -.openerp2 .oe_form .oe_form_field_progressbar.ui-progressbar .ui-widget-header { - background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; -} .openerp2 .oe_form .oe_view_manager_row:first-child { display: none; } diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 038275a59aa..ae4b69a7b69 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1,9 +1,11 @@ openerp.web.form = function (openerp) { - var _t = openerp.web._t, _lt = openerp.web._lt; var QWeb = openerp.web.qweb; +/** @namespace */ +openerp.web.form = {}; + openerp.web.views.add('form', 'openerp.web.FormView'); openerp.web.FormView = openerp.web.View.extend({ /** @@ -49,7 +51,8 @@ openerp.web.FormView = openerp.web.View.extend({ this.mutating_mutex = new $.Mutex(); this.on_change_mutex = new $.Mutex(); this.reload_mutex = new $.Mutex(); - this.rendering_engine = new openerp.web.FormRenderingEngine(this); + this.mode = null; + this.rendering_engine = new openerp.web.form.FormRenderingEngineReadonly(this); }, destroy: function() { _.each(this.get_widgets(), function(w) { @@ -103,6 +106,7 @@ openerp.web.FormView = openerp.web.View.extend({ } }]); } + this.do_switch_mode("view"); this.has_been_loaded.resolve(); return $.when(); }, @@ -432,31 +436,30 @@ openerp.web.FormView = openerp.web.View.extend({ }, do_switch_mode: function(mode) { var self = this; - if(mode) { - self.$buttons.find('.oe_form_buttons_edit').show(); - self.$buttons.find('.oe_form_buttons_view').hide(); - _.each(this.fields,function(field){ - field.set({"force_readonly": false}); - }); - } else { + if(mode=="view") { self.$buttons.find('.oe_form_buttons_edit').hide(); self.$buttons.find('.oe_form_buttons_view').show(); _.each(this.fields,function(field){ field.set({"force_readonly": true}); }); + } else { + self.$buttons.find('.oe_form_buttons_edit').show(); + self.$buttons.find('.oe_form_buttons_view').hide(); + _.each(this.fields,function(field){ + field.set({"force_readonly": false}); + }); } + self.mode = mode; }, on_button_save: function() { var self = this; return this.do_save().then(function(result) { - self.do_switch_mode(0); - self.do_prev_view({'created': result.created, 'default': 'form'}); + self.do_switch_mode("view"); }); }, on_button_cancel: function() { if (this.can_be_discarded()) { - this.do_switch_mode(0); - return this.do_prev_view({'default': 'form'}); + this.do_switch_mode("view"); } }, on_button_new: function() { @@ -479,11 +482,12 @@ openerp.web.FormView = openerp.web.View.extend({ return def.promise(); }, on_button_edit: function() { - return this.do_switch_mode(1); + return this.do_switch_mode("edit"); }, on_button_create: function() { this.dataset.index = null; - return this.do_switch_mode(1); + this.do_switch_mode("edit"); + this.do_show(); }, on_button_duplicate: function() { var self = this; @@ -637,10 +641,10 @@ openerp.web.FormView = openerp.web.View.extend({ reload: function() { var self = this; return this.reload_mutex.exec(function() { - //if (this.dataset.index == null) { - // this.do_prev_view(); - // return $.Deferred().reject().promise(); - //} + if (this.dataset.index == null) { + this.do_prev_view(); + return $.Deferred().reject().promise(); + } if (self.dataset.index == null || self.dataset.index < 0) { return $.when(self.on_button_new()); } else { @@ -779,7 +783,7 @@ openerp.web.FormView = openerp.web.View.extend({ /** * Interface to be implemented by rendering engines for the form view. */ -openerp.web.FormRenderingEngineInterface = { +openerp.web.form.FormRenderingEngineInterface = { set_fields_view: function(fields_view) {}, render_to: function($element) {}, }; @@ -789,7 +793,7 @@ openerp.web.FormRenderingEngineInterface = { * * It is necessary to set the view using set_view() before usage. */ -openerp.web.FormRenderingEngine = openerp.web.Class.extend({ +openerp.web.form.FormRenderingEngine = openerp.web.Class.extend({ init: function(view) { this.view = view; this.legacy_mode = false; @@ -1104,7 +1108,13 @@ openerp.web.FormRenderingEngine = openerp.web.Class.extend({ }, }); -openerp.web.FormDialog = openerp.web.Dialog.extend({ +openerp.web.form.FormRenderingEngineReadonly = openerp.web.form.FormRenderingEngine.extend({ + alter_field: function(field) { + field.set({"force_readonly": true}); + }, +}); + +openerp.web.form.FormDialog = openerp.web.Dialog.extend({ init: function(parent, options, view_id, dataset) { this._super(parent, options); this.dataset = dataset; @@ -1135,15 +1145,12 @@ openerp.web.FormDialog = openerp.web.Dialog.extend({ } }); -/** @namespace */ -openerp.web.form = {}; -openerp.web.form.SidebarAttachments = openerp.web.OldWidget.extend({ +openerp.web.form.SidebarAttachments = openerp.web.Widget.extend({ init: function(parent, form_view) { //var $section = parent.add_section(_t('Attachments'), 'attachments'); //this.$div = $('
'); //$section.append(this.$div); - this._super(parent); this.view = form_view; }, diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index ec7cb637c0d..3bfdfb8f450 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -23,7 +23,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ records : {} }; this.groups = []; - this.form_dialog = new openerp.web.FormDialog(this, {}, this.options.action_views_ids.form, dataset).start(); + this.form_dialog = new openerp.web.form.FormDialog(this, {}, this.options.action_views_ids.form, dataset).start(); this.form_dialog.on_form_dialog_saved.add_last(this.do_reload); this.aggregates = {}; this.group_operators = ['avg', 'max', 'min', 'sum', 'count'];