fix(ui): show request as option even if there are no radarr/sonarr servers

pull/839/head
sct 4 years ago
parent e4a50c33f1
commit b116281196

@ -185,7 +185,7 @@ const AdvancedRequester: React.FC<AdvancedRequesterProps> = ({
]); ]);
useEffect(() => { useEffect(() => {
if (selectedServer !== null) { if (selectedServer !== null || selectedUser) {
onChange({ onChange({
folder: selectedFolder !== '' ? selectedFolder : undefined, folder: selectedFolder !== '' ? selectedFolder : undefined,
profile: selectedProfile !== -1 ? selectedProfile : undefined, profile: selectedProfile !== -1 ? selectedProfile : undefined,
@ -203,7 +203,7 @@ const AdvancedRequester: React.FC<AdvancedRequesterProps> = ({
); );
} }
if (!data || selectedServer === null) { if ((!data || selectedServer === null) && !selectedUser) {
return null; return null;
} }
@ -222,96 +222,106 @@ const AdvancedRequester: React.FC<AdvancedRequesterProps> = ({
{intl.formatMessage(messages.advancedoptions)} {intl.formatMessage(messages.advancedoptions)}
</div> </div>
<div className="p-4 bg-gray-600 rounded-md shadow"> <div className="p-4 bg-gray-600 rounded-md shadow">
<div className="flex flex-col items-center justify-between md:flex-row"> {!!data && selectedServer !== null && (
<div className="flex-grow flex-shrink-0 w-full mb-2 md:w-1/3 md:pr-4 md:mb-0"> <>
<label htmlFor="server" className="text-label"> <div className="flex flex-col items-center justify-between md:flex-row">
{intl.formatMessage(messages.destinationserver)} <div className="flex-grow flex-shrink-0 w-full mb-2 md:w-1/3 md:pr-4 md:mb-0">
</label> <label htmlFor="server" className="text-label">
<select {intl.formatMessage(messages.destinationserver)}
id="server" </label>
name="server" <select
value={selectedServer} id="server"
onChange={(e) => setSelectedServer(Number(e.target.value))} name="server"
onBlur={(e) => setSelectedServer(Number(e.target.value))} value={selectedServer}
className="block w-full py-2 pl-3 pr-10 mt-1 text-base leading-6 text-white transition duration-150 ease-in-out bg-gray-800 border-gray-700 rounded-md form-select focus:outline-none focus:ring-blue focus:border-blue-300 sm:text-sm sm:leading-5" onChange={(e) => setSelectedServer(Number(e.target.value))}
> onBlur={(e) => setSelectedServer(Number(e.target.value))}
{data.map((server) => ( className="block w-full py-2 pl-3 pr-10 mt-1 text-base leading-6 text-white transition duration-150 ease-in-out bg-gray-800 border-gray-700 rounded-md form-select focus:outline-none focus:ring-blue focus:border-blue-300 sm:text-sm sm:leading-5"
<option key={`server-list-${server.id}`} value={server.id}> >
{server.name} {data.map((server) => (
{server.isDefault && server.is4k === is4k <option key={`server-list-${server.id}`} value={server.id}>
? ` ${intl.formatMessage(messages.default)}` {server.name}
: ''} {server.isDefault && server.is4k === is4k
</option> ? ` ${intl.formatMessage(messages.default)}`
))} : ''}
</select> </option>
</div> ))}
<div className="flex-grow flex-shrink-0 w-full mb-2 md:w-1/3 md:pr-4 md:mb-0"> </select>
<label htmlFor="server" className="text-label"> </div>
{intl.formatMessage(messages.qualityprofile)} <div className="flex-grow flex-shrink-0 w-full mb-2 md:w-1/3 md:pr-4 md:mb-0">
</label> <label htmlFor="server" className="text-label">
<select {intl.formatMessage(messages.qualityprofile)}
id="profile" </label>
name="profile" <select
value={selectedProfile} id="profile"
onChange={(e) => setSelectedProfile(Number(e.target.value))} name="profile"
onBlur={(e) => setSelectedProfile(Number(e.target.value))} value={selectedProfile}
className="block w-full py-2 pl-3 pr-10 mt-1 text-base leading-6 text-white transition duration-150 ease-in-out bg-gray-800 border-gray-700 rounded-md form-select focus:outline-none focus:ring-blue focus:border-blue-300 sm:text-sm sm:leading-5" onChange={(e) => setSelectedProfile(Number(e.target.value))}
> onBlur={(e) => setSelectedProfile(Number(e.target.value))}
{isValidating && ( className="block w-full py-2 pl-3 pr-10 mt-1 text-base leading-6 text-white transition duration-150 ease-in-out bg-gray-800 border-gray-700 rounded-md form-select focus:outline-none focus:ring-blue focus:border-blue-300 sm:text-sm sm:leading-5"
<option value=""> >
{intl.formatMessage(messages.loadingprofiles)} {isValidating && (
</option> <option value="">
)} {intl.formatMessage(messages.loadingprofiles)}
{!isValidating && </option>
serverData && )}
serverData.profiles.map((profile) => ( {!isValidating &&
<option key={`profile-list${profile.id}`} value={profile.id}> serverData &&
{profile.name} serverData.profiles.map((profile) => (
{isAnime && <option
serverData.server.activeAnimeProfileId === profile.id key={`profile-list${profile.id}`}
? ` ${intl.formatMessage(messages.default)}` value={profile.id}
: !isAnime && >
serverData.server.activeProfileId === profile.id {profile.name}
? ` ${intl.formatMessage(messages.default)}` {isAnime &&
: ''} serverData.server.activeAnimeProfileId === profile.id
</option> ? ` ${intl.formatMessage(messages.default)}`
))} : !isAnime &&
</select> serverData.server.activeProfileId === profile.id
</div> ? ` ${intl.formatMessage(messages.default)}`
<div className="flex-grow flex-shrink-0 w-full mb-2 md:w-1/3 md:mb-0"> : ''}
<label htmlFor="server" className="text-label"> </option>
{intl.formatMessage(messages.rootfolder)} ))}
</label> </select>
<select </div>
id="folder" <div className="flex-grow flex-shrink-0 w-full mb-2 md:w-1/3 md:mb-0">
name="folder" <label htmlFor="server" className="text-label">
value={selectedFolder} {intl.formatMessage(messages.rootfolder)}
onChange={(e) => setSelectedFolder(e.target.value)} </label>
onBlur={(e) => setSelectedFolder(e.target.value)} <select
className="block w-full py-2 pl-3 pr-10 mt-1 text-base leading-6 text-white transition duration-150 ease-in-out bg-gray-800 border-gray-700 rounded-md form-select focus:outline-none focus:ring-blue focus:border-blue-300 sm:text-sm sm:leading-5" id="folder"
> name="folder"
{isValidating && ( value={selectedFolder}
<option value=""> onChange={(e) => setSelectedFolder(e.target.value)}
{intl.formatMessage(messages.loadingfolders)} onBlur={(e) => setSelectedFolder(e.target.value)}
</option> className="block w-full py-2 pl-3 pr-10 mt-1 text-base leading-6 text-white transition duration-150 ease-in-out bg-gray-800 border-gray-700 rounded-md form-select focus:outline-none focus:ring-blue focus:border-blue-300 sm:text-sm sm:leading-5"
)} >
{!isValidating && {isValidating && (
serverData && <option value="">
serverData.rootFolders.map((folder) => ( {intl.formatMessage(messages.loadingfolders)}
<option key={`folder-list${folder.id}`} value={folder.path}> </option>
{folder.path} ({formatBytes(folder.freeSpace ?? 0)}) )}
{isAnime && {!isValidating &&
serverData.server.activeAnimeDirectory === folder.path serverData &&
? ` ${intl.formatMessage(messages.default)}` serverData.rootFolders.map((folder) => (
: !isAnime && <option
serverData.server.activeDirectory === folder.path key={`folder-list${folder.id}`}
? ` ${intl.formatMessage(messages.default)}` value={folder.path}
: ''} >
</option> {folder.path} ({formatBytes(folder.freeSpace ?? 0)})
))} {isAnime &&
</select> serverData.server.activeAnimeDirectory === folder.path
</div> ? ` ${intl.formatMessage(messages.default)}`
</div> : !isAnime &&
serverData.server.activeDirectory === folder.path
? ` ${intl.formatMessage(messages.default)}`
: ''}
</option>
))}
</select>
</div>
</div>
</>
)}
{hasPermission(Permission.MANAGE_REQUESTS) && {hasPermission(Permission.MANAGE_REQUESTS) &&
hasPermission(Permission.MANAGE_USERS) && hasPermission(Permission.MANAGE_USERS) &&
selectedUser && ( selectedUser && (

Loading…
Cancel
Save