| // Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| // use this file except in compliance with the License. You may obtain a copy of |
| // the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| // License for the specific language governing permissions and limitations under |
| // the License. |
| |
| import app from "../../app"; |
| import Helpers from "../../helpers"; |
| import FauxtonAPI from "../../core/api"; |
| import Documents from "./routes"; |
| import designDocInfoReducers from "./designdocinfo/reducers"; |
| import reducers from "./index-results/reducers"; |
| import mangoReducers from "./mango/mango.reducers"; |
| import sidebarReducers from "./sidebar/reducers"; |
| import partitionKeyReducers from "./partition-key/reducers"; |
| import revisionBrowserReducers from './rev-browser/reducers'; |
| import docEditorReducers from './doc-editor/reducers'; |
| import changesReducers from './changes/reducers'; |
| import indexEditorReducers from './index-editor/reducers'; |
| import "./assets/less/documents.less"; |
| |
| FauxtonAPI.addReducers({ |
| indexResults: reducers, |
| mangoQuery: mangoReducers, |
| sidebar: sidebarReducers, |
| revisionBrowser: revisionBrowserReducers, |
| partitionKey: partitionKeyReducers, |
| docEditor: docEditorReducers, |
| changes: changesReducers, |
| designDocInfo: designDocInfoReducers, |
| indexEditor: indexEditorReducers |
| }); |
| |
| function getQueryParam (query) { |
| if (!query) { |
| query = ''; |
| } |
| return query; |
| } |
| |
| function partitionUrlComponent(partitionKey) { |
| return partitionKey ? `/_partition/${partitionKey}` : ''; |
| } |
| |
| FauxtonAPI.registerUrls('allDocs', { |
| server: function (id, query) { |
| /** XXX DEPRECATED: use allDocsSanitized **/ |
| return Helpers.getServerUrl('/' + id + '/_all_docs' + getQueryParam(query)); |
| }, |
| app: function (id, partitionKey, query) { |
| /** XXX DEPRECATED: use allDocsSanitized **/ |
| return 'database/' + id + partitionUrlComponent(partitionKey) + '/_all_docs' + getQueryParam(query); |
| }, |
| apiurl: function (id, query) { |
| /** XXX DEPRECATED: use allDocsSanitized **/ |
| return Helpers.getApiUrl('/' + id + '/_all_docs' + getQueryParam(query)); |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('partitioned_allDocs', { |
| app: function (databaseName, partitionKey, query) { |
| return 'database/' + databaseName + '/_partition/' + partitionKey + '/_all_docs' + getQueryParam(query); |
| }, |
| apiurl: function (databaseName, partitionKey, query) { |
| return Helpers.getApiUrl('/' + databaseName + '/_partition/' + partitionKey + '/_all_docs' + getQueryParam(query)); |
| }, |
| server: function (databaseName, partitionKey, query) { |
| return Helpers.getServerUrl('/' + databaseName + '/_partition/' + partitionKey + '/_all_docs' + getQueryParam(query)); |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('allDocsSanitized', { |
| server: function (id, query) { |
| id = encodeURIComponent(id); |
| return Helpers.getServerUrl('/' + id + '/_all_docs' + getQueryParam(query)); |
| }, |
| |
| app: function (id, query) { |
| id = encodeURIComponent(id); |
| return 'database/' + id + '/_all_docs' + getQueryParam(query); |
| }, |
| |
| apiurl: function (id, query) { |
| id = encodeURIComponent(id); |
| return Helpers.getApiUrl('/' + id + '/_all_docs' + getQueryParam(query)); |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('bulk_docs', { |
| server: function (id, query) { |
| return Helpers.getServerUrl('/' + encodeURIComponent(id) + '/_bulk_docs' + getQueryParam(query)); |
| }, |
| app: function (id, query) { |
| return 'database/' + id + '/_bulk_docs' + getQueryParam(query); |
| }, |
| apiurl: function (id, query) { |
| return Helpers.getApiUrl('/' + id + '/_bulk_docs' + getQueryParam(query)); |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('revision-browser', { |
| app: function (id, doc) { |
| return 'database/' + id + '/' + doc + '/conflicts'; |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('designDocs', { |
| server: function (id, designDoc) { |
| return Helpers.getServerUrl('/' + id + '/' + designDoc + '/_info'); |
| }, |
| |
| app: function (id, partitionKey, designDoc) { |
| return 'database/' + id + partitionUrlComponent(partitionKey) + '/_design/' + app.utils.safeURLName(designDoc) + '/_info'; |
| }, |
| |
| apiurl: function (id, designDoc) { |
| return Helpers.getApiUrl('/' + id + '/' + designDoc + '/_info'); |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('view', { |
| server: function (database, partitionKey, designDoc, viewName) { |
| return Helpers.getServerUrl('/' + database + partitionUrlComponent(partitionKey) + '/_design/' + designDoc + '/_view/' + viewName); |
| }, |
| |
| app: function (database, designDoc) { |
| return 'database/' + database + '/_design/' + designDoc + '/_view/'; |
| }, |
| |
| apiurl: function (id, partitionKey, designDoc, viewName) { |
| return Helpers.getApiUrl('/' + id + partitionUrlComponent(partitionKey) + '/_design/' + designDoc + '/_view/' + viewName); |
| }, |
| |
| edit: function (database, partitionKey, designDoc, indexName) { |
| return 'database/' + database + partitionUrlComponent(partitionKey) + '/_design/' + designDoc + '/_view/' + indexName + '/edit'; |
| }, |
| |
| showView: function (database, partitionKey, designDoc, viewName) { |
| return '/database/' + database + partitionUrlComponent(partitionKey) + '/' + designDoc + '/_view/' + viewName; |
| }, |
| |
| fragment: function (database, designDoc, viewName) { |
| return 'database/' + database + designDoc + '/_view/' + viewName; |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('partitioned_view', { |
| server: function (database, partitionKey, designDoc, viewName) { |
| return Helpers.getServerUrl('/' + database + '/_partition/' + partitionKey + '/_design/' + designDoc + '/_view/' + viewName); |
| }, |
| app: function (database, partitionKey, designDoc) { |
| return 'database/' + database + '/_partition/' + partitionKey + '/_design/' + designDoc + '/_view/'; |
| }, |
| apiurl: function (database, partitionKey, designDoc, viewName) { |
| return Helpers.getApiUrl('/' + database + '/_partition/' + partitionKey + '/_design/' + designDoc + '/_view/' + viewName); |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('document', { |
| server: function (database, doc, query) { |
| if (_.isUndefined(query)) { |
| query = ''; |
| } |
| return Helpers.getServerUrl('/' + database + '/' + doc + query); |
| }, |
| |
| attachment: function (database, doc, filename, query) { |
| if (_.isUndefined(query)) { |
| query = ''; |
| } |
| return Helpers.getServerUrl('/' + database + '/' + doc + '/' + filename + query); |
| }, |
| |
| app: function (database, doc) { |
| return '/database/' + database + '/' + doc; |
| }, |
| |
| apiurl: function (database, doc) { |
| if (!doc) { |
| // api url for creating a doc with POST |
| return Helpers.getApiUrl('/' + database); |
| } |
| return Helpers.getApiUrl('/' + database + '/' + doc); |
| }, |
| |
| 'web-index': function (database, doc) { |
| return '/database/' + database + '/' + doc; |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('new', { |
| newDocument: function (database) { |
| return '/database/' + database + '/_new'; |
| }, |
| |
| newView: function (database, partitionKey) { |
| return '/database/' + database + partitionUrlComponent(partitionKey) + '/new_view'; |
| }, |
| |
| addView: function (database, partitionKey, ddoc) { |
| return '/database/' + database + partitionUrlComponent(partitionKey) + '/new_view/' + ddoc; |
| } |
| }); |
| |
| FauxtonAPI.registerUrls('base', { |
| server: function (database) { |
| return Helpers.getServerUrl('/' + database + '/'); |
| }, |
| |
| app: function (database) { |
| return '/database/' + database + '/'; |
| }, |
| }); |
| |
| FauxtonAPI.registerUrls('mango', { |
| |
| 'index-server': function (db, query) { |
| if (!query) { |
| query = ''; |
| } |
| |
| return Helpers.getServerUrl('/' + db + '/_index' + query); |
| }, |
| |
| 'index-apiurl': function (db, partitionKey, query) { |
| if (!query) { |
| query = ''; |
| } |
| |
| return Helpers.getApiUrl('/' + db + partitionUrlComponent(partitionKey) + '/_index' + query); |
| }, |
| |
| 'index-app': function (db, partitionKey, query) { |
| if (!query) { |
| query = ''; |
| } |
| |
| return 'database/' + db + partitionUrlComponent(partitionKey) + '/_index' + query; |
| }, |
| |
| 'index-server-bulk-delete': function (db) { |
| return Helpers.getServerUrl('/' + db + '/_index/_bulk_delete'); |
| }, |
| |
| 'query-server': function (db, partitionKey, query) { |
| if (!query) { |
| query = ''; |
| } |
| |
| return Helpers.getServerUrl('/' + db + partitionUrlComponent(partitionKey) + '/_find' + query); |
| }, |
| |
| 'query-apiurl': function (db, partitionKey, query) { |
| if (!query) { |
| query = ''; |
| } |
| |
| return Helpers.getApiUrl('/' + db + partitionUrlComponent(partitionKey) + '/_find' + query); |
| }, |
| |
| 'query-app': function (db, partitionKey, query) { |
| if (!query) { |
| query = ''; |
| } |
| |
| return 'database/' + db + partitionUrlComponent(partitionKey) + '/_find' + query; |
| }, |
| |
| 'explain-server': function (db, partitionKey) { |
| return Helpers.getServerUrl('/' + db + partitionUrlComponent(partitionKey) + '/_explain'); |
| }, |
| |
| 'explain-apiurl': function (db, partitionKey) { |
| return Helpers.getApiUrl('/' + db + partitionUrlComponent(partitionKey) + '/_explain'); |
| } |
| }); |
| |
| export default Documents; |