From 4e273aa85f8da9b2152ae007fcf758a2b1d66e98 Mon Sep 17 00:00:00 2001 From: jliddev Date: Mon, 14 Dec 2020 12:24:36 -0600 Subject: [PATCH] Fix #584 --- .../src/app/addon-providers/addon-provider.ts | 1 + .../src/app/addon-providers/curse-addon-provider.ts | 1 + .../src/app/addon-providers/github-addon-provider.ts | 1 + .../src/app/addon-providers/raiderio-provider.ts | 1 + .../src/app/addon-providers/tukui-addon-provider.ts | 1 + .../addon-providers/wow-interface-addon-provider.ts | 1 + .../src/app/addon-providers/wowup-addon-provider.ts | 1 + .../options-addon-section.component.ts | 10 +++++++--- .../src/app/models/wowup/addon-provider-state.ts | 1 + .../src/app/services/addons/addon.service.ts | 1 + 10 files changed, 16 insertions(+), 3 deletions(-) diff --git a/wowup-electron/src/app/addon-providers/addon-provider.ts b/wowup-electron/src/app/addon-providers/addon-provider.ts index f35438f1..e79ba8b6 100644 --- a/wowup-electron/src/app/addon-providers/addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/addon-provider.ts @@ -11,6 +11,7 @@ export interface AddonProvider { forceIgnore: boolean; allowReinstall: boolean; allowChannelChange: boolean; + allowEdit: boolean; getAll(clientType: WowClientType, addonIds: string[]): Promise; diff --git a/wowup-electron/src/app/addon-providers/curse-addon-provider.ts b/wowup-electron/src/app/addon-providers/curse-addon-provider.ts index 7b88346f..82fdb583 100644 --- a/wowup-electron/src/app/addon-providers/curse-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/curse-addon-provider.ts @@ -46,6 +46,7 @@ export class CurseAddonProvider implements AddonProvider { public readonly forceIgnore = false; public readonly allowReinstall = true; public readonly allowChannelChange = true; + public readonly allowEdit = true; public enabled = true; constructor( diff --git a/wowup-electron/src/app/addon-providers/github-addon-provider.ts b/wowup-electron/src/app/addon-providers/github-addon-provider.ts index c5b417d6..777425f6 100644 --- a/wowup-electron/src/app/addon-providers/github-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/github-addon-provider.ts @@ -27,6 +27,7 @@ export class GitHubAddonProvider implements AddonProvider { public readonly forceIgnore = false; public readonly allowReinstall = true; public readonly allowChannelChange = false; + public readonly allowEdit = false; public enabled = true; constructor(private _httpClient: HttpClient) {} diff --git a/wowup-electron/src/app/addon-providers/raiderio-provider.ts b/wowup-electron/src/app/addon-providers/raiderio-provider.ts index 836cf841..f13a392d 100644 --- a/wowup-electron/src/app/addon-providers/raiderio-provider.ts +++ b/wowup-electron/src/app/addon-providers/raiderio-provider.ts @@ -20,6 +20,7 @@ export class RaiderIoAddonProvider implements AddonProvider { public readonly forceIgnore = true; public readonly allowReinstall = false; public readonly allowChannelChange = false; + public readonly allowEdit = false; public enabled = true; constructor() {} diff --git a/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts b/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts index e7c39579..c21b46aa 100644 --- a/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts @@ -29,6 +29,7 @@ export class TukUiAddonProvider implements AddonProvider { public readonly forceIgnore = false; public readonly allowReinstall = true; public readonly allowChannelChange = false; + public readonly allowEdit = true; public enabled = true; constructor( diff --git a/wowup-electron/src/app/addon-providers/wow-interface-addon-provider.ts b/wowup-electron/src/app/addon-providers/wow-interface-addon-provider.ts index 76f65477..12f65fbd 100644 --- a/wowup-electron/src/app/addon-providers/wow-interface-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/wow-interface-addon-provider.ts @@ -27,6 +27,7 @@ export class WowInterfaceAddonProvider implements AddonProvider { public readonly forceIgnore = false; public readonly allowReinstall = true; public readonly allowChannelChange = false; + public readonly allowEdit = true; public enabled = true; constructor( diff --git a/wowup-electron/src/app/addon-providers/wowup-addon-provider.ts b/wowup-electron/src/app/addon-providers/wowup-addon-provider.ts index 48e768fc..160fef4f 100644 --- a/wowup-electron/src/app/addon-providers/wowup-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/wowup-addon-provider.ts @@ -37,6 +37,7 @@ export class WowUpAddonProvider implements AddonProvider { public readonly forceIgnore = false; public readonly allowReinstall = true; public readonly allowChannelChange = false; + public readonly allowEdit = true; public enabled = true; constructor(private _httpClient: HttpClient, private _electronService: ElectronService) {} diff --git a/wowup-electron/src/app/components/options-addon-section/options-addon-section.component.ts b/wowup-electron/src/app/components/options-addon-section/options-addon-section.component.ts index de9ddfa4..aeb6a965 100644 --- a/wowup-electron/src/app/components/options-addon-section/options-addon-section.component.ts +++ b/wowup-electron/src/app/components/options-addon-section/options-addon-section.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from "@angular/core"; import { MatSelectChange } from "@angular/material/select"; import { FormControl } from "@angular/forms"; -import { find } from "lodash"; +import { filter } from "lodash"; import { WowUpService } from "../../services/wowup/wowup.service"; import { AddonService } from "../../services/addons/addon.service"; import { AddonProviderState } from "../../models/wowup/addon-provider-state"; @@ -19,7 +19,7 @@ export class OptionsAddonSectionComponent implements OnInit { constructor(private _addonService: AddonService, private _wowupService: WowUpService) {} ngOnInit(): void { - this.addonProviderStates = this._addonService.getAddonProviderStates(); + this.addonProviderStates = filter(this._addonService.getAddonProviderStates(), (provider) => provider.canEdit); this.enabledAddonProviders.setValue(this.getEnabledProviderNames()); console.debug("addonProviderStates", this.addonProviderStates); } @@ -27,7 +27,11 @@ export class OptionsAddonSectionComponent implements OnInit { public onProviderStateSelectionChange(event: MatSelectionListChange) { console.debug(event); event.options.forEach((option) => { - this._wowupService.setAddonProviderState({ providerName: option.value, enabled: option.selected }); + this._wowupService.setAddonProviderState({ + providerName: option.value, + enabled: option.selected, + canEdit: true, + }); this._addonService.setProviderEnabled(option.value, option.selected); }); } diff --git a/wowup-electron/src/app/models/wowup/addon-provider-state.ts b/wowup-electron/src/app/models/wowup/addon-provider-state.ts index 269a498f..f6915f61 100644 --- a/wowup-electron/src/app/models/wowup/addon-provider-state.ts +++ b/wowup-electron/src/app/models/wowup/addon-provider-state.ts @@ -1,4 +1,5 @@ export interface AddonProviderState { providerName: string; enabled: boolean; + canEdit: boolean; } diff --git a/wowup-electron/src/app/services/addons/addon.service.ts b/wowup-electron/src/app/services/addons/addon.service.ts index 52539e55..d9f5b5eb 100644 --- a/wowup-electron/src/app/services/addons/addon.service.ts +++ b/wowup-electron/src/app/services/addons/addon.service.ts @@ -121,6 +121,7 @@ export class AddonService { return { providerName: provider.name, enabled: provider.enabled, + canEdit: provider.allowEdit, }; }); }