summaryrefslogtreecommitdiff
path: root/addons/google_spreadsheet/static/src
diff options
context:
space:
mode:
authorMartin Trigaux <mat@openerp.com>2013-09-11 13:07:55 +0200
committerMartin Trigaux <mat@openerp.com>2013-09-11 13:07:55 +0200
commitc48504fdba1ef68033c5e6c3b7929ea4e153d4b7 (patch)
tree471c4c37f5b76a4f034b5de805655d5fc5dcf867 /addons/google_spreadsheet/static/src
parent9349ba848497b9c5b7ded809a4db6b1e3b26b6a6 (diff)
parent3fa90321e11d28df4e2b874ddfa450dc73e8e0af (diff)
[MERGE] sync with trunk (state -> stage removed some test)
bzr revid: mat@openerp.com-20130911110755-zf3ytf9m27im6x9k
Diffstat (limited to 'addons/google_spreadsheet/static/src')
-rw-r--r--addons/google_spreadsheet/static/src/js/search.js54
-rw-r--r--addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml5
2 files changed, 59 insertions, 0 deletions
diff --git a/addons/google_spreadsheet/static/src/js/search.js b/addons/google_spreadsheet/static/src/js/search.js
new file mode 100644
index 00000000000..c46ec615792
--- /dev/null
+++ b/addons/google_spreadsheet/static/src/js/search.js
@@ -0,0 +1,54 @@
+openerp.google_spreadsheet = function(instance) {
+ var _t = instance.web._t;
+ instance.web.FormView.include({
+ on_processed_onchange: function(result, processed) {
+ var self = this;
+
+ var fields = self.fields;
+ _(result.selection).each(function (selection, fieldname) {
+ var field = fields[fieldname];
+ if (!field) { return; }
+ field.field.selection = selection;
+ field.values = selection;
+ field.renderElement();
+ });
+ return this._super(result, processed);
+ },
+ });
+ instance.board.AddToGoogleSpreadsheet = instance.web.search.Input.extend({
+ template: 'SearchView.addtogooglespreadsheet',
+ _in_drawer: true,
+ start: function () {
+ var self = this;
+ this.$el.on('click', 'h4', function(){
+ var view = self.view;
+ var data = view.build_search_data();
+ var model = view.model;
+ var list_view = self.view.getParent().views['list'];
+ var view_id = list_view ? list_view.view_id : false;
+ var context = new instance.web.CompoundContext(view.dataset.get_context() || []);
+ var domain = new instance.web.CompoundDomain(view.dataset.get_domain() || []);
+ _.each(data.contexts, context.add, context);
+ _.each(data.domains, domain.add, domain);
+ domain = JSON.stringify(domain.eval());
+ var groupbys = instance.web.pyeval.eval('groupbys', data.groupbys).join(" ");
+ var view_id = view_id;
+ var ds = new instance.web.DataSet(self, 'google.drive.config');
+ ds.call('set_spreadsheet', [model, domain, groupbys, view_id]).done(function (res) {
+ if (res['url']){
+ window.open(res['url'], '_blank');
+ }
+ });
+ });
+ },
+ });
+ instance.web.SearchView.include({
+ add_common_inputs: function() {
+ this._super();
+ var vm = this.getParent().getParent();
+ if (vm.inner_action && vm.inner_action.views) {
+ (new instance.board.AddToGoogleSpreadsheet(this));
+ }
+ }
+ });
+}; \ No newline at end of file
diff --git a/addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml b/addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml
new file mode 100644
index 00000000000..faf984141a6
--- /dev/null
+++ b/addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml
@@ -0,0 +1,5 @@
+<template>
+<div t-name="SearchView.addtogooglespreadsheet" class="oe_searchview_dashboard">
+ <h4>Add to Google Spreadsheet</h4>
+</div>
+</template> \ No newline at end of file