mirror of
https://github.com/bitwarden/browser
synced 2025-12-20 02:03:39 +00:00
back everywhere, a few password history touch-ups
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<form name="theForm" ng-submit="submit(model)" bit-form="submitPromise">
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.login}}</a>
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<button type="submit" class="btn btn-link" ng-show="!theForm.$loading">{{i18n.submit}}</button>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
ng-if="providerType === constantsProvider.authenticator || providerType === constantsProvider.email">
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a href="#" ng-click="back()"><i class="fa fa-chevron-left"></i> {{i18n.login}}</a>
|
||||
<a href="#" ng-click="back()"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<button type="submit" class="btn btn-link" ng-show="!theForm.$loading">{{i18n.continue}}</button>
|
||||
@@ -47,7 +47,7 @@
|
||||
<form name="theForm" bit-form="loginPromise" ng-if="providerType === constantsProvider.duo" autocomplete="off">
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.login}}</a>
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">Duo</div>
|
||||
</div>
|
||||
@@ -75,7 +75,7 @@
|
||||
autocomplete="off">
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.login}}</a>
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<button type="submit" class="btn btn-link" ng-show="!theForm.$loading">{{i18n.continue}}</button>
|
||||
@@ -112,7 +112,7 @@
|
||||
<form name="theForm" bit-form="loginPromise" ng-if="providerType === constantsProvider.u2f" autocomplete="off">
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.login}}</a>
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<i class="fa fa-spinner fa-lg fa-spin" ng-show="theForm.$loading"></i>
|
||||
@@ -147,7 +147,7 @@
|
||||
<div ng-if="providerType === null">
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.login}}</a>
|
||||
<a ui-sref="login({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">{{i18n.loginUnavailable}}</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.settings}}</a>
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">{{i18n.about}}</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="about({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.about}}</a>
|
||||
<a ui-sref="about({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">{{i18n.thankYou}}</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.settings}}</a>
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">{{i18n.features}}</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.settings}}</a>
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a ui-sref="addFolder({animation: 'in-slide-up'})"><i class="fa fa-plus fa-lg"></i></a>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.settings}}</a>
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">{{i18n.helpFeedback}}</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.settings}}</a>
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">{{i18n.premiumMembership}}</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.settings}}</a>
|
||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">{{i18n.sync}}</div>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
.module('bit.tools')
|
||||
|
||||
.controller('toolsPasswordGeneratorController', function ($scope, $state, $stateParams, passwordGenerationService,
|
||||
toastr, $q, utilsService, $analytics, i18nService) {
|
||||
toastr, utilsService, $analytics, i18nService) {
|
||||
$scope.i18n = i18nService;
|
||||
var addState = $stateParams.addState,
|
||||
editState = $stateParams.editState;
|
||||
@@ -12,10 +12,11 @@
|
||||
utilsService.initListSectionItemListeners($(document), angular);
|
||||
$scope.password = '-';
|
||||
|
||||
$q.when(passwordGenerationService.getOptions()).then(function (options) {
|
||||
passwordGenerationService.getOptions().then(function (options) {
|
||||
$scope.options = options;
|
||||
$scope.regenerate(false);
|
||||
$analytics.eventTrack('Generated Password');
|
||||
passwordGenerationService.addHistory($scope.password);
|
||||
});
|
||||
|
||||
$scope.sliderMoved = function () {
|
||||
@@ -26,14 +27,16 @@
|
||||
e.preventDefault();
|
||||
$analytics.eventTrack('Generated Password');
|
||||
$scope.saveOptions($scope.options);
|
||||
passwordGenerationService.addHistory($scope.password);
|
||||
});
|
||||
|
||||
$scope.regenerate = function (trackRegenerateEvent) {
|
||||
if (trackRegenerateEvent) {
|
||||
$analytics.eventTrack('Regenerated Password');
|
||||
}
|
||||
|
||||
$scope.regenerate = function (trackEvent) {
|
||||
$scope.password = passwordGenerationService.generatePassword($scope.options);
|
||||
|
||||
if (trackEvent) {
|
||||
$analytics.eventTrack('Regenerated Password');
|
||||
passwordGenerationService.addHistory($scope.password);
|
||||
}
|
||||
};
|
||||
|
||||
$scope.saveOptions = function (options) {
|
||||
@@ -57,7 +60,6 @@
|
||||
};
|
||||
|
||||
$scope.clipboardSuccess = function (e) {
|
||||
passwordGenerationService.addHistory(e.text);
|
||||
$analytics.eventTrack('Copied Generated Password');
|
||||
e.clearSelection();
|
||||
toastr.info(i18nService.passwordCopied);
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
angular
|
||||
.module('bit.tools')
|
||||
|
||||
.controller('toolsPasswordGeneratorHistoryController', function (
|
||||
$scope, $state, $stateParams, toastr, $analytics, i18nService, passwordGenerationService) {
|
||||
.controller('toolsPasswordGeneratorHistoryController', function ($scope, $state, $stateParams, toastr, $analytics,
|
||||
i18nService, passwordGenerationService) {
|
||||
$scope.i18n = i18nService;
|
||||
|
||||
$scope.passwords = passwordGenerationService.getHistory();
|
||||
|
||||
$scope.clipboardError = function (e, password) {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
{{i18n.copyPassword}}
|
||||
</a>
|
||||
<a class="list-section-item text-primary" href="" ng-click="goHistory()">
|
||||
{{i18n.viewPasswordHistory}}
|
||||
{{i18n.passwordHistory}}
|
||||
<i class="fa fa-chevron-right fa-lg"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -1,26 +1,24 @@
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ng-click="close()" href="">{{i18n.back}}</a>
|
||||
<a ng-click="close()" href=""><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="title">{{i18n.generatePasswordHistory}}</div>
|
||||
<div class="title">{{i18n.passwordHistory}}</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="list" style="margin-top: 0;">
|
||||
<div class="list-section" ng-if="passwords.length !== 0">
|
||||
<div class="list-section-items">
|
||||
<div class="list-section-item list-section-item-checkbox condensed wrap" ng-repeat="password in passwords | orderBy: 'date':true">
|
||||
<div class="action-buttons">
|
||||
<span class="btn-list" stop-prop stop-click title="{{i18n.copyPassword}}" ngclipboard
|
||||
ngclipboard-error="clipboardError(e)" ngclipboard-success="clipboardSuccess(e, i18n.password)"
|
||||
data-clipboard-text="{{password.password}}">
|
||||
<i class="fa fa-lg fa-clipboard"></i>
|
||||
</span>
|
||||
</div>
|
||||
<span class="text monospaced">
|
||||
{{password.password}}
|
||||
<div class="list">
|
||||
<div class="list-grouped" ng-if="passwords.length !== 0">
|
||||
<div class="list-grouped-item condensed wrap" ng-repeat="password in passwords | orderBy: 'date':true">
|
||||
<div class="action-buttons">
|
||||
<span class="btn-list" stop-prop stop-click title="{{i18n.copyPassword}}" ngclipboard
|
||||
ngclipboard-error="clipboardError(e)" ngclipboard-success="clipboardSuccess(e, i18n.password)"
|
||||
data-clipboard-text="{{password.password}}">
|
||||
<i class="fa fa-lg fa-clipboard"></i>
|
||||
</span>
|
||||
<span class="detail">{{password.date | date}}</span>
|
||||
</div>
|
||||
<span class="text monospaced">
|
||||
{{password.password}}
|
||||
</span>
|
||||
<span class="detail">{{password.date | date: 'medium'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="header header-search">
|
||||
<div class="left">
|
||||
<a ui-sref="tabs.vault({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.myVault}}</a>
|
||||
<a ui-sref="tabs.vault({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> {{i18n.back}}</a>
|
||||
</div>
|
||||
<div class="search">
|
||||
<input type="search" placeholder="{{i18n.searchFolder}}" ng-model="searchText" ng-change="searchCiphers()" id="search" />
|
||||
|
||||
Reference in New Issue
Block a user