| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/readjs/build/ |
Upload File : |
(function () {
'use strict';
angular
.module('core')
.run(templates);
templates.$inject = ['$templateCache'];
function templates($templateCache) {
$templateCache.put('modules/APIs/client/views/apis.client.view.html', '<section>\n <div class="page-header apitopsec">\n <br><br><h1><font face="helvetica" color="white"> User Management APIs</font></h1><br><br>\n </div>\n\n <div class="row">\n <nav class="col-sm-2">\n <ul class="nav nav-pills nav-stacked">\n <li ui-sref-active="active">\n <a ui-sref="apis.overview">Overview</a>\n </li>\n <li ui-sref-active="active">\n <a ui-sref="apis.list">API List</a>\n </li>\n <li ui-sref-active="active">\n <a ui-sref="apis.examples">Examples</a>\n </li>\n </ul>\n </nav>\n <div class="col-sm-8" style="float: left">\n <div ui-view></div>\n </div>\n </div>\n</section>\n\n');
$templateCache.put('modules/APIs/client/views/examples-apis.client.view.html', '<section class="row">\n <div class="col-xs-offset-1 col-xs-10 col-md-offset-6 col-md-10">\n <b><h3 class="title" id="list">Examples</h3></b>\n <u><h4>Get Access Token</h4></u>\n Method: POST\n <br>URL: http://api.supbill.com/api/oauth/token\n <br>Parameters: grant_type=password client_id=<client_id> client_secret=<client_secret> username=<user_name> password=<user_password>\n <u><h4 class="title">Get App Users Pages Number</h4></u>\n Method: GET\n <br>URL: http://api.supbill.com/api/appclients/pages\n <br>Parameters: resultsPerPage=<How many App Users per page> Authorization:\'Bearer <token value>\'\n <u><h4>List the n-th page of the App Users</h4></u>\n Method: GET\n <br>URL: http://api.supbill.com/api/appclients/:<page_number>\n <br>Parameters: resultsPerPage=<How many App Users per page> Authorization:\'Bearer <token value>\'\n <br><a href="#Top">Top</a>\n <u><h4>Add An App User</h4></u>\n Method: POST\n <br>URL: http://api.supbill.com/api/appclients/appusers/\n <br>Parameters: Authorization:\'Bearer <token value>\' firstName=<First Name of App User> lastName=<Last Name of App User> loginName=<Login Name for App User> password=<App User Password> email=<Email of the App User>\n <br><a href="#Top">Top</a>\n <u><h4>Edit and Update An App User</h4></u>\n Method: PUT\n <br>URL: http://api.supbill.com/api/appclients/appusers/\n <br>Parameters: Authorization:\'Bearer <token value>\' firstName=<First Name of App User> lastName=<Last Name of App User> password=<App User Password>\n <br><a href="#Top">Top</a>\n <u><h4>Login An App User</h4></u>\n Method: POST\n <br>URL: http://api.supbill.com/api/appclients/appusers/login\n <br>Parameters: Authorization:\'Bearer <token value>\' loginName=<Login Name for App User>\n <u><h4>Logout An App User</h4></u>\n Method: POST\n <br>URL: http://api.supbill.com/api/appclients/appusers/logout\n <br>Parameters: Authorization:\'Bearer <token value>\' loginName=<Login Name for App User>\n <br><a href="#Top">Top</a>\n\n \n</div>\n</section>\n');
$templateCache.put('modules/APIs/client/views/list-apis.client.view.html', '<section class="row">\n <div class="col-xs-offset-1 col-xs-10 col-md-offset-6 col-md-10">\n <b><h3 class="title" id="list">API List</h3></b>\n <div class="page-header">\n <u><h4>Get Access Token</h4></u>\n This is the authentication step before calling later APIs. Normally, this calling is the first step when you want to implement user management with Sup-Bill APIs. By calling this API, you can get an Access Token. This 5-minute life long token give you the authentication to access all the content of the App Client.\n <br><b>Method</b> <code>POST</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/oauth/token</code>\n <br><b>Parameters</b> \n <br><li><code>grant_type</code> Hardcoded as <code>password</code> for all requests\n <br><li><code>client_id</code> This is the Id of this App Client who is asking for access token\n <br><li><code>client_secret</code> This is the secret of this App Client who is asking for access token\n <br><li><code>username</code> This is the user\'s login Id who possesses this App Client\n <br><li><code>password</code> Password for the user\n <br><a href="#Top">Top</a>\n </div>\n <div class="page-header">\n <u><h4>Refrsh Access Token</h4></u>\n <b>Method</b> <code>POST</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/oauth/token</code>\n <br><b>Parameters</b>\n <br><li><code>grant_type</code> Hardcoded as <code>refresh_token</code>\n <br><li><code>client_id</code> This is the Id of this App Client who is asking for freshing token\n <br><li><code>client_secret</code> This is the secret of this App Client who is asking for freshing token\n <br><li><code>refresh_token</code> This is current refresh token. Using this token, you can ask for an updated access token as well as a new refresh token\n <br><a href="#Top">Top</a>\n </div>\n <div class="page-header">\n <u><h4 class="title">Get App Users Pages Number</h4></u>\n Because you could have many and many users in your App or Cloud service platform, Sup-Bill follows searching engines\' style. You can get all those users in one query or in one page. But we give you a way to show them by pages. This API is for giving you how many pages of the result. \n <br><b>Method</b> <code>GET</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/appclients/pages</code>\n <br><b>Parameters</b> \n <br><li><code>resultsPerPage</code> How many App Users per page\n <br><li><code>Authorization:\'Bearer <access token value>\'</code>\n <br><a href="#Top">Top</a>\n </div> \n <div class="page-header">\n <u><h4>List the n-th page of the App Users</h4></u>\n There could be many and many users for your App or Cloud service platform. This is another API for you to query these users. In this query, you can get a sub-set of these users. They are those in the n-th page of all the users\' query result.\n <br><b>Method</b> <code>GET</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/appclients/:<page_number></code>\n <br><b>Parameters</b>\n <br><li><code>resultsPerPage</code> How many App Users per page\n <br><li><code>Authorization:\'Bearer <access token value>\'</code>\n <br><a href="#Top">Top</a>\n </div>\n <div class="page-header">\n <u><h4>Add An App User</h4></u>\n Through calling this API, your program can create a new user for your App or Cloud service platform.\n <br><b>Method</b> <code>POST</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/appclients/appusers/</code>\n <br><b>Parameters</b>\n <br><li><code>Authorization:\'Bearer <access token value>\'</code>\n <br><li><code>firstName</code> First Name of App User\n <br><li><code>lastName</code> Last Name of App User\n <br><li><code>loginName</code> Login Name for App User\n <br><li><code>password</code> App User Password\n <br><li><code>email</code> Email of the App User\n <br><a href="#Top">Top</a>\n </div>\n <div class="page-header">\n <u><h4>Edit and Update An App User</h4></u>\n You need to give your users channel to edit their own user account information, as well as your program does. To do this, just calling this API. \n <br><b>Method</b> <code>PUT</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/appclients/appusers/</code>\n <br><b>Parameters</b>\n <br><li><code>Authorization:\'Bearer <token value>\'</code>\n <br><li><code>firstName</code> First Name of App User\n <br><li><code>lastName</code> Last Name of App User\n <br><li><code>password</code> App User Password\n <br><a href="#Top">Top</a>\n </div>\n <div class="page-header">\n <u><h4>Login An App User</h4></u>\n Your users have two different status: login or logout. You can use this API to route your users to login. You just need to route your users login page to this API. Sup-Bill can do all the else. Sup-Bill can help checking if the users are valid users, with valid password, etc. If yes, Sup-Bill feedback with correctness information. If no, Sup-Bill will also tell you the users do not have correct login_name or password.\n <br><b>Method</b> <code>POST</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/appclients/appusers/login</code>\n <br><b>Parameters</b>\n <br><li><code>Authorization:\'Bearer <token value>\'</code>\n <br><li><code>loginName</code>Login Name for App User\n <br><li><code>password</code> App User Password\n <br><a href="#Top">Top</a>\n </div>\n <div class="page-header">\n <u><h4>Logout An App User</h4></u>\n Your users have two different status: login or logout. You can use this API to route your users to logout from a previous login.. You just need to route your users logout page to this API. Sup-Bill can do all the else.\n <br><b>Method</b> <code>POST</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/appclients/appusers/logout</code>\n <br><b>Parameters</b>\n <br><li><code>Authorization:\'Bearer <token value>\'</code>\n <br><li><code>loginName</code>Login Name for App User\n <br><a href="#Top">Top</a>\n </div>\n <div class="page-header">\n <u><h4>An App User Register a Plan</h4></u>\n Assign a plan to a user. This is initiated by an app user when he/she is using your application. When he/she wants to register a plan, give him/her one plan.\n <br><b>Method</b> <code>POST</code>\n <br><b>URL</b> <code>http://api.supbill.com/api/appclients/appusers/setplan/:appuser</code>\n <br><b>Parameters</b>\n <br><li><code>Authorization:\'Bearer <token value>\'</code>\n <br><li><code>appuser</code>Login Name for App User\n <br><li><code>planname</code>Name of the plan that is going to be assigned to this app user\n <br><a href="#Top">Top</a>\n </div>\n \n</div>\n</section>\n');
$templateCache.put('modules/APIs/client/views/overview-apis.client.view.html', '<section class="row">\n <div class="col-xs-offset-1 col-xs-10 col-md-offset-6 col-md-10">\n <b><h3 class="title" id="overview">Overview</h3></b>\n Sup-Bill is a platform facilitating your cloud (SaaS) applications development by providing wide range of user-mangement APIs. All these APIs are based on REST (REpresentational State Transfer) requests.\n <br>Through calling these APIs, you can provide your users all the process and functionalities related to user mangement, user billing and user caring.You don\'t need to design or develop programs for maintenance of your users. You can reach high level of user management by just calling serveal REST APIs.\n <br>Credential is another highlighted point for Sup-Bill. Sup-Bill APIs access is based on access-token and refresh-token. Tokens can be updated automatically. This is the best way to keep fraud access away from your applications.\n <br>Detailed information of background and related information can be found in <a href="/docs">Documentations</a>\n </div>\n</section>\n');
$templateCache.put('modules/about/client/views/about.client.view.html', '<!-- The Example view -->\n<section class="container">\n <div class="page-header abouttopsec">\n <br><br><h1><font face="helvetica" color="white"> About</font></h1><br><br>\n </div>\n Coming soon ... :-)\n</section>\n');
$templateCache.put('modules/appclients/client/views/appusers-appclients.client.view.html', '<h1 ng-bind="vm.appclient.name"></h1>\n<h2>Full App User List</h2>\n<div class="list-group">\n <a ng-repeat="appuser in vm.appclient.appUserList" class="list-group-item">\n <div class="expandcollapse-item">\n <div ng-click="active = !active" ng-class="{\'expandcollapse-heading-collapsed\': active, \'expandcollapse-heading-expanded\': !active}">\n <p>Login Name: <span style="color:blue;font-weight:bold" ng-bind="appuser.loginName"></span></p></p>\n </div>\n <div class="container">\n <div class="slideDown" ng-hide="!active">\n <p>First Name: <span style="color:blue;font-weight:bold" ng-bind="appuser.firstName"></span> \n Last Name: <span style="color:blue;font-weight:bold" ng-bind="appuser.lastName"></span> \n Email: <span style="color:blue;font-weight:bold" ng-bind="appuser.email"></span></p></p>\n </div>\n </div>\n </div>\n </a>\n</div>\n\n');
$templateCache.put('modules/appclients/client/views/create-appclients.client.view.html', '<section>\n <div class="page-header appclienttopsec">\n <br><br><h1><font face="helvetica" color="white"> Create A New Appclient</font></h1><br><br>\n </div>\n\n <div class="ccl-md-12">\n <form name="vm.appclientForm" class="form-horizontal" novalidate autocomplete="off">\n <label for="name">Name</label> \n <input name="name" type="text" ng-model="vm.name" id="name" class="form-control" placeholder="Input Client Name Here" required> \n <label for="clientId">Client Id</label>\n <input name="clientId" ng-model="vm.clientId" id="clientId" class="form-control" cols="30" rows="10" placeholder="clientId"></textarea>\n <label for="clientSecret">Client Secret</label>\n <input name="clientSecret" ng-model="vm.clientSecret" id="clientSecret" class="form-control" cols="30" rows="10" placeholder="clientSecret make it as complex as possible">\n <label for="description">Description</label>\n <textarea name="description" ng-model="vm.description" id="description" class="form-control" cols="30" rows="10" placeholder="Description of the Application"></textarea>\n\n <div class="form-group">\n <button type="submit" class="btn btn-primary" ng-click="vm.create(vm.appclientForm.$valid)">Create</button>\n </div>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/appclients/client/views/edit-appclients.client.view.html', '<section>\n <div class="page-header appclienttopsec">\n <br><br><h1><font face="helvetica" color="white"> <span type="text" ng-bind="vm.appclient.name"></span></font></h1><br><br>\n </div>\n\n <div class="ccl-md-12">\n <form name="vm.appclientForm" class="form-horizontal" novalidate autocomplete="off">\n Name: \n <input type="text" id="name" class="form-control" ng-model="vm.appclient.name" required>\n <br>\n Appclient ID:\n <input type="text" id="clientId" class="form-control" ng-model="vm.appclient.clientId">\n <br>\n Appclient Secret:\n <input type="text" id="clientSecret" class="form-control" ng-model="vm.appclient.clientSecret">\n <br>\n Description:\n <textarea type="text" id="description" class="form-control" ng-model="vm.appclient.description"></textarea>\n <br>\n <div class="form-group">\n Total Number of Plans:\n <em class="text-muted">\n <strong><span type="text" ng-bind="vm.appclient.planList.length"></strong>\n </em>\n <br>\n <table class="table table-striped table-bordered">\n <thead>\n <tr>\n <th></th>\n <th>Plan Name</th>\n <th>Trial Days</th>\n <th>Billing Period</th>\n <th>Criteria</th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="plan in vm.appclient.planList">\n <td><input type="checkbox" ng-model="plan.selected"/></td>\n <td><input type="text" ng-model="plan.planName" required/></td>\n <td><input type="text" ng-model="plan.trialDays" required/></td>\n <td>\n <select ng-model="plan.billingPeriod" required>\n <option>Weekly</option>\n <option>Monthly</option>\n <option>Quarterly</option>\n <option>Annually</option>\n </select>\n </td>\n <td><input type="number" ng-model="plan.criteria" required/></td>\n </tr>\n </tbody>\n </table>\n <br>\n <button type="submit" class="addfields" ng-click="vm.addNewPlans()">Add Plans</button>\n <button type="submit" class="addfields" ng-click="vm.removePlans()">Delete Plans</button>\n </div>\n <br><br><br>\n <div class="form-group">\n <button type="submit" class="btn btn-primary pull-right" ng-click="vm.updateAppClient(vm.appclientForm.$valid)">Save</button>\n </div>\n </form>\n </div>\n</section>\n\n\n');
$templateCache.put('modules/appclients/client/views/list-appclients.client.view.html', '<section>\n <div class="page-header appclienttopsec">\n <br><br><h1><font face="helvetica" color="white"> App Client List</font></h1><br><br>\n </div>\n <div class="list-group">\n <a ng-repeat="appclient in vm.appclients" ui-sref="appclients.view({ appclientId: appclient._id })" class="list-group-item">\n <small class="list-group-item-text"> \n Client Name: <span style="color:blue;font-weight:bold" ng-bind="appclient.name"></span>\n <br>Client Id: <span style="color:blue;font-weight:bold" ng-bind="appclient.clientId"></span>\n </small>\n </a>\n </div>\n</section>\n');
$templateCache.put('modules/appclients/client/views/view-appclients.client.view.html', '<section>\n <div class="page-header appclienttopsec">\n <br><br><h1><font face="helvetica" color="white"> <span type="text" ng-bind="vm.appclient.name"></span></font></h1><br><br>\n </div>\n\n <div class="ccl-md-12">\n <form name="vm.appclientForm" class="form-horizontal" novalidate autocomplete="off">\n Name: \n <em class="text-muted">\n <span ng-bind="vm.appclient.name"></span>\n </em>\n <br>\n Appclient ID:\n <em class="text-muted">\n <span type="text" ng-bind="vm.appclient.clientId"></span>\n </em>\n <br>\n Appclient Secret:\n <em class="text-muted">\n <span type="text" ng-bind="vm.appclient.clientSecret"></span>\n </em>\n <br>\n Description:\n <em class="text-muted">\n <span type="text" ng-bind="vm.appclient.description"></span>\n </em>\n <br>\n User:\n <em class="text-muted">\n <span ng-bind="vm.appclient.user.displayName"></span>\n </em>\n <br>Plans:\n <table class="table table-striped table-bordered">\n <thead>\n <tr>\n <th>Plan Name</th>\n <th>Trial Days</th>\n <th>Billing Period</th>\n <th>Criteria</th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="plan in vm.appclient.planList">\n <td><span type="text" ng-bind="plan.planName"></span></td>\n <td><span type="text" ng-bind="plan.trialDays"></span></td>\n <td><span type="text" ng-bind="plan.billingPeriod"></span></td>\n <td><span type="number" ng-bind="plan.criteria"></span></td>\n </tr>\n </tbody>\n </table>\n <br>\n <div class="form-group">\n <button class="btn btn-primary" ui-sref="appclients.edit({ appclientId: vm.appclient._id })">Edit This App Client</button>\n </div>\n <br>\n <div class="pull-right">\n <a ng-show="vm.appclient._id" class="btn btn-primary" ng-click="vm.remove()">\n <i class="glyphicon glyphicon-trash"></i>\n </a>\n </div>\n <br><br>\n Total App Users:\n <em class="text-muted">\n <strong><span type="text" ng-bind="vm.appclient.appUserList.length"></strong>\n </em>\n\n <div class="list-group">\n <a ng-repeat="appuser in vm.appclient.appUserList | limitTo : 3", class="list-group-item">\n <div class="expandcollapse-item">\n <div ng-click="active = !active" ng-class="{\'expandcollapse-heading-collapsed\': active, \'expandcollapse-heading-expanded\': !active}">\n <p>Login Name: <span style="color:blue;font-weight:bold" ng-bind="appuser.loginName"></span></p></p>\n </div>\n <div class="container">\n <div class="slideDown" ng-hide="!active">\n <p>First Name: <span style="color:blue;font-weight:bold" ng-bind="appuser.firstName"></span> \n Last Name: <span style="color:blue;font-weight:bold" ng-bind="appuser.lastName"></span> \n Email: <span style="color:blue;font-weight:bold" ng-bind="appuser.email"></span></p></p>\n </div>\n </div>\n </div>\n </a>\n </div>\n <div class="pull-right">\n <button class="btn btn-primary" ui-sref="appclients.appusers({ appclientId: vm.appclient._id })">Full App User List</button>\n </div>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/bills/client/views/create-bills.client.view.html', '<section>\n <div class="page-header">\n <h1>Create A New Bill</h1>\n </div>\n <div class="ccl-md-12">\n <form name="vm.billForm" class="form-horizontal" ng-submit="vm.create(vm.billForm.$valid)" novalidate autocomplete="off">\n <label for="name">Month</label> \n <input name="month" type="text" ng-model="vm.month" id="month" class="form-control" placeholder="Bill Month" required> \n <div class="form-group">\n <button type="submit" class="btn btn-primary">Create</button>\n </div>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/bills/client/views/edit-bills.client.view.html', '<section>\n <div class="page-header">\n <h1 ng-bind="vm.bill.name"></h1>\n </div>\n <div class="ccl-md-12">\n <form name="vm.billForm" class="form-horizontal" ng-submit="vm.updateBill(vm.billForm.$valid)" novalidate autocomplete="off">\n Bill Month:\n <input type="text" id="month" class="form-control" ng-model="vm.bill.month">\n <div class="form-group">\n <button type="submit" class="btn btn-primary">Save</button>\n </div>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/bills/client/views/list-bills.client.view.html', '<section>\n <div class="page-header billstopsec">\n <br><br><h1><font face="helvetica" color="white"> Bill List</font></h1><br><br>\n </div>\n <div class="list-group">\n <a ng-repeat="bill in vm.bills" ui-sref="bills.view({ billId: bill._id })" class="list-group-item">\n <small class="list-group-item-text"> \n Bill Month: <span style="color:blue;font-weight:bold" ng-bind="bill.month"></span>\n <br>Bill Amount: <span style="color:blue;font-weight:bold" ng-bind="bill.value"></span>\n </small>\n </a>\n </div>\n</section>\n');
$templateCache.put('modules/bills/client/views/view-bills.client.view.html', '<section>\n <div class="page-header billstopsec">\n <br><br><h1><font face="helvetica" color="white"> SupBill User Bill</font></h1><br><br>\n </div>\n\n <div class="page-header">\n <h1 align="right" ng-bind="vm.bill.user.displayName"></h1>\n <h1 align="right" ng-bind="vm.bill._id"></h1>\n </div>\n\n <div class="ccl-md-12">\n <br><br>\n <form name="vm.billForm" class="form-horizontal" novalidate autocomplete="off">\n Bill Month: \n <em class="text-muted">\n <b><span ng-bind="vm.bill.month"></span></b>\n </em>\n <br>\n Bill Amount:\n <em class="text-muted">\n <b>$<span type="text" ng-bind="vm.bill.value"></span></b>\n </em>\n <br>\n Bill Details:\n <em class="text-muted">\n <b><span type="text" ng-bind="vm.bill.details"></span></b>\n </em>\n <br>\n Due Date:\n <em class="text-muted">\n <b><span ng-bind="vm.bill.due_date"></span></b>\n </em>\n <br>\n </form>\n <form action="http://paypal.me/JinweiWei">\n <input type="submit" value="Pay This Bill with Paypal" />\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/chat/client/views/chat.client.view.html', '<!-- The chat view -->\n<section class="container">\n <div class="page-header">\n <h1>Chat Example</h1>\n </div>\n <!-- The message form -->\n <form class="col-xs-12 col-md-offset-4 col-md-4" ng-submit="vm.sendMessage();">\n <fieldset class="row">\n <div class="input-group">\n <input type="text" id="messageText" name="messageText" class="form-control" ng-model="vm.messageText" placeholder="Enter new message" autofocus>\n <span class="input-group-btn">\n <button type="submit" class="btn btn-primary" ng-disabled="!vm.messageText.length">Submit</button>\n </span>\n </div>\n </fieldset>\n </form>\n <ul class="list-unstyled">\n <!-- List all messages -->\n <li class="col-xs-12 col-md-offset-4 col-md-4 chat-message" ng-repeat="message in vm.messages">\n <small class="pull-right text-muted" ng-bind="message.created | date:\'mediumTime\'"></small>\n <img ng-src="/{{message.profileImageURL}}" alt="{{message.username}}" class="pull-left chat-profile-image" />\n <div class="pull-left chat-message-details">\n <strong ng-bind="message.username"></strong>\n <br>\n <span ng-bind="message.text"></span>\n </div>\n </li>\n </ul>\n</section>\n');
$templateCache.put('modules/core/client/views/400.client.view.html', '<div class="page-header">\n <h1>Bad Request</h1>\n</div>\n<div class="alert alert-danger" role="alert">\n <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>\n <span class="sr-only">Error:</span>\n <span ng-if="vm.errorMessage" ng-bind="vm.errorMessage"></span>\n <span ng-if="!vm.errorMessage">You made a bad request</span>\n</div>\n');
$templateCache.put('modules/core/client/views/403.client.view.html', '<div class="page-header">\n <h1>Forbidden</h1>\n</div>\n<div class="alert alert-danger" role="alert">\n <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>\n <span class="sr-only">Error:</span>\n You are not authorized to access this resource\n</div>\n');
$templateCache.put('modules/core/client/views/404.client.view.html', '<div class="page-header">\n <h1>Page Not Found</h1>\n</div>\n<div class="alert alert-danger" role="alert">\n <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>\n <span ng-if="vm.errorMessage" ng-bind="vm.errorMessage"></span>\n <span ng-if="!vm.errorMessage">Page Not Found</span>\n</div>\n');
$templateCache.put('modules/core/client/views/header.client.view.html', '<div class="container" ng-controller="HeaderController as vm">\n <div class="navbar-header">\n <button class="navbar-toggle" type="button" ng-click="vm.isCollapsed = !vm.isCollapsed">\n <span class="sr-only">Toggle navigation</span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </button>\n <a ui-sref="home">\n <img src="/modules/core/client/img/brand/user_logo5.png" alt="SupBill" height="35"><br>\n <font size="4" color=#32A4DC>SupBill</font>\n </a>\n <style>body {background-color: #ffffff; }</style>\n </div>\n <nav class="navbar-collapse" uib-collapse="!vm.isCollapsed" role="navigation" color="white">\n <ul class="nav navbar-nav" ng-if="vm.menu.shouldRender(vm.authentication.user);">\n <li ng-repeat="item in vm.menu.items | orderBy: \'position\'" ng-if="item.shouldRender(vm.authentication.user);" ng-switch="item.type" ng-class="{ dropdown: item.type === \'dropdown\' }" ui-sref-active="active" class="{{item.class}}" uib-dropdown="item.type === \'dropdown\'">\n <a ng-switch-when="dropdown" class="dropdown-toggle" uib-dropdown-toggle role="button">{{::item.title}} <span class="caret"></span></a>\n <ul ng-switch-when="dropdown" class="dropdown-menu">\n <li ng-repeat="subitem in item.items | orderBy: \'position\'" ng-if="subitem.shouldRender(vm.authentication.user);">\n <a ui-sref="{{subitem.state}}({{subitem.params}})" ng-bind="subitem.title"></a>\n </li>\n </ul>\n <a ng-switch-default ui-sref="{{item.state}}" ng-bind="item.title"></a>\n </li>\n </ul>\n <ul class="nav navbar-nav navbar-right" ng-hide="vm.authentication.user">\n <li ui-sref-active="active">\n <a ui-sref="authentication.signup"><font color=#32A4DC>Sign Up</font></a>\n </li>\n <li class="divider-vertical"></li>\n <li ui-sref-active="active">\n <a ui-sref="authentication.signin"><font color=#32A4DC>Sign In</font></a>\n </li>\n </ul>\n <ul class="nav navbar-nav navbar-right" ng-show="vm.authentication.user">\n <li class="dropdown" uib-dropdown>\n <a class="dropdown-toggle user-header-dropdown-toggle" uib-dropdown-toggle role="button">\n <img ng-src="/{{vm.authentication.user.profileImageURL}}" alt="{{vm.authentication.user.displayName}}" class="header-profile-image" />\n <span ng-bind="vm.authentication.user.displayName"></span> <b class="caret"></b>\n </a>\n <ul class="dropdown-menu" role="menu">\n <li ui-sref-active="active" ng-repeat="item in vm.accountMenu.items">\n <a ui-sref="{{item.state}}" ng-bind="item.title"></a>\n </li>\n <li class="divider"></li>\n <li>\n <a href="/api/auth/signout" target="_self">Signout</a>\n </li>\n </ul>\n </li>\n </ul>\n </nav>\n</div>\n');
$templateCache.put('modules/core/client/views/home.client.view.html', '\n<section class="topsec">\n<br><br> <br><br> \n <center>\n <p class="lead">\n <b><font face="helvetica" color=#ffffff><h1>Manage Your Users Safer, Faster and Smarter<br>in Cloud</h1>\n <br><br><b><font face="helvetica" color=#ffffff><h4>Wide range of APIs for User Management can faciliate your systems/apps development <br>with averagely 30% more efficiency</h4>\n </font></b>\n </p><br><br>\n <button class="hometopbutton" ui-sref="authentication.signup"><font size="4">Get to Start Now</font></button>\n </center>\n</section>\n<hr size=60>\n<section>\n <div class="container">\n <h2 class="u-textCenter">Seamlessly manage your users</h2>\n </div><br><br>\n <ul class="BlockGrid" style="list-style: none;">\n <li class="featuresli">\n <img class="u-homepage_pictures" src="/modules/core/client/img/api.png">\n <h3>Simple</h3>\n <p>An intuitive API and command line utilities allow you to run large-scale production workloads.</p>\n </li>\n <li class="featuresli">\n <img class="u-homepage_pictures" src="/modules/core/client/img/secure3.png">\n <h3>Token Supported Security</h3>\n <p>An intuitive API and command line utilities allow you to run large-scale production workloads.</p>\n </li>\n <li class="featuresli">\n <img class="u-homepage_pictures" src="/modules/core/client/img/bills.png">\n <h3>Users to Bills</h3>\n <p>An intuitive API and command line utilities allow you to run large-scale production workloads.</p>\n </li>\n </ul>\n <ul class="BlockGrid" style="list-style: none;">\n <li class="featuresli">\n <img class="u-homepage_pictures" src="/modules/core/client/img/backend1.png">\n <h3>Backend Console</h3>\n <p>A frendly backend managment console gives you straightfoward process for create your applications and management activities related to users.</p>\n </li>\n <li class="featuresli">\n <img class="u-homepage_pictures" src="/modules/core/client/img/multiple1.png">\n <h3>Multiple Applications</h3>\n <p>More than one applications for different platforms can be created under the same user to meet your user management requirement for various applications.</p>\n </li>\n <li class="featuresli">\n <img class="u-homepage_pictures" src="/modules/core/client/img/dashboard.png">\n <h3>Real Time Dashboards</h3>\n <p>Different level of dashboards can help you monitor status and statistics of your users and applications with severl views.</p>\n </li>\n </ul>\n</section>\n');
$templateCache.put('modules/documentations/client/views/docs.client.view.html', '<!-- The documentation view -->\n<section class="container">\n <div class="page-header doctopsec">\n <br><br><h1><font face="helvetica" color="white"> Documentations</font></h1><br><br>\n </div>\n <div class="page-header">\n <h2><font face="helvetica" color="black">Glossary</font></h2>\n <b>App Client:</b> App Client is application of you or your company that provide a specified services to your customers. It is the application that is going to use Sup-Bill as user-management API.\n <br><b>Plan:</b> Plan is a package of services that App Client can provide to a speicified groups of customers. Different plans often mean different level of services/customer experiences, as well as different payment.\n </div>\n <div class="page-header">\n <h2><font face="helvetica" color="black">What is RESTful API</font></h2>\n <font color="black">A RESTful API is an application program interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data.\n <br>Representational state transfer (REST), which is used by browsers, can be thought of as the language of the Internet. Now that cloud usage is on the rise, various application programming interfaces (APIs) are emerging to expose Web services and REST is a logical choice for building APIs that allow end users to connect and interact with cloud services. RESTful APIs are used by many sites, including Google, Amazon, Twitter and LinkedIn.\n <br>A RESTful API breaks down a transaction to create a series of small modules, each of which addresses a particular underlying part of the transaction. This modularity provides developers with a lot of flexibility but can also be challenging for developers to design from scratch. Currently, the models provided by Amazon Simple Storage Service (S3), OpenStack Swift and Cloud Data Management Interface (CDMI) are most popular.\n <br>RESTful APIs explicitly take advantage of HTTP methodologies defined by the RFC 2616 protocol. They simply use "PUT" to change the state of or update a resource, which can be an object, file or block; "GET" to retrieve a resource; POST" to create that resource; and "DELETE" to remove it.</font>\n </div>\n <div class="page-header">\n <h2><font face="helvetica" color="black">User Management</font></h2>\n <font face="helvetica" color="black">User Management is an authentication feature that provides administrators with the ability to identify and control the state of users logged into the network. This includes, but is not limited to, the ability to query and filter users that are currently logged into the network, manually log out users, and control user login counts and login times.\n <br><br>Most security-conscious enterprises today implement some form of authentication and authorization for accessing network resources. The benefits to this approach are clear \u2013 user permissions can be verified before granting access to resources, and user activity can be monitored through various logging mechanisms. This solution is not without its limitations however. In typical authentication and authorization deployments, administrators have various options available with regard to how users are authenticated, but have little control over how often users are authenticated. User Management enables administrators to more granularly control the frequency of user authentication, allowing them to configure the ProxySG to ignore cached browser credentials and force the user to re-enter credentials, or to require more frequent authentication only if the user is accessing critical resources. This kind of flexibility allows administrators to implement authentication-based policies that more closely match their network security policies. The User Management logout capability also provides more secure control over the state of users. For example, when using IP authentication mode users are identified by the specified IP address until the IP surrogate time expires. If another person were to use that computer before the IP surrogate time expired, they would be treated as the original user. The common solution for preventing this scenario is to decrease the IP surrogate expiry time, causing the user to be challenged more often. User Management allows administrators to instead configure user log out based on inactivity timeouts, user access to a specific \u201Clogout\u201D URL, or by manually logging out the user. For ease of use, logout capability is available though policy, the CLI, or the Management Console.\n <br><br>Another key benefit of User Management is visibility into active user sessions. Using the Management Console and CLI, administrators can view all active users and filter display data by user, IP address, or realm for easier viewing. This can be useful for identifying the general login status of users or for making real-time decisions such as immediately logging off a user. \n <br><br>User Management is based on the concept of users logging in and logging out of the ProxySG appliance. A login is the combination of a unique IP address with a unique username in a unique realm. A user is considered logged in when first authenticated to the ProxySG appliance. Identifying users as logged in, or active, allows administrators to create flexible User Management policies to fine tune user access and control.</font>\n </div>\n</section>\n');
$templateCache.put('modules/pricing/client/views/pricing.client.view.html', '<!-- The Pricing view -->\n<section class="container">\n <div class="page-header pricingtopsec">\n <br><br><h1><font face="helvetica" color="white"> Pricing</font></h1><br><br>\n </div>\n <div class="page-header">\n <h2><font face="helvetica" color="black">Free Stage</font></h2>\n\tSup-Bill provides <b>FREE</b> services to basic basic users with their developing applications. Under below usage, you do not need to pay anything to Sup-Bill. Enjoy your developing process with Sup-Bill to manage your users.\n\t<style>\n\ttable, th, td {\n border: 2px solid white;\n }\n </style>\n <br>\t\n <table>\n <tr>\n\t <th> Pricing Model </th>\n <th> App Client </th>\n <th> App Users </th>\n <th> API Calling per Day </th>\n </tr>\n <tr>\n <td> Free </td>\n\t\t<td> One User Can Create One App Client </td>\n <td> One User Can Have At Most 1,000 App Users </td>\n <td> One User Can Have At Most 2,000 API Calls for Its App Users Each Month </td>\n </tr> \n\t <tr>\n <td> Pro </td>\n\t\t<td> One More App Clients Needs $6.99 per Month </td>\n <td> Each App User More Than 1,0000 Needs $0.19 per Month </td>\n <td> Each API Calling More Than 2,000 Needs $0.09 per Month </td>\n </tr>\n </table>\t\n </div>\n \n</section>\n');
$templateCache.put('modules/start/client/views/start.client.view.html', '<!-- The Getting-Started view -->\n<section>\n <div class="page-header starttopsec">\n <br><br><h1><font face="helvetica" color="white"> Getting Started</font></h1><br><br>\n </div>\n <div class="page-header">\n <h2><font face="helvetica" color="black">Step I: Sign Up to Create a User</font></h2>\n The first step of using Sup-Bill is to <a href="/authentication/signup">sign up</a> in this website to create a user of you or your company.\n </div>\n <div class="page-header">\n <h2><font face="helvetica" color="black">Step II: Create App Client(s)</font></h2>\n When you have a user ID for Sup-Bill, you are able to create your App Clients. To define your App Client, you just need to give\n <br> App Client Name\n <br> App Client Unique ID\n <br> App Client Description (optional)\n </div>\n <div class="page-header">\n <h2><font face="helvetica" color="black">Step III: Create Plan</font></h2>\n The first step of using Sup-Bill is to <a href="authentication/signup">sign up</a> in this website to create a user of you or your company.\n </div>\n\n</section>\n');
$templateCache.put('modules/appclients/client/views/admin/form-appclient.client.view.html', '<section>\n <div class="page-header">\n <h1>{{vm.appclient._id ? \'Edit Appclient\' : \'New Appclient\'}}</h1>\n </div>\n <div class="pull-right">\n <a ng-show="vm.appclient._id" class="btn btn-primary" ng-click="vm.remove()">\n <i class="glyphicon glyphicon-trash"></i>\n </a>\n </div>\n <div class="col-md-12">\n <form name="vm.form.appclientForm" class="form-horizontal" ng-submit="vm.save(vm.form.appclientForm.$valid)" novalidate>\n <fieldset>\n <div class="form-group" show-errors>\n <label class="control-label" for="title">Title</label>\n <input name="title" type="text" ng-model="vm.appclient.title" id="title" class="form-control" placeholder="Title" required>\n <div ng-messages="vm.form.appclientForm.title.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Appclient title is required.</p>\n </div>\n </div>\n <div class="form-group">\n <label class="control-label" for="content">Content</label>\n <textarea name="content" data-ng-model="vm.appclient.content" id="content" class="form-control" cols="30" rows="10" placeholder="Content"></textarea>\n </div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">{{vm.appclient._id ? \'Update\' : \'Create\'}}</button>\n </div>\n </fieldset>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/appclients/client/views/admin/list-appclients.client.view.html', '<section>\n <div class="page-header">\n <h1>\n Appclients\n <a class="btn btn-primary pull-right" data-ui-sref="admin.appclients.create">\n <i class="glyphicon glyphicon-plus"></i>\n </a>\n </h1>\n </div>\n <div class="list-group">\n <a data-ng-repeat="appclient in vm.appclients" data-ui-sref="admin.appclients.edit({appclientId: appclient._id})" class="list-group-item">\n <small class="list-group-item-text">\n Posted on\n <span data-ng-bind="appclient.created | date:\'mediumDate\'"></span>\n by\n <span ng-if="appclient.user" ng-bind="appclient.user.displayName"></span>\n <span ng-if="!appclient.user">Deleted User</span>\n </small>\n <h4 class="list-group-item-heading" data-ng-bind="appclient.title"></h4>\n <p class="list-group-item-text" data-ng-bind="appclient.content"></p>\n </a>\n </div>\n <div class="alert alert-warning text-center" data-ng-if="appclients.$resolved && !appclients.length">\n No appclients yet, why don\'t you <a data-ui-sref="admin.appclients.create">create one</a>?\n </div>\n</section>\n');
$templateCache.put('modules/appclients/client/views/plans/create-plans.appclients.client.view.html', '<section>\n <div class="page-header">\n <h1>Create A New Plan for <a ng-bind="vm.appclient.name"> </a></h1>\n </div>\n</section>\n');
$templateCache.put('modules/bills/client/views/admin/form-bill.client.view.html', '<section>\n <div class="page-header">\n <h1>{{vm.bill._id ? \'Edit Bill\' : \'New Bill\'}}</h1>\n </div>\n <div class="pull-right">\n <a ng-show="vm.bill._id" class="btn btn-primary" ng-click="vm.remove()">\n <i class="glyphicon glyphicon-trash"></i>\n </a>\n </div>\n <div class="col-md-12">\n <form name="vm.form.billForm" class="form-horizontal" ng-submit="vm.save(vm.form.billForm.$valid)" novalidate>\n <fieldset>\n <div class="form-group" show-errors>\n <label class="control-label" for="title">User</label>\n <input name="user" type="text" ng-model="vm.bill.user.displayName" id="user" class="form-control" placeholder="User" required>\n <div ng-messages="vm.form.billForm.title.$error" role="alert">\n <p class="help-block error-text" ng-message="required">User is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label class="control-label" for="title">Month</label>\n <input name="month" type="text" ng-model="vm.bill.month" id="month" class="form-control" placeholder="Month" required>\n <div ng-messages="vm.form.billForm.title.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Bill month is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label class="control-label" for="title">Bill Amount</label>\n <input name="value" type="number" ng-model="vm.bill.value" id="value" class="form-control" placeholder="0.00" required>\n <div ng-messages="vm.form.billForm.title.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Bill amount is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label class="control-label" for="title">Bill Details</label>\n <textarea name="details" type="text" ng-model="vm.bill.details" id="details" class="form-control" cols="30" rows="10" placeholder="Details break down of the bill" required></textarea>\n <div ng-messages="vm.form.billForm.title.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Bill details is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label class="control-label" for="content">Due Date</label>\n <input name="due_date" type="text" ng-model="vm.bill.due_date" id="due_date" class="form-control" placeholder="Due date of the bill">\n <div ng-messages="vm.form.billForm.title.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Due date is required.</p>\n </div>\n </div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">{{vm.bill._id ? \'Update\' : \'Create\'}}</button>\n </div>\n </fieldset>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/bills/client/views/admin/list-bills.client.view.html', '<section>\n <div class="page-header">\n <h1>\n Bills\n <a class="btn btn-primary pull-right" data-ui-sref="admin.bills.create">\n <i class="glyphicon glyphicon-plus"></i>\n </a>\n </h1>\n </div>\n <div class="list-group">\n <a data-ng-repeat="bill in vm.bills" data-ui-sref="admin.bills.edit({billId: bill._id})" class="list-group-item">\n <small class="list-group-item-text">\n Posted on\n <span data-ng-bind="bill.created | date:\'mediumDate\'"></span>\n by\n <span ng-if="bill.user" ng-bind="bill.user.displayName"></span>\n <span ng-if="!bill.user">Deleted User</span>\n </small>\n <h4 class="list-group-item-heading" data-ng-bind="bill.title"></h4>\n <p class="list-group-item-text" data-ng-bind="bill.content"></p>\n </a>\n </div>\n <div class="alert alert-warning text-center" data-ng-if="bills.$resolved && !bills.length">\n No bills yet, why don\'t you <a data-ui-sref="admin.bills.create">create one</a>?\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/admin/edit-user.client.view.html', '<section>\n <div class="page-header">\n <h1>User <span ng-bind="vm.user.username"></span></h1>\n </div>\n <div class="col-md-12">\n <form name="vm.userForm" ng-submit="vm.update(vm.userForm.$valid)" novalidate>\n <fieldset>\n <div class="form-group" show-errors>\n <label for="firstName">First Name</label>\n <input type="text" id="firstName" name="firstName" class="form-control" ng-model="vm.user.firstName" placeholder="First Name" required />\n <div ng-messages="vm.userForm.firstName.$error" role="alert">\n <p class="help-block error-text" ng-message="required">First name is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="lastName">Last Name</label>\n <input type="text" id="lastName" name="lastName" class="form-control" ng-model="vm.user.lastName" placeholder="Last Name" required />\n <div ng-messages="vm.userForm.lastName.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Last name is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label class="control-label" for="roles">Roles</label>\n <div class="controls">\n <input class="form-control" type="text" name="roles" ng-model="vm.user.roles" id="roles" ng-list required />\n <div ng-messages="vm.userForm.roles.$error" role="alert">\n <p class="help-block error-text" ng-message="required">At least one role is required.</p>\n </div>\n </div>\n </div>\n <div class="form-group">\n <input type="submit" value="Update" class="btn btn-default">\n </div>\n </fieldset>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/admin/list-users.client.view.html', '<section>\n <div class="page-header">\n <div class="row">\n <div class="col-md-4">\n <h1>Users</h1>\n </div>\n <div class="col-md-4" style="margin-top: 2em">\n <input class="form-control col-md-4" type="text" ng-model="vm.search" placeholder="Search" ng-change="vm.figureOutItemsToDisplay()" />\n </div>\n </div>\n </div>\n <div class="list-group">\n <a ng-repeat="user in vm.pagedItems" ui-sref="admin.user({userId: user._id})" class="list-group-item">\n <h4 class="list-group-item-heading" ng-bind="user.username"></h4>\n <p class="list-group-item-text pull-right small" ng-bind="user.roles"></p>\n <p class="list-group-item-text" ng-bind="user.email"></p>\n </a>\n </div>\n\n <uib-pagination boundary-links="true" max-size="8" items-per-page="vm.itemsPerPage" total-items="vm.filterLength" ng-model="vm.currentPage" ng-change="vm.pageChanged()"></uib-pagination>\n</section>\n');
$templateCache.put('modules/users/client/views/admin/view-user.client.view.html', '<section>\n <div class="page-header">\n <div class="row">\n <div class="col-md-6">\n <h1 ng-bind="vm.user.username"></h1>\n </div>\n <div class="col-md-4">\n <a class="btn btn-primary" ui-sref="admin.user-edit({userId: vm.user._id})">\n <i class="glyphicon glyphicon-edit"></i>\n </a>\n <a class="btn btn-primary" ng-click="vm.remove()" ng-if="!vm.isContextUserSelf()">\n <i class="glyphicon glyphicon-trash"></i>\n </a>\n </div>\n </div>\n </div>\n\n <div class="row">\n <div class="col-md-8">\n <div class="row">\n <div class="col-md-3"><strong>First Name</strong></div>\n <div class="col-md-6" ng-bind="vm.user.firstName"></div>\n </div>\n <hr/>\n <div class="row">\n <div class="col-md-3"><strong>Last Name</strong></div>\n <div class="col-md-6" ng-bind="vm.user.lastName"></div>\n </div>\n <hr/>\n <div class="row">\n <div class="col-md-3"><strong>Email</strong></div>\n <div class="col-md-6" ng-bind="vm.user.email"></div>\n </div>\n <hr/>\n <div class="row">\n <div class="col-md-3"><strong>Provider</strong></div>\n <div class="col-md-6" ng-bind="vm.user.provider"></div>\n </div>\n <hr/>\n <div class="row">\n <div class="col-md-3"><strong>Created</strong></div>\n <div class="col-md-6" ng-bind="vm.user.created"></div>\n </div>\n <hr/>\n <div class="row">\n <div class="col-md-3"><strong>Roles</strong></div>\n <div class="col-md-6" ng-bind="vm.user.roles"></div>\n </div>\n </div>\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/authentication/authentication.client.view.html', '<section class="row">\n <div class="col-md-12 text-center">\n </div>\n <div ui-view></div>\n</section>\n');
$templateCache.put('modules/users/client/views/authentication/signin.client.view.html', '<div>\n <a align=center><h2>Please Login Here with Your Existing Id</h2></a>\n <div class="col-xs-offset-2 col-xs-8 col-md-offset-4 col-md-4">\n <form name="vm.userForm" ng-submit="vm.signin(vm.userForm.$valid)" class="signin" novalidate autocomplete="off">\n <fieldset>\n <div class="form-group" show-errors>\n <uib-alert type="danger" ng-show="vm.error" class="text-center text-danger">\n <span ng-bind="vm.error"></span>\n </uib-alert>\n <label for="usernameOrEmail">Username or Email</label>\n <input type="text" id="usernameOrEmail" name="usernameOrEmail" class="form-control" ng-model="vm.credentials.usernameOrEmail" placeholder="Username or Email" required autofocus>\n <div ng-messages="vm.userForm.usernameOrEmail.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Username or Email is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="password">Password</label>\n <input type="password" id="password" name="password" class="form-control" ng-model="vm.credentials.password" placeholder="Password" required>\n <div ng-messages="vm.userForm.password.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Password is required.</p>\n </div>\n </div>\n <div class="text-center form-group">\n <button type="submit" class="btn btn-primary">Sign in</button>\n or \n <a ui-sref="authentication.signup">Sign up</a>\n </div>\n <div class="text-center forgot-password">\n <a ui-sref="password.forgot">Forgot your password?</a>\n </div>\n <br />\n </fieldset>\n </form>\n </div>\n</div>\n');
$templateCache.put('modules/users/client/views/authentication/signup.client.view.html', '<div>\n <h3 class="col-xs-12 text-center">Or sign up using your email</h3>\n <div class="col-xs-offset-2 col-xs-8 col-md-offset-4 col-md-4">\n <form name="vm.userForm" ng-submit="vm.signup(vm.userForm.$valid)" class="signin" novalidate autocomplete="off">\n <fieldset>\n <div class="form-group" show-errors>\n <label for="firstName">First Name</label>\n <input type="text" id="firstName" name="firstName" class="form-control" ng-model="vm.credentials.firstName" placeholder="First Name" required autofocus>\n <div ng-messages="vm.userForm.firstName.$error" role="alert">\n <p class="help-block error-text" ng-message="required">First name is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="lastName">Last Name</label>\n <input type="text" id="lastName" name="lastName" class="form-control" ng-model="vm.credentials.lastName" placeholder="Last Name" required>\n <div ng-messages="vm.userForm.lastName.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Last name is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="email">Email</label>\n <input type="email" id="email" name="email" class="form-control" ng-model="vm.credentials.email" placeholder="Email" lowercase required>\n <div ng-messages="vm.userForm.email.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Email address is required.</p>\n <p class="help-block error-text" ng-message="email">Email address is invalid.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="username">Username</label>\n <input type="text" id="username" name="username" class="form-control" ng-model="vm.credentials.username" placeholder="Username" lowercase required>\n <div ng-messages="vm.userForm.username.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Username is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="password">Password</label>\n <input type="password" id="password" name="password" class="form-control" ng-model="vm.credentials.password" placeholder="Password" uib-popover="{{vm.getPopoverMsg()}}" popover-trigger="outsideClick" password-validator required>\n <div ng-messages="vm.userForm.password.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Password is required.</p>\n <div ng-repeat="passwordError in passwordErrors">\n <p class="help-block error-text" ng-show="vm.userForm.password.$error.requirements">{{passwordError}}</p>\n </div>\n </div>\n </div>\n <div class="form-group" ng-show="!vm.userForm.password.$error.required">\n <label>Password Requirements</label>\n <uib-progressbar value="requirementsProgress" type="{{requirementsColor}}"><span style="color:white; white-space:nowrap;">{{requirementsProgress}}%</span></uib-progressbar>\n </div>\n <div class="text-center form-group">\n <button type="submit" class="btn btn-primary">Sign up</button>\n or \n <a ui-sref="authentication.signin" class="show-signup">Sign in</a>\n </div>\n </fieldset>\n </form>\n </div>\n</div>\n');
$templateCache.put('modules/users/client/views/password/forgot-password.client.view.html', '<section class="row">\n <h3 class="col-md-12 text-center">Restore your password</h3>\n <p class="small text-center">Enter your account username.</p>\n <div class="col-xs-offset-2 col-xs-8 col-md-offset-5 col-md-2">\n <form name="vm.forgotPasswordForm" ng-submit="vm.askForPasswordReset(vm.forgotPasswordForm.$valid)" class="form-horizontal" novalidate autocomplete="off">\n <fieldset>\n <div class="form-group" show-errors>\n <input type="text" id="username" name="username" class="form-control" ng-model="vm.credentials.username" placeholder="Username" lowercase required>\n <div ng-messages="vm.forgotPasswordForm.username.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Enter a username.</p>\n </div>\n </div>\n <div class="text-center form-group">\n <button type="submit" class="btn btn-primary">Submit</button>\n </div>\n </fieldset>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/password/reset-password-invalid.client.view.html', '<section class="row text-center">\n <h3 class="col-md-12">Password reset is invalid</h3>\n <a ui-sref="password.forgot" class="col-md-12">Ask for a new password reset</a>\n</section>\n');
$templateCache.put('modules/users/client/views/password/reset-password-success.client.view.html', '<section class="row text-center">\n <h3 class="col-md-12">Password successfully reset</h3>\n <a ui-sref="home" class="col-md-12">Continue to home page</a>\n</section>\n');
$templateCache.put('modules/users/client/views/password/reset-password.client.view.html', '<section class="row">\n <h3 class="col-md-12 text-center">Reset your password</h3>\n <div class="col-xs-offset-2 col-xs-8 col-md-offset-4 col-md-4">\n <form name="vm.resetPasswordForm" ng-submit="vm.resetUserPassword(vm.resetPasswordForm.$valid)" class="signin form-horizontal" novalidate autocomplete="off">\n <fieldset>\n <div class="form-group" show-errors>\n <label for="newPassword">New Password</label>\n <input type="password" id="newPassword" name="newPassword" class="form-control" ng-model="vm.passwordDetails.newPassword" placeholder="New Password" autocomplete="new-password" uib-popover="{{vm.getPopoverMsg()}}" uib-popover-trigger="focus" uib-popover-placement="top" password-validator required>\n <div ng-messages="vm.resetPasswordForm.newPassword.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Enter a new password.</p>\n <div ng-repeat="passwordError in passwordErrors">\n <p class="help-block error-text" ng-show="vm.resetPasswordForm.newPassword.$error.requirements">{{passwordError}}</p>\n </div>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="verifyPassword">Verify Password</label>\n <input type="password" id="verifyPassword" name="verifyPassword" class="form-control" ng-model="vm.passwordDetails.verifyPassword" placeholder="Verify Password" password-verify="vm.passwordDetails.newPassword" required>\n <div ng-messages="vm.resetPasswordForm.verifyPassword.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Enter the password again to verify.</p>\n <p class="help-block error-text" ng-show="vm.resetPasswordForm.verifyPassword.$error.passwordVerify">Passwords do not match.</p>\n </div>\n </div>\n <div class="form-group" ng-show="!vm.resetPasswordForm.newPassword.$error.required">\n <label>Password Requirements</label>\n <uib-progressbar value="requirementsProgress" type="{{requirementsColor}}"><span style="color:white; white-space:nowrap;">{{requirementsProgress}}%</span></uib-progressbar>\n </div>\n <div class="text-center form-group">\n <button type="submit" class="btn btn-primary">Update Password</button>\n </div>\n </fieldset>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/settings/change-password.client.view.html', '<section class="row">\n <div class="col-xs-offset-1 col-xs-10 col-md-offset-4 col-md-4">\n <form name="vm.passwordForm" ng-submit="vm.changeUserPassword(vm.passwordForm.$valid)" class="signin" novalidate autocomplete="off">\n <fieldset>\n <div class="form-group" show-errors>\n <label for="currentPassword">Current Password</label>\n <input type="password" id="currentPassword" name="currentPassword" class="form-control" ng-model="vm.passwordDetails.currentPassword" placeholder="Current Password" required>\n <div ng-messages="vm.passwordForm.currentPassword.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Your current password is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="newPassword">New Password</label>\n <input type="password" id="newPassword" name="newPassword" class="form-control" ng-model="vm.passwordDetails.newPassword" placeholder="New Password" uib-popover="{{vm.getPopoverMsg()}}" uib-popover-trigger="focus" password-validator required>\n <div ng-messages="vm.passwordForm.newPassword.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Enter a new password.</p>\n <div ng-repeat="passwordError in passwordErrors">\n <p class="help-block error-text" ng-show="vm.passwordForm.newPassword.$error.requirements">{{passwordError}}</p>\n </div>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="verifyPassword">Verify Password</label>\n <input type="password" id="verifyPassword" name="verifyPassword" class="form-control" ng-model="vm.passwordDetails.verifyPassword" placeholder="Verify Password" password-verify="vm.passwordDetails.newPassword" required>\n <div ng-messages="vm.passwordForm.verifyPassword.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Verify your new password.</p>\n <p class="help-block error-text" ng-show="vm.passwordForm.verifyPassword.$error.passwordVerify">Passwords do not match.</p>\n </div>\n </div>\n <div class="form-group" ng-show="!vm.passwordForm.newPassword.$error.required">\n <label>Password Requirements</label>\n <uib-progressbar value="requirementsProgress" type="{{requirementsColor}}"><span style="color:white; white-space:nowrap;">{{requirementsProgress}}%</span></uib-progressbar>\n </div>\n <div class="text-center form-group">\n <button type="submit" class="btn btn-primary">Save Password</button>\n </div>\n </fieldset>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/settings/change-profile-picture.client.view.html', '<section class="row">\n <div class="col-xs-offset-1 col-xs-10 col-md-offset-3 col-md-4">\n <form class="signin form-horizontal">\n <fieldset>\n <div ng-show="vm.fileSelected" class="text-center form-group">\n <p>Crop your picture then press upload below:</p>\n <div ngf-drop ng-model="picFile" ngf-pattern="image/*" class="cropArea">\n <img-crop image="picFile | ngfDataUrl" result-image="croppedDataUrl" ng-init="croppedDataUrl=\'\'"></img-crop>\n </div>\n </div>\n <div class="form-group text-center">\n <img ng-src="{{vm.fileSelected ? croppedDataUrl : \'/\' + vm.user.profileImageURL}}" alt="{{vm.user.displayName}}" class="img-thumbnail user-profile-picture" ngf-drop>\n </div>\n <div ng-show="!vm.fileSelected" class="text-center form-group">\n <button class="btn btn-default btn-file" ngf-select="vm.fileSelected = true" ng-model="picFile" accept="image/*">Select Picture</button>\n </div>\n <div ng-show="vm.fileSelected" class="text-center form-group">\n <button class="btn btn-primary" ng-click="vm.upload(croppedDataUrl, picFile.name)">Upload</button>\n <button class="btn btn-default" ng-click="vm.fileSelected = false">Cancel</button>\n </div>\n <div ng-show="vm.fileSelected" class="progress text-center">\n <div class="progress-bar" role="progressbar" aria-valuenow="{{vm.progress}}" aria-valuemin="0" aria-valuemax="100" style="width:{{vm.progress}}%" ng-bind="vm.progress + \'%\'">\n <span class="sr-only">{{vm.progress}}% Complete</span>\n </div>\n </div>\n </fieldset>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/settings/edit-profile.client.view.html', '<section class="row">\n <div class="col-xs-offset-1 col-xs-10 col-md-offset-4 col-md-4">\n <form name="vm.userForm" ng-submit="vm.updateUserProfile(vm.userForm.$valid)" class="signin" novalidate autocomplete="off">\n <fieldset>\n <div class="form-group" show-errors>\n <label for="firstName">First Name</label>\n <input type="text" id="firstName" name="firstName" class="form-control" ng-model="vm.user.firstName" placeholder="First Name" required autofocus>\n <div ng-messages="vm.userForm.firstName.$error" role="alert">\n <p class="help-block error-text" ng-message="required">First name is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="lastName">Last Name</label>\n <input type="text" id="lastName" name="lastName" class="form-control" ng-model="vm.user.lastName" placeholder="Last Name" required>\n <div ng-messages="vm.userForm.lastName.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Last name is required.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="email">Email</label>\n <input type="email" id="email" name="email" class="form-control" ng-model="vm.user.email" placeholder="Email" lowercase required>\n <div ng-messages="vm.userForm.email.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Email address is required.</p>\n <p class="help-block error-text" ng-message="email">Email address is invalid.</p>\n </div>\n </div>\n <div class="form-group" show-errors>\n <label for="username">Username</label>\n <input type="text" id="username" name="username" class="form-control" ng-model="vm.user.username" placeholder="Username" lowercase required>\n <div ng-messages="vm.userForm.username.$error" role="alert">\n <p class="help-block error-text" ng-message="required">Username is required.</p>\n </div>\n </div>\n <div class="text-center form-group">\n <button type="submit" class="btn btn-primary">Save Profile</button>\n </div>\n </fieldset>\n </form>\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/settings/manage-social-accounts.client.view.html', '<section class="row">\n <h3 class="col-md-12 text-center" ng-show="vm.hasConnectedAdditionalSocialAccounts()">Connected social accounts:</h3>\n <div class="col-md-12 text-center">\n <!-- If the user\'s provider field (primary) is a social account, show it here -->\n <div ng-if="vm.user.provider !== \'local\'" class="social-account-container">\n <img ng-src="/modules/users/client/img/buttons/{{vm.user.provider}}.png">\n <i class="glyphicon glyphicon-check text-success user-primary-account" data-toggle="popover" title="Primary: {{vm.user.provider}}"></i>\n </div>\n <div ng-repeat="(providerName, providerData) in vm.user.additionalProvidersData" class="social-account-container">\n <a href ng-click="vm.removeUserSocialAccount(providerName)">\n <img class="social-button" ng-src="/modules/users/client/img/buttons/{{::providerName}}.png">\n <span class="btn btn-danger btn-add-remove-account">\n <i class="glyphicon glyphicon-trash"></i>\n </span>\n </a>\n </div>\n </div>\n <h3 class="col-md-12 text-center" ng-show="!vm.hasConnectedAdditionalSocialAccounts()">Unconnected social accounts:</h3>\n <div class="col-md-12 text-center">\n <div class="social-account-container" ng-hide="vm.isConnectedSocialAccount(\'facebook\')">\n <a href="/api/auth/facebook" target="_self">\n <img class="social-button" ng-src="/modules/users/client/img/buttons/facebook.png">\n <span class="btn btn-success btn-add-remove-account">\n <i class="glyphicon glyphicon-plus"></i>\n </span>\n </a>\n </div>\n <div class="social-account-container" ng-hide="vm.isConnectedSocialAccount(\'twitter\')">\n <a href="/api/auth/twitter" target="_self">\n <img class="social-button" ng-src="/modules/users/client/img/buttons/twitter.png">\n <span class="btn btn-success btn-add-remove-account">\n <i class="glyphicon glyphicon-plus"></i>\n </span>\n </a>\n </div>\n <div class="social-account-container" ng-hide="vm.isConnectedSocialAccount(\'google\')">\n <a href="/api/auth/google" target="_self">\n <img class="social-button" ng-src="/modules/users/client/img/buttons/google.png">\n <span class="btn btn-success btn-add-remove-account">\n <i class="glyphicon glyphicon-plus"></i>\n </span>\n </a>\n </div>\n <div class="social-account-container" ng-hide="vm.isConnectedSocialAccount(\'linkedin\')">\n <a href="/api/auth/linkedin" target="_self">\n <img class="social-button" ng-src="/modules/users/client/img/buttons/linkedin.png">\n <span class="btn btn-success btn-add-remove-account">\n <i class="glyphicon glyphicon-plus"></i>\n </span>\n </a>\n </div>\n <div class="social-account-container" ng-hide="vm.isConnectedSocialAccount(\'github\')">\n <a href="/api/auth/github" target="_self">\n <img class="social-button" ng-src="/modules/users/client/img/buttons/github.png">\n <span class="btn btn-success btn-add-remove-account">\n <i class="glyphicon glyphicon-plus"></i>\n </span>\n </a>\n </div>\n <div class="social-account-container" ng-hide="vm.isConnectedSocialAccount(\'paypal\')">\n <a href="/api/auth/paypal" target="_self">\n <img class="social-button" ng-src="/modules/users/client/img/buttons/paypal.png">\n <span class="btn btn-success btn-add-remove-account">\n <i class="glyphicon glyphicon-plus"></i>\n </span>\n </a>\n </div>\n </div>\n</section>\n');
$templateCache.put('modules/users/client/views/settings/settings.client.view.html', '<section>\n <div class="page-header">\n <h1>Settings</h1>\n </div>\n <div class="row">\n <nav class="col-sm-3 col-md-3">\n <ul class="nav nav-pills nav-stacked">\n <li ui-sref-active="active">\n <a ui-sref="settings.profile">Edit Profile</a>\n </li>\n <li ui-sref-active="active">\n <a ui-sref="settings.picture">Change Profile Picture</a>\n </li>\n <li ui-sref-active="active" ng-show="vm.user.provider === \'local\'">\n <a ui-sref="settings.password">Change Password</a>\n </li>\n <li ui-sref-active="active">\n <a ui-sref="settings.accounts">Manage Social Accounts</a>\n </li>\n </ul>\n </nav>\n <div class="col-sm-9 col-md-8 settings-view">\n <div ui-view></div>\n </div>\n </div>\n</section>\n'); }
})();