Refactore get_preferences for login and user preferences

issue3514
review1781003
This commit is contained in:
Cédric Krier committed 2013-11-28 23:16:19 +01:00
1 parent 534e6c9504
commit 0fef2ded29
1 file changed
+29 -26
+29 -26
View File
@@ -150,6 +150,32 @@ var Sao = {};
Sao.config.roundup = {};
Sao.config.roundup.url = 'http://bugs.tryton.org/roundup/';
Sao.get_preferences = function() {
var session = Sao.Session.current_session;
Sao.rpc({
'method': 'model.res.user.get_preferences',
'params': [false, {}]
}, session).then(function(preferences) {
var deferreds = [];
// TODO view_search
deferreds.push(Sao.common.MODELACCESS.load_models());
deferreds.push(Sao.common.ICONFACTORY.load_icons());
jQuery.when.apply(jQuery, deferreds).then(function() {
Sao.menu(preferences);
Sao.user_menu(preferences);
(preferences.actions || []).forEach(function(action_id) {
Sao.Action.execute(action_id, {}, null, {});
});
var title = 'Tryton';
if (!jQuery.isEmptyObject(preferences.status_bar)) {
title += ' - ' + preferences.status_bar;
}
document.title = title;
// TODO language
});
});
};
Sao.login = function() {
var dfd = jQuery.Deferred();
Sao.Session.get_credentials(dfd);
@@ -157,21 +183,7 @@ var Sao = {};
Sao.Session.current_session = session;
session.reload_context();
return session;
}).then(function(session) {
Sao.rpc({
'method': 'model.res.user.get_preferences',
'params': [false, {}]
}, session).then(function(preferences) {
var deferreds = [];
// TODO view_search
deferreds.push(Sao.common.MODELACCESS.load_models());
deferreds.push(Sao.common.ICONFACTORY.load_icons());
jQuery.when.apply(jQuery, deferreds).then(function() {
Sao.menu(preferences);
Sao.user_menu(preferences);
});
});
});
}).then(Sao.get_preferences);
};
Sao.logout = function() {
@@ -184,6 +196,7 @@ var Sao = {};
Sao.main_menu_screen.save_tree_state();
Sao.main_menu_screen = null;
}
document.title = 'Tryton';
session.do_logout();
Sao.login();
});
@@ -194,17 +207,7 @@ var Sao = {};
jQuery('#user-preferences').children().remove();
jQuery('#user-logout').children().remove();
jQuery('#menu').children().remove();
new Sao.Window.Preferences(function() {
var session = Sao.Session.current_session;
session.reload_context().done(
Sao.rpc({
'method': 'model.res.user.get_preferences',
'params': [false, {}]
}, session).then(function(preferences) {
Sao.menu(preferences);
Sao.user_menu(preferences);
}));
});
new Sao.Window.Preferences(Sao.get_preferences);
});
};