From da10e71571faa63c092eecb7dc7446552a496bb3 Mon Sep 17 00:00:00 2001 From: jliddev Date: Tue, 15 Jun 2021 10:53:07 -0500 Subject: [PATCH] Make the alert dialog more configurable Improve the wording on the install alert Standardize the CanUpdate logic --- wowup-electron/src/app/app.component.ts | 2 ++ .../alert-dialog/alert-dialog.component.html | 10 +++++++--- .../alert-dialog/alert-dialog.component.ts | 3 +++ .../app/pages/my-addons/my-addons.component.ts | 2 +- .../src/app/services/addons/addon.service.ts | 17 ++--------------- .../src/app/services/dialog/dialog.factory.ts | 14 +++++++------- wowup-electron/src/app/utils/addon.utils.ts | 12 +++++++----- 7 files changed, 29 insertions(+), 31 deletions(-) diff --git a/wowup-electron/src/app/app.component.ts b/wowup-electron/src/app/app.component.ts index a4da7c0b..ee949fc7 100644 --- a/wowup-electron/src/app/app.component.ts +++ b/wowup-electron/src/app/app.component.ts @@ -118,6 +118,8 @@ export class AppComponent implements OnInit, OnDestroy, AfterViewInit { data: { title: this.translate.instant("APP.WOWUP_UPDATE.INSTALL_TITLE"), message: this.translate.instant("APP.WOWUP_UPDATE.SNACKBAR_TEXT"), + positiveButton: "APP.WOWUP_UPDATE.DOWNLOADED_TOOLTIP", + positiveButtonColor: "primary", }, }); diff --git a/wowup-electron/src/app/components/alert-dialog/alert-dialog.component.html b/wowup-electron/src/app/components/alert-dialog/alert-dialog.component.html index a69fc43c..98590fc6 100644 --- a/wowup-electron/src/app/components/alert-dialog/alert-dialog.component.html +++ b/wowup-electron/src/app/components/alert-dialog/alert-dialog.component.html @@ -2,8 +2,12 @@

 
-
- +
\ No newline at end of file diff --git a/wowup-electron/src/app/components/alert-dialog/alert-dialog.component.ts b/wowup-electron/src/app/components/alert-dialog/alert-dialog.component.ts index fa94b495..81edc56e 100644 --- a/wowup-electron/src/app/components/alert-dialog/alert-dialog.component.ts +++ b/wowup-electron/src/app/components/alert-dialog/alert-dialog.component.ts @@ -4,6 +4,9 @@ import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog"; export interface AlertDialogData { title: string; message: string; + positiveButton?: string; + positiveButtonColor?: "primary" | "accent" | "warn"; + positiveButtonStyle?: "raised" | "flat" | "stroked"; } @Component({ diff --git a/wowup-electron/src/app/pages/my-addons/my-addons.component.ts b/wowup-electron/src/app/pages/my-addons/my-addons.component.ts index 8909f930..9a1ee341 100644 --- a/wowup-electron/src/app/pages/my-addons/my-addons.component.ts +++ b/wowup-electron/src/app/pages/my-addons/my-addons.component.ts @@ -446,7 +446,7 @@ export class MyAddonsComponent implements OnInit, OnDestroy, AfterViewInit { const addons = await this.addonService.getAddons(this.selectedInstallation, false); try { - const filteredAddons = _.filter(addons, (addon) => this.addonService.canUpdateAddon(addon)); + const filteredAddons = _.filter(addons, (addon) => AddonUtils.needsUpdate(addon)); const promises = _.map(filteredAddons, async (addon) => { try { diff --git a/wowup-electron/src/app/services/addons/addon.service.ts b/wowup-electron/src/app/services/addons/addon.service.ts index 153cdd98..7414bf75 100644 --- a/wowup-electron/src/app/services/addons/addon.service.ts +++ b/wowup-electron/src/app/services/addons/addon.service.ts @@ -517,7 +517,7 @@ export class AddonService { await this.syncAddons(installation, addons); for (const addon of addons) { - if (!this.canUpdateAddon(addon) || !addon.id) { + if (!AddonUtils.needsUpdate(addon) || !addon.id) { continue; } @@ -532,19 +532,6 @@ export class AddonService { return updatedAddons; } - public canUpdateAddon(addon: Addon): boolean { - if (addon.isIgnored) { - return false; - } - - // Sometimes authors push out new builds without changing the toc version. - if (addon.externalLatestReleaseId && addon.externalLatestReleaseId !== addon.installedExternalReleaseId) { - return true; - } - - return !!addon.installedVersion && addon.installedVersion !== addon.latestVersion; - } - public getAutoUpdateEnabledAddons(): Addon[] { return this._addonStorage.queryAll((addon) => { return addon.isIgnored !== true && addon.autoUpdateEnabled; @@ -1909,7 +1896,7 @@ export class AddonService { private areAnyAddonsAvailableForUpdate(): boolean { const updateReadyAddons = this._addonStorage.queryAll((addon) => { - return addon.isIgnored !== true && this.canUpdateAddon(addon); + return addon.isIgnored !== true && AddonUtils.needsUpdate(addon); }); return updateReadyAddons.length > 0; diff --git a/wowup-electron/src/app/services/dialog/dialog.factory.ts b/wowup-electron/src/app/services/dialog/dialog.factory.ts index 16ed9b74..b87ca84b 100644 --- a/wowup-electron/src/app/services/dialog/dialog.factory.ts +++ b/wowup-electron/src/app/services/dialog/dialog.factory.ts @@ -8,7 +8,7 @@ import { first } from "rxjs/operators"; import { AddonChannelType } from "../../../common/wowup/models"; import { AddonViewModel } from "../../business-objects/addon-view-model"; import { AddonDetailComponent, AddonDetailModel } from "../../components/addon-detail/addon-detail.component"; -import { AlertDialogComponent } from "../../components/alert-dialog/alert-dialog.component"; +import { AlertDialogComponent, AlertDialogData } from "../../components/alert-dialog/alert-dialog.component"; import { ConfirmDialogComponent } from "../../components/confirm-dialog/confirm-dialog.component"; import { AddonSearchResult } from "../../models/wowup/addon-search-result"; @@ -38,18 +38,18 @@ export class DialogFactory { }); } - public getAlertDialog(title: string, message: string): MatDialogRef { + public getAlertDialog(data: AlertDialogData): MatDialogRef { return this._dialog.open(AlertDialogComponent, { minWidth: 250, - data: { - title, - message, - }, + data: { ...data }, }); } public getErrorDialog(title: string, message: string): MatDialogRef { - return this.getAlertDialog(title, message); + return this.getAlertDialog({ + title, + message, + }); } public getPotentialAddonDetailsDialog( diff --git a/wowup-electron/src/app/utils/addon.utils.ts b/wowup-electron/src/app/utils/addon.utils.ts index 0680fb6a..fc3a9c8d 100644 --- a/wowup-electron/src/app/utils/addon.utils.ts +++ b/wowup-electron/src/app/utils/addon.utils.ts @@ -26,14 +26,16 @@ export function getAddonDependencies( } export function needsUpdate(addon: Addon | undefined): boolean { - if (addon === undefined) { + if (addon.isIgnored) { return false; } - return ( - (addon.externalLatestReleaseId && addon.externalLatestReleaseId !== addon.installedExternalReleaseId) || - addon.installedVersion !== addon.latestVersion - ); + // Sometimes authors push out new builds without changing the toc version. + if (addon.externalLatestReleaseId && addon.externalLatestReleaseId !== addon.installedExternalReleaseId) { + return true; + } + + return !!addon.installedVersion && addon.installedVersion !== addon.latestVersion; } export function needsInstall(addon: Addon): boolean {