0.1.7 - added new document types, reworked old types

This commit is contained in:
Elvanos 2021-05-13 19:51:35 +02:00
parent 841a757310
commit 65bbbe5b47
49 changed files with 5280 additions and 1236 deletions

View file

@ -94,7 +94,7 @@ export default class App extends BaseClass {
await this.loadCorkboardCotent() await this.loadCorkboardCotent()
// Load the popup hint on start // Load the popup hint on
this.loadHintPopup() this.loadHintPopup()
// React to keybind presses // React to keybind presses

View file

@ -437,6 +437,25 @@ export default class BaseClass extends Vue {
return fieldValue return fieldValue
} }
/**
* Retrieves value of requested field. If the field doesn't exist, returns false instead
* @param document - Document object that is expected to contain the field
* @param fieldID - ID of the field to check
*/
retrieveFieldType (document: I_OpenedDocument| I_ShortenedDocument, fieldID: string) : string | number | [] | false | I_FieldRelationship {
const fieldData = document?.extraFields
// Fizzle if field doesnt exist
if (!fieldData) {
return false
}
const documentBlueprint = this.SGET_blueprint(document.type)
const fieldType = documentBlueprint.extraFields.find(f => f.id === fieldID)?.type as unknown as string
return fieldType
}
/** /**
* Retrieves array length of requested field. If the field doesn't exist or isn't array, returns false instead * Retrieves array length of requested field. If the field doesn't exist or isn't array, returns false instead
* @param document - Document object that is expected to contain the field * @param document - Document object that is expected to contain the field

View file

@ -265,6 +265,10 @@ export default class DocumentPreview extends BaseClass {
* Checks if the field in question * Checks if the field in question
*/ */
hasValueFieldFilter (field: any) { hasValueFieldFilter (field: any) {
if (this.retrieveFieldType(this.localDocument, field.id) === "break") {
return true
}
const value = this.retrieveFieldValue(this.localDocument, field.id) const value = this.retrieveFieldValue(this.localDocument, field.id)
if (!value || if (!value ||
@ -430,6 +434,15 @@ export default class DocumentPreview extends BaseClass {
background-color: map-get($customColors, 'gunmetal-lighter') !important; background-color: map-get($customColors, 'gunmetal-lighter') !important;
color: #fff; color: #fff;
.inputWrapper {
display: flex;
flex-direction: column;
}
h5 {
font-size: 19px;
}
.text-primary { .text-primary {
color: #ffd673 !important; color: #ffd673 !important;
} }

View file

@ -68,7 +68,7 @@
@mouseleave="setDocumentPreviewClose" @mouseleave="setDocumentPreviewClose"
> >
<documentPreview <documentPreview
v-if="!preventPreviewsTree && !prop.node.isRoot && !prop.node.isTag && !prop.node.specialLabel" v-if="!preventPreviewsTree && !prop.node.isRoot && !prop.node.isTag && !prop.node.specialLabel && !prop.node.isModule"
:document-id="prop.node._id" :document-id="prop.node._id"
:custom-anchor="'center right'" :custom-anchor="'center right'"
:custom-self="'center left'" :custom-self="'center left'"
@ -76,11 +76,12 @@
/> />
<div class="documentLabel" <div class="documentLabel"
:class="{'text-satin-sheen-gold-bright-imp': prop.node.isModule, 'text-weight-bold': prop.node.isModule}"
:style="`color: ${prop.node.color};`" :style="`color: ${prop.node.color};`"
> >
<q-icon <q-icon
:style="`color: ${determineNodeColor(prop.node)}; width: 22px !important;`" :style="`color: ${determineNodeColor(prop.node)}; width: 22px !important;`"
:size="(prop.node.icon.includes('fas')? '16px': '21px')" :size="((prop.node.icon.includes('fas') || prop.node.icon.includes('fab')) ? '16px': '21px')"
:name="prop.node.icon" :name="prop.node.icon"
class="q-mr-sm self-center" /> class="q-mr-sm self-center" />
<span v-if="prop.node.isDead" class="documentLabel__isDeadMarker"></span> <span v-if="prop.node.isDead" class="documentLabel__isDeadMarker"></span>
@ -120,7 +121,7 @@
<div class="treeButtonGroup"> <div class="treeButtonGroup">
<q-btn <q-btn
tabindex="-1" tabindex="-1"
v-if="((prop.node.children && prop.node.children.length > 0) || !hideTreeExtraIcons) && !prop.node.isRoot && !prop.node.isTag && !hideTreeIconView && !prop.node.specialLabel" v-if="((prop.node.children && prop.node.children.length > 0) || !hideTreeExtraIcons) && !prop.node.isRoot && !prop.node.isTag && !hideTreeIconView && !prop.node.specialLabel && !prop.node.isModule"
round round
flat flat
dense dense
@ -138,7 +139,7 @@
</q-btn> </q-btn>
<q-btn <q-btn
tabindex="-1" tabindex="-1"
v-if="!prop.node.isRoot && !prop.node.isTag && !hideTreeIconEdit && !prop.node.specialLabel" v-if="!prop.node.isRoot && !prop.node.isTag && !hideTreeIconEdit && !prop.node.specialLabel && !prop.node.isModule"
round round
flat flat
dense dense
@ -156,7 +157,7 @@
</q-btn> </q-btn>
<q-btn <q-btn
tabindex="-1" tabindex="-1"
v-if="!prop.node.specialLabel && !prop.node.isRoot && !prop.node.isTag && !hideTreeIconAddUnder" v-if="!prop.node.specialLabel && !prop.node.isRoot && !prop.node.isTag && !hideTreeIconAddUnder && !prop.node.isModule"
round round
flat flat
dense dense
@ -180,7 +181,7 @@
<q-list class="bg-gunmetal-light text-accent" v-if="!prop.node.isTag"> <q-list class="bg-gunmetal-light text-accent" v-if="!prop.node.isTag">
<template v-if="prop.node.isRoot || prop.node.children.length > 0"> <template v-if="prop.node.isRoot || prop.node.children.length > 0 || prop.node.isModule">
<q-item clickable v-close-popup @click="recursivelyExpandNodeDownwards(prop.node.key)"> <q-item clickable v-close-popup @click="recursivelyExpandNodeDownwards(prop.node.key)">
<q-item-section>Expand all under this node</q-item-section> <q-item-section>Expand all under this node</q-item-section>
<q-item-section avatar> <q-item-section avatar>
@ -195,7 +196,7 @@
</q-item> </q-item>
</template> </template>
<template v-if="prop.node.isRoot"> <template v-if="prop.node.isRoot && !prop.node.isModule">
<q-separator dark /> <q-separator dark />
<q-item clickable v-close-popup @click="addNewObjectRoute(prop.node)"> <q-item clickable v-close-popup @click="addNewObjectRoute(prop.node)">
<q-item-section>Add new document of type: {{prop.node.label}}</q-item-section> <q-item-section>Add new document of type: {{prop.node.label}}</q-item-section>
@ -205,7 +206,7 @@
</q-item> </q-item>
</template> </template>
<template v-if="!prop.node.isRoot"> <template v-if="!prop.node.isRoot && !prop.node.isModule">
<q-separator dark /> <q-separator dark />
<q-item clickable v-close-popup @click="copyName(prop.node)"> <q-item clickable v-close-popup @click="copyName(prop.node)">
<q-item-section>Copy name</q-item-section> <q-item-section>Copy name</q-item-section>
@ -603,6 +604,11 @@ export default class ObjectTree extends BaseClass {
buildCurrentObjectTree () { buildCurrentObjectTree () {
this.hierarchicalTree = [] this.hierarchicalTree = []
const moduleCategories: {
label: string
maxOrder: number
}[] = []
const allBlueprings = this.SGET_allBlueprints const allBlueprings = this.SGET_allBlueprints
let treeObject: any[] = [] let treeObject: any[] = []
@ -665,6 +671,7 @@ export default class ObjectTree extends BaseClass {
handler: this.addNewObjectRoute, handler: this.addNewObjectRoute,
specialLabel: blueprint.nameSingular.toLowerCase(), specialLabel: blueprint.nameSingular.toLowerCase(),
isRoot: true, isRoot: true,
cat: blueprint.category,
allCount: allCount, allCount: allCount,
documentCount: documentCount, documentCount: documentCount,
categoryCount: categoryCount, categoryCount: categoryCount,
@ -683,6 +690,18 @@ export default class ObjectTree extends BaseClass {
] ]
} }
const matchedCategoryIndex = moduleCategories.findIndex(e => e.label === blueprint.category)
if (matchedCategoryIndex < 0) {
moduleCategories.push({
label: blueprint.category,
maxOrder: blueprint.order
})
}
else if (moduleCategories[matchedCategoryIndex].maxOrder < blueprint.order) {
moduleCategories[matchedCategoryIndex].maxOrder = blueprint.order
}
treeObject.push(treeRow) treeObject.push(treeRow)
} }
@ -698,6 +717,18 @@ export default class ObjectTree extends BaseClass {
return 0 return 0
}) })
// Sort the top level of the super-categories
moduleCategories.sort((a, b) => {
if (a.maxOrder < b.maxOrder) {
return 1
}
if (a.maxOrder > b.maxOrder) {
return -1
}
return 0
})
if (!this.noTags) { if (!this.noTags) {
const tagList = tagListBuildFromBlueprints(this.SGET_allDocuments.docs) const tagList = tagListBuildFromBlueprints(this.SGET_allDocuments.docs)
@ -763,12 +794,32 @@ export default class ObjectTree extends BaseClass {
] ]
} }
if (this.tagsAtTop) { treeObject = [...tagNodeList, ...treeObject]
treeObject = [...tagNodeList, ...treeObject] }
}
else { treeObject = [
treeObject = [...treeObject, ...tagNodeList] ...(this.tagsAtTop) ? treeObject.filter(branch => branch.isTag) : [],
} ...moduleCategories.map(cat => {
return {
label: cat.label,
icon: "mdi-database",
_id: `module-${cat.label}`,
key: `module-${cat.label}`,
isModule: true,
// @ts-ignore
children: treeObject.filter(e => e.cat === cat.label)
}
}),
...(this.tagsAtTop) ? [] : treeObject.filter(branch => branch.isTag)
]
if (this.firstTimeRender && moduleCategories.length > 0) {
this.expandedTreeNodes = [...new Set([
...this.expandedTreeNodes,
...moduleCategories.map(e => `module-${e.label}`)
])]
this.firstTimeRender = false
} }
// Assign the finished object to the render model // Assign the finished object to the render model
@ -777,6 +828,8 @@ export default class ObjectTree extends BaseClass {
this.hierarchicalTree = treeObject this.hierarchicalTree = treeObject
} }
firstTimeRender = true
recursivelyFreezeChildren (children: {children: []}) { recursivelyFreezeChildren (children: {children: []}) {
Object.freeze(children) Object.freeze(children)
if (children.children) { if (children.children) {
@ -926,9 +979,10 @@ export default class ObjectTree extends BaseClass {
type: string type: string
isRoot: boolean isRoot: boolean
isTag: boolean isTag: boolean
isModule: boolean
specialLabel: string|boolean specialLabel: string|boolean
}) { }) {
if (node.isRoot && node.isTag) { if ((node.isRoot && node.isTag) || node.isModule) {
return return
} }
@ -978,9 +1032,9 @@ export default class ObjectTree extends BaseClass {
} }
} }
determineNodeColor (node: {color: string, isTag: boolean, isRoot: boolean}) { determineNodeColor (node: {color: string, isTag: boolean, isRoot: boolean, isModule: boolean}) {
// @ts-ignore // @ts-ignore
return (node?.isTag) ? colors.getBrand("primary") : node.color return (node?.isTag || node?.isModule) ? colors.getBrand("primary") : node.color
} }
collapseAllNodes (node: {key: string, children: []}) { collapseAllNodes (node: {key: string, children: []}) {
@ -1214,6 +1268,10 @@ export default class ObjectTree extends BaseClass {
justify-content: space-between; justify-content: space-between;
padding: 4px 4px 4px 25px; padding: 4px 4px 4px 25px;
align-items: center; align-items: center;
&__content {
word-break: break-word;
}
} }
.treeButtonGroup { .treeButtonGroup {

View file

@ -495,7 +495,8 @@ export default class TopTabs extends BaseClass {
display: flex; display: flex;
} }
.tabsWrapper .fas { .tabsWrapper .fas,
.tabsWrapper .fab {
font-size: 16px; font-size: 16px;
} }
@ -554,7 +555,8 @@ export default class TopTabs extends BaseClass {
} }
} }
.fas { .fas,
.fab {
font-size: 16px; font-size: 16px;
} }

View file

@ -1,9 +1,10 @@
<template> <template>
<div> <div>
<h4 class="flex justify-start items-center text-weight-bolder q-mb-xs q-mt-xl"> <h5 class="text-weight-bolder q-mb-xs q-mt-lg">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-sm"/> <span :class="(isDarkMode) ? 'text-satin-sheen-gold-bright' : 'text-gunmetal-medium'">
{{inputDataBluePrint.name}} {{inputDataBluePrint.name}}
</h4> </span>
</h5>
</div> </div>
</template> </template>

View file

@ -1,13 +1,15 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-md" min="1"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
{{inputDataBluePrint.name}} <div class="documentLabelContent">
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> {{inputDataBluePrint.name}}
<q-tooltip :delay="500"> </div>
<span v-html="toolTip"/> <q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
</q-tooltip> <q-tooltip :delay="500">
</q-icon> <span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div> </div>
<q-list <q-list
@ -42,6 +44,9 @@
</template> </template>
<template v-slot:append> <template v-slot:append>
<q-icon name="colorize" class="cursor-pointer"> <q-icon name="colorize" class="cursor-pointer">
<q-tooltip :delay="500">
<span style="white-space: nowrap;">Open a color picker pop-up</span>
</q-tooltip>
<q-popup-proxy transition-show="scale" transition-hide="scale"> <q-popup-proxy transition-show="scale" transition-hide="scale">
<q-color <q-color
@input="processInput" @input="processInput"

View file

@ -1,14 +1,16 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-sm"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
<div class="documentLabelContent">
{{inputDataBluePrint.name}} {{inputDataBluePrint.name}}
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md">
<q-tooltip :delay="500">
<span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div> </div>
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
<q-tooltip :delay="500">
<span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div>
<q-list <q-list
v-if="!editMode" v-if="!editMode"
@ -86,7 +88,7 @@
</q-btn> </q-btn>
<template v-if="isReversed"> <template v-if="isReversed">
<q-input <q-input
v-if="hasExtraInput && filteredLocalExtraInput.length === 0" v-if="hasExtraInput && localExtraInput.length === 0"
style="min-width: 350px; width: 350px; max-width: 350px;" style="min-width: 350px; width: 350px; max-width: 350px;"
v-model="localInput[index].affix" v-model="localInput[index].affix"
class="grow-1 q-mr-lg" class="grow-1 q-mr-lg"
@ -102,7 +104,7 @@
<q-select <q-select
style="min-width: 350px; width: 350px;" style="min-width: 350px; width: 350px;"
dense dense
v-if="hasExtraInput && filteredLocalExtraInput.length > 0" v-if="hasExtraInput && localExtraInput.length > 0"
class="listAtributeSelect q-mr-lg" class="listAtributeSelect q-mr-lg"
:options="filteredLocalExtraInput" :options="filteredLocalExtraInput"
use-input use-input
@ -114,6 +116,7 @@
input-debounce="0" input-debounce="0"
new-value-mode="add" new-value-mode="add"
dark dark
virtual-scroll-slice-size="1000"
:class="`listField_prefix${index}_${inputDataBluePrint.id}`" :class="`listField_prefix${index}_${inputDataBluePrint.id}`"
@filter="filterFn" @filter="filterFn"
@input="processInput" @input="processInput"
@ -174,6 +177,7 @@
clickable clickable
v-ripple v-ripple
v-close-popup v-close-popup
v-on="scope.itemEvents"
@click="localInput[index].affix = value" @click="localInput[index].affix = value"
> >
<q-item-section> <q-item-section>
@ -210,7 +214,7 @@
> >
</q-input> </q-input>
<q-input <q-input
v-if="hasExtraInput && filteredLocalExtraInput.length === 0" v-if="hasExtraInput && localExtraInput.length === 0"
style="min-width: 350px; width: 350px; max-width: 350px;" style="min-width: 350px; width: 350px; max-width: 350px;"
v-model="localInput[index].affix" v-model="localInput[index].affix"
class="grow-1 q-mr-lg" class="grow-1 q-mr-lg"
@ -224,7 +228,7 @@
> >
</q-input> </q-input>
<q-select <q-select
v-if="hasExtraInput && filteredLocalExtraInput.length > 0" v-if="hasExtraInput && localExtraInput.length > 0"
style="min-width: 350px; width: 350px;" style="min-width: 350px; width: 350px;"
dense dense
class="listAtributeSelect q-mr-lg" class="listAtributeSelect q-mr-lg"
@ -237,6 +241,7 @@
:readonly="!editMode" :readonly="!editMode"
input-debounce="0" input-debounce="0"
new-value-mode="add" new-value-mode="add"
virtual-scroll-slice-size="1000"
dark dark
:class="`listField_prefix${index}_${inputDataBluePrint.id}`" :class="`listField_prefix${index}_${inputDataBluePrint.id}`"
@filter="filterFn" @filter="filterFn"
@ -319,20 +324,24 @@
@click="removeFromList(index)" @click="removeFromList(index)"
> >
<q-tooltip :delay="500"> <q-tooltip :delay="500">
Remove <span style="white-space: nowrap;">Remove "{{(isReversed)? localInput[index].affix : localInput[index].value }}"</span>
</q-tooltip> </q-tooltip>
</q-btn> </q-btn>
</div> </div>
</div> </div>
</div> </div>
<div class="row q-mt-xs" v-if="editMode"> <div class="row q-mt-lg" v-if="editMode">
<div class="col justify-start flex"> <div class="col justify-end flex">
<q-btn <q-btn
color="primary" color="primary"
icon="mdi-plus"
:outline="isDarkMode" :outline="isDarkMode"
label="Add new" @click="addNewInput()" >
@click="addNewInput()" /> <q-tooltip :delay="500">
Add new
</q-tooltip>
</q-btn>
</div> </div>
</div> </div>
</div> </div>
@ -437,7 +446,8 @@ export default class Field_List extends FieldBase {
filterFn (val:string, update: (e: () => void) => void) { filterFn (val:string, update: (e: () => void) => void) {
if (val === "") { if (val === "") {
update(() => { update(() => {
this.filteredLocalExtraInput = this.localExtraInput const localListCopy: [] = extend(true, [], this.localExtraInput)
this.filteredLocalExtraInput = localListCopy
}) })
return return
} }

View file

@ -1,14 +1,16 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-sm"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
{{inputDataBluePrint.name}} <div class="documentLabelContent">
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> {{inputDataBluePrint.name}}
</div>
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
<q-tooltip :delay="500"> <q-tooltip :delay="500">
<span v-html="toolTip"/> <span v-html="toolTip"/>
</q-tooltip> </q-tooltip>
</q-icon> </q-icon>
<q-icon v-if="isOneWayRelationship" name="mdi-arrow-right-bold" size="16px" class="q-ml-md"> <q-icon v-if="isOneWayRelationship" name="mdi-arrow-right-bold" size="16px" class="documentLabelExtra">
<q-tooltip :delay="500" v-if="!disableDocumentToolTips"> <q-tooltip :delay="500" v-if="!disableDocumentToolTips">
This is a one-way relationship. <br> Editing this value <span class="text-secondary">WILL NOT</span> have any effect on the connected document/s. This is a one-way relationship. <br> Editing this value <span class="text-secondary">WILL NOT</span> have any effect on the connected document/s.
<br> <br>
@ -18,7 +20,7 @@
Middle-clicking the linked document in non-edit mode will open it in new tab and not focus on it. Middle-clicking the linked document in non-edit mode will open it in new tab and not focus on it.
</q-tooltip> </q-tooltip>
</q-icon> </q-icon>
<q-icon v-if="!isOneWayRelationship" name="mdi-arrow-left-right-bold" size="16px" class="q-ml-md"> <q-icon v-if="!isOneWayRelationship" name="mdi-arrow-left-right-bold" size="16px" class="documentLabelExtra">
<q-tooltip :delay="500" v-if="!disableDocumentToolTips"> <q-tooltip :delay="500" v-if="!disableDocumentToolTips">
This is a two-way relationship. <br> Editing this value <span class="text-secondary">WILL</span> also affect the connected document/s. This is a two-way relationship. <br> Editing this value <span class="text-secondary">WILL</span> also affect the connected document/s.
<br> <br>

View file

@ -1,13 +1,15 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-sm"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
{{inputDataBluePrint.name}} <div class="documentLabelContent">
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> {{inputDataBluePrint.name}}
<q-tooltip :delay="500"> </div>
<span v-html="toolTip"/> <q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
</q-tooltip> <q-tooltip :delay="500">
</q-icon> <span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div> </div>
<q-list <q-list

View file

@ -1,13 +1,15 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-md" min="1"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
{{inputDataBluePrint.name}} <div class="documentLabelContent">
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> {{inputDataBluePrint.name}}
<q-tooltip :delay="500"> </div>
<span v-html="toolTip"/> <q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
</q-tooltip> <q-tooltip :delay="500">
</q-icon> <span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div> </div>
<q-list <q-list

View file

@ -1,33 +1,36 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-sm"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
{{inputDataBluePrint.name}} <div class="documentLabelContent">
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> {{inputDataBluePrint.name}}
</div>
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
<q-tooltip :delay="500"> <q-tooltip :delay="500">
<span v-html="toolTip"/> <span v-html="toolTip"/>
</q-tooltip> </q-tooltip>
</q-icon> </q-icon>
<q-icon v-if="isOneWayRelationship" name="mdi-arrow-right-bold" size="16px" class="q-ml-md"> <q-icon v-if="isOneWayRelationship" name="mdi-arrow-right-bold" size="16px" class="documentLabelExtra">
<q-tooltip :delay="500" v-if="!disableDocumentToolTips"> <q-tooltip :delay="500" v-if="!disableDocumentToolTips">
This is a one-way relationship. <br> Editing this value <span class="text-secondary">WILL NOT</span> have any effect on the connected document/s. This is a one-way relationship. <br> Editing this value <span class="text-secondary">WILL NOT</span> have any effect on the connected document/s.
<br> <br>
<br> <br>
Left-clicking the linked document in non-edit mode will open it in new tab and focuses on it. Left-clicking the linked document in non-edit mode will open it in new tab and focuses on it.
<br> <br>
Middle-clicking the linked document in non-edit mode will open it in new tab and not focus on it. Middle-clicking the linked document in non-edit mode will open it in new tab and not focus on it.
</q-tooltip> </q-tooltip>
</q-icon> </q-icon>
<q-icon v-if="!isOneWayRelationship" name="mdi-arrow-left-right-bold" size="16px" class="q-ml-md"> <q-icon v-if="!isOneWayRelationship" name="mdi-arrow-left-right-bold" size="16px" class="documentLabelExtra">
<q-tooltip :delay="500" v-if="!disableDocumentToolTips"> <q-tooltip :delay="500" v-if="!disableDocumentToolTips">
This is a two-way relationship. <br> Editing this value <span class="text-secondary">WILL</span> also affect the connected document/s. This is a two-way relationship. <br> Editing this value <span class="text-secondary">WILL</span> also affect the connected document/s.
<br> <br>
<br> <br>
Left-clicking the linked document in non-edit mode will open it in new tab and focuses on it. Left-clicking the linked document in non-edit mode will open it in new tab and focuses on it.
<br> <br>
Middle-clicking the linked document in non-edit mode will open it in new tab and not focus on it. Middle-clicking the linked document in non-edit mode will open it in new tab and not focus on it.
</q-tooltip> </q-tooltip>
</q-icon> </q-icon>
</div> </div>
<q-list <q-list

View file

@ -1,14 +1,16 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-sm"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
<div class="documentLabelContent">
{{inputDataBluePrint.name}} {{inputDataBluePrint.name}}
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md">
<q-tooltip :delay="500">
<span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div> </div>
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
<q-tooltip :delay="500">
<span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div>
<q-list <q-list
v-if="!editMode" v-if="!editMode"
@ -23,9 +25,8 @@
<q-input <q-input
v-if="editMode && extraInput.length === 0" v-if="editMode && extraInput.length === 0"
style="width: 100%;"
v-model="localInput" v-model="localInput"
class="grow-1 q-mr-lg" class="q-mr-lg"
:ref="`singleSelectField${this.inputDataBluePrint.id}`" :ref="`singleSelectField${this.inputDataBluePrint.id}`"
dense dense
autogrow autogrow

View file

@ -1,13 +1,15 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-md" min="1"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
{{inputDataBluePrint.name}} <div class="documentLabelContent">
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> {{inputDataBluePrint.name}}
<q-tooltip :delay="500"> </div>
<span v-html="toolTip"/> <q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
</q-tooltip> <q-tooltip :delay="500">
</q-icon> <span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div> </div>
<div v-if="!editMode && localInput"> <div v-if="!editMode && localInput">

View file

@ -1,13 +1,15 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-sm"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
{{inputDataBluePrint.name}} <div class="documentLabelContent">
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> {{inputDataBluePrint.name}}
<q-tooltip :delay="500"> </div>
<span v-html="toolTip"/> <q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
</q-tooltip> <q-tooltip :delay="500">
</q-icon> <span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div> </div>
<div <div

View file

@ -1,13 +1,15 @@
<template> <template>
<div> <div>
<div class="flex justify-start items-center text-weight-bolder q-mb-sm q-mt-md"> <div class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-sm"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
{{inputDataBluePrint.name}} <div class="documentLabelContent">
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> {{inputDataBluePrint.name}}
<q-tooltip :delay="500"> </div>
<span v-html="toolTip"/> <q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="documentLabelTooltip">
</q-tooltip> <q-tooltip :delay="500">
</q-icon> <span v-html="toolTip"/>
</q-tooltip>
</q-icon>
</div> </div>
<q-list <q-list
@ -30,6 +32,7 @@
:outlined="!isDarkMode" :outlined="!isDarkMode"
:filled="isDarkMode" :filled="isDarkMode"
dense dense
autogrow
:ref="`textField${this.inputDataBluePrint.id}`" :ref="`textField${this.inputDataBluePrint.id}`"
> >
<template v-slot:append v-if="isNew && !changedInput && localInput.length > 0"> <template v-slot:append v-if="isNew && !changedInput && localInput.length > 0">

View file

@ -2,7 +2,7 @@
<div> <div>
<div class="flex justify-center items-center text-weight-bolder q-mb-sm q-mt-md fieldWysiwygTitle"> <div class="flex justify-center items-center text-weight-bolder q-mb-sm q-mt-md fieldWysiwygTitle">
<span> <span>
<q-icon v-if="inputIcon" :name="inputIcon" :size="inputIcon.includes('fas')? '15px': '20px'" class="q-mr-md"/> <q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="q-mr-md"/>
{{inputDataBluePrint.name}} {{inputDataBluePrint.name}}
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md"> <q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md">
<q-tooltip :delay="500"> <q-tooltip :delay="500">
@ -10,7 +10,6 @@
</q-tooltip> </q-tooltip>
</q-icon> </q-icon>
</span> </span>
</div> </div>
<div <div

View file

@ -659,3 +659,36 @@ body .q-tooltip {
position: relative; position: relative;
overflow: hidden !important; overflow: hidden !important;
} }
.documentLabelWrapper {
position: relative;
padding: 0;
padding-right: 30px;
}
.documentLabelIcon {
position: absolute;
left: 0;
top: 0;
top: 50%;
transform: translateY(-50%);
~ .documentLabelContent {
padding-left: 30px;
}
}
.documentLabelContent {
line-height: 1.6;
float: left;
}
.documentLabelTooltip {
margin-left: 10px;
}
.documentLabelExtra {
position: absolute;
right: 0;
top: 0;
}

View file

@ -5,7 +5,15 @@
color: $color; color: $color;
} }
.text-#{$name}-imp {
color: $color !important;
}
.bg-#{$name} { .bg-#{$name} {
background-color: $color; background-color: $color;
} }
.bg-#{$name}-imp {
background-color: $color !important;
}
} }

