Initial Upload

This commit is contained in:
Matt Batchelder
2025-12-02 10:32:59 -05:00
commit 05ce0da296
2240 changed files with 467811 additions and 0 deletions

View File

@@ -0,0 +1,147 @@
{#
/**
* 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 %}