Migration vers datamodels

This commit is contained in:
2026-02-26 13:45:24 +01:00
parent b0c6b2a3e8
commit 497c687eb8
33 changed files with 187 additions and 180 deletions

View File

@@ -1,8 +1,32 @@
/* -------------------------------------------- */ /* -------------------------------------------- */
import { EcrymeUtility } from "../common/ecryme-utility.js"; const { HandlebarsApplicationMixin } = foundry.applications.api
/* -------------------------------------------- */ /* -------------------------------------------- */
export class EcrymeCharacterSummary extends Application { export class EcrymeCharacterSummary extends HandlebarsApplicationMixin(foundry.applications.api.ApplicationV2) {
/* -------------------------------------------- */
static DEFAULT_OPTIONS = {
id: "ecryme-character-summary",
classes: ["fvtt-ecryme", "dialog"],
position: { width: 920 },
window: { title: "ECRY.ui.charactersummary", resizable: true },
actions: {
actorOpen: EcrymeCharacterSummary.#onActorOpen,
summaryRoll: EcrymeCharacterSummary.#onSummaryRoll,
actorDelete: EcrymeCharacterSummary.#onActorDelete,
},
}
/* -------------------------------------------- */
static PARTS = {
content: { template: "systems/fvtt-ecryme/templates/dialogs/character-summary.hbs" },
}
/* -------------------------------------------- */
constructor(options = {}) {
super(options)
this.settings = game.settings.get("fvtt-ecryme", "character-summary-data")
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static displayPCSummary() { static displayPCSummary() {
@@ -16,18 +40,13 @@ export class EcrymeCharacterSummary extends Application {
/* -------------------------------------------- */ /* -------------------------------------------- */
updatePCSummary() { updatePCSummary() {
if (this.rendered) { if (this.rendered) {
this.render(true) this.render()
} }
} }
/* -------------------------------------------- */
static createSummaryPos() {
return { top: 200, left: 200 };
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static ready() { static ready() {
if (!game.user.isGM) { // Uniquement si GM if (!game.user.isGM) {
return return
} }
let charSummary = new EcrymeCharacterSummary() let charSummary = new EcrymeCharacterSummary()
@@ -35,100 +54,81 @@ export class EcrymeCharacterSummary extends Application {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
constructor() { async _prepareContext() {
super(); let pcs = game.actors.filter(ac => ac.type == "pc" && ac.hasPlayerOwner)
//game.settings.set("world", "character-summary-data", {npcList: [], x:0, y:0}) let npcs = []
//this.settings = game.settings.get("world", "character-summary-data")
}
/* -------------------------------------------- */
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
template: "systems/fvtt-ecryme/templates/dialogs/character-summary.hbs",
popOut: true,
resizable: true,
dragDrop: [{ dragSelector: ".items-list .item", dropSelector: null }],
classes: ["bol", "dialog"], width: 920, height: 'fit-content'
})
}
/* -------------------------------------------- */
getData() {
let formData = super.getData();
formData.pcs = game.actors.filter(ac => ac.type == "personnage" && ac.hasPlayerOwner)
formData.npcs = []
let newList = [] let newList = []
let toUpdate = false let toUpdate = false
for (let actorId of this.settings.npcList) { for (let actorId of this.settings.npcList) {
let actor = game.actors.get(actorId) let actor = game.actors.get(actorId)
if (actor) { if (actor) {
formData.npcs.push(actor) npcs.push(actor)
newList.push(actorId) newList.push(actorId)
} else { } else {
toUpdate = true toUpdate = true
} }
} }
formData.config = game.system.ecryme.config
if (toUpdate) { if (toUpdate) {
this.settings.npcList = newList this.settings.npcList = newList
//console.log("Going to update ...", this.settings) game.settings.set("fvtt-ecryme", "character-summary-data", this.settings)
game.settings.set("world", "character-summary-data", this.settings) }
return {
pcs,
npcs,
config: game.system.ecryme.config,
} }
return formData
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
updateNPC() { updateNPC() {
game.settings.set("world", "character-summary-data", game.system.ecryme.charSummary.settings) game.settings.set("fvtt-ecryme", "character-summary-data", this.settings)
game.system.ecryme.charSummary.close() this.close()
setTimeout(function () { game.system.ecryme.charSummary.render(true) }, 500) setTimeout(() => this.render(true), 500)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async _onDrop(event) { _onDragOver(event) {
//console.log("Dragged data are : ", dragData) event.preventDefault()
let data = event.dataTransfer.getData('text/plain') }
let dataItem = JSON.parse(data)
let actor = fromUuidSync(dataItem.uuid)
if (actor) {
game.system.ecryme.charSummary.settings.npcList.push(actor.id)
game.system.ecryme.charSummary.updateNPC()
/* -------------------------------------------- */
_onDrop(event) {
let data
try { data = JSON.parse(event.dataTransfer.getData('text/plain')) } catch(e) { return }
let actor = fromUuidSync(data.uuid)
if (actor) {
this.settings.npcList.push(actor.id)
this.updateNPC()
} else { } else {
ui.notifications.warn("Pas d'acteur trouvé") ui.notifications.warn("Pas d'acteur trouvé")
} }
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
/** @override */ _onRender(context, options) {
async activateListeners(html) { super._onRender(context, options)
super.activateListeners(html); this.element.addEventListener("dragover", this._onDragOver.bind(this))
this.element.addEventListener("drop", this._onDrop.bind(this))
}
html.find('.actor-open').click((event) => { /* -------------------------------------------- */
const li = $(event.currentTarget).parents(".item") static #onActorOpen(event, target) {
const actor = game.actors.get(li.data("actor-id")) const actorId = target.closest("[data-actor-id]").dataset.actorId
actor.sheet.render(true) game.actors.get(actorId)?.sheet.render(true)
}) }
html.find('.summary-roll').click((event) => { /* -------------------------------------------- */
const li = $(event.currentTarget).parents(".item") static #onSummaryRoll(event, target) {
const actor = game.actors.get(li.data("actor-id")) const actorId = target.closest("[data-actor-id]").dataset.actorId
let type = $(event.currentTarget).data("type") const key = target.dataset.key
let key = $(event.currentTarget).data("key") game.actors.get(actorId)?.rollAttribut(key)
actor.rollAttribut(key) }
})
html.find('.actor-delete').click(event => {
const li = $(event.currentTarget).parents(".item");
let actorId = li.data("actor-id")
let newList = game.system.ecryme.charSummary.settings.npcList.filter(id => id != actorId)
game.system.ecryme.charSummary.settings.npcList = newList
game.system.ecryme.charSummary.updateNPC()
})
/* -------------------------------------------- */
static #onActorDelete(event, target) {
const actorId = target.closest("[data-actor-id]").dataset.actorId
this.settings.npcList = this.settings.npcList.filter(id => id !== actorId)
this.updateNPC()
} }
} }

View File

@@ -101,6 +101,13 @@ export class EcrymeUtility {
restricted: true restricted: true
}) })
game.settings.register("fvtt-ecryme", "character-summary-data", {
scope: 'world',
config: false,
type: Object,
default: { npcList: [] }
})
this.buildSkillConfig() this.buildSkillConfig()
} }

View File

@@ -1 +1 @@
MANIFEST-000287 MANIFEST-000291

View File

@@ -1,7 +1,7 @@
2026/02/25-15:53:13.691886 7f821effd6c0 Recovering log #285 2026/02/26-13:35:49.720275 7f821e7fc6c0 Recovering log #289
2026/02/25-15:53:13.751659 7f821effd6c0 Delete type=3 #283 2026/02/26-13:35:49.730573 7f821e7fc6c0 Delete type=0 #289
2026/02/25-15:53:13.751724 7f821effd6c0 Delete type=0 #285 2026/02/26-13:35:49.730637 7f821e7fc6c0 Delete type=3 #287
2026/02/25-15:53:35.823463 7f821d8d46c0 Level-0 table #290: started 2026/02/26-13:45:04.206270 7f821d8d46c0 Level-0 table #294: started
2026/02/25-15:53:35.823484 7f821d8d46c0 Level-0 table #290: 0 bytes OK 2026/02/26-13:45:04.206300 7f821d8d46c0 Level-0 table #294: 0 bytes OK
2026/02/25-15:53:35.829592 7f821d8d46c0 Delete type=0 #288 2026/02/26-13:45:04.212252 7f821d8d46c0 Delete type=0 #292
2026/02/25-15:53:35.836554 7f821d8d46c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end) 2026/02/26-13:45:04.225396 7f821d8d46c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/02/25-15:50:34.600919 7f821f7fe6c0 Recovering log #281 2026/02/25-15:53:13.691886 7f821effd6c0 Recovering log #285
2026/02/25-15:50:34.610892 7f821f7fe6c0 Delete type=3 #279 2026/02/25-15:53:13.751659 7f821effd6c0 Delete type=3 #283
2026/02/25-15:50:34.610949 7f821f7fe6c0 Delete type=0 #281 2026/02/25-15:53:13.751724 7f821effd6c0 Delete type=0 #285
2026/02/25-15:50:42.114392 7f821d8d46c0 Level-0 table #286: started 2026/02/25-15:53:35.823463 7f821d8d46c0 Level-0 table #290: started
2026/02/25-15:50:42.114447 7f821d8d46c0 Level-0 table #286: 0 bytes OK 2026/02/25-15:53:35.823484 7f821d8d46c0 Level-0 table #290: 0 bytes OK
2026/02/25-15:50:42.121344 7f821d8d46c0 Delete type=0 #284 2026/02/25-15:53:35.829592 7f821d8d46c0 Delete type=0 #288
2026/02/25-15:50:42.142455 7f821d8d46c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end) 2026/02/25-15:53:35.836554 7f821d8d46c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-000224 MANIFEST-000228

