<div class="role-manage" style="height:100%;">
    <div class="menu-header">
        <div class="menu-title" translate="roleTitle"></div>
        <div class="menu-log">
            <a class="btn btn-not-important" href="javascript:void(0)" ng-click="showOperateLogPop()"> <i class="material-icons">description</i><span translate="log"></span></a>
        </div>
    </div>
    <div class="content-container" style="height:100%;">
        <div class="left-container" id="left-container" style="height: calc(100% - 73px)!important">
            <div class="role-list-container" style="height:100%;">
                <div class="search-container">
                    <input class="search-input" type="text" value="" placeholder="{{'Search' | translate}}" ng-model="searchText" /><span class="glyphicon glyphicon-search input-group-addon search-icon"></span>
                </div>
                <div class="search-btn-container">
                    <button ng-disabled="!hasAddPermission" class="btn btn-in-panel-big" ng-click="newRole()"><i class="material-icons button-icons">add_circle_outline</i> {{'createRole' | translate}}</button>
                </div>
                <div style="margin-top: 6px;">
                    <span style="font-weight:bold;margin-left: 10px;">角色列表</span>
                    <div style="float:right; margin-right: 7px; z-index:1000; position:relative;">
                        <span ng-if="hasEditPermission" ng-click="addRoleCategory()">
                            <i class="material-icons button-icons" style="margin-right: 0px;">add_circle_outline</i> {{'addRoleCategory' | translate}}
                        </span>
                        <div class="import-date-pickers" style="line-height:80px;width:523px;top:25px;" ng-show="isShow">
                            <form class="form-horizontal" name="addRoleCategoryForm">
                                <!--角色分类名称-->
                                <div class="search-container" style="width: 250px;float:left;margin-top:23px;">
                                    <input class="search-input" name="roleCategoryName" type="text" value="" placeholder="{{'inputRoleCategoryTitle' | translate}}" ng-model="newRoleCategory" required maxlength="50" />
                                    <span style="color:red" ng-show="addRoleCategoryForm.roleCategoryName.$dirty && addRoleCategoryForm.roleCategoryName.$error.required" translate="Require"></span>
                                </div>
                                <div style="float:left;margin-left:20px;">
                                    <button type="button" class="btn btn-primary"
                                            ng-click="createRoleCategory()" translate="Confirm"
                                            ng-disabled="addRoleCategoryForm.roleCategoryName.$invalid"></button>
                                    <button type="button" class="btn btn-third" data-dismiss="modal" ng-click="cancelRoleCategoryPanel()" translate="Cancel"></button>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
                <div class="clear"></div>
                <div class="role-tree-container" style="height: calc(100% - 113px)!important">
                    <script type="text/ng-template" id="role_tree_node_template">
                        <div class="control"
                             ng-class="{'tree-item-select':role.id===selectedRole.id && !(role.subRoles && role.subRoles.length>0),'role-category':role.subRoles && role.subRoles.length>0}"
                             ng-if="searchText === '' || role.name.toLowerCase().indexOf(searchText.toLowerCase()) > -1"
                             style="padding-left:45px;border-radius:5px;">
                            <div ng-if="role.isRoleCategory" class="expander" style="line-height:20px;" ng-class="{true:'',false:''}[role.id===selectedRole.id && !role.isRoleCategory]">
                                <i class="fa fa-plus tree-i" aria-hidden="true" ng-click="toggle(this)" ng-class="{hidden: !collapsed}"></i>
                                <i class="fa fa-minus tree-i" aria-hidden="true" ng-click="toggle(this)" ng-class="{hidden: collapsed}"></i>
                            </div>
                            <!--角色分类名称-->
                            <div ng-if="role.isRoleCategory || role.id == '00000000-0000-0000-0000-000000000000'"
                                 ng-click="selectRole(role);"
                                 class="root-node"
                                 ng-mouseover="openRolePanel = true"
                                 ng-mouseleave="openRolePanel = false"
                                 title="{{::role.name}}" style="width:95%; padding-right:0px; height:17px;">

                                <div style="float:left; width:85%; white-space:nowrap" inline-edit="role.name"
                                     inline-edit-validation="validateOnServer(newValue,role)"
                                     inline-edit-btn-save="Save"
                                     inline-edit-btn-cancel="Cancel"
                                     inline-edit-delete="deleteRoleCategoryName(role)"
                                     has-edit-permission="hasEditPermission"></div>
                            </div>
                            <!--具体角色-->
                            <span ng-if="!role.isRoleCategory && role.id != '00000000-0000-0000-0000-000000000000'"
                                  title="{{::role.name}}"
                                  ng-bind-template="{{role.name}}"
                                  ng-click="selectRole(role);"
                                  style="white-space: pre;"
                                  class="sub-node" ng-class="{true:'tree-item-select',false:''}[role.id===selectedRole.id]">
                            </span>
                        </div>
                        <ol ui-tree-nodes="" ng-model="role.subRoles" ng-class="{hidden:collapsed}">
                            <li ng-repeat="role in role.subRoles" ui-tree-node ng-include="'role_tree_node_template'">

                            </li>
                        </ol>
                    </script>

                    <perfect-scrollbar class="scroller"
                                       wheel-propagation="true"
                                       wheel-speed="1"
                                       min-scrollbar-length="20"
                                       style="position: relative;height: 100%">
                        <div class="role-tree">
                            <div ui-tree id="tree-root" data-drag-enabled="false" style="margin-left: -29px;margin-top: 12px;">
                                <ol ui-tree-nodes ng-model="roleList">
                                    <li ng-repeat="role in roleList" ui-tree-node ng-include="'role_tree_node_template'">

                                    </li>
                                </ol>
                            </div>
                        </div>
                    </perfect-scrollbar>
                </div>
            </div>
        </div>

        <div class="right-container" id="right-container" style="height: calc(100% - 73px);">
            <div class="align-right" style="margin-top:5px;">
                <export-button style="float: right; margin-right: 0px; margin-top: 7px"><export-button>
            </div>

            <div class="no-data-container" ng-if="roleList==null||roleList.length===0">
                <div class="no-data-icon-container">
                    <div class="no-data-icons">
                        <i class="material-icons no-data-icon">supervisor_account</i>
                    </div>
                </div>

                <div class="no-data-desc">
                    <span translate="NoRoleDisplay"></span>
                </div>
            </div>

            <div class="actionPanel col-md-12" ng-if="isSelected">
                <form class="form-horizontal" name="editRoleForm">
                    <!--处于角色编辑状态下的UI-->
                    <div class="row desc" ng-switch="isEdit">
                        <!--角色名称-->
                        <div for="RoleName" class="col-sm-12 col-md-12 control-label" translate="roleName" ng-switch-when="true" ng-if="isEdit"></div>
                 
                        <div class="col-sm-12 col-md-12" style="word-wrap: break-word;margin-top:2px;">
                            <span ng-switch-when="false" class="role-name">
                                {{selectedRole.name}}
                            </span>
                            <span ng-switch-when="true">
                                <input style="width: 95%;" class="form-control" id="EditRoleName" maxlength="50" ng-model="roleUpdatedModel.editRoleName" name="roleName" required role-name-unique />
                            </span>
                            <span style="color:red" ng-show="editRoleForm.roleName.$error.required" translate="Require"></span>
                            <p ng-show="editRoleForm.roleName.$error.roleNameUnique && (editRoleForm.roleName.$dirty || editRoleForm.$submitted)" class="has-error label">角色已存在,请重新输入</p>
                        </div>

                        <!--角色描述-->
                        <div ng-switch-when="true" translate="roleDesc" class="col-sm-12 col-md-12 control-label" style="margin-top:8px;"></div>
                        <div class="col-sm-12 col-md-12" style="word-wrap: break-word;margin-top:8px;">
                            <label ng-switch-when="false" translate="roleDesc"
                                   class="col-sm-2 col-md-2 control-label"
                                   style="margin-top:-5px;margin-left: -18px; font-weight: normal;" ng-if="false"></label>
                            <div style="display:inline-block;padding:0px 6px 0px 0px;" class="col-sm-12">
                                <span ng-switch-when="false">
                                    {{'roleDesc'|translate}}{{selectedRole.description}}
                                </span>
                            </div>

                            <span ng-switch-when="true">
                                <textarea style="width: 95%;" class="form-control"
                                          id="EditDescription"
                                          ng-model="roleUpdatedModel.editDescription"
                                          maxlength="200"></textarea>
                            </span>
                        </div>
                    </div>
                    <!--保存取消按钮组-->
                    <div class="row" style="margin-top:15px; margin-left:0px;">
                        <div ng-switch="isEdit">
                            <div ng-switch-when="false">
                                <button class="btn btn-primary" style="margin-left:0px;" ng-click="editRole()" ng-disabled="!hasEditPermission">
                                    <i class="fa fa-pencil-square-o icon-user-modify" aria-hidden="true"></i>
                                    <span class="str-modify" translate="Edit"></span>
                                </button>

                                <button class="btn btn-not-important" ng-click="deleteRoleConfirm()" ng-disabled="!hasEditPermission">
                                    <i class="fa fa-trash" aria-hidden="true" ng-click="removeUser(item)"></i>
                                    <span class="str-modify" translate="Delete"></span>
                                </button>


                            </div>
                            <div ng-switch-when="true" style="margin-left: -10px;">
                                <button class="btn btn-primary" ng-disabled="editRoleForm.roleName.$invalid" ng-click="saveRole()">
                                    <i class="fa fa-floppy-o" aria-hidden="true" ng-disabled="editRoleForm.roleName.$invalid"></i>
                                    <span class="str-modify" translate="Save"></span>
                                </button>

                                <button class="btn btn-not-important" ng-click="cancelSave()">
                                    <i class="fa fa-times" aria-hidden="true"></i>
                                    <span class="str-modify" translate="Cancel" ng-disabled="editRoleForm.roleName.$invalid"></span>
                                </button>

                            </div>
                        </div>

                    </div>
                </form>
                <hr />
                <script type="text/ng-template" id="tree_multi_node_template">
                    <div ng-if="item.subMenus && item.subMenus.length > 0" class="expander-container">
                        <i class="fa fa-plus tree-i" aria-hidden="true" ng-click="toggle(this)" ng-class="{hidden: !collapsed}"></i>
                        <i class="fa fa-minus tree-i" aria-hidden="true" ng-click="toggle(this)" ng-class="{hidden: collapsed}"></i>
                    </div>
                    <div ui-tree-handle>
                        <input type="checkbox" ng-disabled="!isEdit" ng-model="item.isChecked" ng-click="toggleItemSub(item)">
                        <div class="tree-menu-item" ng-class="{active:selectedItem == item}" ng-bind-template="{{item.name}}" ng-click="selectMenu(menu)"></div>
                    </div>
                    <ul ui-tree-nodes="" ng-model="item.subMenus" ng-class="{hidden: collapsed}">
                        <li ng-repeat="item in item.subMenus" ui-tree-node ng-include="'tree_multi_node_template'">
                        </li>
                    </ul>
                </script>

                <div class="col-sm-5 col-md-5">
                    <!--角色权限-->
                    <div class="row  tree-header"><span translate="rolePermissionTitle"></span></div>

                    <!-- 加载中 -->
                    <div class="content-padding" ng-show="loadingMenu">
                        <div class="loading-pic">
                            <img alt="loading" src="../../../../app-resources/images/load-indicator.gif" />
                        </div>
                    </div>

                    <div ng-switch="isEdit">
                        <div ng-show="!isEdit" style="height:420px;">
                            <!--显示角色有权限的列表-->
                            <perfect-scrollbar class="scroller"
                                               wheel-propagation="true"
                                               wheel-speed="1"
                                               min-scrollbar-length="20"
                                               style="position: relative;margin-top:15px;">
                                <div class="dx-viewport grid-container">
                                    <div id="GridContainerPermission" dx-tree-view="permissionTreeViewOptions" style="width: 92%;">
                                    </div>
                                </div>
                            </perfect-scrollbar>
                        </div>
                        <div ng-show="isEdit" style="height:420px;">
                            <!--编辑状态下,全部的权限列表-->
                            <perfect-scrollbar class="scroller"
                                               wheel-propagation="true"
                                               wheel-speed="1"
                                               min-scrollbar-length="20"
                                               style="position: relative;margin-top:15px;">
                                <div dx-text-box="searchOptions"></div>
                                <div class="dx-viewport grid-container">
                                    <div id="GridContainerPermission" dx-tree-view="allPermissionTreeViewOptions" style="width: 92%;">
                                    </div>
                                </div>
                            </perfect-scrollbar>
                        </div>
                    </div>
                 
                </div>
                <div class="col-sm-1 col-md-1"></div>
                <div class="col-sm-5 col-md-5">

                    <md-content>
                        <md-nav-bar md-selected-nav-item="currentNavItem" nav-bar-aria-label="navigation links">
                            <md-nav-item md-nav-click="goto('page1')" name="page1" ng-click="gotoPage1()">
                                {{'relatedPermissionUsersTitle' | translate}}
                            </md-nav-item>
                            <md-nav-item md-nav-click="goto('page2')" name="page2" ng-click="gotoPage2()">
                                {{'ExtraUser' | translate}}
                            </md-nav-item>

                        </md-nav-bar>

                        <div class="ext-content">
                            <div ng-show="currentNavItem==='page1'">
                                <div style="display: inline-block; margin-top: 5px;"><button ng-disabled="!hasEditPermission" class=" btn btn-in-grid" ng-click="addUser()"><i class="material-icons middle">add_circle_outline</i><span> {{'AddUser' | translate }}</span></button></div>

                                <div class="dx-viewport grid-container grid-body">
                                    <div id="leftUserGridContainer" dx-data-grid="leftUserdatagridOptions"></div>
                                </div>
                            </div>

                            <div ng-show="currentNavItem==='page2'">
                                <!--额外添加此角色的用户-->
                                <div class="dx-viewport grid-container grid-body">
                                    <div id="rightUserGridContainer" dx-data-grid="rightUserdatagridOptions"></div>
                                </div>
                            </div>

                        </div>

                </div>
            </div>
        </div>

        <div class="modal fade" id="addRolePop" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" data-backdrop="static" data-keyboard="false">
            <div class="modal-dialog" style="width:550px;height:200px;" role="document">
                <div class="modal-content">
                    <form class="form-horizontal" name="newRoleForm">
                        <div class="modal-header">
                            <div class="modal-title"><span translate="createRole"></span></div>
                        </div>
                        <div class="modal-body">
                            <!--角色名称-->
                            <div class="form-group">
                                <label for="RoleName" class="col-sm-3 control-label" translate="roleName"></label>
                                <div class="col-sm-11" style="width:61.67%">
                                    <input class="form-control" id="roleName"
                                           ng-model="newRoleModel.Name" name="roleName" required style="width:320px;" maxlength="50" />
                                </div>
                                <div style="margin-top:7px;">
                                    <span style="color:red" ng-show="newRoleForm.roleName.$invalid">
                                        <span ng-show="newRoleForm.roleName.$error.required" translate="Require"></span>
                                    </span>
                                    <span style="color:red" ng-show="roleNameExist" translate="roleNameExist"></span>
                                </div>
                            </div>
                            <!--角色类别-->
                            <div class="form-group">
                                <label for="ServiceType" class="col-sm-3 control-label" translate="roleCategory"></label>
                                <div class="col-sm-11" style="width:61.67%">
                                    <select name="service_id"
                                            class="form-control"
                                            style="width: 320px;"
                                            ng-model="roleCategory"
                                            ng-options="role.roleCategoryID as role.name for role in roleList"
                                            required ng-change="fillServiceType()"></select>
                                </div>
                                <div style="margin-top:7px;">
                                    <span style="color:red" ng-show="newRoleForm.service_id.$error.required" translate="Require"></span>
                                </div>
                            </div>
                            <!--角色描述-->
                            <div class="form-group">
                                <label for="Description" class="col-sm-3 control-label" translate="roleDescLabel"></label>
                                <div class="col-sm-6">
                                    <textarea class="form-control" id="Description" ng-model="newRoleModel.Description" maxlength="200" style="width:320px;"></textarea>
                                </div>
                            </div>
                            <!--权限设置-->
                            <div class="form-group">
                                <label for="RolePrivilege" class="col-sm-3 control-label" translate="authoritySetting"></label>
                                <div class="col-sm-6">
                                    <permission-selector is-dialog
                                                         selected-permission-codes="selectedPermissionCodes"
                                                         selected-permission-names="selectedPermissionNames"
                                                         name="createRoleMenu">
                                    </permission-selector>
                                </div>
                                <div>
                                    <span ng-show="notServiceSelected" translate="SelectServiceTypeFirst"></span>
                                </div>
                            </div>


                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-primary"
                                    ng-click="createRole()" translate="Confirm"
                                    ng-disabled="newRoleForm.roleName.$invalid || newRoleForm.service_id.$invalid"></button>
                            <button type="button" class="btn btn-third" data-dismiss="modal" ng-click="cancelRole()" translate="Cancel"></button>
                        </div>
                    </form>
                </div>
            </div>
        </div>

        <div class="modal fade" id="deleteConfirmPop" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" data-backdrop="static" data-keyboard="false">
            <div class="modal-dialog" style="width:610px;height:200px;" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <div class="modal-title" translate="ConfirmDelete"></div>
                    </div>
                    <div class="modal-body">
                        <div><i class="material-icons confirm-warning"></i> <i translate="roleDeleteConfirm"></i>"{{selectedRole.name}}"?</div>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-primary" ng-click="deleteRole()" translate="Confirm"></button>

                        <button type="button" class="btn btn-default" data-dismiss="modal" translate="Cancel"></button>
                    </div>
                </div>
            </div>
        </div>

        <operate-log is-show="isShowLog"></operate-log>
        <add-exist-user-modal operate-type="addUserOperateType" is-update="addUserIsUpdate" selected-user-list="selectedUserList" selected-key-items="selectedKeyItems"></add-exist-user-modal>
    </div>
</div>