diff options
| author | Antony Lesuisse <al@openerp.com> | 2011-12-08 12:47:22 +0100 |
|---|---|---|
| committer | Antony Lesuisse <al@openerp.com> | 2011-12-08 12:47:22 +0100 |
| commit | a5b31d465eae353aeee65783832f55c82670cfd9 (patch) | |
| tree | e78041c05264f051432823cb8bd34edc499c9163 /addons/web_dashboard/static/src/js | |
| parent | f3d42191643159b0a27f9c370cc713055fdf4b7d (diff) | |
| parent | 4ca43cd31e4324531d2816af27d97546aafb1f1f (diff) | |
[MERGE] tiles style
bzr revid: al@openerp.com-20111208114722-1tko0x521cf3r2qk
Diffstat (limited to 'addons/web_dashboard/static/src/js')
| -rw-r--r-- | addons/web_dashboard/static/src/js/dashboard.js | 195 |
1 files changed, 111 insertions, 84 deletions
diff --git a/addons/web_dashboard/static/src/js/dashboard.js b/addons/web_dashboard/static/src/js/dashboard.js index 07c9f83ef1f..50f6aca3bf7 100644 --- a/addons/web_dashboard/static/src/js/dashboard.js +++ b/addons/web_dashboard/static/src/js/dashboard.js @@ -319,90 +319,6 @@ openerp.web_dashboard.ConfigOverview = openerp.web.View.extend({ }); /* - * ApplicationTiles - * This client action designed to be used as a dashboard widget display - * either a list of application to install (if none is installed yet) or - * a list of root menu - */ -openerp.web.client_actions.add( 'board.home.applications', 'openerp.web_dashboard.ApplicationTiles'); -openerp.web_dashboard.apps = { - applications: [ - [ - { - module: 'crm', name: 'CRM', - help: "Acquire leads, follow opportunities, manage prospects and phone calls, \u2026" - }, { - module: 'sale', name: 'Sales', - help: "Do quotations, follow sales orders, invoice and control deliveries" - }, { - module: 'account_voucher', name: 'Invoicing', - help: "Send invoice, track payments and reminders" - }, { - module: 'point_of_sale', name: 'Point of Sales', - help: "Manage shop sales, use touch-screen POS" - } - ], [ - { - module: 'purchase', name: 'Purchase', - help: "Do purchase orders, control invoices and reception, follow your suppliers, \u2026" - }, { - module: 'stock', name: 'Warehouse', - help: "Track your stocks, schedule product moves, manage incoming and outgoing shipments, \u2026" - }, { - module: 'mrp', name: 'Manufacturing', - help: "Manage your manufacturing, control your supply chain, personalize master data, \u2026" - }, { - module: 'account_accountant', name: 'Accounting and Finance', - help: "Record financial operations, automate followup, manage multi-currency, \u2026" - } - ], [ - { - module: 'project', name: 'Projects', - help: "Manage projects, track tasks, invoice task works, follow issues, \u2026" - }, { - module: 'hr', name: 'Human Resources', - help: "Manage employees and their contracts, follow laves, recruit people, \u2026" - }, { - module: 'marketing', name: 'Marketing', - help: "Manage campaigns, follow activities, automate emails, \u2026" - }, { - module: 'knowledge', name: 'Knowledge', - help: "Track your documents, browse your files, \u2026" - } - ] - ] -}; -openerp.web_dashboard.ApplicationTiles = openerp.web.View.extend({ - template: 'ApplicationTiles', - start: function () { - this._super(); - $('.secondary_menu', this.$element.closest('.openerp')).hide(); - return this.do_display_root_menu(); - }, - stop: function () { - $('.secondary_menu', this.$element.closest('.openerp')).show(); - this._super(); - }, - do_display_root_menu: function() { - var self = this; - return new openerp.web.DataSetSearch( this, 'ir.ui.menu', null, [['parent_id', '=', false]]) - .read_slice( ['name', 'web_icon_data', 'web_icon_hover_data'], {}, function (applications) { - // Create a matrix of 3*x applications - var rows = []; - while (applications.length) { - rows.push(applications.splice(0, 3)); - } - var tiles = QWeb.render( 'ApplicationTiles.content', {rows: rows}); - self.$element.append(tiles) - .find('.oe-dashboard-home-tile') - .click(function () { - openerp.webclient.menu.on_menu_click(null, $(this).data('menuid')) - }); - }); - } -}); - -/* * Widgets * This client action designed to be used as a dashboard widget display * the html content of a res_widget given as argument @@ -442,4 +358,115 @@ openerp.web_dashboard.Widget = openerp.web.View.extend(/** @lends openerp.web_da } }); +/* + * HomeTiles this client action display either the list of application to + * install (if none is installed yet) or a list of root menu items + */ +openerp.web.client_actions.add('default_home', 'session.web_dashboard.ApplicationTiles'); +openerp.web_dashboard.ApplicationTiles = openerp.web.Widget.extend({ + template: 'web_dashboard.ApplicationTiles', + init: function(parent) { + this._super(parent); + }, + start: function() { + var self = this; + var applications = [ + {module: 'crm', name: 'CRM', menu: 'Sales', help: "Acquire leads, follow opportunities, manage prospects and phone calls, \u2026"}, + ]; + var domain = [['core','=',true],['state','=','installed']]; + var ds = new openerp.web.DataSetSearch(this, 'ir.module.module',{},domain); + ds.read_slice(['id'], {}, function(result) { + if(result.length) { + self.on_installed_database(); + } else { + self.on_uninstalled_database(); + } + }); + }, + on_uninstalled_database: function() { + console.log("UNINSTALLED"); + this.$element.html("ApplicationInstaller"); + installer = new openerp.web_dashboard.ApplicationInstaller(this); + installer.appendTo(this.$element); + }, + on_installed_database: function() { + console.log("INSTALLED"); + this.$element.html("ApplicationTiles"); + var self = this; + var ds = new openerp.web.DataSetSearch( this, 'ir.ui.menu', null, [['parent_id', '=', false]]); + var r = ds.read_slice( ['name', 'web_icon_data', 'web_icon_hover_data'], {}, function (applications) { + // Create a matrix of 3*x applications + var rows = []; + while (applications.length) { + rows.push(applications.splice(0, 3)); + } + var tiles = QWeb.render( 'ApplicationTiles.content', {rows: rows}); + self.$element.append(tiles).find('.oe-dashboard-home-tile').click(function () { + openerp.webclient.menu.on_menu_click(null, $(this).data('menuid')) + }); + }); + } +}); + +/** + * ApplicationInstaller + * This client action display a list of applications to install. + */ +openerp.web.client_actions.add( 'board.application.installer', 'openerp.web_dashboard.ApplicationInstaller'); +openerp.web_dashboard.ApplicationInstaller = openerp.web.View.extend({ + template: 'web_dashboard.ApplicationInstaller', + start: function () { + this._super(); + $('.secondary_menu', this.$element.closest('.openerp')).hide(); + this.$element.append("Display ir module module kanban view"); + }, + /* currenlt unused */ + on_install_clicked: function() { + var Installer = new openerp.web.DataSet(this, 'base.setup.installer'); + Installer.call('default_get', [], function (installed_modules) { + console.log(installed_modules); + self.$element.html(QWeb.render('Welcome-Page', {'applications': applications})); + self.$element.find('.install-module-link').click(function () { + self.install_module($(this).data('module'), $(this).data('menu')); + return false; + }); + }); + }, + install_module: function (module_name, menu_name) { + var self = this; + var Modules = new openerp.web.DataSetSearch( + this, 'ir.module.module', null, + [['name', '=', module_name], ['state', '=', 'uninstalled']]); + var Upgrade = new openerp.web.DataSet(this, 'base.module.upgrade'); + + $.blockUI(); + Modules.read_slice(['id'], {}, function (records) { + if (!(records.length === 1)) { $.unblockUI(); return; } + Modules.call('state_update', + [_.pluck(records, 'id'), 'to install', ['uninstalled']], + function () { + Upgrade.call('upgrade_module', [[]], function () { + self.run_configuration_wizards(menu_name); + }); + } + ) + }); + }, + run_configuration_wizards: function (menu_name) { + var self = this; + new openerp.web.DataSet(this, 'res.config').call('start', [[]], function (action) { + self.widget_parent.widget_parent.do_action(action, function () { + openerp.webclient.do_reload(); + }); + self.$element.empty(); + var dss = new openerp.web.DataSetSearch(this, 'ir.ui.menu', null, [['parent_id', '=', false], ['name', '=', menu_name]]); + dss.read_slice(['id'], {}, function(menus) { + if(!(menus.length === 1)) { $.unblockUI(); return; } + $.when(openerp.webclient.menu.on_menu_click(null, menus[0].id)).then($.unblockUI); + }); + }); + } +}); + + }; |
