You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
5.0 KiB
150 lines
5.0 KiB
/** @odoo-module **/
|
|
import SystrayMenu from 'web.SystrayMenu';
|
|
import Widget from 'web.Widget';
|
|
import BasicController from 'web.BasicController';
|
|
import rpc from 'web.rpc';
|
|
|
|
var SystrayWidget = Widget.extend({
|
|
template: 'SystrayShortcut',
|
|
events: {
|
|
'click .systray_favourites':'click_fav',
|
|
'click .search_view': '_onClick',
|
|
'input .input': '_onInput',
|
|
'click .search_tag':'_Click',
|
|
'click .search_view_click':'click_view',
|
|
'mouseover .search_tag':'_MouseOver',
|
|
'mouseout .search_tag' : '_MouseOut',
|
|
'click #close_button' : '_Close',
|
|
},
|
|
|
|
async willStart() {
|
|
console.log('values')
|
|
rpc.query({
|
|
model: 'button.store',
|
|
method: 'search_button',
|
|
args: [],
|
|
}).then(function (Result) {
|
|
for(var i = 0; i < Result.length ; i++){
|
|
var main = document.createElement("span");
|
|
main.classList.add("main_button");
|
|
var btn = document.createElement("button");
|
|
btn.type = "button";
|
|
btn.innerHTML = Result[i].name;
|
|
btn.setAttribute("id",Result[i].button_id);
|
|
btn.classList.add("search_view_click");
|
|
main.style.margin='5px'
|
|
var close_button = document.createElement("button");
|
|
close_button.setAttribute("id","close_button");
|
|
close_button.innerHTML ='X';
|
|
main.style.margin='5px'
|
|
main.append(btn);
|
|
main.append(close_button);
|
|
$('.button_element').append(main);
|
|
}
|
|
});
|
|
},
|
|
|
|
click_fav: function(){
|
|
document.getElementById('popup').style.display='block';
|
|
document.getElementById('add_fav').style.display='none';
|
|
},
|
|
|
|
_onInput: function(){
|
|
var vals = $(".input").val();
|
|
},
|
|
|
|
_onClick: function(e){
|
|
var input = $(".input").val();
|
|
document.getElementById('drop_list').style.display='block';
|
|
rpc.query({
|
|
model: 'ir.ui.menu',
|
|
method: 'search_read',
|
|
args: [[['name', 'ilike', input],['action', '!=', null]]],
|
|
}).then(function (Result) {
|
|
var Div = document.createElement('div');
|
|
for(var i = 0; i < Result.length ; i++){
|
|
var tag = document.createElement('div');
|
|
tag.classList.add("search_tag");
|
|
var result = document.createTextNode(Result[i].complete_name);
|
|
tag.setAttribute("id",Result[i].id);
|
|
tag.append(result);
|
|
Div.append(tag);
|
|
}
|
|
$('.dropdown_view').empty();
|
|
$('.dropdown_view').append(Div);
|
|
})
|
|
},
|
|
_MouseOver: function(ev){
|
|
var data_id = ev.target.id
|
|
document.getElementById(data_id).style.background='#D3D3D3';
|
|
},
|
|
_MouseOut: function(ev){
|
|
var data_id = ev.target.id
|
|
document.getElementById(data_id).style.background='white';
|
|
},
|
|
|
|
_Click: function(ev){
|
|
var self = this;
|
|
var vals = ev.currentTarget.textContent;
|
|
var n = vals.lastIndexOf('/');
|
|
var result = vals.substring(n + 1);
|
|
var main = document.createElement("span");
|
|
main.classList.add("main_button");
|
|
var btn = document.createElement("button");
|
|
btn.type = "button";
|
|
btn.innerHTML = result;
|
|
btn.setAttribute("id",ev.target.id);
|
|
btn.classList.add("search_view_click");
|
|
var close_button = document.createElement("button");
|
|
close_button.setAttribute("id","close_button");
|
|
close_button.innerHTML ='X';
|
|
main.style.margin='5px'
|
|
main.append(btn);
|
|
main.append(close_button);
|
|
$('.button_element').append(main);
|
|
document.getElementById('drop_list').style.display='none';
|
|
document.getElementById('popup').style.display='none';
|
|
$("#add_fav").show();
|
|
rpc.query({
|
|
model: 'button.store',
|
|
method: 'create_button',
|
|
args: [result, ev.target.id],
|
|
})
|
|
|
|
},
|
|
|
|
click_view: function(ev){
|
|
var self = this
|
|
var data_id = ev.target.id
|
|
rpc.query({
|
|
model: 'ir.ui.menu',
|
|
method: 'search_views',
|
|
args: [data_id],
|
|
}).then(function (Result) {
|
|
self.do_action({
|
|
type: 'ir.actions.act_window',
|
|
name: Result.name,
|
|
res_model: Result.model,
|
|
view_mode: Result.view,
|
|
views: [[false, Result.view]],
|
|
target: Result.target
|
|
});
|
|
|
|
});
|
|
},
|
|
_Close : function(ev){
|
|
var element = ev.target.parentElement.firstChild.id;
|
|
rpc.query({
|
|
model: 'button.store',
|
|
method: 'remove_view',
|
|
args: [element],
|
|
})
|
|
ev.target.parentElement.remove();
|
|
},
|
|
|
|
|
|
});
|
|
|
|
SystrayMenu.Items.push(SystrayWidget);
|
|
export default SystrayWidget;
|
|
|
|
|