View file

@ -27,12 +27,14 @@ $customColors: (
'gunmetal': #18303a, 'gunmetal': #18303a,
'gunmetal-light': lighten(#18303a, 7.5), 'gunmetal-light': lighten(#18303a, 7.5),
'gunmetal-lighter': lighten(#18303a, 12.5), 'gunmetal-lighter': lighten(#18303a, 12.5),
'gunmetal-medium': lighten(#18303a, 20),
'gunmetal-bright': lighten(#18303a, 50), 'gunmetal-bright': lighten(#18303a, 50),
'gunmetal-shine': lighten(#18303a, 60), 'gunmetal-shine': lighten(#18303a, 60),
'ruby-red': #f75746, 'ruby-red': #f75746,
'satin-sheen-gold': #e8bb50, 'satin-sheen-gold': #e8bb50,
'satin-sheen-gold-dark': darken(#e8bb50, 12.5), 'satin-sheen-gold-dark': darken(#e8bb50, 12.5),
'satin-sheen-gold-light': lighten(#e8bb50, 7.5), 'satin-sheen-gold-light': lighten(#e8bb50, 7.5),
'satin-sheen-gold-bright': lighten(#e8bb50, 15),
'gainsboro': #dde4e4, 'gainsboro': #dde4e4,
'cultured': #f5f5f5 'cultured': #f5f5f5
); );

View file

@ -7,8 +7,8 @@
### Known issues ### Known issues
- Creating a brand new project can sometimes get stuck. Restarting the app fixes this. - Creating a brand new project can very occasionally get stuck. Restarting the app fixes this.
- Importing existing project can sometimes get stuck. Restarting the app fixes this. - Importing existing project can very occasionally get stuck. Restarting the app fixes this.
### Bugfixes & Optimizations ### Bugfixes & Optimizations
@ -16,14 +16,20 @@
- Fixed a limiter for advanced search that was throwing errors in rare cases - Fixed a limiter for advanced search that was throwing errors in rare cases
- Fixed a bug that was causing single-to-single relationship notes not properly saving - Fixed a bug that was causing single-to-single relationship notes not properly saving
- Fixed the notes window showing on top of popup overlay - Fixed the notes window showing on top of popup overlay
- Fixed a bug that was causing changed to document blueprints to not update properly
- Fixed a bug affecting single-to-single and many-to-single relationships in case deleteted values were lingering in the connected data
- Fixed a bug that was causing improper rendering of the project overview graph legends
### New features ### New features
- **Added on-the-fly relationship documents generation** - **Added on-the-fly relationship documents generation**
- **Added stat/attribute support for multiple RPG systems** - **Added stat/attribute support for multiple RPG systems**
- **Added option to search through the `Other names` field via `@` modifier** - **Added option to search through the `Other names` field via `@` modifier**
- **Added document preview popup and corresponding options to the settings for them**
- **Added `Skills/Spells/Other`, `Resources/Materials`, `Occupations/Classes` and `Afflictions/Boons/Conditions` document types and all their respected fields across the whole app**
- **Reworked all existing document types to function better with the new additions**
- Added reverse display for lists - Added reverse display for lists
- Added category adding for lists - Added a whole category of items adding for lists
- Added precise mode search to full-field search in the relationship search inputs - Added precise mode search to full-field search in the relationship search inputs
- Added option: Prevent filled note board showing - Added option: Prevent filled note board showing
- Added `Other Names & Epithets` to `Chapters` document type - Added `Other Names & Epithets` to `Chapters` document type
@ -39,6 +45,8 @@
- Revamped the field order in all document types since `Other names` field moved to `Document settings` from `Basic information` as it is not a mandatory system field specially used in advanced search - Revamped the field order in all document types since `Other names` field moved to `Document settings` from `Basic information` as it is not a mandatory system field specially used in advanced search
- Added tooltips to `Member count` and `Follower/Subject count` fields in all groups document types - Added tooltips to `Member count` and `Follower/Subject count` fields in all groups document types
- Updated selects to act as text input fields in case there are no prdefixed values in the list - Updated selects to act as text input fields in case there are no prdefixed values in the list
- Field labels received a facelift to look more appealing to look at when showing on smaller screens
- Attempteds to "prettify" the display mode of the document fields in case the "Hide empty fields" option is ticked on
## 0.1.6a ## 0.1.6a
@ -148,7 +156,7 @@
### Bugfixes & Optimizations ### Bugfixes & Optimizations
- Fixed a typo in the `Type of being` field in the `Species/Races/Flora/Faunas` document type - Fixed a typo in the `Type of being` field in the `Species/Races/Flora/Fauna` document type
- Fixed even more random typos I don't even recall T_T - Fixed even more random typos I don't even recall T_T
- Fixed a bug in light mode that was coloring the `List` field type's addition atributes dropdown wrong - Fixed a bug in light mode that was coloring the `List` field type's addition atributes dropdown wrong
- Fixed a bug that was causing the relationship dropdowns sometimes not to be clickable and instead caused dragging of the app window when shown over the top of the drag-bar at the top of the app - Fixed a bug that was causing the relationship dropdowns sometimes not to be clickable and instead caused dragging of the app window when shown over the top of the drag-bar at the top of the app
@ -493,8 +501,8 @@
- Renamed "Lore notes" to "Other/Notes" for more intuitive usage - Renamed "Lore notes" to "Other/Notes" for more intuitive usage
- Renamed "Other names" to "Other names & Epithets" across all document types - Renamed "Other names" to "Other names & Epithets" across all document types
- Renamed "Power level" to "Combat rating" in "Characters" document type - Renamed "Power level" to "Combat rating" in "Characters" document type
- Renamed "Level of sentience" to "Level of sapience" in "Species/Races/Flora/Faunas" document type - Renamed "Level of sentience" to "Level of sapience" in "Species/Races/Flora/Fauna" document type
- Added "Oldest known" and "Average adulthood" fields to the "Species/Races/Flora/Faunas" document type - Added "Oldest known" and "Average adulthood" fields to the "Species/Races/Flora/Fauna" document type
- Added "Continent" and "Landmass" to prefilled options to the "Location type" field in the "Locations" document type - Added "Continent" and "Landmass" to prefilled options to the "Location type" field in the "Locations" document type
- Added "Ethnicity" field in "Characters" document type - Added "Ethnicity" field in "Characters" document type
- Added "Titles" field in "Characters" document type - Added "Titles" field in "Characters" document type

View file

@ -4,6 +4,7 @@ export interface I_ExtraFields {
icon?: string, icon?: string,
sizing: number sizing: number
tooltip?: string tooltip?: string
isLegacy?: boolean
type: type:
"text" | "text" |
"number" | "number" |
@ -39,9 +40,10 @@ export interface I_ExtraFields {
export interface I_Blueprint{ export interface I_Blueprint{
_id: string _id: string
_rev?: string _rev?: string
order: number | false, order: number,
namePlural: string namePlural: string
nameSingular: string, nameSingular: string,
icon: string icon: string
category: string
extraFields: I_ExtraFields[] extraFields: I_ExtraFields[]
} }

View file

@ -118,7 +118,20 @@ export default class DocumentLayout extends BaseClass {
const allObjectBlueprints = (await retrieveAllBlueprints()).rows.map((blueprint) => { const allObjectBlueprints = (await retrieveAllBlueprints()).rows.map((blueprint) => {
return blueprint.doc return blueprint.doc
}) as I_Blueprint[] })
// @ts-ignore
.sort((a: I_Blueprint, b: I_Blueprint) => {
const order1 = a.order
const order2 = b.order
if (order1 > order2) {
return -1
}
if (order1 < order2) {
return 1
}
return 0
}) as I_Blueprint[]
this.SSET_allBlueprints(allObjectBlueprints) this.SSET_allBlueprints(allObjectBlueprints)
} }

View file

@ -140,6 +140,7 @@
col-lg-${determineSize_LG(field)} col-lg-${determineSize_LG(field)}
col-xl-${determineSize_XL(field)} col-xl-${determineSize_XL(field)}
q-mb-md q-mb-md
documentColumnWrapper
`"> `">
<Field_Break <Field_Break
@ -793,6 +794,9 @@ export default class PageDocumentDisplay extends BaseClass {
* Checks if the field in question * Checks if the field in question
*/ */
hasValueFieldFilter (field: any) { hasValueFieldFilter (field: any) {
if (this.retrieveFieldType(this.currentData, field.id) === "break") {
return true
}
if (!this.hideEmptyFields && !this.retrieveFieldValue(this.currentData, "finishedSwitch")) { if (!this.hideEmptyFields && !this.retrieveFieldValue(this.currentData, "finishedSwitch")) {
return true return true
} }
@ -1007,6 +1011,10 @@ export default class PageDocumentDisplay extends BaseClass {
</style> </style>
<style lang="scss"> <style lang="scss">
.documentColumnWrapper {
flex-grow: 1;
}
.separatorWrapper { .separatorWrapper {
margin-top: auto; margin-top: auto;
} }

View file

@ -109,7 +109,7 @@
transition-show="scale" transition-show="scale"
transition-hide="scale" transition-hide="scale"
> >
<h5 class="q-px-lg q-my-lg"> <h5 class="q-px-xl q-my-lg">
Document distribution - <span class="text-bold text-primary">{{allDocuments}}</span> total Document distribution - <span class="text-bold text-primary">{{allDocuments}}</span> total
</h5> </h5>
<apexchart v-if="graphDataShowing" type="bar" height="350" width="900" :options="chartOptions" :series="series" /> <apexchart v-if="graphDataShowing" type="bar" height="350" width="900" :options="chartOptions" :series="series" />
@ -419,6 +419,7 @@ export default class ProjectScreen extends BaseClass {
} }
.mainProjectTitle { .mainProjectTitle {
margin-bottom: 30px;
color: var(--q-color-dark); color: var(--q-color-dark);
} }
@ -434,6 +435,8 @@ body.body--dark {
.apexcharts-canvas { .apexcharts-canvas {
padding-bottom: 50px; padding-bottom: 50px;
padding-left: 30px;
padding-right: 30px;
box-sizing: content-box !important; box-sizing: content-box !important;
path { path {
@ -441,7 +444,8 @@ body.body--dark {
} }
svg { svg {
height: 400px; height: 425px;
overflow: visible;
} }
.apexcharts-series path { .apexcharts-series path {
@ -450,8 +454,8 @@ body.body--dark {
} }
.documentGraphParent { .documentGraphParent {
min-height: 500px; min-height: 525px;
max-height: 500px; max-height: 525px;
overflow-x: auto; overflow-x: auto;
overflow-y: hidden; overflow-y: hidden;
max-width: calc(100% - 110px); max-width: calc(100% - 110px);
@ -459,8 +463,8 @@ body.body--dark {
} }
.documentGraphWrapper { .documentGraphWrapper {
min-height: 500px; min-height: 525px;
max-height: 500px; max-height: 525px;
overflow: hidden; overflow: hidden;
width: 950px; width: 950px;
} }

View file

@ -18,12 +18,21 @@ import { magicBlueprint } from "src/scripts/databaseManager/blueprints/magic"
import { techBlueprint } from "src/scripts/databaseManager/blueprints/scienceTechnology" import { techBlueprint } from "src/scripts/databaseManager/blueprints/scienceTechnology"
import { itemsBlueprint } from "src/scripts/databaseManager/blueprints/items" import { itemsBlueprint } from "src/scripts/databaseManager/blueprints/items"
import { guildsBlueprint } from "src/scripts/databaseManager/blueprints/guilds" import { guildsBlueprint } from "src/scripts/databaseManager/blueprints/guilds"
import { resourcesBlueprint } from "src/scripts/databaseManager/blueprints/resources"
import { conditionsBlueprint } from "src/scripts/databaseManager/blueprints/conditions"
import { professionsBlueprint } from "src/scripts/databaseManager/blueprints/professions"
import { skillsBlueprint } from "src/scripts/databaseManager/blueprints/skills"
import { cultureBlueprint } from "src/scripts/databaseManager/blueprints/culture"
/** /**
* Loads all the blueprints and processes them apropriatelly * Loads all the blueprints and processes them apropriatelly
*/ */
export const engageBlueprints = async () => { export const engageBlueprints = async () => {
const BlueprintsDB = new PouchDB("blueprints") // Clean up previous versions of the blueprint DB to get fresh info
let BlueprintsDB = new PouchDB("blueprints")
await BlueprintsDB.destroy()
BlueprintsDB = new PouchDB("blueprints")
/** /**
* List of all blueprintes needed to get processed * List of all blueprintes needed to get processed
@ -43,7 +52,12 @@ export const engageBlueprints = async () => {
magicBlueprint, magicBlueprint,
techBlueprint, techBlueprint,
itemsBlueprint, itemsBlueprint,
guildsBlueprint guildsBlueprint,
resourcesBlueprint,
conditionsBlueprint,
professionsBlueprint,
skillsBlueprint,
cultureBlueprint
] ]
/** /**

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const chaptersBlueprint: I_Blueprint = { export const chaptersBlueprint: I_Blueprint = {
_id: "chapters", _id: "chapters",
order: 20, order: 450,
namePlural: "Chapters", namePlural: "Chapters",
nameSingular: "Chapter", nameSingular: "Chapter",
icon: "mdi-file-outline", icon: "mdi-file-outline",
category: "Story/Lore",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",

View file

@ -2,11 +2,67 @@ import { RPGSystemsStats } from "./../extraFieldLists/RPGSystemsStats"
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const charactersBlueprint: I_Blueprint = { export const charactersBlueprint: I_Blueprint = {
_id: "characters", _id: "characters",
order: 18, order: 370,
namePlural: "Characters", namePlural: "Characters",
nameSingular: "Character", nameSingular: "Character",
icon: "mdi-account", icon: "mdi-account",
category: "World",
extraFields: [ extraFields: [
{
id: "breakLegacyFields",
name: "Legacy fields",
type: "break",
sizing: 12,
isLegacy: true
},
{
id: "pairedMagic",
name: "Known Magic/Spells",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
isLegacy: true,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedCharacter"
}
},
{
id: "pairedTech",
name: "Known Technologies/Sciences",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
isLegacy: true,
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
connectedField: "pairedCharacter"
}
},
{
id: "skills",
name: "Skills",
type: "list",
icon: "mdi-sword",
sizing: 12,
isLegacy: true,
predefinedListExtras: {
affix: "Level",
extraSelectValueList: [
"Trainee",
"Apprentice",
"Capable",
"Advanced",
"Expert",
"Master",
"Grand-master",
"Genius",
"Prodigy",
"Off-the-scale"
]
}
},
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
name: "Document settings", name: "Document settings",
@ -153,20 +209,24 @@ export const charactersBlueprint: I_Blueprint = {
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "titles", id: "titles",
name: "Titles", name: "Titles",
type: "list", type: "list",
icon: "mdi-crown", icon: "mdi-crown",
sizing: 12 sizing: 12,
predefinedListExtras: {
affix: "Note",
extraSelectValueList: [
]
}
}, },
{ {
id: "sex", id: "sex",
name: "Sex", name: "Sex",
type: "singleSelect", type: "singleSelect",
icon: "mdi-gender-male-female", icon: "mdi-gender-male-female",
sizing: 3, sizing: 2,
predefinedSelectValues: [ predefinedSelectValues: [
"Male", "Male",
"Female", "Female",
@ -179,93 +239,71 @@ export const charactersBlueprint: I_Blueprint = {
name: "Age", name: "Age",
type: "text", type: "text",
icon: "mdi-timer-sand", icon: "mdi-timer-sand",
sizing: 3 sizing: 2
}, },
{ {
id: "height", id: "height",
name: "Height", name: "Height",
type: "text", type: "text",
icon: "mdi-human-male-height-variant", icon: "mdi-human-male-height-variant",
sizing: 3 sizing: 2
}, },
{ {
id: "weight", id: "weight",
name: "Weight", name: "Weight",
type: "text", type: "text",
icon: "mdi-weight", icon: "mdi-weight",
sizing: 3 sizing: 2
},
{
id: "pairedOriginLocation",
name: "Place of origin",
type: "singleToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 3,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedOriginCharacters"
}
}, },
{ {
id: "birthDate", id: "birthDate",
name: "Date of birth", name: "Date of birth",
type: "text", type: "text",
icon: "mdi-cake-variant", icon: "mdi-cake-variant",
sizing: 3 sizing: 2
},
{
id: "pairedDemiseLocation",
name: "Place of demise",
type: "singleToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 3,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedDemiseCharacters"
}
}, },
{ {
id: "deathDate", id: "deathDate",
name: "Date of death", name: "Date of death",
type: "text", type: "text",
icon: "mdi-skull-crossbones", icon: "mdi-skull-crossbones",
sizing: 3 sizing: 2
},
{
id: "pairedCurrentLocation",
name: "Place of residence",
type: "singleToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 3,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedCurrentCharacters"
}
}, },
{ {
id: "pairedRace", id: "pairedRace",
name: "Species/Races/Flora/Fauna", name: "Species/Races",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 3, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "races", connectedObjectType: "races",
connectedField: "pairedCharacter" connectedField: "pairedCharacter"
} }
}, },
{
id: "pairedProfession",
name: "Occupation/Class",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "pairedCharacter"
}
},
{ {
id: "ethnicity", id: "ethnicity",
name: "Ethnicity", name: "Ethnicity",
type: "text", type: "text",
icon: "fas fa-hand-paper", icon: "fas fa-hand-paper",
sizing: 3 sizing: 6
}, },
{ {
id: "powerLevel", id: "powerLevel",
name: "Combat rating", name: "Combat rating",
type: "singleSelect", type: "singleSelect",
icon: "fas fa-fist-raised", icon: "fas fa-fist-raised",
sizing: 3, sizing: 6,
predefinedSelectValues: [ predefinedSelectValues: [
/* /*
"0 - Civilian", "0 - Civilian",
@ -287,30 +325,85 @@ export const charactersBlueprint: I_Blueprint = {
"16 & Above - Off the scale / Impossible to even categorize" */ "16 & Above - Off the scale / Impossible to even categorize" */
] ]
}, },
{
id: "pairedCurrentLocation",
name: "Place of residence",
type: "singleToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedCurrentCharacters"
}
},
{
id: "pairedOriginLocation",
name: "Place of origin",
type: "singleToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedOriginCharacters"
}
},
{
id: "pairedDemiseLocation",
name: "Place of demise",
type: "singleToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedDemiseCharacters"
}
},
{
id: "pairedConditionsPositive",
name: "Affected by Boons",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedCharactersPositive"
}
},
{
id: "pairedConditionsNegative",
name: "Affected by Afflictions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedCharactersNegative"
}
},
{
id: "pairedConditionsOther",
name: "Affected by Other conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedCharactersOther"
}
},
{ {
id: "description", id: "description",
name: "Description & History", name: "Description & History",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "breakSkills", id: "breakSkills",
name: "Skills, Stats & Other features", name: "Skills, Stats, Knowledge & Characteristics",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{
id: "statsList",
name: "Stats/Attributes",
type: "list",
icon: "mdi-sword-cross",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{ {
id: "personalityTraits", id: "personalityTraits",
name: "Traits & Characteristics", name: "Traits & Characteristics",
@ -962,64 +1055,92 @@ export const charactersBlueprint: I_Blueprint = {
}, },
{ {
id: "traits", id: "traits",
name: "Unusual Features/Traits", name: "Unique/Unusual Features",
type: "list", type: "list",
icon: "mdi-guy-fawkes-mask", icon: "mdi-guy-fawkes-mask",
sizing: 6 sizing: 6
}, },
{ {
id: "skills", id: "statsList",
name: "Skills", name: "Stats/Attributes",
type: "list", type: "list",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 12, sizing: 12,
predefinedListExtras: { predefinedListExtras: {
affix: "Level", reverse: true,
extraSelectValueList: [ affix: "Stat/Attribute",
"Trainee", extraSelectValueList: RPGSystemsStats
"Apprentice",
"Capable",
"Advanced",
"Expert",
"Master",
"Grand-master",
"Genius",
"Prodigy",
"Off-the-scale"
]
} }
}, },
{ {
id: "pairedLanguage", id: "possessedItems",
name: "Languages", name: "Equipment/Owned Items",
type: "manyToManyRelationship", type: "manyToNoneRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items"
}
},
{
id: "possessedCurrencies",
name: "Whealth/Owned Currencies",
type: "manyToNoneRelationship",
icon: "fas fa-coins",
sizing: 6,
relationshipSettings: {
connectedObjectType: "currencies"
}
},
{
id: "knownSkills",
name: "Known Skills/Abilities",
type: "manyToNoneRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills"
}
},
{
id: "knownSpells",
name: "Known Spells",
type: "manyToNoneRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills"
}
},
{
id: "knownLanguage",
name: "Known Languages",
type: "manyToNoneRelationship",
icon: "mdi-book-alphabet", icon: "mdi-book-alphabet",
sizing: 4, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "languages", connectedObjectType: "languages"
connectedField: "pairedCharacter"
} }
}, },
{ {
id: "pairedMagic", id: "knownMagic",
name: "Known Magic/Spells", name: "Known Magical teachings",
type: "manyToManyRelationship", type: "manyToNoneRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "magic", connectedObjectType: "magic"
connectedField: "pairedCharacter"
} }
}, },
{ {
id: "pairedTech", id: "knownTech",
name: "Known Technologies/Sciences", name: "Known Technologies/Sciences",
type: "manyToManyRelationship", type: "manyToNoneRelationship",
icon: "fas fa-wrench", icon: "fas fa-wrench",
sizing: 4, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "tech", connectedObjectType: "tech"
connectedField: "pairedCharacter"
} }
}, },
{ {
@ -1095,11 +1216,90 @@ export const charactersBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "breakPolitics", id: "breakNotes",
name: "Ideologies, Religions, Politics & Other connections", name: "Connections - Story/Lore",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedCharacter"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedCharacter"
}
},
{
id: "breakOther",
name: "Connections - World",
type: "break",
sizing: 12
},
{
id: "pairedEvent",
name: "Took part in Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedCharacter"
}
},
{
id: "pairedConnectedPlaces",
name: "Connected to Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedConnectedCharacter"
}
},
{
id: "pairedLanguage",
name: "Connected to Languages",
type: "manyToManyRelationship",
icon: "mdi-book-alphabet",
sizing: 6,
relationshipSettings: {
connectedObjectType: "languages",
connectedField: "pairedCharacter"
}
},
{
id: "relatedCultures",
name: "Connected Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 6,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "relatedCharacters"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectionPolGroup", id: "pairedConnectionPolGroup",
name: "Connected to Ideologies/Political groups", name: "Connected to Ideologies/Political groups",
@ -1236,7 +1436,7 @@ export const charactersBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectionMagicGroup", id: "pairedConnectionMagicGroup",
name: "Connected to Magical groups", name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 6, sizing: 6,
@ -1247,7 +1447,7 @@ export const charactersBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedBelongingMagicGroup", id: "pairedBelongingMagicGroup",
name: "Member of Magical groups", name: "Member of Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 6, sizing: 6,
@ -1258,7 +1458,7 @@ export const charactersBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedAllyMagicGroup", id: "pairedAllyMagicGroup",
name: "Ally of Magical groups", name: "Ally of Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 6, sizing: 6,
@ -1269,7 +1469,7 @@ export const charactersBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedEnemyMagicGroup", id: "pairedEnemyMagicGroup",
name: "Enemy of Magical groups", name: "Enemy of Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 6, sizing: 6,
@ -1323,49 +1523,27 @@ export const charactersBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "breakOther", id: "breakDetails",
name: "Other details", name: "Connections - Details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "pairedEvent", id: "pairedSkills",
name: "Took part in Events", name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-calendar-text", icon: "mdi-sword-cross",
sizing: 6, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "events", connectedObjectType: "skills",
connectedField: "pairedCharacter" connectedField: "pairedCharacterSkills"
}
},
{
id: "pairedConnectedPlaces",
name: "Connected to Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedConnectedCharacter"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedCharacter"
} }
}, },
{ {
id: "pairedConnectedItems", id: "pairedConnectedItems",
name: "Connected to Items", name: "Connected to Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 6, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
@ -1373,22 +1551,26 @@ export const charactersBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "breakNotes", id: "pairedConditionsConnected",
name: "Notes", name: "Connected to Afflictions/Boons/Conditions",
type: "break", type: "manyToManyRelationship",
sizing: 12 icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedCharactersConnected"
}
}, },
{ {
id: "pairedConnectedNotes", id: "pairedResources",
name: "Connected to Lore notes/Other notes", name: "Connected to Resources/Materials",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-script-text-outline", icon: "mdi-gold",
sizing: 12, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "loreNotes", connectedObjectType: "resources",
connectedField: "pairedConnectedCharacter" connectedField: "pairedCharacter"
} }
} }
] ]
} }

