diff --git a/addons/board/static/src/css/dashboard.css b/addons/board/static/src/css/dashboard.css
index f2bbcd07071..02304107fc2 100644
--- a/addons/board/static/src/css/dashboard.css
+++ b/addons/board/static/src/css/dashboard.css
@@ -1,3 +1,4 @@
+@charset "UTF-8";
.openerp .oe_dashboard_layout_1 .oe_dashboard_column.index_0 {
width: 100%;
}
@@ -82,7 +83,7 @@
color: #b3b3b3;
}
.openerp .oe_dashboard .oe_action .oe_header .oe_icon:hover {
- color: #666666;
+ color: #666;
text-decoration: none;
}
.openerp .oe_dashboard .oe_action .oe_header .oe_close:after {
@@ -116,8 +117,14 @@
.openerp .oe_dashboard .oe_action .oe_content {
padding: 0 12px 12px 12px;
}
-.openerp .oe_dashboard .oe_action .oe_content .oe_view_manager_header {
- display: none;
+.openerp .oe_dashboard .oe_action .oe_content .oe-view-manager-views {
+ position: relative;
+}
+.openerp .oe_dashboard .oe_action .oe_content .oe-view-manager {
+ display: block;
+}
+.openerp .oe_dashboard .oe_action .oe_content .oe-view-manager-content {
+ display: block;
}
.openerp .oe_dashboard .oe_action .oe_content .oe_list_content > thead {
border-bottom: 1px;
@@ -125,3 +132,12 @@
.openerp .oe_dashboard .oe_action .oe_content .oe_list_content > tbody tr:nth-child(odd) {
background: transparent;
}
+.openerp .oe-search-options .add-to-dashboard button {
+ margin: 3px 25px;
+ display: none;
+}
+.openerp .oe-search-options .add-to-dashboard input {
+ width: calc(100% - 50px);
+ margin: 3px 25px;
+ display: none;
+}
diff --git a/addons/board/static/src/css/dashboard.sass b/addons/board/static/src/css/dashboard.sass
index 122b6dc232c..f412b1d3aa1 100644
--- a/addons/board/static/src/css/dashboard.sass
+++ b/addons/board/static/src/css/dashboard.sass
@@ -98,25 +98,14 @@
margin-left: 4px
padding: 0 4px 0 4px
height: 16px !important
- //.oe_rename
- //float: left
- //padding-right: 4px
- //position: relative
- //top: 1px
- //.oe_input
- //height: 16px;
- //position: relative;
- //top: 2px;
- //.ui-sortable-placeholder
- //border: 1px dotted black;
- //visibility: visible !important;
- //height: 50px !important;
- //*
- //visibility: hidden;
.oe_content
padding: 0 12px 12px 12px
- .oe_view_manager_header
- display: none
+ .oe-view-manager-views
+ position: relative
+ .oe-view-manager
+ display: block
+ .oe-view-manager-content
+ display: block
.oe_list_content
> thead
border-bottom: 1px
@@ -124,3 +113,13 @@
tr:nth-child(odd)
background: transparent
+
+ .oe-search-options
+ .add-to-dashboard
+ button
+ margin: 3px 25px
+ display: none
+ input
+ width: calc(100% - 50px)
+ margin: 3px 25px
+ display: none
diff --git a/addons/board/static/src/js/dashboard.js b/addons/board/static/src/js/dashboard.js
index 0d1d210a4de..5fa7811b5a0 100644
--- a/addons/board/static/src/js/dashboard.js
+++ b/addons/board/static/src/js/dashboard.js
@@ -18,7 +18,7 @@ instance.web.form.DashBoard = instance.web.form.FormWidget.extend({
var self = this;
this._super.apply(this, arguments);
- this.$el.find('.oe_dashboard_column').sortable({
+ this.$('.oe_dashboard_column').sortable({
connectWith: '.oe_dashboard_column',
handle: '.oe_header',
scroll: false
@@ -29,9 +29,9 @@ instance.web.form.DashBoard = instance.web.form.FormWidget.extend({
self.__parentedParent.set({ 'title': old_title});
})
// Events
- this.$el.find('.oe_dashboard_link_reset').click(this.on_reset);
- this.$el.find('.oe_dashboard_link_change_layout').click(this.on_change_layout);
- this.$el.find('h2.oe_header span.oe_header_txt').click(function(ev){
+ this.$('.oe_dashboard_link_reset').click(this.on_reset);
+ this.$('.oe_dashboard_link_change_layout').click(this.on_change_layout);
+ this.$('h2.oe_header span.oe_header_txt').click(function(ev){
if(ev.target === ev.currentTarget)
self.on_header_string($(ev.target).parent());
});
@@ -208,6 +208,7 @@ instance.web.form.DashBoard = instance.web.form.FormWidget.extend({
views_switcher : false,
action_buttons : false,
pager: false,
+ headless: true,
low_profile: true,
display_title: false,
list: {
@@ -244,7 +245,7 @@ instance.web.form.DashBoard = instance.web.form.FormWidget.extend({
};
var list = am.inner_widget.views.list;
if (list) {
- list.deferred.done(function() {
+ list.created.done(function() {
$(list.controller.groups).off('row_link').on('row_link', function(e, id) {
new_form_action(id);
});
@@ -252,7 +253,7 @@ instance.web.form.DashBoard = instance.web.form.FormWidget.extend({
}
var kanban = am.inner_widget.views.kanban;
if (kanban) {
- kanban.deferred.done(function() {
+ kanban.created.done(function() {
kanban.controller.open_record = function(id, editable) {
new_form_action(id, editable);
};
@@ -326,113 +327,87 @@ instance.web.form.tags.add('vpaned', 'instance.web.form.DashBoardLegacy');
instance.web.form.tags.add('board', 'instance.web.form.DashBoard');
-instance.board.AddToDashboard = instance.web.search.Input.extend({
- template: 'SearchView.addtodashboard',
- _in_drawer: true,
- init: function (parent) {
- this._super(parent);
- this.is_loaded = null;
- },
- start: function () {
+instance.web.search.FavoriteMenu.include({
+ prepare_dropdown_menu: function (filters) {
var self = this;
- this.$el
- .on('click', 'h4', this.proxy('load_and_show_option'))
- .on('submit', 'form', function (e) {
- e.preventDefault();
- self.add_dashboard();
- });
- return $.when();
- },
- load_data:function(){
- var board = new instance.web.Model('board.board');
- return board.call('list', [board.context()]);
- },
- _x:function() {
- if (!instance.webclient) { return $.Deferred().reject(); }
- var dashboard_menu = instance.webclient.menu.data.data.children;
- return new instance.web.Model('ir.model.data')
- .query(['res_id'])
- .filter([['name','=','menu_reporting_dashboard']])
- .first().then(function (result) {
- var menu = _(dashboard_menu).chain()
- .pluck('children')
- .flatten(true)
- .find(function (child) { return child.id === result.res_id; })
- .value();
- return menu ? menu.children : [];
+ this._super(filters);
+ this.$('.favorites-menu').append(QWeb.render('SearchView.addtodashboard'));
+ this.$add_to_dashboard = this.$('.add-to-dashboard');
+ this.$add_dashboard_btn = this.$add_to_dashboard.eq(2).find('button');
+ this.$add_dashboard_input = this.$add_to_dashboard.eq(1).find('input');
+ this.$add_dashboard_link = this.$add_to_dashboard.first().find('a');
+ var title = this.searchview.getParent().title;
+ this.$add_dashboard_input.val(title);
+ this.$add_dashboard_link.click(function () {
+ self.toggle_dashboard_menu();
});
+ this.$add_dashboard_btn.click(this.proxy('add_dashboard'));
},
- render_data: function(dashboard_choices){
- var selection = instance.web.qweb.render(
- "SearchView.addtodashboard.selection", {
- selections: dashboard_choices});
- this.$("input").before(selection)
+ toggle_dashboard_menu: function (is_open) {
+ this.$add_to_dashboard.first()
+ .toggleClass('closed-menu', !is_open)
+ .toggleClass('open-menu', is_open);
+ this.$add_dashboard_btn.toggle(is_open);
+ this.$add_dashboard_input.toggle(is_open);
+ if (this.$add_to_dashboard.first().hasClass('open-menu')) {
+ this.$add_dashboard_input.focus();
+ }
},
- add_dashboard: function(){
+ close_menus: function () {
+ this.toggle_dashboard_menu(false);
+ this._super();
+ },
+ add_dashboard: function () {
var self = this;
- if (! this.view.view_manager.action || ! this.$el.find("select").val()) {
+ var view_manager = this.getParent();
+ while (!(view_manager instanceof instance.web.ViewManager) &&
+ view_manager && view_manager.getParent) {
+ view_manager = view_manager.getParent();
+ }
+ if (!view_manager.action) {
this.do_warn(_t("Can't find dashboard action"));
return;
}
- var data = this.view.build_search_data();
- var context = new instance.web.CompoundContext(this.view.dataset.get_context() || []);
- var domain = new instance.web.CompoundDomain(this.view.dataset.get_domain() || []);
+ var searchview = view_manager.searchview,
+ data = searchview.build_search_data(),
+ context = new instance.web.CompoundContext(searchview.dataset.get_context() || []),
+ domain = new instance.web.CompoundDomain(searchview.dataset.get_domain() || []);
_.each(data.contexts, context.add, context);
_.each(data.domains, domain.add, domain);
context.add({
group_by: instance.web.pyeval.eval('groupbys', data.groupbys || [])
});
-
var c = instance.web.pyeval.eval('context', context);
for(var k in c) {
if (c.hasOwnProperty(k) && /^search_default_/.test(k)) {
delete c[k];
}
}
- // TODO: replace this 6.1 workaround by attribute on