123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- <!DOCTYPE HTML>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <#include "../layout/header.ftl"/>
- <#include "../layout/common.cssjs.ftl"/>
- <script type="text/javascript">
- function onClick (event, treeId, treeNode) {
- $("#pid").val(treeNode.id);
- $.cookie("select_res_id", treeNode.id, { path: '/' });
- $.cookie("select_app_id", $("#appId").val(), { path: '/' });
- $.cookie("select_res_name", treeNode.name,{ path: '/' });
- $("#searchBtn").click();
-
-
- }
- $(function () {
- $("#savePermBtn").click(function(){
-
- var roleId="";
- if($("#datagrid").length>0){//get grid list selected ids
- var selRows = $('#datagrid').bootstrapTable('getSelections');
- for (var i=0;i<selRows.length; i++){
- roleId=roleId+","+selRows[i].id;
- break;
- }
- roleId=roleId.substring(1);
- }
-
- if(roleId == null || roleId == "") {
- $.alert({content:$.platform.messages.select.alertText});
- return;
- }
-
- var resIds="";
- var nodes = $.fn.zTree.getZTreeObj("resourcesTree").getCheckedNodes(true);
- for(var i=0;i<nodes.length;i++){
- resIds=resIds+","+nodes[i].id;
- }
- resIds=resIds.substring(1);
-
- $.post("<@base/>/permissions/savepermissions",
- {
- appId:$("#appId").val(),
- roleId:roleId,
- resourceId:resIds,
- currTime:(new Date()).getTime()
- },
- function(data) {
- if (typeof(afterDelete) == "function"){
- afterDelete(data);//call back action
- }
- //alert delete result
- $.alert({content:data.message,type:$.platform.messages.messageType[data.messageType]});
- //refresh grid list
-
- });
- });
-
- $('#datagrid').on('click-row.bs.table', function (row, element, field) {
- if($("#appId").val() == null || $("#appId").val() == "") {
- $.alert({content:$.platform.messages.select.alertText});
- return;
- }
-
- $.post("<@base/>/permissions/querypermissions",
- {
- appId:$("#appId").val(),
- roleId:element.id,
- currTime:(new Date()).getTime()
- },
- function(data) {
- if (typeof(afterDelete) == "function"){
- afterDelete(data);//call back action
- }
- var zTree = $.fn.zTree.getZTreeObj("resourcesTree");
- zTree.checkAllNodes(false);
- for(var permsData of data){
- var node = zTree.getNodeByParam("id",permsData.resourceId);
- zTree.checkNode(node, true, true);
- }
-
- });
- });
- $("#changTreeBtn").click(function(){
- var treeSettings={
- element : "resourcesTree",
- rootId : "1",
- checkbox : true,
- onClick : onClick,
- onDblClick : null,
- url : "<@base/>/resources/tree/"
- };
-
- function singlePath(newNode) {
- if (newNode === curExpandNode) return;
- if (curExpandNode && curExpandNode.open==true) {
- var zTree = $.fn.zTree.getZTreeObj(treeSettings.element);
- if (newNode.parentTId === curExpandNode.parentTId) {
- zTree.expandNode(curExpandNode, false);
- } else {
- var newParents = [];
- while (newNode) {
- newNode = newNode.getParentNode();
- if (newNode === curExpandNode) {
- newParents = null;
- break;
- } else if (newNode) {
- newParents.push(newNode);
- }
- }
- if (newParents!=null) {
- var oldNode = curExpandNode;
- var oldParents = [];
- while (oldNode) {
- oldNode = oldNode.getParentNode();
- if (oldNode) {
- oldParents.push(oldNode);
- }
- }
- if (newParents.length>0) {
- for (var i = Math.min(newParents.length, oldParents.length)-1; i>=0; i--) {
- if (newParents[i] !== oldParents[i]) {
- zTree.expandNode(oldParents[i], false);
- break;
- }
- }
- } else {
- zTree.expandNode(oldParents[oldParents.length-1], false);
- }
- }
- }
- }
- curExpandNode = newNode;
- };
- function beforeExpand(treeId, treeNode) {
- var pNode = curExpandNode ? curExpandNode.getParentNode():null;
- var treeNodeP = treeNode.parentTId ? treeNode.getParentNode():null;
- var zTree = $.fn.zTree.getZTreeObj(""+treeSettings.element);
- for(var i=0, l=!treeNodeP ? 0:treeNodeP.children.length; i<l; i++ ) {
- if (treeNode !== treeNodeP.children[i]) {
- zTree.expandNode(treeNodeP.children[i], false);
- }
- }
- while (pNode) {
- if (pNode === treeNode) {
- break;
- }
- pNode = pNode.getParentNode();
- }
- if (!pNode) {
- singlePath(treeNode);
- }
- };
-
- $.fn.zTree.init(
- $("#"+treeSettings.element), //element
- {//json object
- check : {
- enable : treeSettings.checkbox
- },
- async : {
- enable : true,
- url : treeSettings.url,
- autoParam : ["id", "name=n", "level=lv"],
- otherParam : {
- "otherParam":"zTreeAsyncTest",
- id:treeSettings.rootId,
- "appId":$("#appId").val(),
- "appName":$("#appName").val(),
- }
- },
- data : {
- simpleData : {
- enable : true
- }
- },
- callback: {
- onClick : treeSettings.onClick,
- onDblClick : treeSettings.onDblClick,
- beforeAsync : function(treeId, treeNode){
- $.loading();
- },
- onAsyncSuccess : function(event, treeId, treeNode, msg){
- $.unloading();
- },
- //beforeExpand : beforeExpand,
- onExpand : function onExpand(event, treeId, treeNode) {
- curExpandNode = treeNode;
- }
- }
- }
- );//end tree
- });
-
- });
- </script>
- </head>
- <body>
- <div class="app header-default side-nav-dark">
- <div class="layout">
- <div class="header navbar">
- <#include "../layout/top.ftl"/>
- </div>
-
- <div class="col-md-3 sidebar-nav side-nav" >
- <#include "../layout/sidenav.ftl"/>
- </div>
- <div class="page-container">
-
- <div class="main-content">
- <div class="container-fluid">
- <div class="breadcrumb-wrapper row">
- <div class="col-12 col-lg-3 col-md-6">
- <h4 class="page-title"><@locale code="navs.role.permissions"/></h4>
- </div>
- <div class="col-12 col-lg-9 col-md-6">
- <ol class="breadcrumb float-right">
- <li><a href="<@base/>/main"><@locale code="navs.home"/></a></li>
- <li class="active">/ <@locale code="navs.resources"/></li>
- </ol>
- </div>
- </div>
- </div>
- <div class="container-fluid">
- <div class="col-12 grid-margin">
- <div class="card">
- <div class="card-body">
-
- <table class="table table-bordered">
- <tr>
- <td style="width:80px;"><@locale code="role.name"/>:</td>
- <td style="width:350px;">
- <form id="basic_search_form">
- <input class="form-control" style="width:200px;float: left;" value="" id="name" name="name" type="text" >
-
- <input class="button btn btn-primary mr-3" id="searchBtn" type="button" size="50" value="<@locale code="button.text.search"/>">
-
- </form>
- </td>
- <td style="width:120px;"><@locale code="apps.name"/>:</td>
- <td style="width:500px;">
- <form id="resources_search_form">
- <input class="form-control appId" id="appId" name="appId" value="" type="hidden" >
- <input class="form-control" id="pid" name="pid" value="" type="hidden" >
- <input class="form-control appName" style="width:200px;float: left;" value="" id="appName" name="appName" type="text" >
- <input class="button btn btn-success mr-3 window" style="float: left;" id="selectBtn" type="button" value="<@locale code="button.text.select"/>"
- wurl="<@base/>/apps/select"
- wwidth="700"
- wheight="500"
- target="window">
- <input class="button btn btn-primary mr-3" id="changTreeBtn" type="button" size="50" value="<@locale code="button.text.search"/>">
-
- </form>
- </td>
- <td >
- <div id="tool_box_right" style="width:100px;">
- <input class="button btn btn-success mr-3 " id="savePermBtn" type="button" value="<@locale code="button.text.save"/>"/>
- </div>
- </td>
- </tr>
- </table>
-
-
- </div>
-
- <div id="advanced_search">
- <form id="advanced_search_form">
-
- </form>
- </div>
- <table class="datatable" width="100%" >
- <tr>
- <td valign="top" class="td_1" style="vertical-align: top;width:450px;">
- <table data-url="<@base/>/roles/grid"
- id="datagrid"
- data-toggle="table"
- data-classes="table table-bordered table-hover table-striped"
- data-click-to-select="true"
- data-pagination="true"
- data-total-field="records"
- data-page-list="[10, 25, 50, 100]"
- data-search="false"
- data-single-select="true"
- data-locale="zh-CN"
- data-query-params="dataGridQueryParams"
- data-query-params-type="pageSize"
- data-side-pagination="server">
- <thead>
- <tr>
- <th data-checkbox="true"></th>
- <th data-sortable="true" data-field="id" data-visible="false">Id</th>
- <th data-field="name"><@locale code="role.name"/></th>
- <th data-field="description"><@locale code="common.text.description"/></th>
-
- </tr>
- </thead>
- </table>
- </td>
- <td valign="top" class="td_1" style="vertical-align: top;">
- <div id="resourcesTree" class="ztree"></div>
- </td>
- </tr>
- </table>
-
- </div>
- </div>
- <footer class="content-footer">
- <#include "../layout/footer.ftl"/>
- </footer>
- </div>
-
- </div>
- </div>
- <div id="preloader">
- <div class="loader" id="loader-1"></div>
- </div>
- </body>
- </html>
|