View File

@@ -1,8 +1,8 @@
2026/02/25-15:53:13.932310 7f821ffff6c0 Recovering log #222 2026/02/26-13:35:49.774903 7f821ffff6c0 Recovering log #226
2026/02/25-15:53:13.985670 7f821ffff6c0 Delete type=3 #220 2026/02/26-13:35:49.785514 7f821ffff6c0 Delete type=0 #226
2026/02/25-15:53:13.985727 7f821ffff6c0 Delete type=0 #222 2026/02/26-13:35:49.785596 7f821ffff6c0 Delete type=3 #224
2026/02/25-15:53:35.850326 7f821d8d46c0 Level-0 table #227: started 2026/02/26-13:45:04.243562 7f821d8d46c0 Level-0 table #231: started
2026/02/25-15:53:35.850379 7f821d8d46c0 Level-0 table #227: 0 bytes OK 2026/02/26-13:45:04.243597 7f821d8d46c0 Level-0 table #231: 0 bytes OK
2026/02/25-15:53:35.856311 7f821d8d46c0 Delete type=0 #225 2026/02/26-13:45:04.249861 7f821d8d46c0 Delete type=0 #229
2026/02/25-15:53:35.863092 7f821d8d46c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end) 2026/02/26-13:45:04.250001 7f821d8d46c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2026/02/25-15:53:35.863120 7f821d8d46c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end) 2026/02/26-13:45:04.250031 7f821d8d46c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2026/02/25-15:50:34.651524 7f821e7fc6c0 Recovering log #218 2026/02/25-15:53:13.932310 7f821ffff6c0 Recovering log #222
2026/02/25-15:50:34.661646 7f821e7fc6c0 Delete type=3 #216 2026/02/25-15:53:13.985670 7f821ffff6c0 Delete type=3 #220
2026/02/25-15:50:34.661750 7f821e7fc6c0 Delete type=0 #218 2026/02/25-15:53:13.985727 7f821ffff6c0 Delete type=0 #222
2026/02/25-15:50:42.142608 7f821d8d46c0 Level-0 table #223: started 2026/02/25-15:53:35.850326 7f821d8d46c0 Level-0 table #227: started
2026/02/25-15:50:42.142633 7f821d8d46c0 Level-0 table #223: 0 bytes OK 2026/02/25-15:53:35.850379 7f821d8d46c0 Level-0 table #227: 0 bytes OK
2026/02/25-15:50:42.148721 7f821d8d46c0 Delete type=0 #221 2026/02/25-15:53:35.856311 7f821d8d46c0 Delete type=0 #225
2026/02/25-15:50:42.168777 7f821d8d46c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end) 2026/02/25-15:53:35.863092 7f821d8d46c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2026/02/25-15:50:42.168835 7f821d8d46c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end) 2026/02/25-15:53:35.863120 7f821d8d46c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-000287 MANIFEST-000291

