Upgrading JS framework version
This commit is contained in:
parent
81661159db
commit
c8747a0c5e
|
@ -8,7 +8,7 @@ use Utopia\Locale\Locale;
|
|||
</div>
|
||||
|
||||
<div class="zone xl">
|
||||
<ul class="phases clear" data-ui-phases data-selected="{{state.params.tab}}">
|
||||
<ul class="phases clear" data-ui-phases data-selected="{{router.params.tab}}">
|
||||
<li data-state="/console/account">
|
||||
<div class=""
|
||||
data-appwrite="account.get"
|
||||
|
|
|
@ -4,7 +4,7 @@ use Utopia\Locale\Locale;
|
|||
<header class="clear" data-ls-rerender="project.update">
|
||||
|
||||
<div data-ls-wait="projects.load" class="list pull-start project-only">
|
||||
<select data-ls-options="{{projects}}" data-key="{{option.$uid}}" data-label="{{option.name}}" data-ls-echo="{{state.params.project}}" aria-label="<?php echo $this->escape(Locale::getText('console.navigation.switch')); ?>" data-switch=""></select>
|
||||
<select data-ls-options="{{projects}}" data-key="{{option.$uid}}" data-label="{{option.name}}" data-ls-echo="{{router.params.project}}" aria-label="<?php echo $this->escape(Locale::getText('console.navigation.switch')); ?>" data-switch=""></select>
|
||||
</div>
|
||||
|
||||
<button style="width: 40px; height: 40px; line-height: 40px; overflow: visible;" id="setup" class="tooltip round down project-only" aria-label="Quick Start" data-tooltip="Create a new project"><i class="icon-plus"></i></button>
|
||||
|
@ -51,7 +51,7 @@ use Utopia\Locale\Locale;
|
|||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<a data-ls-href="/console/home?project={{state.params.project}}">
|
||||
<a data-ls-href="/console/home?project={{router.params.project}}">
|
||||
<i class="icon-home"></i>
|
||||
Home
|
||||
</a>
|
||||
|
@ -62,19 +62,19 @@ use Utopia\Locale\Locale;
|
|||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<a data-ls-href="/console/database?project={{state.params.project}}">
|
||||
<a data-ls-href="/console/database?project={{router.params.project}}">
|
||||
<i class="icon-database"></i>
|
||||
Database
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-ls-href="/console/storage?project={{state.params.project}}">
|
||||
<a data-ls-href="/console/storage?project={{router.params.project}}">
|
||||
<i class="icon-folder"></i>
|
||||
Storage
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-ls-href="/console/users?project={{state.params.project}}">
|
||||
<a data-ls-href="/console/users?project={{router.params.project}}">
|
||||
<i class="icon-users"></i>
|
||||
Users
|
||||
</a>
|
||||
|
@ -85,19 +85,19 @@ use Utopia\Locale\Locale;
|
|||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<a data-ls-href="/console/settings/keys?project={{state.params.project}}">
|
||||
<a data-ls-href="/console/settings/keys?project={{router.params.project}}">
|
||||
<i class="icon-key-inv"></i>
|
||||
API Keys
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-ls-href="/console/settings/webhooks?project={{state.params.project}}">
|
||||
<a data-ls-href="/console/settings/webhooks?project={{router.params.project}}">
|
||||
<i class="icon-link"></i>
|
||||
Webhooks
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-ls-href="/console/settings/tasks?project={{state.params.project}}">
|
||||
<a data-ls-href="/console/settings/tasks?project={{router.params.project}}">
|
||||
<i class="icon-clock"></i>
|
||||
Tasks
|
||||
</a>
|
||||
|
@ -106,7 +106,7 @@ use Utopia\Locale\Locale;
|
|||
|
||||
<ul class="links bottom project-only">
|
||||
<li>
|
||||
<a data-ls-href="/console/settings?project={{state.params.project}}"><i class="icon-cog"></i> Settings</a>
|
||||
<a data-ls-href="/console/settings?project={{router.params.project}}"><i class="icon-cog"></i> Settings</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -125,11 +125,11 @@ use Utopia\Locale\Locale;
|
|||
data-success-triggers="projects.load" data-singleton="true">
|
||||
</div>
|
||||
|
||||
<div data-ls-if="'{{state.params.project}}' != 'undefined'" data-ls-rerender="project.reload">
|
||||
<div data-ls-if="'{{router.params.project}}' != 'undefined'" data-ls-rerender="project.reload">
|
||||
<div data-appwrite="projects.get"
|
||||
data-event="load"
|
||||
data-service="console-project"
|
||||
data-param-project-id="{{state.params.project}}"
|
||||
data-param-project-id="{{router.params.project}}"
|
||||
data-success="render,trigger"
|
||||
data-success-rerender="platform.new,platform.update,platform.delete"
|
||||
data-success-triggers="project.load">
|
||||
|
|
|
@ -3,7 +3,7 @@ use Utopia\Locale\Locale;
|
|||
?>
|
||||
<div class="cover margin-bottom-large">
|
||||
<h1 class="zone xl margin-bottom-large margin-top">
|
||||
<a data-ls-href="/console/openings/new?company={{state.params.company}}" class="button icon margin-top-tiny pull-end"><i class="icon-plus"></i> Upload</a>
|
||||
<a data-ls-href="/console/openings/new?company={{router.params.company}}" class="button icon margin-top-tiny pull-end"><i class="icon-plus"></i> Upload</a>
|
||||
|
||||
<?php echo Locale::getText('console.database.title'); ?>
|
||||
</h1>
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
<p data-ls-echo="{{console-project.description}}" data-default="Update your project description under project settings." class="note text-one-liner margin-bottom-large"> </p>
|
||||
|
||||
<ul class="margin-top margin-bottom-large clear">
|
||||
<li class="pull-start margin-end"><a data-ls-href="/console/settings?project={{state.params.project}}"><i class="icon-cog"></i> Settings</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-href="/console/settings/keys?project={{state.params.project}}"><i class="icon-key-inv"></i> API Keys</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-href="/console/settings/webhooks?project={{state.params.project}}"><i class="icon-link"></i> Webhooks</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-href="/console/settings/tasks?project={{state.params.project}}"><i class="icon-clock"></i> Tasks</a> </li>
|
||||
<!--<li class="pull-start margin-end"><a data-ls-href="/console/settings/members?project={{state.params.project}}"><i class="icon-users"></i> Members</a> </li>-->
|
||||
<li class="pull-start margin-end"><a data-ls-href="/console/settings?project={{router.params.project}}"><i class="icon-cog"></i> Settings</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-href="/console/settings/keys?project={{router.params.project}}"><i class="icon-key-inv"></i> API Keys</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-href="/console/settings/webhooks?project={{router.params.project}}"><i class="icon-link"></i> Webhooks</a> </li>
|
||||
<li class="pull-start margin-end"><a data-ls-href="/console/settings/tasks?project={{router.params.project}}"><i class="icon-clock"></i> Tasks</a> </li>
|
||||
<!--<li class="pull-start margin-end"><a data-ls-href="/console/settings/members?project={{router.params.project}}"><i class="icon-users"></i> Members</a> </li>-->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -23,7 +23,7 @@
|
|||
data-appwrite="projects.getProjectUsage"
|
||||
data-event="load"
|
||||
data-service="usage"
|
||||
data-param-project-id="{{state.params.project}}"
|
||||
data-param-project-id="{{router.params.project}}"
|
||||
data-success="render,trigger"
|
||||
data-error="render"
|
||||
data-success-triggers="usage.load">
|
||||
|
@ -126,7 +126,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<a data-ls-href="/console/settings/keys?project={{state.params.project}}" class="pull-end">Manage Your API Keys</a>
|
||||
<a data-ls-href="/console/settings/keys?project={{router.params.project}}" class="pull-end">Manage Your API Keys</a>
|
||||
|
||||
<div class="drop-list pull-start" data-ls-ui-open="" data-button-text="Add Platform" data-button-class="button" tabindex="1">
|
||||
<ul>
|
||||
|
|
|
@ -48,7 +48,7 @@ $scopes = [ // TODO sync with project list
|
|||
data-scope="console"
|
||||
data-service="console-project"
|
||||
data-event="load"
|
||||
data-param-project-id="{{state.params.project}}"
|
||||
data-param-project-id="{{router.params.project}}"
|
||||
data-success="render,trigger"
|
||||
data-error="render"
|
||||
data-success-rerender=""
|
||||
|
@ -56,14 +56,14 @@ $scopes = [ // TODO sync with project list
|
|||
data-success-triggers="project.load">
|
||||
|
||||
<div class="zone xl">
|
||||
<ul class="phases clear" data-ui-phases data-selected="{{state.params.tab}}">
|
||||
<li data-state="/console/settings?project={{state.params.project}}">
|
||||
<ul class="phases clear" data-ui-phases data-selected="{{router.params.tab}}">
|
||||
<li data-state="/console/settings?project={{router.params.project}}">
|
||||
<h2><?php echo Locale::getText('console.settings.section.overview.title'); ?></h2>
|
||||
|
||||
<form data-appwrite="projects.update"
|
||||
data-scope="console"
|
||||
data-event="submit"
|
||||
data-param-project-id="{{state.params.project}}"
|
||||
data-param-project-id="{{router.params.project}}"
|
||||
data-success="alert,trigger"
|
||||
data-success-alert="Saved project successfully"
|
||||
data-success-triggers="project.update"
|
||||
|
@ -80,7 +80,7 @@ $scopes = [ // TODO sync with project list
|
|||
|
||||
<label for="name">Project ID</label>
|
||||
<div class="input-copy">
|
||||
<input data-forms-copy type="text" disabled data-ls-echo="{{state.params.project}}" />
|
||||
<input data-forms-copy type="text" disabled data-ls-echo="{{router.params.project}}" />
|
||||
</div>
|
||||
|
||||
<label for="description">Description <small>(optional)</small></label>
|
||||
|
@ -171,7 +171,7 @@ $scopes = [ // TODO sync with project list
|
|||
</div>
|
||||
</form>
|
||||
</li>
|
||||
<li data-state="/console/settings/keys?project={{state.params.project}}">
|
||||
<li data-state="/console/settings/keys?project={{router.params.project}}">
|
||||
<h2><?php echo Locale::getText('console.settings.section.keys.title'); ?></h2>
|
||||
|
||||
<div class="zone xl"
|
||||
|
@ -179,7 +179,7 @@ $scopes = [ // TODO sync with project list
|
|||
data-scope="console"
|
||||
data-event="load"
|
||||
data-service="console-keys"
|
||||
data-param-project-id="{{state.params.project}}"
|
||||
data-param-project-id="{{router.params.project}}"
|
||||
data-success="render,trigger"
|
||||
data-success-rerender="key.new,key.update,key.delete"
|
||||
data-success-triggers="project.load"
|
||||
|
@ -316,7 +316,7 @@ $scopes = [ // TODO sync with project list
|
|||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li data-state="/console/settings/webhooks?project={{state.params.project}}">
|
||||
<li data-state="/console/settings/webhooks?project={{router.params.project}}">
|
||||
<h2><?php echo Locale::getText('console.settings.section.webhooks.title'); ?></h2>
|
||||
|
||||
<div class="zone xl"
|
||||
|
@ -324,7 +324,7 @@ $scopes = [ // TODO sync with project list
|
|||
data-scope="console"
|
||||
data-event="load"
|
||||
data-service="console-webhooks"
|
||||
data-param-project-id="{{state.params.project}}"
|
||||
data-param-project-id="{{router.params.project}}"
|
||||
data-success="render,trigger"
|
||||
data-success-rerender="webhook.new,webhook.update,webhook.delete"
|
||||
data-success-triggers="project.load"
|
||||
|
@ -514,7 +514,7 @@ $scopes = [ // TODO sync with project list
|
|||
</div>
|
||||
|
||||
</li>
|
||||
<li data-state="/console/settings/tasks?project={{state.params.project}}">
|
||||
<li data-state="/console/settings/tasks?project={{router.params.project}}">
|
||||
<h2><?php echo Locale::getText('console.settings.section.tasks.title'); ?></h2>
|
||||
|
||||
<div class="zone xl"
|
||||
|
@ -522,7 +522,7 @@ $scopes = [ // TODO sync with project list
|
|||
data-scope="console"
|
||||
data-event="load"
|
||||
data-service="console-tasks"
|
||||
data-param-project-id="{{state.params.project}}"
|
||||
data-param-project-id="{{router.params.project}}"
|
||||
data-success="render,trigger"
|
||||
data-success-rerender="task.new,task.update,task.delete"
|
||||
data-success-triggers="project.load"
|
||||
|
@ -815,7 +815,7 @@ $scopes = [ // TODO sync with project list
|
|||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li data-state="/console/settings/members?project={{state.params.project}}" data-ls-wait="project.load">
|
||||
<li data-state="/console/settings/members?project={{router.params.project}}" data-ls-wait="project.load">
|
||||
<h2><?php echo Locale::getText('console.settings.section.members.title'); ?></h2>
|
||||
|
||||
<div class="zone xl"
|
||||
|
@ -858,7 +858,7 @@ $scopes = [ // TODO sync with project list
|
|||
data-error="alert"
|
||||
data-error-alert="<?php echo Locale::getText('console.settings.section.members.invite.failure'); ?>">
|
||||
<input name="inviteId" id="inviteId" type="hidden" data-ls-echo="{{member.inviteId}}">
|
||||
<input name="redirect" type="hidden" data-ls-echo="https://{{env.DOMAIN}}/auth/join?project={{state.params.project}}" />
|
||||
<input name="redirect" type="hidden" data-ls-echo="https://{{env.DOMAIN}}/auth/join?project={{router.params.project}}" />
|
||||
|
||||
<button class="reverse"><?php echo Locale::getText('console.settings.section.members.labels.resend'); ?></button>
|
||||
</form>
|
||||
|
@ -889,7 +889,7 @@ $scopes = [ // TODO sync with project list
|
|||
data-error-alert="<?php echo Locale::getText('console.settings.section.members.invite.failure'); ?>">
|
||||
|
||||
<input name="team" id="team" type="hidden" data-ls-echo="{{console-project.teamId}}">
|
||||
<input name="redirect" type="hidden" data-ls-echo="https://{{env.DOMAIN}}/auth/join?project={{state.params.project}}" />
|
||||
<input name="redirect" type="hidden" data-ls-echo="https://{{env.DOMAIN}}/auth/join?project={{router.params.project}}" />
|
||||
|
||||
<label for="name"><?php echo Locale::getText('console.settings.section.members.labels.name'); ?> <small>(<?php echo Locale::getText('general.optional'); ?>)</small></label>
|
||||
<input name="name" id="name" type="text" autocomplete="name">
|
||||
|
|
|
@ -6,7 +6,7 @@ $providers = $this->getParam('providers', []);
|
|||
|
||||
<div class="cover margin-bottom-large">
|
||||
<h1 class="zone xl margin-bottom-large margin-top">
|
||||
<a data-ls-href="/console/openings/new?company={{state.params.company}}" class="button icon margin-top-tiny pull-end"><i class="icon-plus"></i> Upload</a>
|
||||
<a data-ls-href="/console/openings/new?company={{router.params.company}}" class="button icon margin-top-tiny pull-end"><i class="icon-plus"></i> Upload</a>
|
||||
|
||||
<?php echo Locale::getText('console.storage.title'); ?>
|
||||
</h1>
|
||||
|
@ -53,7 +53,7 @@ $providers = $this->getParam('providers', []);
|
|||
<li>
|
||||
<div class="box padding-small margin-bottom">
|
||||
|
||||
<img data-ls-src="//{{env.DOMAIN}}/v1/storage/files/{{file.$uid}}/preview?width=100&height=100&project={{state.params.project}}&mode=admin" class="pull-start avatar margin-end" />
|
||||
<img data-ls-src="//{{env.DOMAIN}}/v1/storage/files/{{file.$uid}}/preview?width=100&height=100&project={{router.params.project}}&mode=admin" class="pull-start avatar margin-end" />
|
||||
|
||||
<button class="pull-end strip margin-top-tiny"><i class="icon icon-dot-3"></i></button>
|
||||
<div data-ls-echo="{{file.name}}" data-ls-title="{{file.name}}" class="text-one-liner margin-bottom-tiny"> </div>
|
||||
|
|
|
@ -11,8 +11,8 @@ $providers = $this->getParam('providers', []);
|
|||
</div>
|
||||
|
||||
<div class="zone xl" data-ls-rerender="project.load">
|
||||
<ul class="phases clear" data-ui-phases data-selected="{{state.params.tab}}">
|
||||
<li data-state="/console/users?project={{state.params.project}}">
|
||||
<ul class="phases clear" data-ui-phases data-selected="{{router.params.tab}}">
|
||||
<li data-state="/console/users?project={{router.params.project}}">
|
||||
|
||||
<h2><?php echo Locale::getText('console.users.section.users.title'); ?></h2>
|
||||
|
||||
|
@ -96,7 +96,7 @@ $providers = $this->getParam('providers', []);
|
|||
<img src="" data-ui-gravatar="{{user.email}}" data-name="{{user.name}}" data-size="60" alt="User Avatar" class="avatar pull-start" />
|
||||
</td>
|
||||
<td data-title="Name: ">
|
||||
<a data-ls-href="/console/users/view?id={{user.$uid}}&project={{state.params.project}}" data-ls-echo="{{user.name}}"></a>
|
||||
<a data-ls-href="/console/users/view?id={{user.$uid}}&project={{router.params.project}}" data-ls-echo="{{user.name}}"></a>
|
||||
</td>
|
||||
<td data-title="Email: ">
|
||||
<span data-ls-echo="{{user.email}}" class="note"></span>
|
||||
|
@ -141,7 +141,7 @@ $providers = $this->getParam('providers', []);
|
|||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li data-state="/console/users/teams?project={{state.params.project}}">
|
||||
<li data-state="/console/users/teams?project={{router.params.project}}">
|
||||
<h2><?php echo Locale::getText('console.users.section.teams.title'); ?></h2>
|
||||
|
||||
<div>
|
||||
|
@ -265,7 +265,7 @@ $providers = $this->getParam('providers', []);
|
|||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li data-state="/console/users/providers?project={{state.params.project}}">
|
||||
<li data-state="/console/users/providers?project={{router.params.project}}">
|
||||
<h2><?php echo Locale::getText('console.users.section.providers.title'); ?></h2>
|
||||
|
||||
<div class="box margin-bottom margin-top-large">
|
||||
|
@ -278,7 +278,7 @@ $providers = $this->getParam('providers', []);
|
|||
<form data-appwrite="projects.updateOauth"
|
||||
data-scope="console"
|
||||
data-event="submit"
|
||||
data-param-project-id="{{state.params.project}}"
|
||||
data-param-project-id="{{router.params.project}}"
|
||||
data-success="alert,trigger"
|
||||
data-success-alert="Updated project OAuth settings successfully"
|
||||
data-success-triggers="project.reload,modal-close"
|
||||
|
@ -300,7 +300,7 @@ $providers = $this->getParam('providers', []);
|
|||
<p>To complete set up, add this OAuth redirect URI to your <?php echo ucfirst($provider); ?> app configuration.</p>
|
||||
|
||||
<div class="input-copy">
|
||||
<input data-forms-copy type="text" disabled data-ls-echo="https://{{env.DOMAIN}}/v1/oauth/callback/<?php echo $provider; ?>/{{state.params.project}}" class="margin-bottom-no" />
|
||||
<input data-forms-copy type="text" disabled data-ls-echo="https://{{env.DOMAIN}}/v1/oauth/callback/<?php echo $provider; ?>/{{router.params.project}}" class="margin-bottom-no" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -328,7 +328,7 @@ $providers = $this->getParam('providers', []);
|
|||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li data-state="/console/users/templates?project={{state.params.project}}">
|
||||
<li data-state="/console/users/templates?project={{router.params.project}}">
|
||||
<h2><?php echo Locale::getText('console.users.section.templates.title'); ?></h2>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
@ -5,7 +5,7 @@ use Utopia\Locale\Locale;
|
|||
<div data-appwrite="users.get"
|
||||
data-service="user"
|
||||
data-event="load"
|
||||
data-param-user-id="{{state.params.id}}"
|
||||
data-param-user-id="{{router.params.id}}"
|
||||
data-success="render,trigger"
|
||||
data-error="render"
|
||||
data-success-rerender="user.update"
|
||||
|
@ -14,7 +14,7 @@ use Utopia\Locale\Locale;
|
|||
|
||||
<div class="cover">
|
||||
<h1 class="zone xl margin-bottom-large">
|
||||
<a data-ls-href="/console/users?project={{state.params.project}}" class="back text-size-small"><i class="icon-left-open"></i> <?php echo $this->escape(Locale::getText('console.users.title')); ?></a>
|
||||
<a data-ls-href="/console/users?project={{router.params.project}}" class="back text-size-small"><i class="icon-left-open"></i> <?php echo $this->escape(Locale::getText('console.users.title')); ?></a>
|
||||
<br />
|
||||
|
||||
<span data-ls-echo="{{user.name}}"> </span>
|
||||
|
@ -22,8 +22,8 @@ use Utopia\Locale\Locale;
|
|||
</div>
|
||||
|
||||
<div class="zone xl">
|
||||
<ul class="phases clear" data-ui-phases data-selected="{{state.params.tab}}">
|
||||
<li data-state="/console/users/view?id={{state.params.id}}&project={{state.params.project}}">
|
||||
<ul class="phases clear" data-ui-phases data-selected="{{router.params.tab}}">
|
||||
<li data-state="/console/users/view?id={{router.params.id}}&project={{router.params.project}}">
|
||||
<h2>General</h2>
|
||||
|
||||
<div data-ls-if="'{{user.status}}' === '<?php echo \Auth\Auth::USER_STATUS_BLOCKED; ?>'" style="display: none" class="box padding-small danger margin-bottom-xxl">
|
||||
|
@ -55,7 +55,7 @@ use Utopia\Locale\Locale;
|
|||
data-appwrite="users.getPrefs"
|
||||
data-service="user-prefs"
|
||||
data-event="load"
|
||||
data-param-user-id="{{state.params.id}}"
|
||||
data-param-user-id="{{router.params.id}}"
|
||||
data-success="render,trigger"
|
||||
data-error="render"
|
||||
data-success-rerender=""
|
||||
|
@ -98,7 +98,7 @@ use Utopia\Locale\Locale;
|
|||
<form name="users.updateStatus" class="margin-bottom"
|
||||
data-appwrite="users.updateStatus"
|
||||
data-event="submit"
|
||||
data-param-user-id="{{state.params.id}}"
|
||||
data-param-user-id="{{router.params.id}}"
|
||||
data-success="alert,trigger"
|
||||
data-success-alert="Blocked User Successfully"
|
||||
data-success-triggers="user.update"
|
||||
|
@ -112,7 +112,7 @@ use Utopia\Locale\Locale;
|
|||
<form name="users.updateStatus" class="margin-bottom"
|
||||
data-appwrite="users.updateStatus"
|
||||
data-event="submit"
|
||||
data-param-user-id="{{state.params.id}}"
|
||||
data-param-user-id="{{router.params.id}}"
|
||||
data-success="alert,trigger"
|
||||
data-success-alert="Blocked Activated Successfully"
|
||||
data-success-triggers="user.update"
|
||||
|
@ -125,12 +125,12 @@ use Utopia\Locale\Locale;
|
|||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li data-state="/console/users/view/devices?id={{state.params.id}}&project={{state.params.project}}">
|
||||
<li data-state="/console/users/view/devices?id={{router.params.id}}&project={{router.params.project}}">
|
||||
<h2>Devices</h2>
|
||||
|
||||
<div data-appwrite="users.getSessions"
|
||||
data-service="sessions"
|
||||
data-param-user-id="{{state.params.id}}"
|
||||
data-param-user-id="{{router.params.id}}"
|
||||
data-event="load"
|
||||
data-success="render"
|
||||
data-error="render"
|
||||
|
@ -152,7 +152,7 @@ use Utopia\Locale\Locale;
|
|||
data-success-triggers="user.update"
|
||||
data-error="alert"
|
||||
data-error-alert="Failed to logout session">
|
||||
<input type="hidden" name="userId" data-ls-echo="{{state.params.id}}">
|
||||
<input type="hidden" name="userId" data-ls-echo="{{router.params.id}}">
|
||||
<input type="hidden" name="sessionId" data-ls-echo="{{session.id}}">
|
||||
<button class="danger">Logout</button>
|
||||
</form>
|
||||
|
@ -171,7 +171,7 @@ use Utopia\Locale\Locale;
|
|||
|
||||
<form class="inline margin-bottom-large"
|
||||
data-appwrite="users.deleteSessions"
|
||||
data-param-user-id="{{state.params.id}}"
|
||||
data-param-user-id="{{router.params.id}}"
|
||||
data-event="submit"
|
||||
data-success="trigger"
|
||||
data-success-triggers="user.update"
|
||||
|
@ -183,12 +183,12 @@ use Utopia\Locale\Locale;
|
|||
</div>
|
||||
|
||||
</li>
|
||||
<li data-state="/console/users/view/audit?id={{state.params.id}}&project={{state.params.project}}">
|
||||
<li data-state="/console/users/view/audit?id={{router.params.id}}&project={{router.params.project}}">
|
||||
<h2>Audit Log</h2>
|
||||
|
||||
<div data-appwrite="users.getLogs"
|
||||
data-service="logs"
|
||||
data-param-user-id="{{state.params.id}}"
|
||||
data-param-user-id="{{router.params.id}}"
|
||||
data-event="load"
|
||||
data-success="render"
|
||||
data-success-rerender="logs.load"
|
||||
|
|
|
@ -5,8 +5,8 @@ use Utopia\Locale\Locale;
|
|||
<form data-appwrite="auth.confirm"
|
||||
data-scope="console"
|
||||
data-event="load"
|
||||
data-param-token="{{state.params.token}}"
|
||||
data-param-user-id="{{state.params.userId}}"
|
||||
data-param-token="{{router.params.token}}"
|
||||
data-param-user-id="{{router.params.userId}}"
|
||||
data-success="redirect,alert,trigger"
|
||||
data-success-redirect-url="/console"
|
||||
data-success-alert="<?php echo $this->escape(Locale::getText('home.auth.confirm.success')); ?>"
|
||||
|
|
|
@ -6,26 +6,26 @@ use Utopia\Locale\Locale;
|
|||
data-appwrite="auth.join"
|
||||
data-scope="console"
|
||||
data-event="submit"
|
||||
data-param-invite-id="{{state.params.inviteId}}"
|
||||
data-param-user-id="{{state.params.userId}}"
|
||||
data-param-secret="{{state.params.secret}}"
|
||||
data-param-invite-id="{{router.params.inviteId}}"
|
||||
data-param-user-id="{{router.params.userId}}"
|
||||
data-param-secret="{{router.params.secret}}"
|
||||
data-success="redirect,alert,trigger"
|
||||
data-success-redirect-url="/console?project={{state.params.project}}"
|
||||
data-success-redirect-url="/console?project={{router.params.project}}"
|
||||
data-success-alert="<?php echo $this->escape(Locale::getText('home.auth.join.success')); ?>"
|
||||
data-success-triggers="account.update"
|
||||
data-error="alert"
|
||||
data-error-alert="<?php echo $this->escape(Locale::getText('home.auth.join.failure')); ?>">
|
||||
|
||||
<div class="text-danger margin-bottom-large" style="display: none;" data-ls-if="{{state.params.failure}} == 1"><?php echo $this->escape(Locale::getText('home.auth.join.failure')); ?></div>
|
||||
<div class="text-danger margin-bottom-large" style="display: none;" data-ls-if="{{router.params.failure}} == 1"><?php echo $this->escape(Locale::getText('home.auth.join.failure')); ?></div>
|
||||
|
||||
<input name="success" type="hidden" data-ls-echo="https://{{env.DOMAIN}}/console?company={{state.params.company}}">
|
||||
<input name="failure" type="hidden" data-ls-echo="https://{{env.DOMAIN}}/auth/join?failure=1&company={{state.params.company}}&inviteId={{state.params.inviteId}}&secret={{state.params.secret}}&userId={{state.params.userId}}">
|
||||
<input name="success" type="hidden" data-ls-echo="https://{{env.DOMAIN}}/console?company={{router.params.company}}">
|
||||
<input name="failure" type="hidden" data-ls-echo="https://{{env.DOMAIN}}/auth/join?failure=1&company={{router.params.company}}&inviteId={{router.params.inviteId}}&secret={{router.params.secret}}&userId={{router.params.userId}}">
|
||||
|
||||
<div class=""
|
||||
data-appwrite="companies.getPreview"
|
||||
data-scope="api"
|
||||
data-service="api-company"
|
||||
data-param-id="{{state.params.company}}"
|
||||
data-param-id="{{router.params.company}}"
|
||||
data-event="load"
|
||||
data-success="render,trigger"
|
||||
data-success-triggers="api-company.load"
|
||||
|
|
|
@ -21,8 +21,8 @@ use Utopia\Locale\Locale;
|
|||
data-error="alert"
|
||||
data-error-alert="<?php echo $this->escape(Locale::getText('home.auth.reset.failure')); ?>">
|
||||
|
||||
<input type="hidden" name="userId" data-ls-echo="{{state.params.userId}}">
|
||||
<input type="hidden" name="token" data-ls-echo="{{state.params.token}}">
|
||||
<input type="hidden" name="userId" data-ls-echo="{{router.params.userId}}">
|
||||
<input type="hidden" name="token" data-ls-echo="{{router.params.token}}">
|
||||
|
||||
<label><?php echo $this->escape(Locale::getText('home.auth.reset.labels.passwordA')); ?></label>
|
||||
<input name="passwordA" type="password" autocomplete="off" placeholder="" required data-forms-password-meter pattern=".{6,}" title="<?php echo $this->escape(Locale::getText('home.auth.reset.labels.password.validation')); ?>">
|
||||
|
|
|
@ -6,7 +6,7 @@ use Utopia\Locale\Locale;
|
|||
<?php echo $this->escape(Locale::getText('home.auth.signin.title')); ?>
|
||||
</h1>
|
||||
|
||||
<div class="text-danger margin-bottom-large" style="display: none;" data-ls-if="{{state.params.failure}} == 1"><?php echo $this->escape(Locale::getText('home.auth.signin.failure')); ?></div>
|
||||
<div class="text-danger margin-bottom-large" style="display: none;" data-ls-if="{{router.params.failure}} == 1"><?php echo $this->escape(Locale::getText('home.auth.signin.failure')); ?></div>
|
||||
|
||||
<div class="row responsive force-reverse">
|
||||
<div class="col span-6 oauth margin-bottom-large">
|
||||
|
|
|
@ -6,7 +6,7 @@ use Utopia\Locale\Locale;
|
|||
<?php echo $this->escape(Locale::getText('home.auth.signup.title')); ?>
|
||||
</h1>
|
||||
|
||||
<div class="text-danger margin-bottom-large" style="display: none;" data-ls-if="{{state.params.failure}} == 1"><?php echo $this->escape(Locale::getText('home.auth.signup.failure')); ?></div>
|
||||
<div class="text-danger margin-bottom-large" style="display: none;" data-ls-if="{{router.params.failure}} == 1"><?php echo $this->escape(Locale::getText('home.auth.signup.failure')); ?></div>
|
||||
|
||||
<div class="row responsive">
|
||||
<div class="col span-6 margin-bottom-large">
|
||||
|
@ -29,7 +29,7 @@ use Utopia\Locale\Locale;
|
|||
<input name="name" type="text" autocomplete="name" placeholder="" required>
|
||||
|
||||
<label><?php echo $this->escape(Locale::getText('home.auth.signup.labels.email')); ?></label>
|
||||
<input name="email" type="email" autocomplete="email" placeholder="" required data-ls-echo="{{state.params.email}}">
|
||||
<input name="email" type="email" autocomplete="email" placeholder="" required data-ls-echo="{{router.params.email}}">
|
||||
|
||||
<label><?php echo $this->escape(Locale::getText('home.auth.signup.labels.password')); ?></label>
|
||||
<input name="password" type="password" autocomplete="off" placeholder="" required data-forms-password-meter pattern=".{6,}" title="<?php echo $this->escape(Locale::getText('home.auth.signup.labels.password.validation')); ?>">
|
||||
|
|
|
@ -72,10 +72,10 @@ $env = $this->getParam('env', '');
|
|||
<?php echo $this->exec($this->getParam('head', [])); ?>
|
||||
</head>
|
||||
|
||||
<body data-ls-init data-first-from-server="true">
|
||||
<body>
|
||||
<?php echo $this->exec($this->getParam('header', [])); ?>
|
||||
|
||||
<main data-ls-scope data-acl data-analytics-pageview>
|
||||
<main data-ls-router data-first-from-server="true" data-acl data-analytics-pageview>
|
||||
<?php echo $this->exec($this->getParam('body', [])); ?>
|
||||
</main>
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ const gulpCleanCSS = require('gulp-clean-css');
|
|||
const configApp = {
|
||||
mainFile: 'app.js',
|
||||
src: [
|
||||
'public/scripts/litespeed.js',
|
||||
'public/scripts/sdk.js',
|
||||
|
||||
'public/scripts/init.js',
|
||||
|
@ -26,6 +25,8 @@ const configApp = {
|
|||
'public/scripts/services/sdk.js',
|
||||
'public/scripts/services/timezone.js',
|
||||
|
||||
'public/scripts/routes.js',
|
||||
'public/scripts/filters.js',
|
||||
'public/scripts/app.js',
|
||||
'public/scripts/appwrite.js',
|
||||
|
||||
|
@ -78,8 +79,9 @@ const configDep = {
|
|||
'public/scripts/dependencies/pell.js',
|
||||
'public/scripts/dependencies/prism.js',
|
||||
'public/scripts/dependencies/turndown.js',
|
||||
'public/scripts/dependencies/litespeed.js',
|
||||
'public/scripts/polyfills/date-input.js',
|
||||
'public/scripts/polyfills/datalist.js'
|
||||
'public/scripts/polyfills/datalist.js',
|
||||
],
|
||||
dest: './public/dist/scripts'
|
||||
};
|
||||
|
|
32
public/dist/scripts/app-all.js
vendored
32
public/dist/scripts/app-all.js
vendored
File diff suppressed because one or more lines are too long
105
public/dist/scripts/app-dep.js
vendored
105
public/dist/scripts/app-dep.js
vendored
File diff suppressed because one or more lines are too long
111
public/dist/scripts/app.js
vendored
111
public/dist/scripts/app.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,285 +1,3 @@
|
|||
window.ls.router
|
||||
.add('/auth/signin', {
|
||||
template: '/auth/signin',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/signup', {
|
||||
template: '/auth/signup',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/recovery', {
|
||||
template: '/auth/recovery',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/recovery/reset', {
|
||||
template: '/auth/recovery/reset',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/confirm', {
|
||||
template: '/auth/confirm',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/join', {
|
||||
template: '/auth/join',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/console', {
|
||||
template: '/console',
|
||||
scope: 'console'
|
||||
})
|
||||
.add('/console/account', {
|
||||
template: '/console/account',
|
||||
scope: 'console'
|
||||
})
|
||||
.add('/console/account/:tab', {
|
||||
template: '/console/account',
|
||||
scope: 'console'
|
||||
})
|
||||
.add('/console/home', {
|
||||
template: '/console/home',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/home/:tab', {
|
||||
template: '/console/home',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/platforms/:platform', {
|
||||
template: function (window) {
|
||||
return window.location.pathname;
|
||||
},
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/notifications', {
|
||||
template: '/console/notifications',
|
||||
scope: 'console'
|
||||
})
|
||||
.add('/console/settings', {
|
||||
template: '/console/settings',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/settings/:tab', {
|
||||
template: '/console/settings',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/database', {
|
||||
template: '/console/database',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/database/:tab', {
|
||||
template: '/console/database',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/storage', {
|
||||
template: '/console/storage',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/storage/:tab', {
|
||||
template: '/console/storage',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/users', {
|
||||
template: '/console/users',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/users/view', {
|
||||
template: '/console/users/view',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/users/view/:tab', {
|
||||
template: '/console/users/view',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/users/:tab', {
|
||||
template: '/console/users',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
;
|
||||
|
||||
// Filters
|
||||
|
||||
let filter = window.ls.filter;
|
||||
let date = window.ls.container.get('date');
|
||||
let timezone = window.ls.container.get('timezone');
|
||||
let markdown = window.ls.container.get('markdown');
|
||||
|
||||
filter
|
||||
.add('lowerCase', function (value) {
|
||||
return value.toLowerCase();
|
||||
})
|
||||
.add('date', function (value, options) {
|
||||
return date.format('Y-m-d', value);
|
||||
})
|
||||
.add('date-time', function (value, options) {
|
||||
return date.format('Y-m-d H:i', value);
|
||||
})
|
||||
.add('date-text', function (value, options) {
|
||||
return date.format('d M Y', value);
|
||||
})
|
||||
.add('date-long', function (value, options) {
|
||||
return date.format('l, j F, H:i', value);
|
||||
})
|
||||
.add('min2hum', function (value, options) {
|
||||
if(value >= 60) {
|
||||
if(value % 60 === 0) {
|
||||
return Math.ceil(value / 60) + ' hours';
|
||||
}
|
||||
else {
|
||||
return Math.ceil(value / 60) + ' hours and ' + (value % 60) + ' minutes';
|
||||
}
|
||||
}
|
||||
|
||||
return value + ' minutes';
|
||||
})
|
||||
.add('ms2hum', function (value, options) {
|
||||
let temp = value;
|
||||
const years = Math.floor( temp / 31536000 ),
|
||||
days = Math.floor( ( temp %= 31536000 ) / 86400 ),
|
||||
hours = Math.floor( ( temp %= 86400 ) / 3600 ),
|
||||
minutes = Math.floor( ( temp %= 3600 ) / 60 ),
|
||||
seconds = temp % 60;
|
||||
|
||||
if ( days || hours || seconds || minutes ) {
|
||||
return ( years ? years + "y " : "" ) +
|
||||
( days ? days + "d " : "" ) +
|
||||
( hours ? hours + "h " : "" ) +
|
||||
( minutes ? minutes + "m " : "" ) +
|
||||
Number.parseFloat( seconds ).toFixed(0) + "s";
|
||||
}
|
||||
|
||||
return "< 1s";
|
||||
})
|
||||
.add('nl2p', function (value, options) {
|
||||
let result = "<p>" + value + "</p>";
|
||||
result = result.replace(/\r\n\r\n/g, "</p><p>").replace(/\n\n/g, "</p><p>");
|
||||
result = result.replace(/\r\n/g, "<br />").replace(/\n/g, "<br />");
|
||||
|
||||
return result;
|
||||
})
|
||||
.add('markdown', function (value, options) {
|
||||
return markdown.render(value);
|
||||
})
|
||||
.add('id2name', function (value, options) {
|
||||
let members = container.get('members');
|
||||
|
||||
if(members === null) {
|
||||
return '';
|
||||
}
|
||||
|
||||
for (let y = 0; y < members.length; y++) {
|
||||
if(members[y]['$uid'] === value) {
|
||||
value = members[y].name;
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
})
|
||||
.add('id2role', function (value, options) {
|
||||
if(APP_ENV.ROLES[value]) {
|
||||
return APP_ENV.ROLES[value];
|
||||
}
|
||||
|
||||
return '';
|
||||
})
|
||||
.add('humanFileSize', function (bytes) {
|
||||
if(!bytes) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
let thresh = 1000;
|
||||
|
||||
if(Math.abs(bytes) < thresh) {
|
||||
return bytes + ' B';
|
||||
}
|
||||
|
||||
let units = ['kB','MB','GB','TB','PB','EB','ZB','YB'];
|
||||
let u = -1;
|
||||
|
||||
do {
|
||||
bytes /= thresh;
|
||||
++u;
|
||||
} while(Math.abs(bytes) >= thresh && u < units.length - 1);
|
||||
|
||||
return bytes.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;
|
||||
});
|
||||
|
||||
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) {
|
||||
// set places to false to not round
|
||||
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
|
||||
}
|
||||
if(maxPlaces !== false) {
|
||||
let test = new RegExp('\\.\\d{' + (maxPlaces + 1) + ',}$')
|
||||
if(test.test(('' + rounded))) {
|
||||
rounded = rounded.toFixed(maxPlaces)
|
||||
}
|
||||
}
|
||||
if(forcePlaces !== false) {
|
||||
rounded = Number(rounded).toFixed(forcePlaces)
|
||||
}
|
||||
return rounded + abbr
|
||||
}
|
||||
|
||||
// Views
|
||||
|
||||
|
@ -289,7 +7,6 @@ window.ls.container.get('view')
|
|||
controller: function(element, document, router, alerts) {
|
||||
document.body.classList.remove('console');
|
||||
document.body.classList.remove('home');
|
||||
console.log(router.getCurrent());
|
||||
|
||||
document.body.classList.add(router.getCurrent().view.scope);
|
||||
|
||||
|
@ -304,7 +21,7 @@ window.ls.container.get('view')
|
|||
|
||||
// Special case for console index page
|
||||
|
||||
if('/console' === state.getCurrent().path) {
|
||||
if('/console' === router.getCurrent().path) {
|
||||
document.body.classList.add('index');
|
||||
}
|
||||
else {
|
||||
|
|
170
public/scripts/filters.js
Normal file
170
public/scripts/filters.js
Normal file
|
@ -0,0 +1,170 @@
|
|||
|
||||
let date = window.ls.container.get('date');
|
||||
let timezone = window.ls.container.get('timezone');
|
||||
let markdown = window.ls.container.get('markdown');
|
||||
|
||||
window.ls.filter
|
||||
.add('lowerCase', function (value) {
|
||||
return value.toLowerCase();
|
||||
})
|
||||
.add('date', function (value, options) {
|
||||
return date.format('Y-m-d', value);
|
||||
})
|
||||
.add('date-time', function (value, options) {
|
||||
return date.format('Y-m-d H:i', value);
|
||||
})
|
||||
.add('date-text', function (value, options) {
|
||||
return date.format('d M Y', value);
|
||||
})
|
||||
.add('date-long', function (value, options) {
|
||||
return date.format('l, j F, H:i', value);
|
||||
})
|
||||
.add('min2hum', function (value, options) {
|
||||
if(value >= 60) {
|
||||
if(value % 60 === 0) {
|
||||
return Math.ceil(value / 60) + ' hours';
|
||||
}
|
||||
else {
|
||||
return Math.ceil(value / 60) + ' hours and ' + (value % 60) + ' minutes';
|
||||
}
|
||||
}
|
||||
|
||||
return value + ' minutes';
|
||||
})
|
||||
.add('ms2hum', function (value, options) {
|
||||
let temp = value;
|
||||
const years = Math.floor( temp / 31536000 ),
|
||||
days = Math.floor( ( temp %= 31536000 ) / 86400 ),
|
||||
hours = Math.floor( ( temp %= 86400 ) / 3600 ),
|
||||
minutes = Math.floor( ( temp %= 3600 ) / 60 ),
|
||||
seconds = temp % 60;
|
||||
|
||||
if ( days || hours || seconds || minutes ) {
|
||||
return ( years ? years + "y " : "" ) +
|
||||
( days ? days + "d " : "" ) +
|
||||
( hours ? hours + "h " : "" ) +
|
||||
( minutes ? minutes + "m " : "" ) +
|
||||
Number.parseFloat( seconds ).toFixed(0) + "s";
|
||||
}
|
||||
|
||||
return "< 1s";
|
||||
})
|
||||
.add('nl2p', function (value, options) {
|
||||
let result = "<p>" + value + "</p>";
|
||||
result = result.replace(/\r\n\r\n/g, "</p><p>").replace(/\n\n/g, "</p><p>");
|
||||
result = result.replace(/\r\n/g, "<br />").replace(/\n/g, "<br />");
|
||||
|
||||
return result;
|
||||
})
|
||||
.add('markdown', function (value, options) {
|
||||
return markdown.render(value);
|
||||
})
|
||||
.add('id2name', function (value, options) {
|
||||
let members = container.get('members');
|
||||
|
||||
if(members === null) {
|
||||
return '';
|
||||
}
|
||||
|
||||
for (let y = 0; y < members.length; y++) {
|
||||
if(members[y]['$uid'] === value) {
|
||||
value = members[y].name;
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
})
|
||||
.add('id2role', function (value, options) {
|
||||
if(APP_ENV.ROLES[value]) {
|
||||
return APP_ENV.ROLES[value];
|
||||
}
|
||||
|
||||
return '';
|
||||
})
|
||||
.add('humanFileSize', function (bytes) {
|
||||
if(!bytes) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
let thresh = 1000;
|
||||
|
||||
if(Math.abs(bytes) < thresh) {
|
||||
return bytes + ' B';
|
||||
}
|
||||
|
||||
let units = ['kB','MB','GB','TB','PB','EB','ZB','YB'];
|
||||
let u = -1;
|
||||
|
||||
do {
|
||||
bytes /= thresh;
|
||||
++u;
|
||||
} while(Math.abs(bytes) >= thresh && u < units.length - 1);
|
||||
|
||||
return bytes.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;
|
||||
});
|
||||
|
||||
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) {
|
||||
// set places to false to not round
|
||||
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
|
||||
}
|
||||
if(maxPlaces !== false) {
|
||||
let test = new RegExp('\\.\\d{' + (maxPlaces + 1) + ',}$')
|
||||
if(test.test(('' + rounded))) {
|
||||
rounded = rounded.toFixed(maxPlaces)
|
||||
}
|
||||
}
|
||||
if(forcePlaces !== false) {
|
||||
rounded = Number(rounded).toFixed(forcePlaces)
|
||||
}
|
||||
return rounded + abbr
|
||||
}
|
109
public/scripts/routes.js
Normal file
109
public/scripts/routes.js
Normal file
|
@ -0,0 +1,109 @@
|
|||
window.ls.router
|
||||
.add('/auth/signin', {
|
||||
template: '/auth/signin',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/signup', {
|
||||
template: '/auth/signup',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/recovery', {
|
||||
template: '/auth/recovery',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/recovery/reset', {
|
||||
template: '/auth/recovery/reset',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/confirm', {
|
||||
template: '/auth/confirm',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/auth/join', {
|
||||
template: '/auth/join',
|
||||
scope: 'home'
|
||||
})
|
||||
.add('/console', {
|
||||
template: '/console',
|
||||
scope: 'console'
|
||||
})
|
||||
.add('/console/account', {
|
||||
template: '/console/account',
|
||||
scope: 'console'
|
||||
})
|
||||
.add('/console/account/:tab', {
|
||||
template: '/console/account',
|
||||
scope: 'console'
|
||||
})
|
||||
.add('/console/home', {
|
||||
template: '/console/home',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/home/:tab', {
|
||||
template: '/console/home',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/platforms/:platform', {
|
||||
template: function (window) {
|
||||
return window.location.pathname;
|
||||
},
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/notifications', {
|
||||
template: '/console/notifications',
|
||||
scope: 'console'
|
||||
})
|
||||
.add('/console/settings', {
|
||||
template: '/console/settings',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/settings/:tab', {
|
||||
template: '/console/settings',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/database', {
|
||||
template: '/console/database',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/database/:tab', {
|
||||
template: '/console/database',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/storage', {
|
||||
template: '/console/storage',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/storage/:tab', {
|
||||
template: '/console/storage',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/users', {
|
||||
template: '/console/users',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/users/view', {
|
||||
template: '/console/users/view',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/users/view/:tab', {
|
||||
template: '/console/users/view',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
.add('/console/users/:tab', {
|
||||
template: '/console/users',
|
||||
scope: 'console',
|
||||
project: true
|
||||
})
|
||||
;
|
|
@ -1,11 +1,11 @@
|
|||
(function (window) {
|
||||
"use strict";
|
||||
|
||||
window.ls.container.set('sdk', function (window, state) {
|
||||
window.ls.container.set('sdk', function (window, router) {
|
||||
var sdk = new window.AppwriteSDK();
|
||||
|
||||
sdk.config.domain = APP_ENV.API;
|
||||
sdk.config.project = state.params.project || null;
|
||||
sdk.config.project = router.params.project || null;
|
||||
sdk.config.locale = APP_ENV.LOCALE;
|
||||
sdk.config.mode = 'admin';
|
||||
|
||||
|
|
Loading…
Reference in a new issue