{# /* * Copyright (C) 2025 Xibo Signage Ltd * * Xibo - Digital Signage - https://xibosignage.com * * This file is part of Xibo. * * Xibo is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * Xibo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Xibo. If not, see . */ #} {% extends "form-base.twig" %} {% import "forms.twig" as forms %} {% block formTitle %} {% trans "Schedule Event" %} {% endblock %} {% block callBack %}setupScheduleForm{% endblock %} {% set formId %}{% if addForm %}scheduleAddForm{% else %}scheduleEditForm{% endif %}{% endset %} {% block formHtml %}
{# Step links #}
1

{{ "Content"|trans }}

2

{{ "Displays"|trans }}

3

{{ "Time"|trans }}

4

{{ "Optional"|trans }}

{% set dayPartMessage %}{% trans "Select the start time for this event" %}{% endset %} {% set notDayPartMessage %}{% trans "Start and end time will be defined by the daypart's configuration for this day of the week. Use a repeating schedule to apply this event over multiple days" %}{% endset %}
{# Step 1 - Content #}
{% if hideEventType %} {{ forms.hidden("eventTypeId", event.eventTypeId) }} {% else %} {% set title %}{% trans "Event Type" %}{% endset %} {% set helpText %}{% trans "Select the type of event to schedule" %}{% endset %} {{ forms.dropdown("eventTypeId", "single", title, event.eventTypeId, eventTypes, "eventTypeId", "eventTypeName", helpText) }} {% endif %} {# Campaign / Layout list. We want to build two arrays for us to use. #} {% set attributes = [ { name: "data-search-url", value: url_for("campaign.search") ~ "?type=list" }, { name: "data-search-is-layout-specific", value: -1 }, { name: "data-trans-layout", value: "Layout"|trans }, { name: "data-trans-layout-help-text", value: "Please select a Layout for this Event to show"|trans }, { name: "data-trans-campaign", value: "Campaign"|trans }, { name: "data-trans-campaign-help-text", value: "Please select a Campaign for this Event to show"|trans }, { name: "data-search-term", value: "campaign" }, { name: "data-id-property", value: "campaignId" }, { name: "data-text-property", value: "campaign" }, { name: "data-selected-property", value: "selected" }, { name: "data-additional-property", value: "hasFullScreenLayout" }, { name: "data-initial-key", value: "campaignId"}, { name: "data-initial-value", value: (event.campaignId is not empty ? event.campaignId : event.getUnmatchedProperty("campaignId")) } ] %} {% set title %}{% if fromCampaign %}{% trans "Campaign" %}{% else %}{% trans "Layout" %}{% endif %}{% endset %} {% set helpText %}{% trans "Please select a Layout for this Event to show" %}{% endset %} {{ forms.dropdown("campaignId", "single", title, event.campaignId, [campaign], "campaignId", "campaign", helpText, "layout-control pagedSelect", "", "", "", attributes, "", "", "", readonlySelect) }} {# Image/Video #} {% set attributes = [ { name: "data-width", value: "100%" }, { name: "data-search-url", value: url_for('library.search') ~ "?fullScreenScheduleCheck=true&types[]=image&types[]=video" }, { name: "data-search-term", value: "media" }, { name: "data-id-property", value: "mediaId" }, { name: "data-text-property", value: "name" }, { name: "data-selected-property", value: "selected" }, { name: "data-additional-property", value: "hasFullScreenLayout" }, { name: "data-initial-key", value: "mediaId"}, { name: "data-initial-value", value: (mediaId is not empty ? mediaId : event.getUnmatchedProperty("mediaId")) } ] %} {% set title %}{% trans "Media" %}{% endset %} {% set helpText %}{% trans "Select a Media file from the Library to use. The selected file will be shown full screen for this event." %}{% endset %} {{ forms.dropdown("mediaId", "single", title, "", null, "mediaId", "name", helpText, "media-control full-screen-control pagedSelect", "", "d", "", attributes) }} {# Playlist #} {% set attributes = [ { name: "data-width", value: "100%" }, { name: "data-search-url", value: url_for("playlist.search") ~ "?fullScreenScheduleCheck=true" }, { name: "data-search-term", value: "name" }, { name: "data-id-property", value: "playlistId" }, { name: "data-text-property", value: "name" }, { name: "data-selected-property", value: "selected" }, { name: "data-additional-property", value: "hasFullScreenLayout" }, { name: "data-initial-key", value: "playlistId"}, { name: "data-initial-value", value: (playlistId is not empty ? playlistId : event.getUnmatchedProperty("playlistId")) } ] %} {% set title %}{% trans "Playlist" %}{% endset %} {% set helpText %}{% trans "Select a Playlist to use. The selected playlist will be shown full screen for this event." %}{% endset %} {{ forms.dropdown("playlistId", "single", title, "", null, "playlistId", "name", helpText, "playlist-control full-screen-control pagedSelect", "", "d", "", attributes) }}
{% trans "Preview" %} {% trans "Preview your selection in a new tab" %}
{% set title %}{% trans "Sync Group" %}{% endset %} {% set helpText %}{% trans "Please select existing Sync Group" %}{% endset %} {% set attributes = [ { name: "data-width", value: "100%" }, { name: "data-search-url", value: url_for("syncgroup.search") ~ "?hasLeadDisplay=1" }, { name: "data-search-term", value: "name" }, { name: "data-id-property", value: "syncGroupId" }, { name: "data-text-property", value: "name" }, { name: "data-initial-key", value: "syncGroupId"}, { name: "data-initial-value", value: event.syncGroupId} ] %} {{ forms.dropdown("syncGroupId", "single", title, "", null, "syncGroupId", "name", helpText, "pagedSelect sync-group-control", "", "", "", attributes) }} {% set title %}{% trans "Action Type" %}{% endset %} {% set helpText %}{% trans "Please select action Type" %}{% endset %} {% set navLayout %}{% trans "Navigate to Layout" %}{% endset %} {% set command %}{% trans "Command" %}{% endset %} {% set options = [ { typeid: "navLayout", type: navLayout }, { typeid: "command", type: command }, ] %} {{ forms.dropdown("actionType", "single", title, event.actionType, options, "typeid","type", helpText, 'action-control') }} {% set title %}{% trans "Trigger Code" %}{% endset %} {% set helpText %}{% trans "Web hook trigger code for this Action" %}{% endset %} {{ forms.input("actionTriggerCode", title, event.actionTriggerCode, helpText, 'action-control') }} {% set title %}{% trans "Layout Code" %}{% endset %} {% set helpText %}{% trans "Please select the Code identifier for the Layout that Player should navigate to when this Action is triggered." %}{% endset %} {% set attributes = [ { name: "data-width", value: "100%" }, { name: "data-search-url", value: url_for("layout.code.search") }, { name: "data-search-term", value: "code" }, { name: "data-id-property", value: "code" }, { name: "data-text-property", value: "code" }, { name: "data-initial-key", value: "code" }, { name: "data-initial-value", value: event.actionLayoutCode }, ] %} {{ forms.dropdown("actionLayoutCode", "single", title, "", null, "code", "code", helpText, "pagedSelect action-control layout-code-control", "", "", "", attributes) }} {% set title %}{% trans "Command" %}{% endset %} {% set helpText %}{% trans "Please select a command for this Event." %}{% endset %} {% set attributes = [ { name: "data-width", value: "100%" }, { name: "data-search-url", value: url_for("command.search") }, { name: "data-search-term", value: "command" }, { name: "data-id-property", value: "commandId" }, { name: "data-text-property", value: "command" }, { name: "data-initial-key", value: "commandId" }, { name: "data-initial-value", value: event.commandId }, ] %} {{ forms.dropdown("commandId", "single", title, "", null, "commandId", "command", helpText, "pagedSelect command-control", "", "", "", attributes) }} {% set title %}{% trans "DataSet" %}{% endset %} {% set helpText %}{% trans "Please select the real time DataSet related to this Data Connector event" %}{% endset %} {% set attributes = [ { name: "data-width", value: "100%" }, { name: "data-search-url", value: url_for("dataSet.search") ~ "?isRealTime=1" }, { name: "data-search-term", value: "dataSet" }, { name: "data-id-property", value: "dataSetId" }, { name: "data-text-property", value: "dataSet" }, { name: "data-initial-key", value: "dataSetId" }, { name: "data-initial-value", value: event.dataSetId }, ] %} {{ forms.dropdown("dataSetId", "single", title, "", event.dataSetId, "dataSetId", "dataSet", helpText, "pagedSelect data-connector-control", "", "", "", attributes) }} {% set title %}{% trans "Data Connector Parameters" %}{% endset %} {% set helpText %}{% trans "Optionally provide any parameters to be used by the Data Connector." %}{% endset %} {{ forms.input("dataSetParams", title, event.dataSetParams, helpText, 'data-connector-control') }}
{# Step 2 - Displays #} {# Step 3 - Time #} {# Step 4 - Optional #}
{% endblock %}