View File

@@ -1,7 +1,7 @@
2026/02/25-15:53:13.876847 7f821e7fc6c0 Recovering log #285 2026/02/26-13:35:49.760218 7f821f7fe6c0 Recovering log #289
2026/02/25-15:53:13.930449 7f821e7fc6c0 Delete type=3 #283 2026/02/26-13:35:49.771084 7f821f7fe6c0 Delete type=0 #289
2026/02/25-15:53:13.930523 7f821e7fc6c0 Delete type=0 #285 2026/02/26-13:35:49.771134 7f821f7fe6c0 Delete type=3 #287
2026/02/25-15:53:35.829708 7f821d8d46c0 Level-0 table #290: started 2026/02/26-13:45:04.225531 7f821d8d46c0 Level-0 table #294: started
2026/02/25-15:53:35.829729 7f821d8d46c0 Level-0 table #290: 0 bytes OK 2026/02/26-13:45:04.225558 7f821d8d46c0 Level-0 table #294: 0 bytes OK
2026/02/25-15:53:35.836306 7f821d8d46c0 Delete type=0 #288 2026/02/26-13:45:04.231385 7f821d8d46c0 Delete type=0 #292
2026/02/25-15:53:35.836570 7f821d8d46c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end) 2026/02/26-13:45:04.249963 7f821d8d46c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/02/25-15:50:34.639642 7f821effd6c0 Recovering log #281 2026/02/25-15:53:13.876847 7f821e7fc6c0 Recovering log #285
2026/02/25-15:50:34.649510 7f821effd6c0 Delete type=3 #279 2026/02/25-15:53:13.930449 7f821e7fc6c0 Delete type=3 #283
2026/02/25-15:50:34.649589 7f821effd6c0 Delete type=0 #281 2026/02/25-15:53:13.930523 7f821e7fc6c0 Delete type=0 #285
2026/02/25-15:50:42.134887 7f821d8d46c0 Level-0 table #286: started 2026/02/25-15:53:35.829708 7f821d8d46c0 Level-0 table #290: started
2026/02/25-15:50:42.134921 7f821d8d46c0 Level-0 table #286: 0 bytes OK 2026/02/25-15:53:35.829729 7f821d8d46c0 Level-0 table #290: 0 bytes OK
2026/02/25-15:50:42.142305 7f821d8d46c0 Delete type=0 #284 2026/02/25-15:53:35.836306 7f821d8d46c0 Delete type=0 #288
2026/02/25-15:50:42.142488 7f821d8d46c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end) 2026/02/25-15:53:35.836570 7f821d8d46c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-000173 MANIFEST-000177

