forked from Techsystech/web
[REF] remove half developed functionality that allowed to create on the fly tiles, but that was limited regarding configuration
parent
b68d5ca3dd
commit
5faa0bb858
|
@ -19,7 +19,6 @@
|
||||||
"views/menu.xml",
|
"views/menu.xml",
|
||||||
"views/tile_tile.xml",
|
"views/tile_tile.xml",
|
||||||
"views/tile_category.xml",
|
"views/tile_category.xml",
|
||||||
"views/templates.xml",
|
|
||||||
],
|
],
|
||||||
"demo": [
|
"demo": [
|
||||||
"demo/tile_category.xml",
|
"demo/tile_category.xml",
|
||||||
|
|
|
@ -51,12 +51,6 @@
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Favorites menu in control panel */
|
|
||||||
.o_add_to_dashboard_tile {
|
|
||||||
/* hidden by default */
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Make dropdown menu button not affect text flow */
|
/* Make dropdown menu button not affect text flow */
|
||||||
.o_kanban_view .oe_dashboard_tile .o_dropdown_kanban {
|
.o_kanban_view .oe_dashboard_tile .o_dropdown_kanban {
|
||||||
float: none;
|
float: none;
|
||||||
|
|
|
@ -1,112 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright (C) 2010-2013 OpenERP s.a. (<http://www.openerp.com>)
|
|
||||||
Copyright (C) 2014 initOS GmbH & Co. KG (<http://initos.com>)
|
|
||||||
Copyright (C) 2018 Iván Todorovich (<ivan.todorovich@gmail.com>)
|
|
||||||
Copyright (C) 2019-Today GRAP (http://www.grap.coop)
|
|
||||||
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
|
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
odoo.define('web_dashboard_tile', function (require) {
|
|
||||||
'use strict';
|
|
||||||
var core = require('web.core');
|
|
||||||
var FavoriteMenu = require('web.FavoriteMenu');
|
|
||||||
var Domain = require('web.Domain');
|
|
||||||
var qweb = core.qweb;
|
|
||||||
var _t = core._t;
|
|
||||||
|
|
||||||
FavoriteMenu.include({
|
|
||||||
|
|
||||||
start: function () {
|
|
||||||
var self = this;
|
|
||||||
if (this.action_id === undefined) {
|
|
||||||
return this._super();
|
|
||||||
}
|
|
||||||
if (this.action.type === 'ir.actions.act_window') {
|
|
||||||
this.add_to_dashboard_available = true;
|
|
||||||
this.$('.o_favorites_menu').append(qweb.render('SearchView.addtodashboardtile'));
|
|
||||||
this.$add_to_dashboard_tile = this.$('.o_add_to_dashboard_tile');
|
|
||||||
this.$add_to_dashboard_tile_name = this.$('.o_add_to_dashboard_tile_name')[0];
|
|
||||||
|
|
||||||
// Add event on button and link clicks
|
|
||||||
this.$add_to_dashboard_tile_link = this.$('.o_add_to_dashboard_tile_link');
|
|
||||||
this.$add_to_dashboard_tile_link.click(function (e) {
|
|
||||||
e.preventDefault();
|
|
||||||
self._toggleDashboardTileMenu();
|
|
||||||
});
|
|
||||||
this.$add_to_dashboard_tile_button = this.$('.o_add_to_dashboard_tile_button');
|
|
||||||
this.$add_to_dashboard_tile_button.click(this.proxy('_addDashboardTile'));
|
|
||||||
|
|
||||||
// Add categories to the select list
|
|
||||||
this.$add_to_dashboard_tile_category = this.$('.o_add_to_dashboard_tile_category')[0];
|
|
||||||
this._rpc({
|
|
||||||
model: 'tile.category',
|
|
||||||
method: 'search_read',
|
|
||||||
args: [[], ['id', 'name']],
|
|
||||||
}).then(function (res) {
|
|
||||||
res.forEach(function(item){
|
|
||||||
var newOption = document.createElement("option");
|
|
||||||
newOption.text = item.name;
|
|
||||||
newOption.value = item.id;
|
|
||||||
self.$add_to_dashboard_tile_category.appendChild(newOption);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return this._super();
|
|
||||||
},
|
|
||||||
|
|
||||||
_toggleDashboardTileMenu: function (isOpen) {
|
|
||||||
this.$add_to_dashboard_tile_link
|
|
||||||
.toggleClass('o_closed_menu', !(_.isUndefined(isOpen)) ? !isOpen : undefined)
|
|
||||||
.toggleClass('o_open_menu', isOpen);
|
|
||||||
this.$add_to_dashboard_tile.toggle(isOpen);
|
|
||||||
if (this.$add_to_dashboard_tile_link.hasClass('o_open_menu')) {
|
|
||||||
this.$add_to_dashboard_tile_name.focus();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_addDashboardTile: function () {
|
|
||||||
var self = this;
|
|
||||||
var tile_name = this.$add_to_dashboard_tile_name.value;
|
|
||||||
var tile_category_id = this.$add_to_dashboard_tile_category.value;
|
|
||||||
|
|
||||||
if (!tile_name.length){
|
|
||||||
this.do_warn(_t("Error"), _t("Name Field is required."));
|
|
||||||
this.$add_to_dashboard_tile_name.focus();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var search_data = this.searchview.build_search_data();
|
|
||||||
var domain = this.action.domain ? this.action.domain.slice(0) : [];
|
|
||||||
|
|
||||||
_.each(search_data.domains, function (d) {
|
|
||||||
domain.push.apply(domain, Domain.prototype.stringToArray(d));
|
|
||||||
});
|
|
||||||
|
|
||||||
return this._rpc({
|
|
||||||
route: '/web_dashboard_tile/create_tile',
|
|
||||||
params: {
|
|
||||||
model_name: self.action.res_model,
|
|
||||||
name: tile_name,
|
|
||||||
category_id: tile_category_id,
|
|
||||||
domain: domain,
|
|
||||||
action_id: this.action_id,
|
|
||||||
},
|
|
||||||
}).then(function (res) {
|
|
||||||
if (res) {
|
|
||||||
self.do_notify(
|
|
||||||
_.str.sprintf(_t("'%s' added to the overview dashboard"), tile_name),
|
|
||||||
_t('Please refresh your browser for the changes to take effect.')
|
|
||||||
);
|
|
||||||
self._toggleDashboardTileMenu(false);
|
|
||||||
} else {
|
|
||||||
self.do_warn(_t("Could not add new element to the overview dashboard"));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
|
@ -1,19 +0,0 @@
|
||||||
<template>
|
|
||||||
<t t-name="SearchView.addtodashboardtile">
|
|
||||||
|
|
||||||
<a href="#" class="dropdown-item o_add_to_dashboard_tile_link o_closed_menu">Add to the Overview Dashboard</a>
|
|
||||||
<div class="dropdown-item-text o_add_to_dashboard_tile">
|
|
||||||
Name
|
|
||||||
<input class="o_input o_required_modifier o_add_to_dashboard_tile_name" type="text"/>
|
|
||||||
</div>
|
|
||||||
<div class="dropdown-item-text o_add_to_dashboard_tile">
|
|
||||||
Category
|
|
||||||
<select class="o_input o_required_modifier o_add_to_dashboard_tile_category">
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="dropdown-item-text o_add_to_dashboard_tile">
|
|
||||||
<button type="button" class="btn btn-primary o_add_to_dashboard_tile_button">Add</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</t>
|
|
||||||
</template>
|
|
|
@ -1,14 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<odoo>
|
|
||||||
|
|
||||||
<template id="assets" inherit_id="web.assets_backend">
|
|
||||||
<xpath expr="." position="inside">
|
|
||||||
<link rel="stylesheet"
|
|
||||||
href="/web_dashboard_tile/static/src/css/web_dashboard_tile.css"/>
|
|
||||||
<script type="text/javascript"
|
|
||||||
src="/web_dashboard_tile/static/src/js/web_dashboard_tile.js"/>
|
|
||||||
</xpath>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
</odoo>
|
|
Loading…
Reference in New Issue