diff options
| -rw-r--r-- | addons/base_dashboard/static/src/css/dashboard.css | 47 | ||||
| -rw-r--r-- | addons/base_dashboard/static/src/img/layout_1-1-1.png | bin | 0 -> 306 bytes | |||
| -rw-r--r-- | addons/base_dashboard/static/src/img/layout_1-1.png | bin | 0 -> 313 bytes | |||
| -rw-r--r-- | addons/base_dashboard/static/src/img/layout_1-2.png | bin | 0 -> 313 bytes | |||
| -rw-r--r-- | addons/base_dashboard/static/src/img/layout_1.png | bin | 0 -> 292 bytes | |||
| -rw-r--r-- | addons/base_dashboard/static/src/img/layout_2-1.png | bin | 0 -> 304 bytes | |||
| -rw-r--r-- | addons/base_dashboard/static/src/js/dashboard.js | 51 | ||||
| -rw-r--r-- | addons/base_dashboard/static/src/xml/base_dashboard.xml | 23 |
8 files changed, 108 insertions, 13 deletions
diff --git a/addons/base_dashboard/static/src/css/dashboard.css b/addons/base_dashboard/static/src/css/dashboard.css index 57f1ceb8f98..9dd03284eff 100644 --- a/addons/base_dashboard/static/src/css/dashboard.css +++ b/addons/base_dashboard/static/src/css/dashboard.css @@ -50,21 +50,68 @@ .openerp .oe-dashboard-layout_1 .oe-dashboard-column { width: 100%; } +.openerp .oe-dashboard-layout_1 .oe-dashboard-column.index_1 .oe-dashboard-column.index_2 { + display: none; +} + .openerp .oe-dashboard-layout_1-1 .oe-dashboard-column { width: 50%; } +.openerp .oe-dashboard-layout_1-1 .oe-dashboard-column.index_2 { + display: none; +} + .openerp .oe-dashboard-layout_1-1-1 .oe-dashboard-column { width: 33%; } + .openerp .oe-dashboard-layout_2-1 .oe-dashboard-column.index_0 { width: 70%; } .openerp .oe-dashboard-layout_2-1 .oe-dashboard-column.index_1 { width: 30%; } +.openerp .oe-dashboard-layout_2-1 .oe-dashboard-column.index_2 { + display: none; +} + .openerp .oe-dashboard-layout_1-2 .oe-dashboard-column.index_0 { width: 30%; } .openerp .oe-dashboard-layout_1-2 .oe-dashboard-column.index_1 { width: 70%; } +.openerp .oe-dashboard-layout_1-2 .oe-dashboard-column.index_2 { + display: none; +} + + +.openerp .oe-dashboard-layout-selector { + overflow: auto; + padding: 10px; +} + +.openerp .oe-dashboard-layout-selector ul { + margin: 0; + padding: 0; +} + +.openerp .oe-dashboard-layout-selector ul li { + position: relative; + float: left; + height: 51px; + list-style-type: none; + margin: 5px; + padding: 0; + width: 82px; + cursor: pointer; + border: 1px solid white; +} +.openerp .oe-dashboard-layout-selector ul li:hover { + border: 1px solid #090; +} +.openerp .oe-dashboard-layout-selector ul li img.oe-selected-layout { + position: absolute; + top: 0px; + right: 0px; +} diff --git a/addons/base_dashboard/static/src/img/layout_1-1-1.png b/addons/base_dashboard/static/src/img/layout_1-1-1.png Binary files differnew file mode 100644 index 00000000000..5eda2823c46 --- /dev/null +++ b/addons/base_dashboard/static/src/img/layout_1-1-1.png diff --git a/addons/base_dashboard/static/src/img/layout_1-1.png b/addons/base_dashboard/static/src/img/layout_1-1.png Binary files differnew file mode 100644 index 00000000000..e72aa3a0533 --- /dev/null +++ b/addons/base_dashboard/static/src/img/layout_1-1.png diff --git a/addons/base_dashboard/static/src/img/layout_1-2.png b/addons/base_dashboard/static/src/img/layout_1-2.png Binary files differnew file mode 100644 index 00000000000..4b14d7aeaad --- /dev/null +++ b/addons/base_dashboard/static/src/img/layout_1-2.png diff --git a/addons/base_dashboard/static/src/img/layout_1.png b/addons/base_dashboard/static/src/img/layout_1.png Binary files differnew file mode 100644 index 00000000000..69a0e30854c --- /dev/null +++ b/addons/base_dashboard/static/src/img/layout_1.png diff --git a/addons/base_dashboard/static/src/img/layout_2-1.png b/addons/base_dashboard/static/src/img/layout_2-1.png Binary files differnew file mode 100644 index 00000000000..ed866add47c --- /dev/null +++ b/addons/base_dashboard/static/src/img/layout_2-1.png diff --git a/addons/base_dashboard/static/src/js/dashboard.js b/addons/base_dashboard/static/src/js/dashboard.js index 8497ffc2ce5..9d6511fd215 100644 --- a/addons/base_dashboard/static/src/js/dashboard.js +++ b/addons/base_dashboard/static/src/js/dashboard.js @@ -19,7 +19,7 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ // Events this.$element.find('.oe-dashboard-link-undo').click(this.on_undo); this.$element.find('.oe-dashboard-link-add_widget').click(this.on_add_widget); - this.$element.find('.oe-dashboard-link-edit_layout').click(this.on_edit_layout); + this.$element.find('.oe-dashboard-link-change_layout').click(this.on_change_layout); this.$element.find('.oe-dashboard-column .ui-icon-minusthick').click(this.on_fold_action); this.$element.find('.oe-dashboard-column .ui-icon-closethick').click(this.on_close_action); @@ -44,7 +44,44 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ }, on_add_widget: function() { }, - on_edit_layout: function() { + on_change_layout: function() { + var self = this; + var qdict = { + current_layout : this.$element.find('.oe-dashboard').attr('data-layout') + }; + var $dialog = $('<div>').dialog({ + modal: true, + title: 'Edit Layout', + width: 'auto', + height: 'auto', + }).html(QWeb.render('DashBoard.layouts', qdict)); + $dialog.find('li').click(function() { + var layout = $(this).attr('data-layout'); + $dialog.dialog("destroy"); + self.do_change_layout(layout); + }); + }, + do_change_layout: function(new_layout) { + var $dashboard = this.$element.find('.oe-dashboard'); + var current_layout = $dashboard.attr('data-layout'); + if (current_layout != new_layout) { + var clayout = current_layout.split('-').length, + nlayout = new_layout.split('-').length, + column_diff = clayout - nlayout; + if (column_diff > 0) { + var $last_column = $(); + $dashboard.find('.oe-dashboard-column').each(function(k, v) { + if (k >= nlayout) { + $(v).find('.oe-dashboard-action').appendTo($last_column); + } else { + $last_column = $(v); + } + }); + } + $dashboard.toggleClass('oe-dashboard-layout_' + current_layout + ' oe-dashboard-layout_' + new_layout); + $dashboard.attr('data-layout', new_layout); + this.do_save_dashboard(); + } }, on_fold_action: function(e) { var $e = $(e.currentTarget); @@ -92,6 +129,14 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ view.start(); }, render: function() { + // We should start with three columns available + for (var i = this.node.children.length; i < 3; i++) { + this.node.children.push({ + tag: 'column', + attrs: {}, + children: [] + }); + } return QWeb.render(this.template, this); }, do_reload: function() { @@ -119,7 +164,7 @@ openerp.base.form.DashBoardLegacy = openerp.base.form.DashBoard.extend({ } } }); - return QWeb.render(this.template, this); + return this._super(this, arguments); } }); diff --git a/addons/base_dashboard/static/src/xml/base_dashboard.xml b/addons/base_dashboard/static/src/xml/base_dashboard.xml index 80667dec557..9c43be6996c 100644 --- a/addons/base_dashboard/static/src/xml/base_dashboard.xml +++ b/addons/base_dashboard/static/src/xml/base_dashboard.xml @@ -2,13 +2,16 @@ <t t-name="DashBoard"> <div class="oe-dashboard-links"> <button type="button" class="button oe-dashboard-link-undo" t-att-style="view.fields_view.custom_view_id ? null : 'display: none'"> - Undo + <img src="/base/static/src/img/icons/gtk-undo.png" width="16" height="16"/> + <span>Undo</span> </button> <button type="button" class="button oe-dashboard-link-add_widget"> - Add Widget + <img src="/base/static/src/img/icons/STOCK_ADD.png" width="16" height="16"/> + <span>Add Widget</span> </button> - <button type="button" class="button oe-dashboard-link-edit_layout"> - Edit layout + <button type="button" class="button oe-dashboard-link-change_layout"> + <img src="/base/static/src/img/icons/gtk-edit.png" width="16" height="16"/> + <span>Change layout</span> </button> </div> <div t-att-data-layout="node.attrs.style" t-attf-class="oe-dashboard oe-dashboard-layout_#{node.attrs.style}"> @@ -33,12 +36,12 @@ <p> <strong>Choose dashboard layout</strong> </p> - <ul class="layoutselection"> - <li id="layout1" class="layoutchoice" layout-style="1"></li> - <li id="layout2" class="layoutchoice" layout-style="1-1"></li> - <li id="layout3" class="layoutchoice" layout-style="1-1-1"></li> - <li id="layout4" class="layoutchoice" layout-style="1-2"></li> - <li id="layout5" class="layoutchoice" layout-style="2-1"></li> + <ul> + <li t-foreach="'1 1-1 1-1-1 1-2 2-1'.split(' ')" t-as="layout" t-att-data-layout="layout"> + <img t-attf-src="/base_dashboard/static/src/img/layout_#{layout}.png"/> + <img t-if="layout == current_layout" + src="/base/static/src/img/icons/gtk-apply.png" width="16" height="16" class="oe-selected-layout"/> + </li> </ul> </div> </t> |
