Minor gallery-related fixes (#3448)

* Fix gallery titles
* Fix SceneListTable
This commit is contained in:
DingDongSoLong4
2023-02-20 00:25:48 +02:00
committed by GitHub
parent 51469cfc7f
commit 28b8473f2d
5 changed files with 28 additions and 40 deletions

View File

@@ -46,6 +46,9 @@ fragment SlimSceneData on Scene {
files { files {
path path
} }
folder {
path
}
title title
} }

View File

@@ -32,7 +32,3 @@
margin-right: 0.25em; margin-right: 0.25em;
} }
} }
.field-options-table td:first-child {
padding-left: 0.75rem;
}

View File

@@ -48,6 +48,7 @@ import {
faTrashAlt, faTrashAlt,
} from "@fortawesome/free-solid-svg-icons"; } from "@fortawesome/free-solid-svg-icons";
import { objectTitle } from "src/core/files"; import { objectTitle } from "src/core/files";
import { galleryTitle } from "src/core/galleries";
import { useRatingKeybinds } from "src/hooks/keybinds"; import { useRatingKeybinds } from "src/hooks/keybinds";
const SceneScrapeDialog = lazy(() => import("./SceneScrapeDialog")); const SceneScrapeDialog = lazy(() => import("./SceneScrapeDialog"));
@@ -100,7 +101,7 @@ export const SceneEditPanel: React.FC<IProps> = ({
setGalleries( setGalleries(
scene.galleries?.map((g) => ({ scene.galleries?.map((g) => ({
id: g.id, id: g.id,
title: objectTitle(g), title: galleryTitle(g),
})) ?? [] })) ?? []
); );
}, [scene.galleries]); }, [scene.galleries]);

View File

@@ -1,14 +1,13 @@
// @ts-nocheck
/* eslint-disable jsx-a11y/control-has-associated-label */
import React from "react"; import React from "react";
import { Table, Button, Form } from "react-bootstrap"; import { Table, Form } from "react-bootstrap";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import NavUtils from "src/utils/navigation"; import NavUtils from "src/utils/navigation";
import TextUtils from "src/utils/text"; import TextUtils from "src/utils/text";
import { Icon } from "src/components/Shared/Icon";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import { objectTitle } from "src/core/files"; import { objectTitle } from "src/core/files";
import { galleryTitle } from "src/core/galleries";
import SceneQueue from "src/models/sceneQueue";
interface ISceneListTableProps { interface ISceneListTableProps {
scenes: GQL.SlimSceneDataFragment[]; scenes: GQL.SlimSceneDataFragment[];
@@ -20,14 +19,14 @@ interface ISceneListTableProps {
export const SceneListTable: React.FC<ISceneListTableProps> = ( export const SceneListTable: React.FC<ISceneListTableProps> = (
props: ISceneListTableProps props: ISceneListTableProps
) => { ) => {
const renderTags = (tags: GQL.SlimTagDataFragment[]) => const renderTags = (tags: Partial<GQL.TagDataFragment>[]) =>
tags.map((tag) => ( tags.map((tag) => (
<Link key={tag.id} to={NavUtils.makeTagScenesUrl(tag)}> <Link key={tag.id} to={NavUtils.makeTagScenesUrl(tag)}>
<h6>{tag.name}</h6> <h6>{tag.name}</h6>
</Link> </Link>
)); ));
const renderPerformers = (performers: Partial<GQL.Performer>[]) => const renderPerformers = (performers: Partial<GQL.PerformerDataFragment>[]) =>
performers.map((performer) => ( performers.map((performer) => (
<Link key={performer.id} to={NavUtils.makePerformerScenesUrl(performer)}> <Link key={performer.id} to={NavUtils.makePerformerScenesUrl(performer)}>
<h6>{performer.name}</h6> <h6>{performer.name}</h6>
@@ -35,16 +34,21 @@ export const SceneListTable: React.FC<ISceneListTableProps> = (
)); ));
const renderMovies = (scene: GQL.SlimSceneDataFragment) => const renderMovies = (scene: GQL.SlimSceneDataFragment) =>
scene.movies.map((sceneMovie) => scene.movies.map((sceneMovie) => (
!sceneMovie.movie ? undefined : ( <Link
<Link key={sceneMovie.movie.id}
key={sceneMovie.movie.id} to={NavUtils.makeMovieScenesUrl(sceneMovie.movie)}
to={NavUtils.makeMovieScenesUrl(sceneMovie.movie)} >
> <h6>{sceneMovie.movie.name}</h6>
<h6>{sceneMovie.movie.name}</h6> </Link>
</Link> ));
)
); const renderGalleries = (scene: GQL.SlimSceneDataFragment) =>
scene.galleries.map((gallery) => (
<Link key={gallery.id} to={`/galleries/${gallery.id}`}>
<h6>{galleryTitle(gallery)}</h6>
</Link>
));
const renderSceneRow = (scene: GQL.SlimSceneDataFragment, index: number) => { const renderSceneRow = (scene: GQL.SlimSceneDataFragment, index: number) => {
const sceneLink = props.queue const sceneLink = props.queue
@@ -64,7 +68,7 @@ export const SceneListTable: React.FC<ISceneListTableProps> = (
type="checkbox" type="checkbox"
checked={props.selectedIds.has(scene.id)} checked={props.selectedIds.has(scene.id)}
onChange={() => onChange={() =>
props.onSelectChange!( props.onSelectChange(
scene.id, scene.id,
!props.selectedIds.has(scene.id), !props.selectedIds.has(scene.id),
shiftKey shiftKey
@@ -106,15 +110,7 @@ export const SceneListTable: React.FC<ISceneListTableProps> = (
)} )}
</td> </td>
<td>{renderMovies(scene)}</td> <td>{renderMovies(scene)}</td>
<td> <td>{renderGalleries(scene)}</td>
{scene.gallery && (
<Button className="minimal">
<Link to={`/galleries/${scene.gallery.id}`}>
<Icon icon={faImage} />
</Link>
</Button>
)}
</td>
</tr> </tr>
); );
}; };
@@ -148,7 +144,7 @@ export const SceneListTable: React.FC<ISceneListTableProps> = (
<FormattedMessage id="movies" /> <FormattedMessage id="movies" />
</th> </th>
<th> <th>
<FormattedMessage id="gallery" /> <FormattedMessage id="galleries" />
</th> </th>
</tr> </tr>
</thead> </thead>

View File

@@ -126,14 +126,6 @@ hr {
border: none; border: none;
border-color: #414c53; border-color: #414c53;
padding: 0.25rem 0.75rem; padding: 0.25rem 0.75rem;
&:first-child {
padding-left: 0;
}
&:last-child {
padding-right: 0;
}
} }
} }