View file

@ -0,0 +1,636 @@
import { RPGSystemsStats } from "./../extraFieldLists/RPGSystemsStats"
import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const conditionsBlueprint: I_Blueprint = {
_id: "conditions",
order: 150,
namePlural: "Afflictions/Boons/Conditions",
nameSingular: "Affliction/Boon/Condition",
icon: "mdi-virus",
category: "Details",
extraFields: [
{
id: "breakDocumentSettings",
name: "Document settings",
type: "break",
sizing: 12
},
{
id: "name",
name: "Name",
type: "text",
icon: "mdi-virus",
sizing: 3
},
{
id: "parentDoc",
name: "Belongs under",
type: "singleToNoneRelationship",
tooltip:
`This field is used to build up custom hierarchical tree structure in the main list of items in the left side of the app.
<br> You can use this for an infinite amount of sub-levels to the hierarchical structure.
<br> An example would be multiple sub-groups (provinces) of Roman Empire belonging under the main political group called "Roman Empire".
`,
sizing: 3,
relationshipSettings: {
connectedObjectType: "conditions"
}
},
{
id: "documentColor",
name: "Text color",
type: "colorPicker",
icon: "mdi-eyedropper",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show on the icon and name of the document both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "documentBackgroundColor",
name: "Background color",
type: "colorPicker",
icon: "mdi-format-color-fill",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show as a background both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "finishedSwitch",
name: "Is finished",
type: "switch",
icon: "mdi-check-bold",
tooltip:
`This setting allows for setting the current document to finished document mode.
<br>
A document with finished document mode toggled on will not show any un-filled fields in view mode and will function as if "Hide empty fields" was turned on in the settings.
`,
sizing: 2
},
{
id: "minorSwitch",
name: "Is a minor document",
type: "switch",
icon: "mdi-magnify-minus-outline",
tooltip:
`This setting allows for setting the current document to minor document mode.
<br>
A document with minor document mode toggled on will not show in any other relationship searches.<br>
The idea behind this setting is to allow for creation of documents that will not clutter the search, but could be theoretically relevant in some very specific cases to the story (eg: distant relatives of a character).
`,
sizing: 3
},
{
id: "deadSwitch",
name: "Is Dead/Gone/Destroyed",
type: "switch",
icon: "mdi-skull-crossbones",
tooltip:
`This setting allows for setting the current document to dead/gone/destroyed mode.
<br>
A document with dead/gone/destroyed mode toggled on will have a crossed-over text modifier applied to it - showing that it is no longer a part of the current timeline.
`,
sizing: 3
},
{
id: "categorySwitch",
name: "Is a category",
type: "switch",
icon: "fas fa-folder-open",
tooltip:
`This setting allows for setting the current document to category mode.
<br>
A document with category mode toggled on will have most of its fields hidden and will not show in any other relationship searches except for "Belongs under".
`,
sizing: 3
},
{
id: "order",
name: "Order number",
type: "number",
icon: "mdi-file-tree",
tooltip:
`In case the default sorting via alphabet in the hierarchical tree on the left is inadequite for your needs, this field allows you to fill custom numbers to order by that get placed before the default alphabetical order.
<br>It is heavily suggested to "pad-out" the custom order numbers by writing for example 100 (or least 10) instead of 1.
<br>This allows for extra "padding" between the items in case a new one needs to be added in the middle without needing to redo the custom order on all documents.
`,
sizing: 3
},
{
id: "tags",
name: "Tags",
type: "tags",
icon: "mdi-tag",
tooltip:
`Tags are used to sort the same (or even different) document types into a custom groups based on your needs.
<br>
A document may have any number of tags, but each tag can be present only once.
<br>
This limitation also applies to any variation of lower or upper case iterations of the same tag.
<br>
Example: A tag called "Player Party" will be considered the same tag as "player party", "PlAyER PaRtY" or anything similar.
`,
sizing: 12
},
{
id: "otherNames",
name: "Other Names & Epithets",
type: "list",
icon: "mdi-book-plus",
sizing: 12
},
{
id: "categoryDescription",
name: "Category description",
type: "wysiwyg",
icon: "mdi-folder-edit-outline",
sizing: 12
},
{
id: "breakBasic",
name: "Basic information",
type: "break",
sizing: 12
},
{
id: "features",
name: "Prominent features",
type: "list",
icon: "mdi-guy-fawkes-mask",
sizing: 6,
predefinedListExtras: {
affix: "Note",
extraSelectValueList: [
]
}
},
{
id: "duration",
name: "Duration",
type: "text",
icon: "mdi-timer-sand",
sizing: 3
},
{
id: "conditionType",
name: "Affliction/Boon/Condition type",
type: "multiSelect",
icon: "mdi-auto-fix",
sizing: 3,
predefinedSelectValues: [
"Affliction",
"Antidote",
"Boon",
"Charm",
"Cure",
"Curse",
"Disease",
"Gift/Blessing",
"Glamour",
"Handicap",
"Inborn defect",
"Medicine",
"Physical condition",
"Poison ",
"Racial trait",
"Remedy",
"Virus",
"Other"
]
},
{
id: "meansOfAttaining",
name: "Ways of attaining",
type: "list",
icon: "fas fa-disease",
sizing: 6
},
{
id: "meansOfRemoving",
name: "Ways of removing",
type: "list",
icon: "fas fa-heart",
sizing: 6
},
{
id: "pairedConnectedConditionsPositive",
name: "Related Boons",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedConnectedConditionsPositive"
}
},
{
id: "pairedConnectedConditionsNegative",
name: "Related Afflictions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedConnectedConditionsNegative"
}
},
{
id: "pairedConnectedConditionsOther",
name: "Related Other conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedConnectedConditionsOther"
}
},
{
id: "statsListRequired",
name: "Stats/Attributes modifiers",
type: "list",
icon: "mdi-sword",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "traditions",
name: "Traditions & customs connected to the item",
type: "wysiwyg",
sizing: 12
},
{
id: "breakNotes",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedConditions"
}
},
{
id: "pairedMyths",
name: "Connected to Myths/Legends/Stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConditions"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break",
sizing: 12
},
{
id: "pairedCharactersPositive",
name: "Affecting Characters positively",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedConditionsPositive"
}
},
{
id: "pairedCharactersNegative",
name: "Affecting Characters negatively",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedConditionsNegative"
}
},
{
id: "pairedCharactersOther",
name: "Affecting Characters in other ways",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedConditionsOther"
}
},
{
id: "pairedCharactersConnected",
name: "Connected to Characters",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedConditionsConnected"
}
},
{
id: "pairedLocationsPositive",
name: "Affecting Locations/Geography positively",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedConditionsPositive"
}
},
{
id: "pairedLocationsNegative",
name: "Affecting Locations/Geography negatively",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedConditionsNegative"
}
},
{
id: "pairedLocationsOther",
name: "Affecting Locations/Geography in other ways",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedConditionsOther"
}
},
{
id: "pairedEventsPositive",
name: "Affecting Events positively",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedConditionsPositive"
}
},
{
id: "pairedEventsNegative",
name: "Affecting Events negatively",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedConditionsNegative"
}
},
{
id: "pairedEventsOther",
name: "Affecting Events in other ways",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedConditionsOther"
}
},
{
id: "pairedRacesPositive",
name: "Affecting Species/Races/Flora/Fauna positively",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "pairedConditionsPositive"
}
},
{
id: "pairedRacesNegative",
name: "Affecting Species/Races/Flora/Fauna negatively",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "pairedConditionsNegative"
}
},
{
id: "pairedRacesOther",
name: "Affecting Species/Races/Flora/Fauna in other ways",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "pairedConditionsOther"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedRacesPoliticalGroups",
name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 4,
relationshipSettings: {
connectedObjectType: "politicalGroups",
connectedField: "pairedConditions"
}
},
{
id: "pairedReligiousGroups",
name: "Connected to Teachings/Religious groups",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 4,
relationshipSettings: {
connectedObjectType: "religions",
connectedField: "pairedConditions"
}
},
{
id: "pairedOtherGroups",
name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship",
icon: "mdi-account-group",
sizing: 4,
relationshipSettings: {
connectedObjectType: "guilds",
connectedField: "pairedConditions"
}
},
{
id: "pairedMagicGroups",
name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedConditions"
}
},
{
id: "pairedTechGroups",
name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
connectedField: "pairedConditions"
}
},
{
id: "breakDetails",
name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "pairedSkillsPositive",
name: "Caused by positive Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedConditionsPositive"
}
},
{
id: "pairedSkillsNegative",
name: "Caused by negative Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedConditionsNegative"
}
},
{
id: "pairedSkillsOther",
name: "Caused by neutral/other Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedConditionsOther"
}
},
{
id: "pairedItemsPositive",
name: "Boon caused by Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConditionsPositive"
}
},
{
id: "pairedItemsNegative",
name: "Affliction caused by Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConditionsNegative"
}
},
{
id: "pairedItemsOther",
name: "Other Condition caused by Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConditionsOther"
}
},
{
id: "pairedItemsAfflicting",
name: "Affecting the following Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConditionsAfflicting"
}
},
{
id: "pairedResourcesPositive",
name: "Caused by positive Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConditionsPositive"
}
},
{
id: "pairedResourcesNegative",
name: "Caused by negative Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConditionsNegative"
}
},
{
id: "pairedResourcesOther",
name: "Caused by neutral/other Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConditionsOther"
}
}
]
}

View file

@ -0,0 +1,384 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const cultureBlueprint: I_Blueprint = {
_id: "culture",
order: 320,
namePlural: "Cultures/Art",
nameSingular: "Culture/Art",
icon: "fas fa-archway",
category: "World",
extraFields: [
{
id: "breakDocumentSettings",
name: "Document settings",
type: "break",
sizing: 12
},
{
id: "name",
name: "Name",
type: "text",
icon: "fas fa-archway",
sizing: 3
},
{
id: "parentDoc",
name: "Belongs under",
type: "singleToNoneRelationship",
tooltip:
`This field is used to build up custom hierarchical tree structure in the main list of items in the left side of the app.
<br> You can use this for an infinite amount of sub-levels to the hierarchical structure.
<br> An example would be multiple sub-groups (provinces) of Roman Empire belonging under the main political group called "Roman Empire".
`,
sizing: 3,
relationshipSettings: {
connectedObjectType: "culture"
}
},
{
id: "documentColor",
name: "Text color",
type: "colorPicker",
icon: "mdi-eyedropper",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show on the icon and name of the document both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "documentBackgroundColor",
name: "Background color",
type: "colorPicker",
icon: "mdi-format-color-fill",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show as a background both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "finishedSwitch",
name: "Is finished",
type: "switch",
icon: "mdi-check-bold",
tooltip:
`This setting allows for setting the current document to finished document mode.
<br>
A document with finished document mode toggled on will not show any un-filled fields in view mode and will function as if "Hide empty fields" was turned on in the settings.
`,
sizing: 2
},
{
id: "minorSwitch",
name: "Is a minor document",
type: "switch",
icon: "mdi-magnify-minus-outline",
tooltip:
`This setting allows for setting the current document to minor document mode.
<br>
A document with minor document mode toggled on will not show in any other relationship searches.<br>
The idea behind this setting is to allow for creation of documents that will not clutter the search, but could be theoretically relevant in some very specific cases to the story (eg: distant relatives of a character).
`,
sizing: 3
},
{
id: "deadSwitch",
name: "Is Dead/Gone/Destroyed",
type: "switch",
icon: "mdi-skull-crossbones",
tooltip:
`This setting allows for setting the current document to dead/gone/destroyed mode.
<br>
A document with dead/gone/destroyed mode toggled on will have a crossed-over text modifier applied to it - showing that it is no longer a part of the current timeline.
`,
sizing: 3
},
{
id: "categorySwitch",
name: "Is a category",
type: "switch",
icon: "fas fa-folder-open",
tooltip:
`This setting allows for setting the current document to category mode.
<br>
A document with category mode toggled on will have most of its fields hidden and will not show in any other relationship searches except for "Belongs under".
`,
sizing: 3
},
{
id: "order",
name: "Order number",
type: "number",
icon: "mdi-file-tree",
tooltip:
`In case the default sorting via alphabet in the hierarchical tree on the left is inadequite for your needs, this field allows you to fill custom numbers to order by that get placed before the default alphabetical order.
<br>It is heavily suggested to "pad-out" the custom order numbers by writing for example 100 (or least 10) instead of 1.
<br>This allows for extra "padding" between the items in case a new one needs to be added in the middle without needing to redo the custom order on all documents.
`,
sizing: 3
},
{
id: "tags",
name: "Tags",
type: "tags",
icon: "mdi-tag",
tooltip:
`Tags are used to sort the same (or even different) document types into a custom groups based on your needs.
<br>
A document may have any number of tags, but each tag can be present only once.
<br>
This limitation also applies to any variation of lower or upper case iterations of the same tag.
<br>
Example: A tag called "Player Party" will be considered the same tag as "player party", "PlAyER PaRtY" or anything similar.
`,
sizing: 12
},
{
id: "otherNames",
name: "Other Names & Epithets",
type: "list",
icon: "mdi-book-plus",
sizing: 12
},
{
id: "categoryDescription",
name: "Category description",
type: "wysiwyg",
icon: "mdi-folder-edit-outline",
sizing: 12
},
{
id: "breakBasic",
name: "Basic information",
type: "break",
sizing: 12
},
{
id: "traits",
name: "Unique/Defining Features",
type: "list",
icon: "mdi-guy-fawkes-mask",
sizing: 6
},
{
id: "population",
name: "Estimated population",
type: "text",
icon: "mdi-account-group",
sizing: 3
},
{
id: "typeCulture",
name: "Type",
type: "multiSelect",
icon: "mdi-eiffel-tower",
sizing: 3,
predefinedSelectValues: [
"Architecture",
"Contemporary",
"Craft",
"Literary",
"Musical",
"Oral",
"Sculptural",
"Social",
"Theatrica",
"Traditional",
"Visual arts",
"Other"
]
},
{
id: "relatedCharacters",
name: "Connected Characters",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "relatedCultures"
}
},
{
id: "relatedRaces",
name: "Common among Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 6,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "relatedCultures"
}
},
{
id: "relatedLocations",
name: "Common in Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "relatedCultures"
}
},
{
id: "pairedEvents",
name: "Connected to Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "relatedCultures"
}
},
{
id: "pairedSkills",
name: "Related Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "relatedCultures"
}
},
{
id: "pairedItems",
name: "Important Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "relatedCultures"
}
},
{
id: "relatedProfessions",
name: "Common Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "relatedCultures"
}
},
{
id: "relatedResouces",
name: "Important Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "relatedCultures"
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "traditions",
name: "Connected Traditions & Customs to the myth, legend or story",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "breakStory",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedCultures"
}
},
{
id: "pairedOtherMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedCultures"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPolGroups",
name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 4,
relationshipSettings: {
connectedObjectType: "politicalGroups",
connectedField: "pairedConnectedCultures"
}
},
{
id: "pairedConnectedReligiousGroups",
name: "Connected to Teachings/Religious groups",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 4,
relationshipSettings: {
connectedObjectType: "religions",
connectedField: "pairedConnectedCultures"
}
},
{
id: "pairedConnectedOtherGroups",
name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship",
icon: "mdi-account-group",
sizing: 4,
relationshipSettings: {
connectedObjectType: "guilds",
connectedField: "pairedConnectedCultures"
}
},
{
id: "pairedConnectedMagicGroups",
name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedConnectedCultures"
}
},
{
id: "pairedConnectedTechGroups",
name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
connectedField: "pairedConnectedCultures"
}
}
]
}