View File

@@ -1,8 +1,8 @@
2026/02/25-15:53:13.816260 7f821ffff6c0 Recovering log #171 2026/02/26-13:35:49.748189 7f821e7fc6c0 Recovering log #175
2026/02/25-15:53:13.873719 7f821ffff6c0 Delete type=3 #169 2026/02/26-13:35:49.757710 7f821e7fc6c0 Delete type=0 #175
2026/02/25-15:53:13.873802 7f821ffff6c0 Delete type=0 #171 2026/02/26-13:35:49.757752 7f821e7fc6c0 Delete type=3 #173
2026/02/25-15:53:35.810175 7f821d8d46c0 Level-0 table #176: started 2026/02/26-13:45:04.218556 7f821d8d46c0 Level-0 table #180: started
2026/02/25-15:53:35.810225 7f821d8d46c0 Level-0 table #176: 0 bytes OK 2026/02/26-13:45:04.218583 7f821d8d46c0 Level-0 table #180: 0 bytes OK
2026/02/25-15:53:35.817237 7f821d8d46c0 Delete type=0 #174 2026/02/26-13:45:04.225239 7f821d8d46c0 Delete type=0 #178
2026/02/25-15:53:35.836504 7f821d8d46c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end) 2026/02/26-13:45:04.225420 7f821d8d46c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
2026/02/25-15:53:35.836580 7f821d8d46c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end) 2026/02/26-13:45:04.225458 7f821d8d46c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2026/02/25-15:50:34.626081 7f821e7fc6c0 Recovering log #167 2026/02/25-15:53:13.816260 7f821ffff6c0 Recovering log #171
2026/02/25-15:50:34.636822 7f821e7fc6c0 Delete type=3 #165 2026/02/25-15:53:13.873719 7f821ffff6c0 Delete type=3 #169
2026/02/25-15:50:34.636891 7f821e7fc6c0 Delete type=0 #167 2026/02/25-15:53:13.873802 7f821ffff6c0 Delete type=0 #171
2026/02/25-15:50:42.162300 7f821d8d46c0 Level-0 table #172: started 2026/02/25-15:53:35.810175 7f821d8d46c0 Level-0 table #176: started
2026/02/25-15:50:42.162331 7f821d8d46c0 Level-0 table #172: 0 bytes OK 2026/02/25-15:53:35.810225 7f821d8d46c0 Level-0 table #176: 0 bytes OK
2026/02/25-15:50:42.168591 7f821d8d46c0 Delete type=0 #170 2026/02/25-15:53:35.817237 7f821d8d46c0 Delete type=0 #174
2026/02/25-15:50:42.168824 7f821d8d46c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end) 2026/02/25-15:53:35.836504 7f821d8d46c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
2026/02/25-15:50:42.168857 7f821d8d46c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end) 2026/02/25-15:53:35.836580 7f821d8d46c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-000287 MANIFEST-000291

