1
0
Fork 0
mirror of synced 2024-06-01 10:29:48 +12:00

Updated invitation flow

This commit is contained in:
Eldad Fux 2020-01-31 13:57:25 +02:00
parent 6d46fc883d
commit 7405ec445a
8 changed files with 89 additions and 102 deletions

View file

@ -151,6 +151,42 @@
<button class="danger">Leave</button>
</form>
<div data-ls-if="false === {{member.confirm}}" class="pull-end margin-end" style="display: none;">
<form class="pull-end"
data-service="teams.deleteMembership"
data-scope="console"
data-event="submit"
data-success="trigger"
data-success-param-trigger-events="teams.deleteMembership.resend"
data-failure="alert"
data-failure-param-alert-text="Failed to Resend Invitation"
data-failure-param-alert-classname="error">
<input name="teamId" id="teamId" type="hidden" data-ls-bind="{{console-project.teamId}}">
<input name="inviteId" id="inviteId" type="hidden" data-ls-bind="{{member.$uid}}">
<button class="reverse">Resend</button>
</form>
<form class="pull-end"
data-service="teams.createMembership"
data-scope="console"
data-event="teams.deleteMembership.resend"
data-success="alert,trigger"
data-success-param-alert-text="Invitation Sent Successfully"
data-success-param-trigger-events="teams.createMembership.resent"
data-failure="alert"
data-failure-param-alert-text="Failed to Send inivitation"
data-failure-param-alert-classname="error">
<input name="teamId" type="hidden" data-ls-bind="{{member.teamId}}">
<input name="url" type="hidden" data-ls-bind="{{env.PROTOCOL}}://{{env.DOMAIN}}/auth/join?project={{router.params.project}}" />
<input name="email" type="hidden" data-ls-bind="{{member.email}}">
<input name="name" type="hidden" data-ls-bind="{{member.name}}">
<input name="roles" type="hidden" data-ls-bind="{{member.roles}}" data-cast-to="json">
</form>
</div>
<!-- <div data-ls-if="false === {{member.confirm}}" class="pull-end margin-end" style="display: none;">
<form

View file

@ -17,8 +17,12 @@
data-failure-param-alert-classname="error">
<div class="text-danger margin-bottom-large" style="display: none;" data-ls-if="{{router.params.failure}} == 1">Failed to join team. Please try again later</div>
<h2 class="margin-bottom-small">Invitation</h2>
<div class=""
<p>You have been invited to join a team project on <?php echo APP_NAME; ?></p>
<!-- <div class=""
data-service="companies.getPreview"
data-scope="api"
data-name="api-company"
@ -27,16 +31,12 @@
data-success="trigger"
data-success-triggers="api-company.load">
<h2 class="margin-bottom-small">Invitation</h2>
<p>You have been invited to join <span data-ls-bind="{{api-company.name}}"></span> team on <?php echo APP_NAME; ?></p>
<div data-ls-if="{{api-company.logo}} !== '' || {{api-company.logo}} !== undefined">
<div data-ls-style="background: {{api-company.theme-color}}; color: {{api-company.theme-color-contrast}}; width: 100px; height: 100px; line-height: 100px; border-radius: 50%; margin: 0 auto; text-align: center">
<img data-ls-attrs="src={{env.API}}/v1/storage/files/{{api-company.logo}}/preview?project={{env.PROJECT}}&height=120" alt="Logo" style="opacity: 0; line-height: 80px; vertical-align: middle; max-width: 80px; max-height: 80px" />
</div>
</div>
</div>
</div> -->
<div class="agree margin-top margin-bottom">
<div class="pull-start margin-end-small margin-bottom">

View file