View file

@ -1,11 +1,24 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const currenciesBlueprint: I_Blueprint = { export const currenciesBlueprint: I_Blueprint = {
_id: "currencies", _id: "currencies",
order: 7, order: 8,
namePlural: "Currencies", namePlural: "Currencies",
nameSingular: "Currency", nameSingular: "Currency",
icon: "fas fa-coins", icon: "fas fa-coins",
category: "Details",
extraFields: [ extraFields: [
{
id: "pairedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
isLegacy: true,
sizing: 12,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedCurrencies"
}
},
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
name: "Document settings", name: "Document settings",
@ -156,31 +169,33 @@ export const currenciesBlueprint: I_Blueprint = {
id: "traits", id: "traits",
name: "Defining Features/Traits", name: "Defining Features/Traits",
type: "list", type: "list",
icon: "fas fa-coins", icon: "mdi-guy-fawkes-mask",
sizing: 12
},
{
id: "pairedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 12, sizing: 12,
relationshipSettings: { predefinedListExtras: {
connectedObjectType: "items", affix: "Note",
connectedField: "pairedCurrencies" extraSelectValueList: [
]
} }
}, },
{ {
id: "description", id: "priceCurrencies",
name: "Description & History", name: "Exchange rates to other Currencies",
type: "wysiwyg", type: "manyToNoneRelationship",
sizing: 12 icon: "fas fa-coins",
sizing: 6,
relationshipSettings: {
connectedObjectType: "currencies"
}
}, },
{ {
id: "breakRelasionships", id: "madeFromResources",
name: "Usage details", name: "Made from Resources/Materials",
type: "break", type: "manyToNoneRelationship",
sizing: 12 icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources"
}
}, },
{ {
id: "pairedLocations", id: "pairedLocations",
@ -226,6 +241,13 @@ export const currenciesBlueprint: I_Blueprint = {
connectedField: "localCurrencies" connectedField: "localCurrencies"
} }
}, },
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{ {
id: "breakNotes", id: "breakNotes",
name: "Notes", name: "Notes",

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const eventsBlueprint: I_Blueprint = { export const eventsBlueprint: I_Blueprint = {
_id: "events", _id: "events",
order: 16, order: 350,
namePlural: "Events", namePlural: "Events",
nameSingular: "Event", nameSingular: "Event",
icon: "mdi-calendar-text", icon: "mdi-calendar-text",
category: "World",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -204,29 +205,18 @@ export const eventsBlueprint: I_Blueprint = {
name: "Prominent Actors", name: "Prominent Actors",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-account", icon: "mdi-account",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "characters", connectedObjectType: "characters",
connectedField: "pairedEvent" connectedField: "pairedEvent"
} }
}, },
{
id: "pairedRaces",
name: "Affected or involved Species/Races/Flora/Faunas",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 6,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "connectedEvents"
}
},
{ {
id: "pairedLocations", id: "pairedLocations",
name: "Connected to Locations", name: "Connected to Locations",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations", connectedObjectType: "locations",
connectedField: "pairedEvent" connectedField: "pairedEvent"
@ -237,7 +227,7 @@ export const eventsBlueprint: I_Blueprint = {
name: "Connected to other Events", name: "Connected to other Events",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-calendar-text", icon: "mdi-calendar-text",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "events", connectedObjectType: "events",
connectedField: "pairedEvents" connectedField: "pairedEvents"
@ -247,16 +237,62 @@ export const eventsBlueprint: I_Blueprint = {
id: "pairedItems", id: "pairedItems",
name: "Connected to Items", name: "Connected to Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
connectedField: "pairedEvents" connectedField: "pairedEvents"
} }
}, },
{
id: "pairedRaces",
name: "Affected or involved Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "connectedEvents"
}
},
{
id: "relatedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 4,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedEvents"
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "breakNotes",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedEvents"
}
},
{ {
id: "pairedMyths", id: "pairedMyths",
name: "Connected to Myths/Legends", name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-journal-whills", icon: "fas fa-journal-whills",
sizing: 6, sizing: 6,
@ -266,20 +302,14 @@ export const eventsBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "description", id: "breakPolitics",
name: "Description & History", name: "Connections - Groups/Teachings",
type: "wysiwyg",
sizing: 12
},
{
id: "breakGroups",
name: "Involved groups",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "connectedPolitical", id: "connectedPolitical",
name: "Involved Political groups", name: "Involved Ideologies/Political groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-bank-outline", icon: "mdi-bank-outline",
sizing: 6, sizing: 6,
@ -301,7 +331,7 @@ export const eventsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedReligious", id: "connectedReligious",
name: "Involved Religious groups", name: "Involved Teachings/Religious groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-ankh", icon: "fas fa-ankh",
sizing: 4, sizing: 4,
@ -312,7 +342,7 @@ export const eventsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedMagical", id: "connectedMagical",
name: "Involved Magical groups", name: "Involved Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -323,7 +353,7 @@ export const eventsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedTech", id: "connectedTech",
name: "Involved Technological/Scientific groups", name: "Involved Sciences/Technological groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-wrench", icon: "fas fa-wrench",
sizing: 4, sizing: 4,
@ -333,21 +363,67 @@ export const eventsBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "breakNotes", id: "breakOther",
name: "Notes", name: "Connections - Details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "pairedConnectedNotes", id: "pairedSkills",
name: "Connected to Lore notes/Other notes", name: "Skills/Other connected to the Event",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-script-text-outline", icon: "mdi-sword-cross",
sizing: 12, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "loreNotes", connectedObjectType: "skills",
connectedField: "pairedConnectedEvents" connectedField: "pairedEventSkills"
}
},
{
id: "pairedSpells",
name: "Spells connected to the Event",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedEventSpells"
}
},
{
id: "pairedConditionsPositive",
name: "Connected to Boons",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedEventsPositive"
}
},
{
id: "pairedConditionsNegative",
name: "Connected to Afflictions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedEventsNegative"
}
},
{
id: "pairedConditionsOther",
name: "Connected to Other conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedEventsOther"
} }
} }
] ]
} }

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const guildsBlueprint: I_Blueprint = { export const guildsBlueprint: I_Blueprint = {
_id: "guilds", _id: "guilds",
order: 14, order: 260,
namePlural: "Organizations/Other groups", namePlural: "Organizations/Other groups",
nameSingular: "Organization/Other group", nameSingular: "Organization/Other group",
icon: "mdi-account-group", icon: "mdi-account-group",
category: "Groups/Teachings",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -157,17 +158,24 @@ export const guildsBlueprint: I_Blueprint = {
name: "Headquarters", name: "Headquarters",
type: "singleToNoneRelationship", type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations" connectedObjectType: "locations"
} }
}, },
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{ {
id: "population", id: "population",
name: "Member count", name: "Member count",
type: "text", type: "text",
icon: "mdi-account-group", icon: "mdi-account-group",
sizing: 3, sizing: 2,
tooltip: "The amount of members of this group/organization." tooltip: "The amount of members of this group/organization."
}, },
{ {
@ -212,23 +220,12 @@ export const guildsBlueprint: I_Blueprint = {
"Other" "Other"
] ]
}, },
{
id: "localCurrencies",
name: "Used Currencies",
type: "manyToManyRelationship",
icon: "fas fa-coins",
sizing: 4,
relationshipSettings: {
connectedObjectType: "currencies",
connectedField: "usedInOtherGroups"
}
},
{ {
id: "localLanguages", id: "localLanguages",
name: "Used Languages", name: "Used Languages",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-book-alphabet", icon: "mdi-book-alphabet",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "languages", connectedObjectType: "languages",
connectedField: "usedInOtherGroups" connectedField: "usedInOtherGroups"
@ -236,36 +233,88 @@ export const guildsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedRaces", id: "connectedRaces",
name: "Common Species/Races/Flora/Faunas", name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "races", connectedObjectType: "races",
connectedField: "commonInOtherGroups" connectedField: "commonInOtherGroups"
} }
}, },
{
id: "localCurrencies",
name: "Used Currencies",
type: "manyToManyRelationship",
icon: "fas fa-coins",
sizing: 6,
relationshipSettings: {
connectedObjectType: "currencies",
connectedField: "usedInOtherGroups"
}
},
{
id: "pairedConnectedResources",
name: "Important Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConnectedOtherGroups"
}
},
{ {
id: "description", id: "description",
name: "Description & History", name: "Description & History",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "traditions", id: "traditions",
name: "Traditions & Customs", name: "Traditions & Customs",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "breakRelasionships", id: "breakNotes",
name: "Diplomatic relationships & Influences", name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedOtherGroups"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedOtherGroups"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "governLocations", id: "governLocations",
name: "Ruled Locations", name: "Ruled/Influenced Locations",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 6,
@ -285,6 +334,28 @@ export const guildsBlueprint: I_Blueprint = {
connectedField: "connectedOther" connectedField: "connectedOther"
} }
}, },
{
id: "connectedEvents",
name: "Connected Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedOtherGroups"
}
},
{
id: "pairedConnectedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 6,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedConnectedOtherGroups"
}
},
{ {
id: "pairedConnectionCharacter", id: "pairedConnectionCharacter",
name: "Connected Characters", name: "Connected Characters",
@ -329,6 +400,12 @@ export const guildsBlueprint: I_Blueprint = {
connectedField: "pairedEnemyOtherGroups" connectedField: "pairedEnemyOtherGroups"
} }
}, },
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedPolGroups", id: "pairedConnectedPolGroups",
name: "Connected Ideologies/Political groups", name: "Connected Ideologies/Political groups",
@ -431,7 +508,7 @@ export const guildsBlueprint: I_Blueprint = {
{ {
id: "pairedConnectedMagicalGroups", id: "pairedConnectedMagicalGroups",
name: "Connected Spells/Magical groups", name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -442,7 +519,7 @@ export const guildsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedAllyMagicalGroups", id: "pairedAllyMagicalGroups",
name: "Allied Spells/Magical groups", name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -453,7 +530,7 @@ export const guildsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedEnemyMagicalGroups", id: "pairedEnemyMagicalGroups",
name: "Enemy Spells/Magical groups", name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -496,59 +573,53 @@ export const guildsBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "breakOther", id: "breakDetails",
name: "Other details", name: "Connections - Details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "connectedEvents", id: "pairedSkills",
name: "Connected Events", name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-calendar-text", icon: "mdi-sword-cross",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "events", connectedObjectType: "skills",
connectedField: "connectedOtherGroups" connectedField: "pairedOtherGroupsSkills"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedOtherGroups"
} }
}, },
{ {
id: "pairedConnectedItems", id: "pairedConnectedItems",
name: "Connected to Items", name: "Connected to Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
connectedField: "pairedConnectedOtherGroups" connectedField: "pairedConnectedOtherGroups"
} }
}, },
{ {
id: "breakNotes", id: "pairedConnectedProfessions",
name: "Notes", name: "Connected to Occupations/Classes",
type: "break", type: "manyToManyRelationship",
sizing: 12 icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "pairedConnectedOtherGroups"
}
}, },
{ {
id: "pairedConnectedNotes", id: "pairedConditions",
name: "Connected to Lore notes/Other notes", name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-script-text-outline", icon: "mdi-virus",
sizing: 12, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "loreNotes", connectedObjectType: "conditions",
connectedField: "pairedConnectedOtherGroups" connectedField: "pairedOtherGroups"
} }
} }
] ]

View file

@ -2,11 +2,36 @@ import { RPGSystemsStats } from "./../extraFieldLists/RPGSystemsStats"
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const itemsBlueprint: I_Blueprint = { export const itemsBlueprint: I_Blueprint = {
_id: "items", _id: "items",
order: 9, order: 170,
namePlural: "Items", namePlural: "Items",
nameSingular: "Item", nameSingular: "Item",
icon: "mdi-sword-cross", icon: "mdi-sword",
category: "Details",
extraFields: [ extraFields: [
{
id: "pairedMagic",
name: "Capable of utilizing Spells/Magic",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
isLegacy: true,
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedItems"
}
},
{
id: "pairedCurrencies",
name: "Connected to Currencies",
type: "manyToManyRelationship",
icon: "fas fa-coins",
sizing: 6,
isLegacy: true,
relationshipSettings: {
connectedObjectType: "currencies",
connectedField: "pairedItems"
}
},
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
name: "Document settings", name: "Document settings",
@ -17,7 +42,7 @@ export const itemsBlueprint: I_Blueprint = {
id: "name", id: "name",
name: "Name", name: "Name",
type: "text", type: "text",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 3 sizing: 3
}, },
{ {
@ -153,23 +178,11 @@ export const itemsBlueprint: I_Blueprint = {
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{
id: "statsList",
name: "Stats/Attributes",
type: "list",
icon: "mdi-sword-cross",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{ {
id: "features", id: "features",
name: "Prominent features", name: "Prominent features",
type: "list", type: "list",
icon: "mdi-sword-cross", icon: "mdi-guy-fawkes-mask",
sizing: 12, sizing: 12,
predefinedListExtras: { predefinedListExtras: {
affix: "Note", affix: "Note",
@ -179,23 +192,34 @@ export const itemsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedItems", id: "pairedItems",
name: "Connected to other Items", name: "Related to other Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
connectedField: "pairedItems" connectedField: "pairedItems"
} }
}, },
{ {
id: "pairedMagic", id: "pairedConnectedProfessions",
name: "Capable of utilizing Spells/Magic", name: "Commonly used by Occupations/Classes",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fab fa-pied-piper-hat",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "magic", connectedObjectType: "professions",
connectedField: "pairedConnectedItems"
}
},
{
id: "relatedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 4,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedItems" connectedField: "pairedItems"
} }
}, },
@ -226,26 +250,39 @@ export const itemsBlueprint: I_Blueprint = {
name: "Cost in different Currencies", name: "Cost in different Currencies",
type: "manyToNoneRelationship", type: "manyToNoneRelationship",
icon: "fas fa-coins", icon: "fas fa-coins",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "currencies" connectedObjectType: "currencies"
} }
}, },
{ {
id: "pairedCurrencies", id: "pairedResourcesMade",
name: "Connected to Currencies", name: "Resources/Materials the Item is made off",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-coins", icon: "mdi-gold",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "currencies", connectedObjectType: "resources",
connectedField: "pairedItems" connectedField: "pairedItemMade"
} }
}, },
{
id: "pairedResourcesProduced",
name: "Resources/Materials the Item produces",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedItemProduced"
}
},
{ {
id: "description", id: "description",
name: "Description & History", name: "Description & History",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
@ -255,17 +292,147 @@ export const itemsBlueprint: I_Blueprint = {
sizing: 12 sizing: 12
}, },
{ {
id: "breakRelasionships", id: "breakStats",
name: "Involved with characters and groups/institutions", name: "Stats, Skills & Other details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{
id: "statsListRequired",
name: "Stats/Attributes required",
type: "list",
icon: "mdi-sword",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{
id: "statsList",
name: "Stats/Attributes provided",
type: "list",
icon: "mdi-sword",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{
id: "pairedSkillsUsing",
name: "Allows for usage of Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedItemsUsing"
}
},
{
id: "pairedSkillsCommon",
name: "Commonly used with Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedItemsCommon"
}
},
{
id: "pairedSkillsCreate",
name: "Created by Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedItemsCreate"
}
},
{
id: "pairedSkillsRequire",
name: "Skills/Spells/Other requiring this Item",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedItemsRequire"
}
},
{
id: "pairedConditionsPositive",
name: "Causing Boons",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedItemsPositive"
}
},
{
id: "pairedConditionsNegative",
name: "Causing Afflictions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedItemsNegative"
}
},
{
id: "pairedConditionsOther",
name: "Causing Other conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedItemsOther"
}
},
{
id: "pairedConditionsAfflicting",
name: "Affected by Afflictions/Boons/Conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedItemsAfflicting"
}
},
{
id: "breakNotes",
name: "Connections - Story/Lore & World",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedItems"
}
},
{ {
id: "pairedConnectedCharacter", id: "pairedConnectedCharacter",
name: "Connected to Characters", name: "Connected to Characters",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-account", icon: "mdi-account",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "characters", connectedObjectType: "characters",
connectedField: "pairedConnectedItems" connectedField: "pairedConnectedItems"
@ -276,7 +443,7 @@ export const itemsBlueprint: I_Blueprint = {
name: "Connected to Locations", name: "Connected to Locations",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations", connectedObjectType: "locations",
connectedField: "pairedConnectedItems" connectedField: "pairedConnectedItems"
@ -284,21 +451,28 @@ export const itemsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedRaces", id: "pairedConnectedRaces",
name: "Connected to Species/Races/Flora/Faunas", name: "Connected to Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "races", connectedObjectType: "races",
connectedField: "pairedConnectedItems" connectedField: "pairedConnectedItems"
} }
}, },
{
id: "breakWorld",
name: "Connections - World",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedPolGroups", id: "pairedConnectedPolGroups",
name: "Connected to Ideologies/Political groups", name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-bank-outline", icon: "mdi-bank-outline",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "politicalGroups", connectedObjectType: "politicalGroups",
connectedField: "pairedConnectedItems" connectedField: "pairedConnectedItems"
@ -309,7 +483,7 @@ export const itemsBlueprint: I_Blueprint = {
name: "Connected to Organizations/Other groups", name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-account-group", icon: "mdi-account-group",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "guilds", connectedObjectType: "guilds",
connectedField: "pairedConnectedItems" connectedField: "pairedConnectedItems"
@ -328,10 +502,10 @@ export const itemsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedMagicGroups", id: "pairedConnectedMagicGroups",
name: "Connected to Magic/Spells", name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "magic", connectedObjectType: "magic",
connectedField: "pairedConnectedItems" connectedField: "pairedConnectedItems"
@ -339,31 +513,14 @@ export const itemsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedTechGroups", id: "pairedConnectedTechGroups",
name: "Connected to Technology/Science", name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-wrench", icon: "fas fa-wrench",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "tech", connectedObjectType: "tech",
connectedField: "pairedConnectedItems" connectedField: "pairedConnectedItems"
} }
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedItems"
}
} }
] ]
} }

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const languagesBlueprint: I_Blueprint = { export const languagesBlueprint: I_Blueprint = {
_id: "languages", _id: "languages",
order: 8, order: 330,
namePlural: "Languages", namePlural: "Languages",
nameSingular: "Language", nameSingular: "Language",
icon: "mdi-book-alphabet", icon: "mdi-book-alphabet",
category: "World",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -205,8 +206,37 @@ export const languagesBlueprint: I_Blueprint = {
sizing: 12 sizing: 12
}, },
{ {
id: "breakSpeakers", id: "breakNotes",
name: "Speakers, groups and areas connected to the language", name: "Connections - Story/Lore & Details",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "localLanguages"
}
},
{
id: "pairedConnectedProfessions",
name: "Spoken by Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "localLanguages"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
@ -221,17 +251,6 @@ export const languagesBlueprint: I_Blueprint = {
connectedField: "pairedLanguage" connectedField: "pairedLanguage"
} }
}, },
{
id: "usedByRaces",
name: "Spoken by Species/Races/Flora/Faunas",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "localLanguages"
}
},
{ {
id: "pairedLocations", id: "pairedLocations",
name: "Spoken in Locations", name: "Spoken in Locations",
@ -243,6 +262,24 @@ export const languagesBlueprint: I_Blueprint = {
connectedField: "pairedLanguages" connectedField: "pairedLanguages"
} }
}, },
{
id: "usedByRaces",
name: "Spoken by Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "localLanguages"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "usedInPoliticalGroups", id: "usedInPoliticalGroups",
name: "Spoken in Ideologies/Political groups", name: "Spoken in Ideologies/Political groups",
@ -297,23 +334,6 @@ export const languagesBlueprint: I_Blueprint = {
connectedObjectType: "tech", connectedObjectType: "tech",
connectedField: "localLanguages" connectedField: "localLanguages"
} }
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "localLanguages"
}
} }
] ]
} }

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const locationsBlueprint: I_Blueprint = { export const locationsBlueprint: I_Blueprint = {
_id: "locations", _id: "locations",
order: 17, order: 360,
namePlural: "Locations/Geography", namePlural: "Locations/Geography",
nameSingular: "Location/Geography", nameSingular: "Location/Geography",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
category: "World",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -153,15 +154,11 @@ export const locationsBlueprint: I_Blueprint = {
sizing: 12 sizing: 12
}, },
{ {
id: "connectedLocations", id: "traits",
name: "Connected Locations", name: "Unusual features/Traits",
type: "manyToManyRelationship", type: "list",
icon: "mdi-map-marker-radius", icon: "mdi-guy-fawkes-mask",
sizing: 4, sizing: 4
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "connectedLocations"
}
}, },
{ {
id: "locationType", id: "locationType",
@ -233,22 +230,61 @@ export const locationsBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "traits", id: "relatedCultures",
name: "Unusual features/Traits", name: "Local Cultures/Art",
type: "list", type: "manyToManyRelationship",
icon: "mdi-guy-fawkes-mask", icon: "fas fa-archway",
sizing: 4 sizing: 4,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "relatedLocations"
}
},
{
id: "connectedProfessions",
name: "Common Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 4,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "connectedLocations"
}
},
{
id: "connectedResources",
name: "Local Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "connectedLocations"
}
},
{
id: "connectedLocations",
name: "Other connected Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "connectedLocations"
}
}, },
{ {
id: "description", id: "description",
name: "Description & History", name: "Description & History",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "traditions", id: "traditions",
name: "Traditions & Customs", name: "Traditions & Customs",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
@ -259,7 +295,7 @@ export const locationsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedOriginCharacters", id: "pairedOriginCharacters",
name: "Characters originated from location", name: "Characters originated from the location",
type: "manyToSingleRelationship", type: "manyToSingleRelationship",
icon: "mdi-account", icon: "mdi-account",
sizing: 4, sizing: 4,
@ -270,7 +306,7 @@ export const locationsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedCurrentCharacters", id: "pairedCurrentCharacters",
name: "Characters currently living in location", name: "Characters currently living in the location",
type: "manyToSingleRelationship", type: "manyToSingleRelationship",
icon: "mdi-account", icon: "mdi-account",
sizing: 4, sizing: 4,
@ -303,7 +339,7 @@ export const locationsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedRaces", id: "pairedConnectedRaces",
name: "Local Species/Races/Flora/Faunas", name: "Local Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 6, sizing: 6,
@ -312,9 +348,112 @@ export const locationsBlueprint: I_Blueprint = {
connectedField: "pairedConnectedPlaces" connectedField: "pairedConnectedPlaces"
} }
}, },
{
id: "breakNotes",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedLocation"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedLocations"
}
},
{
id: "breakOther",
name: "Connections - World & Details",
type: "break",
sizing: 12
},
{
id: "pairedEvent",
name: "Connected to Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedLocations"
}
},
{
id: "pairedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedLocationsSkills"
}
},
{
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedLocations"
}
},
{
id: "pairedConditionsPositive",
name: "Affected by Boons",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedLocationsPositive"
}
},
{
id: "pairedConditionsNegative",
name: "Affected by Afflictions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedLocationsNegative"
}
},
{
id: "pairedConditionsOther",
name: "Affected by Other conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedLocationsOther"
}
},
{ {
id: "breakGroups", id: "breakGroups",
name: "Involved groups", name: "Connections - Groups/Teachings",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
@ -365,7 +504,7 @@ export const locationsBlueprint: I_Blueprint = {
{ {
id: "governReligious", id: "governReligious",
name: "Governing Religious groups", name: "Governing Teachings/Religious groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-ankh", icon: "fas fa-ankh",
sizing: 6, sizing: 6,
@ -376,7 +515,7 @@ export const locationsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedReligious", id: "connectedReligious",
name: "Connected Religious groups", name: "Connected Teachings/Religious groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-ankh", icon: "fas fa-ankh",
sizing: 6, sizing: 6,
@ -387,7 +526,7 @@ export const locationsBlueprint: I_Blueprint = {
}, },
{ {
id: "governMagical", id: "governMagical",
name: "Governing Magical groups", name: "Governing Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 6, sizing: 6,
@ -398,7 +537,7 @@ export const locationsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedMagical", id: "connectedMagical",
name: "Connected Magical groups", name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 6, sizing: 6,
@ -409,7 +548,7 @@ export const locationsBlueprint: I_Blueprint = {
}, },
{ {
id: "governTech", id: "governTech",
name: "Governing Technological/Scientific groups", name: "Governing Sciences/Technological groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-wrench", icon: "fas fa-wrench",
sizing: 6, sizing: 6,
@ -420,7 +559,7 @@ export const locationsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedTech", id: "connectedTech",
name: "Connected Technological/Scientific groups", name: "Connected Sciences/Technological groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-wrench", icon: "fas fa-wrench",
sizing: 6, sizing: 6,
@ -428,63 +567,6 @@ export const locationsBlueprint: I_Blueprint = {
connectedObjectType: "tech", connectedObjectType: "tech",
connectedField: "connectedLocations" connectedField: "connectedLocations"
} }
},
{
id: "breakOther",
name: "Other details",
type: "break",
sizing: 12
},
{
id: "pairedEvent",
name: "Connected to Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedLocations"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedLocations"
}
},
{
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedLocations"
}
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedLocation"
}
} }
] ]
} }

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const loreNotesBlueprint: I_Blueprint = { export const loreNotesBlueprint: I_Blueprint = {
_id: "loreNotes", _id: "loreNotes",
order: 19, order: 440,
namePlural: "Lore notes/Other notes", namePlural: "Lore notes/Other notes",
nameSingular: "Lore notes/Other note", nameSingular: "Lore notes/Other note",
icon: "mdi-script-text-outline", icon: "mdi-script-text-outline",
category: "Story/Lore",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -168,8 +169,8 @@ export const loreNotesBlueprint: I_Blueprint = {
}, },
{ {
id: "breakRelated", id: "breakStory",
name: "Connections", name: "Connections - Story/Lore",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
@ -195,6 +196,24 @@ export const loreNotesBlueprint: I_Blueprint = {
connectedField: "pairedConnectedNote" connectedField: "pairedConnectedNote"
} }
}, },
{
id: "pairedConnectedMyths",
name: "Connected to Myths/Legends/Stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedNotes"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedCharacter", id: "pairedConnectedCharacter",
name: "Connected to Characters", name: "Connected to Characters",
@ -228,6 +247,46 @@ export const loreNotesBlueprint: I_Blueprint = {
connectedField: "pairedConnectedNotes" connectedField: "pairedConnectedNotes"
} }
}, },
{
id: "pairedConnectedRaces",
name: "Connected to Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "pairedConnectedNotes"
}
},
{
id: "localLanguages",
name: "Connected to Languages",
type: "manyToManyRelationship",
icon: "mdi-book-alphabet",
sizing: 4,
relationshipSettings: {
connectedObjectType: "languages",
connectedField: "pairedConnectedNotes"
}
},
{
id: "pairedConnectedCultures",
name: "Connected to Culture/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 4,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedConnectedNotes"
}
},
{
id: "breakGroups",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedPolGroups", id: "pairedConnectedPolGroups",
name: "Connected to Ideologies/Political groups", name: "Connected to Ideologies/Political groups",
@ -263,10 +322,10 @@ export const loreNotesBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedMagicGroups", id: "pairedConnectedMagicGroups",
name: "Connected to Spells/Magical groups", name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "magic", connectedObjectType: "magic",
connectedField: "pairedConnectedNotes" connectedField: "pairedConnectedNotes"
@ -277,20 +336,26 @@ export const loreNotesBlueprint: I_Blueprint = {
name: "Connected to Sciences/Technological groups", name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-wrench", icon: "fas fa-wrench",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "tech", connectedObjectType: "tech",
connectedField: "pairedConnectedNotes" connectedField: "pairedConnectedNotes"
} }
}, },
{ {
id: "pairedConnectedRaces", id: "breakDetails",
name: "Connected to Species/Races/Flora/Fauna", name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "pairedConnectedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "mdi-sword-cross",
sizing: 4, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "races", connectedObjectType: "skills",
connectedField: "pairedConnectedNotes" connectedField: "pairedConnectedNotes"
} }
}, },
@ -298,21 +363,44 @@ export const loreNotesBlueprint: I_Blueprint = {
id: "pairedConnectedItems", id: "pairedConnectedItems",
name: "Connected to Items", name: "Connected to Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 4, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
connectedField: "pairedConnectedNotes" connectedField: "pairedConnectedNotes"
} }
}, },
{ {
id: "localLanguages", id: "pairedConnectedProfessions",
name: "Connected to Languages", name: "Connected to Occupations/Classes",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-book-alphabet", icon: "fab fa-pied-piper-hat",
sizing: 4, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "languages", connectedObjectType: "professions",
connectedField: "pairedConnectedNotes"
}
},
{
id: "pairedConnectedConditions",
name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedConnectedNotes"
}
},
{
id: "pairedConnectedResources",
name: "Connected to Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConnectedNotes" connectedField: "pairedConnectedNotes"
} }
}, },
@ -326,17 +414,7 @@ export const loreNotesBlueprint: I_Blueprint = {
connectedObjectType: "currencies", connectedObjectType: "currencies",
connectedField: "pairedConnectedNotes" connectedField: "pairedConnectedNotes"
} }
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths/Legends/Stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedNotes"
}
} }
] ]
} }

