summaryrefslogtreecommitdiff
path: root/addons/base_dashboard/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-07-01 13:58:05 +0200
committerXavier Morel <xmo@openerp.com>2011-07-01 13:58:05 +0200
commit58b534fda29be0e9145458f79e7b381ec85eef6a (patch)
tree06e21fa51d4f202d93e14cf7d1dc0518593d59e0 /addons/base_dashboard/static/src
parent50aaf7b3ab0c2833503e3c48590028d6f5411899 (diff)
[ADD] dashboard: registration and display of config overview client action handler, initial drafty
bzr revid: xmo@openerp.com-20110701115805-h3tto0t2eaz9hd8c
Diffstat (limited to 'addons/base_dashboard/static/src')
-rw-r--r--addons/base_dashboard/static/src/css/dashboard.css22
-rw-r--r--addons/base_dashboard/static/src/js/dashboard.js34
-rw-r--r--addons/base_dashboard/static/src/xml/base_dashboard.xml15
3 files changed, 71 insertions, 0 deletions
diff --git a/addons/base_dashboard/static/src/css/dashboard.css b/addons/base_dashboard/static/src/css/dashboard.css
index b9815593221..2c9cc513ef0 100644
--- a/addons/base_dashboard/static/src/css/dashboard.css
+++ b/addons/base_dashboard/static/src/css/dashboard.css
@@ -126,3 +126,25 @@
top: 0px;
right: 0px;
}
+
+.openerp .oe-dashboard-config-overview ul {
+ list-style: none;
+ padding: 0;
+ background-color: #fafafa;
+}
+.openerp .oe-dashboard-config-overview li {
+ cursor: default;
+}
+.openerp .oe-dashboard-config-overview li.ui-state-error {
+ border: none;
+ background-image: none;
+ cursor: pointer;
+}
+
+.openerp .oe-dashboard-config-overview li.ui-state-error:hover {
+ background-color: #fde6dd;
+}
+.openerp .oe-dashboard-config-overview li span.ui-icon {
+ display: inline-block;
+ vertical-align: bottom;
+}
diff --git a/addons/base_dashboard/static/src/js/dashboard.js b/addons/base_dashboard/static/src/js/dashboard.js
index fe52f1affd9..926a0173178 100644
--- a/addons/base_dashboard/static/src/js/dashboard.js
+++ b/addons/base_dashboard/static/src/js/dashboard.js
@@ -273,4 +273,38 @@ openerp.base.form.DashBoardLegacy = openerp.base.form.DashBoard.extend({
openerp.base.form.widgets.add('hpaned', 'openerp.base.form.DashBoardLegacy');
openerp.base.form.widgets.add('vpaned', 'openerp.base.form.DashBoardLegacy');
openerp.base.form.widgets.add('board', 'openerp.base.form.DashBoard');
+
+openerp.base.client_actions.add(
+ 'board.config.overview', 'openerp.base_dashboard.ConfigOverview'
+);
+if (!openerp.base_dashboard) {
+ openerp.base_dashboard = {};
}
+openerp.base_dashboard.ConfigOverview = openerp.base.Controller.extend({
+ start: function () {
+ new openerp.base.DataSetSearch(this.session, 'ir.actions.todo')
+ .read_slice(['state', 'action_id'], undefined, undefined,
+ this.on_records_loaded);
+ },
+ on_records_loaded: function (records) {
+ var done_records = _(records).filter(function (record) {
+ return record.state === 'done';}),
+ done_ratio = done_records.length / records.length;
+ this.$element.html(QWeb.render('ConfigOverview', {
+ completion: done_ratio * 100,
+ todos: _(records).map(function (record) {
+ return {
+ action: record.action_id[0],
+ name: record.action_id[1],
+ state: record.state,
+ done: record.state === 'done',
+ skipped: record.state === 'skip',
+ to_do: record.state !== 'done' && record.state !== 'skip'
+ }
+ })
+ }));
+ var $progress = this.$element.find('div.oe-config-progress');
+ $progress.progressbar({value: $progress.data('completion')});
+ }
+})
+};
diff --git a/addons/base_dashboard/static/src/xml/base_dashboard.xml b/addons/base_dashboard/static/src/xml/base_dashboard.xml
index 3d45efafaa2..a6b9d9f7002 100644
--- a/addons/base_dashboard/static/src/xml/base_dashboard.xml
+++ b/addons/base_dashboard/static/src/xml/base_dashboard.xml
@@ -64,4 +64,19 @@
</board>
</form>
</t>
+<div t-name="ConfigOverview" class="oe-dashboard-config-overview">
+ <div class="oe-config-progress" t-att-data-completion="completion"/>
+ <ul>
+
+ <li t-foreach="todos" t-as="todo"
+ t-att-class="!todo.done ? 'ui-state-error ' + (todo.skipped ? 'ui-priority-secondary' : 'ui-priority-primary') : ''">
+ <span t-if="todo.done" class="ui-icon ui-icon-circle-check"/>
+ <span t-if="todo.skipped" class="ui-icon ui-icon-circle-minus"/>
+ <span t-if="todo.to_do" class="ui-icon ui-icon-circle-close"/>
+ <span t-att-class="!todo.done ? 'ui-state-error-text' : ''">
+ <t t-esc="todo.name"/>
+ </span>
+ </li>
+ </ul>
+</div>
</template>