mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-28 21:12:43 +02:00
Improve sorting indexer by status
This commit is contained in:
@@ -8,6 +8,30 @@ import translate from 'Utilities/String/translate';
|
||||
import DisabledIndexerInfo from './DisabledIndexerInfo';
|
||||
import styles from './IndexerStatusCell.css';
|
||||
|
||||
function getIconKind(enabled: boolean, redirect: boolean) {
|
||||
if (enabled) {
|
||||
return redirect ? kinds.INFO : kinds.SUCCESS;
|
||||
}
|
||||
|
||||
return kinds.DEFAULT;
|
||||
}
|
||||
|
||||
function getIconName(enabled: boolean, redirect: boolean) {
|
||||
if (enabled) {
|
||||
return redirect ? icons.REDIRECT : icons.CHECK;
|
||||
}
|
||||
|
||||
return icons.BLOCKLIST;
|
||||
}
|
||||
|
||||
function getIconTooltip(enabled: boolean, redirect: boolean) {
|
||||
if (enabled) {
|
||||
return redirect ? translate('EnabledRedirected') : translate('Enabled');
|
||||
}
|
||||
|
||||
return translate('Disabled');
|
||||
}
|
||||
|
||||
interface IndexerStatusCellProps {
|
||||
className: string;
|
||||
enabled: boolean;
|
||||
@@ -30,19 +54,13 @@ function IndexerStatusCell(props: IndexerStatusCellProps) {
|
||||
...otherProps
|
||||
} = props;
|
||||
|
||||
const enableKind = redirect ? kinds.INFO : kinds.SUCCESS;
|
||||
const enableIcon = redirect ? icons.REDIRECT : icons.CHECK;
|
||||
const enableTitle = redirect
|
||||
? translate('EnabledRedirected')
|
||||
: translate('Enabled');
|
||||
|
||||
return (
|
||||
<Component className={className} {...otherProps}>
|
||||
<Icon
|
||||
className={styles.statusIcon}
|
||||
kind={enabled ? enableKind : kinds.DEFAULT}
|
||||
name={enabled ? enableIcon : icons.BLOCKLIST}
|
||||
title={enabled ? enableTitle : translate('Disabled')}
|
||||
kind={getIconKind(enabled, redirect)}
|
||||
name={getIconName(enabled, redirect)}
|
||||
title={getIconTooltip(enabled, redirect)}
|
||||
/>
|
||||
{status ? (
|
||||
<Popover
|
||||
|
@@ -100,8 +100,22 @@ export const filterPredicates = {
|
||||
};
|
||||
|
||||
export const sortPredicates = {
|
||||
vipExpiration: function(item) {
|
||||
return item.fields.find((field) => field.name === 'vipExpiration')?.value ?? '';
|
||||
status: function({ enable, redirect }) {
|
||||
let result = 0;
|
||||
|
||||
if (redirect) {
|
||||
result++;
|
||||
}
|
||||
|
||||
if (enable) {
|
||||
result += 2;
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
vipExpiration: function({ fields = [] }) {
|
||||
return fields.find((field) => field.name === 'vipExpiration')?.value ?? '';
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user