summaryrefslogtreecommitdiff
path: root/addons/web_dashboard/static/src
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2011-12-08 12:47:22 +0100
committerAntony Lesuisse <al@openerp.com>2011-12-08 12:47:22 +0100
commita5b31d465eae353aeee65783832f55c82670cfd9 (patch)
treee78041c05264f051432823cb8bd34edc499c9163 /addons/web_dashboard/static/src
parentf3d42191643159b0a27f9c370cc713055fdf4b7d (diff)
parent4ca43cd31e4324531d2816af27d97546aafb1f1f (diff)
[MERGE] tiles style
bzr revid: al@openerp.com-20111208114722-1tko0x521cf3r2qk
Diffstat (limited to 'addons/web_dashboard/static/src')
-rw-r--r--addons/web_dashboard/static/src/css/dashboard.css50
-rw-r--r--addons/web_dashboard/static/src/js/dashboard.js195
-rw-r--r--addons/web_dashboard/static/src/xml/web_dashboard.xml46
3 files changed, 198 insertions, 93 deletions
diff --git a/addons/web_dashboard/static/src/css/dashboard.css b/addons/web_dashboard/static/src/css/dashboard.css
index d3e05cc4e3b..9129dc2a539 100644
--- a/addons/web_dashboard/static/src/css/dashboard.css
+++ b/addons/web_dashboard/static/src/css/dashboard.css
@@ -309,3 +309,53 @@
.oe-static-home-tile-text p {
margin: 0.5em 0;
}
+
+.openerp .oe_installer {
+ width: 980px;
+}
+
+.openerp .oe_installer h1, .openerp .oe_installer h3 {
+ margin: 16px 24px;
+ color: #555
+}
+
+.openerp .oe_installer li {
+ float: left;
+ list-style: none;
+}
+
+.openerp .oe_installer li img {
+ display: block;
+ margin: 12px auto 16px;
+ height: 64px;
+ width: 64px;
+}
+
+.openerp .oe_installer li div {
+ color: #555;
+}
+
+.openerp .oe_installer li a {
+ display: block;
+ height: 120px;
+ width: 194px;
+ border: 1px solid #f4f2f2;
+ margin: 6px;
+ padding: 12px;
+ text-align: center;
+ text-transform: uppercase;
+ text-decoration: none;
+ font-size: 12px;
+ font-weight: 800;
+ background: white;
+ -moz-border-radius: 6px;
+ -webkit-border-radius: 6px;
+ -ms-border-radius: 6px;
+ border-radius: 6px;
+ -moz-box-shadow: 0 1px 2px #bbb;
+ -webkit-box-shadow: 0 1px 2px #bbb;
+ -o-box-shadow: 0 1px 2px #bbb;
+ box-shadow: 0 1px 2px #bbb;
+}
+
+
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);
+ });
+ });
+ }
+});
+
+
};
diff --git a/addons/web_dashboard/static/src/xml/web_dashboard.xml b/addons/web_dashboard/static/src/xml/web_dashboard.xml
index 038bccd606a..d4d05f36f21 100644
--- a/addons/web_dashboard/static/src/xml/web_dashboard.xml
+++ b/addons/web_dashboard/static/src/xml/web_dashboard.xml
@@ -82,26 +82,54 @@
</dl>
</t>
-<div t-name="ApplicationTiles" class="oe-dashboard-home-tiles"/>
+
+<div t-name="HomeWidget" class="oe-dashboard-home-widget"/>
+<t t-name="HomeWidget.content">
+ <h3><t t-esc="widget.title"/></h3>
+ <iframe width="100%" frameborder="0" t-att-src="url"/>
+</t>
+
+<div t-name="web_dashboard.ApplicationTiles.old" class="oe-dashboard-home-tiles"/>
<table t-name="ApplicationTiles.content" width="100%">
<tr t-foreach="rows" t-as="row">
<td t-foreach="row" t-as="application" width="33.3%">
<div class="oe-dashboard-home-tile"
t-att-data-menuid="application.id">
<div class="oe-dashboard-home-tile-icon">
- <img t-if="application.web_icon_data"
- t-att-src="'data:image/png;base64,' + application.web_icon_data"
- /><img t-if="application.web_icon_hover_data" class="hover"
- t-att-src="'data:image/png;base64,' + application.web_icon_hover_data"/>
+ <img t-if="application.web_icon_data" t-att-src="'data:image/png;base64,' + application.web_icon_data"
+ /><img t-if="application.web_icon_hover_data" class="hover" t-att-src="'data:image/png;base64,' + application.web_icon_hover_data"/>
</div>
<span><t t-esc="application.name"/></span>
</div>
</td>
</tr>
</table>
-<div t-name="HomeWidget" class="oe-dashboard-home-widget"/>
-<t t-name="HomeWidget.content">
- <h3><t t-esc="widget.title"/></h3>
- <iframe width="100%" frameborder="0" t-att-src="url"/>
+
+<t t-name="web_dashboard.ApplicationTiles">
+ <div class="oe_installer">
+ <h1>Welcome to OpenERP</h1>
+ <ul>
+ <t t-foreach="applications" t-as="application" >
+ <li>
+ <a href="#" class="oe_install-module-link" t-att-data-module="application.module" t-att-data-menu="application.menu" >
+ <img t-att-src="'/web_dashboard/static/src/img/installer_' + application.module + '.png'"/>
+ <div><t t-esc="application.name"/></div>
+ </a>
+ </li>
+ </t>
+ </ul>
+ </div>
</t>
+
+<t t-name="web_dashboard.ApplicationInstaller">
+ <div class="oe_installer">
+ <h1>Welcome to OpenERP</h1>
+ <li>Remember to bookmark this page.</li>
+ <li>Remember your login: <t t-esc="session.username"/></li>
+ <li>Choose the first OpenERP Application you want to install..</li>
+ <h3>Please choose the first application to install.</h3>
+ KANBAN HERE
+ </div>
+</t>
+
</template>