{#
/**
 * 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/>.
 */
#}

{% extends "form-base.twig" %}
{% import "forms.twig" as forms %}

{% block formTitle %}
    {% trans "Add Column" %}
{% endblock %}

{% block formButtons %}
    {% trans "Help" %}, XiboHelpRender("{{ help }}")
    {% trans "Cancel" %}, XiboDialogClose()
    {% trans "Save" %}, $("#dataSetColumnAddForm").submit()    
{% endblock %}

{% block formFieldActions %}
[
    {
      "field": "dataSetColumnTypeId", "trigger": "init",
      "operation": "equals", "value": "1",
      "actions": { ".formula": { "display": "none" }, ".listContent": { "display": "" }, ".remoteField": { "display": "none" } }
    },{
      "field": "dataSetColumnTypeId", "trigger": "change",
      "operation": "equals", "value": "1",
      "actions": { ".formula": { "display": "none" }, ".listContent": { "display": "" }, ".remoteField": { "display": "none" } }
    },
    {
      "field": "dataSetColumnTypeId", "trigger": "init",
      "operation": "equals", "value": "2",
      "actions": { ".formula": { "display": "" }, ".listContent": { "display": "none" }, ".remoteField": { "display": "none" } }
    },{
      "field": "dataSetColumnTypeId", "trigger": "change",
      "operation": "equals", "value": "2",
      "actions": { ".formula": { "display": "" }, ".listContent": { "display": "none" }, ".remoteField": { "display": "none" } }
    },
    {
      "field": "dataSetColumnTypeId", "trigger": "init",
      "operation": "equals", "value": "3",
      "actions": { ".formula": { "display": "none" }, ".listContent": { "display": "none" }, ".remoteField": { "display": "" } }
    },{
      "field": "dataSetColumnTypeId", "trigger": "change",
      "operation": "equals", "value": "3",
      "actions": { ".formula": { "display": "none" }, ".listContent": { "display": "none" }, ".remoteField": { "display": "" } }
    }
]
{% endblock %}

{% block formHtml %}
    <div class="row">
        <div class="col-md-12">
            <form id="dataSetColumnAddForm" class="XiboForm form-horizontal" method="post" action="{{ url_for("dataSet.column.add", {id: dataSet.dataSetId}) }}">
                    {% set title %}{% trans "Heading" %}{% endset %}
                    {% set helpText %}{% trans "The heading for this Column" %}{% endset %}
                    {{ forms.input("heading", title, "", helpText, "", "required") }}

                    {% set title %}{% trans "Column Type" %}{% endset %}
                    {% set helpText %}{% trans "Select the Column Type" %}{% endset %}
                    {{ forms.dropdown("dataSetColumnTypeId", "single", title, "", dataSetColumnTypes, "dataSetColumnTypeId", "dataSetColumnType", helpText) }}

                    {% set title %}{% trans "Data Type" %}{% endset %}
                    {% set helpText %}{% trans "The DataType of the Intended Data" %}{% endset %}
                    {{ forms.dropdown("dataTypeId", "single", title, "", dataTypes, "dataTypeId", "dataType", helpText) }}

                    {% set title %}{% trans "List Content" %}{% endset %}
                    {% set helpText %}{% trans "A comma separated list of items to present in a combo box" %}{% endset %}
                    {{ forms.input("listContent", title, "", helpText, "listContent") }}
                    
                    {% set title %}{% trans "Remote Data Path" %}{% endset %}
                    {% if dataSet.sourceId == 1 %}
                        {% set helpText %}{% trans "Give the JSON-path in the remote data for the value that you want to fill this column. This path should be relative to the DataRoot configured on the DataSet." %}{% endset %}
                    {% else %}
                        {% set helpText %}{% trans "Provide Column number relative to the spreadsheet, numeration starts from 0 ie to get values from Column A from spreadsheet to this column enter 0" %}{% endset %}
                    {% endif %}
                    {{ forms.input("remoteField", title, dataSetColumn.remoteField, helpText, "remoteField") }}

                    {% set title %}{% trans "Column Order" %}{% endset %}
                    {% set helpText %}{% trans "The order this column should be displayed in when entering data" %}{% endset %}
                    {{ forms.number("columnOrder", title, "", helpText) }}

                    {% set title %}{% trans "Formula" %}{% endset %}
                    {% set helpText %}{% trans "A formula to use as a calculation for formula column types" %}{% endset %}
                    {{ forms.input("formula", title, "", helpText, "formula") }}

                    {% set title %}{% trans "Filter?" %}{% endset %}
                    {% set helpText %}{% trans "Show as a filter option on the Data Entry Page?" %}{% endset %}
                    {{ forms.checkbox("showFilter", title, "", helpText) }}

                    {% set title %}{% trans "Sort?" %}{% endset %}
                    {% set helpText %}{% trans "Enable sorting on the Data Entry Page? We recommend that the number of sortable columns is kept to a minimum." %}{% endset %}
                    {{ forms.checkbox("showSort", title, "", helpText) }}

                    {% set message %}{% trans "Two substitutions are available for Formula columns: [DisplayId] and [DisplayGeoLocation]. They will be substituted at run time with the Display ID / Display Geo Location (MySQL GEOMETRY)." %}{% endset %}
                    {{ forms.message(message, "alert alert-info formula") }}
            </form>
        </div>
    </div>
{% endblock %}