122 lines
5.9 KiB
JavaScript
122 lines
5.9 KiB
JavaScript
openerp.colors_customization = function (openerp) {
|
|
|
|
var instance = openerp;
|
|
openerp.web.chrome = {};
|
|
|
|
var QWeb = instance.web.qweb,
|
|
_t = instance.web._t;
|
|
|
|
|
|
instance.web.UserMenu = instance.web.UserMenu.extend({
|
|
do_update: function () {
|
|
var res = this._super.apply(this, arguments);
|
|
var self = this;
|
|
var fct = function() {
|
|
var $avatar = self.$el.find('.oe_topbar_avatar');
|
|
$avatar.attr('src', $avatar.data('default-src'));
|
|
if (!self.session.uid)
|
|
return;
|
|
var func = new instance.web.Model("res.users").get_func("read");
|
|
|
|
var Users = new openerp.Model('res.users');
|
|
Users.query(['name'])
|
|
.filter([['id','=',self.session.uid]])
|
|
.first().then(function(user) {
|
|
var Themes = new openerp.Model('colors.customization.theme');
|
|
Themes.query(['name','remove_menu_account','remove_menu_preferences','remove_menu_about','remove_menu_help'])
|
|
.filter([['users','=',user.id]])
|
|
.first().then(function(theme) {
|
|
if (theme) {
|
|
var $account_menu = self.$el.find("a[data-menu]");
|
|
$account_menu.each(function(index,menu_obj){
|
|
if (menu_obj.getAttribute('data-menu') == 'account'){
|
|
if(theme.remove_menu_account){
|
|
menu_obj.remove();
|
|
};
|
|
};
|
|
if (menu_obj.getAttribute('data-menu') == 'settings'){
|
|
if(theme.remove_menu_preferences){
|
|
menu_obj.remove();
|
|
};
|
|
};
|
|
if (menu_obj.getAttribute('data-menu') == 'about'){
|
|
if(theme.remove_menu_about){
|
|
menu_obj.remove();
|
|
};
|
|
};
|
|
if (menu_obj.getAttribute('data-menu') == 'help'){
|
|
if(theme.remove_menu_help){
|
|
menu_obj.remove();
|
|
};
|
|
};
|
|
});
|
|
};
|
|
});
|
|
});
|
|
|
|
return self.alive(func(self.session.uid, ["name", "company_id"])).then(function(res) {
|
|
var topbar_name = res.name;
|
|
if(instance.session.debug)
|
|
topbar_name = _.str.sprintf("%s (%s)", topbar_name, instance.session.db);
|
|
if(res.company_id[0] > 1)
|
|
topbar_name = _.str.sprintf("%s (%s)", topbar_name, res.company_id[1]);
|
|
self.$el.find('.oe_topbar_name').text(topbar_name);
|
|
if (!instance.session.debug) {
|
|
topbar_name = _.str.sprintf("%s (%s)", topbar_name, instance.session.db);
|
|
}
|
|
var avatar_src = self.session.url('/web/binary/image', {model:'res.users', field: 'image_small', id: self.session.uid});
|
|
$avatar.attr('src', avatar_src);
|
|
|
|
openerp.web.bus.trigger('resize'); // Re-trigger the reflow logic
|
|
});
|
|
};
|
|
|
|
this.update_promise = this.update_promise.then(fct, fct);
|
|
},
|
|
});
|
|
|
|
|
|
instance.web.WebClient = instance.web.WebClient.extend({
|
|
init: function(parent, client_options) {
|
|
this._super(parent);
|
|
if (client_options) {
|
|
_.extend(this.client_options, client_options);
|
|
}
|
|
this._current_state = null;
|
|
this.menu_dm = new instance.web.DropMisordered();
|
|
this.action_mutex = new $.Mutex();
|
|
this.set('title_part', {"zopenerp": ""});
|
|
|
|
|
|
var self = this;
|
|
|
|
openerp.session.rpc("/web/session/get_session_info", {}).then(function(result) {
|
|
if (result.uid) {
|
|
var Users = new openerp.Model('res.users');
|
|
Users.query(['name'])
|
|
.filter([['id','=',result.uid]])
|
|
.first().then(function(user) {
|
|
var Themes = new openerp.Model('colors.customization.theme');
|
|
Themes.query(['name','meta_title'])
|
|
.filter([['users','=',user.id]])
|
|
.first().then(function(theme) {
|
|
if (theme) {
|
|
if(theme.meta_title){
|
|
self.set('title_part', {"zopenerp": theme.meta_title});
|
|
};
|
|
|
|
};
|
|
});
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
});
|
|
}; |