Group obsolete extensions
This commit is contained in:
@@ -40,6 +40,7 @@ const allLangs: string[] = [];
|
|||||||
function groupExtensions(extensions: IExtension[]): GroupedExtensionsResult {
|
function groupExtensions(extensions: IExtension[]): GroupedExtensionsResult {
|
||||||
allLangs.length = 0; // empty the array
|
allLangs.length = 0; // empty the array
|
||||||
const sortedExtenions: GroupedExtensions = {
|
const sortedExtenions: GroupedExtensions = {
|
||||||
|
[ExtensionState.OBSOLETE]: [],
|
||||||
[ExtensionState.INSTALLED]: [],
|
[ExtensionState.INSTALLED]: [],
|
||||||
[ExtensionState.UPDATE_PENDING]: [],
|
[ExtensionState.UPDATE_PENDING]: [],
|
||||||
[DefaultLanguage.ALL]: [],
|
[DefaultLanguage.ALL]: [],
|
||||||
@@ -56,9 +57,14 @@ function groupExtensions(extensions: IExtension[]): GroupedExtensionsResult {
|
|||||||
if (extension.installed) {
|
if (extension.installed) {
|
||||||
if (extension.hasUpdate) {
|
if (extension.hasUpdate) {
|
||||||
sortedExtenions[ExtensionState.UPDATE_PENDING].push(extension);
|
sortedExtenions[ExtensionState.UPDATE_PENDING].push(extension);
|
||||||
} else {
|
return;
|
||||||
sortedExtenions[ExtensionState.INSTALLED].push(extension);
|
|
||||||
}
|
}
|
||||||
|
if (extension.obsolete) {
|
||||||
|
sortedExtenions[ExtensionState.OBSOLETE].push(extension);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sortedExtenions[ExtensionState.INSTALLED].push(extension);
|
||||||
} else {
|
} else {
|
||||||
sortedExtenions[extension.lang].push(extension);
|
sortedExtenions[extension.lang].push(extension);
|
||||||
}
|
}
|
||||||
@@ -66,6 +72,7 @@ function groupExtensions(extensions: IExtension[]): GroupedExtensionsResult {
|
|||||||
|
|
||||||
allLangs.sort(langSortCmp);
|
allLangs.sort(langSortCmp);
|
||||||
const result: GroupedExtensionsResult<ExtensionState | DefaultLanguage | string> = [
|
const result: GroupedExtensionsResult<ExtensionState | DefaultLanguage | string> = [
|
||||||
|
[ExtensionState.OBSOLETE, sortedExtenions[ExtensionState.OBSOLETE]],
|
||||||
[ExtensionState.UPDATE_PENDING, sortedExtenions[ExtensionState.UPDATE_PENDING]],
|
[ExtensionState.UPDATE_PENDING, sortedExtenions[ExtensionState.UPDATE_PENDING]],
|
||||||
[ExtensionState.INSTALLED, sortedExtenions[ExtensionState.INSTALLED]],
|
[ExtensionState.INSTALLED, sortedExtenions[ExtensionState.INSTALLED]],
|
||||||
[DefaultLanguage.ALL, sortedExtenions[DefaultLanguage.ALL]],
|
[DefaultLanguage.ALL, sortedExtenions[DefaultLanguage.ALL]],
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import { DefaultLanguage, langCodeToName } from '@/util/language';
|
|||||||
export enum ExtensionState {
|
export enum ExtensionState {
|
||||||
INSTALLED = 'INSTALLED',
|
INSTALLED = 'INSTALLED',
|
||||||
UPDATE_PENDING = 'UPDATE_PENDING',
|
UPDATE_PENDING = 'UPDATE_PENDING',
|
||||||
|
OBSOLETE = 'OBSOLETE',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type GroupedExtensionsResult<KEY extends string = string> = [KEY, IExtension[]][];
|
export type GroupedExtensionsResult<KEY extends string = string> = [KEY, IExtension[]][];
|
||||||
@@ -32,6 +33,7 @@ export type GroupedExtensions = GroupedByExtensionState & GroupedByLanguage;
|
|||||||
export const extensionLanguageToTranslationKey: { [state in ExtensionState | DefaultLanguage]: TranslationKey } = {
|
export const extensionLanguageToTranslationKey: { [state in ExtensionState | DefaultLanguage]: TranslationKey } = {
|
||||||
[ExtensionState.INSTALLED]: 'extension.state.label.installed',
|
[ExtensionState.INSTALLED]: 'extension.state.label.installed',
|
||||||
[ExtensionState.UPDATE_PENDING]: 'extension.state.label.update_pending',
|
[ExtensionState.UPDATE_PENDING]: 'extension.state.label.update_pending',
|
||||||
|
[ExtensionState.OBSOLETE]: 'extension.state.label.obsolete',
|
||||||
[DefaultLanguage.ALL]: 'extension.language.all',
|
[DefaultLanguage.ALL]: 'extension.language.all',
|
||||||
[DefaultLanguage.OTHER]: 'extension.language.other',
|
[DefaultLanguage.OTHER]: 'extension.language.other',
|
||||||
[DefaultLanguage.LOCAL_SOURCE]: 'source.local_source.title',
|
[DefaultLanguage.LOCAL_SOURCE]: 'source.local_source.title',
|
||||||
@@ -41,6 +43,7 @@ export const isExtensionStateOrLanguage = (languageCode: string): boolean =>
|
|||||||
[
|
[
|
||||||
ExtensionState.INSTALLED,
|
ExtensionState.INSTALLED,
|
||||||
ExtensionState.UPDATE_PENDING,
|
ExtensionState.UPDATE_PENDING,
|
||||||
|
ExtensionState.OBSOLETE,
|
||||||
DefaultLanguage.ALL,
|
DefaultLanguage.ALL,
|
||||||
DefaultLanguage.OTHER,
|
DefaultLanguage.OTHER,
|
||||||
DefaultLanguage.LOCAL_SOURCE,
|
DefaultLanguage.LOCAL_SOURCE,
|
||||||
|
|||||||
Reference in New Issue
Block a user