You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by de...@apache.org on 2014/03/19 21:20:22 UTC

couchdb commit: updated refs/heads/Update-Sidebar-Ui to f364947

Repository: couchdb
Updated Branches:
  refs/heads/Update-Sidebar-Ui [created] f364947e0


Make Sidebar show all design doc functions


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/f364947e
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/f364947e
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/f364947e

Branch: refs/heads/Update-Sidebar-Ui
Commit: f364947e0bc8a1a820cee0b1596207057d724601
Parents: bef40dc
Author: suelockwood <de...@apache.org>
Authored: Wed Mar 19 14:32:44 2014 -0400
Committer: suelockwood <de...@apache.org>
Committed: Wed Mar 19 16:20:09 2014 -0400

----------------------------------------------------------------------
 src/fauxton/app/addons/documents/routes.js      |  2 +-
 .../documents/templates/attachments_footer.html | 20 +++++
 .../documents/templates/design_doc_menu.html    | 14 ++++
 .../documents/templates/index_menu_item.html    |  4 +-
 .../app/addons/documents/templates/sidebar.html | 30 +++-----
 src/fauxton/app/addons/documents/views.js       | 80 +++++++++++++++++---
 6 files changed, 114 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/f364947e/src/fauxton/app/addons/documents/routes.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/addons/documents/routes.js b/src/fauxton/app/addons/documents/routes.js
index 699a496..a43cbe5 100644
--- a/src/fauxton/app/addons/documents/routes.js
+++ b/src/fauxton/app/addons/documents/routes.js
@@ -144,7 +144,7 @@ function(app, FauxtonAPI, Documents, Databases) {
     selectedHeader: "Databases",
     routes: {
       "database/:database/_all_docs(:extra)": "allDocs", 
-      "database/:database/_design/:ddoc/_view/:view": {
+      "database/:database/_design/:ddoc/_views/:view": {
         route: "viewFn",
         roles: ['_admin']
       },

http://git-wip-us.apache.org/repos/asf/couchdb/blob/f364947e/src/fauxton/app/addons/documents/templates/attachments_footer.html
----------------------------------------------------------------------
diff --git a/src/fauxton/app/addons/documents/templates/attachments_footer.html b/src/fauxton/app/addons/documents/templates/attachments_footer.html
new file mode 100644
index 0000000..31bd5a5
--- /dev/null
+++ b/src/fauxton/app/addons/documents/templates/attachments_footer.html
@@ -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.
+-->
+
+<ul>
+	<li> attachment 1</li>
+	<li> attachment 2 </li>
+	<li> attachment 3</li>
+	<li> attachment 4</li>
+</ul>

http://git-wip-us.apache.org/repos/asf/couchdb/blob/f364947e/src/fauxton/app/addons/documents/templates/design_doc_menu.html
----------------------------------------------------------------------
diff --git a/src/fauxton/app/addons/documents/templates/design_doc_menu.html b/src/fauxton/app/addons/documents/templates/design_doc_menu.html
new file mode 100644
index 0000000..d5ea257
--- /dev/null
+++ b/src/fauxton/app/addons/documents/templates/design_doc_menu.html
@@ -0,0 +1,14 @@
+<!--
+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.
+-->
+<li class="nav-header"><%= designDoc%></li>

http://git-wip-us.apache.org/repos/asf/couchdb/blob/f364947e/src/fauxton/app/addons/documents/templates/index_menu_item.html
----------------------------------------------------------------------
diff --git a/src/fauxton/app/addons/documents/templates/index_menu_item.html b/src/fauxton/app/addons/documents/templates/index_menu_item.html
index 7ca9012..b56d975 100644
--- a/src/fauxton/app/addons/documents/templates/index_menu_item.html
+++ b/src/fauxton/app/addons/documents/templates/index_menu_item.html
@@ -12,6 +12,6 @@ License for the specific language governing permissions and limitations under
 the License.
 -->
 
-<a id="<%= ddoc_clean %>_<%= index_clean %>" href="#database/<%= database_encoded %>/_design/<%= ddoc_encoded %>/_view/<%= index_encoded %>" class="toggle-view">
-  <%= ddoc %><span class="divider">/</span><%= index %>
+<a id="<%= ddoc_clean %>_<%= index_clean %>" href="#database/<%= database_encoded %>/_design/<%= ddoc_encoded %>/_<%=type%>/<%= index_encoded %>" class="toggle-view"><%= type %>
+  <%= index %>
 </a>

http://git-wip-us.apache.org/repos/asf/couchdb/blob/f364947e/src/fauxton/app/addons/documents/templates/sidebar.html
----------------------------------------------------------------------
diff --git a/src/fauxton/app/addons/documents/templates/sidebar.html b/src/fauxton/app/addons/documents/templates/sidebar.html
index 750cd30..8da8822 100644
--- a/src/fauxton/app/addons/documents/templates/sidebar.html
+++ b/src/fauxton/app/addons/documents/templates/sidebar.html
@@ -15,25 +15,10 @@ the License.
 <div id="sidenav">
   <header class="row-fluid">
     <div class="span12">
-      <div class="btn-group">
-        <button class="btn dropdown-toggle dropdown-toggle-btn" data-toggle="dropdown">
-          Docs
-          <span class="caret"></span>
-        </button>
-        <ul class="dropdown-menu">
-          <!-- dropdown menu links -->
-          <li><a href="<%= db_url %>"><i class="icon icon-file"></i> Docs</a></li>
-          <li><a href="<%= permissions_url %>"><i class="icon icon-lock"></i> Permissions</a></li>
-          <li><a href="<%= changes_url %>"><i class="icon icon-forward"></i> Changes</a></li>
-          <% _.each(docLinks, function (link) { %>
-          <li><a href="<%= database_url + '/' + link.url %>"><i class="icon <%= link.icon %>"></i> <%= link.title %></a></li>
-          <% }); %>
-        </ul>
-      </div>
 
       <div class="btn-group">
         <button class="btn dropdown-toggle dropdown-toggle-btn" data-toggle="dropdown">
-          New
+          Create New
           <span class="caret"></span>
         </button>
         <ul class="dropdown-menu">
@@ -55,14 +40,17 @@ the License.
 
   <nav>
     <ul class="nav nav-list">
+
+      <li><a id="changes" href="<%= permissions_url %>">Permissions</a><li>
+      <li><a id="changes" href="<%= changes_url %>">Changes</a><li>
+      <% _.each(docLinks, function (link) { %>
+        <li><a href="<%= database_url + '/' + link.url %>"><%= link.title %></a></li>
+      <% }); %>
+
       <li class="active"><a id="all-docs" href="#<%= database.url('index') %>" class="toggle-view"> All documents</a></li>
       <li><a id="design-docs" href='#<%= database.url("index") %>?startkey="_design"&endkey="_e"'  class="toggle-view"> All design docs</a></li>
     </ul>
-    <ul class="nav nav-list views">
-      <li class="nav-header">Secondary Indexes</li>
-      <li><a id="new-view" href="#<%= database.url('app') %>/new_view" class="new"><i class="icon-plus"></i> New</a></li>
-    </ul>
-    <div id="extension-navs"></div>
+
   </nav>
   <div id="delete-db-modal"> </div>
 </div>

http://git-wip-us.apache.org/repos/asf/couchdb/blob/f364947e/src/fauxton/app/addons/documents/views.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/addons/documents/views.js b/src/fauxton/app/addons/documents/views.js
index f29ebaa..327b9c2 100644
--- a/src/fauxton/app/addons/documents/views.js
+++ b/src/fauxton/app/addons/documents/views.js
@@ -385,10 +385,12 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb, resizeColum
       this.ddoc = options.ddoc;
       this.database = options.database;
       this.selected = !! options.selected;
+      this.selector = options.selector;
     },
 
     serialize: function() {
       return {
+        type:  this.selector,
         index: this.index,
         ddoc: this.ddoc,
         database: this.database,
@@ -1819,21 +1821,22 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb, resizeColum
         new Views.DeleteDBModal({database: this.database})
       );
 
-      var sidebarListViews = FauxtonAPI.getExtensions('sidebar:list');
-      _.each(sidebarListViews, function (view) {
-        var extension = this.insertView('#extension-navs', view);
-        extension.update(this.database, this.collection, this.viewName);
-        extension.render();
-      }, this);
-
       this.collection.each(function(design) {
         if (design.has('doc')){
-          var ddoc = design.id.replace(/^_design\//,"");
-          if (design.get('doc').views){
-            this.buildIndexList(design.get('doc').views, "views", ddoc);
-          }
+          this.insertView("nav", new Views.DdocSidenav({
+            model: design
+          }));
         }
-      }, this);
+      },this);
+
+      // this.collection.each(function(design) {
+      //   if (design.has('doc')){
+      //       this.insertView(new Views.DdocSidenav({
+      //           collection: design,
+      //           database: this.collection.database.id
+      //       }));
+      //   }
+      // }, this);
     },
 
 
@@ -1850,6 +1853,59 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb, resizeColum
     }
   });
 
