This commit is contained in:
jliddev
2020-12-14 12:24:36 -06:00
parent 98701e1531
commit 4e273aa85f
10 changed files with 16 additions and 3 deletions

View File

@@ -11,6 +11,7 @@ export interface AddonProvider {
forceIgnore: boolean;
allowReinstall: boolean;
allowChannelChange: boolean;
allowEdit: boolean;
getAll(clientType: WowClientType, addonIds: string[]): Promise<AddonSearchResult[]>;

View File

@@ -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(

View File

@@ -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) {}

View File

@@ -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() {}

View File

@@ -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(

View File

@@ -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(

View File

@@ -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) {}

View File

@@ -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);
});
}

View File

@@ -1,4 +1,5 @@
export interface AddonProviderState {
providerName: string;
enabled: boolean;
canEdit: boolean;
}

View File

@@ -121,6 +121,7 @@ export class AddonService {
return {
providerName: provider.name,
enabled: provider.enabled,
canEdit: provider.allowEdit,
};
});
}