diff --git a/common b/common
index e55818a..3bf8ce6 160000
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit e55818ab448d463c4765c3394a6049280799ec33
+Subproject commit 3bf8ce6e23a1c6c4c909b1a56b201903bad5b26e
diff --git a/components/actors/bio.vue b/components/actors/bio.vue
index 1a45550..6736f60 100644
--- a/components/actors/bio.vue
+++ b/components/actors/bio.vue
@@ -103,6 +103,7 @@
Lives in
@@ -146,14 +147,19 @@
Enhanced
Boobs:
{{ actor.boobsVolume }}cc
@@ -167,6 +173,19 @@
{{ actor.buttVolume }}cc
{{ augmentationMap[actor.buttImplant] || actor.buttImplant }}
+
+ Lip filler:
+ {{ actor.lipsVolume }}cc
+ {{ augmentationMap[actor.lipsImplant] || actor.lipsImplant }}
+
+
+ Labiaplasty
@@ -394,6 +413,12 @@ const augmentationMap = {
mms: 'MMS',
over: 'over-muscle',
under: 'under-muscle',
+ mammary: 'under breast',
+ areolar: 'areolar',
+ crescent: 'crescent areolar',
+ lollipop: 'lollipop',
+ axillary: 'armpit',
+ umbilical: 'navel',
};
const descriptions = Object.values(Object.fromEntries(props.actor.profiles
@@ -695,7 +720,7 @@ const descriptions = Object.values(Object.fromEntries(props.actor.profiles
justify-content: center;
position: absolute;
z-index: 1;
- bottom: -.75rem;
+ bottom: -.25rem;
}
.expand {
@@ -776,6 +801,11 @@ const descriptions = Object.values(Object.fromEntries(props.actor.profiles
&:not(.expanded) .hideable {
display: none;
+ }
+
+ /* only hide update/actions line if other bio lines and thus the expand button are present */
+ &:not(.expanded) .bio-item + .updated {
+ display: none;
}
}
diff --git a/pages/actors/@actorId/edit/+Page.vue b/pages/actors/@actorId/edit/+Page.vue
index 5cc513e..b160542 100644
--- a/pages/actors/@actorId/edit/+Page.vue
+++ b/pages/actors/@actorId/edit/+Page.vue
@@ -360,6 +360,28 @@
+
+ Incision
+
+
+
+
Lipo without BBL
+
+
+ Natural lips
+
+
+
+
+
+ Filler CC
+
+
+
+
+
+ Natural labia
+
+
+
[
boobsVolume: actor.value.boobsVolume,
boobsImplant: actor.value.boobsImplant,
boobsPlacement: actor.value.boobsPlacement,
+ boobsIncision: actor.value.boobsIncision,
boobsSurgeon: actor.value.boobsSurgeon,
naturalButt: actor.value.naturalButt,
buttVolume: actor.value.buttVolume,
buttImplant: actor.value.buttImplant,
+ naturalLips: actor.value.naturalLips,
+ lipsVolume: actor.value.lipsVolume,
+ naturalLabia: actor.value.naturalLabia,
},
},
{
diff --git a/src/actors.js b/src/actors.js
index 019b685..5964f35 100644
--- a/src/actors.js
+++ b/src/actors.js
@@ -22,6 +22,35 @@ import { interpolateProfiles } from '../common/actors.mjs'; // eslint-disable-li
const logger = initLogger();
const mj = new MerkleJson();
+const keyMap = {
+ avatar: 'avatar_media_id',
+ dateOfBirth: 'date_of_birth',
+ dateOfDeath: 'date_of_death',
+ originCountry: 'birth_country_alpha2',
+ originState: 'birth_state',
+ originCity: 'birth_city',
+ residenceCountry: 'residence_country_alpha2',
+ residenceState: 'residence_state',
+ residenceCity: 'residence_city',
+ hairColor: 'hair_color',
+ naturalBoobs: 'natural_boobs',
+ boobsVolume: 'boobs_volume',
+ boobsImplant: 'boobs_implant',
+ boobsPlacement: 'boobs_placement',
+ boobsIncision: 'boobs_incision',
+ boobsSurgeon: 'boobs_surgeon',
+ naturalButt: 'natural_butt',
+ buttVolume: 'butt_volume',
+ buttImplant: 'butt_implant',
+ naturalLips: 'natural_lips',
+ lipsVolume: 'lips_volume',
+ naturalLabia: 'natural_labia',
+ penisLength: 'penis_length',
+ penisGirth: 'penis_girth',
+ hasTattoos: 'has_tattoos',
+ hasPiercings: 'has_piercings',
+};
+
export function curateActor(actor, context = {}) {
return {
id: actor.id,
@@ -29,25 +58,14 @@ export function curateActor(actor, context = {}) {
name: actor.name,
gender: actor.gender,
age: actor.age,
- dateOfBirth: actor.date_of_birth,
+ ...Object.fromEntries(Object.entries(keyMap).map(([key, entryKey]) => [key, actor[entryKey]])),
ageFromBirth: actor.date_of_birth && differenceInYears(Date.now(), actor.date_of_birth),
ageThen: context.sceneDate && actor.date_of_birth && differenceInYears(context.sceneDate, actor.date_of_birth),
- dateOfDeath: actor.date_of_death,
bust: actor.bust,
cup: actor.cup,
waist: actor.waist,
hip: actor.hip,
- naturalBoobs: actor.natural_boobs,
- boobsVolume: actor.boobs_volume,
- boobsImplant: actor.boobs_implant,
- boobsPlacement: actor.boobs_placement,
- boobsSurgeon: actor.boobs_surgeon,
- naturalButt: actor.natural_butt,
- buttVolume: actor.butt_volume,
- buttImplant: actor.butt_implant,
- penisLength: actor.penis_length,
- penisGirth: actor.penis_girth,
- isCircumcised: actor.is_circumcised,
+ circumcised: actor.circumcised,
height: actor.height && {
metric: actor.height,
imperial: unit(actor.height, 'cm').splitUnit(['ft', 'in']).map((value) => Math.round(value.toNumber())),
@@ -57,10 +75,7 @@ export function curateActor(actor, context = {}) {
imperial: Math.round(unit(actor.weight, 'kg').toNumeric('lbs')),
},
eyes: actor.eyes,
- hairColor: actor.hair_color,
- hasTattoos: actor.has_tattoos,
tattoos: actor.tattoos,
- hasPiercings: actor.has_piercings,
piercings: actor.piercings,
origin: actor.birth_country_alpha2 && {
country: actor.birth_country_alpha2 && {
@@ -130,7 +145,8 @@ export async function fetchActorsById(actorIds, options = {}, reqUser) {
knex('actors')
.select(
'actors.*',
- 'actors_meta.*',
+ 'actors_meta.stashed',
+ knex.raw('row_to_json(avatars) as avatar'),
'birth_countries.alpha2 as birth_country_alpha2',
knex.raw('COALESCE(birth_countries.alias, birth_countries.name) as birth_country_name'),
'residence_countries.alpha2 as residence_country_alpha2',
@@ -139,6 +155,7 @@ export async function fetchActorsById(actorIds, options = {}, reqUser) {
.leftJoin('actors_meta', 'actors_meta.actor_id', 'actors.id')
.leftJoin('countries as birth_countries', 'birth_countries.alpha2', 'actors.birth_country_alpha2')
.leftJoin('countries as residence_countries', 'residence_countries.alpha2', 'actors.residence_country_alpha2')
+ .leftJoin('media as avatars', 'avatars.id', 'actors.avatar_media_id')
.whereIn('actors.id', actorIds)
.modify((builder) => {
if (options.order) {
@@ -459,32 +476,6 @@ export async function fetchActorRevisions(revisionId, filters = {}, reqUser) {
};
}
-const keyMap = {
- avatar: 'avatar_media_id',
- dateOfBirth: 'date_of_birth',
- dateOfDeath: 'date_of_death',
- originCountry: 'birth_country_alpha2',
- originState: 'birth_state',
- originCity: 'birth_city',
- residenceCountry: 'residence_country_alpha2',
- residenceState: 'residence_state',
- residenceCity: 'residence_city',
- hairColor: 'hair_color',
- naturalBoobs: 'natural_boobs',
- boobsVolume: 'boobs_volume',
- boobsImplant: 'boobs_implant',
- boobsPlacement: 'boobs_placement',
- boobsSurgeon: 'boobs_surgeon',
- naturalButt: 'natural_butt',
- buttVolume: 'butt_volume',
- buttImplant: 'butt_implant',
- penisLength: 'penis_length',
- penisGirth: 'penis_girth',
- isCircumcised: 'circumcised',
- hasTattoos: 'has_tattoos',
- hasPiercings: 'has_piercings',
-};
-
async function applyActorValueDelta(profileId, delta, trx) {
return knex('actors_profiles')
.where('id', profileId)
@@ -587,10 +578,14 @@ async function applyActorRevision(revisionIds, reqUser) {
'boobsVolume',
'boobsImplant',
'boobsPlacement',
+ 'boobsIncision',
'boobsSurgeon',
'naturalButt',
'buttVolume',
'buttImplant',
+ 'naturalLips',
+ 'lipsVolume',
+ 'naturalLabia',
'penisLength',
'penisGirth',
'isCircumcised',
@@ -631,7 +626,7 @@ async function applyActorRevision(revisionIds, reqUser) {
moment,
slugify,
omit,
- });
+ }, { refreshView: false });
}
export async function reviewActorRevision(revisionId, isApproved, { feedback }, reqUser) {