import angular from 'angular'; export class GodService { /* @ngInject */ constructor( $rootScope, $compile ) { this.$rootScope = $rootScope; this.$compile = $compile; } async checkForSecurityUpdate() { if (this.offline()) { return false; } const latest = protocolManager.version(); const updateAvailable = await this.protocolVersion() !== latest; if (updateAvailable !== this.securityUpdateAvailable) { this.securityUpdateAvailable = updateAvailable; this.$rootScope.$broadcast("security-update-status-changed"); } return this.securityUpdateAvailable; } presentPasswordWizard(type) { var scope = this.$rootScope.$new(true); scope.type = type; var el = this.$compile("")(scope); angular.element(document.body).append(el); } async presentPrivilegesModal(action, onSuccess, onCancel) { if (this.authenticationInProgress()) { onCancel && onCancel(); return; } const customSuccess = async () => { onSuccess && await onSuccess(); this.currentAuthenticationElement = null; }; const customCancel = async () => { onCancel && await onCancel(); this.currentAuthenticationElement = null; }; const scope = this.$rootScope.$new(true); scope.action = action; scope.onSuccess = customSuccess; scope.onCancel = customCancel; const el = this.$compile(` `)(scope); angular.element(document.body).append(el); this.currentAuthenticationElement = el; } presentPrivilegesManagementModal() { var scope = this.$rootScope.$new(true); var el = this.$compile("")(scope); angular.element(document.body).append(el); } authenticationInProgress() { return this.currentAuthenticationElement != null; } }