+
+  Views.DdocSidenav = FauxtonAPI.View.extend({
+    tagName: "ul",
+    template: "addons/documents/templates/design_doc_menu",
+    initialize: function(){
+
+    },
+
+    buildIndexList: function(collection, selector){
+      var design = this.model.id.replace(/^_design\//,"");
+      _.each(_.keys(collection[selector]), function(key){
+        this.insertView(new Views.IndexItem({
+          selector: selector,
+          ddoc: design,
+          index: key,
+          database: this.model.collection.database.id
+        }));
+      }, this);
+    },
+    extensions: function(){
+            //extensions
+      var sidebarListViews = FauxtonAPI.getExtensions('sidebar:list');
+      _.each(sidebarListViews, function (view) {
+        var extension = this.insertView('#extension-navs', view);
+        extension.update(this.database, this.collection, this.viewName);
+        extension.render();
+      }, this);
+    },
+    serialize: function(){
+      return{
+        designDoc: this.model.id.replace(/^_design\//,"")
+      };
+    },
+    beforeRender: function(manage) {
+
+      console.log("this model", this.model.get("doc"));
+      var ddocDocs = this.model.get("doc");
+
+          if (ddocDocs){
+            
+            //Views
+            this.buildIndexList(ddocDocs, "views");
+            //lists
+            this.buildIndexList(ddocDocs, "lists");
+            //show
+            this.buildIndexList(ddocDocs, "show");
+            //filters
+            this.buildIndexList(ddocDocs, "filters");
+            //extensions 
+          }
+    }
+  });
+
   Views.Indexed = FauxtonAPI.View.extend({});
 
   Views.Changes = FauxtonAPI.View.extend({