View file

@ -1,11 +1,41 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const magicBlueprint: I_Blueprint = { export const magicBlueprint: I_Blueprint = {
_id: "magic", _id: "magic",
order: 12, order: 250,
namePlural: "Spells/Magical groups", namePlural: "Schools of Magic/Magical groups",
nameSingular: "Spell/Magical group", nameSingular: "School of Magic/Magical group",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
category: "Groups/Teachings",
extraFields: [ extraFields: [
{
id: "pairedCharacter",
name: "Magic/Spell Users",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 4,
isLegacy: true,
tooltip:
`This field is meant to be used as a way to map out spell-users and their respected spells.
<br>
For diplomatic/ideological connections between magical groups/institutions and characters, use the field below in the "Diplomatic relationships & Influences" section.
`,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedMagic"
}
},
{
id: "pairedItems",
name: "Important items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 4,
isLegacy: true,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedMagic"
}
},
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
name: "Document settings", name: "Document settings",
@ -157,19 +187,25 @@ export const magicBlueprint: I_Blueprint = {
name: "Headquarters", name: "Headquarters",
type: "singleToNoneRelationship", type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations" connectedObjectType: "locations"
} }
}, },
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{ {
id: "users", id: "users",
name: "Member/User count", name: "Member/User count",
type: "text", type: "text",
icon: "mdi-account-group", icon: "mdi-account-group",
sizing: 3, sizing: 2,
tooltip: "The amount of members of this political magical group." tooltip: "The amount of members of this political magical group."
}, },
{ {
id: "followers", id: "followers",
@ -185,7 +221,7 @@ export const magicBlueprint: I_Blueprint = {
name: "Leading Figures", name: "Leading Figures",
type: "manyToNoneRelationship", type: "manyToNoneRelationship",
icon: "mdi-crown", icon: "mdi-crown",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "characters" connectedObjectType: "characters"
} }
@ -195,14 +231,12 @@ export const magicBlueprint: I_Blueprint = {
name: "Type", name: "Type",
type: "multiSelect", type: "multiSelect",
icon: "fas fa-monument", icon: "fas fa-monument",
sizing: 3, sizing: 4,
predefinedSelectValues: [ predefinedSelectValues: [
"Magical institution", "Magical institution",
"Magical teaching", "Magical teaching",
"Magical technique", "Magical technique",
"Ritual",
"School of magic", "School of magic",
"Spell",
"Other" "Other"
] ]
}, },
@ -211,7 +245,7 @@ export const magicBlueprint: I_Blueprint = {
name: "General schools of magic", name: "General schools of magic",
type: "multiSelect", type: "multiSelect",
icon: "fas fa-hand-sparkles", icon: "fas fa-hand-sparkles",
sizing: 3, sizing: 4,
predefinedSelectValues: [ predefinedSelectValues: [
"Abjuration ", "Abjuration ",
"Conjuration", "Conjuration",
@ -226,55 +260,56 @@ export const magicBlueprint: I_Blueprint = {
"Other" "Other"
] ]
}, },
{
id: "pairedCharacter",
name: "Magic/Spell Users",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 4,
tooltip:
`This field is meant to be used as a way to map out spell-users and their respected spells.
<br>
For diplomatic/ideological connections between magical groups/institutions and characters, use the field below in the "Diplomatic relationships & Influences" section.
`,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedMagic"
}
},
{ {
id: "pairedSpells", id: "pairedSpells",
name: "Connected Spells/Rituals", name: "Related Schools of Magic",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
tooltip:
`This field is meant to be used as a way to map out connection between different spells/rituals to each other.
<br>
For diplomatic/ideological connections between magical groups/institutions, use the field below in the "Diplomatic relationships & Influences" section.
`,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "magic", connectedObjectType: "magic",
connectedField: "pairedSpells" connectedField: "pairedSpells"
} }
}, },
{ {
id: "pairedItems", id: "pairedSkills",
name: "Usable through the use of Items", name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword-cross",
sizing: 4, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "skills",
connectedField: "pairedMagic" connectedField: "pairedMagicGroupsSkills"
}
},
{
id: "pairedConditions",
name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedMagicGroups"
}
},
{
id: "pairedConnectedResources",
name: "Important Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConnectedMagicGroups"
} }
}, },
{ {
id: "connectedRaces", id: "connectedRaces",
name: "Common Species/Races/Flora/Faunas among the practitioners", name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "races", connectedObjectType: "races",
connectedField: "commonInMagicGroups" connectedField: "commonInMagicGroups"
@ -282,10 +317,10 @@ export const magicBlueprint: I_Blueprint = {
}, },
{ {
id: "localLanguages", id: "localLanguages",
name: "Common Languages among the practitioners", name: "Common Languages",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-book-alphabet", icon: "mdi-book-alphabet",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "languages", connectedObjectType: "languages",
connectedField: "usedInMagicalGroups" connectedField: "usedInMagicalGroups"
@ -295,23 +330,55 @@ export const magicBlueprint: I_Blueprint = {
id: "description", id: "description",
name: "Description & History", name: "Description & History",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "traditions", id: "traditions",
name: "Traditions & Customs", name: "Traditions & Customs",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "breakRelasionships", id: "breakNotes",
name: "Diplomatic relationships & Influences", name: "Connections - Story/Lore",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedMagicGroups"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedMagicGroups"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break",
sizing: 12
},
{ {
id: "governLocations", id: "governLocations",
name: "Ruled Locations", name: "Ruled/Influenced Locations",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 6,
@ -331,6 +398,28 @@ export const magicBlueprint: I_Blueprint = {
connectedField: "connectedMagical" connectedField: "connectedMagical"
} }
}, },
{
id: "connectedEvents",
name: "Connected Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedMagical"
}
},
{
id: "pairedConnectedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 6,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedConnectedMagicGroups"
}
},
{ {
id: "pairedConnectionCharacter", id: "pairedConnectionCharacter",
name: "Connected Characters", name: "Connected Characters",
@ -375,6 +464,12 @@ export const magicBlueprint: I_Blueprint = {
connectedField: "pairedEnemyMagicGroup" connectedField: "pairedEnemyMagicGroup"
} }
}, },
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedPolGroups", id: "pairedConnectedPolGroups",
name: "Connected Political groups", name: "Connected Political groups",
@ -476,7 +571,7 @@ export const magicBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedMagicalGroups", id: "pairedConnectedMagicalGroups",
name: "Connected Spells/Magical groups", name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -487,7 +582,7 @@ export const magicBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedAllyMagicalGroups", id: "pairedAllyMagicalGroups",
name: "Allied Spells/Magical groups", name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -498,7 +593,7 @@ export const magicBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedEnemyMagicalGroups", id: "pairedEnemyMagicalGroups",
name: "Enemy Spells/Magical groups", name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -541,58 +636,30 @@ export const magicBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "breakOther", id: "breakDetails",
name: "Other details", name: "Connections - Details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{
id: "connectedEvents",
name: "Connected Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedMagical"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedMagicGroups"
}
},
{ {
id: "pairedConnectedItems", id: "pairedConnectedItems",
name: "Connected to Items", name: "Connected to Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
connectedField: "pairedConnectedMagicGroups" connectedField: "pairedConnectedMagicGroups"
} }
}, },
{ {
id: "breakNotes", id: "pairedConnectedProfessions",
name: "Notes", name: "Connected to Occupations/Classes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-script-text-outline", icon: "fab fa-pied-piper-hat",
sizing: 12, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "loreNotes", connectedObjectType: "professions",
connectedField: "pairedConnectedMagicGroups" connectedField: "pairedConnectedMagicGroups"
} }
} }

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const mythsBlueprint: I_Blueprint = { export const mythsBlueprint: I_Blueprint = {
_id: "myths", _id: "myths",
order: 6, order: 430,
namePlural: "Myths/Legends/Stories", namePlural: "Myths/Legends/Stories",
nameSingular: "Myth/Legend/Story", nameSingular: "Myth/Legend/Story",
icon: "fas fa-journal-whills", icon: "fas fa-journal-whills",
category: "Story/Lore",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -152,17 +153,78 @@ export const mythsBlueprint: I_Blueprint = {
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "traditions",
name: "Connected Traditions & Customs to the myth, legend or story",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "breakStory",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedMyths"
}
},
{ {
id: "pairedOtherMyths", id: "pairedOtherMyths",
name: "Connected to other Myths, legends and stories", name: "Connected to other Myths, legends and stories",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-journal-whills", icon: "fas fa-journal-whills",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "myths", connectedObjectType: "myths",
connectedField: "pairedOtherMyths" connectedField: "pairedOtherMyths"
} }
}, },
{
id: "breakWorld",
name: "Connections - World",
type: "break",
sizing: 12
},
{
id: "pairedConnectedCharacter",
name: "Connected Characters",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedConnectedMyths"
}
},
{
id: "pairedConnectedLocations",
name: "Connected Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedConnectedMyths"
}
},
{ {
id: "pairedEvents", id: "pairedEvents",
name: "Connected to Events", name: "Connected to Events",
@ -174,60 +236,9 @@ export const mythsBlueprint: I_Blueprint = {
connectedField: "pairedMyths" connectedField: "pairedMyths"
} }
}, },
{
id: "pairedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedMyths"
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
sizing: 12
},
{
id: "traditions",
name: "Connected traditions & Customs to the myth, legend or story",
type: "wysiwyg",
sizing: 12
},
{
id: "breakRelasionships",
name: "Characters, locations and groups/institutions details",
type: "break",
sizing: 12
},
{
id: "pairedConnectedCharacter",
name: "Connected Characters",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 4,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedConnectedMyths"
}
},
{
id: "pairedConnectedLocations",
name: "Connected Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedConnectedMyths"
}
},
{ {
id: "pairedConnectedRaces", id: "pairedConnectedRaces",
name: "Connected to Species/Races/Flora/Faunas", name: "Connected to Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 4, sizing: 4,
@ -236,12 +247,29 @@ export const mythsBlueprint: I_Blueprint = {
connectedField: "pairedConnectedMyths" connectedField: "pairedConnectedMyths"
} }
}, },
{
id: "pairedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 4,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedOtherMyths"
}
},
{
id: "breakGroups",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedPolGroups", id: "pairedConnectedPolGroups",
name: "Connected to Ideologies/Political groups", name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-bank-outline", icon: "mdi-bank-outline",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "politicalGroups", connectedObjectType: "politicalGroups",
connectedField: "pairedConnectedMyths" connectedField: "pairedConnectedMyths"
@ -252,7 +280,7 @@ export const mythsBlueprint: I_Blueprint = {
name: "Connected to Organizations/Other groups", name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-account-group", icon: "mdi-account-group",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "guilds", connectedObjectType: "guilds",
connectedField: "pairedConnectedMyths" connectedField: "pairedConnectedMyths"
@ -271,10 +299,10 @@ export const mythsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedMagicGroups", id: "pairedConnectedMagicGroups",
name: "Connected to Magic/Spells", name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "magic", connectedObjectType: "magic",
connectedField: "pairedConnectedMyths" connectedField: "pairedConnectedMyths"
@ -285,27 +313,71 @@ export const mythsBlueprint: I_Blueprint = {
name: "Connected to Technologies/Sciences", name: "Connected to Technologies/Sciences",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-wrench", icon: "fas fa-wrench",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "tech", connectedObjectType: "tech",
connectedField: "pairedConnectedMyths" connectedField: "pairedConnectedMyths"
} }
}, },
{ {
id: "breakNotes", id: "breakDetails",
name: "Notes", name: "Connections - Details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "pairedConnectedNotes", id: "pairedSkills",
name: "Connected to Lore notes/Other notes", name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-script-text-outline", icon: "mdi-sword-cross",
sizing: 12, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "loreNotes", connectedObjectType: "skills",
connectedField: "pairedConnectedMyths" connectedField: "pairedMyths"
}
},
{
id: "pairedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedMyths"
}
},
{
id: "pairedProfessions",
name: "Connected to Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 4,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "pairedMyths"
}
},
{
id: "pairedConditions",
name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedMyths"
}
},
{
id: "pairedResources",
name: "Connected to Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedMyths"
} }
} }

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const politicalGroupsBlueprint: I_Blueprint = { export const politicalGroupsBlueprint: I_Blueprint = {
_id: "politicalGroups", _id: "politicalGroups",
order: 15, order: 280,
namePlural: "Ideologies/Political groups", namePlural: "Ideologies/Political groups",
nameSingular: "Ideology/Political group", nameSingular: "Ideology/Political group",
icon: "mdi-bank-outline", icon: "mdi-bank-outline",
category: "Groups/Teachings",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -157,17 +158,24 @@ export const politicalGroupsBlueprint: I_Blueprint = {
name: "Headquarters", name: "Headquarters",
type: "singleToNoneRelationship", type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations" connectedObjectType: "locations"
} }
}, },
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{ {
id: "population", id: "population",
name: "Member count", name: "Member count",
type: "text", type: "text",
icon: "mdi-account-group", icon: "mdi-account-group",
sizing: 3, sizing: 2,
tooltip: "The amount of members of this political group/ideology." tooltip: "The amount of members of this political group/ideology."
}, },
{ {
@ -221,14 +229,14 @@ export const politicalGroupsBlueprint: I_Blueprint = {
] ]
}, },
{ {
id: "localCurrencies", id: "realedTeachings",
name: "Used Currencies", name: "Related Ideologies",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-coins", icon: "mdi-bank-outline",
sizing: 4, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "currencies", connectedObjectType: "politicalGroups",
connectedField: "usedInPoliticalGroups" connectedField: "realedTeachings"
} }
}, },
{ {
@ -244,7 +252,7 @@ export const politicalGroupsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedRaces", id: "connectedRaces",
name: "Common Species/Races/Flora/Faunas", name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 4, sizing: 4,
@ -253,27 +261,79 @@ export const politicalGroupsBlueprint: I_Blueprint = {
connectedField: "commonInPoliticalGroups" connectedField: "commonInPoliticalGroups"
} }
}, },
{
id: "localCurrencies",
name: "Used Currencies",
type: "manyToManyRelationship",
icon: "fas fa-coins",
sizing: 6,
relationshipSettings: {
connectedObjectType: "currencies",
connectedField: "usedInPoliticalGroups"
}
},
{
id: "pairedConnectedResources",
name: "Important Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConnectedPoliticalGroups"
}
},
{ {
id: "description", id: "description",
name: "Description & History", name: "Description & History",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "traditions", id: "traditions",
name: "Traditions & Customs", name: "Traditions & Customs",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "breakRelasionships", id: "breakNotes",
name: "Diplomatic relationships & Influences", name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedPolGroups"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedPolGroups"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "governLocations", id: "governLocations",
name: "Ruled Locations", name: "Ruled/Influenced Locations",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 6,
@ -293,6 +353,28 @@ export const politicalGroupsBlueprint: I_Blueprint = {
connectedField: "connectedPolitical" connectedField: "connectedPolitical"
} }
}, },
{
id: "connectedEvents",
name: "Connected Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedPolitical"
}
},
{
id: "pairedConnectedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 6,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedConnectedPolGroups"
}
},
{ {
id: "pairedConnectionCharacter", id: "pairedConnectionCharacter",
name: "Connected Characters", name: "Connected Characters",
@ -337,6 +419,12 @@ export const politicalGroupsBlueprint: I_Blueprint = {
connectedField: "pairedEnemyPolGroup" connectedField: "pairedEnemyPolGroup"
} }
}, },
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedPolGroups", id: "pairedConnectedPolGroups",
name: "Connected Ideologies/Political groups", name: "Connected Ideologies/Political groups",
@ -370,7 +458,6 @@ export const politicalGroupsBlueprint: I_Blueprint = {
connectedField: "pairedEnemyPolGroups" connectedField: "pairedEnemyPolGroups"
} }
}, },
{ {
id: "pairedConnectedOtherGroups", id: "pairedConnectedOtherGroups",
name: "Connected Organizations/Other groups", name: "Connected Organizations/Other groups",
@ -440,7 +527,7 @@ export const politicalGroupsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedMagicalGroups", id: "pairedConnectedMagicalGroups",
name: "Connected Spells/Magical groups", name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -451,7 +538,7 @@ export const politicalGroupsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedAllyMagicalGroups", id: "pairedAllyMagicalGroups",
name: "Allied Spells/Magical groups", name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -462,7 +549,7 @@ export const politicalGroupsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedEnemyMagicalGroups", id: "pairedEnemyMagicalGroups",
name: "Enemy Spells/Magical groups", name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -507,59 +594,54 @@ export const politicalGroupsBlueprint: I_Blueprint = {
}, },
{ {
id: "breakOther", id: "breakOther",
name: "Other details", name: "Connections - Details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "connectedEvents", id: "pairedSkills",
name: "Connected Events", name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-calendar-text", icon: "mdi-sword-cross",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "events", connectedObjectType: "skills",
connectedField: "connectedPolitical" connectedField: "pairedPoliticalGroupsSkills"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedPolGroups"
} }
}, },
{ {
id: "pairedConnectedItems", id: "pairedConnectedItems",
name: "Connected to Items", name: "Connected to Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
connectedField: "pairedConnectedPolGroups" connectedField: "pairedConnectedPolGroups"
} }
}, },
{ {
id: "breakNotes", id: "pairedConnectedProfessions",
name: "Notes", name: "Connected to Occupations/Classes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-script-text-outline", icon: "fab fa-pied-piper-hat",
sizing: 12, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "loreNotes", connectedObjectType: "professions",
connectedField: "pairedConnectedPolGroups" connectedField: "pairedConnectedPolGroups"
} }
},
{
id: "pairedConditions",
name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedRacesPoliticalGroups"
}
} }
] ]
} }

