From f26fea2a09ab5841a22c0413e6d51c932cf9cac3 Mon Sep 17 00:00:00 2001 From: "Dharti Ratani (Open ERP)" Date: Fri, 8 Mar 2013 19:00:39 +0530 Subject: [IMP]Adding virtual entry of gdoc template for a particular record to more based on filter bzr revid: dhr@tinyerp.com-20130308133039-lme2p04ak2pviurt --- addons/google_docs/static/src/js/gdocs.js | 86 ++++++++++++++++++++----------- 1 file changed, 56 insertions(+), 30 deletions(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index 1cc511ef4d9..a0f1cba3b9b 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -3,38 +3,64 @@ var _t = instance.web._t, QWeb = instance.web.qweb; instance.web.Sidebar.include({ - redraw: function() { + + start: function() { var self = this; + var ids this._super.apply(this, arguments); - self.$el.find('.oe_sidebar_add_attachment').after(QWeb.render('AddGoogleDocumentItem', {widget: self})) - self.$el.find('.oe_sidebar_add_google_doc').on('click', function (e) { - self.on_google_doc(); - }); - }, - on_google_doc: function() { - var self = this; var view = self.getParent(); - var ids = ( view.fields_view.type != "form" )? view.groups.get_selection().ids : [ view.datarecord.id ]; - if( !_.isEmpty(ids) ){ - view.sidebar_eval_context().done(function (context) { - var ds = new instance.web.DataSet(this, 'ir.attachment', context); - ds.call('google_doc_get', [view.dataset.model, ids, context]).done(function(r) { - if (r == 'False') { - var params = { - error: response, - message: _t("The user google credentials are not set yet. Contact your administrator for help.") - } - $(openerp.web.qweb.render("DialogWarning", params)).dialog({ - title: _t("User Google credentials are not yet set."), - modal: true, - }); - } - }).done(function(r){ - window.open(r.url,"_blank"); - view.reload(); - }); - }); - } - } + var result; + if(view.fields_view.type == "form"){ + ids = [] + view.on("load_record", self, function(r){ + ids = [r.id] + self.add_gdoc_items(view,ids) + }); + } + }, + + add_gdoc_items: function(view,ids){ + $('.oe_share_gdoc').remove(); + var self = this; + if( !_.isEmpty(ids) ){ + view.sidebar_eval_context().done(function (context) { + var ds = new instance.web.DataSet(this, 'ir.attachment', context); + ds.call('google_doc_get', [view.dataset.model, ids, context]).done(function(r) { + console.log("thjoid ",self.items['other']) + if(!_.isEmpty(r)){ + _.each(r,function(res){ + _.each(self.items['other'],function(others){ + if(others['label'] == res){ + self.items['other'].pop() + } + }) + self.add_items('other', [ + { label: res, + callback: self.on_google_doc, + classname: 'oe_share_gdoc' }, + ]); + }) + } + }); + }); + } + }, + + on_google_doc: function(r) { + var self = this; + var view = self.getParent(); + var ids = ( view.fields_view.type != "form" )? view.groups.get_selection().ids : [ view.datarecord.id ]; + if( !_.isEmpty(ids) ){ + view.sidebar_eval_context().done(function (context) { + var ds = new instance.web.DataSet(this, 'ir.attachment', context); + ds.call('get_attachment', [view.dataset.model, r, ids, context]).done(function(res) { + console.log('resssssss',res) + window.open(res.url,"_blank"); + view.reload(); + }) + + }); + } + } }); }; -- cgit v1.2.3 From 4970a21c7f4d757c1b75cc37e04bccece70391bd Mon Sep 17 00:00:00 2001 From: "Dharti Ratani (Open ERP)" Date: Mon, 11 Mar 2013 16:56:49 +0530 Subject: [Imp]Removing the virtual item while moving to next record bzr revid: dhr@tinyerp.com-20130311112649-wzt7n8h718g7cabv --- addons/google_docs/static/src/js/gdocs.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index a0f1cba3b9b..e5461e2c919 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -19,21 +19,25 @@ var _t = instance.web._t, } }, - add_gdoc_items: function(view,ids){ - $('.oe_share_gdoc').remove(); + add_gdoc_items: function(view,ids){ var self = this; + var gdoc_item = _.indexOf(_.pluck(self.items.other,'classname'),'oe_share_gdoc'); + if(gdoc_item !== -1) + { + self.items.other.splice(gdoc_item,1); + } if( !_.isEmpty(ids) ){ view.sidebar_eval_context().done(function (context) { var ds = new instance.web.DataSet(this, 'ir.attachment', context); ds.call('google_doc_get', [view.dataset.model, ids, context]).done(function(r) { - console.log("thjoid ",self.items['other']) if(!_.isEmpty(r)){ _.each(r,function(res){ - _.each(self.items['other'],function(others){ - if(others['label'] == res){ - self.items['other'].pop() - } - }) + var g_item = _.indexOf(_.pluck(self.items.other,'label'),res); + if(g_item !== -1) + { + self.items.other.splice(g_item,1); + } + self.add_items('other', [ { label: res, callback: self.on_google_doc, @@ -46,6 +50,7 @@ var _t = instance.web._t, } }, + on_google_doc: function(r) { var self = this; var view = self.getParent(); @@ -54,7 +59,6 @@ var _t = instance.web._t, view.sidebar_eval_context().done(function (context) { var ds = new instance.web.DataSet(this, 'ir.attachment', context); ds.call('get_attachment', [view.dataset.model, r, ids, context]).done(function(res) { - console.log('resssssss',res) window.open(res.url,"_blank"); view.reload(); }) -- cgit v1.2.3 From deb23a62b75e332e0b6a6f24df8b8c5d704ffc98 Mon Sep 17 00:00:00 2001 From: "Rajesh Prajapati (OpenERP)" Date: Mon, 1 Apr 2013 13:33:23 +0530 Subject: [IMP] google_docs : changes for code and rpa review 28 march bzr revid: rpr@tinyerp.com-20130401080323-vdw9rgdvzi0qyqrf --- addons/google_docs/static/src/js/gdocs.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index e5461e2c919..5b179f41ee6 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -14,32 +14,33 @@ var _t = instance.web._t, ids = [] view.on("load_record", self, function(r){ ids = [r.id] - self.add_gdoc_items(view,ids) + self.add_gdoc_items(view, r.id) }); } }, - add_gdoc_items: function(view,ids){ + add_gdoc_items: function(view, res_id){ var self = this; var gdoc_item = _.indexOf(_.pluck(self.items.other,'classname'),'oe_share_gdoc'); if(gdoc_item !== -1) { self.items.other.splice(gdoc_item,1); } - if( !_.isEmpty(ids) ){ + if( res_id ){ view.sidebar_eval_context().done(function (context) { var ds = new instance.web.DataSet(this, 'ir.attachment', context); - ds.call('google_doc_get', [view.dataset.model, ids, context]).done(function(r) { + ds.call('get_google_docs_config', [view.dataset.model, res_id, context]).done(function(r) { if(!_.isEmpty(r)){ _.each(r,function(res){ - var g_item = _.indexOf(_.pluck(self.items.other,'label'),res); + var g_item = _.indexOf(_.pluck(self.items.other,'label'),res.name); if(g_item !== -1) { self.items.other.splice(g_item,1); } self.add_items('other', [ - { label: res, + { label: res.name, + config_id: res.id, callback: self.on_google_doc, classname: 'oe_share_gdoc' }, ]); @@ -51,14 +52,14 @@ var _t = instance.web._t, }, - on_google_doc: function(r) { + on_google_doc: function(doc_item) { var self = this; var view = self.getParent(); var ids = ( view.fields_view.type != "form" )? view.groups.get_selection().ids : [ view.datarecord.id ]; if( !_.isEmpty(ids) ){ view.sidebar_eval_context().done(function (context) { var ds = new instance.web.DataSet(this, 'ir.attachment', context); - ds.call('get_attachment', [view.dataset.model, r, ids, context]).done(function(res) { + ds.call('get_google_attachment', [doc_item.config_id, view.datarecord.id, context]).done(function(res) { window.open(res.url,"_blank"); view.reload(); }) -- cgit v1.2.3 From 32352d06953c5b64c2aa91002262ae5efcb5ecbf Mon Sep 17 00:00:00 2001 From: "Parth Gajjar (Open ERP)" Date: Thu, 9 May 2013 19:40:01 +0530 Subject: [FiX] added OAuth , google account login through OAuth bzr revid: pga@tinyerp.com-20130509141001-s9gtsdfnwxlgvsls --- addons/google_docs/static/src/js/gdocs.js | 202 +++++++++++++++++++++--------- 1 file changed, 140 insertions(+), 62 deletions(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index 5b179f41ee6..1d0fbd42be1 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -1,71 +1,149 @@ -openerp.google_docs = function(instance, m) { -var _t = instance.web._t, - QWeb = instance.web.qweb; - +openerp.google_docs = function (instance, m) { + var _t = instance.web._t, + QWeb = instance.web.qweb; + instance.web.Sidebar.include({ - - start: function() { + start: function () { var self = this; - var ids + var ids this._super.apply(this, arguments); var view = self.getParent(); var result; - if(view.fields_view.type == "form"){ - ids = [] - view.on("load_record", self, function(r){ - ids = [r.id] - self.add_gdoc_items(view, r.id) - }); - } - }, + if (view.fields_view.type == "form") { + ids = [] + view.on("load_record", self, function (r) { + ids = [r.id] + self.add_gdoc_items(view, r.id) + }); + } + }, + + add_gdoc_items: function (view, res_id) { + var self = this; + var gdoc_item = _.indexOf(_.pluck(self.items.other, 'classname'), 'oe_share_gdoc'); + if (gdoc_item !== -1) { + self.items.other.splice(gdoc_item, 1); + } + if (res_id) { + view.sidebar_eval_context().done(function (context) { + var ds = new instance.web.DataSet(this, 'ir.attachment', context); + ds.call('get_google_docs_config', [view.dataset.model, res_id, context]).done(function (r) { + if (!_.isEmpty(r)) { + _.each(r, function (res) { + var g_item = _.indexOf(_.pluck(self.items.other, 'label'), res.name); + if (g_item !== -1) { + self.items.other.splice(g_item, 1); + } + self.add_items('other', [{ + label: res.name, + config_id: res.id, + res_id: res_id, + res_model: view.dataset.model, + callback: self.on_google_doc, + classname: 'oe_share_gdoc' + }, + ]); + }) + } + }); + }); + } + }, + fetch: function(model, fields, domain, ctx){ + return new instance.web.Model(model).query(fields).filter(domain).context(ctx).all() + }, + on_google_doc: function (doc_item) { + var self = this; + self.config = doc_item; + var loaded = self.fetch('google.docs.config',['gdocs_resource_id','google_client_id'],[['id','=',doc_item.config_id]]) + .then(function(configs){ + var ds = new instance.web.DataSet(self, 'google.docs.config'); + ds.call('get_google_doc_name', [[doc_item.config_id], doc_item.res_id]).done(function (r) { + if (!_.isEmpty(r)) { + self.OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?'; + self.VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='; + self.SCOPES = 'https://www.googleapis.com/auth/drive'; + self.CLIENT_ID = configs[0].google_client_id;//'39623646228-4de6gmcai1n3mj14h08bcir2u42ln07e.apps.googleusercontent.com'; + //self.GDOCS_TEMPLATE_URL = configs[0].gdocs_template_url;//'https://docs.google.com/document/d/1FOqv2iDaRcjdDz577dECgVvqhYN7bgAg3vB9M7DiCdM/edit'; + self.gdoc_name = r[doc_item.config_id]['name']; + //var pattern = /(\/d\/)(.[^/]*)/; + self.GDOCS_TEMPLATE_ID = configs[0].gdocs_resource_id;//self.GDOCS_TEMPLATE_URL.match(pattern)[2]; + self.gdoc_url = r[doc_item.config_id]['url']; + self.handleClientLoad(); + + } + }); + }); + }, + + handleClientLoad: function () { + var self = this; + window.setTimeout(function () { + self.checkAuth(self) + }, 1); + }, + + checkAuth: function (self) { + gapi.auth.authorize({ + 'client_id': self.CLIENT_ID, + 'scope': self.SCOPES, + 'immediate': true + }, function (authResult) { + self.handleAuthResult(self, authResult) + }); + }, - add_gdoc_items: function(view, res_id){ - var self = this; - var gdoc_item = _.indexOf(_.pluck(self.items.other,'classname'),'oe_share_gdoc'); - if(gdoc_item !== -1) - { - self.items.other.splice(gdoc_item,1); - } - if( res_id ){ - view.sidebar_eval_context().done(function (context) { - var ds = new instance.web.DataSet(this, 'ir.attachment', context); - ds.call('get_google_docs_config', [view.dataset.model, res_id, context]).done(function(r) { - if(!_.isEmpty(r)){ - _.each(r,function(res){ - var g_item = _.indexOf(_.pluck(self.items.other,'label'),res.name); - if(g_item !== -1) - { - self.items.other.splice(g_item,1); - } - - self.add_items('other', [ - { label: res.name, - config_id: res.id, - callback: self.on_google_doc, - classname: 'oe_share_gdoc' }, - ]); - }) - } - }); - }); - } - }, + handleAuthResult: function (self, authResult) { + if (authResult && !authResult.error) { + self.clientLoad(self); + } else { + gapi.auth.authorize({ + 'client_id': self.CLIENT_ID, + 'scope': self.SCOPES, + 'immediate': false + }, + self.handleAuthResult); + } + }, + clientLoad: function (self) { + gapi.client.load('drive', 'v2', function () { + if (self.gdoc_url == false){ + self.copyFile(self.config, self.GDOCS_TEMPLATE_ID, self.gdoc_name); + } + else{ + window.open(self.gdoc_url, '_newtab'); + } + }); + }, - on_google_doc: function(doc_item) { - var self = this; - var view = self.getParent(); - var ids = ( view.fields_view.type != "form" )? view.groups.get_selection().ids : [ view.datarecord.id ]; - if( !_.isEmpty(ids) ){ - view.sidebar_eval_context().done(function (context) { - var ds = new instance.web.DataSet(this, 'ir.attachment', context); - ds.call('get_google_attachment', [doc_item.config_id, view.datarecord.id, context]).done(function(res) { - window.open(res.url,"_blank"); - view.reload(); - }) - - }); - } - } + copyFile: function (config, originFileId, copyTitle) { + var body = { + 'title': copyTitle + }; + var request = gapi.client.drive.files.copy({ + 'fileId': originFileId, + 'resource': body + }); + request.execute(function (resp) { + console.log('Copy ID: ' + resp.id); + var get_new_file = gapi.client.drive.files.get({ + 'fileId': resp.id + }); + get_new_file.execute(function (file) { + var ds = new instance.web.DataSet(self, 'ir.attachment'); + vals = { + 'res_model': config.res_model, + 'res_id': config.res_id, + 'type': 'url', + 'name': copyTitle, + 'url': file.alternateLink + } + ds.call('create', [vals]).done(function (r) { + window.open(file.alternateLink, '_newtab'); + }); + }); + }); + }, }); -}; +}; \ No newline at end of file -- cgit v1.2.3 From ff3fded96e208f989ee35cfc714610adc0fbc6a4 Mon Sep 17 00:00:00 2001 From: "Parth Gajjar (Open ERP)" Date: Fri, 10 May 2013 12:05:01 +0530 Subject: [IMP] Improved Code bzr revid: pga@tinyerp.com-20130510063501-szrjvvh4jhzy4x7j --- addons/google_docs/static/src/js/gdocs.js | 72 +++++++++++++++---------------- 1 file changed, 36 insertions(+), 36 deletions(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index 1d0fbd42be1..c4769bed4dd 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -26,7 +26,7 @@ openerp.google_docs = function (instance, m) { } if (res_id) { view.sidebar_eval_context().done(function (context) { - var ds = new instance.web.DataSet(this, 'ir.attachment', context); + var ds = new instance.web.DataSet(this, 'google.docs.config', context); ds.call('get_google_docs_config', [view.dataset.model, res_id, context]).done(function (r) { if (!_.isEmpty(r)) { _.each(r, function (res) { @@ -49,30 +49,29 @@ openerp.google_docs = function (instance, m) { }); } }, - fetch: function(model, fields, domain, ctx){ + + fetch: function (model, fields, domain, ctx) { return new instance.web.Model(model).query(fields).filter(domain).context(ctx).all() }, + on_google_doc: function (doc_item) { - var self = this; - self.config = doc_item; - var loaded = self.fetch('google.docs.config',['gdocs_resource_id','google_client_id'],[['id','=',doc_item.config_id]]) - .then(function(configs){ - var ds = new instance.web.DataSet(self, 'google.docs.config'); + var self = this; + self.config = doc_item; + var loaded = self.fetch('google.docs.config', ['gdocs_resource_id', 'google_client_id'], [['id', '=', doc_item.config_id]]) + .then(function (configs) { + var ds = new instance.web.DataSet(self, 'google.docs.config'); ds.call('get_google_doc_name', [[doc_item.config_id], doc_item.res_id]).done(function (r) { if (!_.isEmpty(r)) { - self.OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?'; - self.VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='; - self.SCOPES = 'https://www.googleapis.com/auth/drive'; - self.CLIENT_ID = configs[0].google_client_id;//'39623646228-4de6gmcai1n3mj14h08bcir2u42ln07e.apps.googleusercontent.com'; - //self.GDOCS_TEMPLATE_URL = configs[0].gdocs_template_url;//'https://docs.google.com/document/d/1FOqv2iDaRcjdDz577dECgVvqhYN7bgAg3vB9M7DiCdM/edit'; - self.gdoc_name = r[doc_item.config_id]['name']; - //var pattern = /(\/d\/)(.[^/]*)/; - self.GDOCS_TEMPLATE_ID = configs[0].gdocs_resource_id;//self.GDOCS_TEMPLATE_URL.match(pattern)[2]; - self.gdoc_url = r[doc_item.config_id]['url']; - self.handleClientLoad(); - + self.OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?'; + self.VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='; + self.SCOPES = 'https://www.googleapis.com/auth/drive'; + self.CLIENT_ID = configs[0].google_client_id; + self.GDOC_NAME = r[doc_item.config_id]['name']; + self.GDOCS_TEMPLATE_ID = configs[0].gdocs_resource_id; + self.GDOC_URL = r[doc_item.config_id]['url']; + self.handleClientLoad(); } - }); + }); }); }, @@ -94,6 +93,7 @@ openerp.google_docs = function (instance, m) { }, handleAuthResult: function (self, authResult) { + if (authResult && !authResult.error) { self.clientLoad(self); } else { @@ -101,19 +101,19 @@ openerp.google_docs = function (instance, m) { 'client_id': self.CLIENT_ID, 'scope': self.SCOPES, 'immediate': false - }, - self.handleAuthResult); + },function (authResult) { + self.handleAuthResult(self, authResult) + }); } }, clientLoad: function (self) { gapi.client.load('drive', 'v2', function () { - if (self.gdoc_url == false){ - self.copyFile(self.config, self.GDOCS_TEMPLATE_ID, self.gdoc_name); - } - else{ - window.open(self.gdoc_url, '_newtab'); - } + if (self.GDOC_URL == false) { + self.copyFile(self.config, self.GDOCS_TEMPLATE_ID, self.GDOC_NAME); + } else { + window.open(self.GDOC_URL, '_blank'); + } }); }, @@ -131,16 +131,16 @@ openerp.google_docs = function (instance, m) { 'fileId': resp.id }); get_new_file.execute(function (file) { - var ds = new instance.web.DataSet(self, 'ir.attachment'); - vals = { - 'res_model': config.res_model, - 'res_id': config.res_id, - 'type': 'url', - 'name': copyTitle, - 'url': file.alternateLink - } + var ds = new instance.web.DataSet(self, 'ir.attachment'); + vals = { + 'res_model': config.res_model, + 'res_id': config.res_id, + 'type': 'url', + 'name': copyTitle, + 'url': file.alternateLink + } ds.call('create', [vals]).done(function (r) { - window.open(file.alternateLink, '_newtab'); + window.open(file.alternateLink, '_blank'); }); }); }); -- cgit v1.2.3 From d1dc5368edc97f35938b7198d1e0621fae1d30a8 Mon Sep 17 00:00:00 2001 From: "Parth Gajjar (Open ERP)" Date: Fri, 17 May 2013 15:49:31 +0530 Subject: [ADD] Added open with option from drive, Added Documentation for Drive Integration, Added Discription In Google Docs Detail bzr revid: pga@tinyerp.com-20130517101931-ep3fmv5tdtcuddtx --- addons/google_docs/static/src/js/gdocs.js | 60 ++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 13 deletions(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index c4769bed4dd..0e0a633ab1c 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -1,7 +1,7 @@ openerp.google_docs = function (instance, m) { var _t = instance.web._t, QWeb = instance.web.qweb; - + instance.web.Sidebar.include({ start: function () { var self = this; @@ -9,6 +9,7 @@ openerp.google_docs = function (instance, m) { this._super.apply(this, arguments); var view = self.getParent(); var result; + this.check_url(); if (view.fields_view.type == "form") { ids = [] view.on("load_record", self, function (r) { @@ -17,7 +18,36 @@ openerp.google_docs = function (instance, m) { }); } }, - + check_url: function () { + /* This function check URL and if there is 'state' object (dictionary) sent by google, + * it will fetch file 'exportIds' from 'state' object and redirect to corresponding record in openerp + */ + self = this; + var state = this.getUrlVars(); + if (state) { + file_obj = JSON.parse(state); + var loaded = self.fetch('ir.attachment', ['res_model', 'res_id', 'url', 'name'], [['url', 'ilike', '%' + file_obj.exportIds[0] + '%']]) + .then(function (att) { + console.log(att); + if (att.length != 0) { + url = window.location.href.replace(/(\&)(.*)/, ""); + url = url + "#id=" + att[0].res_id + "&model=" + att[0].res_model; + $('body').hide(); + window.open(url, '_self'); + } + }); + } + }, + getUrlVars: function () { + var parts=unescape(window.location.href); + var n=parts.match(/(state=)(.*})/); + if(n && n.length>2){ + return n[2]; + } + else{ + return false + } + }, add_gdoc_items: function (view, res_id) { var self = this; var gdoc_item = _.indexOf(_.pluck(self.items.other, 'classname'), 'oe_share_gdoc'); @@ -49,11 +79,11 @@ openerp.google_docs = function (instance, m) { }); } }, - + fetch: function (model, fields, domain, ctx) { return new instance.web.Model(model).query(fields).filter(domain).context(ctx).all() }, - + on_google_doc: function (doc_item) { var self = this; self.config = doc_item; @@ -64,7 +94,7 @@ openerp.google_docs = function (instance, m) { if (!_.isEmpty(r)) { self.OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?'; self.VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='; - self.SCOPES = 'https://www.googleapis.com/auth/drive'; + self.SCOPES = 'https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.install'; self.CLIENT_ID = configs[0].google_client_id; self.GDOC_NAME = r[doc_item.config_id]['name']; self.GDOCS_TEMPLATE_ID = configs[0].gdocs_resource_id; @@ -74,14 +104,14 @@ openerp.google_docs = function (instance, m) { }); }); }, - + handleClientLoad: function () { var self = this; window.setTimeout(function () { self.checkAuth(self) }, 1); }, - + checkAuth: function (self) { gapi.auth.authorize({ 'client_id': self.CLIENT_ID, @@ -91,9 +121,9 @@ openerp.google_docs = function (instance, m) { self.handleAuthResult(self, authResult) }); }, - + handleAuthResult: function (self, authResult) { - + if (authResult && !authResult.error) { self.clientLoad(self); } else { @@ -101,12 +131,12 @@ openerp.google_docs = function (instance, m) { 'client_id': self.CLIENT_ID, 'scope': self.SCOPES, 'immediate': false - },function (authResult) { + }, function (authResult) { self.handleAuthResult(self, authResult) }); } }, - + clientLoad: function (self) { gapi.client.load('drive', 'v2', function () { if (self.GDOC_URL == false) { @@ -116,10 +146,14 @@ openerp.google_docs = function (instance, m) { } }); }, - + copyFile: function (config, originFileId, copyTitle) { + discription = window.location.href; + discription = discription.replace(/(\&)?menu_id(.*)/, ""); + discription = discription.replace(/(\&)?action(.*)/, ""); var body = { - 'title': copyTitle + 'title': copyTitle, + "description": 'Click Below link for open record in OpenERP\n' + discription, }; var request = gapi.client.drive.files.copy({ 'fileId': originFileId, -- cgit v1.2.3 From 5b9b00631de5020bd5560fe788eab7a703815253 Mon Sep 17 00:00:00 2001 From: "Parth Gajjar (Open ERP)" Date: Thu, 23 May 2013 16:11:55 +0530 Subject: [ADD] Added OAuth integration through python, Added Documentation bzr revid: pga@tinyerp.com-20130523104155-83gmp2gucvackppv --- addons/google_docs/static/src/js/gdocs.js | 123 ++---------------------------- 1 file changed, 8 insertions(+), 115 deletions(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index 0e0a633ab1c..505815f4b2e 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -9,7 +9,6 @@ openerp.google_docs = function (instance, m) { this._super.apply(this, arguments); var view = self.getParent(); var result; - this.check_url(); if (view.fields_view.type == "form") { ids = [] view.on("load_record", self, function (r) { @@ -18,36 +17,6 @@ openerp.google_docs = function (instance, m) { }); } }, - check_url: function () { - /* This function check URL and if there is 'state' object (dictionary) sent by google, - * it will fetch file 'exportIds' from 'state' object and redirect to corresponding record in openerp - */ - self = this; - var state = this.getUrlVars(); - if (state) { - file_obj = JSON.parse(state); - var loaded = self.fetch('ir.attachment', ['res_model', 'res_id', 'url', 'name'], [['url', 'ilike', '%' + file_obj.exportIds[0] + '%']]) - .then(function (att) { - console.log(att); - if (att.length != 0) { - url = window.location.href.replace(/(\&)(.*)/, ""); - url = url + "#id=" + att[0].res_id + "&model=" + att[0].res_model; - $('body').hide(); - window.open(url, '_self'); - } - }); - } - }, - getUrlVars: function () { - var parts=unescape(window.location.href); - var n=parts.match(/(state=)(.*})/); - if(n && n.length>2){ - return n[2]; - } - else{ - return false - } - }, add_gdoc_items: function (view, res_id) { var self = this; var gdoc_item = _.indexOf(_.pluck(self.items.other, 'classname'), 'oe_share_gdoc'); @@ -65,7 +34,7 @@ openerp.google_docs = function (instance, m) { self.items.other.splice(g_item, 1); } self.add_items('other', [{ - label: res.name, + label: res.name+ '', config_id: res.id, res_id: res_id, res_model: view.dataset.model, @@ -90,94 +59,18 @@ openerp.google_docs = function (instance, m) { var loaded = self.fetch('google.docs.config', ['gdocs_resource_id', 'google_client_id'], [['id', '=', doc_item.config_id]]) .then(function (configs) { var ds = new instance.web.DataSet(self, 'google.docs.config'); - ds.call('get_google_doc_name', [[doc_item.config_id], doc_item.res_id]).done(function (r) { + ds.call('get_google_doc_name', [[doc_item.config_id], doc_item.res_id,configs[0].gdocs_resource_id]).done(function (r) { if (!_.isEmpty(r)) { - self.OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?'; - self.VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='; - self.SCOPES = 'https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.install'; - self.CLIENT_ID = configs[0].google_client_id; - self.GDOC_NAME = r[doc_item.config_id]['name']; - self.GDOCS_TEMPLATE_ID = configs[0].gdocs_resource_id; - self.GDOC_URL = r[doc_item.config_id]['url']; - self.handleClientLoad(); + _.each(r, function (res) { + if(res.url) + { + window.open(res.url, '_blank'); + } + }); } }); }); }, - handleClientLoad: function () { - var self = this; - window.setTimeout(function () { - self.checkAuth(self) - }, 1); - }, - - checkAuth: function (self) { - gapi.auth.authorize({ - 'client_id': self.CLIENT_ID, - 'scope': self.SCOPES, - 'immediate': true - }, function (authResult) { - self.handleAuthResult(self, authResult) - }); - }, - - handleAuthResult: function (self, authResult) { - - if (authResult && !authResult.error) { - self.clientLoad(self); - } else { - gapi.auth.authorize({ - 'client_id': self.CLIENT_ID, - 'scope': self.SCOPES, - 'immediate': false - }, function (authResult) { - self.handleAuthResult(self, authResult) - }); - } - }, - - clientLoad: function (self) { - gapi.client.load('drive', 'v2', function () { - if (self.GDOC_URL == false) { - self.copyFile(self.config, self.GDOCS_TEMPLATE_ID, self.GDOC_NAME); - } else { - window.open(self.GDOC_URL, '_blank'); - } - }); - }, - - copyFile: function (config, originFileId, copyTitle) { - discription = window.location.href; - discription = discription.replace(/(\&)?menu_id(.*)/, ""); - discription = discription.replace(/(\&)?action(.*)/, ""); - var body = { - 'title': copyTitle, - "description": 'Click Below link for open record in OpenERP\n' + discription, - }; - var request = gapi.client.drive.files.copy({ - 'fileId': originFileId, - 'resource': body - }); - request.execute(function (resp) { - console.log('Copy ID: ' + resp.id); - var get_new_file = gapi.client.drive.files.get({ - 'fileId': resp.id - }); - get_new_file.execute(function (file) { - var ds = new instance.web.DataSet(self, 'ir.attachment'); - vals = { - 'res_model': config.res_model, - 'res_id': config.res_id, - 'type': 'url', - 'name': copyTitle, - 'url': file.alternateLink - } - ds.call('create', [vals]).done(function (r) { - window.open(file.alternateLink, '_blank'); - }); - }); - }); - }, }); }; \ No newline at end of file -- cgit v1.2.3 From 0fec1053f3ef27da8e09d54d6ba5817ab716eb32 Mon Sep 17 00:00:00 2001 From: "Parth Gajjar (Open ERP)" Date: Wed, 29 May 2013 12:37:23 +0530 Subject: [IMP] Added alert, Changed logo bzr revid: pga@tinyerp.com-20130529070723-ruz42rqh798h4w0a --- addons/google_docs/static/src/js/gdocs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index 505815f4b2e..9d15cb37a2b 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -34,7 +34,7 @@ openerp.google_docs = function (instance, m) { self.items.other.splice(g_item, 1); } self.add_items('other', [{ - label: res.name+ '', + label: res.name+ '', config_id: res.id, res_id: res_id, res_model: view.dataset.model, -- cgit v1.2.3 From 0bca00c42c87c093e7ff54d7542c0f7fd083253c Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Tue, 25 Jun 2013 12:58:19 +0200 Subject: [FIX]google_docs: generic function moved in base account bzr revid: dle@openerp.com-20130625105819-l8d2zu0vf4tzne2t --- addons/google_docs/static/src/js/gdocs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js index 9d15cb37a2b..24385b3b85e 100644 --- a/addons/google_docs/static/src/js/gdocs.js +++ b/addons/google_docs/static/src/js/gdocs.js @@ -56,7 +56,7 @@ openerp.google_docs = function (instance, m) { on_google_doc: function (doc_item) { var self = this; self.config = doc_item; - var loaded = self.fetch('google.docs.config', ['gdocs_resource_id', 'google_client_id'], [['id', '=', doc_item.config_id]]) + var loaded = self.fetch('google.docs.config', ['gdocs_resource_id', 'google_docs_client_id'], [['id', '=', doc_item.config_id]]) .then(function (configs) { var ds = new instance.web.DataSet(self, 'google.docs.config'); ds.call('get_google_doc_name', [[doc_item.config_id], doc_item.res_id,configs[0].gdocs_resource_id]).done(function (r) { -- cgit v1.2.3 From c74517990f1bec61e52e455be4ec12b6135015a6 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Wed, 26 Jun 2013 11:30:19 +0200 Subject: [RENAME]google_docs => google_drive bzr revid: dle@openerp.com-20130626093019-krwt5eamagmd5amu --- addons/google_docs/static/src/js/gdocs.js | 76 ------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 addons/google_docs/static/src/js/gdocs.js (limited to 'addons/google_docs/static/src/js/gdocs.js') diff --git a/addons/google_docs/static/src/js/gdocs.js b/addons/google_docs/static/src/js/gdocs.js deleted file mode 100644 index 24385b3b85e..00000000000 --- a/addons/google_docs/static/src/js/gdocs.js +++ /dev/null @@ -1,76 +0,0 @@ -openerp.google_docs = function (instance, m) { - var _t = instance.web._t, - QWeb = instance.web.qweb; - - instance.web.Sidebar.include({ - start: function () { - var self = this; - var ids - this._super.apply(this, arguments); - var view = self.getParent(); - var result; - if (view.fields_view.type == "form") { - ids = [] - view.on("load_record", self, function (r) { - ids = [r.id] - self.add_gdoc_items(view, r.id) - }); - } - }, - add_gdoc_items: function (view, res_id) { - var self = this; - var gdoc_item = _.indexOf(_.pluck(self.items.other, 'classname'), 'oe_share_gdoc'); - if (gdoc_item !== -1) { - self.items.other.splice(gdoc_item, 1); - } - if (res_id) { - view.sidebar_eval_context().done(function (context) { - var ds = new instance.web.DataSet(this, 'google.docs.config', context); - ds.call('get_google_docs_config', [view.dataset.model, res_id, context]).done(function (r) { - if (!_.isEmpty(r)) { - _.each(r, function (res) { - var g_item = _.indexOf(_.pluck(self.items.other, 'label'), res.name); - if (g_item !== -1) { - self.items.other.splice(g_item, 1); - } - self.add_items('other', [{ - label: res.name+ '', - config_id: res.id, - res_id: res_id, - res_model: view.dataset.model, - callback: self.on_google_doc, - classname: 'oe_share_gdoc' - }, - ]); - }) - } - }); - }); - } - }, - - fetch: function (model, fields, domain, ctx) { - return new instance.web.Model(model).query(fields).filter(domain).context(ctx).all() - }, - - on_google_doc: function (doc_item) { - var self = this; - self.config = doc_item; - var loaded = self.fetch('google.docs.config', ['gdocs_resource_id', 'google_docs_client_id'], [['id', '=', doc_item.config_id]]) - .then(function (configs) { - var ds = new instance.web.DataSet(self, 'google.docs.config'); - ds.call('get_google_doc_name', [[doc_item.config_id], doc_item.res_id,configs[0].gdocs_resource_id]).done(function (r) { - if (!_.isEmpty(r)) { - _.each(r, function (res) { - if(res.url) - { - window.open(res.url, '_blank'); - } - }); - } - }); - }); - }, - - }); -}; \ No newline at end of file -- cgit v1.2.3