diff --git a/src/util.js b/src/util.js
index ca5cee76..5023c03a 100644
--- a/src/util.js
+++ b/src/util.js
@@ -70,14 +70,6 @@ var util = function() {
return o;
};
- function inURL(url, str) {
- var exists = false;
- if ( url.indexOf( str ) > -1 ) {
- exists = true;
- }
- return exists;
- }
-
function registerEmitter() {
var Emitter = function(obj) {
this.emit = function(obj, channel) {
@@ -182,256 +174,7 @@ var util = function() {
}
}
- function formatMetadata(data) {
- out = '
';
- $.each(data, function(key, val) {
- if (typeof(val) == 'string' && key[0] != '_') {
- out = out + '- ' + key + '
- ' + val;
- } else if (typeof(val) == 'object' && key != "geometry" && val != null) {
- if (key == 'properties') {
- $.each(val, function(attr, value){
- out = out + '
- ' + attr + '
- ' + value;
- })
- } else {
- out = out + '
- ' + key + '
- ' + val.join(', ');
- }
- }
- });
- out = out + '
';
- return out;
- }
-
- function getBaseURL(url) {
- var baseURL = "";
- if ( inURL(url, '_design') ) {
- if (inURL(url, '_rewrite')) {
- var path = url.split("#")[0];
- if (path[path.length - 1] === "/") {
- baseURL = "";
- } else {
- baseURL = '_rewrite/';
- }
- } else {
- baseURL = '_rewrite/';
- }
- }
- return baseURL;
- }
-
- var persist = {
- restore: function() {
- $('.persist').each(function(i, el) {
- var inputId = $(el).attr('id');
- if(localStorage.getItem(inputId)) $('#' + inputId).val(localStorage.getItem(inputId));
- })
- },
- save: function(id) {
- localStorage.setItem(id, $('#' + id).val());
- },
- clear: function() {
- $('.persist').each(function(i, el) {
- localStorage.removeItem($(el).attr('id'));
- })
- }
- }
-
- // simple debounce adapted from underscore.js
- function delay(func, wait) {
- return function() {
- var context = this, args = arguments;
- var throttler = function() {
- delete app.timeout;
- func.apply(context, args);
- };
- if (!app.timeout) app.timeout = setTimeout(throttler, wait);
- };
- };
-
- function resetForm(form) {
- $(':input', form)
- .not(':button, :submit, :reset, :hidden')
- .val('')
- .removeAttr('checked')
- .removeAttr('selected');
- }
-
- function largestWidth(selector, min) {
- var min_width = min || 0;
- $(selector).each(function(i, n){
- var this_width = $(n).width();
- if (this_width > min_width) {
- min_width = this_width;
- }
- });
- return min_width;
- }
-
- function getType(obj) {
- if (obj === null) {
- return 'null';
- }
- if (typeof obj === 'object') {
- if (obj.constructor.toString().indexOf("Array") !== -1) {
- return 'array';
- } else {
- return 'object';
- }
- } else {
- return typeof obj;
- }
- }
-
- function lookupPath(path) {
- var docs = app.apiDocs;
- try {
- _.each(path, function(node) {
- docs = docs[node];
- })
- } catch(e) {
- util.notify("Error selecting documents" + e);
- docs = [];
- }
- return docs;
- }
-
- function nodePath(docField) {
- if (docField.children('.object-key').length > 0) return docField.children('.object-key').text();
- if (docField.children('.array-key').length > 0) return docField.children('.array-key').text();
- if (docField.children('.doc-key').length > 0) return docField.children('.doc-key').text();
- return "";
- }
-
- function selectedTreePath() {
- var nodes = []
- , parent = $('.chosen');
- while (parent.length > 0) {
- nodes.push(nodePath(parent));
- parent = parent.parents('.doc-field:first');
- }
- return _.compact(nodes).reverse();
- }
-
- // TODO refactor handlers so that they dont stack up as the tree gets bigger
- function handleTreeClick(e) {
- var clicked = $(e.target);
- if(clicked.hasClass('expand')) return;
- if (clicked.children('.array').length > 0) {
- var field = clicked;
- } else if (clicked.siblings('.array').length > 0) {
- var field = clicked.parents('.doc-field:first');
- } else {
- var field = clicked.parents('.array').parents('.doc-field:first');
- }
- $('.chosen').removeClass('chosen');
- field.addClass('chosen');
- return false;
- }
-
- var createTreeNode = {
- "string": function (obj, key) {
- var val = $('');
- if (obj[key].length > 45) {
- val.append($('')
- .text(obj[key].slice(0, 45)))
- .append(
- $('...')
- .click(function () {
- val.html('')
- .append($('')
- .text(obj[key].length ? obj[key] : " ")
- )
- })
- )
- }
- else {
- var val = $('');
- val.append(
- $('')
- .text(obj[key].length ? obj[key] : " ")
- )
- }
- return val;
- }
- , "number": function (obj, key) {
- var val = $('')
- val.append($('' + obj[key] + ''))
- return val;
- }
- , "null": function (obj, key) {
- var val = $('')
- val.append($('' + obj[key] + ''))
- return val;
- }
- , "boolean": function (obj, key) {
- var val = $('')
- val.append($('' + obj[key] + ''))
- return val;
- }
- , "array": function (obj, key, indent) {
- if (!indent) indent = 1;
- var val = $('')
- $('[...]')
- .click(function (e) {
- var n = $(this).parent();
- var cls = 'sub-'+key+'-'+indent
- n.html('')
- n.append('[')
- for (i in obj[key]) {
- var field = $('').click(handleTreeClick);
- n.append(
- field
- .append(''+i+'
')
- .append(createTreeNode[getType(obj[key][i])](obj[key], i, indent + 1))
- )
- }
- n.append(']')
- $('div.'+cls).width(largestWidth('div.'+cls))
- })
- .appendTo($('').appendTo(val))
- return val;
- }
- , "object": function (obj, key, indent) {
- if (!indent) indent = 1;
- var val = $('')
- $('{...}')
- .click(function (e) {
- var n = $(this).parent();
- n.html('')
- n.append('{')
- for (i in obj[key]) {
- var field = $('').click(handleTreeClick);
- var p = $('');
- var di = $(''+i+'
')
- field.append(p)
- .append(di)
- .append(createTreeNode[getType(obj[key][i])](obj[key], i, indent + 1))
- n.append(field)
- }
-
- n.append('}')
- di.width(largestWidth('div.object-key'))
- })
- .appendTo($('').appendTo(val))
- return val;
- }
- }
-
- function renderTree(doc) {
- var d = $('div#document-editor');
- for (i in doc) {
- var field = $('').click(handleTreeClick);
- $('').appendTo(field);
- field.append(''+i+'
')
- field.append(createTreeNode[getType(doc[i])](doc, i));
- d.append(field);
- }
-
- $('div.doc-key-base').width(largestWidth('div.doc-key-base'))
- }
-
-
return {
- inURL: inURL,
registerEmitter: registerEmitter,
listenFor: listenFor,
show: show,
@@ -439,14 +182,6 @@ var util = function() {
position: position,
render: render,
notify: notify,
- observeExit: observeExit,
- formatMetadata:formatMetadata,
- getBaseURL:getBaseURL,
- resetForm: resetForm,
- delay: delay,
- persist: persist,
- lookupPath: lookupPath,
- selectedTreePath: selectedTreePath,
- renderTree: renderTree
+ observeExit: observeExit
};
}();