diff options
| author | Antony Lesuisse <al@openerp.com> | 2011-12-27 21:36:18 +0100 |
|---|---|---|
| committer | Antony Lesuisse <al@openerp.com> | 2011-12-27 21:36:18 +0100 |
| commit | 76fa5eda36abd38b62f8efef5b9a9fcc260bf1e1 (patch) | |
| tree | 7c51bbce7325b1eebd50bd0abd14a7b6694af84c /addons/share/static/src/js | |
| parent | c5359c5d0a59d07ff409e47221a7d0dec7477299 (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.js | 50 |
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({ }); }; + |
