Fabian:
Es würde ausreichen, dem Widget die ID des Ordners mitzugeben.
Dann per common/metadata die metadata des ordners laden.
Dieser erweitern,
dann auf dem erzeugten dokument speichern.
Etwa so:
/* global sc */
let objects = require('common/objects');
let metadata = require('common/metadata');
let aguila = require('common/aguila');
let neueDatei = objects.find(12345);
// create widget
let form= aguila.create({
width: 500,
height: 300,
type: 'agorum.composite.form.basic',
properties: ['folderId'],
items: [
{
type: 'agorum.composite.form.number',
label: 'briefBetreff',
name: 'Betreff',
},
]
});
form.on('action',action=>{
switch (action.name)
{
case 'save':
if(form.valid){
let mdFolder = metadata.load('~',objects.find(form.folderId));
mdFolder.briefBetreff= form.get('briefBetreff.value');
metadata(mdFolder).save(objects.find(neueDatei.ID));
break;
}
else{
throw 'Die Eingabemaske ist nicht gültig: '+ JSON.stringify(form.dump().invalidElements);
}
}
});
Alles anzeigen
Beachte, dass wir hier
-> explizit agorum.composite.form verwenden
-> eine weitgehend aktuelle agorum Version nutzen (>=11.3)
-> die IDs natürlich angepasst werden müssen
-> Metadaten generell ein Präfix haben sollten (z.B. fabian_briefBetreff)
-> und (eine Empfehlung meinerseits) metadaten immer klein geschrieben werden sollten (z.B. fabian_brief_betreff), da du sonst immer bei Suchen nach Metadaten mit Groß- und Kleinschreibung durcheinander kommst.