#54 Changelog begins

This commit is contained in:
jliddev
2020-12-16 00:19:12 -06:00
parent 8676cefb68
commit fbcb2aa851
25 changed files with 160 additions and 6 deletions

View File

@@ -36,6 +36,8 @@ export interface AddonProvider {
onPostInstall(addon: Addon): void;
scan(clientType: WowClientType, addonChannelType: AddonChannelType, addonFolders: AddonFolder[]): Promise<void>;
getChangelog(addon: Addon): Promise<string>;
}
export type AddonProviderType = "Curse" | "GitHub" | "TukUI" | "WowInterface" | "Hub" | "RaiderIO";

View File

@@ -66,6 +66,28 @@ export class CurseAddonProvider implements AddonProvider {
});
}
public async getChangelog(addon: Addon): Promise<string> {
const url = new URL(`${API_URL}/addon/${addon.externalId}/file/${addon.externalLatestReleaseId}/changelog`);
let changelogResponse = await this._httpClient.get(url.toString(), { responseType: "text" }).toPromise();
changelogResponse = this.removeHtml(changelogResponse);
console.debug("changelogResponse", changelogResponse);
return changelogResponse;
}
// Replace 'a' tags with their content to not allow linking
private removeHtml(str: string) {
var tmp = document.createElement("div");
tmp.innerHTML = str;
const aTags = tmp.getElementsByTagName("a");
for (const tag of Array.from(aTags)) {
tag.replaceWith(tag.innerText);
}
return tmp.innerHTML;
}
public async scan(
clientType: WowClientType,
addonChannelType: AddonChannelType,
@@ -375,6 +397,7 @@ export class CurseAddonProvider implements AddonProvider {
gameVersion: this.getGameVersion(lf),
releaseDate: new Date(lf.fileDate),
dependencies: lf.dependencies.map(this.createAddonSearchResultDependency),
externalId: lf.id.toString(),
};
});
@@ -558,6 +581,7 @@ export class CurseAddonProvider implements AddonProvider {
summary: scanResult.searchResult.summary,
releasedAt: new Date(latestVersion.fileDate),
isLoadOnDemand: false,
externalLatestReleaseId: latestVersion.id.toString(),
};
}
}

View File

