diff options
| author | Antony Lesuisse <al@openerp.com> | 2012-04-09 22:53:34 +0200 |
|---|---|---|
| committer | Antony Lesuisse <al@openerp.com> | 2012-04-09 22:53:34 +0200 |
| commit | 77ec66a20ec0a453b4c62c82a0e226cdb02cede3 (patch) | |
| tree | f557064b0a652ab2be677561c984afaad6ed1427 /addons/web/static/src/js | |
| parent | db8a61ba9b8cb9a877f17d041d68ba817be99d4b (diff) | |
bye bye page view
bzr revid: al@openerp.com-20120409205334-tbgk3fz7q7q60o3t
Diffstat (limited to 'addons/web/static/src/js')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 67 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list.js | 17 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_page.js | 67 | ||||
| -rw-r--r-- | addons/web/static/src/js/views.js | 6 |
4 files changed, 76 insertions, 81 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index c4bac3c2cd1..3a5b387297a 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -80,6 +80,10 @@ openerp.web.FormView = openerp.web.View.extend({ this.$buttons.html(QWeb.render("FormView.buttons", {'widget':self})); this.$buttons.on('click','.oe_form_buttons button.oe_form_button_save',this.on_button_save); this.$buttons.on('click','.oe_form_buttons button.oe_form_button_cancel',this.on_button_cancel); + this.$buttons.on('click','.oe_form_buttons button.oe_form_button_edit',this.on_button_edit); + this.$buttons.on('click','.oe_form_buttons button.oe_form_button_create',this.on_button_create); + this.$buttons.on('click','.oe_form_buttons button.oe_form_button_duplicate',this.on_button_duplicate); + this.$buttons.on('click','.oe_form_buttons button.oe_form_button_delete',this.on_button_delete); this.$pager.html(QWeb.render("FormView.pager", {'widget':self})); this.$pager.on('click','.oe_form_pager button[data-pager-action]',function(event) { @@ -145,15 +149,15 @@ openerp.web.FormView = openerp.web.View.extend({ }); }, do_hide: function () { - //if (this.sidebar) { - // this.sidebar.$element.hide(); - //} - //if (this.$buttons) { - // this.$buttons.find('.oe_form_buttons').hide(); - //} - //if (this.$pager) { - // this.$pager.find('.oe_form_pager').hide(); - //} + if (this.sidebar) { + this.sidebar.$element.hide(); + } + if (this.$buttons) { + this.$buttons.find('.oe_form_buttons').hide(); + } + if (this.$pager) { + this.$pager.find('.oe_form_pager').hide(); + } this._super(); }, on_record_loaded: function(record) { @@ -427,6 +431,9 @@ openerp.web.FormView = openerp.web.View.extend({ return $.Deferred().reject(); } }, + do_switch_mode: function(mode) { + console.log("switch to",mode) + }, on_button_save: function() { var self = this; return this.do_save().then(function(result) { @@ -457,6 +464,44 @@ openerp.web.FormView = openerp.web.View.extend({ }); return def.promise(); }, + on_button_edit: function() { + return this.do_switch_mode(1); + }, + on_button_create: function() { + this.dataset.index = null; + return this.do_switch_mode(1); + }, + on_button_duplicate: function() { + var self = this; + var def = $.Deferred(); + $.when(this.has_been_loaded).then(function() { + self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) { + return self.on_created({ result : new_id }); + }).then(function() { + return self.do_switch_mode(1); + }).then(function() { + def.resolve(); + }); + }); + return def.promise(); + }, + on_button_delete: function() { + var self = this; + var def = $.Deferred(); + $.when(this.has_been_loaded).then(function() { + if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) { + self.dataset.unlink([self.datarecord.id]).then(function() { + self.on_pager_action('next'); + def.resolve(); + }); + } else { + $.async_when().then(function () { + def.reject(); + }) + } + }); + return def.promise(); + }, can_be_discarded: function() { return !this.$element.is('.oe_form_dirty') || confirm(_t("Warning, the record has been modified, your changes will be discarded.")); }, @@ -578,6 +623,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 (self.dataset.index == null || self.dataset.index < 0) { return $.when(self.on_button_new()); } else { diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 1aabfd41d00..525a47c3654 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -409,7 +409,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# * @param {String} [view="page"] the view type to switch to */ select_record:function (index, view) { - view = view || index == null ? 'form' : 'page'; + view = view || index == null ? 'form' : 'form'; this.dataset.index = index; _.delay(_.bind(function () { this.do_switch_view(view); @@ -420,11 +420,24 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# if (this.sidebar) { this.sidebar.$element.show(); } + if (this.$buttons) { + this.$buttons.find('.oe_list_buttons').show(); + } + if (this.$pager) { + this.$pager.find('.oe_list_pager').show(); + } }, do_hide: function () { - this._super(); if (this.sidebar) { + this.sidebar.$element.hide(); } + if (this.$buttons) { + this.$buttons.find('.oe_list_buttons').hide(); + } + if (this.$pager) { + this.$pager.find('.oe_list_pager').hide(); + } + this._super(); }, /** * Reloads the list view based on the current settings (dataset & al) diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index 941aec36650..6dedb60c2c2 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -2,71 +2,4 @@ openerp.web.page = function (openerp) { var _t = openerp.web._t, _lt = openerp.web._lt; - openerp.web.views.add('page', 'openerp.web.PageView'); - openerp.web.PageView = openerp.web.FormView.extend({ - template: "PageView", - display_name: _lt('Page'), - init: function() { - this._super.apply(this, arguments); - this.rendering_engine = new openerp.web.FormRenderingEngineReadonly(this); - }, - reload: function () { - if (this.dataset.index == null) { - this.do_prev_view(); - return $.Deferred().reject().promise(); - } - return this._super(); - }, - on_loaded: function(data) { - this._super(data); - this.$buttons.find('button.oe_form_button_edit').click(this.on_button_edit); - this.$buttons.find('button.oe_form_button_create').click(this.on_button_create); - this.$buttons.find('button.oe_form_button_duplicate').click(this.on_button_duplicate); - this.$buttons.find('button.oe_form_button_delete').click(this.on_button_delete); - }, - on_button_edit: function() { - return this.do_switch_view('form'); - }, - on_button_create: function() { - this.dataset.index = null; - return this.do_switch_view('form'); - }, - on_button_duplicate: function() { - var self = this; - var def = $.Deferred(); - $.when(this.has_been_loaded).then(function() { - self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) { - return self.on_created({ result : new_id }); - }).then(function() { - return self.do_switch_view('form'); - }).then(function() { - def.resolve(); - }); - }); - return def.promise(); - }, - on_button_delete: function() { - var self = this; - var def = $.Deferred(); - $.when(this.has_been_loaded).then(function() { - if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) { - self.dataset.unlink([self.datarecord.id]).then(function() { - self.on_pager_action('next'); - def.resolve(); - }); - } else { - $.async_when().then(function () { - def.reject(); - }) - } - }); - return def.promise(); - } - }); - - openerp.web.FormRenderingEngineReadonly = openerp.web.FormRenderingEngine.extend({ - alter_field: function(field) { - field.set({"force_readonly": true}); - }, - }); }; diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index c8c9bdead97..bd90c75e748 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -63,7 +63,7 @@ session.web.ActionManager = session.web.Widget.extend({ res_model: state.model, res_id: state.id, type: 'ir.actions.act_window', - views: [[false, 'page'], [false, 'form']] + views: [[false, 'form']] }; action_loaded = this.do_action(action); } else if (state.sa) { @@ -356,10 +356,10 @@ session.web.ViewManager = session.web.OldWidget.extend({ if (options.created && current_view === 'form' && previous_view === 'list') { // APR special case: "If creation mode from list (and only from a list), // after saving, go to page view (don't come back in list)" - return this.on_mode_switch('page'); + return this.on_mode_switch('form'); } else if (options.created && !previous_view && this.action && this.action.flags.default_view === 'form') { // APR special case: "If creation from dashboard, we have no previous view - return this.on_mode_switch('page'); + return this.on_mode_switch('form'); } return this.on_mode_switch(previous_view, true); }, |
