Skip to content

Commit 0d80095

Browse files
committed
General changes (#848)
* feat(backend): remove useless genre * fix(backend): add relation between entities * fix(backend): select correct entity * ci: use action script to construct name * build(backend): bump version * ci: construct multiple docker names * feat(frontend): display text when no collection * chore(frontend): handle cases when no reviews * fix(frontend): set as default value ci: use correct context
1 parent 098ab2e commit 0d80095

10 files changed

+103
-54
lines changed

.github/workflows/release.yml

+21-7
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,28 @@ jobs:
8080
username: ${{ github.actor }}
8181
password: ${{ secrets.GITHUB_TOKEN }}
8282

83-
- name: Get docker image name and build args
83+
- name: Get docker image names
8484
id: required_args
85-
run: |
86-
image_name="${{ env.REGISTRY }}/${{ github.actor }}/${{ github.event.repository.name }}"
87-
image_names="$image_name:${{ github.ref_name }},$image_name:latest"
88-
# lowercase the name
89-
image_names=$(echo "$image_names" | tr '[:upper:]' '[:lower:]')
90-
echo "image_names=$image_names" >> $GITHUB_OUTPUT
85+
uses: actions/github-script@v7
86+
with:
87+
script: |
88+
function generateVersionArray(version) {
89+
const parts = version.split(".");
90+
let versionArray = [];
91+
for (let i = 0; i < parts.length; i++)
92+
versionArray.push(parts.slice(0, i + 1).join("."));
93+
return versionArray;
94+
}
95+
96+
const registry = process.env.REGISTRY;
97+
const actor = context.actor;
98+
const repoName = context.payload.repository.name;
99+
const refName = context.ref.replace('refs/tags/', '');
100+
const imageName = `${registry}/${actor}/${repoName}`;
101+
const versionTags = generateVersionArray(refName);
102+
const tags = versionTags.map(tag => `${imageName}:${tag}`);
103+
const imageNames = tags.join(',').toLowerCase();
104+
core.setOutput('image_names', imageNames);
91105
92106
- name: Build and push to ghcr
93107
uses: docker/build-push-action@v5

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/backend/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ryot"
3-
version = "5.4.4"
3+
version = "5.4.5"
44
edition = "2021"
55
repository = "https://github.com/IgnisDa/ryot"
66
license = "GPL-3.0"

apps/backend/src/entities/genre.rs

+6
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,10 @@ impl Related<super::metadata::Entity> for Entity {
2727
}
2828
}
2929

30+
impl Related<super::metadata_to_genre::Entity> for Entity {
31+
fn to() -> RelationDef {
32+
Relation::MetadataToGenre.def()
33+
}
34+
}
35+
3036
impl ActiveModelBehavior for ActiveModel {}

apps/backend/src/miscellaneous/resolver.rs

+12
Original file line numberDiff line numberDiff line change
@@ -7083,6 +7083,18 @@ WHERE id IN (
70837083
.exec(&self.db)
70847084
.await?;
70857085
}
7086+
let mut genre_stream = Genre::find()
7087+
.select_only()
7088+
.column(genre::Column::Id)
7089+
.left_join(MetadataToGenre)
7090+
.filter(metadata_to_genre::Column::MetadataId.is_null())
7091+
.into_tuple::<i32>()
7092+
.stream(&self.db)
7093+
.await?;
7094+
while let Some(genre) = genre_stream.try_next().await? {
7095+
tracing::debug!("Removing genre id = {:#?}", genre);
7096+
Genre::delete_by_id(genre).exec(&self.db).await?;
7097+
}
70867098
Ok(())
70877099
}
70887100

apps/frontend/app/routes/_dashboard.collections.$id._index.tsx

