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()
// Load the popup hint on start
// Load the popup hint on
this.loadHintPopup()
// React to keybind presses

View file

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

View file

@ -68,7 +68,7 @@
@mouseleave="setDocumentPreviewClose"
>
<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"
:custom-anchor="'center right'"
:custom-self="'center left'"
@ -76,11 +76,12 @@
/>
<div class="documentLabel"
:class="{'text-satin-sheen-gold-bright-imp': prop.node.isModule, 'text-weight-bold': prop.node.isModule}"
:style="`color: ${prop.node.color};`"
>
<q-icon
: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"
class="q-mr-sm self-center" />
<span v-if="prop.node.isDead" class="documentLabel__isDeadMarker"></span>
@ -120,7 +121,7 @@
<div class="treeButtonGroup">
<q-btn
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
flat
dense
@ -138,7 +139,7 @@
</q-btn>
<q-btn
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
flat
dense
@ -156,7 +157,7 @@
</q-btn>
<q-btn
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
flat
dense
@ -180,7 +181,7 @@
<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-section>Expand all under this node</q-item-section>
<q-item-section avatar>
@ -195,7 +196,7 @@
</q-item>
</template>
<template v-if="prop.node.isRoot">
<template v-if="prop.node.isRoot && !prop.node.isModule">
<q-separator dark />
<q-item clickable v-close-popup @click="addNewObjectRoute(prop.node)">
<q-item-section>Add new document of type: {{prop.node.label}}</q-item-section>
@ -205,7 +206,7 @@
</q-item>
</template>
<template v-if="!prop.node.isRoot">
<template v-if="!prop.node.isRoot && !prop.node.isModule">
<q-separator dark />
<q-item clickable v-close-popup @click="copyName(prop.node)">
<q-item-section>Copy name</q-item-section>
@ -603,6 +604,11 @@ export default class ObjectTree extends BaseClass {
buildCurrentObjectTree () {
this.hierarchicalTree = []
const moduleCategories: {
label: string
maxOrder: number
}[] = []
const allBlueprings = this.SGET_allBlueprints
let treeObject: any[] = []
@ -665,6 +671,7 @@ export default class ObjectTree extends BaseClass {
handler: this.addNewObjectRoute,
specialLabel: blueprint.nameSingular.toLowerCase(),
isRoot: true,
cat: blueprint.category,
allCount: allCount,
documentCount: documentCount,
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)
}
@ -698,6 +717,18 @@ export default class ObjectTree extends BaseClass {
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) {
const tagList = tagListBuildFromBlueprints(this.SGET_allDocuments.docs)
@ -763,12 +794,32 @@ export default class ObjectTree extends BaseClass {
]
}
if (this.tagsAtTop) {
treeObject = [...tagNodeList, ...treeObject]
}
else {
treeObject = [...treeObject, ...tagNodeList]
}
treeObject = [...tagNodeList, ...treeObject]
}
treeObject = [
...(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
@ -777,6 +828,8 @@ export default class ObjectTree extends BaseClass {
this.hierarchicalTree = treeObject
}
firstTimeRender = true
recursivelyFreezeChildren (children: {children: []}) {
Object.freeze(children)
if (children.children) {
@ -926,9 +979,10 @@ export default class ObjectTree extends BaseClass {
type: string
isRoot: boolean
isTag: boolean
isModule: boolean
specialLabel: string|boolean
}) {
if (node.isRoot && node.isTag) {
if ((node.isRoot && node.isTag) || node.isModule) {
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
return (node?.isTag) ? colors.getBrand("primary") : node.color
return (node?.isTag || node?.isModule) ? colors.getBrand("primary") : node.color
}
collapseAllNodes (node: {key: string, children: []}) {
@ -1214,6 +1268,10 @@ export default class ObjectTree extends BaseClass {
justify-content: space-between;
padding: 4px 4px 4px 25px;
align-items: center;
&__content {
word-break: break-word;
}
}
.treeButtonGroup {

View file

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

View file

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

View file

@ -1,13 +1,15 @@
<template>
<div>
<div class="flex justify-start items-center 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"/>
{{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 class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
<div class="documentLabelContent">
{{inputDataBluePrint.name}}
</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
@ -42,6 +44,9 @@
</template>
<template v-slot:append>
<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-color
@input="processInput"

View file

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

View file

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

View file

@ -1,13 +1,15 @@
<template>
<div>
<div class="flex justify-start items-center 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"/>
{{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 class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
<div class="documentLabelContent">
{{inputDataBluePrint.name}}
</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

View file

@ -1,13 +1,15 @@
<template>
<div>
<div class="flex justify-start items-center 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"/>
{{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 class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
<div class="documentLabelContent">
{{inputDataBluePrint.name}}
</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

View file

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

View file

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

View file

@ -1,13 +1,15 @@
<template>
<div>
<div class="flex justify-start items-center 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"/>
{{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 class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
<div class="documentLabelContent">
{{inputDataBluePrint.name}}
</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>
<div v-if="!editMode && localInput">

View file

@ -1,13 +1,15 @@
<template>
<div>
<div class="flex justify-start items-center 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"/>
{{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 class="documentLabelWrapper text-weight-bolder q-mb-sm q-mt-md">
<q-icon v-if="inputIcon" :name="inputIcon" :size="(inputIcon.includes('fas') || inputIcon.includes('fab'))? '15px': '20px'" class="documentLabelIcon"/>
<div class="documentLabelContent">
{{inputDataBluePrint.name}}
</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>
<div

View file

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

View file

@ -2,7 +2,7 @@
<div>
<div class="flex justify-center items-center text-weight-bolder q-mb-sm q-mt-md fieldWysiwygTitle">
<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}}
<q-icon v-if="toolTip && !disableDocumentToolTips" name="mdi-help-circle" size="16px" class="q-ml-md">
<q-tooltip :delay="500">
@ -10,7 +10,6 @@
</q-tooltip>
</q-icon>
</span>
</div>
<div

View file

@ -659,3 +659,36 @@ body .q-tooltip {
position: relative;
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;
}
.text-#{$name}-imp {
color: $color !important;
}
.bg-#{$name} {
background-color: $color;
}
.bg-#{$name}-imp {
background-color: $color !important;
}
}

View file

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

View file

@ -7,8 +7,8 @@
### Known issues
- Creating a brand new project can sometimes get stuck. Restarting the app fixes this.
- Importing existing 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 very occasionally get stuck. Restarting the app fixes this.
### Bugfixes & Optimizations
@ -16,14 +16,20 @@
- 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 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
- **Added on-the-fly relationship documents generation**
- **Added stat/attribute support for multiple RPG systems**
- **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 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 option: Prevent filled note board showing
- 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
- 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
- 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
@ -148,7 +156,7 @@
### 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 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
@ -493,8 +501,8 @@
- Renamed "Lore notes" to "Other/Notes" for more intuitive usage
- Renamed "Other names" to "Other names & Epithets" across all document types
- 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
- Added "Oldest known" and "Average adulthood" fields to the "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/Fauna" 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 "Titles" field in "Characters" document type

View file

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

View file

@ -118,7 +118,20 @@ export default class DocumentLayout extends BaseClass {
const allObjectBlueprints = (await retrieveAllBlueprints()).rows.map((blueprint) => {
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)
}

View file

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

View file

@ -109,7 +109,7 @@
transition-show="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
</h5>
<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 {
margin-bottom: 30px;
color: var(--q-color-dark);
}
@ -434,6 +435,8 @@ body.body--dark {
.apexcharts-canvas {
padding-bottom: 50px;
padding-left: 30px;
padding-right: 30px;
box-sizing: content-box !important;
path {
@ -441,7 +444,8 @@ body.body--dark {
}
svg {
height: 400px;
height: 425px;
overflow: visible;
}
.apexcharts-series path {
@ -450,8 +454,8 @@ body.body--dark {
}
.documentGraphParent {
min-height: 500px;
max-height: 500px;
min-height: 525px;
max-height: 525px;
overflow-x: auto;
overflow-y: hidden;
max-width: calc(100% - 110px);
@ -459,8 +463,8 @@ body.body--dark {
}
.documentGraphWrapper {
min-height: 500px;
max-height: 500px;
min-height: 525px;
max-height: 525px;
overflow: hidden;
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 { itemsBlueprint } from "src/scripts/databaseManager/blueprints/items"
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
*/
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
@ -43,7 +52,12 @@ export const engageBlueprints = async () => {
magicBlueprint,
techBlueprint,
itemsBlueprint,
guildsBlueprint
guildsBlueprint,
resourcesBlueprint,
conditionsBlueprint,
professionsBlueprint,
skillsBlueprint,
cultureBlueprint
]
/**

View file

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

View file

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

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const eventsBlueprint: I_Blueprint = {
_id: "events",
order: 16,
order: 350,
namePlural: "Events",
nameSingular: "Event",
icon: "mdi-calendar-text",
category: "World",
extraFields: [
{
id: "breakDocumentSettings",
@ -204,29 +205,18 @@ export const eventsBlueprint: I_Blueprint = {
name: "Prominent Actors",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "characters",
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",
name: "Connected to Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedEvent"
@ -237,7 +227,7 @@ export const eventsBlueprint: I_Blueprint = {
name: "Connected to other Events",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "pairedEvents"
@ -247,16 +237,62 @@ export const eventsBlueprint: I_Blueprint = {
id: "pairedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
icon: "mdi-sword",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
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",
name: "Connected to Myths/Legends",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 6,
@ -266,20 +302,14 @@ export const eventsBlueprint: I_Blueprint = {
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
sizing: 12
},
{
id: "breakGroups",
name: "Involved groups",
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "connectedPolitical",
name: "Involved Political groups",
name: "Involved Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 6,
@ -301,7 +331,7 @@ export const eventsBlueprint: I_Blueprint = {
},
{
id: "connectedReligious",
name: "Involved Religious groups",
name: "Involved Teachings/Religious groups",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 4,
@ -312,7 +342,7 @@ export const eventsBlueprint: I_Blueprint = {
},
{
id: "connectedMagical",
name: "Involved Magical groups",
name: "Involved Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -323,7 +353,7 @@ export const eventsBlueprint: I_Blueprint = {
},
{
id: "connectedTech",
name: "Involved Technological/Scientific groups",
name: "Involved Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 4,
@ -333,21 +363,67 @@ export const eventsBlueprint: I_Blueprint = {
}
},
{
id: "breakNotes",
name: "Notes",
id: "breakOther",
name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
id: "pairedSkills",
name: "Skills/Other connected to the Event",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedEvents"
connectedObjectType: "skills",
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"
export const guildsBlueprint: I_Blueprint = {
_id: "guilds",
order: 14,
order: 260,
namePlural: "Organizations/Other groups",
nameSingular: "Organization/Other group",
icon: "mdi-account-group",
category: "Groups/Teachings",
extraFields: [
{
id: "breakDocumentSettings",
@ -157,17 +158,24 @@ export const guildsBlueprint: I_Blueprint = {
name: "Headquarters",
type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations"
}
},
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{
id: "population",
name: "Member count",
type: "text",
icon: "mdi-account-group",
sizing: 3,
sizing: 2,
tooltip: "The amount of members of this group/organization."
},
{
@ -212,23 +220,12 @@ export const guildsBlueprint: I_Blueprint = {
"Other"
]
},
{
id: "localCurrencies",
name: "Used Currencies",
type: "manyToManyRelationship",
icon: "fas fa-coins",
sizing: 4,
relationshipSettings: {
connectedObjectType: "currencies",
connectedField: "usedInOtherGroups"
}
},
{
id: "localLanguages",
name: "Used Languages",
type: "manyToManyRelationship",
icon: "mdi-book-alphabet",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "languages",
connectedField: "usedInOtherGroups"
@ -236,36 +233,88 @@ export const guildsBlueprint: I_Blueprint = {
},
{
id: "connectedRaces",
name: "Common Species/Races/Flora/Faunas",
name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "races",
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",
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: "breakRelasionships",
name: "Diplomatic relationships & Influences",
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: "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",
sizing: 12
},
{
id: "governLocations",
name: "Ruled Locations",
name: "Ruled/Influenced Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
@ -285,6 +334,28 @@ export const guildsBlueprint: I_Blueprint = {
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",
name: "Connected Characters",
@ -329,6 +400,12 @@ export const guildsBlueprint: I_Blueprint = {
connectedField: "pairedEnemyOtherGroups"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPolGroups",
name: "Connected Ideologies/Political groups",
@ -431,7 +508,7 @@ export const guildsBlueprint: I_Blueprint = {
{
id: "pairedConnectedMagicalGroups",
name: "Connected Spells/Magical groups",
name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -442,7 +519,7 @@ export const guildsBlueprint: I_Blueprint = {
},
{
id: "pairedAllyMagicalGroups",
name: "Allied Spells/Magical groups",
name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -453,7 +530,7 @@ export const guildsBlueprint: I_Blueprint = {
},
{
id: "pairedEnemyMagicalGroups",
name: "Enemy Spells/Magical groups",
name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -496,59 +573,53 @@ export const guildsBlueprint: I_Blueprint = {
}
},
{
id: "breakOther",
name: "Other details",
id: "breakDetails",
name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "connectedEvents",
name: "Connected Events",
id: "pairedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedOtherGroups"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedOtherGroups"
connectedObjectType: "skills",
connectedField: "pairedOtherGroupsSkills"
}
},
{
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedOtherGroups"
}
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
id: "pairedConnectedProfessions",
name: "Connected to Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "pairedConnectedOtherGroups"
}
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
id: "pairedConditions",
name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedOtherGroups"
connectedObjectType: "conditions",
connectedField: "pairedOtherGroups"
}
}
]

View file

@ -2,11 +2,36 @@ import { RPGSystemsStats } from "./../extraFieldLists/RPGSystemsStats"
import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const itemsBlueprint: I_Blueprint = {
_id: "items",
order: 9,
order: 170,
namePlural: "Items",
nameSingular: "Item",
icon: "mdi-sword-cross",
icon: "mdi-sword",
category: "Details",
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",
name: "Document settings",
@ -17,7 +42,7 @@ export const itemsBlueprint: I_Blueprint = {
id: "name",
name: "Name",
type: "text",
icon: "mdi-sword-cross",
icon: "mdi-sword",
sizing: 3
},
{
@ -153,23 +178,11 @@ export const itemsBlueprint: I_Blueprint = {
type: "break",
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",
name: "Prominent features",
type: "list",
icon: "mdi-sword-cross",
icon: "mdi-guy-fawkes-mask",
sizing: 12,
predefinedListExtras: {
affix: "Note",
@ -179,23 +192,34 @@ export const itemsBlueprint: I_Blueprint = {
},
{
id: "pairedItems",
name: "Connected to other Items",
name: "Related to other Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 6,
icon: "mdi-sword",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedItems"
}
},
{
id: "pairedMagic",
name: "Capable of utilizing Spells/Magic",
id: "pairedConnectedProfessions",
name: "Commonly used by Occupations/Classes",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
icon: "fab fa-pied-piper-hat",
sizing: 4,
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"
}
},
@ -226,26 +250,39 @@ export const itemsBlueprint: I_Blueprint = {
name: "Cost in different Currencies",
type: "manyToNoneRelationship",
icon: "fas fa-coins",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "currencies"
}
},
{
id: "pairedCurrencies",
name: "Connected to Currencies",
id: "pairedResourcesMade",
name: "Resources/Materials the Item is made off",
type: "manyToManyRelationship",
icon: "fas fa-coins",
sizing: 6,
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "currencies",
connectedField: "pairedItems"
connectedObjectType: "resources",
connectedField: "pairedItemMade"
}
},
{
id: "pairedResourcesProduced",
name: "Resources/Materials the Item produces",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 4,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedItemProduced"
}
},
{
id: "description",
name: "Description & History",
type: "wysiwyg",
icon: "mdi-book-open-page-variant-outline",
sizing: 12
},
{
@ -255,17 +292,147 @@ export const itemsBlueprint: I_Blueprint = {
sizing: 12
},
{
id: "breakRelasionships",
name: "Involved with characters and groups/institutions",
id: "breakStats",
name: "Stats, Skills & Other details",
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: "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",
name: "Connected to Characters",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedConnectedItems"
@ -276,7 +443,7 @@ export const itemsBlueprint: I_Blueprint = {
name: "Connected to Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "pairedConnectedItems"
@ -284,21 +451,28 @@ export const itemsBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedRaces",
name: "Connected to Species/Races/Flora/Faunas",
name: "Connected to Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "pairedConnectedItems"
}
},
{
id: "breakWorld",
name: "Connections - World",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPolGroups",
name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "politicalGroups",
connectedField: "pairedConnectedItems"
@ -309,7 +483,7 @@ export const itemsBlueprint: I_Blueprint = {
name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship",
icon: "mdi-account-group",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "guilds",
connectedField: "pairedConnectedItems"
@ -328,10 +502,10 @@ export const itemsBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedMagicGroups",
name: "Connected to Magic/Spells",
name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedConnectedItems"
@ -339,31 +513,14 @@ export const itemsBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedTechGroups",
name: "Connected to Technology/Science",
name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
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"
export const languagesBlueprint: I_Blueprint = {
_id: "languages",
order: 8,
order: 330,
namePlural: "Languages",
nameSingular: "Language",
icon: "mdi-book-alphabet",
category: "World",
extraFields: [
{
id: "breakDocumentSettings",
@ -205,8 +206,37 @@ export const languagesBlueprint: I_Blueprint = {
sizing: 12
},
{
id: "breakSpeakers",
name: "Speakers, groups and areas connected to the language",
id: "breakNotes",
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",
sizing: 12
},
@ -221,17 +251,6 @@ export const languagesBlueprint: I_Blueprint = {
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",
name: "Spoken in Locations",
@ -243,6 +262,24 @@ export const languagesBlueprint: I_Blueprint = {
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",
name: "Spoken in Ideologies/Political groups",
@ -297,23 +334,6 @@ export const languagesBlueprint: I_Blueprint = {
connectedObjectType: "tech",
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"
export const locationsBlueprint: I_Blueprint = {
_id: "locations",
order: 17,
order: 360,
namePlural: "Locations/Geography",
nameSingular: "Location/Geography",
icon: "mdi-map-marker-radius",
category: "World",
extraFields: [
{
id: "breakDocumentSettings",
@ -153,15 +154,11 @@ export const locationsBlueprint: I_Blueprint = {
sizing: 12
},
{
id: "connectedLocations",
name: "Connected Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "connectedLocations"
}
id: "traits",
name: "Unusual features/Traits",
type: "list",
icon: "mdi-guy-fawkes-mask",
sizing: 4
},
{
id: "locationType",
@ -233,22 +230,61 @@ export const locationsBlueprint: I_Blueprint = {
}
},
{
id: "traits",
name: "Unusual features/Traits",
type: "list",
icon: "mdi-guy-fawkes-mask",
sizing: 4
id: "relatedCultures",
name: "Local Cultures/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
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",
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
},
{
@ -259,7 +295,7 @@ export const locationsBlueprint: I_Blueprint = {
},
{
id: "pairedOriginCharacters",
name: "Characters originated from location",
name: "Characters originated from the location",
type: "manyToSingleRelationship",
icon: "mdi-account",
sizing: 4,
@ -270,7 +306,7 @@ export const locationsBlueprint: I_Blueprint = {
},
{
id: "pairedCurrentCharacters",
name: "Characters currently living in location",
name: "Characters currently living in the location",
type: "manyToSingleRelationship",
icon: "mdi-account",
sizing: 4,
@ -303,7 +339,7 @@ export const locationsBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedRaces",
name: "Local Species/Races/Flora/Faunas",
name: "Local Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 6,
@ -312,9 +348,112 @@ export const locationsBlueprint: I_Blueprint = {
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",
name: "Involved groups",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
@ -365,7 +504,7 @@ export const locationsBlueprint: I_Blueprint = {
{
id: "governReligious",
name: "Governing Religious groups",
name: "Governing Teachings/Religious groups",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 6,
@ -376,7 +515,7 @@ export const locationsBlueprint: I_Blueprint = {
},
{
id: "connectedReligious",
name: "Connected Religious groups",
name: "Connected Teachings/Religious groups",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 6,
@ -387,7 +526,7 @@ export const locationsBlueprint: I_Blueprint = {
},
{
id: "governMagical",
name: "Governing Magical groups",
name: "Governing Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
@ -398,7 +537,7 @@ export const locationsBlueprint: I_Blueprint = {
},
{
id: "connectedMagical",
name: "Connected Magical groups",
name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 6,
@ -409,7 +548,7 @@ export const locationsBlueprint: I_Blueprint = {
},
{
id: "governTech",
name: "Governing Technological/Scientific groups",
name: "Governing Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 6,
@ -420,7 +559,7 @@ export const locationsBlueprint: I_Blueprint = {
},
{
id: "connectedTech",
name: "Connected Technological/Scientific groups",
name: "Connected Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 6,
@ -428,63 +567,6 @@ export const locationsBlueprint: I_Blueprint = {
connectedObjectType: "tech",
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"
export const loreNotesBlueprint: I_Blueprint = {
_id: "loreNotes",
order: 19,
order: 440,
namePlural: "Lore notes/Other notes",
nameSingular: "Lore notes/Other note",
icon: "mdi-script-text-outline",
category: "Story/Lore",
extraFields: [
{
id: "breakDocumentSettings",
@ -168,8 +169,8 @@ export const loreNotesBlueprint: I_Blueprint = {
},
{
id: "breakRelated",
name: "Connections",
id: "breakStory",
name: "Connections - Story/Lore",
type: "break",
sizing: 12
},
@ -195,6 +196,24 @@ export const loreNotesBlueprint: I_Blueprint = {
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",
name: "Connected to Characters",
@ -228,6 +247,46 @@ export const loreNotesBlueprint: I_Blueprint = {
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",
name: "Connected to Ideologies/Political groups",
@ -263,10 +322,10 @@ export const loreNotesBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedMagicGroups",
name: "Connected to Spells/Magical groups",
name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedConnectedNotes"
@ -277,20 +336,26 @@ export const loreNotesBlueprint: I_Blueprint = {
name: "Connected to Sciences/Technological groups",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
connectedField: "pairedConnectedNotes"
}
},
{
id: "pairedConnectedRaces",
name: "Connected to Species/Races/Flora/Fauna",
id: "breakDetails",
name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "pairedConnectedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedObjectType: "skills",
connectedField: "pairedConnectedNotes"
}
},
@ -298,21 +363,44 @@ export const loreNotesBlueprint: I_Blueprint = {
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
icon: "mdi-sword",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedNotes"
}
},
{
id: "localLanguages",
name: "Connected to Languages",
id: "pairedConnectedProfessions",
name: "Connected to Occupations/Classes",
type: "manyToManyRelationship",
icon: "mdi-book-alphabet",
icon: "fab fa-pied-piper-hat",
sizing: 4,
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"
}
},
@ -326,17 +414,7 @@ export const loreNotesBlueprint: I_Blueprint = {
connectedObjectType: "currencies",
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"
export const magicBlueprint: I_Blueprint = {
_id: "magic",
order: 12,
namePlural: "Spells/Magical groups",
nameSingular: "Spell/Magical group",
order: 250,
namePlural: "Schools of Magic/Magical groups",
nameSingular: "School of Magic/Magical group",
icon: "fas fa-hat-wizard",
category: "Groups/Teachings",
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",
name: "Document settings",
@ -157,19 +187,25 @@ export const magicBlueprint: I_Blueprint = {
name: "Headquarters",
type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations"
}
},
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{
id: "users",
name: "Member/User count",
type: "text",
icon: "mdi-account-group",
sizing: 3,
sizing: 2,
tooltip: "The amount of members of this political magical group."
},
{
id: "followers",
@ -185,7 +221,7 @@ export const magicBlueprint: I_Blueprint = {
name: "Leading Figures",
type: "manyToNoneRelationship",
icon: "mdi-crown",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "characters"
}
@ -195,14 +231,12 @@ export const magicBlueprint: I_Blueprint = {
name: "Type",
type: "multiSelect",
icon: "fas fa-monument",
sizing: 3,
sizing: 4,
predefinedSelectValues: [
"Magical institution",
"Magical teaching",
"Magical technique",
"Ritual",
"School of magic",
"Spell",
"Other"
]
},
@ -211,7 +245,7 @@ export const magicBlueprint: I_Blueprint = {
name: "General schools of magic",
type: "multiSelect",
icon: "fas fa-hand-sparkles",
sizing: 3,
sizing: 4,
predefinedSelectValues: [
"Abjuration ",
"Conjuration",
@ -226,55 +260,56 @@ export const magicBlueprint: I_Blueprint = {
"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",
name: "Connected Spells/Rituals",
name: "Related Schools of Magic",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
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: {
connectedObjectType: "magic",
connectedField: "pairedSpells"
}
},
{
id: "pairedItems",
name: "Usable through the use of Items",
id: "pairedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedMagic"
connectedObjectType: "skills",
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",
name: "Common Species/Races/Flora/Faunas among the practitioners",
name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "commonInMagicGroups"
@ -282,10 +317,10 @@ export const magicBlueprint: I_Blueprint = {
},
{
id: "localLanguages",
name: "Common Languages among the practitioners",
name: "Common Languages",
type: "manyToManyRelationship",
icon: "mdi-book-alphabet",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "languages",
connectedField: "usedInMagicalGroups"
@ -295,23 +330,55 @@ export const magicBlueprint: I_Blueprint = {
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: "breakRelasionships",
name: "Diplomatic relationships & Influences",
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: "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",
name: "Ruled Locations",
name: "Ruled/Influenced Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
@ -331,6 +398,28 @@ export const magicBlueprint: I_Blueprint = {
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",
name: "Connected Characters",
@ -375,6 +464,12 @@ export const magicBlueprint: I_Blueprint = {
connectedField: "pairedEnemyMagicGroup"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPolGroups",
name: "Connected Political groups",
@ -476,7 +571,7 @@ export const magicBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedMagicalGroups",
name: "Connected Spells/Magical groups",
name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -487,7 +582,7 @@ export const magicBlueprint: I_Blueprint = {
},
{
id: "pairedAllyMagicalGroups",
name: "Allied Spells/Magical groups",
name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -498,7 +593,7 @@ export const magicBlueprint: I_Blueprint = {
},
{
id: "pairedEnemyMagicalGroups",
name: "Enemy Spells/Magical groups",
name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -541,58 +636,30 @@ export const magicBlueprint: I_Blueprint = {
}
},
{
id: "breakOther",
name: "Other details",
id: "breakDetails",
name: "Connections - Details",
type: "break",
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",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedMagicGroups"
}
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
id: "pairedConnectedProfessions",
name: "Connected to Occupations/Classes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedObjectType: "professions",
connectedField: "pairedConnectedMagicGroups"
}
}

View file

@ -1,10 +1,11 @@
import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const mythsBlueprint: I_Blueprint = {
_id: "myths",
order: 6,
order: 430,
namePlural: "Myths/Legends/Stories",
nameSingular: "Myth/Legend/Story",
icon: "fas fa-journal-whills",
category: "Story/Lore",
extraFields: [
{
id: "breakDocumentSettings",
@ -152,17 +153,78 @@ export const mythsBlueprint: I_Blueprint = {
type: "break",
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",
name: "Connected to other Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "myths",
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",
name: "Connected to Events",
@ -174,60 +236,9 @@ export const mythsBlueprint: I_Blueprint = {
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",
name: "Connected to Species/Races/Flora/Faunas",
name: "Connected to Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
@ -236,12 +247,29 @@ export const mythsBlueprint: I_Blueprint = {
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",
name: "Connected to Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "politicalGroups",
connectedField: "pairedConnectedMyths"
@ -252,7 +280,7 @@ export const mythsBlueprint: I_Blueprint = {
name: "Connected to Organizations/Other groups",
type: "manyToManyRelationship",
icon: "mdi-account-group",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "guilds",
connectedField: "pairedConnectedMyths"
@ -271,10 +299,10 @@ export const mythsBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedMagicGroups",
name: "Connected to Magic/Spells",
name: "Connected to Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "magic",
connectedField: "pairedConnectedMyths"
@ -285,27 +313,71 @@ export const mythsBlueprint: I_Blueprint = {
name: "Connected to Technologies/Sciences",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "tech",
connectedField: "pairedConnectedMyths"
}
},
{
id: "breakNotes",
name: "Notes",
id: "breakDetails",
name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
id: "pairedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
icon: "mdi-sword-cross",
sizing: 4,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedMyths"
connectedObjectType: "skills",
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"
export const politicalGroupsBlueprint: I_Blueprint = {
_id: "politicalGroups",
order: 15,
order: 280,
namePlural: "Ideologies/Political groups",
nameSingular: "Ideology/Political group",
icon: "mdi-bank-outline",
category: "Groups/Teachings",
extraFields: [
{
id: "breakDocumentSettings",
@ -157,17 +158,24 @@ export const politicalGroupsBlueprint: I_Blueprint = {
name: "Headquarters",
type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations"
}
},
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{
id: "population",
name: "Member count",
type: "text",
icon: "mdi-account-group",
sizing: 3,
sizing: 2,
tooltip: "The amount of members of this political group/ideology."
},
{
@ -221,14 +229,14 @@ export const politicalGroupsBlueprint: I_Blueprint = {
]
},
{
id: "localCurrencies",
name: "Used Currencies",
id: "realedTeachings",
name: "Related Ideologies",
type: "manyToManyRelationship",
icon: "fas fa-coins",
icon: "mdi-bank-outline",
sizing: 4,
relationshipSettings: {
connectedObjectType: "currencies",
connectedField: "usedInPoliticalGroups"
connectedObjectType: "politicalGroups",
connectedField: "realedTeachings"
}
},
{
@ -244,7 +252,7 @@ export const politicalGroupsBlueprint: I_Blueprint = {
},
{
id: "connectedRaces",
name: "Common Species/Races/Flora/Faunas",
name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
@ -253,27 +261,79 @@ export const politicalGroupsBlueprint: I_Blueprint = {
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",
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: "breakRelasionships",
name: "Diplomatic relationships & Influences",
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: "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",
sizing: 12
},
{
id: "governLocations",
name: "Ruled Locations",
name: "Ruled/Influenced Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
@ -293,6 +353,28 @@ export const politicalGroupsBlueprint: I_Blueprint = {
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",
name: "Connected Characters",
@ -337,6 +419,12 @@ export const politicalGroupsBlueprint: I_Blueprint = {
connectedField: "pairedEnemyPolGroup"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPolGroups",
name: "Connected Ideologies/Political groups",
@ -370,7 +458,6 @@ export const politicalGroupsBlueprint: I_Blueprint = {
connectedField: "pairedEnemyPolGroups"
}
},
{
id: "pairedConnectedOtherGroups",
name: "Connected Organizations/Other groups",
@ -440,7 +527,7 @@ export const politicalGroupsBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedMagicalGroups",
name: "Connected Spells/Magical groups",
name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -451,7 +538,7 @@ export const politicalGroupsBlueprint: I_Blueprint = {
},
{
id: "pairedAllyMagicalGroups",
name: "Allied Spells/Magical groups",
name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -462,7 +549,7 @@ export const politicalGroupsBlueprint: I_Blueprint = {
},
{
id: "pairedEnemyMagicalGroups",
name: "Enemy Spells/Magical groups",
name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -507,59 +594,54 @@ export const politicalGroupsBlueprint: I_Blueprint = {
},
{
id: "breakOther",
name: "Other details",
name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "connectedEvents",
name: "Connected Events",
id: "pairedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedPolitical"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedPolGroups"
connectedObjectType: "skills",
connectedField: "pairedPoliticalGroupsSkills"
}
},
{
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedPolGroups"
}
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
id: "pairedConnectedProfessions",
name: "Connected to Occupations/Classes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedObjectType: "professions",
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"
export const racesBlueprint: I_Blueprint = {
_id: "races",
order: 10,
order: 340,
namePlural: "Species/Races/Flora/Fauna",
nameSingular: "Species/Races/Flora/Fauna",
icon: "fas fa-dragon",
category: "World",
extraFields: [
{
id: "breakDocumentSettings",
@ -155,7 +156,7 @@ export const racesBlueprint: I_Blueprint = {
},
{
id: "relatedRaces",
name: "Related Species/Races/Flora/Faunas",
name: "Related Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 4,
@ -248,108 +249,6 @@ export const racesBlueprint: I_Blueprint = {
"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",
name: "Characters of Species/Races/Flora/Fauna",
@ -372,6 +271,17 @@ export const racesBlueprint: I_Blueprint = {
connectedField: "pairedConnectedRaces"
}
},
{
id: "relatedCultures",
name: "Connected to Culture/Art",
type: "manyToManyRelationship",
icon: "fas fa-archway",
sizing: 4,
relationshipSettings: {
connectedObjectType: "culture",
connectedField: "relatedRaces"
}
},
{
id: "localCurrencies",
name: "Commonly used Currencies",
@ -394,12 +304,227 @@ export const racesBlueprint: I_Blueprint = {
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",
name: "Common in Ideologies/Political groups",
type: "manyToManyRelationship",
icon: "mdi-bank-outline",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "politicalGroups",
connectedField: "connectedRaces"
@ -410,7 +535,7 @@ export const racesBlueprint: I_Blueprint = {
name: "Common in Organizations/Other groups",
type: "manyToManyRelationship",
icon: "mdi-account-group",
sizing: 4,
sizing: 6,
relationshipSettings: {
connectedObjectType: "guilds",
connectedField: "connectedRaces"
@ -448,63 +573,6 @@ export const racesBlueprint: I_Blueprint = {
connectedObjectType: "tech",
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"
export const religionsBlueprint: I_Blueprint = {
_id: "religions",
order: 13,
order: 270,
namePlural: "Teachings/Religious groups",
nameSingular: "Teaching/Religious group",
icon: "fas fa-ankh",
category: "Groups/Teachings",
extraFields: [
{
id: "breakDocumentSettings",
@ -158,17 +159,24 @@ export const religionsBlueprint: I_Blueprint = {
name: "Headquarters",
type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations"
}
},
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{
id: "population",
name: "Member count",
type: "text",
icon: "mdi-account-group",
sizing: 3,
sizing: 2,
tooltip: "The amount of members of this religious school/teaching."
},
{
@ -184,7 +192,7 @@ export const religionsBlueprint: I_Blueprint = {
name: "Leading Figures",
type: "manyToNoneRelationship",
icon: "mdi-crown",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "characters"
}
@ -194,7 +202,7 @@ export const religionsBlueprint: I_Blueprint = {
name: "Form of religion",
type: "multiSelect",
icon: "fas fa-yin-yang",
sizing: 3,
sizing: 4,
predefinedSelectValues: [
"Cult",
"Free-form faith",
@ -210,7 +218,7 @@ export const religionsBlueprint: I_Blueprint = {
name: "Type of religion",
type: "multiSelect",
icon: "fas fa-sun",
sizing: 3,
sizing: 4,
predefinedSelectValues: [
"Ancestor worship",
"Animism",
@ -224,6 +232,17 @@ export const religionsBlueprint: I_Blueprint = {
"Other"
]
},
{
id: "relatedReligions",
name: "Related Religions",
type: "manyToManyRelationship",
icon: "fas fa-ankh",
sizing: 6,
relationshipSettings: {
connectedObjectType: "religions",
connectedField: "relatedReligions"
}
},
{
id: "localLanguages",
name: "Used Languages",
@ -237,7 +256,7 @@ export const religionsBlueprint: I_Blueprint = {
},
{
id: "connectedRaces",
name: "Common Species/Races/Flora/Faunas",
name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 6,
@ -246,21 +265,62 @@ export const religionsBlueprint: I_Blueprint = {
connectedField: "commonInReligiousGroups"
}
},
{
id: "pairedConnectedResources",
name: "Important Resources/Materials",
type: "manyToManyRelationship",
icon: "mdi-gold",
sizing: 6,
relationshipSettings: {
connectedObjectType: "resources",
connectedField: "pairedConnectedReligiousGroups"
}
},
{
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: "breakRelasionships",
name: "Diplomatic relationships & Influences",
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: "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",
sizing: 12
},
@ -269,7 +329,7 @@ export const religionsBlueprint: I_Blueprint = {
name: "Ruled/Influenced Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
connectedField: "governReligious"
@ -280,12 +340,34 @@ export const religionsBlueprint: I_Blueprint = {
name: "Connected Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations",
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",
name: "Connected Characters",
@ -330,6 +412,12 @@ export const religionsBlueprint: I_Blueprint = {
connectedField: "pairedEnemyRelGroup"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPolGroups",
name: "Connected Ideologies/Political groups",
@ -432,7 +520,7 @@ export const religionsBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedMagicGroups",
name: "Connected Magical groups/Ideologies",
name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -443,7 +531,7 @@ export const religionsBlueprint: I_Blueprint = {
},
{
id: "pairedAllyMagicGroups",
name: "Allied Magical groups/Ideologies",
name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -454,7 +542,7 @@ export const religionsBlueprint: I_Blueprint = {
},
{
id: "pairedEnemyMagicGroups",
name: "Enemy Magical groups/Ideologies",
name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -497,59 +585,53 @@ export const religionsBlueprint: I_Blueprint = {
}
},
{
id: "breakOther",
name: "Other details",
id: "breakDetails",
name: "Connections - Details",
type: "break",
sizing: 12
},
{
id: "connectedEvents",
name: "Connected Events",
id: "pairedSkills",
name: "Connected to Skills/Spells/Other",
type: "manyToManyRelationship",
icon: "mdi-calendar-text",
sizing: 4,
icon: "mdi-sword-cross",
sizing: 6,
relationshipSettings: {
connectedObjectType: "events",
connectedField: "connectedReligious"
}
},
{
id: "pairedConnectedMyths",
name: "Connected to Myths, legends and stories",
type: "manyToManyRelationship",
icon: "fas fa-journal-whills",
sizing: 4,
relationshipSettings: {
connectedObjectType: "myths",
connectedField: "pairedConnectedRelGroups"
connectedObjectType: "skills",
connectedField: "pairedReligiousGroupsSkills"
}
},
{
id: "pairedConnectedItems",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedRelGroups"
}
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
id: "pairedConnectedProfessions",
name: "Connected to Occupations/Classes",
type: "manyToManyRelationship",
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "professions",
connectedField: "pairedConnectedReligiousGroups"
}
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
id: "pairedConditions",
name: "Connected to Afflictions/Boons/Conditions",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
icon: "mdi-virus",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedField: "pairedConnectedRelGroups"
connectedObjectType: "conditions",
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"
export const techBlueprint: I_Blueprint = {
_id: "tech",
order: 11,
order: 240,
namePlural: "Sciences/Technological groups",
nameSingular: "Science/Technological group",
icon: "fas fa-wrench",
category: "Groups/Teachings",
extraFields: [
{
id: "pairedCharacter",
name: "Technology/Science Users",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
isLegacy: true,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedTech"
}
},
{
id: "breakDocumentSettings",
name: "Document settings",
@ -157,17 +170,24 @@ export const techBlueprint: I_Blueprint = {
name: "Headquarters",
type: "singleToNoneRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "locations"
}
},
{
id: "followerName",
name: "Name for members/followers",
type: "text",
icon: "fas fa-file-signature",
sizing: 3
},
{
id: "population",
name: "Member/User count",
type: "text",
icon: "mdi-account-group",
sizing: 3,
sizing: 2,
tooltip: "The amount of members of this scientific school/teaching."
},
{
@ -183,7 +203,7 @@ export const techBlueprint: I_Blueprint = {
name: "Leading figures",
type: "manyToNoneRelationship",
icon: "mdi-crown",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "characters"
}
@ -193,7 +213,7 @@ export const techBlueprint: I_Blueprint = {
name: "Type",
type: "multiSelect",
icon: "fas fa-cogs",
sizing: 3,
sizing: 4,
predefinedSelectValues: [
"Factory/Manufacture",
"Invention",
@ -210,7 +230,7 @@ export const techBlueprint: I_Blueprint = {
name: "Scientific branches",
type: "multiSelect",
icon: "fas fa-vial",
sizing: 3,
sizing: 4,
predefinedSelectValues: [
"Agricultural science",
"Astrology",
@ -235,34 +255,56 @@ export const techBlueprint: I_Blueprint = {
"Other"
]
},
{
id: "pairedCharacter",
name: "Technology/Science Users",
type: "manyToManyRelationship",
icon: "mdi-account",
sizing: 6,
relationshipSettings: {
connectedObjectType: "characters",
connectedField: "pairedTech"
}
},
{
id: "pairedTech",
name: "Related Technologies/Sciences",
type: "manyToManyRelationship",
icon: "fas fa-wrench",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "tech",
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",
name: "Common Species/Races/Flora/Faunas",
name: "Common Species/Races/Flora/Fauna",
type: "manyToManyRelationship",
icon: "fas fa-dragon",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "races",
connectedField: "commonInTechGroups"
@ -273,7 +315,7 @@ export const techBlueprint: I_Blueprint = {
name: "Common languages",
type: "manyToManyRelationship",
icon: "mdi-book-alphabet",
sizing: 6,
sizing: 4,
relationshipSettings: {
connectedObjectType: "languages",
connectedField: "usedInTechGroups"
@ -283,24 +325,55 @@ export const techBlueprint: I_Blueprint = {
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: "breakRelasionships",
name: "Diplomatic relationships & Influences",
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: "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",
sizing: 12
},
{
id: "governLocations",
name: "Ruled Locations",
name: "Ruled/Influenced Locations",
type: "manyToManyRelationship",
icon: "mdi-map-marker-radius",
sizing: 6,
@ -320,6 +393,28 @@ export const techBlueprint: I_Blueprint = {
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",
name: "Connected Characters",
@ -364,6 +459,13 @@ export const techBlueprint: I_Blueprint = {
connectedField: "pairedEnemyTechGroup"
}
},
{
id: "breakPolitics",
name: "Connections - Groups/Teachings",
type: "break",
sizing: 12
},
{
id: "pairedConnectedPolGroups",
name: "Connected Ideologies/Political groups",
@ -465,7 +567,7 @@ export const techBlueprint: I_Blueprint = {
},
{
id: "pairedConnectedMagicalGroups",
name: "Connected Spells/Magical groups",
name: "Connected Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -476,7 +578,7 @@ export const techBlueprint: I_Blueprint = {
},
{
id: "pairedAllyMagicalGroups",
name: "Allied Spells/Magical groups",
name: "Allied Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -487,7 +589,7 @@ export const techBlueprint: I_Blueprint = {
},
{
id: "pairedEnemyMagicalGroups",
name: "Enemy Spells/Magical groups",
name: "Enemy Schools of Magic/Magical groups",
type: "manyToManyRelationship",
icon: "fas fa-hat-wizard",
sizing: 4,
@ -530,58 +632,30 @@ export const techBlueprint: I_Blueprint = {
}
},
{
id: "breakOther",
name: "Other details",
id: "breakDetails",
name: "Connections - Details",
type: "break",
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",
name: "Connected to Items",
type: "manyToManyRelationship",
icon: "mdi-sword-cross",
sizing: 4,
icon: "mdi-sword",
sizing: 6,
relationshipSettings: {
connectedObjectType: "items",
connectedField: "pairedConnectedTechGroups"
}
},
{
id: "breakNotes",
name: "Notes",
type: "break",
sizing: 12
},
{
id: "pairedConnectedNotes",
name: "Connected to Lore notes/Other notes",
id: "pairedConnectedProfessions",
name: "Connected to Occupations/Classes",
type: "manyToManyRelationship",
icon: "mdi-script-text-outline",
sizing: 12,
icon: "fab fa-pied-piper-hat",
sizing: 6,
relationshipSettings: {
connectedObjectType: "loreNotes",
connectedObjectType: "professions",
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
const currentBlueprint: {extraFields: I_ExtraFields[]} = vueInstance.SGET_blueprint(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
try {
// 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) {
// console.log("Creating new document")
@ -55,6 +54,12 @@ export const saveDocument = async (
allOpenedDocuments = allOpenedDocuments.filter(doc => doc._id !== document._id)
const listOfNewDocuments: {
name: string
id: string
type: string
}[] = []
// Handle single document autogeneration
const single_relationshipTypesAutoGeneration = ["singleToNoneRelationship", "singleToSingleRelationship", "singleToManyRelationship"]
const single_allRelationshipFieldsAutoGeneration = documentCopy.extraFields.filter(field => {
@ -67,81 +72,100 @@ export const saveDocument = async (
const fieldValue = field.value?.value
if (fieldValue?.isAutoGenerated) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
const pairedBlueprint: I_Blueprint = vueInstance.SGET_blueprint(fieldValue.type)
// Check if the document already exists
const alreadyCreated = listOfNewDocuments.find(e => {
return (e.name === fieldValue.label && e.type === fieldValue.type)
})
const newDocument = {
bgColor: undefined,
color: undefined,
extraFields: [
// If new document
if (!alreadyCreated) {
listOfNewDocuments.push({
name: fieldValue.label,
id: fieldValue.id,
type: fieldValue.type
})
{
id: "name",
value: fieldValue.label
},
{
id: "parentDoc",
value: ""
},
{
id: "documentColor",
value: ""
},
{
id: "documentBackgroundColor",
value: ""
},
{
id: "finishedSwitch",
value: ""
},
{
id: "minorSwitch",
value: ""
},
{
id: "deadSwitch",
value: ""
},
{
id: "categorySwitch",
value: ""
},
{
id: "order",
value: ""
},
{
id: "tags",
value: []
},
{
id: "categoryDescription",
value: ""
},
{
id: "otherNames",
value: []
}
],
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
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
const pairedBlueprint: I_Blueprint = vueInstance.SGET_blueprint(fieldValue.type)
const newDocument = {
bgColor: undefined,
color: undefined,
extraFields: [
{
id: "name",
value: fieldValue.label
},
{
id: "parentDoc",
value: ""
},
{
id: "documentColor",
value: ""
},
{
id: "documentBackgroundColor",
value: ""
},
{
id: "finishedSwitch",
value: ""
},
{
id: "minorSwitch",
value: ""
},
{
id: "deadSwitch",
value: ""
},
{
id: "categorySwitch",
value: ""
},
{
id: "order",
value: ""
},
{
id: "tags",
value: []
},
{
id: "categoryDescription",
value: ""
},
{
id: "otherNames",
value: []
}
],
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)
}
@ -218,77 +242,96 @@ export const saveDocument = async (
if (Array.isArray(fieldArray)) {
for (const fieldValue of fieldArray) {
if (fieldValue?.isAutoGenerated) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
const pairedBlueprint: I_Blueprint = vueInstance.SGET_blueprint(fieldValue.type)
// Check if the document already exists
const alreadyCreated = listOfNewDocuments.find(e => {
return (e.name === fieldValue.label && e.type === fieldValue.type)
})
const newDocument = {
bgColor: undefined,
color: undefined,
extraFields: [
// If new document
if (!alreadyCreated) {
listOfNewDocuments.push({
name: fieldValue.label,
id: fieldValue.id,
type: fieldValue.type
})
{
id: "name",
value: fieldValue.label
},
{
id: "parentDoc",
value: ""
},
{
id: "documentColor",
value: ""
},
{
id: "documentBackgroundColor",
value: ""
},
{
id: "finishedSwitch",
value: ""
},
{
id: "minorSwitch",
value: ""
},
{
id: "deadSwitch",
value: ""
},
{
id: "categorySwitch",
value: ""
},
{
id: "order",
value: ""
},
{
id: "tags",
value: []
},
{
id: "categoryDescription",
value: ""
}
],
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
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
const pairedBlueprint: I_Blueprint = vueInstance.SGET_blueprint(fieldValue.type)
const newDocument = {
bgColor: undefined,
color: undefined,
extraFields: [
{
id: "name",
value: fieldValue.label
},
{
id: "parentDoc",
value: ""
},
{
id: "documentColor",
value: ""
},
{
id: "documentBackgroundColor",
value: ""
},
{
id: "finishedSwitch",
value: ""
},
{
id: "minorSwitch",
value: ""
},
{
id: "deadSwitch",
value: ""
},
{
id: "categorySwitch",
value: ""
},
{
id: "order",
value: ""
},
{
id: "tags",
value: []
},
{
id: "categoryDescription",
value: ""
}
],
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)
}
@ -349,7 +392,7 @@ export const saveDocument = async (
// Save the document
// 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
documentCopy.editMode = editModeAfterSave

View file

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

View file

@ -1,24 +1,29 @@
## THE GM BATCH START - 0.1.7
- Add category for diseases/curses/etc
- Add category for classes/occupations
- Add category for skill/spells, edit magic and tech category
- Add category for materials/resources OR adapt Items category
- Add "Predecessors", "Successors", "Date of start", "Date of end" and "How long it lasted" fields to locations and all other groups
- Add setting to hide labels in document preview/view
- 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
- "Save all" keybind and "Save all and exit" option on the exiting
## THE GM BATCH END - 0.1.7
## 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 rename
- List of last saved documents on project overview
- 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
- Templates for exports
@ -31,9 +36,10 @@
- Rename tag (resaves all docs with new tag)
- New text editor (TipTap2)?
- Add description tabs
- Word count for editor fields
- Try to get field titles to show in full-screen edit of text editor fields
- Simple @ mentions
- Add description tabs
- 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
@ -58,6 +64,8 @@
- Allow/Disallow default 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
- Pinned tabs (save through program closing)