mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2025-07-14 00:04:59 +00:00
First working version
This commit is contained in:
commit
5cd40c63ed
172 changed files with 17903 additions and 0 deletions
135
web-vault/app/views/apps.html
Normal file
135
web-vault/app/views/apps.html
Normal file
|
@ -0,0 +1,135 @@
|
|||
<section class="content-header">
|
||||
<h1>
|
||||
Apps
|
||||
<small>for all of your devices</small>
|
||||
</h1>
|
||||
</section>
|
||||
<section class="content">
|
||||
<div class="box box-default box-apps">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Desktop/Browser</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<ul class="fa-ul">
|
||||
<li>
|
||||
<a href="https://chrome.google.com/webstore/detail/bitwarden-free-password-m/nngceckbapebfimnlniiiahkandclblb" target="_blank">
|
||||
<i class="fa fa-chrome fa-lg fa-fw fa-li"></i> Google Chrome
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://addons.mozilla.org/firefox/addon/bitwarden-password-manager/" target="_blank">
|
||||
<i class="fa fa-firefox fa-lg fa-fw fa-li"></i> Mozilla Firefox
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://addons.opera.com/extensions/details/bitwarden-free-password-manager/" target="_blank">
|
||||
<i class="fa fa-opera fa-lg fa-fw fa-li"></i> Opera
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.microsoft.com/store/p/bitwarden-free-password-manager/9p6kxl0svnnl" target="_blank">
|
||||
<i class="fa fa-edge fa-lg fa-fw fa-li"></i> Microsoft Edge
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
Others:
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://chrome.google.com/webstore/detail/bitwarden-free-password-m/nngceckbapebfimnlniiiahkandclblb" target="_blank">
|
||||
Vivaldi
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://brave.com/" target="_blank">
|
||||
Brave
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://addons.mozilla.org/firefox/addon/bitwarden-password-manager/" target="_blank">
|
||||
Tor Browser
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box box-default box-apps">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Mobile</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<ul class="fa-ul">
|
||||
<li>
|
||||
<a href="https://itunes.apple.com/app/bitwarden-free-password-manager/id1137397744?mt=8" target="_blank">
|
||||
<i class="fa fa-apple fa-lg fa-fw fa-li"></i> iOS
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://play.google.com/store/apps/details?id=com.x8bit.bitwarden" target="_blank">
|
||||
<i class="fa fa-android fa-lg fa-fw fa-li"></i> Android
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ul class="fa-ul">
|
||||
<li>
|
||||
<a href="#" stop-click>
|
||||
<i class="fa fa-windows fa-lg fa-fw fa-li"></i> Windows
|
||||
<small class="text-muted">(coming soon)</small>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box box-default box-apps">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Other</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<ul class="fa-ul">
|
||||
<li>
|
||||
<a href="#" stop-click>
|
||||
<i class="fa fa-windows fa-lg fa-fw fa-li"></i> Desktop Windows
|
||||
<small class="text-muted">(coming soon)</small>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" stop-click>
|
||||
<i class="fa fa-apple fa-lg fa-fw fa-li"></i> Desktop macOS
|
||||
<small class="text-muted">(coming soon)</small>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ul class="fa-ul">
|
||||
<li>
|
||||
<a href="#" stop-click>
|
||||
<i class="fa fa-linux fa-lg fa-fw fa-li"></i> Desktop Linux
|
||||
<small class="text-muted">(coming soon)</small>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" stop-click>
|
||||
<i class="fa fa-terminal fa-lg fa-fw fa-li"></i> CLI
|
||||
<small class="text-muted">(coming soon)</small>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
10
web-vault/app/views/backendLayout.html
Normal file
10
web-vault/app/views/backendLayout.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
<div class="wrapper toast-target">
|
||||
<div ui-view></div>
|
||||
|
||||
<footer class="main-footer">
|
||||
<div class="pull-right hidden-xs">
|
||||
<b>Version</b> {{main.version}}
|
||||
</div>
|
||||
<strong>Copyright © <span ng-bind="currentYear"></span></strong>, 8bit Solutions LLC
|
||||
</footer>
|
||||
</div>
|
2
web-vault/app/views/frontendLayout.html
Normal file
2
web-vault/app/views/frontendLayout.html
Normal file
|
@ -0,0 +1,2 @@
|
|||
<div class="toast-target" ui-view>
|
||||
</div>
|
118
web-vault/app/views/organizationLayout.html
Normal file
118
web-vault/app/views/organizationLayout.html
Normal file
|
@ -0,0 +1,118 @@
|
|||
<header class="main-header" ng-controller="topNavController as topNav">
|
||||
<a ui-sref="backend.user.vault" class="logo">
|
||||
<span class="logo-mini"><i class="fa fa-shield"></i></span>
|
||||
<span class="logo-lg"><i class="fa fa-shield"></i> <b>bit</b>warden</span>
|
||||
</a>
|
||||
<nav class="navbar navbar-static-top" role="navigation">
|
||||
<a class="sidebar-toggle" data-toggle="offcanvas" role="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<div class="navbar-custom-menu">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a ui-sref="frontend.logout">Log Out</a></li>
|
||||
<li class="control-sidebar-show">
|
||||
<a href="#" stop-click ng-click="toggleControlSidebar()"><i class="fa fa-bars"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<aside class="main-sidebar" ng-controller="sideNavController">
|
||||
<section class="sidebar">
|
||||
<div class="user-panel">
|
||||
<div class="pull-left image">
|
||||
<letter-avatar data="{{orgProfile.name}}" avclass="img-responsive img-rounded" round="false"></letter-avatar>
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>{{orgProfile.name}}</p>
|
||||
<a ui-sref="backend.user.vault"><i class="fa fa-arrow-left"></i> Return to my vault</a>
|
||||
</div>
|
||||
</div>
|
||||
<form class="sidebar-form">
|
||||
<label for="search" class="sr-only">Search</label>
|
||||
<div class="form-group has-feedback">
|
||||
<input type="text" id="search" class="form-control" placeholder="Search org. vault..."
|
||||
ng-focus="searchOrganizationVault()" ng-model="main.searchVaultText" />
|
||||
<span class="fa fa-search form-control-feedback" aria-hidden="true"></span>
|
||||
</div>
|
||||
</form>
|
||||
<ul class="sidebar-menu">
|
||||
<li class="header">MY ORGANIZATION</li>
|
||||
<li ng-class="{active: $state.is('backend.org.dashboard')}">
|
||||
<a ui-sref="backend.org.dashboard({orgId: params.orgId})">
|
||||
<i class="fa fa-dashboard fa-fw"></i> <span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.org.vault')}">
|
||||
<a ui-sref="backend.org.vault({orgId: params.orgId})">
|
||||
<i class="fa fa-lock fa-fw"></i> <span>Vault</span>
|
||||
</a>
|
||||
<ul class="treeview-menu" ng-class="{'menu-open': $state.includes('backend.org.vault')}">
|
||||
<li>
|
||||
<a href="#" stop-click ng-click="addOrganizationCipher()">
|
||||
<i class="fa fa-plus-circle fa-fw"></i> New Item
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.org.collections')}">
|
||||
<a ui-sref="backend.org.collections({orgId: params.orgId})">
|
||||
<i class="fa fa-cubes fa-fw"></i> <span>Collections</span>
|
||||
</a>
|
||||
<ul class="treeview-menu" ng-class="{'menu-open': $state.includes('backend.org.collections')}">
|
||||
<li>
|
||||
<a href="#" stop-click ng-click="addOrganizationCollection()">
|
||||
<i class="fa fa-plus-circle fa-fw"></i> New Collection
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.org.people')}">
|
||||
<a ui-sref="backend.org.people({orgId: params.orgId})">
|
||||
<i class="fa fa-users fa-fw"></i> <span>People</span>
|
||||
</a>
|
||||
<ul class="treeview-menu" ng-class="{'menu-open': $state.includes('backend.org.people')}">
|
||||
<li>
|
||||
<a href="#" stop-click ng-click="inviteOrganizationUser()">
|
||||
<i class="fa fa-plus-circle fa-fw"></i> Invite a User
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.org.groups')}" ng-if="orgProfile.useGroups">
|
||||
<a ui-sref="backend.org.groups({orgId: params.orgId})">
|
||||
<i class="fa fa-sitemap fa-fw"></i> <span>Groups</span>
|
||||
</a>
|
||||
<ul class="treeview-menu" ng-class="{'menu-open': $state.includes('backend.org.groups')}">
|
||||
<li>
|
||||
<a href="#" stop-click ng-click="addOrganizationGroup()">
|
||||
<i class="fa fa-plus-circle fa-fw"></i> New Group
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.org.events')}" ng-if="orgProfile.useEvents">
|
||||
<a ui-sref="backend.org.events({orgId: params.orgId})">
|
||||
<i class="fa fa-file-text-o fa-fw"></i> <span>Event Logs</span>
|
||||
</a>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.org.billing')}" ng-if="isOrgOwner(orgProfile)">
|
||||
<a ui-sref="backend.org.billing({orgId: params.orgId})">
|
||||
<i class="fa fa-credit-card fa-fw"></i> Billing & Licensing
|
||||
</a>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.org.settings')}" ng-if="isOrgOwner(orgProfile)">
|
||||
<a ui-sref="backend.org.settings({orgId: params.orgId})">
|
||||
<i class="fa fa-gears fa-fw"></i> <span>Settings</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</aside>
|
||||
|
||||
<div class="content-wrapper" ui-view>
|
||||
</div>
|
13
web-vault/app/views/paidOrgRequired.html
Normal file
13
web-vault/app/views/paidOrgRequired.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<div class="modal-header">
|
||||
<button type="button" class="close" ng-click="close()" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title"><i class="fa fa-star"></i> Paid Plan Required</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
This feature is not available for free organizations. Switch to a paid plan to unlock more features.
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-primary btn-flat" ng-click="go()" ng-if="admin">
|
||||
Upgrade Organization
|
||||
</button>
|
||||
<button type="button" class="btn btn-default btn-flat" ng-click="close()">Close</button>
|
||||
</div>
|
36
web-vault/app/views/premiumRequired.html
Normal file
36
web-vault/app/views/premiumRequired.html
Normal file
|
@ -0,0 +1,36 @@
|
|||
<div class="modal-header">
|
||||
<button type="button" class="close" ng-click="close()" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title"><i class="fa fa-star"></i> Premium <span class="hidden-xs">Membership</span> Required</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>This features requires a premium membership. Sign up for premium and get:</p>
|
||||
<ul class="fa-ul">
|
||||
<li>
|
||||
<i class="fa-li fa fa-check text-green"></i>
|
||||
1 GB of encrypted file storage.
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa-li fa fa-check text-green"></i>
|
||||
Additional two-step login options such as YubiKey, FIDO U2F, and Duo.
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa-li fa fa-check text-green"></i>
|
||||
TOTP verification code (2FA) generator for logins in your vault.
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa-li fa fa-check text-green"></i>
|
||||
Priority customer support.
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa-li fa fa-check text-green"></i>
|
||||
All future premium features. More coming soon!
|
||||
</li>
|
||||
</ul>
|
||||
All for just <b>{{10 | currency:"$":0}}</b> /year.
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-primary btn-flat" ng-click="go()">
|
||||
Get Premium
|
||||
</button>
|
||||
<button type="button" class="btn btn-default btn-flat" ng-click="close()">Close</button>
|
||||
</div>
|
168
web-vault/app/views/userLayout.html
Normal file
168
web-vault/app/views/userLayout.html
Normal file
|
@ -0,0 +1,168 @@
|
|||
<header class="main-header" ng-controller="topNavController as topNav">
|
||||
<a ui-sref="backend.user.vault" class="logo">
|
||||
<span class="logo-mini"><i class="fa fa-shield"></i></span>
|
||||
<span class="logo-lg"><i class="fa fa-shield"></i> <b>bit</b>warden</span>
|
||||
</a>
|
||||
<nav class="navbar navbar-static-top" role="navigation">
|
||||
<a class="sidebar-toggle" data-toggle="offcanvas" role="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<div class="navbar-custom-menu">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a ui-sref="frontend.logout">Log Out</a></li>
|
||||
<li class="control-sidebar-show">
|
||||
<a href="#" stop-click ng-click="toggleControlSidebar()"><i class="fa fa-bars"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<aside class="main-sidebar" ng-controller="sideNavController as sideNav">
|
||||
<section class="sidebar">
|
||||
<div class="user-panel">
|
||||
<div class="pull-left image">
|
||||
<letter-avatar data="{{name}}" avclass="img-responsive"></letter-avatar>
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>{{name}}</p>
|
||||
<a ui-sref="frontend.logout">Log Out</a>
|
||||
</div>
|
||||
</div>
|
||||
<form class="sidebar-form">
|
||||
<label for="search" class="sr-only">Search</label>
|
||||
<div class="form-group has-feedback">
|
||||
<input type="text" id="search" class="form-control" placeholder="Search my vault..."
|
||||
ng-focus="searchVault()" ng-model="main.searchVaultText" />
|
||||
<span class="fa fa-search form-control-feedback" aria-hidden="true"></span>
|
||||
</div>
|
||||
</form>
|
||||
<ul class="sidebar-menu">
|
||||
<li class="header">WEB VAULT</li>
|
||||
<li class="treeview" ng-class="{active: $state.includes('backend.user.vault')}">
|
||||
<a ui-sref="backend.user.vault"><i class="fa fa-lock fa-fw"></i> <span>My Vault</span></a>
|
||||
<ul class="treeview-menu" ng-class="{'menu-open': $state.includes('backend.user.vault')}">
|
||||
<li>
|
||||
<a href="#" stop-click ng-click="addCipher()">
|
||||
<i class="fa fa-plus-circle fa-fw"></i> New Item
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" stop-click ng-click="addFolder()">
|
||||
<i class="fa fa-folder fa-fw"></i> New Folder
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="treeview" ng-class="{active: $state.is('backend.user.tools') ||
|
||||
$state.is('backend.user.reportsBreach')}">
|
||||
<a ui-sref="backend.user.tools"><i class="fa fa-wrench fa-fw"></i> <span>Tools</span></a>
|
||||
<ul class="treeview-menu" ng-class="{'menu-open': $state.is('backend.user.tools') ||
|
||||
$state.is('backend.user.reportsBreach')}">
|
||||
<li ng-class="{active: $state.is('backend.user.reportsBreach')}">
|
||||
<a ui-sref="backend.user.reportsBreach">
|
||||
<i class="fa fa-circle-o fa-fw"></i> Data Breach Report
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="treeview"
|
||||
ng-class="{active: $state.is('backend.user.settings') || $state.is('backend.user.settingsDomains') ||
|
||||
$state.is('backend.user.settingsCreateOrg') || $state.is('backend.user.settingsTwoStep') ||
|
||||
$state.is('backend.user.settingsPremium') || $state.is('backend.user.settingsBilling')}">
|
||||
<a ui-sref="backend.user.settings"><i class="fa fa-cogs fa-fw"></i> <span>Settings</span></a>
|
||||
<ul class="treeview-menu" ng-class="{'menu-open': $state.is('backend.user.settings') ||
|
||||
$state.is('backend.user.settingsDomains') || $state.is('backend.user.settingsCreateOrg')}">
|
||||
<li ng-class="{active: $state.is('backend.user.settingsPremium')}">
|
||||
<a ui-sref="backend.user.settingsPremium" ng-if="!main.userProfile || !main.userProfile.premium">
|
||||
<i class="fa fa-star fa-fw"></i> Go Premium!
|
||||
</a>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.user.settingsCreateOrg')}">
|
||||
<a ui-sref="backend.user.settingsCreateOrg">
|
||||
<i class="fa fa-plus-circle fa-fw"></i> New Organization
|
||||
</a>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.user.settingsBilling')}">
|
||||
<a ui-sref="backend.user.settingsBilling" ng-if="main.userProfile && main.userProfile.premium">
|
||||
<i class="fa fa-circle-o fa-fw"></i> Billing & Licensing
|
||||
</a>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.user.settingsTwoStep')}">
|
||||
<a ui-sref="backend.user.settingsTwoStep">
|
||||
<i class="fa fa-fw fa-circle-o"></i> Two-step Login
|
||||
</a>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.user.settingsDomains')}">
|
||||
<a ui-sref="backend.user.settingsDomains">
|
||||
<i class="fa fa-fw fa-circle-o"></i> Domain Rules
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li ng-class="{active: $state.is('backend.user.apps')}">
|
||||
<a ui-sref="backend.user.apps">
|
||||
<small class="label pull-right bg-green">FREE</small>
|
||||
<i class="fa fa-download fa-fw"></i> <span>Get the Apps</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://help.bitwarden.com/" target="_blank"
|
||||
analytics-on="click" analytics-event="Clicked Get Help">
|
||||
<i class="fa fa-info-circle fa-fw"></i> <span>Get Help</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="header">
|
||||
ORGANIZATIONS
|
||||
</li>
|
||||
</ul>
|
||||
<div class="subsection">
|
||||
<div ng-if="!orgs.length" class="hidden-collapsed">
|
||||
<p>You do not belong to any organizations.</p>
|
||||
<a ui-sref="backend.user.settingsCreateOrg" class="btn btn-default btn-flat btn-block">
|
||||
Create an Organization
|
||||
</a>
|
||||
</div>
|
||||
<ul class="list-inline" ng-if="orgs.length">
|
||||
<li ng-repeat="org in orgs | orderBy: ['name'] track by org.id">
|
||||
<a href="#" stop-click ng-click="viewOrganization(org)">
|
||||
<letter-avatar data="{{org.name}}" avclass="img-responsive img-rounded" round="false"
|
||||
avheight="40" avwidth="40" bgcolor="{{orgIconBgColor}}" avborder="true"
|
||||
borderstyle="{{orgIconBorder}}" textcolor="{{orgIconTextColor}}"></letter-avatar>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</aside>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="alert alert-danger alert-notification" ng-if="main.outdatedBrowser" ng-click="updateBrowser()">
|
||||
<h4><i class="fa fa-warning fa-fw"></i> Update Your Browser</h4>
|
||||
You are using an unsupported web browser. The web vault may not function properly.
|
||||
<u>Update your browser now</u>.
|
||||
</div>
|
||||
<div class="alert alert-warning alert-notification" ng-click="updateKey()" ng-if="!main.usingEncKey">
|
||||
<h4><i class="fa fa-key fa-fw"></i> Update Your Encryption Key</h4>
|
||||
You are currently using an outdated encryption scheme.
|
||||
<a href="#" stop-click>Learn more and update now</a>.
|
||||
</div>
|
||||
<div class="alert alert-warning alert-notification" ng-click="verifyEmail()"
|
||||
ng-if="main.usingEncKey && main.userProfile && !main.userProfile.emailVerified">
|
||||
<h4><i class="fa fa-envelope fa-fw"></i> Verify Your Email</h4>
|
||||
<div ng-if="!verifyEmailSent">
|
||||
Verify your account's email address to unlock access to all features.
|
||||
<a href="#" stop-click>Send verification email now</a>.
|
||||
<i class="fa fa-spin fa-refresh" ng-if="sendingVerify"></i>
|
||||
</div>
|
||||
<div ng-if="verifyEmailSent">
|
||||
Check your email inbox for a verification link.
|
||||
<a href="#" stop-click>Send verification email again</a>.
|
||||
<i class="fa fa-spin fa-refresh" ng-if="sendingVerify"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div ui-view></div>
|
||||
</div>
|
Loading…
Add table
Add a link
Reference in a new issue