View file

@ -0,0 +1,463 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint"
import { RPGSystemsStats } from "../extraFieldLists/RPGSystemsStats"
export const professionsBlueprint: I_Blueprint = {
_id: "professions",
order: 160,
namePlural: "Occupations/Classes",
nameSingular: "Occupation/Class",
icon: "fab fa-pied-piper-hat",
category: "Details",
extraFields: [
{
id: "breakDocumentSettings",
name: "Document settings",
type: "break",
sizing: 12
},
{
id: "name",
name: "Name",
type: "text",
icon: "fab fa-pied-piper-hat",
sizing: 3
},
{
id: "parentDoc",
name: "Belongs under",
type: "singleToNoneRelationship",
tooltip:
`This field is used to build up custom hierarchical tree structure in the main list of items in the left side of the app.
<br> You can use this for an infinite amount of sub-levels to the hierarchical structure.
<br> An example would be multiple sub-groups (provinces) of Roman Empire belonging under the main political group called "Roman Empire".
`,
sizing: 3,
relationshipSettings: {
connectedObjectType: "professions"
}
},
{
id: "documentColor",
name: "Text color",
type: "colorPicker",
icon: "mdi-eyedropper",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show on the icon and name of the document both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "documentBackgroundColor",
name: "Background color",
type: "colorPicker",
icon: "mdi-format-color-fill",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show as a background both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "finishedSwitch",
name: "Is finished",
type: "switch",
icon: "mdi-check-bold",
tooltip:
`This setting allows for setting the current document to finished document mode.
<br>
A document with finished document mode toggled on will not show any un-filled fields in view mode and will function as if "Hide empty fields" was turned on in the settings.
`,
sizing: 2
},
{
id: "minorSwitch",
name: "Is a minor document",
type: "switch",
icon: "mdi-magnify-minus-outline",
tooltip:
`This setting allows for setting the current document to minor document mode.
<br>
A document with minor document mode toggled on will not show in any other relationship searches.<br>
The idea behind this setting is to allow for creation of documents that will not clutter the search, but could be theoretically relevant in some very specific cases to the story (eg: distant relatives of a character).
`,
sizing: 3
},
{
id: "deadSwitch",
name: "Is Dead/Gone/Destroyed",
type: "switch",
icon: "mdi-skull-crossbones",
tooltip:
`This setting allows for setting the current document to dead/gone/destroyed mode.
<br>
A document with dead/gone/destroyed mode toggled on will have a crossed-over text modifier applied to it - showing that it is no longer a part of the current timeline.
`,
sizing: 3
},
{
id: "categorySwitch",
name: "Is a category",
type: "switch",
icon: "fas fa-folder-open",
tooltip:
`This setting allows for setting the current document to category mode.
<br>
A document with category mode toggled on will have most of its fields hidden and will not show in any other relationship searches except for "Belongs under".
`,
sizing: 3
},
{
id: "order",
name: "Order number",
type: "number",
icon: "mdi-file-tree",
tooltip:
`In case the default sorting via alphabet in the hierarchical tree on the left is inadequite for your needs, this field allows you to fill custom numbers to order by that get placed before the default alphabetical order.
<br>It is heavily suggested to "pad-out" the custom order numbers by writing for example 100 (or least 10) instead of 1.
<br>This allows for extra "padding" between the items in case a new one needs to be added in the middle without needing to redo the custom order on all documents.
`,
sizing: 3
},
{
id: "tags",
name: "Tags",
type: "tags",
icon: "mdi-tag",
tooltip:
`Tags are used to sort the same (or even different) document types into a custom groups based on your needs.
<br>
A document may have any number of tags, but each tag can be present only once.
<br>
This limitation also applies to any variation of lower or upper case iterations of the same tag.
<br>
Example: A tag called "Player Party" will be considered the same tag as "player party", "PlAyER PaRtY" or anything similar.
`,
sizing: 12
},
{
id: "otherNames",
name: "Other Names & Epithets",
type: "list",
icon: "mdi-book-plus",
sizing: 12
},
{
id: "categoryDescription",
name: "Category description",
type: "wysiwyg",
icon: "mdi-folder-edit-outline",
sizing: 12
},
{
id: "breakBasic",
name: "Basic information",
type: "break",
sizing: 12
},
{
id: "titles",
name: "Titles & Ranks",
type: "list",
icon: "mdi-crown",
sizing: 12,
predefinedListExtras: {
affix: "Note",
extraSelectValueList: [
]
}
},
{
id: "features",
name: "Prominent features",
type: "list",
icon: "mdi-guy-fawkes-mask",
sizing: 8,
predefinedListExtras: {
affix: "Note",
extraSelectValueList: [
]
}
},
{
id: "professionType",
name: "Occupation/Class type",
type: "multiSelect",
icon: "mdi-pickaxe",
sizing: 4,
predefinedSelectValues: [
"Aristocratic",
"Bureaucratic",
"Caste",
"Character class",
"Civil",
"Hobby",
"Indentured",
"Inherited",
"Innate",
"Legal",
"Magical",
"Martial",
"Medical",
"Occupation",
"Political",
"Private",
"Professional",
"Religious",
"Scientific",
"Social class",
"Trade",
"Unskilled",
"Other"
]
},
{
id: "relatedProfessions",
name: "Related Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 4,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "relatedProfessions"
}
},
{
id: "pairedCharacter",
name: "Characters of the Occupation/Class",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 4,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedProfession"
}
},
{
id: "relatedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 4,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "relatedProfessions"
}
},
{
id: "pairedUsedSkills",
name: "Commonly used Skills/Spells/Other",
type: "manyToNoneRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills"
}
},
{
id: "pairedUsedItems",
name: "Commonly used Items",
type: "manyToNoneRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items"
}
},
{
id: "usedResources",
name: "Used Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "usedProfessions"
}
},
{
id: "producedResources",
name: "Produced Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "producedProfessions"
}
},
{
id: "statsList",
name: "Stats/Attributes",
type: "list",
icon: "mdi-sword",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "traditions",
name: "Traditions & customs connected to the item",
type: "wysiwyg",
sizing: 12
},
{
id: "breakNotes",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedProfessions"
}
},
{
id: "pairedMyths",
name: "Connected to Myths/Legends/Stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "pairedProfessions"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break",
sizing: 12
},
{
id: "connectedLocations",
name: "Connected to Locations/Geography",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "connectedProfessions"
}
},
{
id: "localLanguages",
name: "Languages",
type: "manyToManyRelationship",
icon: "mdi-book-alphabet",
sizing: 6,
relationshipSettings: {
connectedObjectType: "languages",
connectedField: "pairedConnectedProfessions"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPolGroups",
name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 4,
relationshipSettings: {
connectedObjectType: "politicalGroups",
connectedField: "pairedConnectedProfessions"
}
},
{
id: "pairedConnectedReligiousGroups",
name: "Connected to Teachings/Religious groups",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 4,
relationshipSettings: {
connectedObjectType: "religions",
connectedField: "pairedConnectedProfessions"
}
},
{
id: "pairedConnectedOtherGroups",
name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship",
icon: "mdi-account-group",
sizing: 4,
relationshipSettings: {
connectedObjectType: "guilds",
connectedField: "pairedConnectedProfessions"
}
},
{
id: "pairedConnectedMagicGroups",
name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedConnectedProfessions"
}
},
{
id: "pairedConnectedTechGroups",
name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
connectedField: "pairedConnectedProfessions"
}
},
{
id: "breakDetails",
name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "pairedConnectedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedConnectedProfessions"
}
},
{
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedProfessions"
}
}
]
}

View file

@ -2,10 +2,11 @@ import { RPGSystemsStats } from "./../extraFieldLists/RPGSystemsStats"
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const racesBlueprint: I_Blueprint = { export const racesBlueprint: I_Blueprint = {
_id: "races", _id: "races",
order: 10, order: 340,
namePlural: "Species/Races/Flora/Fauna", namePlural: "Species/Races/Flora/Fauna",
nameSingular: "Species/Races/Flora/Fauna", nameSingular: "Species/Races/Flora/Fauna",
icon: "fas fa-dragon", icon: "fas fa-dragon",
category: "World",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -155,7 +156,7 @@ export const racesBlueprint: I_Blueprint = {
}, },
{ {
id: "relatedRaces", id: "relatedRaces",
name: "Related Species/Races/Flora/Faunas", name: "Related Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 4, sizing: 4,
@ -248,108 +249,6 @@ export const racesBlueprint: I_Blueprint = {
"Other" "Other"
] ]
}, },
{
id: "statsList",
name: "Stats/Attributes",
type: "list",
icon: "mdi-sword-cross",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{
id: "traits",
name: "Defining Features & Traits",
type: "list",
icon: "fas fa-dragon",
sizing: 12
},
{
id: "strengths",
name: "Strengths",
type: "list",
icon: "fas fa-plus-square",
sizing: 6,
predefinedListExtras: {
affix: "Impact",
extraSelectValueList: [
"Barely noticeable",
"Minor",
"Medium",
"Strong",
"Powerful",
"Overwhelming"
]
}
},
{
id: "weaknesses",
name: "Weaknesses",
type: "list",
icon: "fas fa-minus-square",
sizing: 6,
predefinedListExtras: {
affix: "Severity",
extraSelectValueList: [
"Barely noticeable",
"Minor",
"Medium",
"Severe",
"Imcapacitating",
"Deadly"
]
}
},
{
id: "commonNames",
name: "Common names among the Species/Races/Flora/Fauna",
type: "list",
icon: "fas fa-signature",
sizing: 6,
predefinedListExtras: {
affix: "Normally used for",
extraSelectValueList: [
"Child",
"Female",
"Honorary",
"Male",
"Other"
]
}
},
{
id: "commonFamilyNames",
name: "Common Family/Clan names among the Species/Races/Flora/Fauna",
type: "list",
icon: "mdi-family-tree",
sizing: 6,
predefinedListExtras: {
affix: "Note",
extraSelectValueList: [
]
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
sizing: 12
},
{
id: "traditions",
name: "Traditions & Customs",
type: "wysiwyg",
sizing: 12
},
{
id: "breakRelasionships",
name: "Members & Other connections",
type: "break",
sizing: 12
},
{ {
id: "pairedCharacter", id: "pairedCharacter",
name: "Characters of Species/Races/Flora/Fauna", name: "Characters of Species/Races/Flora/Fauna",
@ -372,6 +271,17 @@ export const racesBlueprint: I_Blueprint = {
connectedField: "pairedConnectedRaces" connectedField: "pairedConnectedRaces"
} }
}, },
{
id: "relatedCultures",
name: "Connected to Culture/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 4,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "relatedRaces"
}
},
{ {
id: "localCurrencies", id: "localCurrencies",
name: "Commonly used Currencies", name: "Commonly used Currencies",
@ -394,12 +304,227 @@ export const racesBlueprint: I_Blueprint = {
connectedField: "usedByRaces" connectedField: "usedByRaces"
} }
}, },
{
id: "pairedSkills",
name: "Common Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedRacesSkills"
}
},
{
id: "statsList",
name: "Stats/Attributes",
type: "list",
icon: "mdi-sword",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{
id: "strengths",
name: "Strengths",
type: "list",
icon: "fas fa-plus-square",
sizing: 12,
predefinedListExtras: {
affix: "Impact",
extraSelectValueList: [
"Barely noticeable",
"Minor",
"Medium",
"Strong",
"Powerful",
"Overwhelming"
]
}
},
{
id: "weaknesses",
name: "Weaknesses",
type: "list",
icon: "fas fa-minus-square",
sizing: 12,
predefinedListExtras: {
affix: "Severity",
extraSelectValueList: [
"Barely noticeable",
"Minor",
"Medium",
"Severe",
"Imcapacitating",
"Deadly"
]
}
},
{
id: "traits",
name: "Defining Features & Traits",
type: "list",
icon: "fas fa-dragon",
sizing: 12
},
{
id: "pairedConditionsPositive",
name: "Affected by Boons",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedRacesPositive"
}
},
{
id: "pairedConditionsNegative",
name: "Affected by Afflictions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedRacesNegative"
}
},
{
id: "pairedConditionsOther",
name: "Affected by Other conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedRacesOther"
}
},
{
id: "commonNames",
name: "Common names among the Species/Races/Flora/Fauna",
type: "list",
icon: "fas fa-signature",
sizing: 12,
predefinedListExtras: {
affix: "Normally used for",
extraSelectValueList: [
"Child",
"Female",
"Honorary",
"Male",
"Other"
]
}
},
{
id: "commonFamilyNames",
name: "Common Family/Clan names among the Species/Races/Flora/Fauna",
type: "list",
icon: "mdi-family-tree",
sizing: 12,
predefinedListExtras: {
affix: "Note",
extraSelectValueList: [
]
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "traditions",
name: "Traditions & Customs",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "breakNotes",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedRaces"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedRaces"
}
},
{
id: "breakOther",
name: "Connections - World & Details",
type: "break",
sizing: 12
},
{
id: "connectedEvents",
name: "Connected to important Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedRaces"
}
},
{
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedRaces"
}
},
{
id: "pairedConnectedResources",
name: "Connected to Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConnectedRaces"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "commonInPoliticalGroups", id: "commonInPoliticalGroups",
name: "Common in Ideologies/Political groups", name: "Common in Ideologies/Political groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-bank-outline", icon: "mdi-bank-outline",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "politicalGroups", connectedObjectType: "politicalGroups",
connectedField: "connectedRaces" connectedField: "connectedRaces"
@ -410,7 +535,7 @@ export const racesBlueprint: I_Blueprint = {
name: "Common in Organizations/Other groups", name: "Common in Organizations/Other groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-account-group", icon: "mdi-account-group",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "guilds", connectedObjectType: "guilds",
connectedField: "connectedRaces" connectedField: "connectedRaces"
@ -448,63 +573,6 @@ export const racesBlueprint: I_Blueprint = {
connectedObjectType: "tech", connectedObjectType: "tech",
connectedField: "connectedRaces" connectedField: "connectedRaces"
} }
},
{
id: "breakOther",
name: "Other details",
type: "break",
sizing: 12
},
{
id: "connectedEvents",
name: "Connected to important Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedRaces"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedRaces"
}
},
{
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedRaces"
}
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedRaces"
}
} }
] ]
} }

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const religionsBlueprint: I_Blueprint = { export const religionsBlueprint: I_Blueprint = {
_id: "religions", _id: "religions",
order: 13, order: 270,
namePlural: "Teachings/Religious groups", namePlural: "Teachings/Religious groups",
nameSingular: "Teaching/Religious group", nameSingular: "Teaching/Religious group",
icon: "fas fa-ankh", icon: "fas fa-ankh",
category: "Groups/Teachings",
extraFields: [ extraFields: [
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
@ -158,17 +159,24 @@ export const religionsBlueprint: I_Blueprint = {
name: "Headquarters", name: "Headquarters",
type: "singleToNoneRelationship", type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations" connectedObjectType: "locations"
} }
}, },
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{ {
id: "population", id: "population",
name: "Member count", name: "Member count",
type: "text", type: "text",
icon: "mdi-account-group", icon: "mdi-account-group",
sizing: 3, sizing: 2,
tooltip: "The amount of members of this religious school/teaching." tooltip: "The amount of members of this religious school/teaching."
}, },
{ {
@ -184,7 +192,7 @@ export const religionsBlueprint: I_Blueprint = {
name: "Leading Figures", name: "Leading Figures",
type: "manyToNoneRelationship", type: "manyToNoneRelationship",
icon: "mdi-crown", icon: "mdi-crown",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "characters" connectedObjectType: "characters"
} }
@ -194,7 +202,7 @@ export const religionsBlueprint: I_Blueprint = {
name: "Form of religion", name: "Form of religion",
type: "multiSelect", type: "multiSelect",
icon: "fas fa-yin-yang", icon: "fas fa-yin-yang",
sizing: 3, sizing: 4,
predefinedSelectValues: [ predefinedSelectValues: [
"Cult", "Cult",
"Free-form faith", "Free-form faith",
@ -210,7 +218,7 @@ export const religionsBlueprint: I_Blueprint = {
name: "Type of religion", name: "Type of religion",
type: "multiSelect", type: "multiSelect",
icon: "fas fa-sun", icon: "fas fa-sun",
sizing: 3, sizing: 4,
predefinedSelectValues: [ predefinedSelectValues: [
"Ancestor worship", "Ancestor worship",
"Animism", "Animism",
@ -224,6 +232,17 @@ export const religionsBlueprint: I_Blueprint = {
"Other" "Other"
] ]
}, },
{
id: "relatedReligions",
name: "Related Religions",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 6,
relationshipSettings: {
connectedObjectType: "religions",
connectedField: "relatedReligions"
}
},
{ {
id: "localLanguages", id: "localLanguages",
name: "Used Languages", name: "Used Languages",
@ -237,7 +256,7 @@ export const religionsBlueprint: I_Blueprint = {
}, },
{ {
id: "connectedRaces", id: "connectedRaces",
name: "Common Species/Races/Flora/Faunas", name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 6, sizing: 6,
@ -246,21 +265,62 @@ export const religionsBlueprint: I_Blueprint = {
connectedField: "commonInReligiousGroups" connectedField: "commonInReligiousGroups"
} }
}, },
{
id: "pairedConnectedResources",
name: "Important Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConnectedReligiousGroups"
}
},
{ {
id: "description", id: "description",
name: "Description & History", name: "Description & History",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "traditions", id: "traditions",
name: "Traditions & Customs", name: "Traditions & Customs",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "breakRelasionships", id: "breakNotes",
name: "Diplomatic relationships & Influences", name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedRelGroups"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedRelGroups"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
@ -269,7 +329,7 @@ export const religionsBlueprint: I_Blueprint = {
name: "Ruled/Influenced Locations", name: "Ruled/Influenced Locations",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations", connectedObjectType: "locations",
connectedField: "governReligious" connectedField: "governReligious"
@ -280,12 +340,34 @@ export const religionsBlueprint: I_Blueprint = {
name: "Connected Locations", name: "Connected Locations",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations", connectedObjectType: "locations",
connectedField: "connectedReligious" connectedField: "connectedReligious"
} }
}, },
{
id: "connectedEvents",
name: "Connected Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedReligious"
}
},
{
id: "pairedConnectedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 6,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedConnectedReligiousGroups"
}
},
{ {
id: "pairedConnectionCharacter", id: "pairedConnectionCharacter",
name: "Connected Characters", name: "Connected Characters",
@ -330,6 +412,12 @@ export const religionsBlueprint: I_Blueprint = {
connectedField: "pairedEnemyRelGroup" connectedField: "pairedEnemyRelGroup"
} }
}, },
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedPolGroups", id: "pairedConnectedPolGroups",
name: "Connected Ideologies/Political groups", name: "Connected Ideologies/Political groups",
@ -432,7 +520,7 @@ export const religionsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedMagicGroups", id: "pairedConnectedMagicGroups",
name: "Connected Magical groups/Ideologies", name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -443,7 +531,7 @@ export const religionsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedAllyMagicGroups", id: "pairedAllyMagicGroups",
name: "Allied Magical groups/Ideologies", name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -454,7 +542,7 @@ export const religionsBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedEnemyMagicGroups", id: "pairedEnemyMagicGroups",
name: "Enemy Magical groups/Ideologies", name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -497,59 +585,53 @@ export const religionsBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "breakOther", id: "breakDetails",
name: "Other details", name: "Connections - Details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "connectedEvents", id: "pairedSkills",
name: "Connected Events", name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-calendar-text", icon: "mdi-sword-cross",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "events", connectedObjectType: "skills",
connectedField: "connectedReligious" connectedField: "pairedReligiousGroupsSkills"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedRelGroups"
} }
}, },
{ {
id: "pairedConnectedItems", id: "pairedConnectedItems",
name: "Connected to Items", name: "Connected to Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
connectedField: "pairedConnectedRelGroups" connectedField: "pairedConnectedRelGroups"
} }
}, },
{ {
id: "breakNotes", id: "pairedConnectedProfessions",
name: "Notes", name: "Connected to Occupations/Classes",
type: "break", type: "manyToManyRelationship",
sizing: 12 icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "pairedConnectedReligiousGroups"
}
}, },
{ {
id: "pairedConnectedNotes", id: "pairedConditions",
name: "Connected to Lore notes/Other notes", name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-script-text-outline", icon: "mdi-virus",
sizing: 12, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "loreNotes", connectedObjectType: "conditions",
connectedField: "pairedConnectedRelGroups" connectedField: "pairedReligiousGroups"
} }
} }
] ]

