1
0
Fork 0
mirror of synced 2024-06-01 18:39:57 +12:00

Updated OAuth view comp

This commit is contained in:
eldadfux 2019-08-06 10:11:53 +03:00
parent a3c5b48ddc
commit 2813253411
7 changed files with 38 additions and 52 deletions

View file

@ -1,4 +1,5 @@
<?php
use Utopia\Locale\Locale;
?>
<div class="zone xl">
@ -13,24 +14,16 @@ use Utopia\Locale\Locale;
<p class="note"><?php echo $this->escape(Locale::getText('home.auth.signin.oauth.title')); ?></p>
<div>
<a href="" data-login-fb data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button facebook fill margin-bottom"><i class="icon-facebook pull-start margin-start-small"></i> <?php echo $this->escape(Locale::getText('home.auth.signin.oauth.facebook')); ?></a>
<a href="" data-login-linkedin data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button linkedin fill margin-bottom"><i class="icon-linkedin pull-start margin-start-small"></i> <?php echo $this->escape(Locale::getText('home.auth.signin.oauth.linkedin')); ?></a>
<a href="" data-login-github data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button github fill margin-bottom"><i class="icon-github-circled pull-start margin-start-small"></i> <?php echo $this->escape(Locale::getText('home.auth.signin.oauth.github')); ?></a>
<a href="" data-general-oauth="facebook" data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button facebook fill margin-bottom"><i class="icon-facebook"></i> Connect with Facebook</a>
<a href="" data-general-oauth="github" data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button github fill margin-bottom"><i class="icon-github-circled"></i> Connect with Github</a>
<a href="" data-general-oauth="linkedin" data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button linkedin fill margin-bottom"><i class="icon-linkedin"></i> Connect with Linkedin</a>
</div>
</div>
<div class="col span-6">
<p class="note"><?php echo $this->escape(Locale::getText('home.auth.signin.regular.title')); ?></p>
<form name="login"
data-service="auth.login"
data-scope="console"
data-event="submit"
data-success="trigger,redirect"
data-success-triggers="login"
data-success-redirect-url="/console"
data-error="alert"
data-error-alert="<?php echo $this->escape(Locale::getText('home.auth.signin.failure')); ?>">
<form name="login" data-service="auth.login" data-scope="console" data-event="submit" data-success="trigger,redirect" data-success-triggers="login" data-success-redirect-url="/console" data-error="alert" data-error-alert="<?php echo $this->escape(Locale::getText('home.auth.signin.failure')); ?>">
<input name="success" type="hidden" data-ls-bind="https://{{env.DOMAIN}}/console">
<input name="failure" type="hidden" data-ls-bind="https://{{env.DOMAIN}}/auth/signin?failure=1">

View file

@ -1,4 +1,5 @@
<?php
use Utopia\Locale\Locale;
?>
<div class="zone xl signup">
@ -12,15 +13,7 @@ use Utopia\Locale\Locale;
<div class="col span-6 margin-bottom-large">
<small class="pull-end">* <?php echo $this->escape(Locale::getText('home.auth.signup.required')); ?></small>
<form name="register"
data-service="auth.register"
data-scope="console"
data-event="submit"
data-success="trigger,redirect"
data-success-triggers="signup"
data-success-redirect-url="/console/setup"
data-error="alert"
data-error-alert="<?php echo $this->escape(Locale::getText('home.auth.signup.failure')); ?>">
<form name="register" data-service="auth.register" data-scope="console" data-event="submit" data-success="trigger,redirect" data-success-triggers="signup" data-success-redirect-url="/console/setup" data-error="alert" data-error-alert="<?php echo $this->escape(Locale::getText('home.auth.signup.failure')); ?>">
<input name="success" type="hidden" data-ls-bind="https://{{env.DOMAIN}}/console">
<input name="failure" type="hidden" data-ls-bind="https://{{env.DOMAIN}}/auth/signup?failure=1">
@ -50,9 +43,9 @@ use Utopia\Locale\Locale;
<p class="note"><?php echo $this->escape(Locale::getText('home.auth.signin.oauth.title')); ?></p>
<div>
<a href="" data-login-fb data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button facebook fill margin-bottom"><i class="icon-facebook"></i> <?php echo $this->escape(Locale::getText('home.auth.signin.oauth.facebook')); ?></a>
<a href="" data-login-linkedin data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button linkedin fill margin-bottom"><i class="icon-linkedin"></i> <?php echo $this->escape(Locale::getText('home.auth.signin.oauth.linkedin')); ?></a>
<a href="" data-login-github data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button github fill margin-bottom"><i class="icon-github-circled"></i> <?php echo $this->escape(Locale::getText('home.auth.signin.oauth.github')); ?></a>
<a href="" data-general-oauth="facebook" data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button facebook fill margin-bottom"><i class="icon-facebook"></i> Connect with Facebook</a>
<a href="" data-general-oauth="github" data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button github fill margin-bottom"><i class="icon-github-circled"></i> Connect with Github</a>
<a href="" data-general-oauth="linkedin" data-success="https://{{env.DOMAIN}}/console" data-failure="https://{{env.DOMAIN}}/auth/signin?failure=2" class="button linkedin fill margin-bottom"><i class="icon-linkedin"></i> Connect with Linkedin</a>
</div>
</div>
</div>

