1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-15 07:43:35 +00:00

export tool

This commit is contained in:
Kyle Spearrin
2018-04-09 19:05:36 -04:00
parent 377684238c
commit 5a9e7df7d6
9 changed files with 90 additions and 9 deletions

2
jslib

Submodule jslib updated: 4f79addb8a...cd1828da23

6
package-lock.json generated
View File

@@ -223,12 +223,6 @@
"integrity": "sha512-O66D2B9OZDP+vTvfDJUJnk/HfOueeerLXNZQtVY+1ICbp6hO0ySkOtt+N+MGa24YS48JzavN6C2BjYBnKTGwiw==",
"dev": true
},
"@types/papaparse": {
"version": "4.1.31",
"resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-4.1.31.tgz",
"integrity": "sha512-8+d1hk3GgF+NJ6mMZZ5zKimqIOc+8OTzpLw4RQ8wnS1NkJh/dMH3NEhSud4Ituq2SGXJjOG6wIczCBAKsSsBdQ==",
"dev": true
},
"@types/safari-extension": {
"version": "0.0.27",
"resolved": "https://registry.npmjs.org/@types/safari-extension/-/safari-extension-0.0.27.tgz",

View File

@@ -31,7 +31,6 @@
"@types/lunr": "2.1.5",
"@types/node": "8.0.19",
"@types/node-forge": "0.6.10",
"@types/papaparse": "4.1.31",
"@types/safari-extension": "^0.0.27",
"@types/safari-extension-content": "^0.0.14",
"@types/tldjs": "1.7.1",

View File

@@ -109,4 +109,7 @@ export const routerTransition = trigger('routerTransition', [
transition('add-cipher => generator, edit-cipher => generator, tabs => generator', inSlideUp),
transition('generator => add-cipher, generator => edit-cipher, generator => tabs', outSlideDown),
transition('tabs => export', inSlideUp),
transition('export => tabs', outSlideDown),
]);

View File

@@ -16,6 +16,7 @@ import { TwoFactorOptionsComponent } from './accounts/two-factor-options.compone
import { TwoFactorComponent } from './accounts/two-factor.component';
import { SettingsComponent } from './settings/settings.component';
import { TabsComponent } from './tabs.component';
import { ExportComponent } from './tools/export.component';
import { PasswordGeneratorComponent } from './tools/password-generator.component';
import { PasswordGeneratorHistoryComponent } from './tools/password-generator-history.component';
import { ToolsComponent } from './tools/tools.component';
@@ -42,6 +43,7 @@ const routes: Routes = [
{ path: 'edit-cipher', component: AddEditComponent, data: { state: 'edit-cipher' } },
{ path: 'generator', component: PasswordGeneratorComponent, data: { state: 'generator' } },
{ path: 'generator-history', component: PasswordGeneratorHistoryComponent, data: { state: 'generator-history' } },
{ path: 'export', component: ExportComponent, data: { state: 'export' } },
{
path: 'tabs', component: TabsComponent,
data: { state: 'tabs' },

View File

@@ -25,6 +25,7 @@ import { TwoFactorOptionsComponent } from './accounts/two-factor-options.compone
import { TwoFactorComponent } from './accounts/two-factor.component';
import { SettingsComponent } from './settings/settings.component';
import { TabsComponent } from './tabs.component';
import { ExportComponent } from './tools/export.component';
import { PasswordGeneratorComponent } from './tools/password-generator.component';
import { PasswordGeneratorHistoryComponent } from './tools/password-generator-history.component';
import { ToolsComponent } from './tools/tools.component';
@@ -77,6 +78,7 @@ import { IconComponent } from 'jslib/angular/components/icon.component';
CiphersListComponent,
CurrentTabComponent,
EnvironmentComponent,
ExportComponent,
FallbackSrcDirective,
GroupingsComponent,
HomeComponent,

View File

@@ -0,0 +1,39 @@
<form (ngSubmit)="submit()">
<header>
<div class="left">
<button appBlurClick type="button" (click)="close()">
{{'close' | i18n}}
</button>
</div>
<div class="center">
<span class="title">{{'exportVault' | i18n}}</span>
</div>
<div class="right">
<button appBlurClick type="submit">{{'submit' | i18n}}</button>
</div>
</header>
<content>
<div class="box">
<div class="box-content">
<div class="box-content-row box-content-row-flex" appBoxRow>
<div class="row-main">
<label for="masterPassword">{{'masterPass' | i18n}}</label>
<input id="masterPassword" type="{{showPassword ? 'text' : 'password'}}" name="MasterPassword"
class="monospaced" [(ngModel)]="masterPassword" required appAutofocus>
</div>
<div class="action-buttons">
<a class="row-btn" href="#" appStopClick appBlurClick
title="{{'toggleVisibility' | i18n}}" (click)="togglePassword()">
<i class="fa fa-lg"
[ngClass]="{'fa-eye': !showPassword, 'fa-eye-slash': showPassword}"></i>
</a>
</div>
</div>
</div>
<div class="box-footer">
<p>{{'exportMasterPassword' | i18n}}</p>
<strong>{{'warning' | i18n}}</strong>: {{'exportWarning' | i18n}}
</div>
</div>
</content>
</form>

View File

@@ -0,0 +1,38 @@
import { ToasterService } from 'angular2-toaster';
import { Angulartics2 } from 'angulartics2';
import { Location } from '@angular/common';
import { Component } from '@angular/core';
import { CipherService } from 'jslib/abstractions/cipher.service';
import { CryptoService } from 'jslib/abstractions/crypto.service';
import { FolderService } from 'jslib/abstractions/folder.service';
import { I18nService } from 'jslib/abstractions/i18n.service';
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
import { UserService } from 'jslib/abstractions/user.service';
import { ExportComponent as BaseExportComponent } from 'jslib/angular/components/export.component';
@Component({
selector: 'app-export',
templateUrl: 'export.component.html',
})
export class ExportComponent extends BaseExportComponent {
constructor(analytics: Angulartics2, toasterService: ToasterService,
cipherService: CipherService, folderService: FolderService,
cryptoService: CryptoService, userService: UserService,
i18nService: I18nService, platformUtilsService: PlatformUtilsService,
private location: Location) {
super(analytics, toasterService, cipherService, folderService, cryptoService, userService, i18nService,
platformUtilsService, window);
}
protected saved() {
super.saved();
this.close();
}
close() {
this.location.back();
}
}

View File

@@ -8,12 +8,16 @@
<div class="right"></div>
</header>
<content>
<div class="box list">
<div class="box">
<div class="box-content">
<a routerLink="/generator" class="box-content-row box-content-row-flex text-default">
<div class="row-main">{{'passGen' | i18n}}</div>
<i class="fa fa-chevron-right row-sub-icon"></i>
</a>
<a routerLink="/export" class="box-content-row box-content-row-flex text-default">
<div class="row-main">{{'exportVault' | i18n}}</div>
<i class="fa fa-chevron-right row-sub-icon"></i>
</a>
</div>
</div>
</content>