$.intervals = { 'all':'(DATE(`created`) <= CURDATE())', 'today':'(DATE(`created`) = CURDATE())', 'yesterday':'(DATE(`created`) = (CURDATE() - INTERVAL 1 DAY))', 'from-yesterday':'(DATE(`created`) >= (CURDATE() - INTERVAL 1 DAY))', 'from-oneweek':'(DATE(`created`) >= (CURDATE() - INTERVAL 7 DAY))', 'from-onemonth':'(DATE(`created`) >= (CURDATE() - INTERVAL 31 DAY))', 'week':'(`created`>=DATE(NOW()- INTERVAL 7 DAY))', 'month':'(`created`>=DATE(NOW()- INTERVAL 31 DAY))', } $.preSaveCalls = {} $.store = { preSave:function(item){ let type = item.type if($.preSaveCalls[type]) item = $.preSaveCalls[type](item) return item }, saveItem:function(item, callback){ let id = item.id if(id == undefined || id == ''){ id = '_' if(item.time == undefined) item.time = $.date.shortDateTime() } let items = {} items[id] = $.store.preSave(item) $.store.save(items, callback) }, saveItems:function(vals, callback){ let items = {} _.forEach(vals, function(item){ let id = item.id if(id == undefined || id == '') id = '_' items[id] = $.store.preSave(item) }) $.store.save(items, callback) }, save:function(vals, callback){ $.post('store_jsonx_save', vals, function(res){ if(res) console.log(res) if($.debug == 1) $.bubble(res) if(callback) callback(res) }) .fail(function(XMLHttpRequest, textStatus, errorThrown){ $.bubble('Cannot connect to server, check connection') }) }, load:function(query, callback){ // basic query: matching all comma delimited words //$.bubble('query: '+query) if($.debug) alert(query) $.post('store_jsonx_load', {'query':query}, (res)=>{ //if($.debug) alert(res) var items = '' eval('items = '+res) if($.store.items == undefined) $.store.items = {} _.forEach(items, function(item){$.store.items[item.id] = item}) callback(items) }) .fail(function(XMLHttpRequest, textStatus, errorThrown){ $.bubble(textStatus) }) }, update:function(id, _update){ var update = {} update[id] = _update update[id].id = id $.store.save(update) }, delete:function(id, updatenote){ $.post('store_jsonx_delete', {id:id, updatenote:updatenote}, (res)=>{ if(res) $.bubble(res) }) .fail(function(XMLHttpRequest, textStatus, errorThrown){ $.bubble('Cannot connect to server, check connection') }) }, } $.fn.ap = $.fn.append $.fn.api = function(p){return this.ap($.ip(p))} // n=name, l=label, t=type $.ip = function(p){ if(p.f===undefined) p.f = '' if(p.l===undefined) p.l = '' // *** button if(p.f == 'b'){ out = '') callback(div) $(this).ap(div) return this } $.fn.uploadButton = function(title, callback, attr){ $('