{#
/**
 * Copyright (C) 2020 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 <http://www.gnu.org/licenses/>.
 */
#}
<script type="text/javascript">

    // Runs after form opens
    function ticker_form_edit_open() {
        // Update form fields based on template options
        var updateTemplateOptions = function() {
            var templates = $(this).data().extra.templates;
            var templateId = $(this).find('#templateId').val();
            var $form = $(this);

            // Hide all options first
            $form.find('.template-option').addClass('d-none');

            // Options from template handling
            $.each(templates, function(templateIndex, template) {
                if(template.id == templateId) {
                    for (const key in template.options) {
                        if (Object.hasOwnProperty.call(template.options, key)) {
                            var element = template.options[key];
                            $form.find('.template-option-' + key).toggleClass('d-none', !template.options[key]);
                        }
                    }
                }
            });
        }.bind(this);

        // Set duration field, using the helper ()
        formHelpers.setupCheckboxInputFields($(this).find('form'), '#useDuration', '.duration-fields');

        // Set override template field, using the helper ()
        formHelpers.setupCheckboxInputFields($(this), '#overrideTemplate', '.template-override-controls', '.template-selector-control');

        // Set effect type input field, using the helper ()
        formHelpers.setupObjectValueInputFields($(this).find('form'), '#effect', ['.effect-controls'], ['none'], true);

        // Setup editors
        formHelpers.setupDualTypeTextArea(this, 'ta_text', !$(this).data('formEditorOnly'));

        // Initialise CKEditor for the noDataMessage
        formHelpers.setupDualTypeTextArea(this, 'noDataMessage');

        // Setup template override
        formHelpers.setupTemplateOverriding(this, '#overrideTemplate', '#templateId', 
            {
                '#ta_text_advanced': 'defaultVisualEditor',
                '#ta_text': 'template',
                '#ta_css': 'css'
            });

        // Tidy up colorpickers on modal close
        if($(this).hasClass('modal')) {
            $(this).on("hide.bs.modal", function(e) {
                if(e.namespace === 'bs.modal') {
                    // Remove colour pickers
                    destroyColorPicker($(this).find(".XiboColorPicker"));
                }
            });
        }

        $(this).find('#templateId').on('change', updateTemplateOptions);

        formHelpers.setupPhpDateFormatPopover($(this))

        updateTemplateOptions();
    }

    // Runs before form submit
    function ticker_form_edit_submit() {

        // Update text callback fields
        formHelpers.updateCKEditor();
    }
</script>

<style>
    .popover{
        max-width: 100%;
    }
</style>