@@ -54,6 +54,10 @@ export class GitHubAddonProvider implements AddonProvider {
public async searchByQuery(query: string, clientType: WowClientType): Promise<AddonSearchResult[]> {
return [];
}
public async getChangelog(addon: Addon): Promise<string> {
return '';
}
public async searchByUrl(addonUri: URL, clientType: WowClientType): Promise<AddonSearchResult> {
const repoPath = addonUri.pathname;

View File

@@ -25,6 +25,10 @@ export class RaiderIoAddonProvider implements AddonProvider {
constructor() {}
public async getChangelog(addon: Addon): Promise<string> {
return '';
}
public async getAll(clientType: WowClientType, addonIds: string[]): Promise<AddonSearchResult[]> {
return [];
}

View File

@@ -50,6 +50,10 @@ export class TukUiAddonProvider implements AddonProvider {
});
}
public async getChangelog(addon: Addon): Promise<string> {
return '';
}
async getAll(clientType: WowClientType, addonIds: string[]): Promise<AddonSearchResult[]> {
let results: AddonSearchResult[] = [];

View File

@@ -63,6 +63,10 @@ export class WowInterfaceAddonProvider implements AddonProvider {
return searchResults;
}
public async getChangelog(addon: Addon): Promise<string> {
return '';
}
public async getFeaturedAddons(clientType: WowClientType): Promise<AddonSearchResult[]> {
return [];
}

View File

@@ -150,6 +150,10 @@ export class WowUpAddonProvider implements AddonProvider {
}
}
public async getChangelog(addon: Addon): Promise<string> {
return "";
}
public getScanResults = async (addonFolders: AddonFolder[]): Promise<AppWowUpScanResult[]> => {
const t1 = Date.now();

View File

@@ -44,7 +44,14 @@
</span>
</div>
<!-- SUMMARY -->
<div class="mat-caption addon-detail-summary">{{ summary }}</div>
<mat-tab-group mat-stretch-tabs>
<mat-tab [label]="'DIALOGS.ADDON_DETAILS.DESCRIPTION_TAB' | translate">
<div class="mat-caption addon-detail-summary mt-3">{{ summary }}</div>
</mat-tab>
<mat-tab [label]="'DIALOGS.ADDON_DETAILS.CHANGELOG_TAB' | translate">
<div class="mat-caption addon-changelog mt-3" [innerHTML]="changelog$ | async"></div>
</mat-tab>
</mat-tab-group>
</div>
<div *ngIf="isUnknownProvider() === false" mat-dialog-actions class="row align-items-center justify-content-end">
<app-addon-install-button *ngIf="showInstallButton" [addonSearchResult]="model.searchResult"

View File

@@ -1,7 +1,7 @@
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from "@angular/core";
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
import { TranslateService } from "@ngx-translate/core";
import { Subscription } from "rxjs";
import { BehaviorSubject, from, Subscription } from "rxjs";
import { filter } from "rxjs/operators";
import { AddonChannelType } from "../../models/wowup/addon-channel-type";
import { AddonDependencyType } from "../../models/wowup/addon-dependency-type";
@@ -27,6 +27,9 @@ export interface AddonDetailModel {
export class AddonDetailComponent implements OnInit, OnDestroy {
private readonly _subscriptions: Subscription[] = [];
private readonly _dependencies: AddonSearchResultDependency[];
private readonly _changelogSrc = new BehaviorSubject<string>("");
public readonly changelog$ = this._changelogSrc.asObservable();
constructor(
@Inject(MAT_DIALOG_DATA) public model: AddonDetailModel,
@@ -52,7 +55,8 @@ export class AddonDetailComponent implements OnInit, OnDestroy {
}
this._cdRef.detectChanges();
})
}),
from(this.getChangelog()).subscribe((changelog) => this._changelogSrc.next(changelog))
);
}
@@ -74,6 +78,21 @@ export class AddonDetailComponent implements OnInit, OnDestroy {
return this.model.listItem?.addon?.missingDependencies ?? [];
}
hasChangelog() {
return !!this.model.listItem?.addon?.latestChangelog;
}
async getChangelog() {
let changelog = this.model.listItem?.addon?.latestChangelog;
if (changelog) {
return changelog;
}
changelog = await this._addonService.getChangelog(this.model.listItem?.addon);
return changelog;
}
get statusText() {
if (!this.model.listItem) {
return "";

View File

@@ -40,6 +40,8 @@ export interface Addon {
screenshotUrls?: string[];
releasedAt?: Date;
externalIds?: AddonExternalId[];
externalLatestReleaseId?: string;
latestChangelog?: string;
dependencies?: AddonDependency[];
missingDependencies?: string[];
}

View File

@@ -2,6 +2,7 @@ import { AddonChannelType } from "./addon-channel-type";
import { AddonSearchResultDependency } from "./addon-search-result-dependency";
export interface AddonSearchResultFile {
externalId?: string;
channelType: AddonChannelType;
version: string;
folders: string[];

View File

@@ -114,6 +114,16 @@ export class AddonService {
});
}
public async getChangelog(addon: Addon) {
const provider = this.getProvider(addon.providerName);
const changelog = await provider.getChangelog(addon);
addon.latestChangelog = changelog;
this.saveAddon(addon);
return changelog;
}
public isForceIgnore(addon: Addon) {
return addon.providerName === ADDON_PROVIDER_UNKNOWN || this.getProvider(addon.providerName).forceIgnore;
}
@@ -720,6 +730,7 @@ export class AddonService {
addon.latestVersion = latestFile.version;
addon.releasedAt = latestFile.releaseDate;
addon.downloadUrl = latestFile.downloadUrl;
addon.externalLatestReleaseId = latestFile.externalId;
addon.name = result.name;
addon.author = result.author;
addon.externalChannel = getEnumName(AddonChannelType, latestFile.channelType);

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "Von {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "Dieses Addon besitzt {dependencyCount} {dependencyCount, plural, one{Abhängigkeit} other{Abhängigkeiten}}",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "Im Browser anzeigen",
"VIEW_ON_PROVIDER_PREFIX": "Anzeigen auf"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "Schaue Dir den Code auf GitHub an",
"VIEW_GUIDE": "Schaue Dir unseren Guide an, um zu sehen, was WowUp kann"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "Ordner erneut scannen",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "Scanne Deinen Client-Ordner nach installierten Addons",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "Wenn Du ein erneutes scannen durchführst, können deine Addon-Informationen verloren gehen. Dieser Vorgang braucht einen Moment.",

View File

@@ -103,10 +103,12 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "By {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "This addon has {dependencyCount} required {dependencyCount, plural, =1{dependency} other{dependencies}}",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "View in browser",
"VIEW_ON_PROVIDER_PREFIX": "View on",
"MISSING_DEPENDENCIES": "Missing dependencies"
"VIEW_ON_PROVIDER_PREFIX": "View on"
},
"ALERT": {
"ERROR_TITLE": "Error",
@@ -171,7 +173,6 @@
"OPTIONS_TAB_TITLE": "Options"
},
"MY_ADDONS": {
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"ADDON_CONTEXT_MENU": {
"ADDONS_SELECTED": "{count} {count, plural, =1{addon} other{addons}} selected",
"ALPHA_ADDON_CHANNEL": "Alpha",
@@ -212,6 +213,7 @@
"VIEW_GITHUB": "Check out the code on GitHub",
"VIEW_GUIDE": "Check out our guide to see what WowUp can do"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "Re-Scan Folders",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "Scan your client folder for installed addons",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "Doing a re-scan will attempt to guess which addons you currently have installed, doing so may reset known addon information. Use this function when certain addons are not recognized or addon versions are not being shown correctly. This scan will never delete your installed addons, only what WowUp knows about them.\n\nScanning may take a few moments.",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "Por {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "Este addon tiene {dependencyCount} {dependencyCount, plural, one{dependencia requerida} other{dependencias requeridas}}",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "Ver en el navegador",
"VIEW_ON_PROVIDER_PREFIX": "Ver en"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "Eche un vistazo al código en GitHub",
"VIEW_GUIDE": "Descubra de lo que es capaz WowUp con nuestra guía"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "Reescanear Carpetas",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "Vuelve a buscar addons instalados en la carpeta del juego",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "WowUp intentará averiguar qué addons están instalados actualmente. Al hacerlo, la información sobre los addons ya conocidos se podría reiniciar. Utilice esta función cuando ciertos addons no sean reconocidos o las versiones de los addons no se reconozcan correctamente. Este escaneo no elimina los addons instalados, sólo la información que WowUp tiene acerca de ellos.\n\nEl escaneo puede tardar un poco.",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "Par {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "Cet addon a {dependencyCount} {dependencyCount, plural, one{dépendance requise} other{dépendances requises}}",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "Voir dans le navigateur",
"VIEW_ON_PROVIDER_PREFIX": "Voir sur"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "Voir le code sur Github",
"VIEW_GUIDE": "Consultez notre guide pour voir toutes les fonctionnalités de WowUp"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "Réanalyser les dossiers",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "Analysez votre dossier client pour trouver les addons installés",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "Faire une nouvelle analyse tentera de deviner les addons que vous avez actuellement installés, cela pourrait réinitialiser les informations connues des addons. Utilisez cette fonction lorsque certains addons ne sont pas reconnus ou que les versions des addons ne s'affichent pas correctement. Cette analyse ne supprimera jamais vos addons installés, seulement ce que WowUp sait à leur sujet.\n\nL'analyse peut prendre un peu de temps.",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "Di {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "Questo addon ha {dependencyCount, plural, one{una dipendenza} other{{dependencyCount} dipendenze}} {dependencyCount, plural, one{richiesta} other{richieste}}",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "Visualizza nel browser",
"VIEW_ON_PROVIDER_PREFIX": "Visualizza su"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "Controlla il codice su GitHub",
"VIEW_GUIDE": "Controlla la nostra guida per vedere cosa può fare Wowup"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "Riscansiona Cartelle",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "Scansiona la cartella client per gli addons installati",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "Eseguire una nuova scansione verificherà quali addons sono correntemente installati; ciò resetterà le informazioni conosciute degli addons. Utilizzare questa funzione quando alcuni addons non sono riconosciuti o le versioni degli addons non sono mostrate correttamente. Questa operazione non eliminerà i tuoi addons installati, solo cosa WowUp sa riguardo a loro. Questa operazione può richiedere un po' di tempo.",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "제작자: {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "이 애드온은 {dependencyCount}개의 다른 애드온을 참조합니다.",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "브라우저에서 열기",
"VIEW_ON_PROVIDER_PREFIX": "다음에서 보기: "
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "GitHub에서 코드 확인",
"VIEW_GUIDE": "WowUp 가이드 문서 보기"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "디렉토리 재탐색",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "설치된 애드온 목록 확인을 위해 클라이언트 디렉토리를 탐색합니다",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "설치된 애드온을 찾기 위해 재탐색을 할 경우, 애드온 정보가 초기화될 수 있습니다. 특정 애드온이 인식되지 않았거나 버전 정보가 올바르게 표시되지 않을 경우에만 사용하세요. 탐색 작업 중 애드온이 삭제되지는 않으며, WowUp의 정보와 매칭작업만 이루어집니다.\n\n탐색 작업에 시간이 소요될 수 있습니다.",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "Av {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "This addon has {dependencyCount} required {dependencyCount, plural, one{dependency} other{dependencies}}",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "Se i nettleser",
"VIEW_ON_PROVIDER_PREFIX": "View on"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "Check out the code on GitHub",
"VIEW_GUIDE": "Check out our guide to see what WowUp can do"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "Skann Mapper",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "Skann klientens mapper etter installerte utvidelser",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "Ved å skanne på nytt kan utvidelsesinformasjonen bli resatt imens vi prøver å finne ut av hva du har installert. Dette kan ta et øyeblikk.",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "Por {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "Este Addon tem {dependencyCount} {dependencyCount, plural, one{dependência necessária} other{dependências necessárias}}",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "Visualizar no navegador",
"VIEW_ON_PROVIDER_PREFIX": "Ver em"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "Olhe o código no GitHub",
"VIEW_GUIDE": "Olhe o nosso guia para ver o que o WowUp pode fazer"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "Re-escanear pastas",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "Procura por Addons instalados",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "Fazer um novo escaneamento irá tentar conseguir quais Addons você tem instalado, mas fazer isso pode resetar a informação dos Addons conhecidos.",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "От {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "Эта модификация имеет {dependencyCount} {dependencyCount, plural, one{необходимую} other{необходимых}} {dependencyCount, plural, one{зависимость} few{зависимости} other{зависимостей}}",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "Посмотреть в браузере",
"VIEW_ON_PROVIDER_PREFIX": "Посмотреть на"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "Просмотреть код на GitHub",
"VIEW_GUIDE": "Просмотрите наше руководство чтобы узнать что может WowUp"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "Сканировать папки",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "Сканирование папки клиента на наличие установленных модификаций",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "Повторное сканирование может попытаться угадать какие модификации уже установилены, это действие может обнулить известную о модификации информацию. Используйте эту функцию если не определяются некоторые модификации или их версии не отображаются корректно. Это действие никогда не удалит ваши установленные модификации, лишь то что WowUp знает о них.\n\nЭта процедура займёт немного времени.",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "By {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "此插件有 {dependencyCount} 個依賴項",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "在瀏覽器中檢視",
"VIEW_ON_PROVIDER_PREFIX": "在該網站上檢視:"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "在 GitHub 上檢視原始碼",
"VIEW_GUIDE": "訪問指南,探索 WowUp 的功能(英語)"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "重新掃描",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "掃描客戶端資料夾中已安裝的插件",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "重新掃描過程將會猜測已經安裝了哪些插件,可能會重置已知插件資訊。如果特定插件無法識別或顯示不正確,請使用此功能。掃描不會刪除插件本身,只會刪除 WowUp 記錄的插件資訊。\n\n掃描需要花費一些時間。",

View File

@@ -103,7 +103,10 @@
"DIALOGS": {
"ADDON_DETAILS": {
"BY_AUTHOR": "By {authorName}",
"CHANGELOG_TAB": "Changelog",
"DEPENDENCY_TEXT": "此插件有 {dependencyCount} 个依赖项",
"DESCRIPTION_TAB": "Description",
"MISSING_DEPENDENCIES": "Missing dependencies",
"VIEW_IN_BROWSER_BUTTON": "在浏览器中查看",
"VIEW_ON_PROVIDER_PREFIX": "在该网站上查看:"
},
@@ -210,6 +213,7 @@
"VIEW_GITHUB": "在 GitHub 上查看源代码",
"VIEW_GUIDE": "访问指南,探索 WowUp 的功能(英语)"
},
"REQUIRED_DEPENDENCY_MISSING_TOOLTIP": "Required dependency missing",
"RESCAN_FOLDERS_BUTTON": "重新扫描",
"RESCAN_FOLDERS_BUTTON_TOOLTIP": "扫描客户端文件夹中已安装的附加组件",
"RESCAN_FOLDERS_CONFIRMATION_DESCRIPTION": "重新扫描过程将会猜测已经安装了哪些插件,可能会重置已知插件信息。如果特定插件无法识别或显示不正确,请使用此功能。扫描不会删除插件本身,只会删除 WowUp 记录的插件信息。\n\n扫描需要花费一些时间。",

View File

@@ -26,6 +26,7 @@ export const CURSE_GET_SCAN_RESULTS = "curse-get-scan-results";
export const WOWUP_GET_SCAN_RESULTS = "wowup-get-scan-results";
export const GET_ASSET_FILE_PATH = "get-asset-file-path";
export const CREATE_TRAY_MENU_CHANNEL = "create-tray-menu";
export const LIST_DISKS_WIN32 = "list-disks-win32";
// PREFERENCES
export const ENABLE_SYSTEM_NOTIFICATIONS_PREFERENCE_KEY = "enable_system_notifications";
@@ -45,6 +46,7 @@ export const GET_ADDONS_SORT_ORDER = "get_addons_sort_order";
export const ADDON_PROVIDERS_KEY = "addon_providers";
export const CURRENT_THEME_KEY = "current_theme";
export const TELEMETRY_ENABLED_KEY = "telemetry_enabled";
export const BLIZZARD_AGENT_PATH_KEY = "blizzard_agent_path";
// APP UPDATER
export const APP_UPDATE_ERROR = "app-update-error";

View File

@@ -83,6 +83,18 @@ img {
margin-left: 1em !important;
}
.mt-1 {
margin-top: 0.25em !important;
}
.mt-2 {
margin-top: 0.5em !important;
}
.mt-3 {
margin-top: 1em !important;
}
.no-reg-drag {
-webkit-app-region: no-drag;
}
@@ -256,6 +268,18 @@ img {
text-align: left;
}
.addon-changelog {
max-height: 300px;
a {
color: $purple-1;
&:visited {
color: $purple-1;
}
}
}
.addon-table {
width: 100%;
height: 100%;