+17-13
Original file line numberDiff line numberDiff line change
@@ -336,19 +336,23 @@ export default function Page() {
336336
</Tabs.Panel>
337337
{!loaderData.userPreferences.disableReviews ? (
338338
<Tabs.Panel value="reviews">
339-
<Stack>
340-
{loaderData.info.reviews.map((r) => (
341-
<ReviewItemDisplay
342-
title={loaderData.info.details.name}
343-
review={r}
344-
key={r.id}
345-
collectionId={loaderData.id}
346-
reviewScale={loaderData.userPreferences.reviewScale}
347-
user={loaderData.userDetails}
348-
entityType="collection"
349-
/>
350-
))}
351-
</Stack>
339+
{loaderData.info.reviews.length > 0 ? (
340+
<Stack>
341+
{loaderData.info.reviews.map((r) => (
342+
<ReviewItemDisplay
343+
title={loaderData.info.details.name}
344+
review={r}
345+
key={r.id}
346+
collectionId={loaderData.id}
347+
reviewScale={loaderData.userPreferences.reviewScale}
348+
user={loaderData.userDetails}
349+
entityType="collection"
350+
/>
351+
))}
352+
</Stack>
353+
) : (
354+
<Text>No reviews</Text>
355+
)}
352356
</Tabs.Panel>
353357
) : null}
354358
</Tabs>

apps/frontend/app/routes/_dashboard.collections.list.tsx

+10-5
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ type UpdateCollectionInput = {
154154
export default function Page() {
155155
const transition = useNavigation();
156156
const loaderData = useLoaderData<typeof loader>();
157+
const userCreatedCollections = loaderData.collections.filter(
158+
(c) => !c.isDefault,
159+
);
157160

158161
const [toUpdateCollection, setToUpdateCollection] =
159162
useState<UpdateCollectionInput>();
@@ -201,18 +204,20 @@ export default function Page() {
201204
</Tabs.Tab>
202205
</Tabs.List>
203206
<Tabs.Panel value="userCreated">
204-
<SimpleGrid cols={{ base: 1, md: 2 }}>
205-
{loaderData.collections
206-
.filter((c) => !c.isDefault)
207-
.map((c) => (
207+
{userCreatedCollections.length > 0 ? (
208+
<SimpleGrid cols={{ base: 1, md: 2 }}>
209+
{userCreatedCollections.map((c) => (
208210
<DisplayCollection
209211
key={c.id}
210212
collection={c}
211213
setToUpdateCollection={setToUpdateCollection}
212214
openModal={createOrUpdateModalOpen}
213215
/>
214216
))}
215-
</SimpleGrid>
217+
</SimpleGrid>
218+
) : (
219+
<Text>You have not created any collections yet</Text>
220+
)}
216221
</Tabs.Panel>
217222
<Tabs.Panel value="systemCreated">
218223
<SimpleGrid cols={{ base: 1, md: 2 }}>

apps/frontend/app/routes/_dashboard.media.groups.item.$id._index.tsx

+17-13
Original file line numberDiff line numberDiff line change
@@ -232,19 +232,23 @@ export default function Page() {
232232
{!loaderData.userPreferences.disableReviews ? (
233233
<Tabs.Panel value="reviews">
234234
<MediaScrollArea>
235-
<Stack>
236-
{loaderData.userMetadataGroupDetails.reviews.map((r) => (
237-
<ReviewItemDisplay
238-
review={r}
239-
key={r.id}
240-
metadataGroupId={loaderData.metadataGroupId}
241-
reviewScale={loaderData.userPreferences.reviewScale}
242-
user={loaderData.userDetails}
243-
title={loaderData.metadataGroupDetails.details.title}
244-
entityType="metadataGroup"
245-
/>
246-
))}
247-
</Stack>
235+
{loaderData.userMetadataGroupDetails.reviews.length > 0 ? (
236+
<Stack>
237+
{loaderData.userMetadataGroupDetails.reviews.map((r) => (
238+
<ReviewItemDisplay
239+
review={r}
240+
key={r.id}
241+
metadataGroupId={loaderData.metadataGroupId}
242+
reviewScale={loaderData.userPreferences.reviewScale}
243+
user={loaderData.userDetails}
244+
title={loaderData.metadataGroupDetails.details.title}
245+
entityType="metadataGroup"
246+
/>
247+
))}
248+
</Stack>
249+
) : (
250+
<Text>No reviews</Text>
251+
)}
248252
</MediaScrollArea>
249253
</Tabs.Panel>
250254
) : null}

apps/frontend/app/routes/_dashboard.media.item.$id._index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1863,7 +1863,7 @@ const IndividualProgressModal = (props: {
18631863
</Text>
18641864
<Flex align="center" gap="xs">
18651865
<NumberInput
1866-
value={((props.total || 1) * (value || 1)) / 100}
1866+
defaultValue={((props.total || 1) * (value || 1)) / 100}
18671867
onChange={(v) => {
18681868
const newVal = (Number(v) / (props.total || 1)) * 100;
18691869
setValue(newVal);

apps/frontend/app/routes/_dashboard.media.people.item.$id._index.tsx

+17-13
Original file line numberDiff line numberDiff line change
@@ -351,19 +351,23 @@ export default function Page() {
351351
{!loaderData.userPreferences.disableReviews ? (
352352
<Tabs.Panel value="reviews">
353353
<MediaScrollArea>
354-
<Stack>
355-
{loaderData.userPersonDetails.reviews.map((r) => (
356-
<ReviewItemDisplay
357-
review={r}
358-
key={r.id}
359-
personId={loaderData.personId}
360-
title={loaderData.personDetails.details.name}
361-
user={loaderData.userDetails}
362-
reviewScale={loaderData.userPreferences.reviewScale}
363-
entityType="person"
364-
/>
365-
))}
366-
</Stack>
354+
{loaderData.userPersonDetails.reviews.length > 0 ? (
355+
<Stack>
356+
{loaderData.userPersonDetails.reviews.map((r) => (
357+
<ReviewItemDisplay
358+
review={r}
359+
key={r.id}
360+
personId={loaderData.personId}
361+
title={loaderData.personDetails.details.name}
362+
user={loaderData.userDetails}
363+
reviewScale={loaderData.userPreferences.reviewScale}
364+
entityType="person"
365+
/>
366+
))}
367+
</Stack>
368+
) : (
369+
<Text>No reviews</Text>
370+
)}
367371
</MediaScrollArea>
368372
</Tabs.Panel>
369373
) : null}

0 commit comments

Comments
 (0)