Files
pulse-signage/src/web/routes/signage/screens/form-view-model.js
T
2026-08-05 19:38:16 +01:00

33 lines
1.2 KiB
JavaScript

// Shared screen form view-model builder.
function buildScreenFormViewModel(screen, data, message, currentUser, isEdit) {
const viewScreen = Object.assign({
name: '',
slug: '',
playlist_id: null
}, screen || {});
return {
title: isEdit ? 'Edit screen' : 'Add screen',
active: 'screens',
message: message,
currentUser: currentUser || null,
playlists: (data && data.playlists) || [],
screen: viewScreen,
inUse: Boolean(viewScreen.inUse),
isEdit: Boolean(isEdit),
showSaveSecondaryActions: true,
deleteDisabled: Boolean(isEdit) ? Boolean(viewScreen.inUse) : true,
deleteConfirmMessage: Boolean(isEdit) ? 'Delete this screen?' : '',
formAction: Boolean(isEdit) && viewScreen.id ? '/screens/' + viewScreen.id : '/screens',
formAttrs: Boolean(isEdit)
? 'data-async-save data-async-save-close-url="/screens" data-async-save-new-url="/screens/new"'
: 'data-async-save data-async-save-new-redirect="response-url" data-async-save-new-url="/screens/new"',
cancelUrl: '/screens',
deleteUrl: Boolean(isEdit) && viewScreen.id ? '/screens/' + viewScreen.id + '/delete' : ''
};
}
module.exports = {
buildScreenFormViewModel: buildScreenFormViewModel
};