summaryrefslogtreecommitdiff
path: root/addons/share/static/src/js
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2011-12-27 21:36:18 +0100
committerAntony Lesuisse <al@openerp.com>2011-12-27 21:36:18 +0100
commit76fa5eda36abd38b62f8efef5b9a9fcc260bf1e1 (patch)
tree7c51bbce7325b1eebd50bd0abd14a7b6694af84c /addons/share/static/src/js
parentc5359c5d0a59d07ff409e47221a7d0dec7477299 (diff)
[FIX] share fix and restore if_has_share
bzr revid: al@openerp.com-20111227203618-xzmeix809f2smniv
Diffstat (limited to 'addons/share/static/src/js')
-rw-r--r--addons/share/static/src/js/share.js50
1 files changed, 37 insertions, 13 deletions
diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js
index a760f41f1c8..05f45aaef42 100644
--- a/addons/share/static/src/js/share.js
+++ b/addons/share/static/src/js/share.js
@@ -1,12 +1,12 @@
-openerp.share = function(instance) {
+openerp.share = function(session) {
function launch_wizard(self, view, user_type) {
var action = view.widget_parent.action;
- var Share = new instance.web.DataSet(self, 'share.wizard', view.dataset.get_context());
- var domain = new instance.web.CompoundDomain(view.dataset.domain);
+ var Share = new session.web.DataSet(self, 'share.wizard', view.dataset.get_context());
+ var domain = new session.web.CompoundDomain(view.dataset.domain);
if (view.fields_view.type == 'form') {
- domain = new instance.web.CompoundDomain(domain, [['id', '=', view.datarecord.id]]);
+ domain = new session.web.CompoundDomain(domain, [['id', '=', view.datarecord.id]]);
}
self.rpc('/web/session/eval_domain_and_context', {
domains: [domain],
@@ -28,15 +28,33 @@ function launch_wizard(self, view, user_type) {
});
}
-instance.web.Sidebar = instance.web.Sidebar.extend({
+function has_share(yes, no) {
+ if (!session.connection.share_flag) {
+ session.connection.share_flag = $.Deferred(function() {
+ var func = new session.web.Model("share.wizard").get_func("has_share");
+ func(session.connection.uid).pipe(function(res) {
+ if(res) {
+ session.connection.share_flag.resolve();
+ } else {
+ session.connection.share_flag.reject();
+ }
+ });
+ });
+ }
+ session.connection.share_flag.done(yes).fail(no);
+}
+
+session.web.Sidebar = session.web.Sidebar.extend({
add_default_sections: function() {
this._super();
var self = this;
- self.add_items('other', [{
- label: 'Share',
- callback: self.on_sidebar_click_share,
- classname: 'oe-share',
- }]);
+ has_share(function() {
+ self.add_items('other', [{
+ label: 'Share',
+ callback: self.on_sidebar_click_share,
+ classname: 'oe-share',
+ }]);
+ });
},
on_sidebar_click_share: function(item) {
var view = this.widget_parent
@@ -44,11 +62,16 @@ instance.web.Sidebar = instance.web.Sidebar.extend({
},
});
-instance.web.ViewManagerAction.include({
+session.web.ViewManagerAction.include({
start: function() {
var self = this;
- self.$element.find('a.oe-share_link').click(self.on_click_share_link);
- self.$element.find('a.oe-share').click(self.on_click_share);
+ has_share(function() {
+ self.$element.find('a.oe-share_link').click(self.on_click_share_link);
+ self.$element.find('a.oe-share').click(self.on_click_share);
+ }, function() {
+ self.$element.find('a.oe-share_link').remove();
+ self.$element.find('a.oe-share').remove();
+ });
return this._super.apply(this, arguments);
},
on_click_share_link: function(e) {
@@ -62,3 +85,4 @@ instance.web.ViewManagerAction.include({
});
};
+