You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2017/09/21 10:22:10 UTC
[couchdb-fauxton] branch master updated: Fix for Mango Query addon
when db name has special characters (#984)
This is an automated email from the ASF dual-hosted git repository.
garren pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git
The following commit(s) were added to refs/heads/master by this push:
new ddd72c4 Fix for Mango Query addon when db name has special characters (#984)
ddd72c4 is described below
commit ddd72c4af9f16865d7332e0d804ad761d84900f2
Author: Antonio Maranhao <30...@users.noreply.github.com>
AuthorDate: Thu Sep 21 06:22:08 2017 -0400
Fix for Mango Query addon when db name has special characters (#984)
Encode DB name in URLs
---
app/addons/documents/base.js | 6 +++---
app/addons/documents/index-results/api.js | 10 ++++++----
app/addons/documents/mango/mango.api.js | 4 ++--
app/addons/documents/mangolayout.js | 2 +-
app/addons/documents/routes-mango.js | 4 ++--
5 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/app/addons/documents/base.js b/app/addons/documents/base.js
index 93534c1..8e4f950 100644
--- a/app/addons/documents/base.js
+++ b/app/addons/documents/base.js
@@ -203,7 +203,7 @@ FauxtonAPI.registerUrls('mango', {
},
'index-server-bulk-delete': function (db) {
- return app.host + '/' + encodeURIComponent(db) + '/_index/_bulk_delete';
+ return app.host + '/' + db + '/_index/_bulk_delete';
},
'query-server': function (db, query) {
@@ -231,11 +231,11 @@ FauxtonAPI.registerUrls('mango', {
},
'explain-server': function (db) {
- return app.host + '/' + app.utils.safeURLName(db) + '/_explain';
+ return app.host + '/' + db + '/_explain';
},
'explain-apiurl': function (db) {
- return window.location.origin + '/' + app.utils.safeURLName(db) + '/_explain';
+ return window.location.origin + '/' + db + '/_explain';
}
});
diff --git a/app/addons/documents/index-results/api.js b/app/addons/documents/index-results/api.js
index d285363..4846c31 100644
--- a/app/addons/documents/index-results/api.js
+++ b/app/addons/documents/index-results/api.js
@@ -26,10 +26,12 @@ export const queryAllDocs = (fetchUrl, params) => {
}
})
.then(res => res.json())
- .then(res => {
+ .then(json => {
+ if (json.error) {
+ throw new Error('(' + json.error + ') ' + json.reason);
+ }
return {
- //TODO: handle error situation
- docs: res.error ? [] : res.rows,
+ docs: json.rows,
docType: Constants.INDEX_RESULTS_DOC_TYPE.VIEW
};
});
@@ -50,7 +52,7 @@ export const postToBulkDocs = (databaseName, payload) => {
};
export const postToIndexBulkDelete = (databaseName, payload) => {
- const url = FauxtonAPI.urls('mango', 'index-server-bulk-delete', databaseName);
+ const url = FauxtonAPI.urls('mango', 'index-server-bulk-delete', encodeURIComponent(databaseName));
return fetch(url, {
method: 'POST',
credentials: 'include',
diff --git a/app/addons/documents/mango/mango.api.js b/app/addons/documents/mango/mango.api.js
index 61e9f54..823bbe6 100644
--- a/app/addons/documents/mango/mango.api.js
+++ b/app/addons/documents/mango/mango.api.js
@@ -17,7 +17,7 @@ import FauxtonAPI from "../../../core/api";
import Constants from '../constants';
export const fetchQueryExplain = (databaseName, queryCode) => {
- const url = FauxtonAPI.urls('mango', 'explain-server', databaseName);
+ const url = FauxtonAPI.urls('mango', 'explain-server', encodeURIComponent(databaseName));
return fetch(url, {
headers: {
@@ -105,7 +105,7 @@ export const mergeFetchParams = (queryCode, fetchParams) => {
};
export const mangoQueryDocs = (databaseName, queryCode, fetchParams) => {
- const url = FauxtonAPI.urls('mango', 'query-server', databaseName);
+ const url = FauxtonAPI.urls('mango', 'query-server', encodeURIComponent(databaseName));
const modifiedQuery = mergeFetchParams(queryCode, fetchParams);
return fetch(url, {
headers: {
diff --git a/app/addons/documents/mangolayout.js b/app/addons/documents/mangolayout.js
index 4973f7a..1cb7779 100644
--- a/app/addons/documents/mangolayout.js
+++ b/app/addons/documents/mangolayout.js
@@ -123,7 +123,7 @@ class MangoLayout extends Component {
let endpoint = this.props.endpoint;
if (this.props.explainPlan) {
- endpoint = FauxtonAPI.urls('mango', 'explain-apiurl', database);
+ endpoint = FauxtonAPI.urls('mango', 'explain-apiurl', encodeURIComponent(database));
}
let queryFunction = (params) => { return MangoAPI.mangoQueryDocs(databaseName, queryFindCode, params); };
let docType = Constants.INDEX_RESULTS_DOC_TYPE.MANGO_QUERY;
diff --git a/app/addons/documents/routes-mango.js b/app/addons/documents/routes-mango.js
index 8205c6e..26120bf 100644
--- a/app/addons/documents/routes-mango.js
+++ b/app/addons/documents/routes-mango.js
@@ -53,7 +53,7 @@ const MangoIndexEditorAndQueryEditor = FauxtonAPI.RouteObject.extend({
{name: app.i18n.en_US['mango-title-editor']}
];
- const endpoint = FauxtonAPI.urls('mango', 'query-apiurl', this.databaseName);
+ const endpoint = FauxtonAPI.urls('mango', 'query-apiurl', encodeURIComponent(this.databaseName));
return <MangoLayoutContainer
database={database}
@@ -84,7 +84,7 @@ const MangoIndexEditorAndQueryEditor = FauxtonAPI.RouteObject.extend({
const url = FauxtonAPI.urls(
'allDocs', 'app', encodeURIComponent(this.databaseName), '?limit=' + FauxtonAPI.constants.DATABASES.DOCUMENT_LIMIT
);
- const endpoint = FauxtonAPI.urls('mango', 'index-apiurl', this.databaseName);
+ const endpoint = FauxtonAPI.urls('mango', 'index-apiurl', encodeURIComponent(this.databaseName));
const crumbs = [
{name: database, link: url},
--
To stop receiving notification emails like this one, please contact
['"commits@couchdb.apache.org" <co...@couchdb.apache.org>'].