Index: src/main/webapp/application/engageConfig.json =================================================================== --- src/main/webapp/application/engageConfig.json (revision 9226) +++ src/main/webapp/application/engageConfig.json (working copy) @@ -4,9 +4,9 @@ includes: "kettle/KettleIncludes.json", includesPrefix: "kettle/", loaderFunction: "fluid.engage.initEngageApp", -queryURLTemplate: "http://titan.atrc.utoronto.ca:5984/%dbName/_fti/lucene/%view?include_docs=true&q=%query", -viewURLTemplate: "http://titan.atrc.utoronto.ca:5984/%dbName/%view", -viewURLTemplateWithKey: "http://titan.atrc.utoronto.ca:5984/%dbName/%view?key=%key", +queryURLTemplate: "http://142.150.154.59:5984/%dbName/_fti/lucene/%view?include_docs=true&q=%query", +viewURLTemplate: "http://142.150.154.59:5984/%dbName/%view", +viewURLTemplateWithKey: "http://142.150.154.59:5984/%dbName/%view?key=%key", initServices: [ "fluid.engage.initHomeService", "fluid.artifactView.initMarkupFeed", @@ -32,8 +32,8 @@ all: "all", byCollectionCategory: "by_collection_category", exhibitionByTitle: "_design/exhibitions/_view/view", - catalogueByTitle: "_design/catalogue/_view/viewWithArtifacts", - catalogueArtifacts: "_design/catalogueArtefacts/_view/view", + catalogueByTitle: "_design/catalogue/_view/view", + catalogueArtifacts: "_design/catalogue/_view/browse", exhibitions: "_design/exhibitions/_view/browse" }, mount: { Index: src/main/webapp/application/engageStandaloneConfig.json =================================================================== --- src/main/webapp/application/engageStandaloneConfig.json (revision 9226) +++ src/main/webapp/application/engageStandaloneConfig.json (working copy) @@ -4,9 +4,9 @@ includes: "kettle/KettleIncludes.json", includesPrefix: "kettle/", loaderFunction: "fluid.engage.initEngageApp", -queryURLTemplate: "http://titan.atrc.utoronto.ca:5984/%dbName/_fti/lucene/%view?include_docs=true&q=%query", -viewURLTemplate: "http://titan.atrc.utoronto.ca:5984/%dbName/%view", -viewURLTemplateWithKey: "http://titan.atrc.utoronto.ca:5984/%dbName/%view?key=%key", +queryURLTemplate: "http://142.150.154.59:5984/%dbName/_fti/lucene/%view?include_docs=true&q=%query", +viewURLTemplate: "http://142.150.154.59:5984/%dbName/%view", +viewURLTemplateWithKey: "http://142.150.154.59:5984/%dbName/%view?key=%key", initServices: [ "fluid.engage.initHomeService", "fluid.artifactView.initMarkupFeed", @@ -29,8 +29,8 @@ all: "all", byCollectionCategory: "by_collection_category", exhibitionByTitle: "_design/exhibitions/_view/view", - catalogueByTitle: "_design/catalogue/_view/viewWithArtifacts", - catalogueArtifacts: "_design/catalogueArtefacts/_view/view", + catalogueByTitle: "_design/catalogue/_view/view", + catalogueArtifacts: "_design/catalogue/_view/browse", exhibitions: "_design/exhibitions/_view/browse" }, mount: { Index: src/main/webapp/application/js/EngageApp.js =================================================================== --- src/main/webapp/application/js/EngageApp.js (revision 9226) +++ src/main/webapp/application/js/EngageApp.js (working copy) @@ -145,4 +145,9 @@ return app.app; }; + + // Modify the value of couch parameter to be in quotes. This is the only format valid for couch query parameters. + fluid.engage.formatCouchQueryParam = function (param) { + return '"' + param + '"'; + }; })(); Index: src/main/webapp/services/browseCatalogue/js/browseCatalogue.js =================================================================== --- src/main/webapp/services/browseCatalogue/js/browseCatalogue.js (revision 9226) +++ src/main/webapp/services/browseCatalogue/js/browseCatalogue.js (working copy) @@ -50,7 +50,8 @@ view: config.views.catalogueArtifacts, key: JSON.stringify({ exhibitTitle: params.exhibition, - sectionTitle: params.title + sectionTitle: params.title, + lang: params.lang }) }); }; Index: src/main/webapp/services/catalogue/js/catalogue.js =================================================================== --- src/main/webapp/services/catalogue/js/catalogue.js (revision 9226) +++ src/main/webapp/services/catalogue/js/catalogue.js (working copy) @@ -47,7 +47,10 @@ return fluid.stringTemplate(config.viewURLTemplateWithKey, { dbName: params.db || "", view: config.views.catalogueByTitle, - key: '"' + params.title + '"' + key: JSON.stringify({ + title: params.title, + lang: params.lang + }) }); }; @@ -57,20 +60,19 @@ var compileArtifacts = function (artifacts, params) { var baseArtifactURL = "../artifacts/view.html"; - var artifactsArray = []; - for (var i = 0; i < artifacts.length && i < 4; i++) { - var artifact = artifacts[i]; - artifactsArray.push({ - artifactViewURL: compileTargetURL(baseArtifactURL, { - db: params.db.substring(0, params.db.indexOf("_")), - q: artifact.accessNumber - }), - imageURL: artifact.imageURL, + return fluid.transform(artifacts, function (artifact) { + return { + description: artifact.description, + media: artifact.media, title: artifact.title, - description: artifact.description - }); - } - return artifactsArray; + image: artifact.image, + target: compileTargetURL(baseArtifactURL, { + db: params.db.slice(0, params.db.indexOf('_')), + accessNumber: artifact.accessionNumber, + lang: params.lang + }) + } + }); }; var compileTheme = function (themes, exhibitionTitle, params, baseURL) { @@ -81,7 +83,8 @@ allArtifactsViewURL: compileTargetURL(baseURL, { db: params.db, exhibition: exhibitionTitle, - title: theme.title + title: theme.title, + lang: params.lang }), numArtifacts: theme.numArtifacts, artifacts: compileArtifacts(theme.artifacts, params) @@ -97,7 +100,8 @@ allArtifactsViewURL: compileTargetURL(baseCatalogueURL, { db: params.db, exhibition: data.title, - title: "viewAll" + title: "viewAll", + lang: params.lang }), numArtifacts: data.numArtifacts, themes: compileTheme(data.themes, data.title, params, baseCatalogueURL) Index: src/main/webapp/services/exhibitionAbout/js/exhibitionAbout.js =================================================================== --- src/main/webapp/services/exhibitionAbout/js/exhibitionAbout.js (revision 9226) +++ src/main/webapp/services/exhibitionAbout/js/exhibitionAbout.js (working copy) @@ -28,7 +28,10 @@ return fluid.stringTemplate(config.viewURLTemplateWithKey, { dbName: params.db || "", view: config.views.exhibitionByTitle, - key: '"' + params.title + '"' + key: JSON.stringify({ + title: params.title, + lang: params.lang + }) }); }; Index: src/main/webapp/services/exhibitionBrowse/js/exhibitionBrowse.js =================================================================== --- src/main/webapp/services/exhibitionBrowse/js/exhibitionBrowse.js (revision 9226) +++ src/main/webapp/services/exhibitionBrowse/js/exhibitionBrowse.js (working copy) @@ -44,17 +44,20 @@ return data; }; - var compileDatabaseURL = function (db, config) { - return fluid.stringTemplate(config.viewURLTemplate, - {dbName: db + "_exhibitions" || "", view: config.views.exhibitions}); + var compileDatabaseURL = function (db, config, params) { + var url = fluid.stringTemplate(config.viewURLTemplate, {dbName: db + "_exhibitions" || "", view: config.views.exhibitions}); + return url + "?" + $.param({ + key: fluid.engage.formatCouchQueryParam(params.lang) + }) }; var compileTargetURL = function (URLBase, params) { return URLBase + "?" + $.param(params); }; - var getData = function (errorCallback, db, config) { - var url = compileDatabaseURL(db, config); + var getData = function (errorCallback, params, config) { + var db = params.db; + var url = compileDatabaseURL(db, config, params); var rawData = getAjax(url, errorCallback); var dbName = db + "_exhibitions"; var baseExhibitionURL = "view.html"; @@ -81,7 +84,8 @@ title: exhibition.title, url: compileTargetURL(exhibition.isCurrent ? baseExhibitionURL : baseUpcomingExhibitionURL, { db: dbName, - title: exhibition.title + title: exhibition.title, + lang: params.lang }), displayDate: exhibition.displayDate, endDate: exhibition.endDate @@ -105,7 +109,7 @@ fluid.exhibitionService.initExhibitionBrowseDataFeed = function (config, app) { var exhibitionsDataHandler = function (env) { - var data = JSON.stringify(getData(errorCallback, env.urlState.params.db, config)); + var data = JSON.stringify(getData(errorCallback, env.urlState.params, config)); return [200, {"Content-Type": "text/plain"}, data]; }; @@ -149,7 +153,7 @@ handler.registerProducer("browse", function (context, env) { var params = context.urlState.params; - var data = getData(errorCallback, params.db, config); + var data = getData(errorCallback, params, config); var strings = fluid.kettle.getBundle(renderHandlerConfig, params); var options = { model: afterMap(data), Index: src/main/webapp/services/exhibitionView/js/exhibitionView.js =================================================================== --- src/main/webapp/services/exhibitionView/js/exhibitionView.js (revision 9226) +++ src/main/webapp/services/exhibitionView/js/exhibitionView.js (working copy) @@ -28,7 +28,10 @@ return fluid.stringTemplate(config.viewURLTemplateWithKey, { dbName: params.db || "", view: config.views.exhibitionByTitle, - key: '"' + params.title + '"' + key: JSON.stringify({ + title: params.title, + lang: params.lang + }) }); }; @@ -71,13 +74,30 @@ fluid.engage.mountAcceptor(app, "exhibitions", acceptor); }; - var buildLink = function (url, db, title) { + var buildLink = function (url, lang, db, title) { return compileTargetURL(url, { db: db, - title: title + title: title, + lang: lang }); }; + var afterMap = function (data, params) { + data.cataloguePreview = fluid.transform(data.cataloguePreview, function (artifact) { + return { + target: compileTargetURL("../artifacts/view.html", { + db: params.db.slice(0, params.db.indexOf('_')), + accessNumber: artifact.accessionNumber, + lang: params.lang + }), + image: artifact.image, + media: artifact.media, + title: artifact.title + }; + }); + return data; + }; + fluid.exhibitionService.initExhibitionViewService = function (config, app) { var renderHandlerConfig = { config: config, @@ -98,24 +118,11 @@ var data = getData(errorCallback, params, config); var strings = fluid.kettle.getBundle(renderHandlerConfig, params); - data.catalogueLink = buildLink("../catalogue/view.html", params.db, data.title); - data.aboutLink = buildLink("about.html", params.db, data.title); + data.catalogueLink = buildLink("../catalogue/view.html", params.lang, params.db, data.title); + data.aboutLink = buildLink("about.html", params.lang, params.db, data.title); - ////////////////////////////////////////////////////////////////////// - // TODO: Remove this hardcoded data as soon as we get real data!!! - data.cataloguePreview = [{ - "media": true, - "title": "Thermometer", - "image": "http://helios.gsfc.nasa.gov/image_euv_press.jpg" - }, { - "title": "Barometer", - "image": "http://helios.gsfc.nasa.gov/image_euv_press.jpg" - } - ]; - ///////////////////////////////////////////////////////////////////// - var options = { - model: data + model: afterMap(data, params) }; if (strings) { options.strings = strings;