diff options
author | suelockwood <deathbear@apache.org> | 2013-12-26 10:27:17 -0500 |
---|---|---|
committer | suelockwood <deathbear@apache.org> | 2013-12-26 10:27:44 -0500 |
commit | 4ed8a8ad1b48a456015543a770907806b1e1709b (patch) | |
tree | 05d28fbd155a7335b9cb7de2f2b5c872f692cb1e | |
parent | acde720fc088ab694cb8f3aa324948e0fb1583ea (diff) | |
download | couchdb-4ed8a8ad1b48a456015543a770907806b1e1709b.tar.gz |
Search for invalid database name or doc id throws error
-rw-r--r-- | src/fauxton/app/modules/databases/views.js | 24 | ||||
-rw-r--r-- | src/fauxton/app/templates/databases/list.html | 9 | ||||
-rw-r--r-- | src/fauxton/assets/less/fauxton.less | 9 |
3 files changed, 25 insertions, 17 deletions
diff --git a/src/fauxton/app/modules/databases/views.js b/src/fauxton/app/modules/databases/views.js index 0b4e0b046..dbeb4754b 100644 --- a/src/fauxton/app/modules/databases/views.js +++ b/src/fauxton/app/modules/databases/views.js @@ -42,8 +42,7 @@ function(app, Components, FauxtonAPI, Databases) { template: "templates/databases/list", events: { "click button.all": "selectAll", - "submit form.database-search": "switchDatabase", - "click label.fonticon-search": "switchDatabase" + "submit form#jump-to-db": "switchDatabase" }, initialize: function(options) { @@ -72,18 +71,23 @@ function(app, Components, FauxtonAPI, Databases) { switchDatabase: function(event, selectedName) { event && event.preventDefault(); - var dbname = this.$el.find("input.search-query").val(); + var dbname = this.$el.find("[name='search-query']").val().trim(); if (selectedName) { dbname = selectedName; } - if (dbname) { - // TODO: switch to using a model, or Databases.databaseUrl() - // Neither of which are in scope right now - // var db = new Database.Model({id: dbname}); - var url = ["/database/", app.mixins.safeURLName(dbname), "/_all_docs?limit=" + Databases.DocLimit].join(''); - FauxtonAPI.navigate(url); + if (dbname && this.collection.where({"id":app.mixins.safeURLName(dbname)}).length > 0){ + // TODO: switch to using a model, or Databases.databaseUrl() + // Neither of which are in scope right now + // var db = new Database.Model({id: dbname}); + var url = ["/database/", app.mixins.safeURLName(dbname), "/_all_docs?limit=" + Databases.DocLimit].join(''); + FauxtonAPI.navigate(url); + } else { + FauxtonAPI.addNotification({ + msg: 'Database does not exist.', + type: 'error' + }); } }, @@ -123,7 +127,7 @@ function(app, Components, FauxtonAPI, Databases) { var that = this; this.dbSearchTypeahead = new Components.DbSearchTypeahead({ dbLimit: this.dbLimit, - el: "input.search-query", + el: "input.search-autocomplete", onUpdate: function (item) { that.switchDatabase(null, item); } diff --git a/src/fauxton/app/templates/databases/list.html b/src/fauxton/app/templates/databases/list.html index 2e5d78d16..3e7329429 100644 --- a/src/fauxton/app/templates/databases/list.html +++ b/src/fauxton/app/templates/databases/list.html @@ -14,11 +14,12 @@ the License. <div class="result-tools" style=""> <div id="newButton" class="pull-left"></div> - <form class="navbar-form pull-right database-search"> - <label class="fonticon-search"> - <input type="text" class="search-query" placeholder="Search by database name"> - </label> + <form id="jump-to-db" class="navbar-form pull-right input-append database-search"> + <input type="text" name="search-query" placeholder="Database name"></input> + <button class="fonticon-search btn button red " type="submit"></button> </form> + + </div> <table class="databases table table-striped"> <thead> diff --git a/src/fauxton/assets/less/fauxton.less b/src/fauxton/assets/less/fauxton.less index 22594d8c6..510c3c1d7 100644 --- a/src/fauxton/assets/less/fauxton.less +++ b/src/fauxton/assets/less/fauxton.less @@ -503,9 +503,10 @@ footer#mainFooter{ } .navbar-form.pull-right.database-search { - margin-right: 36px; + margin: -10px 50px 12px 0; + padding: 11px; input[type=text]{ - margin-top: -4px; + margin-top: 0px; } } @@ -981,7 +982,9 @@ div.spinner { } } -#jump-to-doc { +#jump-to-doc, +#jump-to-db + { width: auto; float:right; button{ |