Skip to content

Instantly share code, notes, and snippets.

@brandon-beacher
Created November 11, 2009 21:00
Show Gist options
  • Select an option

  • Save brandon-beacher/232293 to your computer and use it in GitHub Desktop.

Select an option

Save brandon-beacher/232293 to your computer and use it in GitHub Desktop.
var window = {};
function(head, request) {
// !code vendor/couchapp/json2.js
// !code vendor/couchapp/JSONQuery.js
start({ headers: { "Content-Type" : "application/json" } });
var root = {};
while (page = getRow()) {
insert(root, page.value.path.split('/'));
}
return JSON.stringify(root);
};
var insert = function(folder, path) {
var name = path.shift();
if (path.length === 0) {
folder.pages = folder.pages || [];
folder.pages.push({ file: name, name: page.value.name });
} else {
folder.folders = folder.folders || [];
var subfolder = window.JSONQuery('?name=$1', folder.folders, name)[0];
if (!subfolder) {
subfolder = { name: name };
folder.folders.push(subfolder);
}
insert(subfolder, path);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment