summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2012-04-06 16:05:37 +0200
committerAntony Lesuisse <al@openerp.com>2012-04-06 16:05:37 +0200
commiteac3ebb87e4459e7a89e6f91748af1f60cc0838c (patch)
treec7de8e48fbad3d37fada26ebaa4181e1baa94ca7 /addons/web/static/src
parente7e7548869682b63bc196a7a8b38dd40e054770a (diff)
parent1502868ae103898d6d515083a2145eb7c3143c5c (diff)
[MERGE] trunk
bzr revid: nicolas.vanhoren@openerp.com-20120406123856-vpw1mk9rq642ur6n bzr revid: al@openerp.com-20120406140537-z5em6fgqv8cnyj1t
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/css/base.css17
-rw-r--r--addons/web/static/src/css/base.sass13
-rw-r--r--addons/web/static/src/css/base_old.css39
-rw-r--r--addons/web/static/src/js/view_form.js37
-rw-r--r--addons/web/static/src/js/views.js54
-rw-r--r--addons/web/static/src/xml/base.xml12
6 files changed, 71 insertions, 101 deletions
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 29735add56f..c593bd7cb2b 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -479,6 +479,19 @@
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
}
+.openerp2 .oe_secondary_submenu .oe_menu_counter {
+ float: right;
+ background: #8a89ba;
+ color: #eeeeee;
+ font-size: 12px;
+ border: 1px solid lightgray;
+ padding: 0px 4px 0px 4px;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ margin: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+}
.openerp2 .oe_secondary_submenu .oe_active {
background: #8a89ba;
border-top: 1px solid lightGray;
@@ -499,6 +512,10 @@
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}
+.openerp2 .oe_secondary_submenu .oe_active .oe_menu_counter {
+ background: #eeeeee;
+ color: #8a89ba;
+}
.openerp2 .oe_secondary_submenu .oe_menu_toggler:before {
width: 0;
height: 0;
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 80410e395ed..2b5c2b007f9 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -401,6 +401,16 @@ $colour4: #8a89ba
text-shadow: 0 1px 1px rgba(0,0,0,0.2)
@include radius(4px)
@include box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.2))
+ .oe_menu_counter
+ float: right
+ background: #8a89ba
+ color: #eee
+ font-size: 12px
+ border: 1px solid lightgray
+ padding: 0px 4px 0px 4px
+ text-shadow: 0 1px 1px rgba(0,0,0,0.2)
+ margin: 0px
+ @include radius(4px)
.oe_active
background: $colour4
border-top: 1px solid lightGray
@@ -414,6 +424,9 @@ $colour4: #8a89ba
color: $colour4
text-shadow: 0 1px 1px white
@include box-shadow(0 1px 1px rgba(0, 0, 0, 0.2))
+ .oe_menu_counter
+ background: #eee
+ color: #8a89ba
.oe_menu_toggler:before
width: 0
height: 0
diff --git a/addons/web/static/src/css/base_old.css b/addons/web/static/src/css/base_old.css
index 31037702a89..c59e6291335 100644
--- a/addons/web/static/src/css/base_old.css
+++ b/addons/web/static/src/css/base_old.css
@@ -1258,45 +1258,6 @@ label.error {
text-decoration: underline;
color: inherit;
}
-.openerp .oe-view-manager-logs {
- clear: both;
- background: #fff;
- margin: 0.25em 0;
- font-size: 85%;
- color: #4C4C4C;
- position: relative;
- overflow: hidden;
-}
-.openerp .oe-view-manager-logs ul {
- margin: 0;
- padding: 0 10px;
- list-style: none;
-}
-.openerp .oe-view-manager-logs li:before {
- content: '\2192 ';
-}
-.openerp .oe-view-manager-logs a {
- text-decoration: none;
- color: inherit;
-}
-/* only display first three log items of a folded logs list */
-.openerp .oe-view-manager-logs.oe-folded li:nth-child(n+4) {
- display: none;
-}
-/* display link to more logs if there are more logs to view and the logview is
- currently folded */
-.openerp .oe-view-manager-logs a.oe-more-logs {
- display: none;
-}
-.openerp .oe-view-manager-logs.oe-folded.oe-has-more a.oe-more-logs {
- display: block;
-}
-.openerp .oe-view-manager-logs a.oe-remove-everything {
- position: absolute;
- top: 0;
- right: 0;
- cursor: pointer;
-}
.openerp .view-manager-main-sidebar {
width: 180px;
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 663ea0246e9..4f0188c584c 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -2502,6 +2502,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({
disable_utility_classes: true,
init: function(view, node) {
this._super(view, node);
+ lazy_build_o2m_kanban_view();
this.is_loaded = $.Deferred();
this.initial_is_loaded = this.is_loaded;
this.is_setted = $.Deferred();
@@ -2579,7 +2580,8 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({
this.viewmanager.registry = openerp.web.views.extend({
list: 'openerp.web.form.One2ManyListView',
form: 'openerp.web.form.One2ManyFormView',
- page: 'openerp.web.PageView'
+ page: 'openerp.web.PageView',
+ kanban: 'openerp.web.form.One2ManyKanbanView',
});
var once = $.Deferred().then(function() {
self.init_form_last_update.resolve();
@@ -2588,8 +2590,8 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({
self.initial_is_loaded.resolve();
});
this.viewmanager.on_controller_inited.add_last(function(view_type, controller) {
+ controller.o2m = self;
if (view_type == "list") {
- controller.o2m = self;
if (self.get("effective_readonly"))
controller.set_editable(false);
} else if (view_type == "form" || view_type == 'page') {
@@ -2636,7 +2638,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({
};
self.form_last_update = self.form_last_update.pipe(act, act);
return self.form_last_update;
- } else if (active_view === "graph") {
+ } else if (view.do_search) {
return view.do_search(self.build_domain(), self.dataset.get_context(), []);
}
}, undefined);
@@ -2862,6 +2864,35 @@ openerp.web.form.One2ManyFormView = openerp.web.FormView.extend({
}
});
+var lazy_build_o2m_kanban_view = function() {
+if (! openerp.web_kanban || openerp.web.form.One2ManyKanbanView)
+ return;
+openerp.web.form.One2ManyKanbanView = openerp.web_kanban.KanbanView.extend({
+ open_record: function(id) {
+ var self = this;
+ var pop = new openerp.web.form.FormOpenPopup(self.o2m.view);
+ pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(), {
+ title: _t("Open: ") + self.name,
+ auto_write: false,
+ alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined,
+ parent_view: self.o2m.view,
+ child_name: self.o2m.name,
+ read_function: function() {
+ return self.o2m.dataset.read_ids.apply(self.o2m.dataset, arguments);
+ },
+ form_view_options: {'not_interactible_on_create':true},
+ readonly: self.o2m.get("effective_readonly"),
+ });
+ pop.on_write.add(function(id, data) {
+ self.o2m.dataset.write(id, data, {}, function(r) {
+ self.o2m.reload_current_view();
+ });
+ });
+
+ },
+});
+}
+
/*
* TODO niv: clean those deferred stuff, it could be better
*/
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 70a2c88f6cf..7225a4ed26c 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -548,17 +548,6 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner
}
}
- var $res_logs = this.$element.find('.oe-view-manager-logs:first');
- $res_logs.delegate('a.oe-more-logs', 'click', function () {
- $res_logs.removeClass('oe-folded');
- return false;
- }).delegate('a.oe-remove-everything', 'click', function () {
- $res_logs.removeClass('oe-has-more').find('ul').empty();
- $res_logs.css('display','none');
- return false;
- });
- $res_logs.css('display','none');
-
return manager_ready;
},
on_debug_changed: function (evt) {
@@ -662,8 +651,6 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner
return $.when(this._super(view_type, no_store)).then(function () {
self.shortcut_check(self.views[view_type]);
- self.$element.find('.oe-view-manager-logs:first').addClass('oe-folded').removeClass('oe-has-more').css('display','none').find('ul').empty();
-
var controller = self.views[self.active_view].controller,
fvg = controller.fields_view,
view_id = (fvg && fvg.view_id) || '--';
@@ -745,43 +732,6 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner
}
});
},
- /**
- * Intercept do_action resolution from children views
- */
- on_action_executed: function () {
- return new session.web.DataSet(this, 'res.log')
- .call('get', [], this.do_display_log);
- },
- /**
- * @param {Array<Object>} log_records
- */
- do_display_log: function (log_records) {
- var self = this;
- var cutoff = 3;
- var $logs = this.$element.find('.oe-view-manager-logs:first').addClass('oe-folded').css('display', 'block');
- var $logs_list = $logs.find('ul').empty();
- $logs.toggleClass('oe-has-more', log_records.length > cutoff);
- _(log_records.reverse()).each(function (record) {
- var context = {};
- if (record.context) {
- try { context = py.eval(record.context); }
- catch (e) { /* TODO: what do I do now? */ }
- }
- $(_.str.sprintf('<li><a href="#">%s</a></li>', record.name))
- .appendTo($logs_list)
- .delegate('a', 'click', function () {
- self.do_action({
- type: 'ir.actions.act_window',
- res_model: record.res_model,
- res_id: record.res_id,
- // TODO: need to have an evaluated context here somehow
- context: context,
- views: [[context.view_id || false, 'form']]
- });
- return false;
- });
- });
- },
display_title: function () {
return this.action.name;
}
@@ -1093,10 +1043,10 @@ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{
},
load_view: function() {
if (this.embedded_view) {
- var def = $.Deferred().pipe(this.on_loaded);
+ var def = $.Deferred();
var self = this;
$.async_when().then(function() {def.resolve(self.embedded_view);});
- return def.promise();
+ return def.pipe(this.on_loaded);
} else {
var context = new session.web.CompoundContext(this.dataset.get_context());
if (! this.view_type)
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index ee227006bef..eb3f3c42551 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -373,6 +373,11 @@
t-att-data-action-model="menu.action ? menu.action.split(',')[0] : ''"
t-att-data-action-id="menu.action ? menu.action.split(',')[1] : ''">
<t t-esc="menu.name"/>
+ <t t-if="menu.needaction_enabled">
+ <div class="oe_menu_counter">
+ <t t-esc="menu.needaction_counter"/>
+ </div>
+ </t>
</a>
</t>
@@ -457,13 +462,6 @@
<t t-jquery="h2.oe_view_title" t-operation="after">
<select t-if="self.session.debug" class="oe_debug_view"/>
</t>
- <t t-jquery=".oe-view-manager-header" t-operation="after">
- <div class="oe-view-manager-logs oe-folded">
- <ul></ul>
- <a class="oe-more-logs" href="#">More…</a>
- <a class="oe-remove-everything ui-icon ui-icon-closethick"/>
- </div>
- </t>
</t>
<t t-name="ViewManagerDebug">
<option value="">Debug View#<t t-esc="view.fields_view.view_id"/></option>