Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
Link to design docs that have ddoc.couchapp.index or index.html, from…
… Futon database index.

git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@746644 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
jchris committed Feb 22, 2009
1 parent 381be6b commit 6706374dc6d2d41006426137f49be09d9c66bf05
Showing 5 changed files with 58 additions and 5 deletions.
@@ -63,6 +63,7 @@ <h1><strong>Overview</strong></h1>
<tr>
<th>Name</th>
<th class="size">Size</th>
<th class="apps">Applications</th>
<th class="count">Number of Documents</th>
<th class="seq">Update Seq</th>
</tr>
@@ -71,7 +72,7 @@ <h1><strong>Overview</strong></h1>
</tbody>
<tbody class="footer">
<tr>
<td colspan="4">
<td colspan="5">
<div id="paging">
<a class="prev">← Previous Page</a> |
<label>Rows per page: <select id="perpage">
@@ -177,6 +177,10 @@ function CouchDB(name, httpHeaders) {
CouchDB.maybeThrowError(this.last_req);
return JSON.parse(this.last_req.responseText);
}

this.designDocs = function() {
return this.allDocs({startkey:"_design", endkey:"_design0"});
};

this.allDocsBySeq = function(options,keys) {
var req = null;
@@ -263,6 +267,15 @@ CouchDB.allDbs = function() {
return JSON.parse(CouchDB.last_req.responseText);
}

CouchDB.allDesignDocs = function() {
var ddocs = {}, dbs = CouchDB.allDbs();
for (var i=0; i < dbs.length; i++) {
var db = new CouchDB(dbs[i]);
ddocs[dbs[i]] = db.designDocs();
};
return ddocs;
};

CouchDB.getVersion = function() {
CouchDB.last_req = CouchDB.request("GET", "/");
CouchDB.maybeThrowError(CouchDB.last_req);
@@ -52,9 +52,16 @@
$("#databases tbody.content").append("<tr>" +
"<th><a href='database.html?" + encodeURIComponent(dbName) + "'>" +
dbName + "</a></th>" +
"<td class='size'></td><td class='count'></td>" +
"<td class='size'></td><td class='apps'></td><td class='count'></td>" +
"<td class='seq'></td></tr>");
$.couch.db(dbName).info({
var db = $.couch.db(dbName);
db.allApps({
eachApp : function(name, path) {
$("#databases tbody.content tr:eq(" + idx + ")")
.find("td.apps").append('<a href="'+path+'">'+name+'</a> ');
}
});
db.info({
success: function(info) {
$("#databases tbody.content tr:eq(" + idx + ")")
.find("td.size").text($.futon.formatSize(info.disk_size)).end()
@@ -173,6 +173,38 @@
}
});
},
allDesignDocs: function(options) {
options = options || {};
this.allDocs($.extend({startkey:"_design", endkey:"_design0"}, options));
},
allApps: function(options) {
options = options || {};
var self = this;
if (options.eachApp) {
this.allDesignDocs({
success: function(resp) {
$.each(resp.rows, function() {
self.openDoc(this.id, {
success: function(ddoc) {
var index, appPath, appName = ddoc._id.split('/');
appName.shift();
appName = appName.join('/');
index = ddoc.couchapp && ddoc.couchapp.index;
if (index) {
appPath = ['', name, index[0], appName, index[1]].join('/');
} else if (ddoc._attachments["index.html"]) {
appPath = ['', name, '_design', appName, "index.html"].join('/');
}
if (appPath) options.eachApp(appName, appPath, ddoc);
}
});
});
}
});
} else {
alert("please provide an eachApp function for allApps()");
}
},
openDoc: function(docId, options) {
options = options || {};
$.ajax({
@@ -336,8 +336,8 @@ ul.suggest-dropdown li.selected { cursor: pointer; background: Highlight;

/* Database table */

#databases thead th.size, #databases thead th.count, #databases thead th.seq,
#databases tbody td.size, #databases tbody td.count, #databases tbody td.seq {
#databases thead th.apps, #databases thead th.size, #databases thead th.count, #databases thead th.seq,
#databases thead th.apps, #databases tbody td.size, #databases tbody td.count, #databases tbody td.seq {
text-align: right;
}

0 comments on commit 6706374

Please sign in to comment.