import { NotificationService } from "./NotificationService"; // @ts-ignore import * as alertify from "alertifyjs"; import { ActiveUserViewModel } from "../viewmodel/ActiveUserViewModel"; import log = require("loglevel"); import bootbox = require("bootbox") export class AlertifyNotificationService implements NotificationService { private readonly _alertify = alertify; constructor() { this._alertify.set('notifier', 'position', 'top-center'); } success(message: string): void { this._alertify.success(message) } error(message: string): void { this._alertify.error(message); } errorWithDelay(message: string, delay: number): void { const _delay = this._alertify.get('notifier', 'delay'); this._alertify.set('notifier', 'delay', delay); this._alertify.error(message); this._alertify.set('notifier', 'delay', _delay); } warning(message: string): void { this._alertify.warning(message); } message(message: string): void { this._alertify.message(message); } passphrasePrompt(vm: ActiveUserViewModel, vms: ActiveUserViewModel[], cb1: (contactName: string, passphrase: string, lastMessageTime: string | null, op: string) => void, cb2: () => any): void { // alertify.myprompt || alertify.dialog('myprompt', function () { // // document.getElementById('passphraseFormNew')!.addEventListener('submit', function (e: Event) { // // e.preventDefault(); // // log.debug(this.querySelectorAll('input')) // // Array.from(this.querySelectorAll('input')).map((el) => { // // const el2 = el as HTMLInputElement; // // vm.passphrase = el2.value; // // vm.unlocked = true; // // cb1(vm.userName!, vm.passphrase, null, "new"); // // cb2(); // // alertify.myprompt().close(); // // }) // // log.debug(vm) // // }) // return { // main: function (content: HTMLElement) { // log.debug(vm) // // @ts-ignore // this.setContent(content); // }, // setup: function () { // return { // focus: { // // @ts-ignore // element: function () { // // @ts-ignore // return this.elements.body.querySelector(this.get('selector')); // }, // select: true // }, // options: { // title: 'Enter Passphrase', // basic: true, // maximizable: false, // resizable: false, // padding: false // } // }; // }, // settings: { // // @ts-ignore // selector: undefined // }, // } // }) // alertify.myprompt(document.getElementById('passphraseFormNew')).set('selector', 'input[type="password"]'); if (vm.passphrase == null) { bootbox.prompt({ title: "Please enter the passphrase", inputType: 'password', callback: function (result) { if (result) { log.debug(result); cb1(vm.userName!, result, null, "new"); vm.unlocked = true vms.filter(v => v.userName == vm.userName).map(v => { v.passphrase = result; v.unlocked = true }) cb2(); log.debug(vm) log.debug(vms) } } }); } else { cb1(vm.userName!, vm.passphrase, null, "new"); } } }