View file

@ -50,6 +50,7 @@ const configApp = {
'public/scripts/views/forms/text-resize.js',
'public/scripts/views/forms/upload.js',
'public/scripts/views/general/oauth.js',
'public/scripts/views/general/page-title.js',
'public/scripts/views/general/setup.js',
'public/scripts/views/general/switch.js',

View file

@ -2364,7 +2364,7 @@ return rounded+abbr}
window.ls.container.get('view').add({selector:'data-acl',controller:function(element,document,router,alerts){document.body.classList.remove('console');document.body.classList.remove('home');document.body.classList.add(router.getCurrent().view.scope);if(!router.getCurrent().view.project){document.body.classList.add('hide-nav');document.body.classList.remove('show-nav');}
else{document.body.classList.add('show-nav');document.body.classList.remove('hide-nav');}
if('/console'===router.getCurrent().path){document.body.classList.add('index');}
else{document.body.classList.remove('index');}}}).add({selector:'data-cookie-policy',repeat:false,controller:function(element,alerts,cookie){if(!cookie.get('cp-cookie-alert')){let text=element.dataset['cookiePolicy']||'';alerts.send({text:text,class:'cookie-alert',link:'/policy/cookies',remove:function(){cookie.set('cp-cookie-alert','true',365*10);}},0);}}}).add({selector:'data-login-fb',controller:function(element,console,expression){let success=expression.parse(element.dataset['success']||'');let failure=expression.parse(element.dataset['failure']||'');element.href=console.auth.loginWithFacebook(success,failure);}}).add({selector:'data-login-linkedin',controller:function(element,console,expression){let success=expression.parse(element.dataset['success']||'');let failure=expression.parse(element.dataset['failure']||'');element.href=console.auth.loginWithLinkedIn(success,failure);}}).add({selector:'data-login-github',controller:function(element,console,expression){let success=expression.parse(element.dataset['success']||'');let failure=expression.parse(element.dataset['failure']||'');element.href=console.auth.loginWithGithub(success,failure);}}).add({selector:'data-billing-invoice-print',controller:function(element,expression,sdk){let id=expression.parse(element.dataset['billingInvoicePrint']||'');element.href=sdk.billing.invoices.getForPrint(id);}}).add({selector:'data-billing-invoice-download',controller:function(element,expression,sdk){let id=expression.parse(element.dataset['billingInvoiceDownload']||'');element.href=sdk.billing.invoices.getForDownload(id);}}).add({selector:'data-auto-cc-master',controller:function(element,expression,document){let price=parseInt(expression.parse(element.dataset['autoCcMaster']||'0'));let check=function(){if(element.checked&&0===price){document.body.classList.add('free-plan');document.dispatchEvent(new CustomEvent('set-free-plan',{bubbles:false,cancelable:true}));}
else{document.body.classList.remove('index');}}}).add({selector:'data-cookie-policy',repeat:false,controller:function(element,alerts,cookie){if(!cookie.get('cp-cookie-alert')){let text=element.dataset['cookiePolicy']||'';alerts.send({text:text,class:'cookie-alert',link:'/policy/cookies',remove:function(){cookie.set('cp-cookie-alert','true',365*10);}},0);}}}).add({selector:'data-billing-invoice-print',controller:function(element,expression,sdk){let id=expression.parse(element.dataset['billingInvoicePrint']||'');element.href=sdk.billing.invoices.getForPrint(id);}}).add({selector:'data-billing-invoice-download',controller:function(element,expression,sdk){let id=expression.parse(element.dataset['billingInvoiceDownload']||'');element.href=sdk.billing.invoices.getForDownload(id);}}).add({selector:'data-auto-cc-master',controller:function(element,expression,document){let price=parseInt(expression.parse(element.dataset['autoCcMaster']||'0'));let check=function(){if(element.checked&&0===price){document.body.classList.add('free-plan');document.dispatchEvent(new CustomEvent('set-free-plan',{bubbles:false,cancelable:true}));}
else if(element.checked){document.body.classList.remove('free-plan');document.dispatchEvent(new CustomEvent('unset-free-plan',{bubbles:false,cancelable:true}));}};element.addEventListener('change',check);check();}}).add({selector:'data-auto-cc-slave',controller:function(element){document.addEventListener('set-free-plan',function(){element.checked=true;});document.addEventListener('unset-free-plan',function(){element.checked=false;});}}).add({selector:'data-ls-ui-alerts',controller:function(element,window,view){window.document.addEventListener('alerted',function(){view.render(element);},true);}}).add({selector:'data-ls-ui-alerts-delete',controller:function(document,element,alerts,expression){let message=expression.parse(element.dataset['message']);let remove=function(){alerts.remove(message);};element.addEventListener('click',remove);}}).add({selector:'data-ls-ui-chart-line',repeat:true,controller:function(element,document,expression){new Chartist.Line(element,{labels:['16.05','17.05','18.05','19.05','20.05'],series:[[12,9,7,8,5],[2,1,3.5,7,3],[1,3,4,5,6],[2,6,10,5,9],[3,1,1,8,3]]},{height:'300px',width:'100%',fullWidth:true,showArea:true,chartPadding:{right:30}});}}).add({selector:'data-ls-ui-chart-pie',repeat:true,controller:function(element,document,expression){new Chartist.Pie(element,{series:[20,10,30,40]},{donut:true,donutSolid:true,showLabel:true});}}).add({selector:'data-forms-headers',repeat:false,controller:function(element){let key=document.createElement('input');let value=document.createElement('input');let wrap=document.createElement('div');let cell1=document.createElement('div');let cell2=document.createElement('div');key.type='text';key.className='margin-bottom-no';key.placeholder='Key';value.type='text';value.className='margin-bottom-no';value.placeholder='Value';wrap.className='row thin margin-bottom-small';cell1.className='col span-6';cell2.className='col span-6';element.parentNode.insertBefore(wrap,element);cell1.appendChild(key);cell2.appendChild(value);wrap.appendChild(cell1);wrap.appendChild(cell2);key.addEventListener('input',function(){syncA();});value.addEventListener('input',function(){syncA();});element.addEventListener('change',function(){syncB();});let syncA=function(){element.value=key.value.toLowerCase()+':'+value.value.toLowerCase();};let syncB=function(){let split=element.value.toLowerCase().split(':');key.value=split[0]||'';value.value=split[1]||'';key.value=key.value.trim();value.value=value.value.trim();};syncB();}}).add({selector:'data-prism',repeat:false,controller:function(window,document,element,alerts){Prism.highlightElement(element);let copy=document.createElement('i');copy.className='icon-docs copy';copy.title='Copy to Clipboard';copy.addEventListener('click',function(){window.getSelection().removeAllRanges();let range=document.createRange();range.selectNode(element);window.getSelection().addRange(range);try{document.execCommand('copy');alerts.send({text:'Copied to clipboard',class:''},3000);}catch(err){alerts.send({text:"Failed to copy text ",class:'error'},3000);}
window.getSelection().removeAllRanges();});element.parentNode.parentNode.appendChild(copy);}}).add({selector:'data-code-example',repeat:false,controller:function(window,document,element,cookie){let prefix=element.dataset['codeExample']||'unknown';element.addEventListener('change',function(){select(element.value);});let select=function(value){for(let i=0;i<element.length;i++){document.body.classList.remove(prefix+'-'+element.options[i].value);}
document.body.classList.add(prefix+'-'+value);cookie.set('language-'+prefix,value,365);document.dispatchEvent(new CustomEvent('updated-language-'+prefix));};document.addEventListener('updated-language-'+prefix,function(){element.value=cookie.get('language-'+prefix);});let def=cookie.get('language-'+prefix)||element.options[0].value;select(def);element.value=def;}}).add({selector:'data-ls-ui-chart',repeat:false,controller:function(element,container,date,document){let child=document.createElement('canvas');child.width=500;child.height=175;let stats=container.get('usage');if(!stats||!stats['requests']||!stats['requests']['data']){return;}
@ -2434,7 +2434,9 @@ for(var y=0;y<write.length;y++){formData.append('write[]',write[y]);}
sdk.storage.create(formData,onProgress).then(function(response){response=JSON.parse(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.send({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){window.ls.container.get('view').add({selector:'data-setup',controller:function(element,console,form){element.addEventListener('submit',function(event){event.preventDefault();let formData=form.toJson(element);delete formData.vault;delete formData.plan;formData['name']=formData['name']||(element.dataset['defaultName']||'');console.teams.create(formData['name']||'').then(function(data){let team=JSON.parse(data)['$uid'];formData=JSON.parse(JSON.stringify(formData).replace(new RegExp('{{teamId}}','g'),team));console.projects.create(formData['name'],team).then(function(data){let project=JSON.parse(data);window.location.href='/console?project='+project['$uid'];},function(){throw new Error('Failed to setup project');});},function(){throw new Error('Setup failed creating project team');});})}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-switch',controller:function(element,router,document){let debug=(element.dataset['debug']);let project=router.params.project||null;if(project){if(debug){console.log('project-load-start-init');}
upload.appendChild(input);render(output);}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-oauth',repeat:false,controller:function(element,env,expression){let provider=expression.parse(element.dataset['authOauth']||'');let success=expression.parse(element.dataset['success']||'');let failure=expression.parse(element.dataset['failure']||'');element.href=env.API+'/oauth/'+provider+'?project='+env.PROJECT
+'&success='+encodeURIComponent(success)
+'&failure='+encodeURIComponent(failure);}});})(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){window.ls.container.get('view').add({selector:'data-setup',controller:function(element,console,form){element.addEventListener('submit',function(event){event.preventDefault();let formData=form.toJson(element);delete formData.vault;delete formData.plan;formData['name']=formData['name']||(element.dataset['defaultName']||'');console.teams.create(formData['name']||'').then(function(data){let team=JSON.parse(data)['$uid'];formData=JSON.parse(JSON.stringify(formData).replace(new RegExp('{{teamId}}','g'),team));console.projects.create(formData['name'],team).then(function(data){let project=JSON.parse(data);window.location.href='/console?project='+project['$uid'];},function(){throw new Error('Failed to setup project');});},function(){throw new Error('Setup failed creating project team');});})}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-switch',controller:function(element,router,document){let debug=(element.dataset['debug']);let project=router.params.project||null;if(project){if(debug){console.log('project-load-start-init');}
document.dispatchEvent(new CustomEvent('project-load'));}
document.addEventListener('state-changed',function(){if(router.params.project&&project!==router.params.project){if(debug){console.log('project-load-init');}
document.dispatchEvent(new CustomEvent('project-load'));project=router.params.project;}});element.addEventListener('change',function(){if(debug){console.log('change init',element.value);}

View file

@ -272,7 +272,7 @@ return rounded+abbr}
window.ls.container.get('view').add({selector:'data-acl',controller:function(element,document,router,alerts){document.body.classList.remove('console');document.body.classList.remove('home');document.body.classList.add(router.getCurrent().view.scope);if(!router.getCurrent().view.project){document.body.classList.add('hide-nav');document.body.classList.remove('show-nav');}
else{document.body.classList.add('show-nav');document.body.classList.remove('hide-nav');}
if('/console'===router.getCurrent().path){document.body.classList.add('index');}
else{document.body.classList.remove('index');}}}).add({selector:'data-cookie-policy',repeat:false,controller:function(element,alerts,cookie){if(!cookie.get('cp-cookie-alert')){let text=element.dataset['cookiePolicy']||'';alerts.send({text:text,class:'cookie-alert',link:'/policy/cookies',remove:function(){cookie.set('cp-cookie-alert','true',365*10);}},0);}}}).add({selector:'data-login-fb',controller:function(element,console,expression){let success=expression.parse(element.dataset['success']||'');let failure=expression.parse(element.dataset['failure']||'');element.href=console.auth.loginWithFacebook(success,failure);}}).add({selector:'data-login-linkedin',controller:function(element,console,expression){let success=expression.parse(element.dataset['success']||'');let failure=expression.parse(element.dataset['failure']||'');element.href=console.auth.loginWithLinkedIn(success,failure);}}).add({selector:'data-login-github',controller:function(element,console,expression){let success=expression.parse(element.dataset['success']||'');let failure=expression.parse(element.dataset['failure']||'');element.href=console.auth.loginWithGithub(success,failure);}}).add({selector:'data-billing-invoice-print',controller:function(element,expression,sdk){let id=expression.parse(element.dataset['billingInvoicePrint']||'');element.href=sdk.billing.invoices.getForPrint(id);}}).add({selector:'data-billing-invoice-download',controller:function(element,expression,sdk){let id=expression.parse(element.dataset['billingInvoiceDownload']||'');element.href=sdk.billing.invoices.getForDownload(id);}}).add({selector:'data-auto-cc-master',controller:function(element,expression,document){let price=parseInt(expression.parse(element.dataset['autoCcMaster']||'0'));let check=function(){if(element.checked&&0===price){document.body.classList.add('free-plan');document.dispatchEvent(new CustomEvent('set-free-plan',{bubbles:false,cancelable:true}));}
else{document.body.classList.remove('index');}}}).add({selector:'data-cookie-policy',repeat:false,controller:function(element,alerts,cookie){if(!cookie.get('cp-cookie-alert')){let text=element.dataset['cookiePolicy']||'';alerts.send({text:text,class:'cookie-alert',link:'/policy/cookies',remove:function(){cookie.set('cp-cookie-alert','true',365*10);}},0);}}}).add({selector:'data-billing-invoice-print',controller:function(element,expression,sdk){let id=expression.parse(element.dataset['billingInvoicePrint']||'');element.href=sdk.billing.invoices.getForPrint(id);}}).add({selector:'data-billing-invoice-download',controller:function(element,expression,sdk){let id=expression.parse(element.dataset['billingInvoiceDownload']||'');element.href=sdk.billing.invoices.getForDownload(id);}}).add({selector:'data-auto-cc-master',controller:function(element,expression,document){let price=parseInt(expression.parse(element.dataset['autoCcMaster']||'0'));let check=function(){if(element.checked&&0===price){document.body.classList.add('free-plan');document.dispatchEvent(new CustomEvent('set-free-plan',{bubbles:false,cancelable:true}));}
else if(element.checked){document.body.classList.remove('free-plan');document.dispatchEvent(new CustomEvent('unset-free-plan',{bubbles:false,cancelable:true}));}};element.addEventListener('change',check);check();}}).add({selector:'data-auto-cc-slave',controller:function(element){document.addEventListener('set-free-plan',function(){element.checked=true;});document.addEventListener('unset-free-plan',function(){element.checked=false;});}}).add({selector:'data-ls-ui-alerts',controller:function(element,window,view){window.document.addEventListener('alerted',function(){view.render(element);},true);}}).add({selector:'data-ls-ui-alerts-delete',controller:function(document,element,alerts,expression){let message=expression.parse(element.dataset['message']);let remove=function(){alerts.remove(message);};element.addEventListener('click',remove);}}).add({selector:'data-ls-ui-chart-line',repeat:true,controller:function(element,document,expression){new Chartist.Line(element,{labels:['16.05','17.05','18.05','19.05','20.05'],series:[[12,9,7,8,5],[2,1,3.5,7,3],[1,3,4,5,6],[2,6,10,5,9],[3,1,1,8,3]]},{height:'300px',width:'100%',fullWidth:true,showArea:true,chartPadding:{right:30}});}}).add({selector:'data-ls-ui-chart-pie',repeat:true,controller:function(element,document,expression){new Chartist.Pie(element,{series:[20,10,30,40]},{donut:true,donutSolid:true,showLabel:true});}}).add({selector:'data-forms-headers',repeat:false,controller:function(element){let key=document.createElement('input');let value=document.createElement('input');let wrap=document.createElement('div');let cell1=document.createElement('div');let cell2=document.createElement('div');key.type='text';key.className='margin-bottom-no';key.placeholder='Key';value.type='text';value.className='margin-bottom-no';value.placeholder='Value';wrap.className='row thin margin-bottom-small';cell1.className='col span-6';cell2.className='col span-6';element.parentNode.insertBefore(wrap,element);cell1.appendChild(key);cell2.appendChild(value);wrap.appendChild(cell1);wrap.appendChild(cell2);key.addEventListener('input',function(){syncA();});value.addEventListener('input',function(){syncA();});element.addEventListener('change',function(){syncB();});let syncA=function(){element.value=key.value.toLowerCase()+':'+value.value.toLowerCase();};let syncB=function(){let split=element.value.toLowerCase().split(':');key.value=split[0]||'';value.value=split[1]||'';key.value=key.value.trim();value.value=value.value.trim();};syncB();}}).add({selector:'data-prism',repeat:false,controller:function(window,document,element,alerts){Prism.highlightElement(element);let copy=document.createElement('i');copy.className='icon-docs copy';copy.title='Copy to Clipboard';copy.addEventListener('click',function(){window.getSelection().removeAllRanges();let range=document.createRange();range.selectNode(element);window.getSelection().addRange(range);try{document.execCommand('copy');alerts.send({text:'Copied to clipboard',class:''},3000);}catch(err){alerts.send({text:"Failed to copy text ",class:'error'},3000);}
window.getSelection().removeAllRanges();});element.parentNode.parentNode.appendChild(copy);}}).add({selector:'data-code-example',repeat:false,controller:function(window,document,element,cookie){let prefix=element.dataset['codeExample']||'unknown';element.addEventListener('change',function(){select(element.value);});let select=function(value){for(let i=0;i<element.length;i++){document.body.classList.remove(prefix+'-'+element.options[i].value);}
document.body.classList.add(prefix+'-'+value);cookie.set('language-'+prefix,value,365);document.dispatchEvent(new CustomEvent('updated-language-'+prefix));};document.addEventListener('updated-language-'+prefix,function(){element.value=cookie.get('language-'+prefix);});let def=cookie.get('language-'+prefix)||element.options[0].value;select(def);element.value=def;}}).add({selector:'data-ls-ui-chart',repeat:false,controller:function(element,container,date,document){let child=document.createElement('canvas');child.width=500;child.height=175;let stats=container.get('usage');if(!stats||!stats['requests']||!stats['requests']['data']){return;}
@ -342,7 +342,9 @@ for(var y=0;y<write.length;y++){formData.append('write[]',write[y]);}
sdk.storage.create(formData,onProgress).then(function(response){response=JSON.parse(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.send({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){window.ls.container.get('view').add({selector:'data-setup',controller:function(element,console,form){element.addEventListener('submit',function(event){event.preventDefault();let formData=form.toJson(element);delete formData.vault;delete formData.plan;formData['name']=formData['name']||(element.dataset['defaultName']||'');console.teams.create(formData['name']||'').then(function(data){let team=JSON.parse(data)['$uid'];formData=JSON.parse(JSON.stringify(formData).replace(new RegExp('{{teamId}}','g'),team));console.projects.create(formData['name'],team).then(function(data){let project=JSON.parse(data);window.location.href='/console?project='+project['$uid'];},function(){throw new Error('Failed to setup project');});},function(){throw new Error('Setup failed creating project team');});})}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-switch',controller:function(element,router,document){let debug=(element.dataset['debug']);let project=router.params.project||null;if(project){if(debug){console.log('project-load-start-init');}
upload.appendChild(input);render(output);}});})(window);(function(window){"use strict";window.ls.view.add({selector:'data-general-oauth',repeat:false,controller:function(element,env,expression){let provider=expression.parse(element.dataset['authOauth']||'');let success=expression.parse(element.dataset['success']||'');let failure=expression.parse(element.dataset['failure']||'');element.href=env.API+'/oauth/'+provider+'?project='+env.PROJECT
+'&success='+encodeURIComponent(success)
+'&failure='+encodeURIComponent(failure);}});})(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){window.ls.container.get('view').add({selector:'data-setup',controller:function(element,console,form){element.addEventListener('submit',function(event){event.preventDefault();let formData=form.toJson(element);delete formData.vault;delete formData.plan;formData['name']=formData['name']||(element.dataset['defaultName']||'');console.teams.create(formData['name']||'').then(function(data){let team=JSON.parse(data)['$uid'];formData=JSON.parse(JSON.stringify(formData).replace(new RegExp('{{teamId}}','g'),team));console.projects.create(formData['name'],team).then(function(data){let project=JSON.parse(data);window.location.href='/console?project='+project['$uid'];},function(){throw new Error('Failed to setup project');});},function(){throw new Error('Setup failed creating project team');});})}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-switch',controller:function(element,router,document){let debug=(element.dataset['debug']);let project=router.params.project||null;if(project){if(debug){console.log('project-load-start-init');}
document.dispatchEvent(new CustomEvent('project-load'));}
document.addEventListener('state-changed',function(){if(router.params.project&&project!==router.params.project){if(debug){console.log('project-load-init');}
document.dispatchEvent(new CustomEvent('project-load'));project=router.params.project;}});element.addEventListener('change',function(){if(debug){console.log('change init',element.value);}

View file

@ -42,30 +42,6 @@ window.ls.container.get('view')
}
}
})
.add({
selector: 'data-login-fb',
controller: function(element, console, expression) {
let success = expression.parse(element.dataset['success'] || '');
let failure = expression.parse(element.dataset['failure'] || '');
element.href = console.auth.loginWithFacebook(success, failure);
}
})
.add({
selector: 'data-login-linkedin',
controller: function(element, console, expression) {
let success = expression.parse(element.dataset['success'] || '');
let failure = expression.parse(element.dataset['failure'] || '');
element.href = console.auth.loginWithLinkedIn(success, failure);
}
})
.add({
selector: 'data-login-github',
controller: function(element, console, expression) {
let success = expression.parse(element.dataset['success'] || '');
let failure = expression.parse(element.dataset['failure'] || '');
element.href = console.auth.loginWithGithub(success, failure);
}
})
.add({
selector: 'data-billing-invoice-print',
controller: function(element, expression, sdk) {

View file

@ -0,0 +1,19 @@
(function (window) {
"use strict";
window.ls.view.add({
selector: 'data-general-oauth',
repeat: false,
controller: function (element, env, expression) {
let provider = expression.parse(element.dataset['authOauth'] || '');
let success = expression.parse(element.dataset['success'] || '');
let failure = expression.parse(element.dataset['failure'] || '');
element.href = env.API + '/oauth/' + provider + '?project=' + env.PROJECT
+ '&success=' + encodeURIComponent(success)
+ '&failure=' + encodeURIComponent(failure)
;
}
});
})(window);