2 openerp.share = function(instance) {
3 var QWeb = instance.web.qweb;
4 QWeb.add_template('/share/static/src/xml/share.xml');
6 function launch_wizard(self, view) {
7 var action = view.widget_parent.action;
8 var Share = new instance.web.DataSet(self, 'share.wizard', view.dataset.get_context());
9 var domain = view.dataset.domain;
11 if (view.fields_view.type == 'form') {
12 domain = new instance.web.CompoundDomain(domain, [['id', '=', view.datarecord.id]]);
20 var share_id = result.result;
21 var step1 = Share.call('go_step_1', [[share_id],], function(result) {
23 self.do_action(action);
28 var _has_share = null;
29 function if_has_share(yes, no) {
31 _has_share = $.Deferred(function() {
33 var session = instance.webclient.session;
34 session.on_session_invalid.add_last(function() { _has_share = null; });
35 var func = new instance.web.Model(session, "share.wizard").get_func("has_share");
36 func(session.uid).pipe(function(res) {
45 _has_share.done(yes).fail(no);
49 instance.web.Sidebar = instance.web.Sidebar.extend({
50 add_default_sections: function() {
53 if_has_share(function() {
54 self.add_items('other', [{
56 callback: self.on_sidebar_click_share,
57 classname: 'oe-share',
61 on_sidebar_click_share: function(item) {
62 var view = this.widget_parent
63 launch_wizard(this, view);
67 instance.web.ViewManagerAction.include({
70 if_has_share(function() {
71 self.$element.find('a.oe-share').click(self.on_click_share);
73 self.$element.find('a.oe-share').remove();
75 return this._super.apply(this, arguments);
77 on_click_share: function(e) {
79 launch_wizard(this, this.views[this.active_view].controller);