View file

@ -0,0 +1,580 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const resourcesBlueprint: I_Blueprint = {
_id: "resources",
order: 140,
namePlural: "Resources/Materials",
nameSingular: "Resource/Material",
icon: "mdi-gold",
category: "Details",
extraFields: [
{
id: "breakDocumentSettings",
name: "Document settings",
type: "break",
sizing: 12
},
{
id: "name",
name: "Name",
type: "text",
icon: "mdi-gold",
sizing: 3
},
{
id: "parentDoc",
name: "Belongs under",
type: "singleToNoneRelationship",
tooltip:
`This field is used to build up custom hierarchical tree structure in the main list of items in the left side of the app.
<br> You can use this for an infinite amount of sub-levels to the hierarchical structure.
<br> An example would be multiple sub-groups (provinces) of Roman Empire belonging under the main political group called "Roman Empire".
`,
sizing: 3,
relationshipSettings: {
connectedObjectType: "resources"
}
},
{
id: "documentColor",
name: "Text color",
type: "colorPicker",
icon: "mdi-eyedropper",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show on the icon and name of the document both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "documentBackgroundColor",
name: "Background color",
type: "colorPicker",
icon: "mdi-format-color-fill",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show as a background both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "finishedSwitch",
name: "Is finished",
type: "switch",
icon: "mdi-check-bold",
tooltip:
`This setting allows for setting the current document to finished document mode.
<br>
A document with finished document mode toggled on will not show any un-filled fields in view mode and will function as if "Hide empty fields" was turned on in the settings.
`,
sizing: 2
},
{
id: "minorSwitch",
name: "Is a minor document",
type: "switch",
icon: "mdi-magnify-minus-outline",
tooltip:
`This setting allows for setting the current document to minor document mode.
<br>
A document with minor document mode toggled on will not show in any other relationship searches.<br>
The idea behind this setting is to allow for creation of documents that will not clutter the search, but could be theoretically relevant in some very specific cases to the story (eg: distant relatives of a character).
`,
sizing: 3
},
{
id: "deadSwitch",
name: "Is Dead/Gone/Destroyed",
type: "switch",
icon: "mdi-skull-crossbones",
tooltip:
`This setting allows for setting the current document to dead/gone/destroyed mode.
<br>
A document with dead/gone/destroyed mode toggled on will have a crossed-over text modifier applied to it - showing that it is no longer a part of the current timeline.
`,
sizing: 3
},
{
id: "categorySwitch",
name: "Is a category",
type: "switch",
icon: "fas fa-folder-open",
tooltip:
`This setting allows for setting the current document to category mode.
<br>
A document with category mode toggled on will have most of its fields hidden and will not show in any other relationship searches except for "Belongs under".
`,
sizing: 3
},
{
id: "order",
name: "Order number",
type: "number",
icon: "mdi-file-tree",
tooltip:
`In case the default sorting via alphabet in the hierarchical tree on the left is inadequite for your needs, this field allows you to fill custom numbers to order by that get placed before the default alphabetical order.
<br>It is heavily suggested to "pad-out" the custom order numbers by writing for example 100 (or least 10) instead of 1.
<br>This allows for extra "padding" between the items in case a new one needs to be added in the middle without needing to redo the custom order on all documents.
`,
sizing: 3
},
{
id: "tags",
name: "Tags",
type: "tags",
icon: "mdi-tag",
tooltip:
`Tags are used to sort the same (or even different) document types into a custom groups based on your needs.
<br>
A document may have any number of tags, but each tag can be present only once.
<br>
This limitation also applies to any variation of lower or upper case iterations of the same tag.
<br>
Example: A tag called "Player Party" will be considered the same tag as "player party", "PlAyER PaRtY" or anything similar.
`,
sizing: 12
},
{
id: "otherNames",
name: "Other Names & Epithets",
type: "list",
icon: "mdi-book-plus",
sizing: 12
},
{
id: "categoryDescription",
name: "Category description",
type: "wysiwyg",
icon: "mdi-folder-edit-outline",
sizing: 12
},
{
id: "breakBasic",
name: "Basic information",
type: "break",
sizing: 12
},
{
id: "features",
name: "Prominent features",
type: "list",
icon: "mdi-guy-fawkes-mask",
sizing: 12,
predefinedListExtras: {
affix: "Note",
extraSelectValueList: [
]
}
},
{
id: "priceCurrencies",
name: "Price in Currencies",
type: "manyToNoneRelationship",
icon: "fas fa-coins",
sizing: 6,
relationshipSettings: {
connectedObjectType: "currencies"
}
},
{
id: "density",
name: "Density",
type: "text",
icon: "mdi-weight",
sizing: 3,
tooltip: `
This field is meant more for realistic world-building/sci-fi.
<br>
Feel free to skip it if you don't need it.
`
},
{
id: "hardness",
name: "Hardness",
type: "singleSelect",
icon: "mdi-shield-outline",
sizing: 3,
tooltip: `
A rough scale to help you determine how hard your materials are.
<br>
Please note that harness means that a harder material can scratch/pierce/drill through the softer one.
<br>
It does NOT mean that the material is automatically tougher as hardness tends to come with brittlenes.
`,
predefinedSelectValues: [
"1 (Talc)",
"2 (Calcium, Sulfur)",
"3 (Copper, Gold, Silver)",
"4 (Iron)",
"5 (Obsidian, Ordinary steel)",
"6 (Titanium)",
"7 (Quartz)",
"8 (Hardened steel)",
"9 (Tungsten carbide)",
"10 (Diamond)"
]
},
{
id: "biomeType",
name: "Found in biomes",
type: "multiSelect",
icon: "mdi-pine-tree",
sizing: 4,
predefinedSelectValues: [
"Tropical Rainforest",
"Temperate Forest ",
"Desert (Sandy)",
"Desert (Arctic)",
"Tundra",
"Taiga (Boreal Forest) ",
"Grassland ",
"Savanna",
"Freshwater",
"Marine (Ocean/Sea) ",
"High plateaus",
"Bog/Swamp",
"Caverns/Underground",
"Interstellar space",
"Non-physical",
"Other"
]
},
{
id: "rarity",
name: "Rarity",
type: "singleSelect",
icon: "fas fa-chart-area",
sizing: 4,
predefinedSelectValues: [
"Common",
"Uncommon",
"Rare",
"Exceptionally rare",
"Next-to-impossible to obtain"
]
},
{
id: "resourceType",
name: "Resources/Materials type",
type: "multiSelect",
icon: "mdi-diamond-stone",
sizing: 4,
predefinedSelectValues: [
"Alien",
"Arcane",
"Artificial",
"Energy",
"Ethereal",
"Extraterrestrial",
"Food",
"Fossil",
"Fuel",
"Gas",
"Liquid",
"Metal",
"Mineral",
"Mutator",
"Natural",
"Non-physical",
"Organic",
"Planar",
"Plasma",
"Radioactive",
"Refined",
"Supernatural",
"Transmutator",
"Waste",
"Other"
]
},
{
id: "relatedResources",
name: "Related Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "relatedResources"
}
},
{
id: "madeIntoResources",
name: "Made into Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "madeFromResources"
}
},
{
id: "madeFromResources",
name: "Created from Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "madeIntoResources"
}
},
{
id: "connectedLocations",
name: "Found in Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "connectedResources"
}
},
{
id: "relatedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 6,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "relatedResouces"
}
},
{
id: "usedResources",
name: "Used by Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "usedProfessions"
}
},
{
id: "producedResources",
name: "Produced by Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "producedProfessions"
}
},
{
id: "pairedResourcesRequire",
name: "Required by Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedResourcesRequire"
}
},
{
id: "pairedResourcesCreate",
name: "Created by Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedResourcesCreate"
}
},
{
id: "pairedItemMade",
name: "Resource/Material used to make Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedResourcesMade"
}
},
{
id: "pairedItemProduced",
name: "Resource/Material produced by Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedResourcesProduced"
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "traditions",
name: "Traditions & customs connected to the item",
type: "wysiwyg",
sizing: 12
},
{
id: "breakNotes",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedResources"
}
},
{
id: "pairedMyths",
name: "Connected to Myths/Legends/Stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedResources"
}
},
{
id: "breakWorld",
name: "Connections - World & Details",
type: "break",
sizing: 12
},
{
id: "pairedCharacter",
name: "Connected to Characters",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedResources"
}
},
{
id: "pairedConnectedRaces",
name: "Connected to Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 6,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "pairedConnectedResources"
}
},
{
id: "pairedConditionsPositive",
name: "Causing Boons",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedResourcesPositive"
}
},
{
id: "pairedConditionsNegative",
name: "Causing Afflictions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedResourcesNegative"
}
},
{
id: "pairedConditionsOther",
name: "Causing Other conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedResourcesOther"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPoliticalGroups",
name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 4,
relationshipSettings: {
connectedObjectType: "politicalGroups",
connectedField: "pairedConnectedResources"
}
},
{
id: "pairedConnectedReligiousGroups",
name: "Connected to Teachings/Religious groups",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 4,
relationshipSettings: {
connectedObjectType: "religions",
connectedField: "pairedConnectedResources"
}
},
{
id: "pairedConnectedOtherGroups",
name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship",
icon: "mdi-account-group",
sizing: 4,
relationshipSettings: {
connectedObjectType: "guilds",
connectedField: "pairedConnectedResources"
}
},
{
id: "pairedConnectedMagicGroups",
name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedConnectedResources"
}
},
{
id: "pairedConnectedTechGroups",
name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
connectedField: "pairedConnectedResources"
}
}
]
}

View file

@ -1,11 +1,24 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint" import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const techBlueprint: I_Blueprint = { export const techBlueprint: I_Blueprint = {
_id: "tech", _id: "tech",
order: 11, order: 240,
namePlural: "Sciences/Technological groups", namePlural: "Sciences/Technological groups",
nameSingular: "Science/Technological group", nameSingular: "Science/Technological group",
icon: "fas fa-wrench", icon: "fas fa-wrench",
category: "Groups/Teachings",
extraFields: [ extraFields: [
{
id: "pairedCharacter",
name: "Technology/Science Users",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
isLegacy: true,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedTech"
}
},
{ {
id: "breakDocumentSettings", id: "breakDocumentSettings",
name: "Document settings", name: "Document settings",
@ -157,17 +170,24 @@ export const techBlueprint: I_Blueprint = {
name: "Headquarters", name: "Headquarters",
type: "singleToNoneRelationship", type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "locations" connectedObjectType: "locations"
} }
}, },
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{ {
id: "population", id: "population",
name: "Member/User count", name: "Member/User count",
type: "text", type: "text",
icon: "mdi-account-group", icon: "mdi-account-group",
sizing: 3, sizing: 2,
tooltip: "The amount of members of this scientific school/teaching." tooltip: "The amount of members of this scientific school/teaching."
}, },
{ {
@ -183,7 +203,7 @@ export const techBlueprint: I_Blueprint = {
name: "Leading figures", name: "Leading figures",
type: "manyToNoneRelationship", type: "manyToNoneRelationship",
icon: "mdi-crown", icon: "mdi-crown",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "characters" connectedObjectType: "characters"
} }
@ -193,7 +213,7 @@ export const techBlueprint: I_Blueprint = {
name: "Type", name: "Type",
type: "multiSelect", type: "multiSelect",
icon: "fas fa-cogs", icon: "fas fa-cogs",
sizing: 3, sizing: 4,
predefinedSelectValues: [ predefinedSelectValues: [
"Factory/Manufacture", "Factory/Manufacture",
"Invention", "Invention",
@ -210,7 +230,7 @@ export const techBlueprint: I_Blueprint = {
name: "Scientific branches", name: "Scientific branches",
type: "multiSelect", type: "multiSelect",
icon: "fas fa-vial", icon: "fas fa-vial",
sizing: 3, sizing: 4,
predefinedSelectValues: [ predefinedSelectValues: [
"Agricultural science", "Agricultural science",
"Astrology", "Astrology",
@ -235,34 +255,56 @@ export const techBlueprint: I_Blueprint = {
"Other" "Other"
] ]
}, },
{
id: "pairedCharacter",
name: "Technology/Science Users",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedTech"
}
},
{ {
id: "pairedTech", id: "pairedTech",
name: "Related Technologies/Sciences", name: "Related Technologies/Sciences",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-wrench", icon: "fas fa-wrench",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "tech", connectedObjectType: "tech",
connectedField: "pairedTech" connectedField: "pairedTech"
} }
}, },
{
id: "pairedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedTechGroupsSkills"
}
},
{
id: "pairedConditions",
name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedTechGroups"
}
},
{
id: "pairedConnectedResources",
name: "Important Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConnectedTechGroups"
}
},
{ {
id: "connectedRaces", id: "connectedRaces",
name: "Common Species/Races/Flora/Faunas", name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-dragon", icon: "fas fa-dragon",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "races", connectedObjectType: "races",
connectedField: "commonInTechGroups" connectedField: "commonInTechGroups"
@ -273,7 +315,7 @@ export const techBlueprint: I_Blueprint = {
name: "Common languages", name: "Common languages",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-book-alphabet", icon: "mdi-book-alphabet",
sizing: 6, sizing: 4,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "languages", connectedObjectType: "languages",
connectedField: "usedInTechGroups" connectedField: "usedInTechGroups"
@ -283,24 +325,55 @@ export const techBlueprint: I_Blueprint = {
id: "description", id: "description",
name: "Description & History", name: "Description & History",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "traditions", id: "traditions",
name: "Traditions & Customs", name: "Traditions & Customs",
type: "wysiwyg", type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12 sizing: 12
}, },
{ {
id: "breakRelasionships", id: "breakNotes",
name: "Diplomatic relationships & Influences", name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedTechGroups"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedTechGroups"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{ {
id: "governLocations", id: "governLocations",
name: "Ruled Locations", name: "Ruled/Influenced Locations",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-map-marker-radius", icon: "mdi-map-marker-radius",
sizing: 6, sizing: 6,
@ -320,6 +393,28 @@ export const techBlueprint: I_Blueprint = {
connectedField: "connectedTech" connectedField: "connectedTech"
} }
}, },
{
id: "connectedEvents",
name: "Connected Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedTech"
}
},
{
id: "pairedConnectedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 6,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedConnectedTechGroups"
}
},
{ {
id: "pairedConnectionCharacter", id: "pairedConnectionCharacter",
name: "Connected Characters", name: "Connected Characters",
@ -364,6 +459,13 @@ export const techBlueprint: I_Blueprint = {
connectedField: "pairedEnemyTechGroup" connectedField: "pairedEnemyTechGroup"
} }
}, },
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{ {
id: "pairedConnectedPolGroups", id: "pairedConnectedPolGroups",
name: "Connected Ideologies/Political groups", name: "Connected Ideologies/Political groups",
@ -465,7 +567,7 @@ export const techBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedConnectedMagicalGroups", id: "pairedConnectedMagicalGroups",
name: "Connected Spells/Magical groups", name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -476,7 +578,7 @@ export const techBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedAllyMagicalGroups", id: "pairedAllyMagicalGroups",
name: "Allied Spells/Magical groups", name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -487,7 +589,7 @@ export const techBlueprint: I_Blueprint = {
}, },
{ {
id: "pairedEnemyMagicalGroups", id: "pairedEnemyMagicalGroups",
name: "Enemy Spells/Magical groups", name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "fas fa-hat-wizard", icon: "fas fa-hat-wizard",
sizing: 4, sizing: 4,
@ -530,58 +632,30 @@ export const techBlueprint: I_Blueprint = {
} }
}, },
{ {
id: "breakOther", id: "breakDetails",
name: "Other details", name: "Connections - Details",
type: "break", type: "break",
sizing: 12 sizing: 12
}, },
{
id: "connectedEvents",
name: "Connected Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedTech"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedTechGroups"
}
},
{ {
id: "pairedConnectedItems", id: "pairedConnectedItems",
name: "Connected to Items", name: "Connected to Items",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-sword-cross", icon: "mdi-sword",
sizing: 4, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "items", connectedObjectType: "items",
connectedField: "pairedConnectedTechGroups" connectedField: "pairedConnectedTechGroups"
} }
}, },
{ {
id: "breakNotes", id: "pairedConnectedProfessions",
name: "Notes", name: "Connected to Occupations/Classes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship", type: "manyToManyRelationship",
icon: "mdi-script-text-outline", icon: "fab fa-pied-piper-hat",
sizing: 12, sizing: 6,
relationshipSettings: { relationshipSettings: {
connectedObjectType: "loreNotes", connectedObjectType: "professions",
connectedField: "pairedConnectedTechGroups" connectedField: "pairedConnectedTechGroups"
} }
} }

View file

