Files
pulse-signage/src/web/routes/signage/canvas-sizes/form-view-model.js
T
2026-08-03 12:45:27 +01:00

34 lines
1.2 KiB
JavaScript

// Shared canvas size form view-model builder.
function buildDefaultCanvasSize() {
return {
id: null,
name: '',
width: 1920,
height: 1080
};
}
function buildCanvasSizeFormViewModel(canvasSize, message, currentUser, isEdit) {
const viewCanvasSize = Object.assign(buildDefaultCanvasSize(), canvasSize || {});
return {
title: isEdit ? 'Edit canvas size' : 'Add canvas size',
active: 'canvas-sizes',
message: message,
currentUser: currentUser || null,
canvasSize: viewCanvasSize,
inUse: Boolean(viewCanvasSize && viewCanvasSize.inUse),
isEdit: Boolean(isEdit),
formAction: isEdit && viewCanvasSize ? '/canvas-sizes/' + viewCanvasSize.id : '/canvas-sizes',
formAttrs: 'data-async-save' + (isEdit ? ' data-async-save-close-url="/canvas-sizes"' : ' data-async-save-new-redirect="response-url"') + ' data-async-save-new-url="/canvas-sizes/new"',
cancelUrl: '/canvas-sizes',
deleteUrl: isEdit && viewCanvasSize ? '/canvas-sizes/' + viewCanvasSize.id + '/delete' : '',
deleteConfirmMessage: 'Delete this canvas size?',
deleteDisabled: !isEdit || Boolean(viewCanvasSize && viewCanvasSize.inUse)
};
}
module.exports = {
buildCanvasSizeFormViewModel: buildCanvasSizeFormViewModel
};