[util][s]: strip all unused code.
This commit is contained in:
267
src/util.js
267
src/util.js
@@ -70,14 +70,6 @@ var util = function() {
|
|||||||
return o;
|
return o;
|
||||||
};
|
};
|
||||||
|
|
||||||
function inURL(url, str) {
|
|
||||||
var exists = false;
|
|
||||||
if ( url.indexOf( str ) > -1 ) {
|
|
||||||
exists = true;
|
|
||||||
}
|
|
||||||
return exists;
|
|
||||||
}
|
|
||||||
|
|
||||||
function registerEmitter() {
|
function registerEmitter() {
|
||||||
var Emitter = function(obj) {
|
var Emitter = function(obj) {
|
||||||
this.emit = function(obj, channel) {
|
this.emit = function(obj, channel) {
|
||||||
@@ -182,256 +174,7 @@ var util = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatMetadata(data) {
|
|
||||||
out = '<dl>';
|
|
||||||
$.each(data, function(key, val) {
|
|
||||||
if (typeof(val) == 'string' && key[0] != '_') {
|
|
||||||
out = out + '<dt>' + key + '<dd>' + val;
|
|
||||||
} else if (typeof(val) == 'object' && key != "geometry" && val != null) {
|
|
||||||
if (key == 'properties') {
|
|
||||||
$.each(val, function(attr, value){
|
|
||||||
out = out + '<dt>' + attr + '<dd>' + value;
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
out = out + '<dt>' + key + '<dd>' + val.join(', ');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
out = out + '</dl>';
|
|
||||||
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 = $('<div class="doc-value string-type"></div>');
|
|
||||||
if (obj[key].length > 45) {
|
|
||||||
val.append($('<span class="string-type"></span>')
|
|
||||||
.text(obj[key].slice(0, 45)))
|
|
||||||
.append(
|
|
||||||
$('<span class="expand">...</span>')
|
|
||||||
.click(function () {
|
|
||||||
val.html('')
|
|
||||||
.append($('<span class="string-type"></span>')
|
|
||||||
.text(obj[key].length ? obj[key] : " ")
|
|
||||||
)
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
var val = $('<div class="doc-value string-type"></div>');
|
|
||||||
val.append(
|
|
||||||
$('<span class="string-type"></span>')
|
|
||||||
.text(obj[key].length ? obj[key] : " ")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
, "number": function (obj, key) {
|
|
||||||
var val = $('<div class="doc-value number"></div>')
|
|
||||||
val.append($('<span class="number-type">' + obj[key] + '</span>'))
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
, "null": function (obj, key) {
|
|
||||||
var val = $('<div class="doc-value null"></div>')
|
|
||||||
val.append($('<span class="null-type">' + obj[key] + '</span>'))
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
, "boolean": function (obj, key) {
|
|
||||||
var val = $('<div class="fue null"></div>')
|
|
||||||
val.append($('<span class="null-type">' + obj[key] + '</span>'))
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
, "array": function (obj, key, indent) {
|
|
||||||
if (!indent) indent = 1;
|
|
||||||
var val = $('<div class="doc-value array"></div>')
|
|
||||||
$('<span class="array-type">[</span><span class="expand" style="float:left">...</span><span class="array-type">]</span>')
|
|
||||||
.click(function (e) {
|
|
||||||
var n = $(this).parent();
|
|
||||||
var cls = 'sub-'+key+'-'+indent
|
|
||||||
n.html('')
|
|
||||||
n.append('<span style="padding-left:'+((indent - 1) * 10)+'px" class="array-type">[</span>')
|
|
||||||
for (i in obj[key]) {
|
|
||||||
var field = $('<div class="doc-field"></div>').click(handleTreeClick);
|
|
||||||
n.append(
|
|
||||||
field
|
|
||||||
.append('<div class="array-key '+cls+'" >'+i+'</div>')
|
|
||||||
.append(createTreeNode[getType(obj[key][i])](obj[key], i, indent + 1))
|
|
||||||
)
|
|
||||||
}
|
|
||||||
n.append('<span style="padding-left:'+((indent - 1) * 10)+'px" class="array-type">]</span>')
|
|
||||||
$('div.'+cls).width(largestWidth('div.'+cls))
|
|
||||||
})
|
|
||||||
.appendTo($('<div class="array-type"></div>').appendTo(val))
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
, "object": function (obj, key, indent) {
|
|
||||||
if (!indent) indent = 1;
|
|
||||||
var val = $('<div class="doc-value object"></div>')
|
|
||||||
$('<span class="object-type">{</span><span class="expand" style="float:left">...</span><span class="object-type">}</span>')
|
|
||||||
.click(function (e) {
|
|
||||||
var n = $(this).parent();
|
|
||||||
n.html('')
|
|
||||||
n.append('<span style="padding-left:'+((indent - 1) * 10)+'px" class="object-type">{</span>')
|
|
||||||
for (i in obj[key]) {
|
|
||||||
var field = $('<div class="doc-field"></div>').click(handleTreeClick);
|
|
||||||
var p = $('<div class="id-space" style="margin-left:'+(indent * 10)+'px"/>');
|
|
||||||
var di = $('<div class="object-key">'+i+'</div>')
|
|
||||||
field.append(p)
|
|
||||||
.append(di)
|
|
||||||
.append(createTreeNode[getType(obj[key][i])](obj[key], i, indent + 1))
|
|
||||||
n.append(field)
|
|
||||||
}
|
|
||||||
|
|
||||||
n.append('<span style="padding-left:'+((indent - 1) * 10)+'px" class="object-type">}</span>')
|
|
||||||
di.width(largestWidth('div.object-key'))
|
|
||||||
})
|
|
||||||
.appendTo($('<div class="object-type"></div>').appendTo(val))
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function renderTree(doc) {
|
|
||||||
var d = $('div#document-editor');
|
|
||||||
for (i in doc) {
|
|
||||||
var field = $('<div class="doc-field"></div>').click(handleTreeClick);
|
|
||||||
$('<div class="id-space" />').appendTo(field);
|
|
||||||
field.append('<div class="doc-key doc-key-base">'+i+'</div>')
|
|
||||||
field.append(createTreeNode[getType(doc[i])](doc, i));
|
|
||||||
d.append(field);
|
|
||||||
}
|
|
||||||
|
|
||||||
$('div.doc-key-base').width(largestWidth('div.doc-key-base'))
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
inURL: inURL,
|
|
||||||
registerEmitter: registerEmitter,
|
registerEmitter: registerEmitter,
|
||||||
listenFor: listenFor,
|
listenFor: listenFor,
|
||||||
show: show,
|
show: show,
|
||||||
@@ -439,14 +182,6 @@ var util = function() {
|
|||||||
position: position,
|
position: position,
|
||||||
render: render,
|
render: render,
|
||||||
notify: notify,
|
notify: notify,
|
||||||
observeExit: observeExit,
|
observeExit: observeExit
|
||||||
formatMetadata:formatMetadata,
|
|
||||||
getBaseURL:getBaseURL,
|
|
||||||
resetForm: resetForm,
|
|
||||||
delay: delay,
|
|
||||||
persist: persist,
|
|
||||||
lookupPath: lookupPath,
|
|
||||||
selectedTreePath: selectedTreePath,
|
|
||||||
renderTree: renderTree
|
|
||||||
};
|
};
|
||||||
}();
|
}();
|
||||||
|
|||||||
Reference in New Issue
Block a user