{#
/**
 * Copyright (C) 2020-2023 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 <http://www.gnu.org/licenses/>.
 */
#}

{% set randomId = random() %}

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

{% block formTitle %}
    {% set displayGroupName = displayGroup.displayGroup %}
    {% trans %}Manage Membership for {{ displayGroupName }}{% endtrans %}
{% endblock %}

{% block formButtons %}
    {% trans "Cancel" %}, XiboDialogClose()
    {% trans "Save" %}, forms.membersFormSubmit("{{ randomId }}")
{% endblock %}

{% block callBack %}forms.membersFormOpen{% endblock %}

{% block extra %}{{ extra|json_encode|raw }}{% endblock %}

{% block formHtml %}
    <div class="row">
        <div class="col-md-12">
            <div id="{{ randomId }}" class="div-horizontal controlDiv"
                 data-display="true"
                 data-display-get-url="{{ url_for("display.search") }}"
                 data-display-param="displayId"
                 data-display-param-unassign="unassignDisplayId"
                 data-display-url="{{ url_for("displayGroup.assign.display", {id: displayGroup.displayGroupId}) }}"
                 data-display-groups="true"
                 data-display-groups-get-url="{{ url_for("displayGroup.search") }}"
                 data-display-groups-param="displayGroupId"
                 data-display-groups-param-unassign="unassignDisplayGroupId"
                 data-display-groups-url="{{ url_for("displayGroup.assign.displayGroup", {id: displayGroup.displayGroupId}) }}"
            >
                <ul class="nav nav-tabs" role="tablist">
                    <li class="nav-item"><a class="nav-link active" href="#displayTab" role="tab" data-toggle="tab"><span>{% trans "Displays" %}</span></a></li>
                    <li class="nav-item"><a class="nav-link" href="#displayGroupTab" role="tab" data-toggle="tab"><span>{% trans "Display Groups" %}</span></a></li>
                    <li class="nav-item"><a class="nav-link" href="#treeTab" role="tab" data-toggle="tab"><span>{% trans "Relationship Tree" %}</span></a></li>
                </ul>
                <div class="tab-content">
                    <div class="tab-pane active" id="displayTab">
                        {% set helpText %}{% trans %}Check or un-check the options against each display to control whether they are a member or not.{% endtrans %}{% endset %}
                        {{ forms.message(helpText) }}
                        <div class="XiboGrid" id="{{ random() }}">
                            <div class="XiboFilter card mb-3 bg-light">
                                <div class="FilterDiv card-body" id="Filter">
                                    <form class="form-inline" id="displayForm">
                                        {% set title %}{% trans "Name" %}{% endset %}
                                        {{ inline.input("display", title) }}
                                        
                                        {% set title %}{% trans "Authorised" %}{% endset %}
                                        {% set values = [{id: -1, value: ""}, {id: 1, value: "Yes"}, {id: 0, value: "No"}] %}
                                        {{ inline.dropdown("authorised", "single", title, -1, values, "id", "value") }}

                                        {{ inline.hidden("displayGroupIdMembers", displayGroup.displayGroupId) }}
                                    </form>
                                </div>
                            </div>
                            <table id="displaysMembersTable" class="table table-bordered membersTable">
                                <thead>
                                    <tr>
                                        <th>{% trans "ID" %}</th>
                                        <th>{% trans "Display" %}</th>
                                        <th>{% trans "Status" %}</th>
                                        <th>{% trans "Logged In" %}</th>
                                        <th>{% trans "Version" %}</th>
                                        <th>{% trans "Member" %}</th>
                                    </tr>
                                </thead>
                                <tbody>
                                </tbody>
                            </table>
                        </div>
                    </div>
                    <div class="tab-pane" id="displayGroupTab">
                        {% set helpText %}{% trans %}Check or un-check the options against each display group to control whether they are a member or not.{% endtrans %}{% endset %}
                        {{ forms.message(helpText) }}
                        <div class="XiboGrid" id="{{ random() }}">
                            <div class="XiboFilter card mb-3 bg-light">
                                <div class="FilterDiv card-body" id="Filter">
                                    <form class="form-inline" id="displayGroupForm">
                                        {% set title %}{% trans "Name" %}{% endset %}
                                        {{ inline.input("displayGroup", title) }}

                                        {{ inline.hidden("displayGroupIdMembers", displayGroup.displayGroupId) }}
                                        {{ forms.hidden("isDynamic", 0) }}
                                    </form>
                                </div>
                            </div>
                            <table id="displaysGroupsMembersTable" class="table table-bordered membersTable" style="width: 100%">
                                <thead>
                                    <tr>
                                        <th>{% trans "ID" %}</th>
                                        <th>{% trans "Display Group" %}</th>
                                        <th>{% trans "Member" %}</th>
                                    </tr>
                                </thead>
                                <tbody>
                                </tbody>
                            </table>
                        </div>
                    </div>
                    <div class="tab-pane" id="treeTab">
                        {% set helpText %}{% trans %}Below is the family tree for this Display Group.{% endtrans %}{% endset %}
                        {{ forms.message(helpText) }}

                        {% set helpText %}{% trans %}The Display Group being edited is in bold. The list is ordered so that items above the current Display Group are its ancestors and items below are its descendants.{% endtrans %}{% endset %}
                        {{ forms.message(helpText) }}
                        <ul>
                            {% for group in tree %}
                                {% if group.displayGroup == displayGroup.displayGroup %}
                                    <li><strong>{{ group.displayGroup }}</strong></li>
                                {% else %}
                                    <li><a class="XiboFormButton" href="{{ url_for("displayGroup.members.form", {"id": group.displayGroupId}) }}">{{ group.displayGroup }}</a></li>
                                {% endif %}
                            {% endfor %}
                        </ul>
                    </div>
                </div>
            </div>
        </div>
    </div>
{% endblock %}