From f7936ad6cd70e501f4b0b0c3663169cc9a20bcda Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Sun, 20 Apr 2025 14:25:07 +0200 Subject: feat: add propcat and formfield for Studienkategorie --- scripts/studien-add-button.js | 38 ++++++++++++++++++++++++++++++++++++++ scripts/studien-edit.js | 26 ++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 scripts/studien-add-button.js create mode 100644 scripts/studien-edit.js (limited to 'scripts') diff --git a/scripts/studien-add-button.js b/scripts/studien-add-button.js new file mode 100644 index 0000000..8f86c4e --- /dev/null +++ b/scripts/studien-add-button.js @@ -0,0 +1,38 @@ +let addText = function() { + let v = getFieldValue('studienalle'); + let ie = getFieldValue('studieinternextern') == 'i' ? ' (intern)' : ' (extern)'; + v = v + getFieldValue('studienct') + '; ' + getFieldValue('studie') + ie + '; ' + getFieldValue('studieort') + '\n'; + setFieldValue('studienalle', v); +} + +var addJSON = function() { + let v = []; + try { + v = JSON.parse(getFieldValue('studienallejson')); + if (!Array.isArray(v)) { + v = []; + } + } catch (e) { + v = []; + } + v.push({ + studie: getFieldValue('studie'), + system: getFieldValue('studiensystem'), + // New: ID + id: getFieldValue('studienct'), + // Old: NCT (from NCT-ID) + nct: getFieldValue('studienct'), + ort: getFieldValue('studieort'), + internextern: getFieldValue('studieinternextern') + }); + setFieldValue('studienallejson', JSON.stringify(v)); +} + +addText(); +addJSON(); + +setFieldValue('studie', ''); +setFieldValue('studiensystem', ''); +setFieldValue('studienct', ''); +setFieldValue('studieort', ''); +setFieldValue('studieinternextern', ''); diff --git a/scripts/studien-edit.js b/scripts/studien-edit.js new file mode 100644 index 0000000..d22b4f6 --- /dev/null +++ b/scripts/studien-edit.js @@ -0,0 +1,26 @@ +let text = getFieldValue('studienalle'); +let json = []; +let newJson = []; + +try { + json = JSON.parse(getFieldValue('studienallejson')); + if (!Array.isArray(json)) { + json = []; + } +} catch (e) { + json = []; +} + +if (typeof text === 'string' || text instanceof String) { + text.split('\n').forEach(line => { + let id = line.split(';')[0]; + json.forEach(entry => { + if (id === entry.nct) { + newJson.push(entry); + } + }); + }); + setFieldValue('studienallejson', JSON.stringify(newJson)); +} else { + setFieldValue('studienallejson', JSON.stringify([])); +} -- cgit v1.2.3