@ -0,0 +1,568 @@
import { RPGSystemsStats } from "./../extraFieldLists/RPGSystemsStats"
import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const skillsBlueprint: I_Blueprint = {
_id: "skills",
order: 180,
namePlural: "Skills/Spells/Other",
nameSingular: "Skill/Spell/Other",
icon: "mdi-sword-cross",
category: "Details",
extraFields: [
{
id: "breakDocumentSettings",
name: "Document settings",
type: "break",
sizing: 12
},
{
id: "name",
name: "Name",
type: "text",
icon: "mdi-sword-cross",
sizing: 3
},
{
id: "parentDoc",
name: "Belongs under",
type: "singleToNoneRelationship",
tooltip:
`This field is used to build up custom hierarchical tree structure in the main list of items in the left side of the app.
<br> You can use this for an infinite amount of sub-levels to the hierarchical structure.
<br> An example would be multiple sub-groups (provinces) of Roman Empire belonging under the main political group called "Roman Empire".
`,
sizing: 3,
relationshipSettings: {
connectedObjectType: "skills"
}
},
{
id: "documentColor",
name: "Text color",
type: "colorPicker",
icon: "mdi-eyedropper",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show on the icon and name of the document both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "documentBackgroundColor",
name: "Background color",
type: "colorPicker",
icon: "mdi-format-color-fill",
tooltip:
`This field allows for custom-coloring your document to any available HEX or RBG color.
<br>The selected color will show as a background both in the hierarchical tree on the left and in the top tabs.
`,
sizing: 2
},
{
id: "finishedSwitch",
name: "Is finished",
type: "switch",
icon: "mdi-check-bold",
tooltip:
`This setting allows for setting the current document to finished document mode.
<br>
A document with finished document mode toggled on will not show any un-filled fields in view mode and will function as if "Hide empty fields" was turned on in the settings.
`,
sizing: 2
},
{
id: "minorSwitch",
name: "Is a minor document",
type: "switch",
icon: "mdi-magnify-minus-outline",
tooltip:
`This setting allows for setting the current document to minor document mode.
<br>
A document with minor document mode toggled on will not show in any other relationship searches.<br>
The idea behind this setting is to allow for creation of documents that will not clutter the search, but could be theoretically relevant in some very specific cases to the story (eg: distant relatives of a character).
`,
sizing: 3
},
{
id: "deadSwitch",
name: "Is Dead/Gone/Destroyed",
type: "switch",
icon: "mdi-skull-crossbones",
tooltip:
`This setting allows for setting the current document to dead/gone/destroyed mode.
<br>
A document with dead/gone/destroyed mode toggled on will have a crossed-over text modifier applied to it - showing that it is no longer a part of the current timeline.
`,
sizing: 3
},
{
id: "categorySwitch",
name: "Is a category",
type: "switch",
icon: "fas fa-folder-open",
tooltip:
`This setting allows for setting the current document to category mode.
<br>
A document with category mode toggled on will have most of its fields hidden and will not show in any other relationship searches except for "Belongs under".
`,
sizing: 3
},
{
id: "order",
name: "Order number",
type: "number",
icon: "mdi-file-tree",
tooltip:
`In case the default sorting via alphabet in the hierarchical tree on the left is inadequite for your needs, this field allows you to fill custom numbers to order by that get placed before the default alphabetical order.
<br>It is heavily suggested to "pad-out" the custom order numbers by writing for example 100 (or least 10) instead of 1.
<br>This allows for extra "padding" between the items in case a new one needs to be added in the middle without needing to redo the custom order on all documents.
`,
sizing: 3
},
{
id: "tags",
name: "Tags",
type: "tags",
icon: "mdi-tag",
tooltip:
`Tags are used to sort the same (or even different) document types into a custom groups based on your needs.
<br>
A document may have any number of tags, but each tag can be present only once.
<br>
This limitation also applies to any variation of lower or upper case iterations of the same tag.
<br>
Example: A tag called "Player Party" will be considered the same tag as "player party", "PlAyER PaRtY" or anything similar.
`,
sizing: 12
},
{
id: "otherNames",
name: "Other Names & Epithets",
type: "list",
icon: "mdi-book-plus",
sizing: 12
},
{
id: "categoryDescription",
name: "Category description",
type: "wysiwyg",
icon: "mdi-folder-edit-outline",
sizing: 12
},
{
id: "breakBasic",
name: "Basic information",
type: "break",
sizing: 12
},
{
id: "statsListRequired",
name: "Stats/Attributes required",
type: "list",
icon: "mdi-sword",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{
id: "statsListProvided",
name: "Stats/Attributes provided",
type: "list",
icon: "mdi-sword",
sizing: 12,
predefinedListExtras: {
reverse: true,
affix: "Stat/Attribute",
extraSelectValueList: RPGSystemsStats
}
},
{
id: "traits",
name: "Unique/Defining Features",
type: "list",
icon: "mdi-guy-fawkes-mask",
sizing: 6
},
{
id: "levelSkill",
name: "Complexity to use",
type: "multiSelect",
icon: "mdi-meditation",
sizing: 3,
tooltip: "This field determines how complex is this Skill/Spell/Other to learn/use.",
predefinedSelectValues: [
"Trainee",
"Apprentice",
"Capable",
"Advanced",
"Expert",
"Master",
"Grand-master",
"Genius",
"Prodigy",
"Off-the-scale"
]
},
{
id: "typeSkill",
name: "Type",
type: "multiSelect",
icon: "fas fa-hand-sparkles",
sizing: 3,
predefinedSelectValues: [
"Ability",
"Athletic skill",
"Blessing",
"Crafting skill",
"Creative ability",
"Curse",
"Destructive ability",
"Feature/Feat",
"Fighting skill",
"Magical skill",
"Martial skill",
"Mental skill",
"Passive ability",
"Physical skill",
"Production skill",
"Psychic skill",
"Skill",
"Spell",
"Other"
]
},
{
id: "pairedSkills",
name: "Related Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "pairedSkills"
}
},
{
id: "prerequisiteSkills",
name: "Prerequisites Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "postrequisiteSkills"
}
},
{
id: "postrequisiteSkills",
name: "Required by Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "skills",
connectedField: "prerequisiteSkills"
}
},
{
id: "pairedItemsCommon",
name: "Commonly used with Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
tooltip: "This field is meant for things like swords for sword fighting.",
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedSkillsCommon"
}
},
{
id: "pairedItemsUsing",
name: "Items capable of using this Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
tooltip: "This field is meant for items like a fire-wand that allow one to cast fireballs.",
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedSkillsUsing"
}
},
{
id: "pairedItemsRequire",
name: "Required Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedSkillsRequire"
}
},
{
id: "pairedItemsCreate",
name: "Created Items",
type: "manyToManyRelationship",
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedSkillsCreate"
}
},
{
id: "pairedConnectedProfessions",
name: "Commonly used by Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "pairedConnectedSkills"
}
},
{
id: "relatedCultures",
name: "Connected to Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 6,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "pairedSkills"
}
},
{
id: "pairedResourcesRequire",
name: "Required Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedResourcesRequire"
}
},
{
id: "pairedResourcesCreate",
name: "Created Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedResourcesCreate"
}
},
{
id: "pairedConditionsPositive",
name: "Causing following Boons",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedSkillsPositive"
}
},
{
id: "pairedConditionsNegative",
name: "Causing following Afflictions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedSkillsNegative"
}
},
{
id: "pairedConditionsOther",
name: "Causing following Other conditions",
type: "manyToManyRelationship",
icon: "mdi-virus",
sizing: 4,
relationshipSettings: {
connectedObjectType: "conditions",
connectedField: "pairedSkillsOther"
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
id: "traditions",
name: "Traditions & customs connected to the Skill/Spell/other",
type: "wysiwyg",
sizing: 12
},
{
id: "breakStory",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedSkills"
}
},
{
id: "pairedMyths",
name: "Connected to Myths/Legends/Stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedSkills"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break",
sizing: 12
},
{
id: "pairedCharacterSkills",
name: "Connected to Characters",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 4,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedSkills"
},
tooltip:
`This field is meant to be used as a way to connect people like inventors, famous users or similar to the skill/spell.
<br>
For everyday users, please consider using the designated one-way relationships in the character document type.
`
},
{
id: "pairedLocationsSkills",
name: "Connected to Locations/Geography",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedSkills"
}
},
{
id: "pairedRacesSkills",
name: "Connected to Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "pairedSkills"
}
},
{
id: "pairedEventSkills",
name: "Skills/Other connected to Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedSkills"
},
tooltip:
`Use this field to connect non-magical skills or other abilites to events.
`
},
{
id: "pairedEventSpells",
name: "Spells connected to Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedSpells"
},
tooltip:
`Use this field to connect magical skills or other abilites to events.
`
},
{
id: "breakGroups",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedPoliticalGroupsSkills",
name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 4,
relationshipSettings: {
connectedObjectType: "politicalGroups",
connectedField: "pairedSkills"
}
},
{
id: "pairedReligiousGroupsSkills",
name: "Connected to Teachings/Religious groups",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 4,
relationshipSettings: {
connectedObjectType: "religions",
connectedField: "pairedSkills"
}
},
{
id: "pairedOtherGroupsSkills",
name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship",
icon: "mdi-account-group",
sizing: 4,
relationshipSettings: {
connectedObjectType: "guilds",
connectedField: "pairedSkills"
}
},
{
id: "pairedMagicGroupsSkills",
name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedSkills"
}
},
{
id: "pairedTechGroupsSkills",
name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
connectedField: "pairedSkills"
}
}
]
}

View file

@ -33,12 +33,11 @@ export const saveDocument = async (
// eslint-disable-next-line @typescript-eslint/no-unsafe-call // eslint-disable-next-line @typescript-eslint/no-unsafe-call
const currentBlueprint: {extraFields: I_ExtraFields[]} = vueInstance.SGET_blueprint(document.type) const currentBlueprint: {extraFields: I_ExtraFields[]} = vueInstance.SGET_blueprint(document.type)
window.FA_dbs[document.type] = new PouchDB(document.type) window.FA_dbs[document.type] = new PouchDB(document.type)
const CurrentObjectDB = window.FA_dbs[document.type]
let currentDocument = false as unknown as I_OpenedDocument let currentDocument = false as unknown as I_OpenedDocument
try { try {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call // eslint-disable-next-line @typescript-eslint/no-unsafe-call
currentDocument = await CurrentObjectDB.get(document._id) currentDocument = await window.FA_dbs[document.type].get(document._id)
} }
catch (error) { catch (error) {
// console.log("Creating new document") // console.log("Creating new document")
@ -55,6 +54,12 @@ export const saveDocument = async (
allOpenedDocuments = allOpenedDocuments.filter(doc => doc._id !== document._id) allOpenedDocuments = allOpenedDocuments.filter(doc => doc._id !== document._id)
const listOfNewDocuments: {
name: string
id: string
type: string
}[] = []
// Handle single document autogeneration // Handle single document autogeneration
const single_relationshipTypesAutoGeneration = ["singleToNoneRelationship", "singleToSingleRelationship", "singleToManyRelationship"] const single_relationshipTypesAutoGeneration = ["singleToNoneRelationship", "singleToSingleRelationship", "singleToManyRelationship"]
const single_allRelationshipFieldsAutoGeneration = documentCopy.extraFields.filter(field => { const single_allRelationshipFieldsAutoGeneration = documentCopy.extraFields.filter(field => {
@ -67,81 +72,100 @@ export const saveDocument = async (
const fieldValue = field.value?.value const fieldValue = field.value?.value
if (fieldValue?.isAutoGenerated) { if (fieldValue?.isAutoGenerated) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call // Check if the document already exists
const pairedBlueprint: I_Blueprint = vueInstance.SGET_blueprint(fieldValue.type) const alreadyCreated = listOfNewDocuments.find(e => {
return (e.name === fieldValue.label && e.type === fieldValue.type)
})
const newDocument = { // If new document
bgColor: undefined, if (!alreadyCreated) {
color: undefined, listOfNewDocuments.push({
extraFields: [ name: fieldValue.label,
id: fieldValue.id,
type: fieldValue.type
})
{ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
id: "name", const pairedBlueprint: I_Blueprint = vueInstance.SGET_blueprint(fieldValue.type)
value: fieldValue.label
}, const newDocument = {
{ bgColor: undefined,
id: "parentDoc", color: undefined,
value: "" extraFields: [
},
{ {
id: "documentColor", id: "name",
value: "" value: fieldValue.label
}, },
{ {
id: "documentBackgroundColor", id: "parentDoc",
value: "" value: ""
}, },
{ {
id: "finishedSwitch", id: "documentColor",
value: "" value: ""
}, },
{ {
id: "minorSwitch", id: "documentBackgroundColor",
value: "" value: ""
}, },
{ {
id: "deadSwitch", id: "finishedSwitch",
value: "" value: ""
}, },
{ {
id: "categorySwitch", id: "minorSwitch",
value: "" value: ""
}, },
{ {
id: "order", id: "deadSwitch",
value: "" value: ""
}, },
{ {
id: "tags", id: "categorySwitch",
value: [] value: ""
}, },
{ {
id: "categoryDescription", id: "order",
value: "" value: ""
}, },
{ {
id: "otherNames", id: "tags",
value: [] value: []
} },
], {
hierarchicalPath: pairedBlueprint.namePlural, id: "categoryDescription",
icon: pairedBlueprint.icon, value: ""
id: fieldValue.id, },
type: fieldValue.type, {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions id: "otherNames",
url: `/project/display-content/${fieldValue.type}/${fieldValue.id}`, value: []
_id: fieldValue.id }
],
hierarchicalPath: pairedBlueprint.namePlural,
icon: pairedBlueprint.icon,
id: fieldValue.id,
type: fieldValue.type,
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
url: `/project/display-content/${fieldValue.type}/${fieldValue.id}`,
_id: fieldValue.id
}
// @ts-ignore
window.FA_dbs[newDocument.type] = new PouchDB(newDocument.type)
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
await window.FA_dbs[newDocument.type].put(newDocument)
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
vueInstance.SSET_addDocument({ doc: vueInstance.mapShortDocument(newDocument, vueInstance.SGET_allDocumentsByType(newDocument.type).docs) })
}
// If already created document
else {
fieldValue.id = alreadyCreated.id
fieldValue._id = alreadyCreated.id
} }
// @ts-ignore
window.FA_dbs[newDocument.type] = new PouchDB(newDocument.type)
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
await window.FA_dbs[newDocument.type].put(newDocument)
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
vueInstance.SSET_addDocument({ doc: vueInstance.mapShortDocument(newDocument, vueInstance.SGET_allDocumentsByType(newDocument.type).docs) })
delete (fieldValue.isAutoGenerated) delete (fieldValue.isAutoGenerated)
} }
@ -218,77 +242,96 @@ export const saveDocument = async (
if (Array.isArray(fieldArray)) { if (Array.isArray(fieldArray)) {
for (const fieldValue of fieldArray) { for (const fieldValue of fieldArray) {
if (fieldValue?.isAutoGenerated) { if (fieldValue?.isAutoGenerated) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call // Check if the document already exists
const pairedBlueprint: I_Blueprint = vueInstance.SGET_blueprint(fieldValue.type) const alreadyCreated = listOfNewDocuments.find(e => {
return (e.name === fieldValue.label && e.type === fieldValue.type)
})
const newDocument = { // If new document
bgColor: undefined, if (!alreadyCreated) {
color: undefined, listOfNewDocuments.push({
extraFields: [ name: fieldValue.label,
id: fieldValue.id,
type: fieldValue.type
})
{ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
id: "name", const pairedBlueprint: I_Blueprint = vueInstance.SGET_blueprint(fieldValue.type)
value: fieldValue.label
}, const newDocument = {
{ bgColor: undefined,
id: "parentDoc", color: undefined,
value: "" extraFields: [
},
{ {
id: "documentColor", id: "name",
value: "" value: fieldValue.label
}, },
{ {
id: "documentBackgroundColor", id: "parentDoc",
value: "" value: ""
}, },
{ {
id: "finishedSwitch", id: "documentColor",
value: "" value: ""
}, },
{ {
id: "minorSwitch", id: "documentBackgroundColor",
value: "" value: ""
}, },
{ {
id: "deadSwitch", id: "finishedSwitch",
value: "" value: ""
}, },
{ {
id: "categorySwitch", id: "minorSwitch",
value: "" value: ""
}, },
{ {
id: "order", id: "deadSwitch",
value: "" value: ""
}, },
{ {
id: "tags", id: "categorySwitch",
value: [] value: ""
}, },
{ {
id: "categoryDescription", id: "order",
value: "" value: ""
} },
], {
hierarchicalPath: pairedBlueprint.namePlural, id: "tags",
icon: pairedBlueprint.icon, value: []
id: fieldValue.id, },
type: fieldValue.type, {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions id: "categoryDescription",
url: `/project/display-content/${fieldValue.type}/${fieldValue.id}`, value: ""
_id: fieldValue.id }
],
hierarchicalPath: pairedBlueprint.namePlural,
icon: pairedBlueprint.icon,
id: fieldValue.id,
type: fieldValue.type,
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
url: `/project/display-content/${fieldValue.type}/${fieldValue.id}`,
_id: fieldValue.id
}
// @ts-ignore
window.FA_dbs[newDocument.type] = new PouchDB(newDocument.type)
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
await window.FA_dbs[newDocument.type].put(newDocument)
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
vueInstance.SSET_addDocument({ doc: vueInstance.mapShortDocument(newDocument, vueInstance.SGET_allDocumentsByType(newDocument.type).docs) })
}
// If already created document
else {
fieldValue.id = alreadyCreated.id
fieldValue._id = alreadyCreated.id
} }
// @ts-ignore
window.FA_dbs[newDocument.type] = new PouchDB(newDocument.type)
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
await window.FA_dbs[newDocument.type].put(newDocument)
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
vueInstance.SSET_addDocument({ doc: vueInstance.mapShortDocument(newDocument, vueInstance.SGET_allDocumentsByType(newDocument.type).docs) })
delete (fieldValue.isAutoGenerated) delete (fieldValue.isAutoGenerated)
} }
@ -349,7 +392,7 @@ export const saveDocument = async (
// Save the document // Save the document
// eslint-disable-next-line @typescript-eslint/no-unsafe-call // eslint-disable-next-line @typescript-eslint/no-unsafe-call
await CurrentObjectDB.put(documentCopy) await window.FA_dbs[document.type].put(documentCopy)
// Set edit mode for frontend // Set edit mode for frontend
documentCopy.editMode = editModeAfterSave documentCopy.editMode = editModeAfterSave

View file

@ -29,13 +29,16 @@ export const single_changeRelationshipToAnotherObject = async (
if (previousValue && typeof currentValue !== "string" && currentValue) { if (previousValue && typeof currentValue !== "string" && currentValue) {
if (fieldType === "singleToSingleRelationship") { if (fieldType === "singleToSingleRelationship") {
updatedDocuments.push(await single_removeRelationshipFromAnotherObject(currentValue, previousValue)) const updatedDocument = await single_removeRelationshipFromAnotherObject(currentValue, previousValue)
if (updatedDocument) {
updatedDocuments.push(updatedDocument)
}
updatedDocuments.push(await single_addRelationshipToAnotherObject(field, currentValue, currentDocument)) updatedDocuments.push(await single_addRelationshipToAnotherObject(field, currentValue, currentDocument))
} }
if (fieldType === "singleToManyRelationship") { if (fieldType === "singleToManyRelationship") {
const removedValued = await many_removeRelationshipFromAnotherObject(previousValue, currentDocument) const removedValues = await many_removeRelationshipFromAnotherObject(previousValue, currentDocument)
if (removedValued) { if (removedValues) {
updatedDocuments.push(removedValued) updatedDocuments.push(removedValues)
} }
updatedDocuments.push(await many_addRelationshipToAnotherObject(field, currentValue, currentDocument)) updatedDocuments.push(await many_addRelationshipToAnotherObject(field, currentValue, currentDocument))
} }
@ -43,12 +46,15 @@ export const single_changeRelationshipToAnotherObject = async (
if ((previousValue && typeof currentValue === "string") || (previousValue && !currentValue)) { if ((previousValue && typeof currentValue === "string") || (previousValue && !currentValue)) {
if (fieldType === "singleToSingleRelationship") { if (fieldType === "singleToSingleRelationship") {
updatedDocuments.push(await single_removeRelationshipFromAnotherObject(currentValue, previousValue)) const updatedDocument = await single_removeRelationshipFromAnotherObject(currentValue, previousValue)
if (updatedDocument) {
updatedDocuments.push(updatedDocument)
}
} }
if (fieldType === "singleToManyRelationship") { if (fieldType === "singleToManyRelationship") {
const removedValued = await many_removeRelationshipFromAnotherObject(previousValue, currentDocument) const removedValues = await many_removeRelationshipFromAnotherObject(previousValue, currentDocument)
if (removedValued) { if (removedValues) {
updatedDocuments.push(removedValued) updatedDocuments.push(removedValues)
} }
} }
} }
@ -108,9 +114,16 @@ export const single_removeRelationshipFromAnotherObject = async (
const typeToFind = previousValue.type const typeToFind = previousValue.type
const idToFind = previousValue._id const idToFind = previousValue._id
window.FA_dbs[typeToFind] = new PouchDB(typeToFind) let pairedDocument = false as unknown as I_OpenedDocument
// eslint-disable-next-line @typescript-eslint/no-unsafe-call try {
const pairedDocument = await window.FA_dbs[typeToFind].get(idToFind) as I_OpenedDocument window.FA_dbs[typeToFind] = new PouchDB(typeToFind)
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
pairedDocument = await window.FA_dbs[typeToFind].get(idToFind)
}
catch (error) {
return pairedDocument
}
const pairedField = previousValue.pairedField const pairedField = previousValue.pairedField
const pairedFieldIndex = pairedDocument.extraFields.findIndex(e => e.id === pairedField) const pairedFieldIndex = pairedDocument.extraFields.findIndex(e => e.id === pairedField)
@ -153,23 +166,21 @@ export const many_changeRelationshipToAnotherObject = async (
for (const removedValue of removedValues) { for (const removedValue of removedValues) {
if (fieldType === "manyToManyRelationship") { if (fieldType === "manyToManyRelationship") {
const removedValued = await many_removeRelationshipFromAnotherObject(removedValue, currentDocument) const removedValues = await many_removeRelationshipFromAnotherObject(removedValue, currentDocument)
if (removedValued) { if (removedValues) {
updatedDocuments.push(removedValued) updatedDocuments.push(removedValues)
} }
} }
if (fieldType === "manyToSingleRelationship") { if (fieldType === "manyToSingleRelationship") {
// @ts-ignore // @ts-ignore
const removedValued = await single_removeRelationshipFromAnotherObject(removedValue, {}) const removedValues = await single_removeRelationshipFromAnotherObject(removedValue, {})
if (removedValued) { if (removedValues) {
updatedDocuments.push(removedValued) updatedDocuments.push(removedValues)
} }
} }
} }
// console.log(updatedDocuments)
await BlueprintsDB.close() await BlueprintsDB.close()
return updatedDocuments return updatedDocuments
@ -238,10 +249,11 @@ export const many_removeRelationshipFromAnotherObject = async (
const typeToFind = previousValue.type const typeToFind = previousValue.type
const idToFind = previousValue._id const idToFind = previousValue._id
const PairedObjectDB = new PouchDB(typeToFind)
let pairedDocument = false as unknown as I_OpenedDocument let pairedDocument = false as unknown as I_OpenedDocument
try { try {
pairedDocument = await PairedObjectDB.get(idToFind) window.FA_dbs[typeToFind] = new PouchDB(typeToFind)
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
pairedDocument = await window.FA_dbs[typeToFind].get(idToFind)
} }
catch (e) { catch (e) {
return pairedDocument return pairedDocument
@ -257,7 +269,7 @@ export const many_removeRelationshipFromAnotherObject = async (
currentValues.splice(indexToRemove, 1) currentValues.splice(indexToRemove, 1)
pairedDocument.extraFields[pairedFieldIndex].value.value = currentValues pairedDocument.extraFields[pairedFieldIndex].value.value = currentValues
await PairedObjectDB.put(pairedDocument) // eslint-disable-next-line @typescript-eslint/no-unsafe-call
await window.FA_dbs[typeToFind].put(pairedDocument)
return pairedDocument return pairedDocument
} }

View file

@ -1,24 +1,29 @@
## THE GM BATCH START - 0.1.7 ## THE GM BATCH START - 0.1.7
- Add category for diseases/curses/etc - Add "Predecessors", "Successors", "Date of start", "Date of end" and "How long it lasted" fields to locations and all other groups
- Add category for classes/occupations
- Add category for skill/spells, edit magic and tech category - Add setting to hide labels in document preview/view
- Add category for materials/resources OR adapt Items category - Add legacy field support & options
- Add toggle for "Simple/Complex conditions" to show only one field for conditions
- "Toggle dev tools" keybind
- "Save all" keybind and "Save all and exit" option on the exiting
- "Save and tick as finished" keybind
- Export for MD/PDF/ODT/DOCX - Export for MD/PDF/ODT/DOCX
- "Save all" keybind and "Save all and exit" option on the exiting
## THE GM BATCH END - 0.1.7 ## THE GM BATCH END - 0.1.7
## PROJECT SETTINGS BATCH 1 START - 0.1.8 ## PROJECT SETTINGS BATCH 1 START - 0.1.8
- Add `SHIFT + ENTER` add mode to relationship searches to add documents without deleting the entered text
- Pin document preview floating window
- Project setting dialog/options - Project setting dialog/options
- Project rename - Project rename
- List of last saved documents on project overview - List of last saved documents on project overview
- Add option for project graph to filter out categories or show them separately - Add option for project graph to filter out categories or show them separately
- Add "Predecessors", "Successors", "Date of start", "Date of end" and "How long it lasted" fields to locations and all other groups
- Selective export per field basis - Selective export per field basis
- Templates for exports - Templates for exports
@ -31,9 +36,10 @@
- Rename tag (resaves all docs with new tag) - Rename tag (resaves all docs with new tag)
- New text editor (TipTap2)? - New text editor (TipTap2)?
- Add description tabs - Simple @ mentions
- Word count for editor fields - Add description tabs
- Try to get field titles to show in full-screen edit of text editor fields - Word count for editor fields
- Try to get field titles to show in full-screen edit of text editor fields
## PROJECT SETTINGS BATCH 1 START - 0.1.8 ## PROJECT SETTINGS BATCH 1 START - 0.1.8
@ -58,6 +64,8 @@
- Allow/Disallow default document types - Allow/Disallow default document types
- Custom order document types - Custom order document types
- Custom modules/reorganizing of them
- Hiding of individual fields for individual document types
- Add Colors, Renaming and Hiding to default document types per project settings - Add Colors, Renaming and Hiding to default document types per project settings
- Pinned tabs (save through program closing) - Pinned tabs (save through program closing)