From cb7cc66a2e53c325fce682346b7930648f8f16a5 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 10 Oct 2011 16:29:53 +0200 Subject: [IMP] share: convert web part to v6.1 bzr revid: chs@openerp.com-20111010142953-90ylj17cc1416o5f --- addons/share/static/src/css/share.css | 5 ++++ addons/share/static/src/js/share.js | 43 +++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 addons/share/static/src/css/share.css create mode 100644 addons/share/static/src/js/share.js (limited to 'addons/share/static/src') diff --git a/addons/share/static/src/css/share.css b/addons/share/static/src/css/share.css new file mode 100644 index 00000000000..781bfe197f1 --- /dev/null +++ b/addons/share/static/src/css/share.css @@ -0,0 +1,5 @@ + +.openerp li.oe_share { + background: url(../img/share.png) no-repeat; + padding-left: 20px; +} diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js new file mode 100644 index 00000000000..8a8294d0f12 --- /dev/null +++ b/addons/share/static/src/js/share.js @@ -0,0 +1,43 @@ + +openerp.share = function(instance) { + +instance.web.Sidebar = instance.web.Sidebar.extend({ + + add_default_sections: function() { + this._super(); + this.add_items('Sharing', [{ + label: 'Share', + callback: this.on_sidebar_click_share, + classname: 'oe_share', + }]); + }, + + on_sidebar_click_share: function(item) { + var self = this; + var view = this.widget_parent + var action = view.widget_parent.action; + + var share_url_template = _('%s//%s/?db=%%(dbname)s&login=%%(login)s').sprintf(document.location.protocol, document.location.host); + var Share = new instance.web.DataSet(this, 'share.wizard', view.dataset.get_context()); + + Share.create({ + name: action.name, + domain: view.dataset.domain, + action_id: action.id, + share_url_template: share_url_template, + }, function(result) { + var share_id = result.result; + console.log('share_id', share_id); + + var step1 = Share.call('go_step_1', [[share_id],], function(result) { + var action = result; + console.log('step1', action); + self.do_action(action); + }); + }); + + }, + +}); + +}; -- cgit v1.2.3 From 0b803c6852af147c6f423d11754ccff88259b931 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 13 Oct 2011 17:33:02 +0200 Subject: [IMP] share: put the sidebar item in the "Other Options" section bzr revid: chs@openerp.com-20111013153302-ts5yds22n15zdb4h --- addons/share/static/src/js/share.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/share/static/src') diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js index 8a8294d0f12..96ff5dc4dd6 100644 --- a/addons/share/static/src/js/share.js +++ b/addons/share/static/src/js/share.js @@ -5,7 +5,7 @@ instance.web.Sidebar = instance.web.Sidebar.extend({ add_default_sections: function() { this._super(); - this.add_items('Sharing', [{ + this.add_items('other', [{ label: 'Share', callback: this.on_sidebar_click_share, classname: 'oe_share', -- cgit v1.2.3 From 9f964ca29d1fbf334c8bde793936822a2d1cddd7 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Fri, 14 Oct 2011 11:43:24 +0200 Subject: [IMP] share: share_url_template is read from ir_config_parameter bzr revid: chs@openerp.com-20111014094324-wpj3265vwinel3rj --- addons/share/static/src/js/share.js | 2 -- 1 file changed, 2 deletions(-) (limited to 'addons/share/static/src') diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js index 96ff5dc4dd6..68df8eec878 100644 --- a/addons/share/static/src/js/share.js +++ b/addons/share/static/src/js/share.js @@ -17,14 +17,12 @@ instance.web.Sidebar = instance.web.Sidebar.extend({ var view = this.widget_parent var action = view.widget_parent.action; - var share_url_template = _('%s//%s/?db=%%(dbname)s&login=%%(login)s').sprintf(document.location.protocol, document.location.host); var Share = new instance.web.DataSet(this, 'share.wizard', view.dataset.get_context()); Share.create({ name: action.name, domain: view.dataset.domain, action_id: action.id, - share_url_template: share_url_template, }, function(result) { var share_id = result.result; console.log('share_id', share_id); -- cgit v1.2.3 From 5de33e50224033523288fba1593da2ef5f706e9a Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Fri, 14 Oct 2011 14:12:12 +0200 Subject: [IMP] share bzr revid: chs@openerp.com-20111014121212-zyipo1v68rm7f64c --- addons/share/static/src/css/share.css | 10 +++- addons/share/static/src/js/share.js | 86 +++++++++++++++++++++++++++-------- 2 files changed, 77 insertions(+), 19 deletions(-) (limited to 'addons/share/static/src') diff --git a/addons/share/static/src/css/share.css b/addons/share/static/src/css/share.css index 781bfe197f1..3b47a065b1e 100644 --- a/addons/share/static/src/css/share.css +++ b/addons/share/static/src/css/share.css @@ -1,5 +1,13 @@ -.openerp li.oe_share { +.openerp li.oe-share { background: url(../img/share.png) no-repeat; padding-left: 20px; } + +.openerp a.oe-share { + background: url(../img/share.png) no-repeat; + display: block; + float: left; + width: 20px; + height: 20px; +} diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js index 68df8eec878..391d2ceb1b2 100644 --- a/addons/share/static/src/js/share.js +++ b/addons/share/static/src/js/share.js @@ -1,41 +1,91 @@ openerp.share = function(instance) { +var QWeb = instance.web.qweb; +QWeb.add_template('/share/static/src/xml/share.xml'); -instance.web.Sidebar = instance.web.Sidebar.extend({ - - add_default_sections: function() { - this._super(); - this.add_items('other', [{ - label: 'Share', - callback: this.on_sidebar_click_share, - classname: 'oe_share', - }]); - }, +function launch_wizard(self, view) { - on_sidebar_click_share: function(item) { - var self = this; - var view = this.widget_parent var action = view.widget_parent.action; + var Share = new instance.web.DataSet(self, 'share.wizard', view.dataset.get_context()); - var Share = new instance.web.DataSet(this, 'share.wizard', view.dataset.get_context()); + console.log(view); + + domain = view.dataset.domain; + if (view.fields_view.type == 'form') { + domain = new instance.web.CompoundDomain(domain, [['id', '=', view.datarecord.id]]); + } Share.create({ name: action.name, - domain: view.dataset.domain, + domain: domain, action_id: action.id, }, function(result) { var share_id = result.result; - console.log('share_id', share_id); - var step1 = Share.call('go_step_1', [[share_id],], function(result) { var action = result; - console.log('step1', action); self.do_action(action); }); }); +} + +var _has_share = null; +function if_has_share(yes, no) { + if (!_has_share) { + _has_share = $.Deferred(function() { + var self = this; + var session = instance.webclient.session; + session.on_session_invalid.add_last(function() { _has_share = null; }); + var func = new instance.web.Model(session, "share.wizard").get_func("has_share"); + func(session.uid).pipe(function(res) { + if(res) { + self.resolve(); + } else { + self.reject(); + } + }); + }); + } + _has_share.done(yes).fail(no); +} + +instance.web.Sidebar = instance.web.Sidebar.extend({ + + add_default_sections: function() { + this._super(); + var self = this; + if_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 + launch_wizard(this, view); }, }); + +instance.web.ViewManagerAction.include({ + start: function() { + var self = this; + if_has_share(function() { + self.$element.find('a.oe-share').click(self.on_click_share); + }, function() { + self.$element.find('a.oe-share').remove(); + }); + return this._super.apply(this, arguments); + }, + + on_click_share: function(e) { + e.preventDefault(); + launch_wizard(this, this.views[this.active_view].controller); + }, +}); + }; -- cgit v1.2.3 From 2102484af45a6bfae846db2a317f5b0561d4941c Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Tue, 25 Oct 2011 11:40:09 +0200 Subject: [FIX] share: add missing file bzr revid: chs@openerp.com-20111025094009-s9mgam03rww08s08 --- addons/share/static/src/xml/share.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 addons/share/static/src/xml/share.xml (limited to 'addons/share/static/src') diff --git a/addons/share/static/src/xml/share.xml b/addons/share/static/src/xml/share.xml new file mode 100644 index 00000000000..9a1363846a0 --- /dev/null +++ b/addons/share/static/src/xml/share.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + -- cgit v1.2.3