diff options
| author | Xavier Morel <xmo@openerp.com> | 2011-07-01 13:58:05 +0200 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2011-07-01 13:58:05 +0200 |
| commit | 58b534fda29be0e9145458f79e7b381ec85eef6a (patch) | |
| tree | 06e21fa51d4f202d93e14cf7d1dc0518593d59e0 /addons/base_dashboard/static/src | |
| parent | 50aaf7b3ab0c2833503e3c48590028d6f5411899 (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.css | 22 | ||||
| -rw-r--r-- | addons/base_dashboard/static/src/js/dashboard.js | 34 | ||||
| -rw-r--r-- | addons/base_dashboard/static/src/xml/base_dashboard.xml | 15 |
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> |
