diff --git a/src/backend.gdocs.js b/src/backend.gdocs.js index dd068034..0860dc7f 100644 --- a/src/backend.gdocs.js +++ b/src/backend.gdocs.js @@ -55,6 +55,7 @@ this.recline.Backend.GDocs = this.recline.Backend.GDocs || {}; dfd.resolve({ metadata: { + title: response.spreadsheetTitle +" :: "+ result.worksheetTitle, spreadsheetTitle: response.spreadsheetTitle, worksheetTitle : result.worksheetTitle }, diff --git a/src/model.js b/src/model.js index c3949827..b5c61905 100644 --- a/src/model.js +++ b/src/model.js @@ -523,7 +523,8 @@ my.Query = Backbone.Model.extend({ // crude deep copy var ourfilter = JSON.parse(JSON.stringify(filter)); // not full specified so use template and over-write - if (_.keys(filter).length <= 2) { + // 3 as for 'type', 'field' and 'fieldType' + if (_.keys(filter).length <= 3) { ourfilter = _.extend(this._filterTemplates[filter.type], ourfilter); } var filters = this.get('filters'); diff --git a/test/backend.gdocs.test.js b/test/backend.gdocs.test.js index 21f67ed8..5efc98cc 100644 --- a/test/backend.gdocs.test.js +++ b/test/backend.gdocs.test.js @@ -1,170 +1,275 @@ (function ($) { module("Backend GDocs"); -var sample_gdocs_spreadsheet_data = { - "feed": { - "category": [ +var sampleGDocsSpreadsheetMetadata = { + feed: { + category: [ + { + term: "http://schemas.google.com/spreadsheets/2006#worksheet", + scheme: "http://schemas.google.com/spreadsheets/2006" + } + ], + updated: { + $t: "2010-07-13T09:57:28.408Z" + }, + xmlns: "http://www.w3.org/2005/Atom", + title: { + $t: "javascript-test", + type: "text" + }, + author: [ + { + name: { + $t: "okfn.rufus.pollock" + }, + email: { + $t: "okfn.rufus.pollock@gmail.com" + } + } + ], + openSearch$startIndex: { + $t: "1" + }, + xmlns$gs: "http://schemas.google.com/spreadsheets/2006", + xmlns$openSearch: "http://a9.com/-/spec/opensearchrss/1.0/", + entry: [ + { + category: [ + { + term: "http://schemas.google.com/spreadsheets/2006#worksheet", + scheme: "http://schemas.google.com/spreadsheets/2006" + } + ], + updated: { + $t: "2010-07-13T09:57:28.408Z" + }, + title: { + $t: "Sheet1", + type: "text" + }, + content: { + $t: "Sheet1", + type: "text" + }, + link: [ + { + href: "https://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/basic", + type: "application/atom+xml", + rel: "http://schemas.google.com/spreadsheets/2006#listfeed" + }, + { + href: "https://spreadsheets.google.com/feeds/cells/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/basic", + type: "application/atom+xml", + rel: "http://schemas.google.com/spreadsheets/2006#cellsfeed" + }, + { + href: "https://spreadsheets.google.com/tq?key=0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc&sheet=od6&pub=1", + type: "application/atom+xml", + rel: "http://schemas.google.com/visualization/2008#visualizationApi" + }, + { + href: "https://spreadsheets.google.com/feeds/worksheets/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/public/basic/od6", + type: "application/atom+xml", + rel: "self" + } + ], + id: { + $t: "https://spreadsheets.google.com/feeds/worksheets/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/public/basic/od6" + } + } + ], + link: [ + { + href: "https://spreadsheets.google.com/pub?key=0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc", + type: "text/html", + rel: "alternate" + }, + { + href: "https://spreadsheets.google.com/feeds/worksheets/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/public/basic", + type: "application/atom+xml", + rel: "http://schemas.google.com/g/2005#feed" + }, + { + href: "https://spreadsheets.google.com/feeds/worksheets/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/public/basic?alt=json", + type: "application/atom+xml", + rel: "self" + } + ], + openSearch$totalResults: { + $t: "1" + }, + id: { + $t: "https://spreadsheets.google.com/feeds/worksheets/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/public/basic" + } + }, + version: "1.0", + encoding: "UTF-8" +} + +var sampleGDocsSpreadsheetData = { + feed: { + category: [ { - "term": "http://schemas.google.com/spreadsheets/2006#list", - "scheme": "http://schemas.google.com/spreadsheets/2006" + term: "http://schemas.google.com/spreadsheets/2006#list", + scheme: "http://schemas.google.com/spreadsheets/2006" } ], - "updated": { - "$t": "2010-07-12T18:32:16.200Z" + updated: { + $t: "2010-07-12T18:32:16.200Z" }, - "xmlns": "http://www.w3.org/2005/Atom", - "xmlns$gsx": "http://schemas.google.com/spreadsheets/2006/extended", - "title": { - "$t": "Sheet1", - "type": "text" + xmlns: "http://www.w3.org/2005/Atom", + xmlns$gsx: "http://schemas.google.com/spreadsheets/2006/extended", + title: { + $t: "Sheet1", + type: "text" }, - "author": [ + author: [ { - "name": { - "$t": "okfn.rufus.pollock" + name: { + $t: "okfn.rufus.pollock" }, - "email": { - "$t": "okfn.rufus.pollock@gmail.com" + email: { + $t: "okfn.rufus.pollock@gmail.com" } } ], - "openSearch$startIndex": { - "$t": "1" + openSearch$startIndex: { + $t: "1" }, - "link": [ + link: [ { - "href": "http://spreadsheets.google.com/pub?key=0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc", - "type": "text/html", - "rel": "alternate" + href: "http://spreadsheets.google.com/pub?key=0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc", + type: "text/html", + rel: "alternate" }, { - "href": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values", - "type": "application/atom+xml", - "rel": "http://schemas.google.com/g/2005#feed" + href: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values", + type: "application/atom+xml", + rel: "http://schemas.google.com/g/2005#feed" }, { - "href": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values?alt=json-in-script", - "type": "application/atom+xml", - "rel": "self" + href: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values?alt=json-in-script", + type: "application/atom+xml", + rel: "self" } ], - "xmlns$openSearch": "http://a9.com/-/spec/opensearchrss/1.0/", - "entry": [ + xmlns$openSearch: "http://a9.com/-/spec/opensearchrss/1.0/", + entry: [ { - "category": [ + category: [ { - "term": "http://schemas.google.com/spreadsheets/2006#list", - "scheme": "http://schemas.google.com/spreadsheets/2006" + term: "http://schemas.google.com/spreadsheets/2006#list", + scheme: "http://schemas.google.com/spreadsheets/2006" } ], - "updated": { - "$t": "2010-07-12T18:32:16.200Z" + updated: { + $t: "2010-07-12T18:32:16.200Z" }, - "gsx$column-2": { - "$t": "1" + 'gsx$column-2': { + $t: "1" }, - "gsx$column-1": { - "$t": "A" + 'gsx$column-1': { + $t: "A" }, - "title": { - "$t": "A", - "type": "text" + title: { + $t: "A", + type: "text" }, - "content": { - "$t": "column-2: 1", - "type": "text" + content: { + $t: "column-2: 1", + type: "text" }, - "link": [ + link: [ { - "href": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cokwr", - "type": "application/atom+xml", - "rel": "self" + href: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cokwr", + type: "application/atom+xml", + rel: "self" } ], - "id": { - "$t": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cokwr" + id: { + $t: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cokwr" } }, { - "category": [ + category: [ { - "term": "http://schemas.google.com/spreadsheets/2006#list", - "scheme": "http://schemas.google.com/spreadsheets/2006" + term: "http://schemas.google.com/spreadsheets/2006#list", + scheme: "http://schemas.google.com/spreadsheets/2006" } ], - "updated": { - "$t": "2010-07-12T18:32:16.200Z" + updated: { + $t: "2010-07-12T18:32:16.200Z" }, - "gsx$column-2": { - "$t": "2" + 'gsx$column-2': { + $t: "2" }, - "gsx$column-1": { - "$t": "b" + 'gsx$column-1': { + $t: "b" }, - "title": { - "$t": "b", - "type": "text" + title: { + $t: "b", + type: "text" }, - "content": { - "$t": "column-2: 2", - "type": "text" + content: { + $t: "column-2: 2", + type: "text" }, - "link": [ + link: [ { - "href": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cpzh4", - "type": "application/atom+xml", - "rel": "self" + href: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cpzh4", + type: "application/atom+xml", + rel: "self" } ], - "id": { - "$t": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cpzh4" + id: { + $t: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cpzh4" } }, { - "category": [ + category: [ { - "term": "http://schemas.google.com/spreadsheets/2006#list", - "scheme": "http://schemas.google.com/spreadsheets/2006" + term: "http://schemas.google.com/spreadsheets/2006#list", + scheme: "http://schemas.google.com/spreadsheets/2006" } ], - "updated": { - "$t": "2010-07-12T18:32:16.200Z" + updated: { + $t: "2010-07-12T18:32:16.200Z" }, - "gsx$column-2": { - "$t": "3" + 'gsx$column-2': { + $t: "3" }, - "gsx$column-1": { - "$t": "c" + 'gsx$column-1': { + $t: "c" }, - "title": { - "$t": "c", - "type": "text" + title: { + $t: "c", + type: "text" }, - "content": { - "$t": "column-2: 3", - "type": "text" + content: { + $t: "column-2: 3", + type: "text" }, - "link": [ + link: [ { - "href": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cre1l", - "type": "application/atom+xml", - "rel": "self" + href: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cre1l", + type: "application/atom+xml", + rel: "self" } ], - "id": { - "$t": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cre1l" + id: { + $t: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values/cre1l" } } ], - "openSearch$totalResults": { - "$t": "3" + openSearch$totalResults: { + $t: "3" }, - "id": { - "$t": "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values" + id: { + $t: "http://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values" } }, - "version": "1.0", - "encoding": "UTF-8" + version: "1.0", + encoding: "UTF-8" } test("GDocs Backend", function() { @@ -174,9 +279,14 @@ test("GDocs Backend", function() { }); var stub = sinon.stub($, 'getJSON', function(options, cb) { - var partialUrl = 'spreadsheets.google.com'; - if (options.indexOf(partialUrl) != -1) { - cb(sample_gdocs_spreadsheet_data) + var spreadsheetUrl = 'spreadsheets.google.com/feeds/worksheets/'; + var worksheetUrl = 'spreadsheets.google.com/feeds/list/'; + + if (options.indexOf(spreadsheetUrl) !== -1) { + cb(sampleGDocsSpreadsheetMetadata) + } + else if(options.indexOf(worksheetUrl) !== -1) { + cb(sampleGDocsSpreadsheetData) } }); @@ -185,6 +295,7 @@ test("GDocs Backend", function() { deepEqual(['column-2', 'column-1'], _.pluck(dataset.fields.toJSON(), 'id')); equal(3, docList.length); equal("A", docList.models[0].get('column-1')); + equal('javascript-test :: Sheet1', dataset.get('title')); }); $.getJSON.restore(); }); diff --git a/test/widget.filtereditor.test.js b/test/widget.filtereditor.test.js index 503a0457..0baf65c0 100644 --- a/test/widget.filtereditor.test.js +++ b/test/widget.filtereditor.test.js @@ -55,8 +55,8 @@ test('geo_distance', function () { // now check we have new filter $editForm = view.el.find('form.js-edit'); equal($editForm.find('.filter-geo_distance').length, 1) - deepEqual(_.keys(dataset.queryState.attributes.filters[0]), ['distance', - 'unit', 'point', 'type', 'field']); + deepEqual(_.sortBy(_.keys(dataset.queryState.attributes.filters[0]),_.identity), + ["distance", "field", "fieldType", "point", "type", "unit"]); // now set filter value and apply $editForm.find('input[name="lat"]').val(10);