View File

@@ -1,7 +1,7 @@
2026/02/25-15:53:13.612255 7f821ffff6c0 Recovering log #285 2026/02/26-13:35:49.707150 7f821ffff6c0 Recovering log #289
2026/02/25-15:53:13.689314 7f821ffff6c0 Delete type=3 #283 2026/02/26-13:35:49.716871 7f821ffff6c0 Delete type=0 #289
2026/02/25-15:53:13.689394 7f821ffff6c0 Delete type=0 #285 2026/02/26-13:35:49.716971 7f821ffff6c0 Delete type=3 #287
2026/02/25-15:53:35.836645 7f821d8d46c0 Level-0 table #290: started 2026/02/26-13:45:04.212361 7f821d8d46c0 Level-0 table #294: started
2026/02/25-15:53:35.836668 7f821d8d46c0 Level-0 table #290: 0 bytes OK 2026/02/26-13:45:04.212394 7f821d8d46c0 Level-0 table #294: 0 bytes OK
2026/02/25-15:53:35.843158 7f821d8d46c0 Delete type=0 #288 2026/02/26-13:45:04.218471 7f821d8d46c0 Delete type=0 #292
2026/02/25-15:53:35.863066 7f821d8d46c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end) 2026/02/26-13:45:04.225409 7f821d8d46c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/02/25-15:50:34.587424 7f821e7fc6c0 Recovering log #281 2026/02/25-15:53:13.612255 7f821ffff6c0 Recovering log #285
2026/02/25-15:50:34.597587 7f821e7fc6c0 Delete type=3 #279 2026/02/25-15:53:13.689314 7f821ffff6c0 Delete type=3 #283
2026/02/25-15:50:34.597685 7f821e7fc6c0 Delete type=0 #281 2026/02/25-15:53:13.689394 7f821ffff6c0 Delete type=0 #285
2026/02/25-15:50:42.121525 7f821d8d46c0 Level-0 table #286: started 2026/02/25-15:53:35.836645 7f821d8d46c0 Level-0 table #290: started
2026/02/25-15:50:42.121550 7f821d8d46c0 Level-0 table #286: 0 bytes OK 2026/02/25-15:53:35.836668 7f821d8d46c0 Level-0 table #290: 0 bytes OK
2026/02/25-15:50:42.128357 7f821d8d46c0 Delete type=0 #284 2026/02/25-15:53:35.843158 7f821d8d46c0 Delete type=0 #288
2026/02/25-15:50:42.142466 7f821d8d46c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end) 2026/02/25-15:53:35.863066 7f821d8d46c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-000287 MANIFEST-000291

