Added unidentified actors and actor count filters.
This commit is contained in:
@@ -46,9 +46,12 @@ watch(() => props.scene, () => {
|
||||
v-for="actor in [...item.value, ...newActors]"
|
||||
:key="`actor-${actor.id}`"
|
||||
class="actor"
|
||||
:class="{ deleted: edits.actors && !edits.actors.some((actorId) => actorId === actor.id) }"
|
||||
:class="{
|
||||
deleted: edits.actors && !edits.actors.some((actorId) => actorId === actor.id),
|
||||
unknown: actor.isUnknown,
|
||||
}"
|
||||
>
|
||||
<span class="actor-name">{{ actor.name }}</span>
|
||||
<span class="actor-name">{{ actor.name || ['Unknown', actor.gender].filter(Boolean).join(' ') }}</span>
|
||||
|
||||
<Icon
|
||||
v-if="edits.actors && !edits.actors.some((actorId) => actorId === actor.id)"
|
||||
@@ -68,6 +71,7 @@ watch(() => props.scene, () => {
|
||||
<li class="new">
|
||||
<ActorSearch
|
||||
:disabled="!editing.has(item.key)"
|
||||
:show-unknown="true"
|
||||
@actor="addActor"
|
||||
>
|
||||
<Icon
|
||||
@@ -131,6 +135,10 @@ watch(() => props.scene, () => {
|
||||
color: var(--glass);
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
&.unknown {
|
||||
color: var(--glass-strong-10);
|
||||
}
|
||||
}
|
||||
|
||||
.actor,
|
||||
|
||||
@@ -41,6 +41,17 @@ const total = ref(pageContext.pageProps.revisionTotal);
|
||||
const page = Number(pageContext.routeParams.page) || 1;
|
||||
const limit = Number(pageContext.urlParsed.search.limit) || 100;
|
||||
|
||||
function getUnknownName(itemId) {
|
||||
// unidentified actors are stored as gender_id
|
||||
if (typeof itemId !== 'string') {
|
||||
return null;
|
||||
}
|
||||
|
||||
const gender = itemId.match(/^(male|female|transsexual)_/)?.[1];
|
||||
|
||||
return ['Unknown', gender].filter(Boolean).join(' ');
|
||||
}
|
||||
|
||||
const mappedKeys = {
|
||||
actors: actorsById,
|
||||
// tags: tagsById,
|
||||
@@ -64,7 +75,7 @@ const curatedRevisions = computed(() => revisions.value.map((revision) => {
|
||||
if (Array.isArray(value) && mappedKeys[key]) {
|
||||
return [key, value.map((itemId) => ({
|
||||
id: itemId,
|
||||
name: mappedKeys[key].value[itemId]?.name || mappedKeys[key].value[itemId]?.title,
|
||||
name: mappedKeys[key].value[itemId]?.name || mappedKeys[key].value[itemId]?.title || getUnknownName(itemId),
|
||||
modified: revision.deltas.some((delta) => delta.key === key && !delta.value.some((deltaItemId) => deltaItemId === itemId)),
|
||||
}))];
|
||||
}
|
||||
@@ -104,7 +115,7 @@ const curatedRevisions = computed(() => revisions.value.map((revision) => {
|
||||
...delta,
|
||||
value: delta.value.map((itemId) => ({
|
||||
id: itemId,
|
||||
name: mappedKeys[delta.key].value[itemId]?.name || mappedKeys[delta.key].value[itemId]?.title,
|
||||
name: mappedKeys[delta.key].value[itemId]?.name || mappedKeys[delta.key].value[itemId]?.title || getUnknownName(itemId),
|
||||
modified: !revision.base[delta.key].includes(itemId),
|
||||
})),
|
||||
};
|
||||
|
||||
@@ -166,7 +166,7 @@ watch(() => props.scene, () => {
|
||||
.tags-sections {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: .75rem;
|
||||
gap: 1.5rem;
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user