diff --git a/src/config.json b/src/config.json new file mode 100644 index 0000000000000000000000000000000000000000..81a5a391d8e28a5b928c0c915869c39d21c3e2ca --- /dev/null +++ b/src/config.json @@ -0,0 +1,29 @@ +{ + "Users": { + "keyDescriptors": { + "legi": "Legi Number", + "firstname": "First Name", + "lastname": "Last Name", + "rfid": "RFID", + "phone": "Phone", + "nethz": "nethz Account", + "gender": "Gender", + "department": "Department", + "email": "Email" + }, + "tableKeys": [ + "firstname", + "lastname", + "nethz", + "legi", + "membership" + ], + "patchableKeys": [ + "firstname", + "lastname", + "email", + "membership", + "gender" + ] + } +} diff --git a/src/userTool.js b/src/userTool.js index 0e0f5dc411d1386e9c749b3bccfbdf58dd111aa5..e54d91d8c9501271f7b86434ab017244da148aa6 100644 --- a/src/userTool.js +++ b/src/userTool.js @@ -1,22 +1,10 @@ import { ItemView } from './views/itemView'; import { EditView, inputGroup, selectGroup, submitButton } from './views/editView'; import TableView from './views/tableView'; +import { Users as config } from './config.json'; const m = require('mithril'); -const keyDescriptors = { - legi: 'Legi Number', - firstname: 'First Name', - lastname: 'Last Name', - rfid: 'RFID', - phone: 'Phone', - nethz: 'nethz Account', - gender: 'Gender', - department: 'Department', - email: 'Email', -}; -const tableKeys = ['firstname', 'lastname', 'nethz', 'legi', 'membership']; - class UserView extends ItemView { constructor() { super('users'); @@ -43,7 +31,7 @@ class UserView extends ItemView { m('h1', `${this.data.firstname} ${this.data.lastname}`), membershipBadge, m('table', detailKeys.map(key => m('tr', [ - m('td.detail-descriptor', keyDescriptors[key]), + m('td.detail-descriptor', config.keyDescriptors[key]), m('td', this.data[key] ? this.data[key] : ''), ]))), m('h2', 'Memberships'), m('br'), @@ -110,8 +98,7 @@ class UserEdit extends EditView { m(submitButton, { active: this.valid, args: { - onclick: this.submit('PATCH', [ - 'lastname', 'firstname', 'email', 'membership', 'gender']), + onclick: this.submit('PATCH', config.patchableKeys), class: 'btn-warning', }, text: 'Update', @@ -139,8 +126,7 @@ export class NewUser extends UserEdit { m(submitButton, { active: this.valid, args: { - onclick: this.submit('POST', [ - 'lastname', 'firstname', 'email', 'membership', 'gender']), + onclick: this.submit('POST', config.patchableKeys), class: 'btn-warning', }, text: 'Create', @@ -171,8 +157,8 @@ export class UserTable { view() { return m(TableView, { resource: 'users', - keys: tableKeys, - titles: tableKeys.map(key => keyDescriptors[key] || key), + keys: config.tableKeys, + titles: config.tableKeys.map(key => config.keyDescriptors[key] || key), }); } }