/*-
 * ~~~~~~licensing~~~~~~
 * entaxy-management-plugin
 * ==========
 * Copyright (C) 2020 - 2025 EmDev LLC
 * ==========
 * You may not use this file except in accordance with the License Terms of the Copyright
 * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
 * rights to the Software and any copies are the property of the Copyright Holder. Unless
 * it is explicitly allowed the Copyright Holder, the User is prohibited from using the
 * Software for commercial purposes to provide services to third parties.
 * 
 * The Copyright Holder hereby declares that the Software is provided on an "AS IS".
 * Under no circumstances does the Copyright Holder guarantee or promise that the
 * Software provided by him will be suitable or not suitable for the specific purposes
 * of the User, that the Software will meet all commercial and personal subjective
 * expectations of the User, that the Software will work properly, without technical
 * errors, quickly and uninterruptedly.
 * 
 * Under no circumstances shall the Copyright Holder or its Affiliates is not liable
 * to the User for any direct or indirect losses of the User, his expenses or actual
 * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
 * or damage to data, property, etc.
 * ~~~~~~/licensing~~~~~~
 */
var Entaxy;
(function (Entaxy) {
    Entaxy._module.component('entaxyUserManagement', {
        template:
        `
          <entaxy-users change-selection="$ctrl.changeSelection" selected-username="$ctrl.selectedUsername"
                reload-fn="$ctrl.reload"></entaxy-users>
              
          <h2>Groups</h2>
          <entaxy-groups-table reload-fn="$ctrl.reload"></entaxy-groups-table>
        `,
        controller: EntaxyUserManagementController
    })
    .name;

    function EntaxyUserManagementController($cookies, $route) {
        'ngInject';

        let ctrl = this;
        const SELECTED_USER_KEY = 'selectedUser';

        ctrl.$onInit = function () {
            let selectedUser = $cookies.getObject(SELECTED_USER_KEY);
            if (selectedUser) {
                ctrl.selectedUsername = selectedUser;
                $cookies.remove(SELECTED_USER_KEY);
            }
        }

        ctrl.changeSelection = function (itemName) {
            ctrl.selectedUsername = itemName;
        }

        ctrl.reload = function (username) {
            if (ctrl.selectedUsername !== username) {
                $cookies.putObject(SELECTED_USER_KEY, ctrl.selectedUsername);
            }
            $route.reload();
        }
    }
    EntaxyUserManagementController.$inject = ['$cookies', '$route'];

})(Entaxy || (Entaxy = {}));
