From fbcb2aa85184ce9b7b3ebd3fce12c8fc8025ba06 Mon Sep 17 00:00:00 2001 From: jliddev Date: Wed, 16 Dec 2020 00:19:12 -0600 Subject: [PATCH] #54 Changelog begins --- .../src/app/addon-providers/addon-provider.ts | 2 ++ .../addon-providers/curse-addon-provider.ts | 24 +++++++++++++++++++ .../addon-providers/github-addon-provider.ts | 4 ++++ .../app/addon-providers/raiderio-provider.ts | 4 ++++ .../addon-providers/tukui-addon-provider.ts | 4 ++++ .../wow-interface-addon-provider.ts | 4 ++++ .../addon-providers/wowup-addon-provider.ts | 4 ++++ .../addon-detail/addon-detail.component.html | 9 ++++++- .../addon-detail/addon-detail.component.ts | 23 ++++++++++++++++-- wowup-electron/src/app/entities/addon.ts | 2 ++ .../models/wowup/addon-search-result-file.ts | 1 + .../src/app/services/addons/addon.service.ts | 11 +++++++++ wowup-electron/src/assets/i18n/de.json | 4 ++++ wowup-electron/src/assets/i18n/en.json | 8 ++++--- wowup-electron/src/assets/i18n/es.json | 4 ++++ wowup-electron/src/assets/i18n/fr.json | 4 ++++ wowup-electron/src/assets/i18n/it.json | 4 ++++ wowup-electron/src/assets/i18n/ko.json | 4 ++++ wowup-electron/src/assets/i18n/nb.json | 4 ++++ wowup-electron/src/assets/i18n/pt.json | 4 ++++ wowup-electron/src/assets/i18n/ru.json | 4 ++++ wowup-electron/src/assets/i18n/zh-TW.json | 4 ++++ wowup-electron/src/assets/i18n/zh.json | 4 ++++ wowup-electron/src/common/constants.ts | 2 ++ wowup-electron/src/styles.scss | 24 +++++++++++++++++++ 25 files changed, 160 insertions(+), 6 deletions(-) diff --git a/wowup-electron/src/app/addon-providers/addon-provider.ts b/wowup-electron/src/app/addon-providers/addon-provider.ts index e79ba8b6..781c2917 100644 --- a/wowup-electron/src/app/addon-providers/addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/addon-provider.ts @@ -36,6 +36,8 @@ export interface AddonProvider { onPostInstall(addon: Addon): void; scan(clientType: WowClientType, addonChannelType: AddonChannelType, addonFolders: AddonFolder[]): Promise; + + getChangelog(addon: Addon): Promise; } export type AddonProviderType = "Curse" | "GitHub" | "TukUI" | "WowInterface" | "Hub" | "RaiderIO"; 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 82fdb583..c51a481c 100644 --- a/wowup-electron/src/app/addon-providers/curse-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/curse-addon-provider.ts @@ -66,6 +66,28 @@ export class CurseAddonProvider implements AddonProvider { }); } + public async getChangelog(addon: Addon): Promise { + 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(), }; } } 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 777425f6..17578478 100644 --- a/wowup-electron/src/app/addon-providers/github-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/github-addon-provider.ts @@ -54,6 +54,10 @@ export class GitHubAddonProvider implements AddonProvider { public async searchByQuery(query: string, clientType: WowClientType): Promise { return []; } + + public async getChangelog(addon: Addon): Promise { + return ''; + } public async searchByUrl(addonUri: URL, clientType: WowClientType): Promise { const repoPath = addonUri.pathname; diff --git a/wowup-electron/src/app/addon-providers/raiderio-provider.ts b/wowup-electron/src/app/addon-providers/raiderio-provider.ts index f13a392d..425dee66 100644 --- a/wowup-electron/src/app/addon-providers/raiderio-provider.ts +++ b/wowup-electron/src/app/addon-providers/raiderio-provider.ts @@ -25,6 +25,10 @@ export class RaiderIoAddonProvider implements AddonProvider { constructor() {} + public async getChangelog(addon: Addon): Promise { + return ''; + } + public async getAll(clientType: WowClientType, addonIds: string[]): Promise { return []; } 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 c21b46aa..8f50b8e2 100644 --- a/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts @@ -50,6 +50,10 @@ export class TukUiAddonProvider implements AddonProvider { }); } + public async getChangelog(addon: Addon): Promise { + return ''; + } + async getAll(clientType: WowClientType, addonIds: string[]): Promise { let results: AddonSearchResult[] = []; 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 12f65fbd..9d11d043 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 @@ -63,6 +63,10 @@ export class WowInterfaceAddonProvider implements AddonProvider { return searchResults; } + public async getChangelog(addon: Addon): Promise { + return ''; + } + public async getFeaturedAddons(clientType: WowClientType): Promise { return []; } 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 1d1679fa..1edd833e 100644 --- a/wowup-electron/src/app/addon-providers/wowup-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/wowup-addon-provider.ts @@ -150,6 +150,10 @@ export class WowUpAddonProvider implements AddonProvider { } } + public async getChangelog(addon: Addon): Promise { + return ""; + } + public getScanResults = async (addonFolders: AddonFolder[]): Promise => { const t1 = Date.now(); diff --git a/wowup-electron/src/app/components/addon-detail/addon-detail.component.html b/wowup-electron/src/app/components/addon-detail/addon-detail.component.html index 4d7a36b6..1189b055 100644 --- a/wowup-electron/src/app/components/addon-detail/addon-detail.component.html +++ b/wowup-electron/src/app/components/addon-detail/addon-detail.component.html @@ -44,7 +44,14 @@ -
{{ summary }}
+ + +
{{ summary }}
+
+ +
+
+
(""); + + 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 ""; diff --git a/wowup-electron/src/app/entities/addon.ts b/wowup-electron/src/app/entities/addon.ts index 093e3466..d2e88ffb 100644 --- a/wowup-electron/src/app/entities/addon.ts +++ b/wowup-electron/src/app/entities/addon.ts @@ -40,6 +40,8 @@ export interface Addon { screenshotUrls?: string[]; releasedAt?: Date; externalIds?: AddonExternalId[]; + externalLatestReleaseId?: string; + latestChangelog?: string; dependencies?: AddonDependency[]; missingDependencies?: string[]; } diff --git a/wowup-electron/src/app/models/wowup/addon-search-result-file.ts b/wowup-electron/src/app/models/wowup/addon-search-result-file.ts index dd863744..6d249510 100644 --- a/wowup-electron/src/app/models/wowup/addon-search-result-file.ts +++ b/wowup-electron/src/app/models/wowup/addon-search-result-file.ts @@ -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[]; diff --git a/wowup-electron/src/app/services/addons/addon.service.ts b/wowup-electron/src/app/services/addons/addon.service.ts index 2724aa1f..a95d30bb 100644 --- a/wowup-electron/src/app/services/addons/addon.service.ts +++ b/wowup-electron/src/app/services/addons/addon.service.ts @@ -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); diff --git a/wowup-electron/src/assets/i18n/de.json b/wowup-electron/src/assets/i18n/de.json index f156f1f6..53403833 100644 --- a/wowup-electron/src/assets/i18n/de.json +++ b/wowup-electron/src/assets/i18n/de.json @@ -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.", diff --git a/wowup-electron/src/assets/i18n/en.json b/wowup-electron/src/assets/i18n/en.json index 0fc97199..c5be9fb4 100644 --- a/wowup-electron/src/assets/i18n/en.json +++ b/wowup-electron/src/assets/i18n/en.json @@ -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.", diff --git a/wowup-electron/src/assets/i18n/es.json b/wowup-electron/src/assets/i18n/es.json index da7a6612..3770eafb 100644 --- a/wowup-electron/src/assets/i18n/es.json +++ b/wowup-electron/src/assets/i18n/es.json @@ -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.", diff --git a/wowup-electron/src/assets/i18n/fr.json b/wowup-electron/src/assets/i18n/fr.json index 509badab..53cd2ece 100644 --- a/wowup-electron/src/assets/i18n/fr.json +++ b/wowup-electron/src/assets/i18n/fr.json @@ -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.", diff --git a/wowup-electron/src/assets/i18n/it.json b/wowup-electron/src/assets/i18n/it.json index 4e30a791..6643914d 100644 --- a/wowup-electron/src/assets/i18n/it.json +++ b/wowup-electron/src/assets/i18n/it.json @@ -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.", diff --git a/wowup-electron/src/assets/i18n/ko.json b/wowup-electron/src/assets/i18n/ko.json index d183c6d7..4c3d822e 100644 --- a/wowup-electron/src/assets/i18n/ko.json +++ b/wowup-electron/src/assets/i18n/ko.json @@ -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탐색 작업에 시간이 소요될 수 있습니다.", diff --git a/wowup-electron/src/assets/i18n/nb.json b/wowup-electron/src/assets/i18n/nb.json index 0ea5a249..ba85b657 100644 --- a/wowup-electron/src/assets/i18n/nb.json +++ b/wowup-electron/src/assets/i18n/nb.json @@ -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.", diff --git a/wowup-electron/src/assets/i18n/pt.json b/wowup-electron/src/assets/i18n/pt.json index 0bfcc27c..640feed7 100644 --- a/wowup-electron/src/assets/i18n/pt.json +++ b/wowup-electron/src/assets/i18n/pt.json @@ -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.", diff --git a/wowup-electron/src/assets/i18n/ru.json b/wowup-electron/src/assets/i18n/ru.json index ef904f4a..8b99fe08 100644 --- a/wowup-electron/src/assets/i18n/ru.json +++ b/wowup-electron/src/assets/i18n/ru.json @@ -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Эта процедура займёт немного времени.", diff --git a/wowup-electron/src/assets/i18n/zh-TW.json b/wowup-electron/src/assets/i18n/zh-TW.json index 989da151..0f918f09 100644 --- a/wowup-electron/src/assets/i18n/zh-TW.json +++ b/wowup-electron/src/assets/i18n/zh-TW.json @@ -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掃描需要花費一些時間。", diff --git a/wowup-electron/src/assets/i18n/zh.json b/wowup-electron/src/assets/i18n/zh.json index 41530d19..d4603f5d 100644 --- a/wowup-electron/src/assets/i18n/zh.json +++ b/wowup-electron/src/assets/i18n/zh.json @@ -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扫描需要花费一些时间。", diff --git a/wowup-electron/src/common/constants.ts b/wowup-electron/src/common/constants.ts index ecc9e3aa..251b0bb5 100644 --- a/wowup-electron/src/common/constants.ts +++ b/wowup-electron/src/common/constants.ts @@ -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"; diff --git a/wowup-electron/src/styles.scss b/wowup-electron/src/styles.scss index 2e617dc0..f1945476 100644 --- a/wowup-electron/src/styles.scss +++ b/wowup-electron/src/styles.scss @@ -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%;