vidhin mehta[Open Erp] has proposed merging
lp:~openerp-dev/openerp-web/trunk-shortcut-vme into lp:openerp-web.
Requested reviews:
OpenERP R&D Web Team (openerp-dev-web)
For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-shortcut-vme/+merge/70721
Add functionality of add and remove shortcut same as trunk and when click on
shortcut opens related views of object.
--
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-shortcut-vme/+merge/70721
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openerp-web/trunk-shortcut-vme.
=== modified file 'addons/base/controllers/main.py'
--- addons/base/controllers/main.py 2011-08-04 10:37:25 +0000
+++ addons/base/controllers/main.py 2011-08-08 11:26:35 +0000
@@ -259,9 +259,9 @@
@openerpweb.jsonrequest
def sc_list(self, req):
- return req.session.model('ir.ui.view_sc').get_sc(req.session._uid, "ir.ui.menu",
- req.session.eval_context(req.context))
-
+ return sorted(req.session.model('ir.ui.view_sc').get_sc(req.session._uid, "ir.ui.menu",
+ req.session.eval_context(req.context)), key=lambda k: k['id'])
+
@openerpweb.jsonrequest
def get_lang_list(self, req):
try:
=== modified file 'addons/base/static/src/css/base.css'
--- addons/base/static/src/css/base.css 2011-08-04 17:54:40 +0000
+++ addons/base/static/src/css/base.css 2011-08-08 11:26:35 +0000
@@ -1180,3 +1180,57 @@
-webkit-box-shadow: none;
box-shadow: none;
}
+/* Shortcuts*/
+#shortcut_add_remove {
+ height: 20px;
+ padding: 0;
+ width: 24px;
+ cursor: pointer;
+ display: inline; /*IE7 */
+ display: inline-block;
+}
+.shortcut-add {
+ background: url(../img/add-shortcut.png) no-repeat;
+ background-position: bottom;
+}
+.shortcut-remove{
+ background: url(../img/remove-shortcut.png) no-repeat;
+ background-position: bottom;
+}
+/* ================ */
+#shortcuts {
+ position: absolute;
+
+ margin: 0;
+ padding: 6px 5px;
+ top: 37px;
+ left: 197px;
+ right: 0;
+ height: 17px;
+ line-height: 1.2;
+}
+#shortcuts ul {
+ display: block;
+ overflow: hidden;
+ list-style: none;
+ white-space: nowrap;
+ padding: 0;
+ margin: 0;
+}
+#shortcuts li {
+ cursor: pointer;
+ display: -moz-inline-stack;
+ display: inline-block;
+ display: inline; /*IE7 */
+ color: #fff;
+ text-align: center;
+ border-left: 1px solid #909090;
+ padding-left: 4px;
+ font-size: 90%;
+ font-weight: normal;
+}
+#shortcuts li:first-child,
+#shortcuts li.first {
+ border-left: none;
+ padding-left: 0;
+}
=== added file 'addons/base/static/src/img/add-shortcut.png'
Binary files addons/base/static/src/img/add-shortcut.png 1970-01-01 00:00:00 +0000 and addons/base/static/src/img/add-shortcut.png 2011-08-08 11:26:35 +0000 differ
=== added file 'addons/base/static/src/img/remove-shortcut.png'
Binary files addons/base/static/src/img/remove-shortcut.png 1970-01-01 00:00:00 +0000 and addons/base/static/src/img/remove-shortcut.png 2011-08-08 11:26:35 +0000 differ
=== modified file 'addons/base/static/src/js/chrome.js'
--- addons/base/static/src/js/chrome.js 2011-08-04 08:55:16 +0000
+++ addons/base/static/src/js/chrome.js 2011-08-08 11:26:35 +0000
@@ -25,6 +25,9 @@
this.module_list = [];
this.module_loaded = {"base": true};
this.context = {};
+ this.sc_list ={};
+ this.active_id = "";
+ this.active_menu_name = "";
},
start: function() {
this.session_restore();
@@ -858,8 +861,36 @@
do_update: function() {
this.$element.html(QWeb.render("Header", this));
this.$element.find(".logout").click(this.on_logout);
- },
- on_logout: function() {}
+ this.shortcut_load();
+ },
+ shortcut_load :function(){
+ var self = this;
+ this.rpc('/base/session/sc_list', {}, function(sc_list_data){
+ self.session.sc_list = sc_list_data
+ self.$element.find('#shortcuts').html(QWeb.render('Shortcuts', {'shortcuts_pass': sc_list_data}));
+ self.shortcut_menu_load();
+ });
+ },
+
+ shortcut_menu_load :function(){
+ var self = this
+ this.$element.find('#shortcuts ul li').click(function(ev, id){
+ self.session.active_id = this.id;
+ self.rpc('/base/menu/action', {'menu_id':this.id},function(ir_menu_data){
+ if (ir_menu_data.action.length){
+ this.action_manager = new openerp.base.ActionManager(self, "oe_app");
+ this.action_manager.do_action(ir_menu_data.action[0][2]);
+ self.session.active_menu_name = ir_menu_data.action[0][2]['name'];
+ }
+ });
+ });
+ },
+ on_logout: function() {
+ this.remove();
+ },
+ remove:function(){
+ this.$element.find('#shortcuts').html(QWeb.render('Shortcuts', {'shortcuts_pass': {}}));
+ },
});
openerp.base.Menu = openerp.base.Widget.extend({
@@ -921,6 +952,7 @@
$secondary.show();
if (id) {
+ this.session.active_id = id;
this.rpc('/base/menu/action', {'menu_id': id},
this.on_menu_action_loaded);
}
@@ -935,6 +967,7 @@
on_menu_action_loaded: function(data) {
var self = this;
if (data.action.length) {
+ this.session.active_menu_name = data.action[0][2]['name'];
var action = data.action[0][2];
self.on_action(action);
}
=== modified file 'addons/base/static/src/js/search.js'
--- addons/base/static/src/js/search.js 2011-08-03 11:06:15 +0000
+++ addons/base/static/src/js/search.js 2011-08-08 11:26:35 +0000
@@ -144,7 +144,7 @@
$.when.apply(null, widget_starts).then(function () {
self.ready.resolve();
});
-
+ this.shortcut_check();
this.reload_managed_filters();
},
reload_managed_filters: function() {
@@ -344,7 +344,34 @@
// triggers refresh
this.$element.find('form').submit();
}
- }
+ },
+ shortcut_check: function(){
+ var img = "shortcut-add";
+ for(var list_shortcut=0; list_shortcut<this.session.sc_list.length; list_shortcut++){
+ if (this.session.sc_list[list_shortcut]['res_id'] == this.session.active_id)
+ {img = "shortcut-remove"}}
+ $('#shortcut_add_remove').addClass(img);
+ this.shortcut_add_remove();
+ },
+ shortcut_add_remove : function(session){
+ var self = this;
+ var shortcut_selector =$('#shortcut_add_remove');
+ var dataset_shortcut = new openerp.base.DataSet(this, 'ir.ui.view_sc');
+ shortcut_selector.click(function(ev,id){
+ if(shortcut_selector.hasClass("shortcut-remove")){
+ var unlink_id = $("li[id="+self.session.active_id+"]").attr('shortcut-id');
+ dataset_shortcut.unlink([parseInt(unlink_id)]);
+ shortcut_selector.removeClass("shortcut-remove");
+ shortcut_selector.addClass("shortcut-add"); }
+ else {
+ var data = {'user_id': self.uid, 'res_id': self.session.active_id, 'resource': 'ir.ui.menu', 'name': self.session.active_menu_name};
+ dataset_shortcut.create(data);
+ shortcut_selector.removeClass("shortcut-add");
+ shortcut_selector.addClass("shortcut-remove"); }
+ this.header = new openerp.base.Header(self, "oe_header");
+ this.header.shortcut_load();
+ });
+ },
});
/** @namespace */
@@ -482,7 +509,6 @@
return $.when.apply(null, widget_starts);
}
});
-
openerp.base.search.Input = openerp.base.search.Widget.extend( /** @lends openerp.base.search.Input# */{
/**
* @constructs
=== modified file 'addons/base/static/src/xml/base.xml'
--- addons/base/static/src/xml/base.xml 2011-08-04 15:20:45 +0000
+++ addons/base/static/src/xml/base.xml 2011-08-08 11:26:35 +0000
@@ -360,6 +360,15 @@
</div>
</div>
+ <div id="shortcuts" class="header_title">
+ </div>
+</t>
+<t t-name="Shortcuts">
+ <ul class="first">
+ <li t-foreach="shortcuts_pass" t-as="sc" t-att-id="sc.res_id" t-att-shortcut-id = "sc.id" >
+ <a><t t-esc="sc.name"/></a>
+ </li>
+ </ul>
</t>
<t t-name="Menu">
<table align="center">
@@ -867,7 +876,7 @@
</button>
</t>
<t t-name="SearchView">
- <h2 class="oe_view_title"><t t-esc="view.attrs['string']"/></h2>
+ <h2 class="oe_view_title"> <a id = "shortcut_add_remove" title="Add / Remove Shortcut..."> </a><t t-esc="view.attrs['string']"/></h2>
<form class="oe_forms">
<t t-call="SearchView.render_lines"/>
<div class="oe_search-view-buttons" style="text-align: right;">
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp