Datagen database viewer barely works
This commit is contained in:
parent
1aab2bd811
commit
763e8b7912
@ -4,7 +4,7 @@ const Schema = mongoose.Schema;
|
|||||||
const DatagenEntrySchema = new Schema({
|
const DatagenEntrySchema = new Schema({
|
||||||
id: {type: String, required: true},
|
id: {type: String, required: true},
|
||||||
schema: { type: String, required: true},
|
schema: { type: String, required: true},
|
||||||
data: { type: Object },
|
data: { type: Object, default: {} },
|
||||||
datagen_collection: {type: mongoose.Types.ObjectId, ref: "DatagenCollection"},
|
datagen_collection: {type: mongoose.Types.ObjectId, ref: "DatagenCollection"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ async function appendDatagen(file, modelName, info, datagenCollection){
|
|||||||
let fileData = JSON.parse(fs.readFileSync(file));
|
let fileData = JSON.parse(fs.readFileSync(file));
|
||||||
return await DatagenEntry.create({
|
return await DatagenEntry.create({
|
||||||
id: fileData.id,
|
id: fileData.id,
|
||||||
data: fileData.value,
|
data: fileData.value !== undefined ? fileData.value : {},
|
||||||
schema: modelName,
|
schema: modelName,
|
||||||
datagen_collection: datagenCollection
|
datagen_collection: datagenCollection
|
||||||
});
|
});
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { FetchConcepts, InitData } from "./data";
|
import { FetchConcepts, GetConcepts, InitData } from "./data";
|
||||||
import { Global } from '@/services/PluginGlobals';
|
import { Global } from '@/services/PluginGlobals';
|
||||||
|
|
||||||
var dndModule;
|
var dndModule;
|
||||||
@ -44,6 +44,8 @@ function Main(Api){
|
|||||||
Api.createWindow(databaseWindow, {
|
Api.createWindow(databaseWindow, {
|
||||||
title: "Campaign items",
|
title: "Campaign items",
|
||||||
id: 'campaign-items-window',
|
id: 'campaign-items-window',
|
||||||
|
fetchConcepts: FetchConcepts, // Requests reactive ref update
|
||||||
|
getConcepts: GetConcepts, // Needs to return reactive ref value
|
||||||
close: () => Api.clearWindow("campaign-items-window")
|
close: () => Api.clearWindow("campaign-items-window")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -37,19 +37,18 @@ function FetchBookList(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function OpenBook(element){
|
function OpenBook(element){
|
||||||
console.log(element);
|
|
||||||
console.log("!!!!!");
|
|
||||||
dndModule.getDatagenData(element.id).then(response => {
|
dndModule.getDatagenData(element.id).then(response => {
|
||||||
console.log(response.data);
|
|
||||||
Api.createWindow(PluginData.windows.database, {
|
Api.createWindow(PluginData.windows.database, {
|
||||||
title: element.name,
|
title: element.name,
|
||||||
id: 'campaign-items-window',
|
id: 'campaign-items-window',
|
||||||
elements: response.data.elements,
|
elements: response.data.elements,
|
||||||
|
transformer: (element) => element.data,
|
||||||
topper: {
|
topper: {
|
||||||
icon: "/plugins/" + element.package + "/" + element.icon,
|
icon: "/plugins/" + element.package + "/" + element.icon,
|
||||||
title: element.name,
|
title: element.name,
|
||||||
description: element.desc
|
description: element.desc
|
||||||
},
|
},
|
||||||
|
getConcepts: () => response.data.elements,
|
||||||
close: () => Api.clearWindow("campaign-items-window")
|
close: () => Api.clearWindow("campaign-items-window")
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -38,22 +38,33 @@ onMounted(() => {
|
|||||||
SetResizable(id, true);
|
SetResizable(id, true);
|
||||||
SetMinSize(id, {width: 800, height: 300});
|
SetMinSize(id, {width: 800, height: 300});
|
||||||
|
|
||||||
watch(GetConcepts, () => {
|
// console.log(data);
|
||||||
let elements = GetConcepts();
|
|
||||||
weapons.value = elements.filter((e) => e.type == "Weapon");
|
|
||||||
equipment.value = elements.filter((e) => e.type == "Equipment");
|
|
||||||
consumables.value = elements.filter((e) => e.type == "Consumable");
|
|
||||||
containers.value = elements.filter((e) => e.type == "Container");
|
|
||||||
tools.value = elements.filter((e) => e.type == "Tool");
|
|
||||||
spells.value = elements.filter((e) => e.type == "Spell");
|
|
||||||
features.value = elements.filter((e) => e.type == "Feature");
|
|
||||||
|
|
||||||
console.log(elements);
|
watch(data.getConcepts, () => {
|
||||||
console.log(elements);
|
updateView();
|
||||||
});
|
});
|
||||||
|
|
||||||
FetchConcepts();
|
if(data.fetchConcepts) data.fetchConcepts();
|
||||||
|
updateView();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function updateView(){
|
||||||
|
let elements = data.getConcepts();
|
||||||
|
if(data.transformer) elements = elements.map(element => data.transformer(element));
|
||||||
|
|
||||||
|
console.log(elements);
|
||||||
|
|
||||||
|
weapons.value = elements.filter((e) => e.type == "Weapon");
|
||||||
|
equipment.value = elements.filter((e) => e.type == "Equipment");
|
||||||
|
consumables.value = elements.filter((e) => e.type == "Consumable");
|
||||||
|
containers.value = elements.filter((e) => e.type == "Container");
|
||||||
|
tools.value = elements.filter((e) => e.type == "Tool");
|
||||||
|
spells.value = elements.filter((e) => e.type == "Spell");
|
||||||
|
features.value = elements.filter((e) => e.type == "Feature");
|
||||||
|
|
||||||
|
console.log(elements);
|
||||||
|
}
|
||||||
|
|
||||||
function OpenCreateItemPrompt(){
|
function OpenCreateItemPrompt(){
|
||||||
Api.createWindow(PluginData.windows.create_item_prompt, {id: 'create_item_prompt', title: 'Create Item', close: () => Api.clearWindow('create_item_prompt')})
|
Api.createWindow(PluginData.windows.create_item_prompt, {id: 'create_item_prompt', title: 'Create Item', close: () => Api.clearWindow('create_item_prompt')})
|
||||||
}
|
}
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "effects/test_effect",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "consumables/test_consumable",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "container/test_container",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "equipment/test_equipment",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "feature/test_feature",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "spells/test_spell",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "tools/test_tool",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"id": "weapon/test_weapon",
|
"id": "weapons/test_weapon",
|
||||||
"value": {
|
"value": {
|
||||||
"name": "Test datagen weapon",
|
"name": "Test datagen weapon",
|
||||||
"description": "Test test test",
|
"description": "Test test test",
|
||||||
@ -10,7 +10,7 @@
|
|||||||
"weight": "10",
|
"weight": "10",
|
||||||
"price": "10",
|
"price": "10",
|
||||||
"data": {
|
"data": {
|
||||||
"weapon_type": "Natural",
|
"weapon_type": "Natural",
|
||||||
"properties": [
|
"properties": [
|
||||||
"Finesse"
|
"Finesse"
|
||||||
]
|
]
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "monsters/test_monster",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "classes/test_class",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "races/test_race",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "table/test_table",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "effects/test_effect",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "consumables/test_consumable",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "container/test_container",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "equipment/test_equipment",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "feature/test_feature",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "spells/test_spell",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "tools/test_tool",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "weapon/test_weapon",
|
|
||||||
"value": {
|
|
||||||
"name": "Test datagen weapon",
|
|
||||||
"description": "Test test test",
|
|
||||||
"icon": "icons/weapons/ammunition/shot-round-blue.webp",
|
|
||||||
"type": "Weapon",
|
|
||||||
"rarity": "Rare",
|
|
||||||
"quantity": "1",
|
|
||||||
"weight": "10",
|
|
||||||
"price": "10",
|
|
||||||
"data": {
|
|
||||||
"weapon_type": "Natural",
|
|
||||||
"properties": [
|
|
||||||
"Finesse"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
"id": "monsters/test_monster",
|
"id": "monsters/test_monster",
|
||||||
"value": {}
|
"value": {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "classes/test_class",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "races/test_race",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "table/test_table",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "effects/test_effect",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "consumables/test_consumable",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "container/test_container",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "equipment/test_equipment",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "feature/test_feature",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "spells/test_spell",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "tools/test_tool",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "weapon/test_weapon",
|
|
||||||
"value": {
|
|
||||||
"name": "Test datagen weapon",
|
|
||||||
"description": "Test test test",
|
|
||||||
"icon": "icons/weapons/ammunition/shot-round-blue.webp",
|
|
||||||
"type": "Weapon",
|
|
||||||
"rarity": "Rare",
|
|
||||||
"quantity": "1",
|
|
||||||
"weight": "10",
|
|
||||||
"price": "10",
|
|
||||||
"data": {
|
|
||||||
"weapon_type": "Natural",
|
|
||||||
"properties": [
|
|
||||||
"Finesse"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "monsters/test_monster",
|
|
||||||
"value": {}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user