log event when copying from list

This commit is contained in:
Kyle Spearrin 2019-07-12 15:00:20 -04:00
parent fd04be2d98
commit 6263a11463
2 changed files with 18 additions and 7 deletions

View File

@ -7,27 +7,30 @@
<i class="fa fa-lg fa-share-square-o"></i>
</span>
<span class="row-btn" appStopClick appStopProp title="{{'copyUsername' | i18n}}"
(click)="copy(cipher.login.username, 'username', 'Username')" [ngClass]="{disabled: !cipher.login.username}">
(click)="copy(cipher, cipher.login.username, 'username', 'Username')"
[ngClass]="{disabled: !cipher.login.username}">
<i class="fa fa-lg fa-user"></i>
</span>
<span class="row-btn" appStopClick appStopProp title="{{'copyPassword' | i18n}}"
(click)="copy(cipher.login.password, 'password', 'Password')" [ngClass]="{disabled: !cipher.login.password}">
(click)="copy(cipher, cipher.login.password, 'password', 'Password')"
[ngClass]="{disabled: !cipher.login.password}">
<i class="fa fa-lg fa-key"></i>
</span>
</ng-container>
<ng-container *ngIf="cipher.type === cipherType.Card">
<span class="row-btn" appStopClick appStopProp title="{{'copyNumber' | i18n}}"
(click)="copy(cipher.card.number, 'number', 'Card Number')" [ngClass]="{disabled: !cipher.card.number}">
(click)="copy(cipher, cipher.card.number, 'number', 'Card Number')" [ngClass]="{disabled: !cipher.card.number}">
<i class="fa fa-lg fa-hashtag"></i>
</span>
<span class="row-btn" appStopClick appStopProp title="{{'copySecurityCode' | i18n}}"
(click)="copy(cipher.card.code, 'securityCode', 'Security Code')" [ngClass]="{disabled: !cipher.card.code}">
(click)="copy(cipher, cipher.card.code, 'securityCode', 'Security Code')"
[ngClass]="{disabled: !cipher.card.code}">
<i class="fa fa-lg fa-key"></i>
</span>
</ng-container>
<ng-container *ngIf="cipher.type === cipherType.SecureNote">
<span class="row-btn" appStopClick appStopProp title="{{'copyNote' | i18n}}"
(click)="copy(cipher.notes, 'note', 'Note')" [ngClass]="{disabled: !cipher.notes}">
(click)="copy(cipher, cipher.notes, 'note', 'Note')" [ngClass]="{disabled: !cipher.notes}">
<i class="fa fa-lg fa-clipboard"></i>
</span>
</ng-container>

View File

@ -11,9 +11,11 @@ import { Angulartics2 } from 'angulartics2';
import { BrowserApi } from '../../browser/browserApi';
import { CipherType } from 'jslib/enums/cipherType';
import { EventType } from 'jslib/enums/eventType';
import { CipherView } from 'jslib/models/view/cipherView';
import { EventService } from 'jslib/abstractions/event.service';
import { I18nService } from 'jslib/abstractions/i18n.service';
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
@ -32,7 +34,7 @@ export class ActionButtonsComponent {
constructor(private analytics: Angulartics2, private toasterService: ToasterService,
private i18nService: I18nService, private platformUtilsService: PlatformUtilsService,
private popupUtilsService: PopupUtilsService) { }
private popupUtilsService: PopupUtilsService, private eventService: EventService) { }
launch() {
if (this.cipher.type !== CipherType.Login || !this.cipher.login.canLaunch) {
@ -46,7 +48,7 @@ export class ActionButtonsComponent {
}
}
copy(value: string, typeI18nKey: string, aType: string) {
copy(cipher: CipherView, value: string, typeI18nKey: string, aType: string) {
if (value == null) {
return;
}
@ -55,6 +57,12 @@ export class ActionButtonsComponent {
this.platformUtilsService.copyToClipboard(value, { window: window });
this.toasterService.popAsync('info', null,
this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));
if (typeI18nKey === 'password') {
this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, cipher.id);
} else if (typeI18nKey === 'securityCode') {
this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, cipher.id);
}
}
view() {