Added form to JSON service

This commit is contained in:
eldadfux committed 2019-05-12 21:15:19 +03:00
1 parent d94a0d35c8
commit 733ceb4264
4 files changed
+152 -2

No files matched your search

+1
View File
@@ -20,6 +20,7 @@ const configApp = {
'public/scripts/services/console.js',
'public/scripts/services/date.js',
'public/scripts/services/env.js',
'public/scripts/services/form.js',
'public/scripts/services/markdown.js',
'public/scripts/services/sdk.js',
'public/scripts/services/timezone.js',
+18 -1
View File
@@ -2150,7 +2150,24 @@ match=text.match(new RegExp(regex,'gi'))
if(!match){return fail}
for(i=0,len=match.length;i<len;i++){if(!process(match[i])){return fail}}
return(date.getTime()/1000)}
return{format:format,strtotime:strtotime}}(),true);})(window);(function(window){"use strict";window.ls.container.set('env',function(){return APP_ENV;},true);})(window);(function(window){"use strict";window.ls.container.set('markdown',function(window){var md=window.markdownit();function renderEm(tokens,idx,opts,_,slf){var token=tokens[idx];if(token.markup==='__'){token.tag='u';}
return{format:format,strtotime:strtotime}}(),true);})(window);(function(window){"use strict";window.ls.container.set('env',function(){return APP_ENV;},true);})(window);(function(window){"use strict";window.ls.container.set('form',function(){function cast(value,to){switch(to){case'int':case'integer':value=parseInt(value);break;case'string':value=value.toString();break;case'json':value=(value)?JSON.parse(value):[];break;case'array':value=(value.constructor===Array)?value:[value];break;case'array-empty':value=[];break;case'bool':case'boolean':value=(value==='false')?false:value;value=!!value;break;}
return value;}
function toJson(element,json){json=json||{};let name=element.getAttribute('name');let type=element.getAttribute('type');let castTo=element.getAttribute('data-cast-to');let ref=json;if(name&&'FORM'!==element.tagName){if('FIELDSET'===element.tagName){if(castTo==='object'){if(json[name]===undefined){json[name]={};}
ref=json[name];}
else{if(!Array.isArray(json[name])){json[name]=[];}
json[name].push({});ref=json[name][json[name].length-1];}}
else if(undefined!==element.value){if('SELECT'===element.tagName&&element.children>0){json[name]=element.children[element.selectedIndex].value;}
else if('radio'===type){if(element.checked){json[name]=element.value;}}
else if('checkbox'===type){if(!Array.isArray(json[name])){json[name]=[];}
if(element.checked){json[name].push(element.value);}}
else if(undefined!==element.value){if((json[name]!==undefined)&&(!Array.isArray(json[name]))){json[name]=[json[name]];}
if(Array.isArray(json[name])){json[name].push(element.value);}
else{json[name]=element.value;}}
json[name]=cast(json[name],castTo);}}
for(let i=0;i<element.children.length;i++){if(Array.isArray(ref)){ref.push({});toJson(element.children[i],ref[ref.length]);}
else{toJson(element.children[i],ref);}}
return json;}
return{'toJson':toJson}},true,false);})(window);(function(window){"use strict";window.ls.container.set('markdown',function(window){var md=window.markdownit();function renderEm(tokens,idx,opts,_,slf){var token=tokens[idx];if(token.markup==='__'){token.tag='u';}
return slf.renderToken(tokens,idx,opts);}
md.renderer.rules.strong_open=renderEm;md.renderer.rules.strong_close=renderEm;return md;},true);})(window);(function(window){"use strict";window.ls.container.set('sdk',function(window,router){var sdk=new window.AppwriteSDK();sdk.config.domain=APP_ENV.API;sdk.config.project=router.params.project||null;sdk.config.locale=APP_ENV.LOCALE;sdk.config.mode='admin';return sdk;},false);})(window);(function(window){"use strict";window.ls.container.set('timezone',function(){return{convert:function(unixTime){var timezoneMinutes=new Date().getTimezoneOffset();timezoneMinutes=(timezoneMinutes===0)?0:-timezoneMinutes;return parseInt(unixTime)+(timezoneMinutes*60);}};},true);})(window);window.ls.router.add('/auth/signin',{template:'/auth/signin?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/signup',{template:'/auth/signup?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/recovery',{template:'/auth/recovery?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/recovery/reset',{template:'/auth/recovery/reset?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/confirm',{template:'/auth/confirm?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/join',{template:'/auth/join?version='+APP_ENV.VERSION,scope:'home'}).add('/console',{template:'/console?version='+APP_ENV.VERSION,scope:'console'}).add('/console/account',{template:'/console/account?version='+APP_ENV.VERSION,scope:'console'}).add('/console/account/:tab',{template:'/console/account?version='+APP_ENV.VERSION,scope:'console'}).add('/console/home',{template:'/console/home?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/home/:tab',{template:'/console/home?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/platforms/:platform',{template:function(window){return window.location.pathname+'?version='+APP_ENV.VERSION;},scope:'console',project:true}).add('/console/notifications',{template:'/console/notifications?version='+APP_ENV.VERSION,scope:'console'}).add('/console/settings',{template:'/console/settings?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/settings/:tab',{template:'/console/settings?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/database',{template:'/console/database?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/database/:tab',{template:'/console/database?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/storage',{template:'/console/storage?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/storage/:tab',{template:'/console/storage?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/users',{template:'/console/users?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/users/view',{template:'/console/users/view?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/users/view/:tab',{template:'/console/users/view?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/users/:tab',{template:'/console/users?version='+APP_ENV.VERSION,scope:'console',project:true});window.ls.filter.add('gravatar',function($value){$value=JSON.parse($value||'{}');let MD5=function(s){function L(k,d){return(k<<d)|(k>>>(32-d))}function K(G,k){let I,d,F,H,x;F=(G&2147483648);H=(k&2147483648);I=(G&1073741824);d=(k&1073741824);x=(G&1073741823)+(k&1073741823);if(I&d){return(x^2147483648^F^H)}if(I|d){if(x&1073741824){return(x^3221225472^F^H)}else{return(x^1073741824^F^H)}}else{return(x^F^H)}}function r(d,F,k){return(d&F)|((~d)&k)}function q(d,F,k){return(d&k)|(F&(~k))}function p(d,F,k){return(d^F^k)}function n(d,F,k){return(F^(d|(~k)))}function u(G,F,aa,Z,k,H,I){G=K(G,K(K(r(F,aa,Z),k),I));return K(L(G,H),F)}function f(G,F,aa,Z,k,H,I){G=K(G,K(K(q(F,aa,Z),k),I));return K(L(G,H),F)}function D(G,F,aa,Z,k,H,I){G=K(G,K(K(p(F,aa,Z),k),I));return K(L(G,H),F)}function t(G,F,aa,Z,k,H,I){G=K(G,K(K(n(F,aa,Z),k),I));return K(L(G,H),F)}function e(G){let Z;let F=G.length;let x=F+8;let k=(x-(x%64))/64;let I=(k+1)*16;let aa=Array(I-1);let d=0;let H=0;while(H<F){Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=(aa[Z]|(G.charCodeAt(H)<<d));H++}Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=aa[Z]|(128<<d);aa[I-2]=F<<3;aa[I-1]=F>>>29;return aa}function B(x){let k="",F="",G,d;for(d=0;d<=3;d++){G=(x>>>(d*8))&255;F="0"+G.toString(16);k=k+F.substr(F.length-2,2)}return k}function J(k){k=k.replace(/rn/g,"n");let d="";for(let F=0;F<k.length;F++){let x=k.charCodeAt(F);if(x<128){d+=String.fromCharCode(x)}else{if((x>127)&&(x<2048)){d+=String.fromCharCode((x>>6)|192);d+=String.fromCharCode((x&63)|128)}else{d+=String.fromCharCode((x>>12)|224);d+=String.fromCharCode(((x>>6)&63)|128);d+=String.fromCharCode((x&63)|128)}}}return d}let C=Array();let P,h,E,v,g,Y,X,W,V;let S=7,Q=12,N=17,M=22;let A=5,z=9,y=14,w=20;let o=4,m=11,l=16,j=23;let U=6,T=10,R=15,O=21;s=J(s);C=e(s);Y=1732584193;X=4023233417;W=2562383102;V=271733878;for(P=0;P<C.length;P+=16){h=Y;E=X;v=W;g=V;Y=u(Y,X,W,V,C[P+0],S,3614090360);V=u(V,Y,X,W,C[P+1],Q,3905402710);W=u(W,V,Y,X,C[P+2],N,Line truncated
return n[0];}).join('')||'--';let def='https://ui-avatars.com/api/'+encodeURIComponent(name)+'/'+size+'';return'//www.gravatar.com/avatar/'+MD5(email)+'.jpg?s='+size+'&d='+encodeURIComponent(def);}).add('lowerCase',function($value){return $value.toLowerCase();}).add('date',function($value,date){return date.format('Y-m-d',$value);}).add('date-time',function($value,date){return date.format('Y-m-d H:i',$value);}).add('date-text',function($value,date){return date.format('d M Y',$value);}).add('date-long',function($value,date){return date.format('l, j F, H:i',$value);}).add('min2hum',function($value){if($value>=60){if($value%60===0){return Math.ceil($value/60)+' hours';}
+18 -1
View File
@@ -208,7 +208,24 @@ match=text.match(new RegExp(regex,'gi'))
if(!match){return fail}
for(i=0,len=match.length;i<len;i++){if(!process(match[i])){return fail}}
return(date.getTime()/1000)}
return{format:format,strtotime:strtotime}}(),true);})(window);(function(window){"use strict";window.ls.container.set('env',function(){return APP_ENV;},true);})(window);(function(window){"use strict";window.ls.container.set('markdown',function(window){var md=window.markdownit();function renderEm(tokens,idx,opts,_,slf){var token=tokens[idx];if(token.markup==='__'){token.tag='u';}
return{format:format,strtotime:strtotime}}(),true);})(window);(function(window){"use strict";window.ls.container.set('env',function(){return APP_ENV;},true);})(window);(function(window){"use strict";window.ls.container.set('form',function(){function cast(value,to){switch(to){case'int':case'integer':value=parseInt(value);break;case'string':value=value.toString();break;case'json':value=(value)?JSON.parse(value):[];break;case'array':value=(value.constructor===Array)?value:[value];break;case'array-empty':value=[];break;case'bool':case'boolean':value=(value==='false')?false:value;value=!!value;break;}
return value;}
function toJson(element,json){json=json||{};let name=element.getAttribute('name');let type=element.getAttribute('type');let castTo=element.getAttribute('data-cast-to');let ref=json;if(name&&'FORM'!==element.tagName){if('FIELDSET'===element.tagName){if(castTo==='object'){if(json[name]===undefined){json[name]={};}
ref=json[name];}
else{if(!Array.isArray(json[name])){json[name]=[];}
json[name].push({});ref=json[name][json[name].length-1];}}
else if(undefined!==element.value){if('SELECT'===element.tagName&&element.children>0){json[name]=element.children[element.selectedIndex].value;}
else if('radio'===type){if(element.checked){json[name]=element.value;}}
else if('checkbox'===type){if(!Array.isArray(json[name])){json[name]=[];}
if(element.checked){json[name].push(element.value);}}
else if(undefined!==element.value){if((json[name]!==undefined)&&(!Array.isArray(json[name]))){json[name]=[json[name]];}
if(Array.isArray(json[name])){json[name].push(element.value);}
else{json[name]=element.value;}}
json[name]=cast(json[name],castTo);}}
for(let i=0;i<element.children.length;i++){if(Array.isArray(ref)){ref.push({});toJson(element.children[i],ref[ref.length]);}
else{toJson(element.children[i],ref);}}
return json;}
return{'toJson':toJson}},true,false);})(window);(function(window){"use strict";window.ls.container.set('markdown',function(window){var md=window.markdownit();function renderEm(tokens,idx,opts,_,slf){var token=tokens[idx];if(token.markup==='__'){token.tag='u';}
return slf.renderToken(tokens,idx,opts);}
md.renderer.rules.strong_open=renderEm;md.renderer.rules.strong_close=renderEm;return md;},true);})(window);(function(window){"use strict";window.ls.container.set('sdk',function(window,router){var sdk=new window.AppwriteSDK();sdk.config.domain=APP_ENV.API;sdk.config.project=router.params.project||null;sdk.config.locale=APP_ENV.LOCALE;sdk.config.mode='admin';return sdk;},false);})(window);(function(window){"use strict";window.ls.container.set('timezone',function(){return{convert:function(unixTime){var timezoneMinutes=new Date().getTimezoneOffset();timezoneMinutes=(timezoneMinutes===0)?0:-timezoneMinutes;return parseInt(unixTime)+(timezoneMinutes*60);}};},true);})(window);window.ls.router.add('/auth/signin',{template:'/auth/signin?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/signup',{template:'/auth/signup?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/recovery',{template:'/auth/recovery?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/recovery/reset',{template:'/auth/recovery/reset?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/confirm',{template:'/auth/confirm?version='+APP_ENV.VERSION,scope:'home'}).add('/auth/join',{template:'/auth/join?version='+APP_ENV.VERSION,scope:'home'}).add('/console',{template:'/console?version='+APP_ENV.VERSION,scope:'console'}).add('/console/account',{template:'/console/account?version='+APP_ENV.VERSION,scope:'console'}).add('/console/account/:tab',{template:'/console/account?version='+APP_ENV.VERSION,scope:'console'}).add('/console/home',{template:'/console/home?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/home/:tab',{template:'/console/home?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/platforms/:platform',{template:function(window){return window.location.pathname+'?version='+APP_ENV.VERSION;},scope:'console',project:true}).add('/console/notifications',{template:'/console/notifications?version='+APP_ENV.VERSION,scope:'console'}).add('/console/settings',{template:'/console/settings?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/settings/:tab',{template:'/console/settings?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/database',{template:'/console/database?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/database/:tab',{template:'/console/database?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/storage',{template:'/console/storage?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/storage/:tab',{template:'/console/storage?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/users',{template:'/console/users?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/users/view',{template:'/console/users/view?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/users/view/:tab',{template:'/console/users/view?version='+APP_ENV.VERSION,scope:'console',project:true}).add('/console/users/:tab',{template:'/console/users?version='+APP_ENV.VERSION,scope:'console',project:true});window.ls.filter.add('gravatar',function($value){$value=JSON.parse($value||'{}');let MD5=function(s){function L(k,d){return(k<<d)|(k>>>(32-d))}function K(G,k){let I,d,F,H,x;F=(G&2147483648);H=(k&2147483648);I=(G&1073741824);d=(k&1073741824);x=(G&1073741823)+(k&1073741823);if(I&d){return(x^2147483648^F^H)}if(I|d){if(x&1073741824){return(x^3221225472^F^H)}else{return(x^1073741824^F^H)}}else{return(x^F^H)}}function r(d,F,k){return(d&F)|((~d)&k)}function q(d,F,k){return(d&k)|(F&(~k))}function p(d,F,k){return(d^F^k)}function n(d,F,k){return(F^(d|(~k)))}function u(G,F,aa,Z,k,H,I){G=K(G,K(K(r(F,aa,Z),k),I));return K(L(G,H),F)}function f(G,F,aa,Z,k,H,I){G=K(G,K(K(q(F,aa,Z),k),I));return K(L(G,H),F)}function D(G,F,aa,Z,k,H,I){G=K(G,K(K(p(F,aa,Z),k),I));return K(L(G,H),F)}function t(G,F,aa,Z,k,H,I){G=K(G,K(K(n(F,aa,Z),k),I));return K(L(G,H),F)}function e(G){let Z;let F=G.length;let x=F+8;let k=(x-(x%64))/64;let I=(k+1)*16;let aa=Array(I-1);let d=0;let H=0;while(H<F){Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=(aa[Z]|(G.charCodeAt(H)<<d));H++}Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=aa[Z]|(128<<d);aa[I-2]=F<<3;aa[I-1]=F>>>29;return aa}function B(x){let k="",F="",G,d;for(d=0;d<=3;d++){G=(x>>>(d*8))&255;F="0"+G.toString(16);k=k+F.substr(F.length-2,2)}return k}function J(k){k=k.replace(/rn/g,"n");let d="";for(let F=0;F<k.length;F++){let x=k.charCodeAt(F);if(x<128){d+=String.fromCharCode(x)}else{if((x>127)&&(x<2048)){d+=String.fromCharCode((x>>6)|192);d+=String.fromCharCode((x&63)|128)}else{d+=String.fromCharCode((x>>12)|224);d+=String.fromCharCode(((x>>6)&63)|128);d+=String.fromCharCode((x&63)|128)}}}return d}let C=Array();let P,h,E,v,g,Y,X,W,V;let S=7,Q=12,N=17,M=22;let A=5,z=9,y=14,w=20;let o=4,m=11,l=16,j=23;let U=6,T=10,R=15,O=21;s=J(s);C=e(s);Y=1732584193;X=4023233417;W=2562383102;V=271733878;for(P=0;P<C.length;P+=16){h=Y;E=X;v=W;g=V;Y=u(Y,X,W,V,C[P+0],S,3614090360);V=u(V,Y,X,W,C[P+1],Q,3905402710);W=u(W,V,Y,X,C[P+2],N,Line truncated
return n[0];}).join('')||'--';let def='https://ui-avatars.com/api/'+encodeURIComponent(name)+'/'+size+'';return'//www.gravatar.com/avatar/'+MD5(email)+'.jpg?s='+size+'&d='+encodeURIComponent(def);}).add('lowerCase',function($value){return $value.toLowerCase();}).add('date',function($value,date){return date.format('Y-m-d',$value);}).add('date-time',function($value,date){return date.format('Y-m-d H:i',$value);}).add('date-text',function($value,date){return date.format('d M Y',$value);}).add('date-long',function($value,date){return date.format('l, j F, H:i',$value);}).add('min2hum',function($value){if($value>=60){if($value%60===0){return Math.ceil($value/60)+' hours';}
+115
View File
@@ -0,0 +1,115 @@
(function (window) {
"use strict";
window.ls.container.set('form', function() {
function cast(value, to) {
switch (to) {
case 'int':
case 'integer':
value = parseInt(value);
break;
case 'string':
value = value.toString();
break;
case 'json':
value = (value) ? JSON.parse(value) : [];
break;
case 'array':
value = (value.constructor === Array) ? value : [value];
break;
case 'array-empty':
value = [];
break;
case 'bool':
case 'boolean':
value = (value === 'false') ? false : value;
value = !!value;
break;
}
return value;
}
function toJson(element, json) {
json = json || {};
let name = element.getAttribute('name');
let type = element.getAttribute('type');
let castTo = element.getAttribute('data-cast-to');
let ref = json;
if(name && 'FORM' !== element.tagName) {
if('FIELDSET' === element.tagName) { // Fieldset Array / Object
if(castTo === 'object') {
if(json[name] === undefined) {
json[name] = {};
}
ref = json[name];
}
else {
if(!Array.isArray(json[name])) {
json[name] = [];
}
json[name].push({});
ref = json[name][json[name].length - 1];
}
}
else if (undefined !== element.value) {
if ('SELECT' === element.tagName && element.children > 0) { // Select
json[name] = element.children[element.selectedIndex].value;
}
else if ('radio' === type) { // Radio
if(element.checked) {
json[name] = element.value;
}
}
else if ('checkbox' === type) { // Checkbox
if(!Array.isArray(json[name])) {
json[name] = [];
}
if(element.checked) {
json[name].push(element.value);
}
}
else if (undefined !== element.value) { // Normal
if ((json[name] !== undefined) && (!Array.isArray(json[name]))) { // Support for list array when name is repeating more than once
json[name] = [json[name]];
}
if(Array.isArray(json[name])) {
json[name].push(element.value);
}
else {
json[name] = element.value;
}
}
json[name] = cast(json[name], castTo);
}
}
for (let i = 0; i < element.children.length; i++) {
if(Array.isArray(ref)) {
ref.push({});
toJson(element.children[i], ref[ref.length]);
}
else {
toJson(element.children[i], ref);
}
}
return json;
}
return {
'toJson': toJson
}
}, true, false);
})(window);