@ -2644,17 +2644,13 @@ if(element.required&&array.length===0){add.setCustomValidity("Please add permiss
element.maxLength;}else{var words=element.value!==""?element.value.trim().split(" ").length:0;counter.innerText=words+" words and "+element.value.length.toString()+" chars";}};element.addEventListener("keyup",count);element.addEventListener("change",count);element.addEventListener("cut",count);element.addEventListener("paste",count);element.addEventListener("drop",count);count();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-text-direction",controller:function(element){var rtlStock="^ا^ب^ت^ث^ج^ح^خ^د^ذ^ر^ز^س^ش^ص^ض^ط^ظ^ع^غ^ف^ق^ك^ل^م^ن^ه^و^ي^א^ב^ג^ד^ה^ו^ז^ח^ט^י^כ^ך^ל^מ^ם^נ^ן^ס^ע^פ^ף^צ^ץ^ק^ר^ש^ת^";var special=["\n"," ","״",'"',"_","'","!","@","#","$","^","&","%","*","(",")","+","=","-","[","]","\\","/","{","}","|",":","<",">","?",",",".","0","1","2","3","4","5","6","7","8","9"];var setDirection=function(){var value=element.value[0]?element.value:"";var direction="ltr";var align="left";for(var i=0;i<value.length;i++){if(-1===special.indexOf(value[i])){var firstChar=value[i];break;}}
if(-1<rtlStock.indexOf("^"+firstChar+"^")){direction="rtl";align="right";}
element.style.direction=direction;element.style.textAlign=align;};element.addEventListener("keyup",setDirection);element.addEventListener("change",setDirection);element.addEventListener("cut",setDirection);element.addEventListener("paste",setDirection);element.addEventListener("drop",setDirection);setDirection();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-text-resize",controller:function(element,window){function resize(){var scrollLeft=window.pageXOffset||(window.document.documentElement||window.document.body.parentNode||window.document.body).scrollLeft;var scrollTop=window.pageYOffset||(window.document.documentElement||window.document.body.parentNode||window.document.body).scrollTop;var offset=element.offsetHeight-element.clientHeight;element.style.height="auto";element.style.height=element.scrollHeight+offset+"px";window.scrollTo(scrollLeft,scrollTop);}
element.addEventListener("keyup",resize);element.addEventListener("change",resize);element.addEventListener("cut",resize);element.addEventListener("paste",resize);element.addEventListener("drop",resize);window.addEventListener("resize",resize);resize();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-upload",controller:function(element,container,alerts,expression,env){var scope=element.dataset["scope"];var labelButton=element.dataset["labelButton"]||"Upload";var labelLoading=element.dataset["labelLoading"]||"Uploading...";var previewWidth=element.dataset["previewWidth"]||200;var previewHeight=element.dataset["previewHeight"]||200;var accept=element.dataset["accept"]||"";var required=element.dataset["required"]||false;var multiple=element.dataset["multiple"]||false;var className=element.dataset["class"]||"upload";var max=parseInt(element.dataset["max"]||4);var sdk=scope==="sdk"?container.get("sdk"):container.get("console");var output=element.value?multiple?JSON.parse(element.value):[element.value]:[];var total=0;var wrapper=document.createElement("div");var input=document.createElement("input");var upload=document.createElement("div");var preview=document.createElement("ul");var progress=document.createElement("div");var count=document.createElement("div");wrapper.className=className;input.type="file";input.accept=accept;input.required=required;input.multiple=multiple;input.tabIndex=-1;count.className="count";upload.className="button reverse margin-bottom";upload.innerHTML='<i class="icon icon-upload"></i> '+labelButton;upload.tabIndex=0;preview.className="preview";progress.className="progress";progress.style.width="0%";progress.style.display="none";var humanFileSize=function(bytes,si){var thresh=si?1000:1024;if(Math.abs(bytes)<thresh){return bytes+" B";}
var units=si?["KB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];var u=-1;do{bytes/=thresh;++u;}while(Math.abs(bytes)>=thresh&&u<units.length-1);return bytes.toFixed(1)+" "+units[u];};var onComplete=function(message){alerts.remove(message);input.disabled=false;upload.classList.remove("disabled");progress.style.width="0%";progress.style.display="none";};var render=function(files){if(!Array.isArray(files)){files=[files];}
preview.innerHTML="";count.innerHTML="0 / "+max;files.map(function(obj){var file=document.createElement("li");var image=document.createElement("img");image.src=image.src=env.API+"/storage/files/"+
obj+"/preview?width="+
element.addEventListener("keyup",resize);element.addEventListener("change",resize);element.addEventListener("cut",resize);element.addEventListener("paste",resize);element.addEventListener("drop",resize);window.addEventListener("resize",resize);resize();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-upload",controller:function(element,container,alerts,expression,env){var scope=element.dataset["scope"];var labelButton=element.dataset["labelButton"]||"Upload";var labelLoading=element.dataset["labelLoading"]||"Uploading...";var previewWidth=element.dataset["previewWidth"]||200;var previewHeight=element.dataset["previewHeight"]||200;var accept=element.dataset["accept"]||"";var required=element.dataset["required"]||false;var className=element.dataset["class"]||"upload";var max=parseInt(element.dataset["max"]||4);var sdk=scope==="sdk"?container.get("sdk"):container.get("console");var output=element.value||null;var total=0;var wrapper=document.createElement("div");var input=document.createElement("input");var upload=document.createElement("div");var preview=document.createElement("ul");var progress=document.createElement("div");var count=document.createElement("div");wrapper.className=className;input.type="file";input.accept=accept;input.required=required;input.tabIndex=-1;count.className="count";upload.className="button reverse margin-bottom";upload.innerHTML='<i class="icon icon-upload"></i> '+labelButton;upload.tabIndex=0;preview.className="preview";progress.className="progress";progress.style.width="0%";progress.style.display="none";var humanFileSize=function(bytes,si){var thresh=si?1000:1024;if(Math.abs(bytes)<thresh){return bytes+" B";}
var units=si?["KB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];var u=-1;do{bytes/=thresh;++u;}while(Math.abs(bytes)>=thresh&&u<units.length-1);return bytes.toFixed(1)+" "+units[u];};var onComplete=function(message){alerts.remove(message);input.disabled=false;upload.classList.remove("disabled");progress.style.width="0%";progress.style.display="none";};var render=function(result){preview.innerHTML="";count.innerHTML="0 / "+max;if(!result){return;}
var file=document.createElement("li");var image=document.createElement("img");image.src=image.src=env.API+"/storage/files/"+
result+"/preview?width="+
previewWidth+"&height="+
previewHeight+"&project=console";file.className="file avatar";file.tabIndex=0;file.appendChild(image);count.innerHTML=files.length+" / "+max;preview.appendChild(file);if(files.length>=max){input.disabled=true;upload.classList.add("disabled");}else{input.disabled=false;upload.classList.remove("disabled");}
var remove=(function(obj){return function(event){output=Array.isArray(output)?output.filter(function(e){return e!==obj;}):[];render(output);};})(obj);file.addEventListener("click",remove);file.addEventListener("keypress",remove);element.value=multiple?JSON.stringify(output):output[0];});};input.addEventListener("change",function(){var message=alerts.add({text:labelLoading,class:""},0);var files=input.files;var read=JSON.parse(expression.parse(element.dataset["read"]||"[]"));var write=JSON.parse(expression.parse(element.dataset["write"]||"[]"));if(!multiple){output=[];}
sdk.storage.createFile(files[0],read,write,1).then(function(response){response.map(function(obj){if(!Array.isArray(output)){throw new Error("Can't append new file to non array value");}
output[output.length]=obj["$uid"];});onComplete(message);render(output);},function(error){alerts.add({text:"An error occurred!",class:""},3000);onComplete(message);});input.disabled=true;});element.addEventListener("change",function(){if(!element.value){return;}
output=multiple?JSON.parse(element.value):[element.value];render(output);});upload.addEventListener("keypress",function(){input.click();});element.parentNode.insertBefore(wrapper,element);wrapper.appendChild(preview);wrapper.appendChild(progress);wrapper.appendChild(upload);if(multiple){wrapper.appendChild(count);}
upload.appendChild(input);render(output);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-page-title",repeat:true,controller:function(element,document,expression){document.title=expression.parse(element.getAttribute("data-page-title"))||document.title;}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-scroll-to',repeat:false,controller:function(element,window){let button=window.document.createElement('button');button.className='scroll-to icon-up-dir';button.alt='Back To Top';button.title='Back To Top';button.addEventListener('click',function(){element.scrollIntoView(true,{behavior:'smooth'});button.blur();},false);element.appendChild(button);}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-scroll-direction',repeat:false,controller:function(element,window){let position=0;let check=function(){let direction=window.document.documentElement.scrollTop;if(direction>position){element.classList.remove('scroll-to-top')
previewHeight+"&project=console";file.className="file avatar";file.tabIndex=0;file.appendChild(image);preview.appendChild(file);var remove=(function(result){return function(event){render(result.$uid);};})(result);file.addEventListener("click",remove);file.addEventListener("keypress",remove);element.value=result;};input.addEventListener("change",function(){var message=alerts.add({text:labelLoading,class:""},0);var files=input.files;var read=JSON.parse(expression.parse(element.dataset["read"]||"[]"));var write=JSON.parse(expression.parse(element.dataset["write"]||"[]"));sdk.storage.createFile(files[0],read,write,1).then(function(response){onComplete(message);render(response.$uid);},function(error){alerts.add({text:"An error occurred!",class:""},3000);onComplete(message);});input.disabled=true;});element.addEventListener("change",function(){console.log('change',element);if(!element.value){return;}
render(output);});upload.addEventListener("keypress",function(){input.click();});element.parentNode.insertBefore(wrapper,element);wrapper.appendChild(preview);wrapper.appendChild(progress);wrapper.appendChild(upload);upload.appendChild(input);render(output);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-page-title",repeat:true,controller:function(element,document,expression){document.title=expression.parse(element.getAttribute("data-page-title"))||document.title;}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-scroll-to',repeat:false,controller:function(element,window){let button=window.document.createElement('button');button.className='scroll-to icon-up-dir';button.alt='Back To Top';button.title='Back To Top';button.addEventListener('click',function(){element.scrollIntoView(true,{behavior:'smooth'});button.blur();},false);element.appendChild(button);}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-scroll-direction',repeat:false,controller:function(element,window){let position=0;let check=function(){let direction=window.document.documentElement.scrollTop;if(direction>position){element.classList.remove('scroll-to-top')
element.classList.add('scroll-to-bottom')}
else{element.classList.remove('scroll-to-bottom')
element.classList.add('scroll-to-top')}