View File

@@ -1,7 +1,7 @@
2026/02/25-15:53:13.754329 7f821e7fc6c0 Recovering log #285 2026/02/26-13:35:49.734045 7f821f7fe6c0 Recovering log #289
2026/02/25-15:53:13.814025 7f821e7fc6c0 Delete type=3 #283 2026/02/26-13:35:49.744259 7f821f7fe6c0 Delete type=0 #289
2026/02/25-15:53:13.814092 7f821e7fc6c0 Delete type=0 #285 2026/02/26-13:35:49.744317 7f821f7fe6c0 Delete type=3 #287
2026/02/25-15:53:35.817353 7f821d8d46c0 Level-0 table #290: started 2026/02/26-13:45:04.200106 7f821d8d46c0 Level-0 table #294: started
2026/02/25-15:53:35.817380 7f821d8d46c0 Level-0 table #290: 0 bytes OK 2026/02/26-13:45:04.200155 7f821d8d46c0 Level-0 table #294: 0 bytes OK
2026/02/25-15:53:35.823347 7f821d8d46c0 Delete type=0 #288 2026/02/26-13:45:04.206134 7f821d8d46c0 Delete type=0 #292
2026/02/25-15:53:35.836533 7f821d8d46c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end) 2026/02/26-13:45:04.225380 7f821d8d46c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/02/25-15:50:34.614119 7f821ffff6c0 Recovering log #281 2026/02/25-15:53:13.754329 7f821e7fc6c0 Recovering log #285
2026/02/25-15:50:34.623965 7f821ffff6c0 Delete type=3 #279 2026/02/25-15:53:13.814025 7f821e7fc6c0 Delete type=3 #283
2026/02/25-15:50:34.624023 7f821ffff6c0 Delete type=0 #281 2026/02/25-15:53:13.814092 7f821e7fc6c0 Delete type=0 #285
2026/02/25-15:50:42.128491 7f821d8d46c0 Level-0 table #286: started 2026/02/25-15:53:35.817353 7f821d8d46c0 Level-0 table #290: started
2026/02/25-15:50:42.128510 7f821d8d46c0 Level-0 table #286: 0 bytes OK 2026/02/25-15:53:35.817380 7f821d8d46c0 Level-0 table #290: 0 bytes OK
2026/02/25-15:50:42.134699 7f821d8d46c0 Delete type=0 #284 2026/02/25-15:53:35.823347 7f821d8d46c0 Delete type=0 #288
2026/02/25-15:50:42.142479 7f821d8d46c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end) 2026/02/25-15:53:35.836533 7f821d8d46c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

View File

