Fixed mobile UI
This commit is contained in:
parent
79f0cb95c3
commit
b502ce008a
22 changed files with 225 additions and 130 deletions
|
@ -9,7 +9,7 @@ $version = $this->getParam('version', '');
|
|||
data-analytics-event="click"
|
||||
data-analytics-category="console/footer"
|
||||
data-analytics-label="GitHub Link"
|
||||
href="https://github.com/appwrite/appwrite" target="_blank"><i class="icon-github-circled"></i> GitHub Repository</a>
|
||||
href="https://github.com/appwrite/appwrite" target="_blank"><i class="icon-github-circled"></i> GitHub</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
|
@ -23,7 +23,7 @@ $version = $this->getParam('version', '');
|
|||
data-analytics-event="click"
|
||||
data-analytics-category="console/footer"
|
||||
data-analytics-label="Docs Link"
|
||||
href="<?php echo $home; ?>/docs" target="_blank">Documentation</a>
|
||||
href="<?php echo $home; ?>/docs" target="_blank">Docs</a>
|
||||
</li>
|
||||
<li>
|
||||
v:<?php echo $version; ?>
|
||||
|
|
|
@ -3,7 +3,7 @@ $graph = $this->getParam('graph', false);
|
|||
?>
|
||||
|
||||
<div class="cover margin-bottom-small">
|
||||
<div class="zone xl margin-bottom-large margin-top-small">
|
||||
<div class="zone xl margin-bottom margin-top-small">
|
||||
<h1 class="margin-bottom-small"
|
||||
data-service="projects.get"
|
||||
data-event="load,project.update,projects.createPlatform,projects.updatePlatform,projects.deletePlatform"
|
||||
|
@ -13,11 +13,11 @@ $graph = $this->getParam('graph', false);
|
|||
<span class="title" data-ls-bind="{{console-project.name}}"> </span>
|
||||
</h1>
|
||||
|
||||
<ul class="margin-top margin-bottom-large clear">
|
||||
<li class="pull-start margin-end"><a data-ls-attrs="href=/console/settings?project={{router.params.project}}"><i class="icon-cog"></i> Settings</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-attrs="href=/console/keys?project={{router.params.project}}"><i class="icon-key-inv"></i> API Keys</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-attrs="href=/console/webhooks?project={{router.params.project}}"><i class="icon-link"></i> Webhooks</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-attrs="href=/console/tasks?project={{router.params.project}}"><i class="icon-clock"></i> Tasks</a> </li>
|
||||
<ul class="margin-top margin-bottom clear">
|
||||
<li class="pull-start margin-end margin-bottom-small"><a data-ls-attrs="href=/console/settings?project={{router.params.project}}"><i class="icon-cog"></i> Settings</a> </li>
|
||||
<li class="pull-start margin-end margin-bottom-small"><a data-ls-attrs="href=/console/keys?project={{router.params.project}}"><i class="icon-key-inv"></i> API Keys</a> </li>
|
||||
<li class="pull-start margin-end margin-bottom-small"><a data-ls-attrs="href=/console/webhooks?project={{router.params.project}}"><i class="icon-link"></i> Webhooks</a> </li>
|
||||
<li class="pull-start margin-end margin-bottom-small"><a data-ls-attrs="href=/console/tasks?project={{router.params.project}}"><i class="icon-clock"></i> Tasks</a> </li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -6,12 +6,12 @@ $home = $this->getParam('home', '');
|
|||
|
||||
<h1 class="margin-bottom margin-top">Your Projects</h1>
|
||||
|
||||
<p class="margin-bottom margin-top-negative-small">Start creating projects and take advantage of your Appwrite server APIs and tools.</p>
|
||||
<p class="margin-bottom margin-top-negative-small">Take advantage of the Appwrite APIs and tools.</p>
|
||||
|
||||
<ul class="margin-bottom-xl clear">
|
||||
<li class="pull-start margin-end margin-bottom-small"><a href="<?php echo $home; ?>/" target="_blank"><i class="icon-lamp"></i> Learn More</a></li>
|
||||
<li class="pull-start margin-end"><a href="<?php echo $home; ?>/docs" target="_blank"><i class="icon-book-open"></i> Docs</a></li>
|
||||
<li class="pull-start margin-end"><a href="<?php echo $home; ?>/support" target="_blank"><i class="icon-lifebuoy"></i> Support</a></li>
|
||||
<li class="pull-start margin-end margin-bottom-small"><a href="<?php echo $home; ?>/docs" target="_blank"><i class="icon-book-open"></i> Docs</a></li>
|
||||
<li class="pull-start margin-end margin-bottom-small"><a href="<?php echo $home; ?>/support" target="_blank"><i class="icon-lifebuoy"></i> Support</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -41,8 +41,8 @@ $customDomainsTarget = $this->getParam('customDomainsTarget', false);
|
|||
|
||||
<input name="$id" type="hidden" data-ls-bind="{{console-project.$id}}" />
|
||||
|
||||
<div class="row">
|
||||
<div class="col span-9">
|
||||
<div class="row responsive">
|
||||
<div class="col span-9 margin-bottom">
|
||||
<div class="box">
|
||||
<label for="name">Name</label>
|
||||
<input name="name" id="name" type="text" autocomplete="off" data-ls-bind="{{console-project.name}}" data-forms-text-direction required>
|
||||
|
@ -52,10 +52,23 @@ $customDomainsTarget = $this->getParam('customDomainsTarget', false);
|
|||
<input data-forms-copy type="text" disabled data-ls-bind="{{console-project.$id}}" />
|
||||
</div>
|
||||
|
||||
<label for="name">API Endpoint</label>
|
||||
<label for="name">Default API Endpoint</label>
|
||||
<div class="input-copy">
|
||||
<input data-forms-copy type="text" disabled data-ls-bind="{{env.PROTOCOL}}://{{env.DOMAIN}}/v1" />
|
||||
</div>
|
||||
|
||||
<div data-ls-if="0 !== {{console-domains|activeDomainsCount}}">
|
||||
<label for="name">Custom API Endpoints</label>
|
||||
|
||||
<ul data-ls-loop="console-domains" data-ls-as="domain">
|
||||
<li>
|
||||
<div class="input-copy" data-ls-if="true === {{domain.verification}} && {{domain.certificateId}}">
|
||||
<input data-forms-copy type="text" disabled data-ls-bind="{{env.PROTOCOL}}://{{domain.domain}}/v1" />
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="margin-top-negative-small margin-bottom text-size-small">
|
||||
<a data-ls-attrs="href=/console/settings/domains?project={{router.params.project}}">Add a custom domain <i class="icon-angle-circled-right"></i></a>
|
||||
</div>
|
||||
|
@ -72,10 +85,9 @@ $customDomainsTarget = $this->getParam('customDomainsTarget', false);
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col span-3 box-aside">
|
||||
<label for="name">Logo</label>
|
||||
<div class="col span-3 box-aside text-align-center">
|
||||
<div class="text-align-center clear">
|
||||
<input type="hidden" name="logo" data-ls-bind="{{console-project.logo}}" data-read="<?php echo $this->escape(json_encode(['*'])); ?>" data-write="<?php echo $this->escape(json_encode(['team:{{console-project.teamId}}'])); ?>" data-accept="image/*" data-forms-upload="" data-scope="console" data-default="">
|
||||
<input type="hidden" name="logo" data-ls-bind="{{console-project.logo}}" data-read="<?php echo $this->escape(json_encode(['*'])); ?>" data-write="<?php echo $this->escape(json_encode(['team:{{console-project.teamId}}'])); ?>" data-accept="image/*" data-forms-upload="" data-label-button="Upload Logo" data-scope="console" data-default="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -169,7 +181,7 @@ $customDomainsTarget = $this->getParam('customDomainsTarget', false);
|
|||
<table class="vertical">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="160"></th>
|
||||
<th width="140"></th>
|
||||
<th width="220">Domain Name</th>
|
||||
<th width="160">TLS</th>
|
||||
<th></th>
|
||||
|
@ -179,68 +191,77 @@ $customDomainsTarget = $this->getParam('customDomainsTarget', false);
|
|||
<tbody data-ls-loop="console-domains" data-ls-as="domain">
|
||||
<tr>
|
||||
<td data-title="Status">
|
||||
<span class="tag" data-ls-if="true !== {{domain.verification}}"><i class="icon-cancel-circled"></i> Unverified </span>
|
||||
<span class="tag red" data-ls-if="true !== {{domain.verification}}"><i class="icon-cancel-circled"></i> Unverified </span>
|
||||
<span class="tag blue" data-ls-if="true === {{domain.verification}}"><i class="icon-ok-circled"></i> Verified </span>
|
||||
</td>
|
||||
<td data-title="Domain: ">
|
||||
<span data-ls-bind="{{domain.domain}}"></span>
|
||||
</td>
|
||||
<td data-title="TLS: ">
|
||||
<span class="tag yellow" data-ls-if="!{{domain.certificateId}}"><i class="icon-ok-circled"></i> Pending </span>
|
||||
<span class="tag" data-ls-if="!{{domain.certificateId}} && false === {{domain.verification}}"> Pending Verification </span>
|
||||
<span class="tag yellow" data-ls-if="!{{domain.certificateId}} && true === {{domain.verification}}"> In Progress </span>
|
||||
<span class="tag green" data-ls-if="{{domain.certificateId}}"><i class="icon-ok-circled"></i> Enabled </span>
|
||||
</td>
|
||||
<td data-title="">
|
||||
<button class="link text-size-small" data-ls-if="true === {{domain.verification}}" data-ls-ui-trigger="dns-settings-{{domain.$id}}">DNS Settings</button>
|
||||
<button class="link text-size-small" data-ls-if="true !== {{domain.verification}}" data-ls-ui-trigger="dns-settings-{{domain.$id}}">Verify Domain</button>
|
||||
|
||||
<div data-ui-modal class="modal box close" data-button-alias="none" data-open-event="dns-settings-{{domain.$id}}" data-close-event="dns-settings-close-{{domain.$id}}">
|
||||
<div data-ui-modal class="modal box close" data-button-alias="none" data-open-event="dns-settings-{{domain.$id}}" xdata-close-event="dns-settings-close-{{domain.$id}}">
|
||||
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
|
||||
|
||||
<h3 class="margin-bottom" data-ls-if="true === {{domain.verification}}" data-ls-ui-trigger="dns-settings-{{domain.$id}}">DNS Settings</h3>
|
||||
<h3 class="margin-bottom" data-ls-if="true !== {{domain.verification}}" data-ls-ui-trigger="dns-settings-{{domain.$id}}">Verify Domain</h3>
|
||||
|
||||
<form
|
||||
data-analytics-event="submit"
|
||||
data-analytics-category="console"
|
||||
data-analytics-label="Update Domain Verification"
|
||||
data-service="projects.updateDomainVerification"
|
||||
data-scope="console"
|
||||
data-event="submit"
|
||||
data-success="alert,trigger"
|
||||
data-success-param-alert-text="Verified domain successfully"
|
||||
data-success-param-trigger-events="projects.updateDomainVerification"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to verify domain"
|
||||
data-failure-param-alert-classname="error">
|
||||
<hr />
|
||||
|
||||
<input type="hidden" name="projectId" data-ls-bind="{{router.params.project}}" />
|
||||
<input type="hidden" name="domainId" data-ls-bind="{{domain.$id}}" />
|
||||
<p>Add the following DNS records to your DNS provider settings to setup and verify your new custom domain.</p>
|
||||
|
||||
<p>Add the following DNS records to your DNS provider settings to setup and verify your new custom domain.</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Add a new CNAME record in your DNS providers settings to point your new subdomain to your <?php echo APP_NAME; ?> server with the following value:</p>
|
||||
|
||||
<div class="ide margin-bottom-small">
|
||||
<pre class="line-numbers"><code class="prism language-javascript" data-prism><?php echo $this->print($customDomainsTarget, 'escape'); ?></code></pre>
|
||||
</div>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<p>Add a new CNAME record in your DNS providers settings to point your new subdomain to your <?php echo APP_NAME; ?> server with the following value:</p>
|
||||
<p>For example:</p>
|
||||
|
||||
<div class="ide margin-bottom-small">
|
||||
<pre class="line-numbers"><code class="prism language-javascript" data-prism><?php echo strtolower(APP_NAME); ?>.myapp.com CNAME <?php echo $this->print($customDomainsTarget, 'escape'); ?></code></pre>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Confirm and verify your CNAME record values:
|
||||
<form class="strip"
|
||||
data-analytics-event="submit"
|
||||
data-analytics-category="console"
|
||||
data-analytics-label="Update Domain Verification"
|
||||
data-service="projects.updateDomainVerification"
|
||||
data-scope="console"
|
||||
data-event="submit"
|
||||
data-loading="Verifying DNS records..."
|
||||
data-success="alert,trigger"
|
||||
data-success-param-alert-text="Verified domain successfully"
|
||||
data-success-param-trigger-events="projects.updateDomainVerification"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to verify domain, check your DNS records"
|
||||
data-failure-param-alert-classname="error">
|
||||
|
||||
<input type="hidden" name="projectId" data-ls-bind="{{router.params.project}}" />
|
||||
<input type="hidden" name="domainId" data-ls-bind="{{domain.$id}}" />
|
||||
|
||||
<div class="ide margin-bottom-small">
|
||||
<pre class="line-numbers"><code class="prism language-javascript" data-prism><?php echo $this->print($customDomainsTarget, 'escape'); ?></code></pre>
|
||||
</div>
|
||||
|
||||
<p>For example:</p>
|
||||
|
||||
<div class="ide margin-bottom-small">
|
||||
<pre class="line-numbers"><code class="prism language-javascript" data-prism><?php echo strtolower(APP_NAME); ?>.myapp.com CNAME <?php echo $this->print($customDomainsTarget, 'escape'); ?></code></pre>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>Confirm and verify your CNAME record values:
|
||||
|
||||
<button class="margin-top-small">Confirm & Verify</button>
|
||||
</li>
|
||||
</form>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<li>After verification completes, <?php echo APP_NAME; ?> will automatically generate your new domain a secure SSL certificate. This process may take a few seconds. </li>
|
||||
</ol>
|
||||
</form>
|
||||
<div class="info margin-bottom">
|
||||
<h4 class="margin-bottom-small">SSL Certificate</h4>
|
||||
<p>After verification completes, <?php echo APP_NAME; ?> will automatically generate a secure SSL certificate for your domain. This process may take a few seconds. Certitficate renewals are automatically issued every 60 days.</p>
|
||||
</div>
|
||||
|
||||
<button data-ui-modal-close="" type="button" class="reverse">Close Settings</button>
|
||||
</div>
|
||||
</td>
|
||||
<td data-title="">
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
<label data-ls-attrs="for=schedule-{{task.$id}}">Schedule (CRON Syntax)</label>
|
||||
<input type="text" class="full-width" data-ls-attrs="id=schedule-{{task.$id}}" name="schedule" required autocomplete="off" data-ls-bind="{{task.schedule}}" placeholder="* * * * *" />
|
||||
|
||||
<div class="row thin">
|
||||
<div class="row responsive thin">
|
||||
<div class="col span-4">
|
||||
<label data-ls-attrs="for=httpMethod-{{task.$id}}">HTTP Method</label>
|
||||
<select data-ls-attrs="id=httpMethod-{{task.$id}}" name="httpMethod" required data-ls-bind="{{task.httpMethod}}">
|
||||
|
@ -179,12 +179,12 @@
|
|||
|
||||
<label class="text-bold">HTTP Authentication <span class="tooltip" data-tooltip="Use to secure your endpoint from untrusted sources"><i class="icon-question"></i></span> <small>(optional)</small></label>
|
||||
|
||||
<div class="row thin">
|
||||
<div class="col span-6">
|
||||
<div class="row responsive thin">
|
||||
<div class="col span-6 margin-bottom">
|
||||
<label data-ls-attrs="for=httpUser-{{task.$id}}">User</label>
|
||||
<input type="text" class="full-width margin-bottom-no" data-ls-attrs="id=httpUser-{{task.$id}}" name="httpUser" autocomplete="off" data-ls-bind="{{task.httpUser}}" />
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<div class="col span-6 margin-bottom">
|
||||
<label data-ls-attrs="for=httpPass-{{task.$id}}">Password</label>
|
||||
<input type="password" class="full-width margin-bottom-no" data-ls-attrs="id=httpPass-{{task.$id}}" name="httpPass" autocomplete="off" data-ls-bind="{{task.httpPass}}" />
|
||||
</div>
|
||||
|
@ -256,7 +256,7 @@
|
|||
<label for="schedule">Schedule (CRON Syntax)</label>
|
||||
<input type="text" class="full-width" id="schedule" name="schedule" required autocomplete="off" placeholder="* * * * *" />
|
||||
|
||||
<div class="row thin">
|
||||
<div class="row responsive thin">
|
||||
<div class="col span-4">
|
||||
<label for="httpMethod">HTTP Method</label>
|
||||
<select id="httpMethod" name="httpMethod" required>
|
||||
|
@ -318,12 +318,12 @@
|
|||
|
||||
<label class="text-bold">HTTP Authentication <span class="tooltip" data-tooltip="Use to secure your endpoint from untrusted sources"><i class="icon-question"></i></span> <small>(optional)</small></label>
|
||||
|
||||
<div class="row thin">
|
||||
<div class="col span-6">
|
||||
<div class="row responsive thin">
|
||||
<div class="col span-6 margin-bottom">
|
||||
<label for="httpUser">User</label>
|
||||
<input type="text" class="full-width margin-bottom-no" id="httpUser" name="httpUser" autocomplete="off" />
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<div class="col span-6 margin-bottom">
|
||||
<label for="httpPass">Password</label>
|
||||
<input type="password" class="full-width margin-bottom-no" id="httpPass" name="httpPass" autocomplete="off" />
|
||||
</div>
|
||||
|
|
|
@ -74,14 +74,14 @@ $events = [
|
|||
<input type="text" class="full-width" data-ls-attrs="id=name-{{webhook.$id}}" name="name" required autocomplete="off" data-ls-bind="{{webhook.name}}" />
|
||||
|
||||
<label data-ls-attrs="for=events-{{webhook.$id}}">Events</label>
|
||||
<div class="row thin margin-bottom">
|
||||
<div class="row responsive thin">
|
||||
<?php foreach ($events as $i => $event) : ?>
|
||||
<div class="col span-6">
|
||||
<div class="col span-6 text-one-liner margin-bottom text-height-large">
|
||||
<input type="checkbox" name="events" data-ls-bind="{{webhook.events}}" value="<?php echo $event; ?>" /> <?php echo $event; ?>
|
||||
</div>
|
||||
<?php if (($i + 1) % 2 === 0) : ?>
|
||||
</div>
|
||||
<div class="row thin margin-bottom">
|
||||
<div class="row responsive thin">
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
@ -112,12 +112,12 @@ $events = [
|
|||
|
||||
<label class="text-bold">HTTP Authentication <span class="tooltip" data-tooltip="Use to secure your endpoint from untrusted sources"><i class="icon-question"></i></span> <small>(optional)</small></label>
|
||||
|
||||
<div class="row thin">
|
||||
<div class="col span-6">
|
||||
<div class="row responsive thin">
|
||||
<div class="col span-6 margin-bottom">
|
||||
<label data-ls-attrs="for=httpUser-{{webhook.$id}}">User</label>
|
||||
<input type="text" class="full-width margin-bottom-no" data-ls-attrs="id=httpUser-{{webhook.$id}}" name="httpUser" autocomplete="off" data-ls-bind="{{webhook.httpUser}}" />
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<div class="col span-6 margin-bottom">
|
||||
<label data-ls-attrs="for=httpPass-{{webhook.$id}}">Password</label>
|
||||
<input type="password" class="full-width margin-bottom-no" data-ls-attrs="id=httpPass-{{webhook.$id}}" name="httpPass" autocomplete="off" data-ls-bind="{{webhook.httpPass}}" />
|
||||
</div>
|
||||
|
@ -186,14 +186,14 @@ $events = [
|
|||
<input type="text" class="full-width" id="name" name="name" required autocomplete="off" />
|
||||
|
||||
<label for="events">Events</label>
|
||||
<div class="row thin margin-bottom">
|
||||
<div class="row responsive thin">
|
||||
<?php foreach ($events as $i => $event) : ?>
|
||||
<div class="col span-6">
|
||||
<div class="col span-6 text-one-liner margin-bottom text-height-large">
|
||||
<input type="checkbox" name="events" value="<?php echo $event; ?>" /> <?php echo $event; ?>
|
||||
</div>
|
||||
<?php if (($i + 1) % 2 === 0) : ?>
|
||||
</div>
|
||||
<div class="row thin margin-bottom">
|
||||
<div class="row responsive thin">
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
@ -224,12 +224,12 @@ $events = [
|
|||
|
||||
<label class="text-bold">HTTP Authentication <span class="tooltip" data-tooltip="Use to secure your endpoint from untrusted sources"><i class="icon-question"></i></span> <small>(optional)</small></label>
|
||||
|
||||
<div class="row thin">
|
||||
<div class="col span-6">
|
||||
<div class="row responsive thin">
|
||||
<div class="col span-6 margin-bottom">
|
||||
<label for="httpUser">User</label>
|
||||
<input type="text" class="full-width margin-bottom-no" id="httpUser" name="httpUser" autocomplete="off" />
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<div class="col span-6 margin-bottom">
|
||||
<label for="httpPass">Password</label>
|
||||
<input type="password" class="full-width margin-bottom-no" id="httpPass" name="httpPass" autocomplete="off" />
|
||||
</div>
|
||||
|
|
11
public/dist/scripts/app-all.js
vendored
11
public/dist/scripts/app-all.js
vendored
|
@ -2568,7 +2568,8 @@ return"< 1s";}).add("markdown",function($value,markdown){return markdown.render(
|
|||
let thresh=1000;if(Math.abs($value)<thresh){return $value+" B";}
|
||||
let units=["kB","MB","GB","TB","PB","EB","ZB","YB"];let u=-1;do{$value/=thresh;++u;}while(Math.abs($value)>=thresh&&u<units.length-1);return($value.toFixed(1)+'<span class="text-size-small unit">'+
|
||||
units[u]+"</span>");}).add("statsTotal",function($value){if(!$value){return 0;}
|
||||
$value=abbreviate($value,1,false,false);return $value==="0"?"N/A":$value;}).add("isEmptyObject",function($value){return((Object.keys($value).length===0&&$value.constructor===Object)||$value.length===0)});function abbreviate(number,maxPlaces,forcePlaces,forceLetter){number=Number(number);forceLetter=forceLetter||false;if(forceLetter!==false){return annotate(number,maxPlaces,forcePlaces,forceLetter);}
|
||||
$value=abbreviate($value,1,false,false);return $value==="0"?"N/A":$value;}).add("isEmptyObject",function($value){return((Object.keys($value).length===0&&$value.constructor===Object)||$value.length===0)}).add("activeDomainsCount",function($value){let result=[];if(Array.isArray($value)){result=$value.filter(function(node){return(node.verification&&node.certificateId);});}
|
||||
console.log(result);return result.length;});function abbreviate(number,maxPlaces,forcePlaces,forceLetter){number=Number(number);forceLetter=forceLetter||false;if(forceLetter!==false){return annotate(number,maxPlaces,forcePlaces,forceLetter);}
|
||||
let abbr;if(number>=1e12){abbr="T";}else if(number>=1e9){abbr="B";}else if(number>=1e6){abbr="M";}else if(number>=1e3){abbr="K";}else{abbr="";}
|
||||
return annotate(number,maxPlaces,forcePlaces,abbr);}
|
||||
function annotate(number,maxPlaces,forcePlaces,abbr){let rounded=0;switch(abbr){case"T":rounded=number/1e12;break;case"B":rounded=number/1e9;break;case"M":rounded=number/1e6;break;case"K":rounded=number/1e3;break;case"":rounded=number;break;}
|
||||
|
@ -2666,14 +2667,14 @@ if(element.value===router.params.project){return;}
|
|||
return router.change("/console/home?project="+element.value);};element.addEventListener("change",function(){check();});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-general-theme",controller:function(element,router,document){let toggle=function(c){if(document.body.classList.contains('theme-light')){document.body.classList.remove('theme-light');document.body.classList.add('theme-dark');window.localStorage.setItem('user-theme','theme-dark')}
|
||||
else{document.body.classList.remove('theme-dark');document.body.classList.add('theme-light');window.localStorage.setItem('user-theme','theme-light')}};element.addEventListener("click",function(){toggle();});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-paging-back",controller:function(element,container,expression,env){let paths=[];let limit=env.PAGING_LIMIT;let check=function(){let offset=parseInt(expression.parse(element.dataset["offset"])||"0");paths=paths.concat(expression.getPaths());if(offset-limit<0){element.disabled=true;}else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split(".");while(path.length){container.bind(element,path.join("."),check);path.pop();}}}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-paging-next",controller:function(element,container,expression,env){let paths=[];let limit=env.PAGING_LIMIT;let check=function(){let offset=parseInt(expression.parse(element.dataset["offset"])||"0");paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset["sum"])||"0");paths=paths.concat(expression.getPaths());if(offset+limit>=sum){element.disabled=true;}else{element.disabled=false;element.value=offset+limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split(".");while(path.length){container.bind(element,path.join("."),check);path.pop();}}}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ui-highlight",controller:function(element,expression,document){let check=function(){let links=element.getElementsByTagName("a");let selected=null;let list=[];for(let i=0;i<links.length;i++){links[i].href=links[i].href||expression.parse(links[i].dataset["lsHref"]||"");list.push(links[i]);}
|
||||
list.sort(function(a,b){return a.pathname.length-b.pathname.length;});for(let i=0;i<list.length;i++){if(list[i].pathname===window.location.pathname.substring(0,list[i].pathname.length)){list[i].classList.add("selected");if(selected!==null){list[selected].classList.remove("selected");}
|
||||
selected=i;}else{list[i].classList.remove("selected");}}};document.addEventListener("state-changed",check);check();}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-loader",controller:function(element,document){document.addEventListener('account.get',function(){element.classList.add('loaded');});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ui-modal",controller:function(document,element,expression){let name=element.dataset["name"]||null;let buttonText=expression.parse(element.dataset["buttonText"]||"");let buttonClass=element.dataset["buttonClass"]||"button-class";let buttonIcon=element.dataset["buttonIcon"]||null;let buttonEvent=element.dataset["buttonEvent"]||"";let buttonAlias=element.dataset["buttonAlias"]||"";let buttonElements=!buttonAlias?[document.createElement("button")]:document.querySelectorAll(buttonAlias);let openEvent=element.dataset["openEvent"]||null;let background=document.getElementById("modal-bg");if(!background){background=document.createElement("div");background.id="modal-bg";background.className="modal-bg";document.body.appendChild(background);background.addEventListener("click",function(){document.dispatchEvent(new CustomEvent("modal-close",{bubbles:false,cancelable:true}));});}
|
||||
selected=i;}else{list[i].classList.remove("selected");}}};document.addEventListener("state-changed",check);check();}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-loader",controller:function(element,document){document.addEventListener('account.get',function(){element.classList.add('loaded');});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ui-modal",controller:function(document,element,expression){let name=expression.parse(element.dataset["name"]||'');let buttonText=expression.parse(element.dataset["buttonText"]||"");let buttonClass=expression.parse(element.dataset["buttonClass"]||"button-class");let buttonIcon=expression.parse(element.dataset["buttonIcon"]||'');let buttonEvent=expression.parse(element.dataset["buttonEvent"]||"");let buttonAlias=expression.parse(element.dataset["buttonAlias"]||"");let buttonElements=!buttonAlias?[document.createElement("button")]:document.querySelectorAll(buttonAlias);let openEvent=expression.parse(element.dataset["openEvent"]||'');let closeEvent=expression.parse(element.dataset["closeEvent"]||'submit');let background=document.getElementById("modal-bg");if(!background){background=document.createElement("div");background.id="modal-bg";background.className="modal-bg";document.body.appendChild(background);background.addEventListener("click",function(){document.dispatchEvent(new CustomEvent("modal-close",{bubbles:false,cancelable:true}));});}
|
||||
if(!buttonAlias){buttonElements.forEach(button=>{button.innerText=buttonText;button.className=buttonClass;button.type="button";if(buttonIcon){let iconElement=document.createElement("i");iconElement.className=buttonIcon;button.insertBefore(iconElement,button.firstChild);}});}
|
||||
if(buttonEvent){buttonElements.forEach(button=>{button.addEventListener("click",function(){document.dispatchEvent(new CustomEvent(buttonEvent,{bubbles:false,cancelable:true}));});});}
|
||||
element.classList.add("modal");if(!buttonAlias){buttonElements.forEach(button=>{element.parentNode.insertBefore(button,element);});}
|
||||
let open=function(){document.documentElement.classList.add("modal-open");document.dispatchEvent(new CustomEvent("modal-open",{bubbles:false,cancelable:true}));element.classList.add("open");element.classList.remove("close");};let close=function(){document.documentElement.classList.remove("modal-open");element.classList.add("close");element.classList.remove("open");};if(name){document.querySelectorAll("[data-ui-modal-ref='"+name+"']").forEach(function(elem){elem.addEventListener("click",open);});}
|
||||
let open=function(){document.documentElement.classList.add("modal-open");document.dispatchEvent(new CustomEvent("modal-open",{bubbles:false,cancelable:true}));element.classList.add("open");element.classList.remove("close");};let close=function(event){document.documentElement.classList.remove("modal-open");element.classList.add("close");element.classList.remove("open");};if(name){document.querySelectorAll("[data-ui-modal-ref='"+name+"']").forEach(function(elem){elem.addEventListener("click",open);});}
|
||||
if(openEvent){document.addEventListener(openEvent,open);}
|
||||
buttonElements.forEach(button=>{button.addEventListener("click",open);});document.addEventListener("keydown",function(event){if(event.which===27){close();}});element.addEventListener("blur",close);let closeButtons=element.querySelectorAll("[data-ui-modal-close]");for(let i=0;i<closeButtons.length;i++){closeButtons[i].addEventListener("click",close);}
|
||||
document.addEventListener("modal-close",close);element.addEventListener("submit",close);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-open",controller:function(element,window){let def=element.classList.contains("open")?"open":"close";let buttonClass=element.dataset["buttonClass"]||"ls-ui-open";let buttonText=element.dataset["buttonText"]||"";let buttonIcon=element.dataset["buttonIcon"]||"";let buttonSelector=element.dataset["buttonSelector"]||"";let hover=element.hasAttribute("data-hover");let blur=element.hasAttribute("data-blur");let button=window.document.createElement("button");let isTouch=function(){return("ontouchstart"in window||navigator.maxTouchPoints);};button.innerText=buttonText;button.className=buttonClass;button.tabIndex=1;button.type="button";if(buttonIcon){let icon=window.document.createElement("i");icon.className=buttonIcon;button.insertBefore(icon,button.firstChild);}
|
||||
document.addEventListener("modal-close",close);element.addEventListener(closeEvent,close);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-open",controller:function(element,window){let def=element.classList.contains("open")?"open":"close";let buttonClass=element.dataset["buttonClass"]||"ls-ui-open";let buttonText=element.dataset["buttonText"]||"";let buttonIcon=element.dataset["buttonIcon"]||"";let buttonSelector=element.dataset["buttonSelector"]||"";let hover=element.hasAttribute("data-hover");let blur=element.hasAttribute("data-blur");let button=window.document.createElement("button");let isTouch=function(){return("ontouchstart"in window||navigator.maxTouchPoints);};button.innerText=buttonText;button.className=buttonClass;button.tabIndex=1;button.type="button";if(buttonIcon){let icon=window.document.createElement("i");icon.className=buttonIcon;button.insertBefore(icon,button.firstChild);}
|
||||
if(def==="close"){element.classList.add("close");element.classList.remove("open");}else{element.classList.add("open");element.classList.remove("close");}
|
||||
button.addEventListener("click",function(){element.classList.toggle("open");element.classList.toggle("close");});if(hover&&!isTouch()){element.addEventListener("mouseover",function(){element.classList.add("open");element.classList.remove("close");});element.addEventListener("mouseout",function(){element.classList.add("close");element.classList.remove("open");});}
|
||||
let close=function(){element.classList.add("close");element.classList.remove("open");};let closeDelay=function(){window.setTimeout(function(){close();},150);};let findParent=function(tagName,el){if((el.nodeName||el.tagName).toLowerCase()===tagName.toLowerCase()){return el;}
|
||||
|
@ -2684,4 +2685,4 @@ element.addEventListener("click",function(event){let target=findParent("a",event
|
|||
if(!target.href){return false;}
|
||||
closeDelay();});element.insertBefore(button,element.firstChild);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ui-phases",controller:function(element,window,document,expression,router){var tabs=document.createElement("ul");var container=document.createElement("div");var titles=Array.prototype.slice.call(element.getElementsByTagName("h2"));var next=Array.prototype.slice.call(element.querySelectorAll("[data-next]"));var previous=Array.prototype.slice.call(element.querySelectorAll("[data-previous]"));var position=0;var init=false;for(var i=0;i<element.children.length;i++){var tabState=expression.parse(element.children[i].dataset["state"]||"");if(tabState===(window.location.pathname+window.location.search).substring(0,tabState.length)){position=i;}}
|
||||
var setTab=function(index){var tabState=expression.parse(element.children[index].dataset["state"]||"");var url="";if(tabState!==""&&tabState!==window.location.pathname+window.location.search){var parser=document.createElement("a");parser.href=tabState;url=!init?parser.pathname+window.location.search:tabState;if(position!=index){window.history.pushState({},"",url);router.reset();}}
|
||||
element.children[position].classList.remove("selected");element.children[index].classList.add("selected");tabs.children[position].classList.remove("selected");tabs.children[index].classList.add("selected");position=index;document.dispatchEvent(new CustomEvent("tab-changed"));init=true;};tabs.classList.add("tabs");container.classList.add("container");container.classList.add("close");container.dataset["lsUiOpen"]="";container.dataset["buttonClass"]="icon icon-down-dir";titles.map(function(obj,i){var title=document.createElement("li");title.innerHTML=obj.innerHTML;title.className=obj.className;title.tabIndex=0;tabs.appendChild(title);title.addEventListener("click",function(){setTab(i);});title.addEventListener("keyup",function(){if(event.which===13){setTab(i);}});});next.map(function(obj){obj.addEventListener("click",function(){setTab(position+1);});});previous.map(function(obj){obj.addEventListener("click",function(){setTab(position-1);});});setTab(position);container.appendChild(tabs);element.parentNode.insertBefore(container,element);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-trigger",controller:function(element,document){let trigger=element.dataset["lsUiTrigger"];let event=element.dataset["event"]||"click";element.addEventListener(event,function(){document.dispatchEvent(new CustomEvent(trigger));});}});})(window);
|
||||
element.children[position].classList.remove("selected");element.children[index].classList.add("selected");tabs.children[position].classList.remove("selected");tabs.children[index].classList.add("selected");position=index;document.dispatchEvent(new CustomEvent("tab-changed"));init=true;};tabs.classList.add("tabs");container.classList.add("container");container.classList.add("close");container.dataset["lsUiOpen"]="";container.dataset["buttonClass"]="icon icon-down-dir";titles.map(function(obj,i){var title=document.createElement("li");title.innerHTML=obj.innerHTML;title.className=obj.className;title.tabIndex=0;tabs.appendChild(title);title.addEventListener("click",function(){setTab(i);});title.addEventListener("keyup",function(){if(event.which===13){setTab(i);}});});next.map(function(obj){obj.addEventListener("click",function(){setTab(position+1);});});previous.map(function(obj){obj.addEventListener("click",function(){setTab(position-1);});});setTab(position);container.appendChild(tabs);element.parentNode.insertBefore(container,element);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-trigger",controller:function(element,document,expression){let trigger=expression.parse(element.dataset["lsUiTrigger"]||'');let event=expression.parse(element.dataset["event"]||'click');element.addEventListener(event,function(){document.dispatchEvent(new CustomEvent(trigger));});}});})(window);
|
11
public/dist/scripts/app.js
vendored
11
public/dist/scripts/app.js
vendored
|
@ -286,7 +286,8 @@ return"< 1s";}).add("markdown",function($value,markdown){return markdown.render(
|
|||
let thresh=1000;if(Math.abs($value)<thresh){return $value+" B";}
|
||||
let units=["kB","MB","GB","TB","PB","EB","ZB","YB"];let u=-1;do{$value/=thresh;++u;}while(Math.abs($value)>=thresh&&u<units.length-1);return($value.toFixed(1)+'<span class="text-size-small unit">'+
|
||||
units[u]+"</span>");}).add("statsTotal",function($value){if(!$value){return 0;}
|
||||
$value=abbreviate($value,1,false,false);return $value==="0"?"N/A":$value;}).add("isEmptyObject",function($value){return((Object.keys($value).length===0&&$value.constructor===Object)||$value.length===0)});function abbreviate(number,maxPlaces,forcePlaces,forceLetter){number=Number(number);forceLetter=forceLetter||false;if(forceLetter!==false){return annotate(number,maxPlaces,forcePlaces,forceLetter);}
|
||||
$value=abbreviate($value,1,false,false);return $value==="0"?"N/A":$value;}).add("isEmptyObject",function($value){return((Object.keys($value).length===0&&$value.constructor===Object)||$value.length===0)}).add("activeDomainsCount",function($value){let result=[];if(Array.isArray($value)){result=$value.filter(function(node){return(node.verification&&node.certificateId);});}
|
||||
console.log(result);return result.length;});function abbreviate(number,maxPlaces,forcePlaces,forceLetter){number=Number(number);forceLetter=forceLetter||false;if(forceLetter!==false){return annotate(number,maxPlaces,forcePlaces,forceLetter);}
|
||||
let abbr;if(number>=1e12){abbr="T";}else if(number>=1e9){abbr="B";}else if(number>=1e6){abbr="M";}else if(number>=1e3){abbr="K";}else{abbr="";}
|
||||
return annotate(number,maxPlaces,forcePlaces,abbr);}
|
||||
function annotate(number,maxPlaces,forcePlaces,abbr){let rounded=0;switch(abbr){case"T":rounded=number/1e12;break;case"B":rounded=number/1e9;break;case"M":rounded=number/1e6;break;case"K":rounded=number/1e3;break;case"":rounded=number;break;}
|
||||
|
@ -384,14 +385,14 @@ if(element.value===router.params.project){return;}
|
|||
return router.change("/console/home?project="+element.value);};element.addEventListener("change",function(){check();});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-general-theme",controller:function(element,router,document){let toggle=function(c){if(document.body.classList.contains('theme-light')){document.body.classList.remove('theme-light');document.body.classList.add('theme-dark');window.localStorage.setItem('user-theme','theme-dark')}
|
||||
else{document.body.classList.remove('theme-dark');document.body.classList.add('theme-light');window.localStorage.setItem('user-theme','theme-light')}};element.addEventListener("click",function(){toggle();});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-paging-back",controller:function(element,container,expression,env){let paths=[];let limit=env.PAGING_LIMIT;let check=function(){let offset=parseInt(expression.parse(element.dataset["offset"])||"0");paths=paths.concat(expression.getPaths());if(offset-limit<0){element.disabled=true;}else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split(".");while(path.length){container.bind(element,path.join("."),check);path.pop();}}}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-paging-next",controller:function(element,container,expression,env){let paths=[];let limit=env.PAGING_LIMIT;let check=function(){let offset=parseInt(expression.parse(element.dataset["offset"])||"0");paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset["sum"])||"0");paths=paths.concat(expression.getPaths());if(offset+limit>=sum){element.disabled=true;}else{element.disabled=false;element.value=offset+limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split(".");while(path.length){container.bind(element,path.join("."),check);path.pop();}}}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ui-highlight",controller:function(element,expression,document){let check=function(){let links=element.getElementsByTagName("a");let selected=null;let list=[];for(let i=0;i<links.length;i++){links[i].href=links[i].href||expression.parse(links[i].dataset["lsHref"]||"");list.push(links[i]);}
|
||||
list.sort(function(a,b){return a.pathname.length-b.pathname.length;});for(let i=0;i<list.length;i++){if(list[i].pathname===window.location.pathname.substring(0,list[i].pathname.length)){list[i].classList.add("selected");if(selected!==null){list[selected].classList.remove("selected");}
|
||||
selected=i;}else{list[i].classList.remove("selected");}}};document.addEventListener("state-changed",check);check();}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-loader",controller:function(element,document){document.addEventListener('account.get',function(){element.classList.add('loaded');});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ui-modal",controller:function(document,element,expression){let name=element.dataset["name"]||null;let buttonText=expression.parse(element.dataset["buttonText"]||"");let buttonClass=element.dataset["buttonClass"]||"button-class";let buttonIcon=element.dataset["buttonIcon"]||null;let buttonEvent=element.dataset["buttonEvent"]||"";let buttonAlias=element.dataset["buttonAlias"]||"";let buttonElements=!buttonAlias?[document.createElement("button")]:document.querySelectorAll(buttonAlias);let openEvent=element.dataset["openEvent"]||null;let background=document.getElementById("modal-bg");if(!background){background=document.createElement("div");background.id="modal-bg";background.className="modal-bg";document.body.appendChild(background);background.addEventListener("click",function(){document.dispatchEvent(new CustomEvent("modal-close",{bubbles:false,cancelable:true}));});}
|
||||
selected=i;}else{list[i].classList.remove("selected");}}};document.addEventListener("state-changed",check);check();}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-loader",controller:function(element,document){document.addEventListener('account.get',function(){element.classList.add('loaded');});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ui-modal",controller:function(document,element,expression){let name=expression.parse(element.dataset["name"]||'');let buttonText=expression.parse(element.dataset["buttonText"]||"");let buttonClass=expression.parse(element.dataset["buttonClass"]||"button-class");let buttonIcon=expression.parse(element.dataset["buttonIcon"]||'');let buttonEvent=expression.parse(element.dataset["buttonEvent"]||"");let buttonAlias=expression.parse(element.dataset["buttonAlias"]||"");let buttonElements=!buttonAlias?[document.createElement("button")]:document.querySelectorAll(buttonAlias);let openEvent=expression.parse(element.dataset["openEvent"]||'');let closeEvent=expression.parse(element.dataset["closeEvent"]||'submit');let background=document.getElementById("modal-bg");if(!background){background=document.createElement("div");background.id="modal-bg";background.className="modal-bg";document.body.appendChild(background);background.addEventListener("click",function(){document.dispatchEvent(new CustomEvent("modal-close",{bubbles:false,cancelable:true}));});}
|
||||
if(!buttonAlias){buttonElements.forEach(button=>{button.innerText=buttonText;button.className=buttonClass;button.type="button";if(buttonIcon){let iconElement=document.createElement("i");iconElement.className=buttonIcon;button.insertBefore(iconElement,button.firstChild);}});}
|
||||
if(buttonEvent){buttonElements.forEach(button=>{button.addEventListener("click",function(){document.dispatchEvent(new CustomEvent(buttonEvent,{bubbles:false,cancelable:true}));});});}
|
||||
element.classList.add("modal");if(!buttonAlias){buttonElements.forEach(button=>{element.parentNode.insertBefore(button,element);});}
|
||||
let open=function(){document.documentElement.classList.add("modal-open");document.dispatchEvent(new CustomEvent("modal-open",{bubbles:false,cancelable:true}));element.classList.add("open");element.classList.remove("close");};let close=function(){document.documentElement.classList.remove("modal-open");element.classList.add("close");element.classList.remove("open");};if(name){document.querySelectorAll("[data-ui-modal-ref='"+name+"']").forEach(function(elem){elem.addEventListener("click",open);});}
|
||||
let open=function(){document.documentElement.classList.add("modal-open");document.dispatchEvent(new CustomEvent("modal-open",{bubbles:false,cancelable:true}));element.classList.add("open");element.classList.remove("close");};let close=function(event){document.documentElement.classList.remove("modal-open");element.classList.add("close");element.classList.remove("open");};if(name){document.querySelectorAll("[data-ui-modal-ref='"+name+"']").forEach(function(elem){elem.addEventListener("click",open);});}
|
||||
if(openEvent){document.addEventListener(openEvent,open);}
|
||||
buttonElements.forEach(button=>{button.addEventListener("click",open);});document.addEventListener("keydown",function(event){if(event.which===27){close();}});element.addEventListener("blur",close);let closeButtons=element.querySelectorAll("[data-ui-modal-close]");for(let i=0;i<closeButtons.length;i++){closeButtons[i].addEventListener("click",close);}
|
||||
document.addEventListener("modal-close",close);element.addEventListener("submit",close);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-open",controller:function(element,window){let def=element.classList.contains("open")?"open":"close";let buttonClass=element.dataset["buttonClass"]||"ls-ui-open";let buttonText=element.dataset["buttonText"]||"";let buttonIcon=element.dataset["buttonIcon"]||"";let buttonSelector=element.dataset["buttonSelector"]||"";let hover=element.hasAttribute("data-hover");let blur=element.hasAttribute("data-blur");let button=window.document.createElement("button");let isTouch=function(){return("ontouchstart"in window||navigator.maxTouchPoints);};button.innerText=buttonText;button.className=buttonClass;button.tabIndex=1;button.type="button";if(buttonIcon){let icon=window.document.createElement("i");icon.className=buttonIcon;button.insertBefore(icon,button.firstChild);}
|
||||
document.addEventListener("modal-close",close);element.addEventListener(closeEvent,close);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-open",controller:function(element,window){let def=element.classList.contains("open")?"open":"close";let buttonClass=element.dataset["buttonClass"]||"ls-ui-open";let buttonText=element.dataset["buttonText"]||"";let buttonIcon=element.dataset["buttonIcon"]||"";let buttonSelector=element.dataset["buttonSelector"]||"";let hover=element.hasAttribute("data-hover");let blur=element.hasAttribute("data-blur");let button=window.document.createElement("button");let isTouch=function(){return("ontouchstart"in window||navigator.maxTouchPoints);};button.innerText=buttonText;button.className=buttonClass;button.tabIndex=1;button.type="button";if(buttonIcon){let icon=window.document.createElement("i");icon.className=buttonIcon;button.insertBefore(icon,button.firstChild);}
|
||||
if(def==="close"){element.classList.add("close");element.classList.remove("open");}else{element.classList.add("open");element.classList.remove("close");}
|
||||
button.addEventListener("click",function(){element.classList.toggle("open");element.classList.toggle("close");});if(hover&&!isTouch()){element.addEventListener("mouseover",function(){element.classList.add("open");element.classList.remove("close");});element.addEventListener("mouseout",function(){element.classList.add("close");element.classList.remove("open");});}
|
||||
let close=function(){element.classList.add("close");element.classList.remove("open");};let closeDelay=function(){window.setTimeout(function(){close();},150);};let findParent=function(tagName,el){if((el.nodeName||el.tagName).toLowerCase()===tagName.toLowerCase()){return el;}
|
||||
|
@ -402,4 +403,4 @@ element.addEventListener("click",function(event){let target=findParent("a",event
|
|||
if(!target.href){return false;}
|
||||
closeDelay();});element.insertBefore(button,element.firstChild);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ui-phases",controller:function(element,window,document,expression,router){var tabs=document.createElement("ul");var container=document.createElement("div");var titles=Array.prototype.slice.call(element.getElementsByTagName("h2"));var next=Array.prototype.slice.call(element.querySelectorAll("[data-next]"));var previous=Array.prototype.slice.call(element.querySelectorAll("[data-previous]"));var position=0;var init=false;for(var i=0;i<element.children.length;i++){var tabState=expression.parse(element.children[i].dataset["state"]||"");if(tabState===(window.location.pathname+window.location.search).substring(0,tabState.length)){position=i;}}
|
||||
var setTab=function(index){var tabState=expression.parse(element.children[index].dataset["state"]||"");var url="";if(tabState!==""&&tabState!==window.location.pathname+window.location.search){var parser=document.createElement("a");parser.href=tabState;url=!init?parser.pathname+window.location.search:tabState;if(position!=index){window.history.pushState({},"",url);router.reset();}}
|
||||
element.children[position].classList.remove("selected");element.children[index].classList.add("selected");tabs.children[position].classList.remove("selected");tabs.children[index].classList.add("selected");position=index;document.dispatchEvent(new CustomEvent("tab-changed"));init=true;};tabs.classList.add("tabs");container.classList.add("container");container.classList.add("close");container.dataset["lsUiOpen"]="";container.dataset["buttonClass"]="icon icon-down-dir";titles.map(function(obj,i){var title=document.createElement("li");title.innerHTML=obj.innerHTML;title.className=obj.className;title.tabIndex=0;tabs.appendChild(title);title.addEventListener("click",function(){setTab(i);});title.addEventListener("keyup",function(){if(event.which===13){setTab(i);}});});next.map(function(obj){obj.addEventListener("click",function(){setTab(position+1);});});previous.map(function(obj){obj.addEventListener("click",function(){setTab(position-1);});});setTab(position);container.appendChild(tabs);element.parentNode.insertBefore(container,element);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-trigger",controller:function(element,document){let trigger=element.dataset["lsUiTrigger"];let event=element.dataset["event"]||"click";element.addEventListener(event,function(){document.dispatchEvent(new CustomEvent(trigger));});}});})(window);
|
||||
element.children[position].classList.remove("selected");element.children[index].classList.add("selected");tabs.children[position].classList.remove("selected");tabs.children[index].classList.add("selected");position=index;document.dispatchEvent(new CustomEvent("tab-changed"));init=true;};tabs.classList.add("tabs");container.classList.add("container");container.classList.add("close");container.dataset["lsUiOpen"]="";container.dataset["buttonClass"]="icon icon-down-dir";titles.map(function(obj,i){var title=document.createElement("li");title.innerHTML=obj.innerHTML;title.className=obj.className;title.tabIndex=0;tabs.appendChild(title);title.addEventListener("click",function(){setTab(i);});title.addEventListener("keyup",function(){if(event.which===13){setTab(i);}});});next.map(function(obj){obj.addEventListener("click",function(){setTab(position+1);});});previous.map(function(obj){obj.addEventListener("click",function(){setTab(position-1);});});setTab(position);container.appendChild(tabs);element.parentNode.insertBefore(container,element);}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-ls-ui-trigger",controller:function(element,document,expression){let trigger=expression.parse(element.dataset["lsUiTrigger"]||'');let event=expression.parse(element.dataset["event"]||'click');element.addEventListener(event,function(){document.dispatchEvent(new CustomEvent(trigger));});}});})(window);
|
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
|
@ -357,6 +357,19 @@ window.ls.filter
|
|||
})
|
||||
.add("isEmptyObject", function($value) {
|
||||
return ((Object.keys($value).length === 0 && $value.constructor === Object) || $value.length === 0)
|
||||
})
|
||||
.add("activeDomainsCount", function($value) {
|
||||
let result = [];
|
||||
|
||||
if(Array.isArray($value)) {
|
||||
result = $value.filter(function(node) {
|
||||
return (node.verification && node.certificateId);
|
||||
});
|
||||
}
|
||||
|
||||
console.log(result);
|
||||
|
||||
return result.length;
|
||||
});
|
||||
|
||||
function abbreviate(number, maxPlaces, forcePlaces, forceLetter) {
|
||||
|
|
|
@ -2,16 +2,17 @@
|
|||
window.ls.container.get("view").add({
|
||||
selector: "data-ui-modal",
|
||||
controller: function(document, element, expression) {
|
||||
let name = element.dataset["name"] || null;
|
||||
let name = expression.parse(element.dataset["name"] || '');
|
||||
let buttonText = expression.parse(element.dataset["buttonText"] || "");
|
||||
let buttonClass = element.dataset["buttonClass"] || "button-class";
|
||||
let buttonIcon = element.dataset["buttonIcon"] || null;
|
||||
let buttonEvent = element.dataset["buttonEvent"] || "";
|
||||
let buttonAlias = element.dataset["buttonAlias"] || "";
|
||||
let buttonClass = expression.parse(element.dataset["buttonClass"] || "button-class");
|
||||
let buttonIcon = expression.parse(element.dataset["buttonIcon"] || '');
|
||||
let buttonEvent = expression.parse(element.dataset["buttonEvent"] || "");
|
||||
let buttonAlias = expression.parse(element.dataset["buttonAlias"] || "");
|
||||
let buttonElements = !buttonAlias
|
||||
? [document.createElement("button")]
|
||||
: document.querySelectorAll(buttonAlias);
|
||||
let openEvent = element.dataset["openEvent"] || null; // When event triggers modal will open
|
||||
let openEvent = expression.parse(element.dataset["openEvent"] || ''); // When event triggers modal will open
|
||||
let closeEvent = expression.parse(element.dataset["closeEvent"] || 'submit'); // When event triggers modal will close
|
||||
let background = document.getElementById("modal-bg");
|
||||
|
||||
if (!background) {
|
||||
|
@ -82,7 +83,7 @@
|
|||
element.classList.remove("close");
|
||||
};
|
||||
|
||||
let close = function() {
|
||||
let close = function(event) {
|
||||
document.documentElement.classList.remove("modal-open");
|
||||
|
||||
element.classList.add("close");
|
||||
|
@ -120,7 +121,7 @@
|
|||
}
|
||||
|
||||
document.addEventListener("modal-close", close);
|
||||
element.addEventListener("submit", close);
|
||||
element.addEventListener(closeEvent, close);
|
||||
}
|
||||
});
|
||||
})(window);
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
(function(window) {
|
||||
window.ls.container.get("view").add({
|
||||
selector: "data-ls-ui-trigger",
|
||||
controller: function(element, document) {
|
||||
let trigger = element.dataset["lsUiTrigger"];
|
||||
let event = element.dataset["event"] || "click";
|
||||
controller: function(element, document, expression) {
|
||||
let trigger = expression.parse(element.dataset["lsUiTrigger"] || '');
|
||||
let event = expression.parse(element.dataset["event"] || 'click');
|
||||
|
||||
element.addEventListener(event, function() {
|
||||
document.dispatchEvent(new CustomEvent(trigger));
|
||||
|
|
|
@ -6,15 +6,14 @@
|
|||
padding: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
color: var(--config-color-background-fade);
|
||||
color: var(--config-color-normal);
|
||||
z-index: 1002;
|
||||
margin: 0 auto;
|
||||
bottom: 15px;
|
||||
max-width: 650px;
|
||||
opacity: 0.90;
|
||||
max-width: 540px;
|
||||
|
||||
li {
|
||||
margin: 1px 0 0 0;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 0;
|
||||
|
||||
div.message {
|
||||
|
@ -22,17 +21,24 @@
|
|||
padding: 12px 35px;
|
||||
margin: 0 auto;
|
||||
list-style: none;
|
||||
background: var(--config-color-fade);
|
||||
background: var(--config-color-background-dark);
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
border-radius: 20px;
|
||||
font-size: 14px;
|
||||
border-radius: 10px;
|
||||
line-height: 16px;
|
||||
min-height: 16px;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
|
||||
opacity: .95;
|
||||
|
||||
span {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
i {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
font-size: 22px;
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
top: 8px;
|
||||
.func-start(8px);
|
||||
}
|
||||
|
|
|
@ -84,8 +84,8 @@
|
|||
border-top: 2px solid var(--config-color-background);
|
||||
border-bottom: 2px solid var(--config-color-background);
|
||||
margin: 0 -30px;
|
||||
padding: 30px;
|
||||
height: 35px;
|
||||
padding: 30px 30px 0 30px;
|
||||
height: 65px;
|
||||
overflow: hidden;
|
||||
|
||||
button.ls-ui-open {
|
||||
|
@ -154,6 +154,10 @@
|
|||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
@media @phones, @tablets {
|
||||
//padding: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
a.box {
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
border-radius: 10px;
|
||||
box-sizing: border-box;
|
||||
text-align: @config-start;
|
||||
white-space: initial;
|
||||
|
||||
@media @phones, @tablets {
|
||||
width: ~"calc(100% - 20px)";
|
||||
|
@ -97,12 +98,29 @@
|
|||
border-top: solid 1px var(--config-border-color);
|
||||
padding: 30px 30px 0 30px;
|
||||
margin: 0 -30px;
|
||||
|
||||
&.strip {
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.separator {
|
||||
margin: 20px -30px;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
.func-padding-start(40px);
|
||||
|
||||
li {
|
||||
.margin-bottom;
|
||||
&:before {
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
margin: 0 -30px;
|
||||
padding: 20px 30px;
|
||||
|
@ -110,20 +128,6 @@
|
|||
color: var(--config-modal-note-color);
|
||||
border-top: solid 1px var(--config-modal-note-border);
|
||||
border-bottom: solid 1px var(--config-modal-note-border);
|
||||
|
||||
ol {
|
||||
.func-padding-start(40px);
|
||||
|
||||
p {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
li {
|
||||
&:before {
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
button.close {
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
--config-color-background: #eceff1;
|
||||
--config-color-background-dark: #dfe2e4;
|
||||
--config-color-background-fade: #ffffff;
|
||||
--config-color-background-fade-super: #fdfdfd;
|
||||
--config-color-background-focus: #f5f5f5;
|
||||
--config-color-background-input: #ffffff;
|
||||
--config-color-placeholder: #868686;
|
||||
|
@ -75,6 +76,7 @@
|
|||
--config-color-background: #061F2F;
|
||||
--config-color-background-dark: #262d50;
|
||||
--config-color-background-fade: #1c223a;
|
||||
--config-color-background-fade-super: #1a1f35;
|
||||
--config-color-background-focus: #1a1f35;
|
||||
--config-color-background-input: #dce8f5;
|
||||
--config-color-tooltip-text: #061F2F;
|
||||
|
@ -160,8 +162,8 @@
|
|||
|
||||
@watch: ~"only screen and (max-width: 260px)";
|
||||
@phones: ~"only screen and (max-width: 550px)";
|
||||
@tablets: ~"only screen and (min-width: 551px) and (max-width: 1200px)";
|
||||
@desktops: ~"only screen and (min-width: 1201px) and (max-width: 1300px)";
|
||||
@tablets: ~"only screen and (min-width: 551px) and (max-width: 1199)";
|
||||
@desktops: ~"only screen and (min-width: 1199) and (max-width: 1300px)";
|
||||
@big-screens: ~"only screen and (min-width: 1200px)";
|
||||
|
||||
img[src=""] {
|
||||
|
|
|
@ -637,6 +637,12 @@
|
|||
"css": "sun-inv",
|
||||
"code": 59465,
|
||||
"src": "iconic"
|
||||
},
|
||||
{
|
||||
"uid": "0f4cae16f34ae243a6144c18a003f2d8",
|
||||
"css": "cancel-circled",
|
||||
"code": 59466,
|
||||
"src": "fontawesome"
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -397,6 +397,13 @@
|
|||
|
||||
hr {
|
||||
margin: 20px -20px;
|
||||
height: 2px;
|
||||
background: var(--config-console-background);
|
||||
|
||||
@media @phones,
|
||||
@tablets {
|
||||
height: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
|
@ -714,6 +721,29 @@
|
|||
.scroll-to {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media @phones, @tablets {
|
||||
>header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
>footer {
|
||||
width: auto;
|
||||
margin: 50px -30px 0 -30px!important;
|
||||
padding: 0 30px 30px 30px;
|
||||
}
|
||||
|
||||
body {
|
||||
height: 100%!important;
|
||||
width: ~"calc(100% - 60px)"!important;
|
||||
padding: 0 30px!important;
|
||||
}
|
||||
|
||||
.cover {
|
||||
padding: 25px 30px;
|
||||
margin: 0 -30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dev-feature {
|
||||
|
|
|
@ -56,7 +56,7 @@ table {
|
|||
}
|
||||
|
||||
tr:nth-child(even) {
|
||||
background: var(--config-color-background-focus);
|
||||
background: var(--config-color-background-fade-super);
|
||||
}
|
||||
|
||||
th {
|
||||
|
|
|
@ -59,6 +59,11 @@ small {
|
|||
font-size: 16px;
|
||||
}
|
||||
|
||||
.text-height-large {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.text-one-liner {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
|
|
Loading…
Reference in a new issue