You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by mi...@apache.org on 2015/11/18 21:42:08 UTC
fauxton commit: updated refs/heads/master to 915ca94
Repository: couchdb-fauxton
Updated Branches:
refs/heads/master c5c6f1c21 -> 915ca9463
Use ajax call instead of backbone
Adds a test to delete a document via the Document Editor screen button
This fixes the bug where deleting a document with a symbol (slash +/- hypen)
doesn't consistently take you back to the all_docs screen.
Also I like AJAX calls better.
Project: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/commit/915ca946
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/tree/915ca946
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/diff/915ca946
Branch: refs/heads/master
Commit: 915ca94639aff6280e546f453dc25093dea7db28
Parents: c5c6f1c
Author: Michelle Phung <mi...@apache.org>
Authored: Tue Nov 17 14:06:12 2015 -0500
Committer: Michelle Phung <mi...@apache.org>
Committed: Tue Nov 17 20:07:42 2015 -0500
----------------------------------------------------------------------
app/addons/documents/base.js | 7 ++--
app/addons/documents/doc-editor/actions.js | 37 +++++++++++++-------
.../tests/nightwatch/deletesDocuments.js | 29 ++++++++++++++-
3 files changed, 57 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/915ca946/app/addons/documents/base.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/base.js b/app/addons/documents/base.js
index 3dd82c0..c0eaa91 100644
--- a/app/addons/documents/base.js
+++ b/app/addons/documents/base.js
@@ -70,8 +70,11 @@ function (app, FauxtonAPI, Documents) {
});
FauxtonAPI.registerUrls('document', {
- server: function (database, doc) {
- return app.host + '/' + database + '/' + doc;
+ server: function (database, doc, query) {
+ if (_.isUndefined(query)) {
+ query = '';
+ }
+ return app.host + '/' + database + '/' + doc + query;
},
attachment: function (database, doc, filename, query) {
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/915ca946/app/addons/documents/doc-editor/actions.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/doc-editor/actions.js b/app/addons/documents/doc-editor/actions.js
index a7f076b..259cfc4 100644
--- a/app/addons/documents/doc-editor/actions.js
+++ b/app/addons/documents/doc-editor/actions.js
@@ -82,19 +82,30 @@ function (app, FauxtonAPI, ActionTypes) {
}
function deleteDoc (doc) {
- var databaseName = doc.database.id;
- doc.destroy().then(function () {
- FauxtonAPI.addNotification({
- msg: 'Your document has been successfully deleted.',
- clear: true
- });
- FauxtonAPI.navigate(FauxtonAPI.urls('allDocs', 'app', databaseName, ''));
- }, function () {
- FauxtonAPI.addNotification({
- msg: 'Failed to delete your document!',
- type: 'error',
- clear: true
- });
+ var databaseName = doc.database.safeID();
+ var query = '?rev=' + doc.get('_rev');
+
+ $.ajax({
+ url: FauxtonAPI.urls('document', 'server', databaseName, doc.safeID(), query),
+ type: 'DELETE',
+ contentType: 'application/json; charset=UTF-8',
+ xhrFields: {
+ withCredentials: true
+ },
+ success: function () {
+ FauxtonAPI.addNotification({
+ msg: 'Your document has been successfully deleted.',
+ clear: true
+ });
+ FauxtonAPI.navigate(FauxtonAPI.urls('allDocs', 'app', databaseName, ''));
+ },
+ error: function (resp) {
+ FauxtonAPI.addNotification({
+ msg: 'Failed to delete your document!',
+ type: 'error',
+ clear: true
+ });
+ }
});
}
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/915ca946/app/addons/documents/tests/nightwatch/deletesDocuments.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/tests/nightwatch/deletesDocuments.js b/app/addons/documents/tests/nightwatch/deletesDocuments.js
index edee01c..83989e4 100644
--- a/app/addons/documents/tests/nightwatch/deletesDocuments.js
+++ b/app/addons/documents/tests/nightwatch/deletesDocuments.js
@@ -98,6 +98,33 @@ module.exports = {
// now confirm it's gone
.waitForElementNotPresent('#sidebar-content span[title="_design/sidebar-update"]', waitTime, false)
.end();
- }
+ },
+
+ 'Deletes a document via Editor': function (client) {
+ var waitTime = client.globals.maxWaitTime,
+ newDatabaseName = client.globals.testDatabaseName,
+ newDocumentName = 'delete_doc_doc',
+ baseUrl = client.globals.test_settings.launch_url;
+
+ client
+ .createDocument(newDocumentName, newDatabaseName)
+ .loginToGUI()
+ .url(baseUrl + '#/database/' + newDatabaseName + '/' + newDocumentName)
+ .waitForElementPresent('#editor-container', waitTime, false)
+ .clickWhenVisible('#doc-editor-actions-panel button[title="Delete"]')
+ .clickWhenVisible('button.btn.btn-success.js-btn-success')
+ .waitForElementPresent('#jump-to-doc-id', waitTime, false)
+ //check raw JSON
+ .url(baseUrl + '/' + newDatabaseName + '/_all_docs')
+ .waitForElementPresent('pre', waitTime, false)
+ .getText('pre', function (result) {
+ var data = result.value,
+ createdDocumentANotPresent = data.indexOf(newDocumentName) === -1;
+
+ this.verify.ok(createdDocumentANotPresent,
+ 'Checking if new document no longer shows up in _all_docs.');
+ })
+ .end();
+ },
};