Updated invitation flow
This commit is contained in:
parent
6d46fc883d
commit
7405ec445a
|
@ -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
|
||||
|
|
|
@ -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">
|
||||
|
|
16
public/dist/scripts/app-all.js
vendored
16
public/dist/scripts/app-all.js
vendored
|
@ -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')}
|
||||
|
|
16
public/dist/scripts/app.js
vendored
16
public/dist/scripts/app.js
vendored
|
@ -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')}
|
||||
|
|
2
public/dist/styles/default-ltr.css
vendored
2
public/dist/styles/default-ltr.css
vendored
File diff suppressed because one or more lines are too long
2
public/dist/styles/default-rtl.css
vendored
2
public/dist/styles/default-rtl.css
vendored
File diff suppressed because one or more lines are too long
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue