33 lines
1.2 KiB
JavaScript
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
|
|
}; |