View file

@ -370,17 +370,13 @@ if(element.required&&array.length===0){add.setCustomValidity("Please add permiss
element.maxLength;}else{var words=element.value!==""?element.value.trim().split(" ").length:0;counter.innerText=words+" words and "+element.value.length.toString()+" chars";}};element.addEventListener("keyup",count);element.addEventListener("change",count);element.addEventListener("cut",count);element.addEventListener("paste",count);element.addEventListener("drop",count);count();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-text-direction",controller:function(element){var rtlStock="^ا^ب^ت^ث^ج^ح^خ^د^ذ^ر^ز^س^ش^ص^ض^ط^ظ^ع^غ^ف^ق^ك^ل^م^ن^ه^و^ي^א^ב^ג^ד^ה^ו^ז^ח^ט^י^כ^ך^ל^מ^ם^נ^ן^ס^ע^פ^ף^צ^ץ^ק^ר^ש^ת^";var special=["\n"," ","״",'"',"_","'","!","@","#","$","^","&","%","*","(",")","+","=","-","[","]","\\","/","{","}","|",":","<",">","?",",",".","0","1","2","3","4","5","6","7","8","9"];var setDirection=function(){var value=element.value[0]?element.value:"";var direction="ltr";var align="left";for(var i=0;i<value.length;i++){if(-1===special.indexOf(value[i])){var firstChar=value[i];break;}}
if(-1<rtlStock.indexOf("^"+firstChar+"^")){direction="rtl";align="right";}
element.style.direction=direction;element.style.textAlign=align;};element.addEventListener("keyup",setDirection);element.addEventListener("change",setDirection);element.addEventListener("cut",setDirection);element.addEventListener("paste",setDirection);element.addEventListener("drop",setDirection);setDirection();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-text-resize",controller:function(element,window){function resize(){var scrollLeft=window.pageXOffset||(window.document.documentElement||window.document.body.parentNode||window.document.body).scrollLeft;var scrollTop=window.pageYOffset||(window.document.documentElement||window.document.body.parentNode||window.document.body).scrollTop;var offset=element.offsetHeight-element.clientHeight;element.style.height="auto";element.style.height=element.scrollHeight+offset+"px";window.scrollTo(scrollLeft,scrollTop);}
element.addEventListener("keyup",resize);element.addEventListener("change",resize);element.addEventListener("cut",resize);element.addEventListener("paste",resize);element.addEventListener("drop",resize);window.addEventListener("resize",resize);resize();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-upload",controller:function(element,container,alerts,expression,env){var scope=element.dataset["scope"];var labelButton=element.dataset["labelButton"]||"Upload";var labelLoading=element.dataset["labelLoading"]||"Uploading...";var previewWidth=element.dataset["previewWidth"]||200;var previewHeight=element.dataset["previewHeight"]||200;var accept=element.dataset["accept"]||"";var required=element.dataset["required"]||false;var multiple=element.dataset["multiple"]||false;var className=element.dataset["class"]||"upload";var max=parseInt(element.dataset["max"]||4);var sdk=scope==="sdk"?container.get("sdk"):container.get("console");var output=element.value?multiple?JSON.parse(element.value):[element.value]:[];var total=0;var wrapper=document.createElement("div");var input=document.createElement("input");var upload=document.createElement("div");var preview=document.createElement("ul");var progress=document.createElement("div");var count=document.createElement("div");wrapper.className=className;input.type="file";input.accept=accept;input.required=required;input.multiple=multiple;input.tabIndex=-1;count.className="count";upload.className="button reverse margin-bottom";upload.innerHTML='<i class="icon icon-upload"></i> '+labelButton;upload.tabIndex=0;preview.className="preview";progress.className="progress";progress.style.width="0%";progress.style.display="none";var humanFileSize=function(bytes,si){var thresh=si?1000:1024;if(Math.abs(bytes)<thresh){return bytes+" B";}
var units=si?["KB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];var u=-1;do{bytes/=thresh;++u;}while(Math.abs(bytes)>=thresh&&u<units.length-1);return bytes.toFixed(1)+" "+units[u];};var onComplete=function(message){alerts.remove(message);input.disabled=false;upload.classList.remove("disabled");progress.style.width="0%";progress.style.display="none";};var render=function(files){if(!Array.isArray(files)){files=[files];}
preview.innerHTML="";count.innerHTML="0 / "+max;files.map(function(obj){var file=document.createElement("li");var image=document.createElement("img");image.src=image.src=env.API+"/storage/files/"+
obj+"/preview?width="+
element.addEventListener("keyup",resize);element.addEventListener("change",resize);element.addEventListener("cut",resize);element.addEventListener("paste",resize);element.addEventListener("drop",resize);window.addEventListener("resize",resize);resize();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-upload",controller:function(element,container,alerts,expression,env){var scope=element.dataset["scope"];var labelButton=element.dataset["labelButton"]||"Upload";var labelLoading=element.dataset["labelLoading"]||"Uploading...";var previewWidth=element.dataset["previewWidth"]||200;var previewHeight=element.dataset["previewHeight"]||200;var accept=element.dataset["accept"]||"";var required=element.dataset["required"]||false;var className=element.dataset["class"]||"upload";var max=parseInt(element.dataset["max"]||4);var sdk=scope==="sdk"?container.get("sdk"):container.get("console");var output=element.value||null;var total=0;var wrapper=document.createElement("div");var input=document.createElement("input");var upload=document.createElement("div");var preview=document.createElement("ul");var progress=document.createElement("div");var count=document.createElement("div");wrapper.className=className;input.type="file";input.accept=accept;input.required=required;input.tabIndex=-1;count.className="count";upload.className="button reverse margin-bottom";upload.innerHTML='<i class="icon icon-upload"></i> '+labelButton;upload.tabIndex=0;preview.className="preview";progress.className="progress";progress.style.width="0%";progress.style.display="none";var humanFileSize=function(bytes,si){var thresh=si?1000:1024;if(Math.abs(bytes)<thresh){return bytes+" B";}
var units=si?["KB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];var u=-1;do{bytes/=thresh;++u;}while(Math.abs(bytes)>=thresh&&u<units.length-1);return bytes.toFixed(1)+" "+units[u];};var onComplete=function(message){alerts.remove(message);input.disabled=false;upload.classList.remove("disabled");progress.style.width="0%";progress.style.display="none";};var render=function(result){preview.innerHTML="";count.innerHTML="0 / "+max;if(!result){return;}
var file=document.createElement("li");var image=document.createElement("img");image.src=image.src=env.API+"/storage/files/"+
result+"/preview?width="+
previewWidth+"&height="+
previewHeight+"&project=console";file.className="file avatar";file.tabIndex=0;file.appendChild(image);count.innerHTML=files.length+" / "+max;preview.appendChild(file);if(files.length>=max){input.disabled=true;upload.classList.add("disabled");}else{input.disabled=false;upload.classList.remove("disabled");}
var remove=(function(obj){return function(event){output=Array.isArray(output)?output.filter(function(e){return e!==obj;}):[];render(output);};})(obj);file.addEventListener("click",remove);file.addEventListener("keypress",remove);element.value=multiple?JSON.stringify(output):output[0];});};input.addEventListener("change",function(){var message=alerts.add({text:labelLoading,class:""},0);var files=input.files;var read=JSON.parse(expression.parse(element.dataset["read"]||"[]"));var write=JSON.parse(expression.parse(element.dataset["write"]||"[]"));if(!multiple){output=[];}
sdk.storage.createFile(files[0],read,write,1).then(function(response){response.map(function(obj){if(!Array.isArray(output)){throw new Error("Can't append new file to non array value");}
output[output.length]=obj["$uid"];});onComplete(message);render(output);},function(error){alerts.add({text:"An error occurred!",class:""},3000);onComplete(message);});input.disabled=true;});element.addEventListener("change",function(){if(!element.value){return;}
output=multiple?JSON.parse(element.value):[element.value];render(output);});upload.addEventListener("keypress",function(){input.click();});element.parentNode.insertBefore(wrapper,element);wrapper.appendChild(preview);wrapper.appendChild(progress);wrapper.appendChild(upload);if(multiple){wrapper.appendChild(count);}
upload.appendChild(input);render(output);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-page-title",repeat:true,controller:function(element,document,expression){document.title=expression.parse(element.getAttribute("data-page-title"))||document.title;}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-scroll-to',repeat:false,controller:function(element,window){let button=window.document.createElement('button');button.className='scroll-to icon-up-dir';button.alt='Back To Top';button.title='Back To Top';button.addEventListener('click',function(){element.scrollIntoView(true,{behavior:'smooth'});button.blur();},false);element.appendChild(button);}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-scroll-direction',repeat:false,controller:function(element,window){let position=0;let check=function(){let direction=window.document.documentElement.scrollTop;if(direction>position){element.classList.remove('scroll-to-top')
previewHeight+"&project=console";file.className="file avatar";file.tabIndex=0;file.appendChild(image);preview.appendChild(file);var remove=(function(result){return function(event){render(result.$uid);};})(result);file.addEventListener("click",remove);file.addEventListener("keypress",remove);element.value=result;};input.addEventListener("change",function(){var message=alerts.add({text:labelLoading,class:""},0);var files=input.files;var read=JSON.parse(expression.parse(element.dataset["read"]||"[]"));var write=JSON.parse(expression.parse(element.dataset["write"]||"[]"));sdk.storage.createFile(files[0],read,write,1).then(function(response){onComplete(message);render(response.$uid);},function(error){alerts.add({text:"An error occurred!",class:""},3000);onComplete(message);});input.disabled=true;});element.addEventListener("change",function(){console.log('change',element);if(!element.value){return;}
render(output);});upload.addEventListener("keypress",function(){input.click();});element.parentNode.insertBefore(wrapper,element);wrapper.appendChild(preview);wrapper.appendChild(progress);wrapper.appendChild(upload);upload.appendChild(input);render(output);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-page-title",repeat:true,controller:function(element,document,expression){document.title=expression.parse(element.getAttribute("data-page-title"))||document.title;}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-scroll-to',repeat:false,controller:function(element,window){let button=window.document.createElement('button');button.className='scroll-to icon-up-dir';button.alt='Back To Top';button.title='Back To Top';button.addEventListener('click',function(){element.scrollIntoView(true,{behavior:'smooth'});button.blur();},false);element.appendChild(button);}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-scroll-direction',repeat:false,controller:function(element,window){let position=0;let check=function(){let direction=window.document.documentElement.scrollTop;if(direction>position){element.classList.remove('scroll-to-top')
element.classList.add('scroll-to-bottom')}
else{element.classList.remove('scroll-to-bottom')
element.classList.add('scroll-to-top')}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -11,16 +11,11 @@
var previewHeight = element.dataset["previewHeight"] || 200;
var accept = element.dataset["accept"] || "";
var required = element.dataset["required"] || false;
var multiple = element.dataset["multiple"] || false;
var className = element.dataset["class"] || "upload";
var max = parseInt(element.dataset["max"] || 4);
var sdk =
scope === "sdk" ? container.get("sdk") : container.get("console");
var output = element.value
? multiple
? JSON.parse(element.value)
: [element.value]
: [];
var output = element.value || null;
var total = 0;
var wrapper = document.createElement("div");
@ -35,7 +30,6 @@
input.type = "file";
input.accept = accept;
input.required = required;
input.multiple = multiple;
input.tabIndex = -1;
count.className = "count";
@ -80,64 +74,44 @@
progress.style.display = "none";
};
var render = function(files) {
// Generate image previews + remove buttons + input array (array only when multiple is on)
if (!Array.isArray(files)) {
// Support single file
files = [files];
}
var render = function(result) {
preview.innerHTML = "";
count.innerHTML = "0 / " + max;
files.map(function(obj) {
var file = document.createElement("li");
var image = document.createElement("img");
if(!result) {
return;
}
image.src = image.src =
env.API +
"/storage/files/" +
obj +
"/preview?width=" +
previewWidth +
"&height=" +
previewHeight +
"&project=console";
var file = document.createElement("li");
var image = document.createElement("img");
file.className = "file avatar";
file.tabIndex = 0;
file.appendChild(image);
image.src = image.src =
env.API +
"/storage/files/" +
result +
"/preview?width=" +
previewWidth +
"&height=" +
previewHeight +
"&project=console";
count.innerHTML = files.length + " / " + max;
file.className = "file avatar";
file.tabIndex = 0;
file.appendChild(image);
preview.appendChild(file);
preview.appendChild(file);
if (files.length >= max) {
input.disabled = true;
upload.classList.add("disabled");
} else {
input.disabled = false;
upload.classList.remove("disabled");
}
var remove = (function(result) {
return function(event) {
render(result.$uid);
};
})(result);
var remove = (function(obj) {
return function(event) {
output = Array.isArray(output)
? output.filter(function(e) {
return e !== obj;
})
: [];
file.addEventListener("click", remove);
file.addEventListener("keypress", remove);
render(output);
};
})(obj);
file.addEventListener("click", remove);
file.addEventListener("keypress", remove);
element.value = multiple ? JSON.stringify(output) : output[0];
});
element.value = result;
};
input.addEventListener("change", function() {
@ -150,24 +124,11 @@
expression.parse(element.dataset["write"] || "[]")
);
if (!multiple) {
output = [];
}
sdk.storage.createFile(files[0], read, write, 1).then(
function(response) {
response.map(function(obj) {
if (!Array.isArray(output)) {
// Support single file
throw new Error("Can't append new file to non array value");
}
output[output.length] = obj["$uid"];
});
onComplete(message);
render(output);
render(response.$uid);
},
function(error) {
alerts.add({ text: "An error occurred!", class: "" }, 3000); // File(s) uploaded.
@ -179,10 +140,10 @@
});
element.addEventListener("change", function() {
console.log('change', element);
if (!element.value) {
return;
}
output = multiple ? JSON.parse(element.value) : [element.value];
render(output);
});
@ -196,10 +157,6 @@
wrapper.appendChild(progress);
wrapper.appendChild(upload);
if (multiple) {
wrapper.appendChild(count);
}
upload.appendChild(input);
render(output);

View file

@ -2,11 +2,13 @@
height: 100%;
width: 100%;
padding: 0;
overflow: auto;
body {
position: relative;
height: ~"calc(100% - 70px)";
width: ~"calc(100% - 320px)";
overflow: auto;
padding-top: 70px;
padding-bottom: 0;
.func-padding-end(50px);