Fix - cannot edit docs with IDs starting with 'new' (#1175)


diff --git a/app/addons/documents/base.js b/app/addons/documents/base.js
index 5fa6613..1aac29d 100644
--- a/app/addons/documents/base.js
+++ b/app/addons/documents/base.js
@@ -190,7 +190,7 @@
 
 FauxtonAPI.registerUrls('new', {
   newDocument: function (database) {
-    return '/database/' + database + '/new';
+    return '/database/' + database + '/_new';
   },
 
   newView: function (database, partitionKey) {
diff --git a/app/addons/documents/helpers.js b/app/addons/documents/helpers.js
index a5c5921..c438969 100644
--- a/app/addons/documents/helpers.js
+++ b/app/addons/documents/helpers.js
@@ -41,7 +41,7 @@
     return menuLinks;
   }, [{
     title: 'New Doc',
-    url: newUrlPrefix + '/new' + partitionKeyQueryParam,
+    url: newUrlPrefix + '/_new' + partitionKeyQueryParam,
     icon: 'fonticon-plus-circled'
   }, {
     title: 'New View',
diff --git a/app/addons/documents/routes-doc-editor.js b/app/addons/documents/routes-doc-editor.js
index 421bc14..6a54796 100644
--- a/app/addons/documents/routes-doc-editor.js
+++ b/app/addons/documents/routes-doc-editor.js
@@ -41,7 +41,8 @@
     'database/:database/_design/:ddoc': 'showDesignDoc',
     'database/:database/_local/:doc': 'showLocalDoc',
     'database/:database/:doc': 'codeEditor',
-    'database/:database/new(:extra)': 'codeEditor'
+    'database/:database/_new': 'codeEditor',
+    'database/:database/_new?(:extra)': 'codeEditor'
   },
 
   revisionBrowser: function (databaseName, docId) {
diff --git a/app/addons/documents/tests/nightwatch/createsDocument.js b/app/addons/documents/tests/nightwatch/createsDocument.js
index 30aac01..c13ffcc 100644
--- a/app/addons/documents/tests/nightwatch/createsDocument.js
+++ b/app/addons/documents/tests/nightwatch/createsDocument.js
@@ -25,9 +25,9 @@
       .loginToGUI()
       .url(baseUrl + '/#/database/' + newDatabaseName + '/_all_docs')
       .clickWhenVisible('#new-all-docs-button a')
-      .clickWhenVisible('#new-all-docs-button a[href="#/database/' + newDatabaseName + '/new"]')
+      .clickWhenVisible('#new-all-docs-button a[href="#/database/' + newDatabaseName + '/_new"]')
       .waitForElementPresent('#editor-container', waitTime, false)
-      .verify.urlEquals(baseUrl + '/#/database/' + newDatabaseName + '/new')
+      .verify.urlEquals(baseUrl + '/#/database/' + newDatabaseName + '/_new')
       .waitForElementPresent('.ace_gutter-active-line', waitTime, false)
 
       // confirm the header elements are showing up
@@ -70,9 +70,9 @@
       .loginToGUI()
       .url(baseUrl + '/#/database/' + newDatabaseName + '/_all_docs')
       .clickWhenVisible('#new-all-docs-button a')
-      .clickWhenVisible('#new-all-docs-button a[href="#/database/' + newDatabaseName + '/new"]')
+      .clickWhenVisible('#new-all-docs-button a[href="#/database/' + newDatabaseName + '/_new"]')
       .waitForElementPresent('#editor-container', waitTime, false)
-      .verify.urlEquals(baseUrl + '/#/database/' + newDatabaseName + '/new')
+      .verify.urlEquals(baseUrl + '/#/database/' + newDatabaseName + '/_new')
       .waitForElementPresent('.ace_gutter-active-line', waitTime, false)
 
       // confirm the header elements are showing up
@@ -121,7 +121,7 @@
       .waitForElementPresent('.tableview-checkbox-cell', waitTime, false)
       .clickWhenVisible('.document-result-screen__toolbar-create-btn')
       .waitForElementPresent('#editor-container', waitTime, false)
-      .verify.urlEquals(baseUrl + '/#database/' + newDatabaseName + '/new')
+      .verify.urlEquals(baseUrl + '/#database/' + newDatabaseName + '/_new')
       .waitForElementPresent('.ace_gutter-active-line', waitTime, false)
 
       // confirm the header elements are showing up
diff --git a/app/addons/documents/tests/nightwatch/createsDocumentWithoutId.js b/app/addons/documents/tests/nightwatch/createsDocumentWithoutId.js
index d7c7c5e..2f0649f 100644
--- a/app/addons/documents/tests/nightwatch/createsDocumentWithoutId.js
+++ b/app/addons/documents/tests/nightwatch/createsDocumentWithoutId.js
@@ -25,9 +25,9 @@
       .url(baseUrl + '/#/database/' + newDatabaseName + '/_all_docs')
 
       .clickWhenVisible('#new-all-docs-button a')
-      .clickWhenVisible('#new-all-docs-button a[href="#/database/' + newDatabaseName + '/new"]')
+      .clickWhenVisible('#new-all-docs-button a[href="#/database/' + newDatabaseName + '/_new"]')
       .waitForElementPresent('#editor-container', waitTime, false)
-      .verify.urlEquals(baseUrl + '/#/database/' + newDatabaseName + '/new')
+      .verify.urlEquals(baseUrl + '/#/database/' + newDatabaseName + '/_new')
       .waitForElementPresent('.ace_gutter-active-line', waitTime, false)
 
       // confirm the header elements are showing up
diff --git a/app/addons/documents/tests/nightwatch/editDocumentWithStringEditor.js b/app/addons/documents/tests/nightwatch/editDocumentWithStringEditor.js
index 595c7fd..69a36a6 100644
--- a/app/addons/documents/tests/nightwatch/editDocumentWithStringEditor.js
+++ b/app/addons/documents/tests/nightwatch/editDocumentWithStringEditor.js
@@ -23,7 +23,7 @@
     client
       .createDatabase(newDatabaseName)
       .loginToGUI()
-      .url(baseUrl + '/#/database/' + newDatabaseName + '/new')
+      .url(baseUrl + '/#/database/' + newDatabaseName + '/_new')
       .waitForElementPresent('#editor-container', waitTime, false)
       .waitForElementPresent('.ace_gutter-active-line', waitTime, false)
       // Move editor cursor to _id field
diff --git a/app/addons/documents/tests/nightwatch/navigateAfterEditingDocShouldShowAConfirmationBox.js b/app/addons/documents/tests/nightwatch/navigateAfterEditingDocShouldShowAConfirmationBox.js
index 9128aa8..24757e9 100644
--- a/app/addons/documents/tests/nightwatch/navigateAfterEditingDocShouldShowAConfirmationBox.js
+++ b/app/addons/documents/tests/nightwatch/navigateAfterEditingDocShouldShowAConfirmationBox.js
@@ -19,7 +19,7 @@
         newDatabaseName = client.globals.testDatabaseName,
         baseUrl = client.globals.test_settings.launch_url;
 
-    var newLink = '#/database/' + newDatabaseName + '/new';
+    var newLink = '#/database/' + newDatabaseName + '/_new';
 
     client
       .loginToGUI()
diff --git a/app/addons/documents/tests/nightwatch/navigateFromNewDoc.js b/app/addons/documents/tests/nightwatch/navigateFromNewDoc.js
index 323fc85..a3b4520 100644
--- a/app/addons/documents/tests/nightwatch/navigateFromNewDoc.js
+++ b/app/addons/documents/tests/nightwatch/navigateFromNewDoc.js
@@ -21,7 +21,7 @@
         newDatabaseName = client.globals.testDatabaseName,
         baseUrl = client.globals.test_settings.launch_url;
 
-    var newLink = '/#/database/' + newDatabaseName + '/new';
+    var newLink = '/#/database/' + newDatabaseName + '/_new';
 
     client
       .loginToGUI()