mirror of
https://github.com/mgerb/mywebsite
synced 2026-01-11 18:32:50 +00:00
150 lines
5.1 KiB
JavaScript
150 lines
5.1 KiB
JavaScript
var derby = require('derby');
|
|
derby.use(require('./ui'));
|
|
derby.use(require('derby-ui-boot'));
|
|
|
|
|
|
var app = derby.createApp(module);
|
|
|
|
|
|
|
|
app.ready(function(model) {
|
|
|
|
// console.log(app.page)
|
|
// model.on('set','dbName',function(path,object){
|
|
// });
|
|
// model.on('set','collectionBox', function(path,obj){
|
|
// console.log('$');
|
|
// app.page.render();
|
|
// });
|
|
// model.on('set','collections',function(path,obj){
|
|
// console.log('!');
|
|
// app.page.render();
|
|
// });
|
|
|
|
app.changeDatabase = function(e, element, next) {
|
|
// console.log('!', element, typeof element); //.find('a').attr('data-value'));
|
|
app.model.set('dbName', $(element).find('a').attr('data-value')); //TODO: e.target.dataset.value
|
|
// console.log(app.model.get('dbName'));
|
|
next();
|
|
};
|
|
app.changeCollection = function (e, element, next){
|
|
//app.model === model YAY!
|
|
app.model.set('collectionName',e.target.dataset.value);
|
|
next();
|
|
};
|
|
|
|
|
|
app.removeFilterRow = function(e, element, next) {
|
|
$(e.target).parent().parent().remove();
|
|
app.applyFilter();
|
|
};
|
|
app.addKeyValueForm = function(e, element, next){
|
|
$('.key-value-group :last').after($('.key-value-group :last').clone(true, true));
|
|
};
|
|
app.applyFilter = function(e, element, next){
|
|
var query = {};
|
|
$('.key-value-row').each(function(index,keyValueRow){
|
|
// console.log(keyValueRow)
|
|
if (!$(keyValueRow).find('.query-key').val() || !$(keyValueRow).find('.query-value').val()) return ;
|
|
if ($(keyValueRow).find('.query-value').attr('data-type') === 'ID') {
|
|
query[$(keyValueRow).find('.query-key').val()] = "ObjectId('" + $(keyValueRow).find('.query-value').val() + "')";
|
|
} else if ($(keyValueRow).find('.query-value').attr('data-type') === 'number') {
|
|
try {
|
|
query[$(keyValueRow).find('.query-key').val()] = parseInt($(keyValueRow).find('.query-value').val());
|
|
} catch (e) {
|
|
console.log(e, 'not a number')
|
|
}
|
|
} else {
|
|
query[$(keyValueRow).find('.query-key').val()] = $(keyValueRow).find('.query-value').val();
|
|
}
|
|
})
|
|
// console.log(query)
|
|
app.page.redirect(window.location.href.substr(0,window.location.href.indexOf('?')) + '?query=' + encodeURI(JSON.stringify(query)));
|
|
};
|
|
|
|
|
|
app.showInput = function (e, element, next){
|
|
// e.preventDefault();
|
|
$(element).find('div.input').removeClass('hidden').find('input').focus();
|
|
$(element).find('span.text').addClass('hidden');
|
|
};
|
|
app.saveInput = function (e, element, next){
|
|
// e.preventDefault();
|
|
console.log($(element).parent().find('input').val());//, e.target.dataset.path);
|
|
$(element).parent().parent().find('div.input').addClass('hidden');
|
|
$(element).parent().parent().find('span.text').removeClass('hidden');
|
|
};
|
|
app.cancelInputOnBlur = function (e, element, next){
|
|
// e.preventDefault();
|
|
$(element).find('div.input').addClass('hidden');
|
|
$(element).find('span.text').removeClass('hidden');
|
|
};
|
|
app.cancelInput = function (e, element, next){
|
|
// e.preventDefault();
|
|
$(element).parent().parent().find('div.input').addClass('hidden');
|
|
$(element).parent().parent().find('span.text').removeClass('hidden');
|
|
// app.page.render();
|
|
// app.page.redirect(window.location.href);
|
|
// next();
|
|
// app.view.history.refresh();
|
|
};
|
|
|
|
app.updateFilterType = function (e, element, next) {
|
|
var queryValue = $(element).parent().parent().find('.query-value');
|
|
var queryKey= $(element).parent().parent().find('.query-key');
|
|
var queryValueWrapperLeft = $(element).parent().parent().find('.query-value-wrapper-left');
|
|
var queryValueWrapperRight = $(element).parent().parent().find('.query-value-wrapper-right');
|
|
var applyStringType = function () {
|
|
queryValue.attr('data-type', 'string');
|
|
queryValue.attr('placeholder', 'azat');
|
|
queryKey.attr('placeholder', 'name');
|
|
queryValueWrapperLeft.html('"');
|
|
queryValueWrapperRight.html('"');
|
|
}
|
|
var applyNumberType = function (){
|
|
queryValue.attr('data-type', 'number');
|
|
queryValue.attr('placeholder', '10');
|
|
queryKey.attr('placeholder', 'level');
|
|
queryValueWrapperLeft.html('');
|
|
queryValueWrapperRight.html('');
|
|
}
|
|
var applyIdType = function (){
|
|
queryValue.attr('data-type', 'ID');
|
|
queryValue.attr('placeholder', '5061da1e63e785cc44017668');
|
|
queryKey.attr('placeholder', '_id');
|
|
queryValueWrapperLeft.html('ObjectId("');
|
|
queryValueWrapperRight.html('")');
|
|
}
|
|
// console.log(queryValue, e.target.value)
|
|
var typeName = e.target.value;
|
|
switch (typeName) {
|
|
case 'string':
|
|
applyStringType();
|
|
break;
|
|
case 'number':
|
|
applyNumberType();
|
|
break;
|
|
case 'ID':
|
|
applyIdType();
|
|
break;
|
|
default:
|
|
applyStringType();
|
|
break;
|
|
}
|
|
next();
|
|
};
|
|
|
|
app.formEnter = function(e, element, next) {
|
|
// console.log(e)
|
|
if (e.keyCode === 13)
|
|
app.applyFilter();
|
|
};
|
|
|
|
app.clearFilter = function(e, element, next){
|
|
window.location.href = window.location.origin + window.location.pathname;
|
|
};
|
|
|
|
|
|
});
|
|
|