summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorvta vta@openerp.com <>2012-08-01 15:57:48 +0200
committervta vta@openerp.com <>2012-08-01 15:57:48 +0200
commitb2a40aa46347f04508ce5cb0b0dedbdefcb03cf8 (patch)
treee3e2770d2237d64b787c9247abadc6bfe9a9d593 /addons/web/static/src
parent7818bce5f7be645e617239efb1a507a09d6c6580 (diff)
parent95b76e5fb8b889cf52dc53c0664e7cefa4b40f1b (diff)
[ADD] Small changes.
bzr revid: vta@openerp.com-20120801135748-71rbhudbh5ipq7tb
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_form.js23
-rw-r--r--addons/web/static/src/js/views.js23
-rw-r--r--addons/web/static/src/xml/base.xml3
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 &lt; size - 1"/>
</li>
</t>