{# /** * Copyright (C) 2021 Xibo Signage Ltd * * Xibo - Digital Signage - http://www.xibo.org.uk * * 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 "Edit Playlist" %} {% endblock %} {% block formButtons %} {% trans "Cancel" %}, XiboDialogClose() {% trans "Save" %}, $("#playlistEditForm").submit() {% endblock %} {% block callBack %}playlistFormOpen{% endblock %} {% block formFieldActions %} [{ "field": "isDynamic", "trigger": "init", "value": false, "operation": "is:checked", "actions": { ".dynamic-message": { "display": "none" }, ".static-message": { "display": "" } } },{ "field": "isDynamic", "trigger": "change", "value": false, "operation": "is:checked", "actions": { ".dynamic-message": { "display": "none" }, ".static-message": { "display": "" } } },{ "field": "isDynamic", "trigger": "init", "value": true, "operation": "is:checked", "actions": { ".dynamic-message": { "display": "" }, ".static-message": { "display": "none" } } },{ "field": "isDynamic", "trigger": "change", "value": true, "operation": "is:checked", "actions": { ".dynamic-message": { "display": "" }, ".static-message": { "display": "none" } } }] {% endblock %} {% block formHtml %}
{% if currentUser.featureEnabled('folder.view') %}
{{ forms.hidden('folderId', playlist.folderId) }} {% endif %} {% set title %}{% trans "Name" %}{% endset %} {% set helpText %}{% trans "The Name of the Playlist - (1 - 50 characters)" %}{% endset %} {{ forms.input("name", title, playlist.name, helpText) }} {% if currentUser.featureEnabled("tag.tagging") %} {% set title %}{% trans "Tags" %}{% endset %} {% set helpText %}{% trans "Tags for this Playlist - Comma separated string of Tags or Tag|Value format. If you choose a Tag that has associated values, they will be shown for selection below." %}{% endset %} {{ forms.inputWithTags("tags", title, playlist.getTagString(), helpText, 'tags-with-value') }}

{% set title %}{% trans "Tag value" %}{% endset %} {{ forms.dropdown("tagValue", "single", title, "", options, "key", "value") }}
{% set title %}{% trans "Tag value" %}{% endset %} {% set helpText %}{% trans "Please provide the value for this Tag and confirm by pressing enter on your keyboard." %}{% endset %} {{ forms.input("tagValueInput", title, "", helpText) }}

{% trans "This tag requires a set value, please select one from the Tag value dropdown or provide Tag value in the dedicated field." %}

{% endif %} {% set title %}{% trans "Dynamic?" %}{% endset %} {% set helpText %}{% trans "Is the Playlist to have Library media assignments managed automatically by the CMS based on filter criteria? Set a filter on the next tab." %}{% endset %} {{ forms.checkbox("isDynamic", title, playlist.isDynamic, helpText) }} {% set title %}{% trans "Enable Playlist Stats Collection?" %}{% endset %} {% set helpText %}{% trans "Enable the collection of Proof of Play statistics for this Playlist. Ensure that ‘Enable Stats Collection’ is set to ‘On’ in the Display Settings." %}{% endset %} {% set offOption %}{% trans "Off" %}{% endset %} {% set onOption %}{% trans "On" %}{% endset %} {% set inheritOption %}{% trans "Inherit" %}{% endset %} {% set options = [ { id: "Off", value: offOption }, { id: "On", value: onOption }, { id: "Inherit", value: inheritOption } ] %} {{ forms.dropdown("enableStat", "single", title, playlist.enableStat, options, "id", "value", helpText) }}
{% set message = "Populate with Library Media matching the criteria below and automatically maintain the Playlist."|trans %} {{ forms.message(message) }}
{% trans "Library Media" %}
{% set title %}{% trans "Name filter" %}{% endset %} {{ forms.inputWithLogicalOperator("filterMediaName", title, playlist.filterMediaName, "", "", "", "", playlist.filterMediaNameLogicalOperator) }} {% if currentUser.featureEnabled("tag.tagging") %} {% set title %}{% trans "Tag filter" %}{% endset %} {% set exactTagTitle %}{% trans "Exact match?" %}{% endset %} {% set logicalOperatorTitle %}{% trans "When filtering by multiple Tags, which logical operator should be used?" %}{% endset %} {% set helpText %}{% trans "A comma separated set of tags run against the Media tag to determine membership." %}{% endset %} {{ forms.inputWithTags("filterMediaTag", title, playlist.filterMediaTags, helpText, "", null, null, "exactTags", exactTagTitle, logicalOperatorTitle, playlist.filterExactTags, playlist.filterMediaTagsLogicalOperator) }} {% endif %} {% if currentUser.featureEnabled("folder.view") %} {% set title %}{% trans "Folder Filter" %}{% endset %} {% set helpText %}{% trans "Select a folder to filter the media items." %}{% endset %} {% set attributes = [ { name: "data-width", value: "100%" }, { name: "data-search-url", value: url_for("folders.search") }, { name: "data-filter-options", value: '{"gridView":1}' }, { name: "data-search-term", value: "folderName" }, { name: "data-id-property", value: "folderId" }, { name: "data-text-property", value: "text" }, { name: "data-initial-key", value: "folderId" }, { name: "data-initial-value", value: playlist.filterFolderId }, { name: "data-allow-clear", value: "true" }, { name: "data-placeholder--id", value: null }, { name: "data-placeholder--value", value: "" } ] %} {{ forms.dropdown("filterFolderId", "single", title, playlist.filterFolderId, null, "", "", helpText, "pagedSelect", "", "", "", attributes) }} {% endif %} {% set title %}{% trans "Max number of Items" %}{% endset %} {% set helpText %}{% trans "The upper limit on number of Media items that can be dynamically assigned to this Playlist" %}{% endset %} {{ forms.number("maxNumberOfItems", title, playlist.maxNumberOfItems, helpText, 'dynamic-message', '', '', settings.DEFAULT_DYNAMIC_PLAYLIST_MAXNUMBER_LIMIT) }}
{% if currentUser.featureEnabled("tag.tagging") %}{% endif %}
{% trans "ID" %} {% trans "Name" %} {% trans "Type" %}{% trans "Tags" %}{% trans "Duration" %}
{% set message = "Filter options are not available on a Playlist which isn't dynamic."|trans %} {{ forms.message(message) }}
{% endblock %}