diff options
| author | vta vta@openerp.com <> | 2012-08-01 15:57:48 +0200 |
|---|---|---|
| committer | vta vta@openerp.com <> | 2012-08-01 15:57:48 +0200 |
| commit | b2a40aa46347f04508ce5cb0b0dedbdefcb03cf8 (patch) | |
| tree | e3e2770d2237d64b787c9247abadc6bfe9a9d593 /addons/web/static | |
| parent | 7818bce5f7be645e617239efb1a507a09d6c6580 (diff) | |
| parent | 95b76e5fb8b889cf52dc53c0664e7cefa4b40f1b (diff) | |
[ADD] Small changes.
bzr revid: vta@openerp.com-20120801135748-71rbhudbh5ipq7tb
Diffstat (limited to 'addons/web/static')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 23 | ||||
| -rw-r--r-- | addons/web/static/src/js/views.js | 23 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 3 |
3 files changed, 40 insertions, 9 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index ec36c646b35..ef1b1ec48b5 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -302,7 +302,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this._super(); }, on_record_loaded: function(record) { - var self = this, set_values = []; + var self = this, defs = []; if (!record) { this.set({ 'title' : undefined }); this.do_warn("Form", "The record could not be found in the database.", true); @@ -310,7 +310,19 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } this.datarecord = record; this._actualize_mode(); - this.set({ 'title' : record.id ? record.name : "New record" }); + + var titleDef = $.Deferred(); + if (record.id) { + this.dataset.name_get(record.id).then(function(names) { + self.set({ 'title' : names[0][1] }); + }).always(function() { + titleDef.resolve(); + }); + } else { + this.set({ 'title' : "New record" }); + titleDef.resolve(); + } + defs.push(titleDef); if (this.qweb) { this.kill_current_form(); @@ -322,9 +334,9 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM _(this.fields).each(function (field, f) { field._dirty_flag = false; var result = field.set_value(self.datarecord[f] || false); - set_values.push(result); + defs.push(result); }); - return $.when.apply(null, set_values).pipe(function() { + return $.when.apply(null, defs).pipe(function() { if (!record.id) { // New record: Second pass in order to trigger the onchanges // respecting the fields order defined in the view @@ -4669,8 +4681,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ var content = instance.web.qweb.render("FieldStatus.content", {widget: this, _:_}); this.$element.html(content); clickable = this.node.attrs.clickable; - if(clickable != undefined && String(clickable.toLowerCase()) in ['true', '1']) - { + if (clickable != undefined && (clickable.toLowerCase() === 'true' || clickable === "1")) { var elemts = this.$element.find('.oe_form_steps_item') _.each(elemts, function(element){ $item = $(element); diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 2e22b8b64c5..e47981a4284 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -505,6 +505,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ }); this.getParent().push_breadcrumb({ widget: this, + action: this.action, show: function(index, $e) { var view_to_select = views[index]; self.$element.show(); @@ -513,9 +514,27 @@ instance.web.ViewManager = instance.web.Widget.extend({ } }, get_title: function() { - return _.map(views, function(v) { - return self.views[v].controller.get('title'); + var id; + var currentIndex; + _.each(self.getParent().breadcrumbs, function(bc, i) { + if (bc.widget === self) { + currentIndex = i; + } + }); + var next = self.getParent().breadcrumbs.slice(currentIndex + 1)[0]; + var titles = _.map(views, function(v) { + var controller = self.views[v].controller; + if (v === 'form') { + id = controller.datarecord.id; + } + return controller.get('title'); }); + if (next && next.action.res_id && self.active_view === 'form' && self.model === next.action.res_model && id === next.action.res_id) { + // If the current active view is a formview and the next item in the breadcrumbs + // is an action on same object (model / res_id), then we omit the current formview's title + titles.pop(); + } + return titles; } }); }, diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 6ac511286a1..1e5b83efb86 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1032,7 +1032,8 @@ <t t-set="size" t-value="widget.to_show.length"/> <t t-foreach="_.range(size)" t-as="i"> <li t-att-class="widget.to_show[i][0] === widget.selected_value ? 'oe_form_steps_active' : ''"> - <button class="oe_form_steps_item" t-att-data-id="widget.to_show[i][0]"><t t-esc="widget.to_show[i][1]"/></button> + <!-- <button t-if="widget.view.get('actual_mode') === 'edit'" class="oe_form_steps_item" t-att-data-id="widget.to_show[i][0]"><t t-esc="widget.to_show[i][1]"/></button> --> + <span class="oe_form_steps_item" t-att-data-id="widget.to_show[i][0]"><t t-esc="widget.to_show[i][1]"/></span> <img t-att-src='_s + "/web/static/src/img/form_steps.png"' class="oe_form_steps_arrow" t-if="i < size - 1"/> </li> </t> |
