{#
/**
 * Copyright (C) 2024 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/>.
 */
#}

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

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

{% block formButtons %}
    {% trans "Cancel" %}, XiboDialogClose()
    {% trans "Save" %}, $("#userAddForm").submit()
{% endblock %}

{% block callBack %}userFormOpen{% endblock %}

{% block formHtml %}
    <div class="row">
        <div class="col-md-12">
            <ul class="nav nav-tabs" role="tablist">
                <li class="nav-item"><a class="nav-link active" href="#general" role="tab" data-toggle="tab"><span>{% trans "Details" %}</span></a></li>
                {% if currentUser.featureEnabled("folder.userHome") %}
                    <li class="nav-item"><a class="nav-link" href="#home-folder" role="tab" data-toggle="tab"><span>{% trans "Home Folder" %}</span></a></li>
                {% endif %}
                <li class="nav-item"><a class="nav-link" href="#reference" role="tab" data-toggle="tab"><span>{% trans "Reference" %}</span></a></li>
                {% if currentUser.userTypeId == 1 %}
                    <li class="nav-item"><a class="nav-link" href="#notifications" role="tab" data-toggle="tab"><span>{% trans "Notifications" %}</span></a></li>
                {% endif %}
                <li class="nav-item"><a class="nav-link" href="#optionsTab" role="tab" data-toggle="tab"><span>{% trans "Options" %}</span></a></li>
            </ul>
            <form id="userAddForm" class="UserForm form-horizontal" method="post" action="{{ url_for("user.add") }}">
                <div class="tab-content">
                    <div class="tab-pane active" id="general">
                        {% set title %}{% trans "Username" %}{% endset %}
                        {% set helpText %}{% trans "The Username of the user." %}{% endset %}
                        {{ forms.input("userName", title, "", helpText, "", "required maxlength='50'") }}

                        {% set title %}{% trans "Password" %}{% endset %}
                        {% set helpText %}{% trans "The Password for this user." %}{% endset %}
                        {{ forms.password("password", title, "", helpText, "", "required") }}

                        {% set title %}{% trans "Email" %}{% endset %}
                        {% set helpText %}{% trans "The Email Address for this user." %}{% endset %}
                        {{ forms.email("email", title, "", helpText) }}

                        {% set title %}{% trans "User Type" %}{% endset %}
                        {% set helpText %}{% trans "What is this users type?" %}{% endset %}
                        {{ forms.dropdown("userTypeId", "single", title, options.defaultUserType, options.userTypes, "userTypeId", "userType", helpText) }}

                        {% set title %}{% trans "Library Quota" %}{% endset %}
                        {% set helpText %}{% trans "The quota that should be applied. Enter 0 for no quota." %}{% endset %}
                        <div class="form-group row">
                            <label class="col-sm-2 control-label" for="libraryQuota">{{ title }}</label>
                            <div class="col-sm-6">
                                <input class="form-control" name="libraryQuota" type="number" id="libraryQuota" min="0" />
                                <span class="help-block">{{ helpText }}</span>
                            </div>
                            <div class="col-sm-4">
                                <select name="libraryQuotaUnits" class="form-control">
                                    <option value="kb">KiB</option>
                                    <option value="mb">MiB</option>
                                    <option value="gb">GiB</option>
                                </select>
                            </div>
                        </div>

                        {% set attributes = [
                        { name: "data-live-search", value: "true" },
                        { name: "data-placeholder--id", value: null },
                        { name: "data-placeholder--value", value: "" },
                        { name: "data-search-url", value: url_for("group.search") },
                        { name: "data-search-term", value: "group" },
                        { name: "data-id-property", value: "groupId" },
                        { name: "data-text-property", value: "group" },
                        { name: "data-initial-key", value: "userGroupId" },
                        { name: "data-initial-value", value: options.defaultGroupId },
                        { name: "data-selected-text-format", value: "count > 4" }
                        ] %}

                        {% set title %}{% trans "Initial User Group" %}{% endset %}
                        {% set helpText %}{% trans "Select a User Group for this User so that they get access to the parts of the application they need." %}{% endset %}
                        {{ forms.dropdown("groupId", "single", title, null, [], "groupId", "group", helpText, "pagedSelect", "", "", "", attributes) }}

                        {{ forms.message("User Groups are an easy way to configure a set of features and sharing which can be applied to multiple users. After adding a User they can be assigned to multiple Groups or have individual sharing assigned to them directly."|trans, "card p-3 mb-3 bg-light") }}

                        {% set title %}{% trans "Homepage" %}{% endset %}
                        {% set helpText %}{% trans "Homepage for this user. This is the page they will be taken to when they login." %}{% endset %}
                        <div class="form-group row">
                            <label class="col-sm-2 control-label" for="homePageId">{{ title }}</label>
                            <div class="col-sm-10">
                                <select name="homePageId" class="form-control homepage-select" required data-search-url="{{ url_for("user.homepages.search") }}">
                                </select>
                                <span class="help-block">{{ helpText }}</span>
                            </div>
                        </div>
                    </div>
                    {% if currentUser.featureEnabled("folder.userHome") %}
                        <div class="tab-pane" id="home-folder">
                            <p>{{ "Set a home folder to use as the default folder for new content."|trans }}</p>
                            {{ forms.hidden("homeFolderId", 1) }}
                            <div id="container-form-folder-tree" class="card card-body bg-light"></div>
                        </div>
                    {% endif %}
                    <div class="tab-pane" id="reference">
                        {% set title %}{% trans "First Name" %}{% endset %}
                        {% set helpText %}{% trans "The User's First Name." %}{% endset %}
                        {{ forms.input("firstName", title, "", helpText, "", "maxlength='254'") }}

                        {% set title %}{% trans "Last Name" %}{% endset %}
                        {% set helpText %}{% trans "The User's Last Name." %}{% endset %}
                        {{ forms.input("lastName", title, "", helpText, "", "maxlength='254'") }}

                        {% set title %}{% trans "Phone Number" %}{% endset %}
                        {% set helpText %}{% trans "The User's Phone Number." %}{% endset %}
                        {{ forms.input("phone", title, "", helpText, "", "maxlength='254'") }}

                        {% set title %}{% trans "Reference 1" %}{% endset %}
                        {% set helpText %}{% trans "A reference field for custom user data" %}{% endset %}
                        {{ forms.input("ref1", title, "", helpText, "", "maxlength='254'") }}

                        {% set title %}{% trans "Reference 2" %}{% endset %}
                        {% set helpText %}{% trans "A reference field for custom user data" %}{% endset %}
                        {{ forms.input("ref2", title, "", helpText, "", "maxlength='254'") }}

                        {% set title %}{% trans "Reference 3" %}{% endset %}
                        {% set helpText %}{% trans "A reference field for custom user data" %}{% endset %}
                        {{ forms.input("ref3", title, "", helpText, "", "maxlength='254'") }}

                        {% set title %}{% trans "Reference 4" %}{% endset %}
                        {% set helpText %}{% trans "A reference field for custom user data" %}{% endset %}
                        {{ forms.input("ref4", title, "", helpText, "", "maxlength='254'") }}

                        {% set title %}{% trans "Reference 5" %}{% endset %}
                        {% set helpText %}{% trans "A reference field for custom user data" %}{% endset %}
                        {{ forms.input("ref5", title, "", helpText, "", "maxlength='254'") }}
                    </div>
                    {% if currentUser.userTypeId == 1 %}
                    <div class="tab-pane" id="notifications">
                        {% set title %}{% trans "Receive System Notifications?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User receive system notifications?" %}{% endset %}
                        {{ forms.checkbox("isSystemNotification", title, 0, helpText) }}

                        {% set title %}{% trans "Receive Display Notifications?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User receive Display notifications for Displays they have permission to see?" %}{% endset %}
                        {{ forms.checkbox("isDisplayNotification", title, 0, helpText) }}

                        {% set title %}{% trans "Receive DataSet Notifications?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User receive DataSet notification emails?" %}{% endset %}
                        {{ forms.checkbox("isDataSetNotification", title, 0, helpText) }}

                        {% set title %}{% trans "Receive Layout Notifications?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User receive Layout notification emails?" %}{% endset %}
                        {{ forms.checkbox("isLayoutNotification", title, 0, helpText) }}

                        {% set title %}{% trans "Receive Library Notifications?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User receive Library notification emails?" %}{% endset %}
                        {{ forms.checkbox("isLibraryNotification", title, 0, helpText) }}

                        {% set title %}{% trans "Receive Report Notifications?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User receive Report notification emails?" %}{% endset %}
                        {{ forms.checkbox("isReportNotification", title, 0, helpText) }}

                        {% set title %}{% trans "Receive Schedule Notifications?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User receive Schedule notification emails?" %}{% endset %}
                        {{ forms.checkbox("isScheduleNotification", title, 0, helpText) }}

                        {% set title %}{% trans "Receive Custom Notifications?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User receive notifications emails for Notifications manually created in CMS?" %}{% endset %}
                        {{ forms.checkbox("isCustomNotification", title, 0, helpText) }}
                    </div>
                    {% endif %}
                    <div class="tab-pane" id="optionsTab">
                        {% set title %}{% trans "Hide navigation?" %}{% endset %}
                        {% set helpText %}{% trans "Should the navigation side bar be hidden for this User?" %}{% endset %}
                        {{ forms.checkbox("hideNavigation", title, 0, helpText) }}

                        {% set title %}{% trans "Hide User Guide?" %}{% endset %}
                        {% set helpText %}{% trans "Should this User see the new user guide when they log in?" %}{% endset %}
                        {{ forms.checkbox("newUserWizard", title, 0, helpText) }}

                        {% set title %}{% trans "Force Password Change" %}{% endset %}
                        {% set helpText %}{% trans "Should this User be forced to change password next time they log in?" %}{% endset %}
                        {{ forms.checkbox("isPasswordChangeRequired", title, 0, helpText) }}
                    </div>
                </div>
            </form>
        </div>
    </div>
{% endblock %}