diff --git a/public/dist/scripts/app-all.js b/public/dist/scripts/app-all.js index f04e4fec8e..d4610cefcd 100644 --- a/public/dist/scripts/app-all.js +++ b/public/dist/scripts/app-all.js @@ -2384,14 +2384,17 @@ code.innerHTML=value;Prism.highlightElement(code);div.scrollTop=0;};element.addE function syncA(){element.value=picker.value;update();} function syncB(){picker.value=element.value;} element.parentNode.insertBefore(preview,element);update();syncB();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-copy",controller:function(element,alerts,document,window){var button=window.document.createElement("i");button.type="button";button.className="icon-docs note copy";button.style.cursor="pointer";element.parentNode.insertBefore(button,element.nextSibling);var copy=function(event){let disabled=element.disabled;element.disabled=false;element.focus();element.select();document.execCommand("Copy");if(document.selection){document.selection.empty();}else if(window.getSelection){window.getSelection().removeAllRanges();} -element.disabled=disabled;element.blur();alerts.add({text:"Copied to clipboard",class:""},3000);};button.addEventListener("click",copy);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-custom-id",controller:function(element,sdk,console){var prevData="";let idType=element.dataset["id-type"];var div=window.document.createElement("div");div.className="input-copy";var button=window.document.createElement("i");button.type="button";button.style.cursor="pointer";var writer=document.createElement("input");writer.type="text";writer.className="";writer.setAttribute("maxlength",element.getAttribute("maxlength"));var placeholder=element.getAttribute("placeholder");if(placeholder){writer.setAttribute("placeholder",placeholder);} -var info=window.document.createElement("div");info.className="text-fade text-size-xs margin-top-negative-small margin-bottom";div.appendChild(writer);div.appendChild(button);element.parentNode.insertBefore(div,element);element.parentNode.insertBefore(info,div.nextSibling);var switchType=function(event){if(idType=="custom"){idType="auto";setIdType(idType);}else{idType="custom";setIdType(idType);}} -var validate=function(event){var service=element.dataset["validator"];service=service.split('.');const value=event.target.value;if(value.length<1){event.target.setCustomValidity("ID is required");}else{if(service[0]=='projects'){if(service[1]=='getPlatform'){var projectId=element.form.elements.namedItem("projectId").value;console[service[0]][service[1]](projectId,value).then(function(res){if(res.$id==value){event.target.setCustomValidity("ID already exists");}else{event.target.setCustomValidity("");}},function(e){event.target.setCustomValidity("");});}else{console[service[0]][service[1]](value).then(function(res){if(res.$id==value){event.target.setCustomValidity("ID already exists");}else{event.target.setCustomValidity("");}},function(e){event.target.setCustomValidity("");});}}else if(service[0]=='teams'&&service[1]=='getMembership'){var teamId=element.form.elements.namedItem("teamId").value;sdk[service[0]][service[1]](teamId,value).then(function(res){if(res.$id==value){event.target.setCustomValidity("ID already exists");}else{event.target.setCustomValidity("");}},function(e){event.target.setCustomValidity("");});}else{sdk[service[0]][service[1]](value).then(function(res){if(res.$id==value){event.target.setCustomValidity("ID already exists");}else{event.target.setCustomValidity("");}},function(e){event.target.setCustomValidity("");});}}} -var setIdType=function(idType){element.setAttribute("data-id-type",idType);if(idType=="custom"){info.innerHTML="Allowed Characters A-Z, a-z, 0-9, and non-leading underscore";writer.value=prevData;writer.disabled=false;element.value=prevData;writer.focus();writer.addEventListener('blur',validate);}else{info.innerHTML="Appwrite will generate a unique ID";prevData=writer.value;writer.disabled=true;writer.value='auto-generated';element.value='unique()';} +element.disabled=disabled;element.blur();alerts.add({text:"Copied to clipboard",class:""},3000);};button.addEventListener("click",copy);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-custom-id",controller:function(element,sdk,console){let prevData="";let idType=element.dataset["id-type"];const div=window.document.createElement("div");div.className="input-copy";const button=window.document.createElement("i");button.type="button";button.style.cursor="pointer";const writer=document.createElement("input");writer.type="text";writer.className="";writer.setAttribute("maxlength",element.getAttribute("maxlength"));const placeholder=element.getAttribute("placeholder");if(placeholder){writer.setAttribute("placeholder",placeholder);} +const info=document.createElement("div");info.className="text-fade text-size-xs margin-top-negative-small margin-bottom";div.appendChild(writer);div.appendChild(button);element.parentNode.insertBefore(div,element);element.parentNode.insertBefore(info,div.nextSibling);const switchType=function(event){if(idType=="custom"){idType="auto";setIdType(idType);}else{idType="custom";setIdType(idType);}} +const validate=function(event){const[service,method]=element.dataset["validator"].split('.');const value=event.target.value;if(value.length<1){event.target.setCustomValidity("ID is required");}else{switch(service){case'projects':if(method=='getPlatform'){const projectId=element.form.elements.namedItem("projectId").value;setValidity(console[service][method](projectId,value),event.target);}else{setValidity(console[service][method](value),event.target);} +break;case'teams':if(method=='getMembership'){const teamId=element.form.elements.namedItem("teamId").value;setValidity(sdk[service][method](teamId,value),event.target);}else{setValidity(sdk[service][method](teamId,value),event.target);} +break;default:setValidity(sdk[service][method](value),event.target);}}} +const setValidity=async function(promise,target){try{await promise;target.setCustomValidity("ID already exists");}catch(e){target.setCustomValidity("");}} +const setIdType=function(idType){element.setAttribute("data-id-type",idType);if(idType=="custom"){info.innerHTML="Allowed Characters A-Z, a-z, 0-9, and non-leading underscore";writer.value=prevData;writer.disabled=false;element.value=prevData;writer.focus();writer.addEventListener('blur',validate);}else{info.innerHTML="Appwrite will generate a unique ID";prevData=writer.value;writer.disabled=true;writer.value='auto-generated';element.value='unique()';} button.className=idType=="custom"?"icon-cog copy":"icon-edit copy";} -var sync=function(event){if(element.value!=='unique()'){writer.value=element.value;}} -var syncE=function(event){element.value=writer.value;} -var keypress=function(e){const key=e.which||e.keyCode;const ZERO=48;const NINE=57;const SMALL_A=97;const SMALL_Z=122;const CAPITAL_A=65;const CAPITAL_Z=90;const UNDERSCORE=95;const isNotValidDigit=keyNINE;const isNotValidSmallAlphabet=keySMALL_Z;const isNotValidCapitalAlphabet=keyCAPITAL_Z;if(key==UNDERSCORE&&e.target.value.length==0){e.preventDefault();} +const sync=function(event){if(element.value!=='unique()'){writer.value=element.value;}} +const syncE=function(event){element.value=writer.value;} +const keypress=function(e){const key=e.which||e.keyCode;const ZERO=48;const NINE=57;const SMALL_A=97;const SMALL_Z=122;const CAPITAL_A=65;const CAPITAL_Z=90;const UNDERSCORE=95;const isNotValidDigit=keyNINE;const isNotValidSmallAlphabet=keySMALL_Z;const isNotValidCapitalAlphabet=keyCAPITAL_Z;if(key==UNDERSCORE&&e.target.value.length==0){e.preventDefault();} if(key!=UNDERSCORE&&isNotValidDigit&&isNotValidSmallAlphabet&&isNotValidCapitalAlphabet){e.preventDefault();}} sync();setIdType(idType);writer.addEventListener("change",syncE);writer.addEventListener('keypress',keypress);button.addEventListener("click",switchType);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-document",controller:function(element,container,search){var formsDocument=(element.dataset["formsDocument"]||'');var searchButton=(element.dataset["search"]||0);let path=container.scope(searchButton);element.addEventListener('click',function(){search.selected=element.value;search.path=path;document.dispatchEvent(new CustomEvent(formsDocument,{bubbles:false,cancelable:true}));});}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-document-preview",controller:function(element,container,search){element.addEventListener('change',function(){console.log(element.value);});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-forms-filter",controller:function(document,container,expression,element,form,di){let name=element.dataset["formsFilter"]||"";let events=element.dataset["event"]||"";let serialize=function(obj,prefix){let str=[],p;for(p in obj){if(obj.hasOwnProperty(p)){let k=prefix?prefix+"["+p+"]":p,v=obj[p];if(v===""){continue;} str.push(v!==null&&typeof v==="object"?serialize(v,k):encodeURIComponent(k)+"="+encodeURIComponent(v));}} diff --git a/public/dist/scripts/app.js b/public/dist/scripts/app.js index 4e28706891..3cac835d9c 100644 --- a/public/dist/scripts/app.js +++ b/public/dist/scripts/app.js @@ -356,14 +356,17 @@ code.innerHTML=value;Prism.highlightElement(code);div.scrollTop=0;};element.addE function syncA(){element.value=picker.value;update();} function syncB(){picker.value=element.value;} element.parentNode.insertBefore(preview,element);update();syncB();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-copy",controller:function(element,alerts,document,window){var button=window.document.createElement("i");button.type="button";button.className="icon-docs note copy";button.style.cursor="pointer";element.parentNode.insertBefore(button,element.nextSibling);var copy=function(event){let disabled=element.disabled;element.disabled=false;element.focus();element.select();document.execCommand("Copy");if(document.selection){document.selection.empty();}else if(window.getSelection){window.getSelection().removeAllRanges();} -element.disabled=disabled;element.blur();alerts.add({text:"Copied to clipboard",class:""},3000);};button.addEventListener("click",copy);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-custom-id",controller:function(element,sdk,console){var prevData="";let idType=element.dataset["id-type"];var div=window.document.createElement("div");div.className="input-copy";var button=window.document.createElement("i");button.type="button";button.style.cursor="pointer";var writer=document.createElement("input");writer.type="text";writer.className="";writer.setAttribute("maxlength",element.getAttribute("maxlength"));var placeholder=element.getAttribute("placeholder");if(placeholder){writer.setAttribute("placeholder",placeholder);} -var info=window.document.createElement("div");info.className="text-fade text-size-xs margin-top-negative-small margin-bottom";div.appendChild(writer);div.appendChild(button);element.parentNode.insertBefore(div,element);element.parentNode.insertBefore(info,div.nextSibling);var switchType=function(event){if(idType=="custom"){idType="auto";setIdType(idType);}else{idType="custom";setIdType(idType);}} -var validate=function(event){var service=element.dataset["validator"];service=service.split('.');const value=event.target.value;if(value.length<1){event.target.setCustomValidity("ID is required");}else{if(service[0]=='projects'){if(service[1]=='getPlatform'){var projectId=element.form.elements.namedItem("projectId").value;console[service[0]][service[1]](projectId,value).then(function(res){if(res.$id==value){event.target.setCustomValidity("ID already exists");}else{event.target.setCustomValidity("");}},function(e){event.target.setCustomValidity("");});}else{console[service[0]][service[1]](value).then(function(res){if(res.$id==value){event.target.setCustomValidity("ID already exists");}else{event.target.setCustomValidity("");}},function(e){event.target.setCustomValidity("");});}}else if(service[0]=='teams'&&service[1]=='getMembership'){var teamId=element.form.elements.namedItem("teamId").value;sdk[service[0]][service[1]](teamId,value).then(function(res){if(res.$id==value){event.target.setCustomValidity("ID already exists");}else{event.target.setCustomValidity("");}},function(e){event.target.setCustomValidity("");});}else{sdk[service[0]][service[1]](value).then(function(res){if(res.$id==value){event.target.setCustomValidity("ID already exists");}else{event.target.setCustomValidity("");}},function(e){event.target.setCustomValidity("");});}}} -var setIdType=function(idType){element.setAttribute("data-id-type",idType);if(idType=="custom"){info.innerHTML="Allowed Characters A-Z, a-z, 0-9, and non-leading underscore";writer.value=prevData;writer.disabled=false;element.value=prevData;writer.focus();writer.addEventListener('blur',validate);}else{info.innerHTML="Appwrite will generate a unique ID";prevData=writer.value;writer.disabled=true;writer.value='auto-generated';element.value='unique()';} +element.disabled=disabled;element.blur();alerts.add({text:"Copied to clipboard",class:""},3000);};button.addEventListener("click",copy);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-custom-id",controller:function(element,sdk,console){let prevData="";let idType=element.dataset["id-type"];const div=window.document.createElement("div");div.className="input-copy";const button=window.document.createElement("i");button.type="button";button.style.cursor="pointer";const writer=document.createElement("input");writer.type="text";writer.className="";writer.setAttribute("maxlength",element.getAttribute("maxlength"));const placeholder=element.getAttribute("placeholder");if(placeholder){writer.setAttribute("placeholder",placeholder);} +const info=document.createElement("div");info.className="text-fade text-size-xs margin-top-negative-small margin-bottom";div.appendChild(writer);div.appendChild(button);element.parentNode.insertBefore(div,element);element.parentNode.insertBefore(info,div.nextSibling);const switchType=function(event){if(idType=="custom"){idType="auto";setIdType(idType);}else{idType="custom";setIdType(idType);}} +const validate=function(event){const[service,method]=element.dataset["validator"].split('.');const value=event.target.value;if(value.length<1){event.target.setCustomValidity("ID is required");}else{switch(service){case'projects':if(method=='getPlatform'){const projectId=element.form.elements.namedItem("projectId").value;setValidity(console[service][method](projectId,value),event.target);}else{setValidity(console[service][method](value),event.target);} +break;case'teams':if(method=='getMembership'){const teamId=element.form.elements.namedItem("teamId").value;setValidity(sdk[service][method](teamId,value),event.target);}else{setValidity(sdk[service][method](teamId,value),event.target);} +break;default:setValidity(sdk[service][method](value),event.target);}}} +const setValidity=async function(promise,target){try{await promise;target.setCustomValidity("ID already exists");}catch(e){target.setCustomValidity("");}} +const setIdType=function(idType){element.setAttribute("data-id-type",idType);if(idType=="custom"){info.innerHTML="Allowed Characters A-Z, a-z, 0-9, and non-leading underscore";writer.value=prevData;writer.disabled=false;element.value=prevData;writer.focus();writer.addEventListener('blur',validate);}else{info.innerHTML="Appwrite will generate a unique ID";prevData=writer.value;writer.disabled=true;writer.value='auto-generated';element.value='unique()';} button.className=idType=="custom"?"icon-cog copy":"icon-edit copy";} -var sync=function(event){if(element.value!=='unique()'){writer.value=element.value;}} -var syncE=function(event){element.value=writer.value;} -var keypress=function(e){const key=e.which||e.keyCode;const ZERO=48;const NINE=57;const SMALL_A=97;const SMALL_Z=122;const CAPITAL_A=65;const CAPITAL_Z=90;const UNDERSCORE=95;const isNotValidDigit=keyNINE;const isNotValidSmallAlphabet=keySMALL_Z;const isNotValidCapitalAlphabet=keyCAPITAL_Z;if(key==UNDERSCORE&&e.target.value.length==0){e.preventDefault();} +const sync=function(event){if(element.value!=='unique()'){writer.value=element.value;}} +const syncE=function(event){element.value=writer.value;} +const keypress=function(e){const key=e.which||e.keyCode;const ZERO=48;const NINE=57;const SMALL_A=97;const SMALL_Z=122;const CAPITAL_A=65;const CAPITAL_Z=90;const UNDERSCORE=95;const isNotValidDigit=keyNINE;const isNotValidSmallAlphabet=keySMALL_Z;const isNotValidCapitalAlphabet=keyCAPITAL_Z;if(key==UNDERSCORE&&e.target.value.length==0){e.preventDefault();} if(key!=UNDERSCORE&&isNotValidDigit&&isNotValidSmallAlphabet&&isNotValidCapitalAlphabet){e.preventDefault();}} sync();setIdType(idType);writer.addEventListener("change",syncE);writer.addEventListener('keypress',keypress);button.addEventListener("click",switchType);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-document",controller:function(element,container,search){var formsDocument=(element.dataset["formsDocument"]||'');var searchButton=(element.dataset["search"]||0);let path=container.scope(searchButton);element.addEventListener('click',function(){search.selected=element.value;search.path=path;document.dispatchEvent(new CustomEvent(formsDocument,{bubbles:false,cancelable:true}));});}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-document-preview",controller:function(element,container,search){element.addEventListener('change',function(){console.log(element.value);});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-forms-filter",controller:function(document,container,expression,element,form,di){let name=element.dataset["formsFilter"]||"";let events=element.dataset["event"]||"";let serialize=function(obj,prefix){let str=[],p;for(p in obj){if(obj.hasOwnProperty(p)){let k=prefix?prefix+"["+p+"]":p,v=obj[p];if(v===""){continue;} str.push(v!==null&&typeof v==="object"?serialize(v,k):encodeURIComponent(k)+"="+encodeURIComponent(v));}} diff --git a/public/scripts/views/forms/custom-id.js b/public/scripts/views/forms/custom-id.js index 11587625cf..fb43855871 100644 --- a/public/scripts/views/forms/custom-id.js +++ b/public/scripts/views/forms/custom-id.js @@ -6,28 +6,26 @@ window.ls.container.get("view").add({ selector: "data-custom-id", controller: function (element, sdk, console) { - var prevData = ""; + let prevData = ""; let idType = element.dataset["id-type"]; - var div = window.document.createElement("div"); - + const div = window.document.createElement("div"); div.className = "input-copy"; - var button = window.document.createElement("i"); - + const button = window.document.createElement("i"); button.type = "button"; button.style.cursor = "pointer"; - var writer = document.createElement("input"); + const writer = document.createElement("input"); writer.type = "text"; writer.className = ""; writer.setAttribute("maxlength", element.getAttribute("maxlength")); - var placeholder = element.getAttribute("placeholder"); + const placeholder = element.getAttribute("placeholder"); if (placeholder) { writer.setAttribute("placeholder", placeholder); } - var info = window.document.createElement("div"); + const info = document.createElement("div"); info.className = "text-fade text-size-xs margin-top-negative-small margin-bottom"; div.appendChild(writer); @@ -35,7 +33,7 @@ element.parentNode.insertBefore(div, element); element.parentNode.insertBefore(info, div.nextSibling); - var switchType = function (event) { + const switchType = function (event) { if (idType == "custom") { idType = "auto"; setIdType(idType); @@ -45,62 +43,45 @@ } } - var validate = function (event) { - var service = element.dataset["validator"]; - service = service.split('.'); + const validate = function (event) { + const [service, method] = element.dataset["validator"].split('.'); const value = event.target.value; if (value.length < 1) { event.target.setCustomValidity("ID is required"); } else { - if (service[0] == 'projects') { - if (service[1] == 'getPlatform') { - var projectId = element.form.elements.namedItem("projectId").value; - console[service[0]][service[1]](projectId, value).then(function (res) { - if (res.$id == value) { - event.target.setCustomValidity("ID already exists"); - } else { - event.target.setCustomValidity(""); - } - }, function (e) { - event.target.setCustomValidity(""); - }); - } else { - console[service[0]][service[1]](value).then(function (res) { - if (res.$id == value) { - event.target.setCustomValidity("ID already exists"); - } else { - event.target.setCustomValidity(""); - } - }, function (e) { - event.target.setCustomValidity(""); - }); - } - } else if (service[0]=='teams' && service[1] == 'getMembership') { - var teamId = element.form.elements.namedItem("teamId").value; - sdk[service[0]][service[1]](teamId, value).then(function (res) { - if (res.$id == value) { - event.target.setCustomValidity("ID already exists"); - } else { - event.target.setCustomValidity(""); - } - }, function (e) { - event.target.setCustomValidity(""); - }); - } else { - sdk[service[0]][service[1]](value).then(function (res) { - if (res.$id == value) { - event.target.setCustomValidity("ID already exists"); + switch(service) { + case 'projects': + if (method == 'getPlatform') { + const projectId = element.form.elements.namedItem("projectId").value; + setValidity(console[service][method](projectId, value), event.target); } else { - event.target.setCustomValidity(""); + setValidity(console[service][method](value), event.target); } - }, function (e) { - event.target.setCustomValidity(""); - }); + break; + case 'teams': + if (method == 'getMembership') { + const teamId = element.form.elements.namedItem("teamId").value; + setValidity(sdk[service][method](teamId, value), event.target); + } else { + setValidity(sdk[service][method](teamId, value), event.target); + } + break; + default: + setValidity(sdk[service][method](value), event.target); } } } - var setIdType = function (idType) { + const setValidity = async function (promise, target) { + try { + await promise; + target.setCustomValidity("ID already exists"); + } catch (e) { + target.setCustomValidity(""); + } + } + + const setIdType = function (idType) { element.setAttribute("data-id-type", idType); if (idType == "custom") { info.innerHTML = "Allowed Characters A-Z, a-z, 0-9, and non-leading underscore"; @@ -119,17 +100,17 @@ button.className = idType == "custom" ? "icon-cog copy" : "icon-edit copy"; } - var sync = function (event) { + const sync = function (event) { if (element.value !== 'unique()') { writer.value = element.value; } } - var syncE = function (event) { + const syncE = function (event) { element.value = writer.value; } - var keypress = function (e) { + const keypress = function (e) { // which key is pressed, keyPressed = e.which || e.keyCode; const key = e.which || e.keyCode; const ZERO = 48;