You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2013/08/08 15:26:20 UTC
[12/13] git commit: updated refs/heads/master to a9c390e
Fauxton:
Spinner shows before routeObject establish
Hide field editor for now
Documents view trash cash enabled on item selected
Jump to doc working
Fauxton fix views page
Fixes for docs
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/acecae56
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/acecae56
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/acecae56
Branch: refs/heads/master
Commit: acecae56f3e8442e067a3f0c1847d95ecd92e876
Parents: eed363c
Author: Garren Smith <ga...@gmail.com>
Authored: Tue Aug 6 11:31:38 2013 +0200
Committer: Garren Smith <ga...@gmail.com>
Committed: Thu Aug 8 15:21:27 2013 +0200
----------------------------------------------------------------------
src/fauxton/app/addons/activetasks/views.js | 1 -
src/fauxton/app/api.js | 59 ++++++++++----------
src/fauxton/app/initialize.js | 2 +-
src/fauxton/app/modules/documents/routes.js | 10 +---
src/fauxton/app/modules/documents/views.js | 51 +++++++++++++----
.../documents/doc_field_editor_tabs.html | 2 +-
.../app/templates/documents/jumpdoc.html | 2 +-
src/fauxton/assets/less/fauxton.less | 13 ++++-
src/fauxton/assets/less/mixins.less | 20 +++++++
9 files changed, 108 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/app/addons/activetasks/views.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/addons/activetasks/views.js b/src/fauxton/app/addons/activetasks/views.js
index 7305367..348fb2a 100644
--- a/src/fauxton/app/addons/activetasks/views.js
+++ b/src/fauxton/app/addons/activetasks/views.js
@@ -89,7 +89,6 @@ function (app, FauxtonAPI, activetasks) {
var that = this;
clearInterval(pollingInfo.intervalId);
pollingInfo.intervalId = setInterval(function() {
- console.log('hit me once');
that.establish();
}, pollingInfo.rate*1000);
},
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/app/api.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/api.js b/src/fauxton/app/api.js
index f441bbf..da74d6a 100644
--- a/src/fauxton/app/api.js
+++ b/src/fauxton/app/api.js
@@ -265,11 +265,6 @@ function(app, Fauxton) {
}
}
- //add page loader. "app-container" shouldn't be overwritten. Even if a new index.underscore is provided in settings.json
- // if (!this.disableLoader) {
- // $('#app-container').addClass(this.loaderClassname);
- // }
-
masterLayout.clearBreadcrumbs();
var crumbs = this.get('crumbs');
@@ -279,43 +274,47 @@ function(app, Fauxton) {
}));
}
+ if (!this.disableLoader){
+ var opts = {
+ lines: 16, // The number of lines to draw
+ length: 8, // The length of each line
+ width: 4, // The line thickness
+ radius: 12, // The radius of the inner circle
+ color: '#aaa', // #rbg or #rrggbb
+ speed: 1, // Rounds per second
+ trail: 10, // Afterglow percentage
+ shadow: false // Whether to render a shadow
+ };
+
+ if (!$('.spinner').length) {
+ $('<div class="spinner"></div>').appendTo('#app-container');
+ }
+
+ var spinner = new Spinner(opts).spin();
+ $('.spinner').append(spinner.el);
+ }
+
FauxtonAPI.when(this.establish()).done(function(resp) {
- // if (!this.disableLoader) {
- // $('#app-container').removeClass(this.loaderClassname);
- // }
_.each(routeObject.getViews(), function(view, selector) {
if(view.hasRendered()) { return; }
- if (!view.disableLoader){
- var opts = {
- lines: 16, // The number of lines to draw
- length: 8, // The length of each line
- width: 4, // The line thickness
- radius: 12, // The radius of the inner circle
- color: '#ccc', // #rbg or #rrggbb
- speed: 1, // Rounds per second
- trail: 10, // Afterglow percentage
- shadow: false // Whether to render a shadow
- };
- $('<div class="spinner"></div>').appendTo(selector);
- var spinner = new Spinner(opts).spin();
- $('.spinner').append(spinner.el);
- }
FauxtonAPI.when(view.establish()).then(function(resp) {
masterLayout.setView(selector, view);
+
if (!view.disableLoader){
spinner.stop();
- }
- // } $(selector).removeClass(view.loaderClassname);
+ }
+
masterLayout.renderView(selector);
}, function(resp) {
- view.establishError = {
- error: true,
- reason: resp
- };
+ view.establishError = {
+ error: true,
+ reason: resp
+ };
+
masterLayout.renderView(selector);
});
-
+
var hooks = masterLayout.hooks[selector];
var boundRoute = route;
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/app/initialize.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/initialize.js b/src/fauxton/app/initialize.js
index 6fed729..4826c5e 100644
--- a/src/fauxton/app/initialize.js
+++ b/src/fauxton/app/initialize.js
@@ -36,7 +36,7 @@ function(app, _, Bootstrap) {
// Thanks to: http://stackoverflow.com/a/2880929
getParams: function(queryString) {
- if (typeof queryString !== "undefined") {
+ if (queryString) {
// I think this could be combined into one if
if (queryString.substring(0,1) === "?") {
queryString = queryString.substring(1);
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/app/modules/documents/routes.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/modules/documents/routes.js b/src/fauxton/app/modules/documents/routes.js
index f712ec3..6a7d4b4 100644
--- a/src/fauxton/app/modules/documents/routes.js
+++ b/src/fauxton/app/modules/documents/routes.js
@@ -47,7 +47,8 @@ function(app, FauxtonAPI, Documents, Databases) {
},
routes: {
- "database/:database/:doc/field_editor": "field_editor",
+ // We are hiding the field_editor for this first release
+ //"database/:database/:doc/field_editor": "field_editor",
"database/:database/:doc/code_editor": "code_editor",
"database/:database/:doc": "code_editor"
},
@@ -173,11 +174,6 @@ function(app, FauxtonAPI, Documents, Databases) {
collection: this.data.designDocs,
database: this.data.database
}));
-
- // this.setView("#tabs", new Documents.Views.Tabs({
- // collection: this.data.designDocs,
- // database: this.data.database
- // }));
},
establish: function () {
@@ -199,7 +195,7 @@ function(app, FauxtonAPI, Documents, Databases) {
if (this.viewEditor) { this.viewEditor.remove(); }
- this.toolsView = this.setView("#dashboard-upper-menu", new Documents.Views.JumpToDoc());
+ this.toolsView = this.setView("#dashboard-upper-menu", new Documents.Views.JumpToDoc({database: this.data.database}));
this.documentsView = this.setView("#dashboard-lower-content", new Documents.Views.AllDocsList({
collection: this.data.database.allDocs
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/app/modules/documents/views.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/modules/documents/views.js b/src/fauxton/app/modules/documents/views.js
index 881f3d1..6aa4e11 100644
--- a/src/fauxton/app/modules/documents/views.js
+++ b/src/fauxton/app/modules/documents/views.js
@@ -303,6 +303,14 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
},
destroy: function(event) {
+ if (this.model.isNewDoc()) {
+ FauxtonAPI.addNotification({
+ msg: 'This document has not been saved yet.',
+ type: 'warning'
+ });
+ return;
+ }
+
if (!window.confirm("Are you sure you want to delete this doc?")) {
return false;
}
@@ -343,6 +351,13 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
},
duplicate: function(event) {
+ if (this.model.isNewDoc()) {
+ FauxtonAPI.addNotification({
+ msg: 'Please save the document before duplicating it.',
+ type: 'warning'
+ });
+ return;
+ }
event.preventDefault();
this.duplicateModal.showModal();
},
@@ -461,7 +476,16 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
template: "templates/documents/all_docs_list",
events: {
"click button.all": "selectAll",
- "click button.bulk-delete": "bulkDelete"
+ "click button.bulk-delete": "bulkDelete",
+ "change .row-select":"toggleTrash"
+ },
+
+ toggleTrash: function () {
+ if (this.$('.row-select:checked').length > 0) {
+ this.$('.bulk-delete').removeClass('disabled');
+ } else {
+ this.$('.bulk-delete').addClass('disabled');
+ }
},
initialize: function(options){
@@ -487,7 +511,7 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
},
selectAll: function(evt){
- $("input:checkbox").attr('checked', !$(evt.target).hasClass('active'));
+ $("input:checkbox").prop('checked', !$(evt.target).hasClass('active'));
},
serialize: function() {
@@ -539,6 +563,7 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
that.rows[ele].$el.fadeOut();
model.collection.remove(model.id);
+ that.$('.bulk-delete').addClass('disabled');
}, function(resp) {
FauxtonAPI.addNotification({
msg: "Failed to destroy your doc!",
@@ -767,7 +792,7 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
langTemplates: {
"javascript": {
- map: "function(doc) {\n emit(doc.id, 1);\n}",
+ map: "function(doc) {\n emit(doc._id, 1);\n}",
reduce: "function(keys, values, rereduce){\n if (rereduce){\n return sum(values);\n } else {\n return values.length;\n }\n}"
}
},
@@ -968,7 +993,7 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
FauxtonAPI.addNotification({
msg: "<strong>Warning!</strong> Preview executes the Map/Reduce functions in your browser, and may behave differently from CouchDB.",
type: "warning",
- selector: "#define-view .errors-container",
+ selector: ".advanced-options",
fade: true
});
@@ -1166,9 +1191,10 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
},
afterRender: function() {
- var that = this;
- var mapFun = $("#map-function");
- var reduceFun = $("#reduce-function");
+ var that = this,
+ mapFun = this.$("#map-function"),
+ reduceFun = this.$("#reduce-function");
+
if (this.newView) {
mapFun.val(this.langTemplates[this.defaultLang].map);
reduceFun.val(this.langTemplates[this.defaultLang].reduce);
@@ -1249,13 +1275,18 @@ function(app, FauxtonAPI, Documents, pouchdb, Codemirror, JSHint) {
}
});
-
- //moved out of sidebar into it's own view
Views.JumpToDoc = FauxtonAPI.View.extend({
template: "templates/documents/jumpdoc",
+
+ initialize: function (options) {
+ this.database = options.database;
+ },
+
events: {
- "submit #jump-to-doc": "jumpToDoc"
+ "submit #jump-to-doc": "jumpToDoc",
+ "click #jump-to-doc-label": "jumpToDoc"
},
+
jumpToDoc: function (event) {
event.preventDefault();
var docId = this.$('#jump-to-doc-id').val();
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/app/templates/documents/doc_field_editor_tabs.html
----------------------------------------------------------------------
diff --git a/src/fauxton/app/templates/documents/doc_field_editor_tabs.html b/src/fauxton/app/templates/documents/doc_field_editor_tabs.html
index fcc2b53..29c6d8b 100644
--- a/src/fauxton/app/templates/documents/doc_field_editor_tabs.html
+++ b/src/fauxton/app/templates/documents/doc_field_editor_tabs.html
@@ -13,7 +13,7 @@ the License.
-->
<ul class="nav nav-tabs">
- <li id="field_editor" class="<%= isSelectedClass('field_editor') %>"><a href="#<%= doc.url('app') %>/field_editor">Doc fields</a></li>
+ <!--<li id="field_editor" class="<%= isSelectedClass('field_editor') %>"><a href="#<%= doc.url('app') %>/field_editor">Doc fields</a></li>-->
<li id="code_editor" class="<%= isSelectedClass('code_editor') %>"><a href="#<%= doc.url('app') %>/code_editor"><i class="icon-pencil"></i> Code editor</a></li>
<ul class="nav pull-right" style="margin:5px 10px 0px 10px;">
<li>
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/app/templates/documents/jumpdoc.html
----------------------------------------------------------------------
diff --git a/src/fauxton/app/templates/documents/jumpdoc.html b/src/fauxton/app/templates/documents/jumpdoc.html
index d95e6aa..546134b 100644
--- a/src/fauxton/app/templates/documents/jumpdoc.html
+++ b/src/fauxton/app/templates/documents/jumpdoc.html
@@ -14,7 +14,7 @@ the License.
<form id="jump-to-doc" class="form-inline">
- <label class="fonticon-search">
+ <label id="jump-to-doc-label" class="fonticon-search">
<input type="text" id="jump-to-doc-id" class="input-large" placeholder="Document ID"></input>
</label>
</form>
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/assets/less/fauxton.less
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/less/fauxton.less b/src/fauxton/assets/less/fauxton.less
index 7600543..f15ec75 100644
--- a/src/fauxton/assets/less/fauxton.less
+++ b/src/fauxton/assets/less/fauxton.less
@@ -22,6 +22,7 @@
@import "prettyprint.less";
@import "database.less";
@import "icons.less";
+@import "mixins.less";
/*define variable for color here, remove to seperate file later*/
@@ -671,9 +672,19 @@ tr.all-docs-item{
color: @fontGrey;
}
-
div.spinner {
position: absolute;
left: 50%;
top: 50%;
}
+
+/* Code mirror overrides */
+.CodeMirror-scroll {
+ .border-radius(2px);
+ border: solid 1px #ddd;
+}
+
+.btn-primary a:visited {
+ color: #fff;
+
+}
http://git-wip-us.apache.org/repos/asf/couchdb/blob/acecae56/src/fauxton/assets/less/mixins.less
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/less/mixins.less b/src/fauxton/assets/less/mixins.less
new file mode 100644
index 0000000..d1b08ef
--- /dev/null
+++ b/src/fauxton/assets/less/mixins.less
@@ -0,0 +1,20 @@
+/* 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.
+ */
+
+// Border Radius
+.border-radius(@radius) {
+ -webkit-border-radius: @radius;
+ -moz-border-radius: @radius;
+ border-radius: @radius;
+}
+