@@ -17,24 +17,24 @@
{{#each pcs as |pc key|}} {{#each pcs as |pc key|}}
<li class="item flexrow" data-actor-id="{{pc.id}}"> <li class="item flexrow" data-actor-id="{{pc.id}}">
<div class="item-field item-name item-name-label-long"> <div class="item-field item-name item-name-label-long">
<a class="actor-open character-summary-rollable">{{pc.name}}</a> <a data-action="actorOpen" class="character-summary-rollable">{{pc.name}}</a>
</div> </div>
{{#each pc.system.attributs as |attr key|}} {{#each pc.system.attributs as |attr key|}}
<div class="item-field flex2 item-name-label-short"> <div class="item-field flex2 item-name-label-short">
<a class="summary-roll character-summary-rollable" data-type="attribut" data-key="{{key}}">{{attr.value}}</a> <a data-action="summaryRoll" class="character-summary-rollable" data-type="attribut" data-key="{{key}}">{{attr.value}}</a>
</div> </div>
{{/each}} {{/each}}
<div class="item-field flex item-name-label-short"> <div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="destin" data-key="pointdestin">{{pc.system.pointdestin}}</a> <a data-action="summaryRoll" data-type="destin" data-key="pointdestin">{{pc.system.pointdestin}}</a>
</div> </div>
<div class="item-field flex item-name-label-short"> <div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="fluide" data-key="fluide">{{pc.system.fluide}}</a> <a data-action="summaryRoll" data-type="fluide" data-key="fluide">{{pc.system.fluide}}</a>
</div> </div>
<div class="item-field flex item-name-label-short"> <div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmb" data-key="mpmb">{{pc.system.mpmb}}</a> <a data-action="summaryRoll" data-type="mpmb" data-key="mpmb">{{pc.system.mpmb}}</a>
</div> </div>
<div class="item-field flex item-name-label-short"> <div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmn" data-key="mpmn">{{pc.system.mpmn}}</a> <a data-action="summaryRoll" data-type="mpmn" data-key="mpmn">{{pc.system.mpmn}}</a>
</div> </div>
</div> </div>
</li> </li>
@@ -55,28 +55,28 @@
{{#each npcs as |pc key|}} {{#each npcs as |pc key|}}
<li class="item flexrow" data-actor-id="{{pc.id}}"> <li class="item flexrow" data-actor-id="{{pc.id}}">
<div class="item-field item-name item-name-label-long"> <div class="item-field item-name item-name-label-long">
<a class="actor-open character-summary-rollable">{{pc.name}}</a> <a data-action="actorOpen" class="character-summary-rollable">{{pc.name}}</a>
</div> </div>
{{#each pc.system.attributs as |attr key|}} {{#each pc.system.attributs as |attr key|}}
<div class="item-field flex2 item-name-label-short"> <div class="item-field flex2 item-name-label-short">
<a class="summary-roll character-summary-rollable" data-type="attribute" data-key="{{key}}">{{attr.value}}</a> <a data-action="summaryRoll" class="character-summary-rollable" data-type="attribute" data-key="{{key}}">{{attr.value}}</a>
</div> </div>
{{/each}} {{/each}}
<div class="item-field flex item-name-label-short"> <div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="destin" data-key="pointdestin">{{pc.system.pointdestin}}</a> <a data-action="summaryRoll" data-type="destin" data-key="pointdestin">{{pc.system.pointdestin}}</a>
</div> </div>
<div class="item-field flex item-name-label-short"> <div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="fluide" data-key="fluide">{{pc.system.fluide}}</a> <a data-action="summaryRoll" data-type="fluide" data-key="fluide">{{pc.system.fluide}}</a>
</div> </div>
<div class="item-field flex item-name-label-short"> <div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmb" data-key="mpmb">{{pc.system.mpmb}}</a> <a data-action="summaryRoll" data-type="mpmb" data-key="mpmb">{{pc.system.mpmb}}</a>
</div> </div>
<div class="item-field flex item-name-label-short"> <div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmn" data-key="mpmn">{{pc.system.mpmn}}</a> <a data-action="summaryRoll" data-type="mpmn" data-key="mpmn">{{pc.system.mpmn}}</a>
</div> </div>
</div> </div>
<div class="item-field flex1 right"> <div class="item-field flex1 right">
<a class="item-control actor-delete" title="{{localize "BOL.ui.delete"}}"><i class="fas fa-trash"></i></a> <a data-action="actorDelete" class="item-control" title="{{localize "BOL.ui.delete"}}"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}