summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsuelockwood <deathbear@apache.org>2013-12-19 13:46:59 -0500
committersuelockwood <deathbear@apache.org>2013-12-19 13:46:59 -0500
commit84cf21ab5e8852bd6bae5f2e49797a5d960910d3 (patch)
treeb41d2dd63d75acca112c4950c6ef33ee25c476d0
parent299657473f0f0aea3314183f87fe7921bdd29c75 (diff)
downloadcouchdb-84cf21ab5e8852bd6bae5f2e49797a5d960910d3.tar.gz
Panel will allow an empty doc name, leading to saving "_design"
-rw-r--r--src/fauxton/app/modules/documents/routes.js2
-rw-r--r--src/fauxton/app/modules/documents/views.js9
-rw-r--r--src/fauxton/app/templates/documents/design_doc_selector.html6
-rw-r--r--src/fauxton/assets/less/fauxton.less7
4 files changed, 15 insertions, 9 deletions
diff --git a/src/fauxton/app/modules/documents/routes.js b/src/fauxton/app/modules/documents/routes.js
index 9a4c4eeb5..b8b74b669 100644
--- a/src/fauxton/app/modules/documents/routes.js
+++ b/src/fauxton/app/modules/documents/routes.js
@@ -47,7 +47,7 @@ function(app, FauxtonAPI, Documents, Databases) {
routes: {
// We are hiding the field_editor for this first release
- //"database/:database/:doc/field_editor": "field_editor",
+ // "database/:database/:doc/field_editor": "field_editor",
"database/:database/:doc/code_editor": "code_editor",
"database/:database/:doc": "code_editor"
},
diff --git a/src/fauxton/app/modules/documents/views.js b/src/fauxton/app/modules/documents/views.js
index 44cf48468..9f95686c0 100644
--- a/src/fauxton/app/modules/documents/views.js
+++ b/src/fauxton/app/modules/documents/views.js
@@ -1148,7 +1148,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb, resizeColum
},
updateDesignDoc: function () {
- if (this.$('#ddoc :selected').prop('id') === 'new-doc') {
+ if (this.newDesignDoc()) {
this.$('#new-ddoc-section').show();
} else {
this.$('#new-ddoc-section').hide();
@@ -1156,9 +1156,12 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb, resizeColum
},
newDesignDoc: function () {
- return this.$('#ddoc :selected').prop('id') === 'new-doc';
+ return this.$('#ddoc').val() === 'new-doc';
},
+ newDocValidation: function(){
+ return this.newDesignDoc() && this.$('#new-ddoc').val()==="";
+ },
getCurrentDesignDoc: function () {
if (this.newDesignDoc()) {
var doc = {
@@ -1169,7 +1172,7 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb, resizeColum
var ddoc = new this.DocModel(doc, {database: this.database});
this.collection.add(ddoc);
return ddoc;
- } else {
+ } else if ( !this.newDesignDoc() ) {
var ddocName = this.$('#ddoc').val();
return this.collection.find(function (ddoc) {
return ddoc.id === ddocName;
diff --git a/src/fauxton/app/templates/documents/design_doc_selector.html b/src/fauxton/app/templates/documents/design_doc_selector.html
index 457b76ce7..7bbe31021 100644
--- a/src/fauxton/app/templates/documents/design_doc_selector.html
+++ b/src/fauxton/app/templates/documents/design_doc_selector.html
@@ -15,12 +15,12 @@ the License.
<label for="ddoc">Save to Design Document <a href="<%=getDocUrl('design_doc')%>" target="_blank"><i class="icon-question-sign"></i></a></label>
<select id="ddoc">
<optgroup label="Select a document">
- <option id="new-doc">New document</option>
+ <option value="new-doc">New document</option>
<% ddocs.each(function(ddoc) { %>
<% if (ddoc.id === ddocName) { %>
- <option selected="selected"><%= ddoc.id %></option>
+ <option selected="selected" value="<%= ddoc.id %>"><%= ddoc.id %></option>
<% } else { %>
- <option><%= ddoc.id %></option>
+ <option value="<%= ddoc.id %>"><%= ddoc.id %></option>
<% } %>
<% }); %>
</optgroup>
diff --git a/src/fauxton/assets/less/fauxton.less b/src/fauxton/assets/less/fauxton.less
index 0cf7bc2b9..d220abcac 100644
--- a/src/fauxton/assets/less/fauxton.less
+++ b/src/fauxton/assets/less/fauxton.less
@@ -717,9 +717,7 @@ input[type=text], input[type=password],
}
-input[type=checkbox]{
-}
label.fonticon-search {
.box-sizing(content-box);
position: relative;
@@ -795,6 +793,11 @@ label{
.help-block{
font-size: 12px;
}
+
+input[type=text].error{
+ border: red 1px solid;
+}
+
.custom-inputs{
input[type=radio],