manto07m 3 سال پیش
والد
کامیت
3089003ea0
8فایلهای تغییر یافته به همراه583 افزوده شده و 452 حذف شده
  1. 8 3
      bim-support-body.html
  2. 2 1
      bim-support-header.html
  3. 106 103
      index.php
  4. 34 40
      log.php
  5. 356 0
      permission.php
  6. 48 304
      script/js/global.js
  7. 0 1
      script/php/permission/get_right.php
  8. 29 0
      test.html

+ 8 - 3
bim-support-body.html

@@ -1,10 +1,13 @@
 <!-- Vendor -->
 <!DOCTYPE html>
 <html>
+
 <head>
 
   <script src="assets/vendor/jquery-browser-mobile/jquery.browser.mobile.js"></script>
-  <script src="assets/vendor/bootstrap/js/bootstrap.js"></script>
+  <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"
+    integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous">
+  </script>
   <script src="assets/vendor/nanoscroller/nanoscroller.js"></script>
   <script src="assets/vendor/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
   <script src="assets/vendor/magnific-popup/magnific-popup.js"></script>
@@ -41,9 +44,11 @@
 
   <script src="assets/javascripts/ui-elements/examples.modals.js"></script>
   <!--<script src="script/js/upload-component.js"></script>-->
-  
+
   <title></title>
 </head>
+
 <body>
 </body>
-</html>
+
+</html>

+ 2 - 1
bim-support-header.html

@@ -13,7 +13,8 @@
       <link href="C3Dev/TemplateData/style.css" rel="stylesheet"><!-- Web Fonts  -->
       <link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Shadows+Into+Light"
             rel="stylesheet" type="text/css"><!-- Vendor CSS -->
-      <link href="assets/vendor/bootstrap/css/bootstrap.css" rel="stylesheet">
+      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"
+            integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
       <link href="assets/vendor/font-awesome/css/font-awesome.css" rel="stylesheet">
       <link href="assets/vendor/magnific-popup/magnific-popup.css" rel="stylesheet">
       <link href="assets/vendor/bootstrap-datepicker/css/datepicker3.css" rel="stylesheet">

+ 106 - 103
index.php

@@ -69,19 +69,74 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 	</style>
 
 	<script type="application/javascript">
-		var userName = '<?php echo $_SESSION['name']; ?>';
-		var pageHeader = '帳號權限管理系統';
-		var role = '<?php echo ($groupName); ?>';
-		var right = <?php echo ($right); ?>;
 		var roles;
 		var users;
 		var groups;
 		var groupDropdown;
 		var checkManager = 0;
+		var table;
+	</script>
+</head>
+
+<body>
+	<section id="outFrame">
+		<!-- start: header -->
+		<header-menu></header-menu>
+		<!-- end: header -->
+		<div>
+			<!-- start: sidebar -->
+			<side-bar></side-bar>
+			<!-- end: sidebar -->
+			<section role="main" class="content-body">
+				<header class="page-header">
+					<h2>{{pageHeader}}</h2>
+				</header>
+			</section>
+
+		</div>
+	</section>
 
-		var test;
+	<section role="main" id="content" class="content-body" style="padding-top: 6vh;">
+		<section class="panel">
+			<header class="panel-heading">
+				<div class="panel-actions">
+					<a href="#" class="fa fa-caret-down"></a>
+					<a href="#" class="fa fa-times"></a>
+				</div>
+				<h2 id="testID" class="panel-title">所有系統</h2>
+			</header>
+			<div class="panel-body">
+				<table class="table table-bordered table-striped mb-none" id="datatable">
+					<thead>
+						<tr>
+							<th>員工編號</th>
+							<th>使用者帳號</th>
+							<th>使用者名稱</th>
+							<th>所屬部門</th>
+							<th>使用者權限(點擊以刪除權限)</th>
+						</tr>
+					</thead>
+					<tbody id="table-data">
+
+					</tbody>
+				</table>
+			</div>
+		</section>
+
+	</section>
+
+
+
+	<script>
+		vm.mount('#outFrame');
+		$(function() {
+			getGroup();
+			getDeptUser();
+		});
 
 		function getDeptUser() {
+
+
 			$.ajax({
 				url: "./script/php/API/get_dept_user.php",
 				type: "POST",
@@ -90,6 +145,7 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 				roles = result.permissions;
 				users = result.users;
 				users.forEach(function(data) {
+
 					let btn = getPermissions(data.GroupID, data.GroupName, data.UserID);
 					$('#table-data').append(`<tr>
 						<td>${data.UserID}</td>
@@ -108,44 +164,10 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 					</tr>`);
 
 				});
-
 			}).error(function(error) {
 				console.log(error);
 			}).complete(function(e) {
-				$('#datatable').DataTable({
-					bProcessing: true,
-					responsive: true,
-					"searching": true,
-					"pageLength": 10,
-					"language": {
-						"processing": "處理中...",
-						"loadingRecords": "載入中...",
-						"lengthMenu": "顯示 _MENU_ 項結果",
-						"zeroRecords": "沒有符合的結果或是沒有資料",
-						"info": "顯示第 _START_ 至 _END_ 項結果,共 _TOTAL_ 項",
-						"infoEmpty": "顯示第 0 至 0 項結果,共 0 項",
-						"infoFiltered": "(從 _MAX_ 項結果中過濾)",
-						"infoPostFix": "",
-						"search": "",
-						"paginate": {
-							"first": '<i class="fa fa-step-backward"></i>',
-							"previous": '<i class="fa fa-backward"></i>',
-							"next": '<i class="fa fa-forward"></i>',
-							"last": '<i class="fa fa-step-forward"></i>'
-						},
-						"aria": {
-							"sortAscending": ": 升冪排列",
-							"sortDescending": ": 降冪排列"
-						}
-					},
-				});
-				$('body .dropdown-toggle').dropdown();
-				$("body").on('click', '.groupDropdown', function(e) {
-					let groupName = $(this).text();
-					let groupID = $(this).attr('groupID');
-					let userAccount = $(this).closest("td").attr('id');
-					$(this).closest("td").append(addPermission(groupID, groupName, userAccount));
-				})
+				initTable();
 			});
 		}
 
@@ -180,7 +202,7 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 		function addPermission(groupID, groupName, userID) {
 			var result = "";
 			user = users.find(user => user.UserID == userID);
-			if (!user.GroupName.includes(role)) {
+			if (!user.GroupName.includes(groupName)) {
 				addPermissionDB(user.UserID, groupID);
 				result += `<button id="btn-${userID}-${groupID}" onclick="delPermission('${userID}','${groupID}');" class="btn btn-${groupID}">${groupName}</button>  `;
 				user.GroupName.push(groupName);
@@ -205,9 +227,9 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 				if (result == 'success' && groupID == 'Manager') {
 					checkManager++;
 					alert('身分新增成功!');
-				} else if(result == 'success'){
+				} else if (result == 'success') {
 					alert('身分新增成功!');
-				}else {
+				} else {
 					console.log(result);
 				}
 			}).error(function(error) {
@@ -229,7 +251,7 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 					$(`#btn-${userID}-${groupID}`).remove();
 				}
 
-			}else{
+			} else {
 				alert('身分最低為一般用戶!請勿刪除!');
 			}
 
@@ -248,72 +270,53 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 				if (result == 'success' && groupID == 'Manager') {
 					checkManager--;
 					alert('身分刪除成功!');
-				} else if(result == 'success'){
+				} else if (result == 'success') {
 					alert('身分刪除成功!');
-				}else {
+				} else {
 					console.log(result);
 				}
 			}).error(function(error) {
 				console.log(error);
 			});
 		}
-	</script>
-</head>
-
-<body>
-	<section class="body">
-		<!-- start: header -->
-		<header-menu></header-menu>
-		<!-- end: header -->
-		<div class="inner-wrapper">
-			<!-- start: sidebar -->
-			<side-bar></side-bar>
-			<!-- end: sidebar -->
-			<section role="main" class="content-body" id="contentBody">
-				<header class="page-header">
-					<h2>{{pageHeader}}</h2>
-				</header>
-				<!-- <role-block v-for="item in roles" v-bind:tbodyId='item.id' v-bind:title='item.title' v-bind:tableId='item.idd'></role-block> -->
-
-				<section class="panel">
-					<header class="panel-heading">
-						<div class="panel-actions">
-							<a href="#" class="fa fa-caret-down"></a>
-							<a href="#" class="fa fa-times"></a>
-						</div>
-						<h2 id="testID" class="panel-title">所有系統</h2>
-					</header>
-					<div class="panel-body">
-						<table class="table table-bordered table-striped mb-none" id="datatable">
-							<thead>
-								<tr>
-									<th>員工編號</th>
-									<th>使用者帳號</th>
-									<th>使用者名稱</th>
-									<th>所屬部門</th>
-									<th>使用者權限(點擊以刪除權限)</th>
-								</tr>
-							</thead>
-							<tbody id="table-data">
-
-							</tbody>
-						</table>
-					</div>
-				</section>
 
-
-
-		</div>
-	</section>
-
-	<script>
-		vm.mount('.body');
-		getGroup();
-		getDeptUser();
-		$(function() {
-			addUserImage(userName.charAt(0),role);
-
-		});
+		function initTable() {
+			table = $('#datatable').DataTable({
+				bProcessing: true,
+				responsive: true,
+				"searching": true,
+				"pageLength": 10,
+				"language": {
+					"processing": "處理中...",
+					"loadingRecords": "載入中...",
+					"lengthMenu": "顯示 _MENU_ 項結果",
+					"zeroRecords": "沒有符合的結果或是沒有資料",
+					"info": "顯示第 _START_ 至 _END_ 項結果,共 _TOTAL_ 項",
+					"infoEmpty": "顯示第 0 至 0 項結果,共 0 項",
+					"infoFiltered": "(從 _MAX_ 項結果中過濾)",
+					"infoPostFix": "",
+					"search": "",
+					"paginate": {
+						"first": '<i class="fa fa-step-backward"></i>',
+						"previous": '<i class="fa fa-backward"></i>',
+						"next": '<i class="fa fa-forward"></i>',
+						"last": '<i class="fa fa-step-forward"></i>'
+					},
+					"aria": {
+						"sortAscending": ": 升冪排列",
+						"sortDescending": ": 降冪排列"
+					}
+				},
+			});
+			$('body .dropdown-toggle').dropdown();
+			$("body").on('click', '.groupDropdown', function(e) {
+				let groupName = $(this).text();
+				let groupID = $(this).attr('groupID');
+				let userAccount = $(this).closest("td").attr('id');
+				console.log($(this))
+				$(this).closest("td").append(addPermission(groupID, groupName, userAccount));
+			})
+		}
 	</script>
 
 
@@ -347,7 +350,7 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 	<script src="assets/javascripts/tables/examples.datatables.row.with.details.js"></script>
 	<script src="assets/javascripts/tables/examples.datatables.tabletools.js"></script>
 
-	</section>
+
 </body>
 
 </html>

+ 34 - 40
log.php

@@ -79,54 +79,52 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
 </head>
 
 <body>
-    <section class="body">
+    <section id="outFrame">
         <!-- start: header -->
         <header-menu></header-menu>
         <!-- end: header -->
-        <div class="inner-wrapper">
+        <div>
             <!-- start: sidebar -->
             <side-bar></side-bar>
             <!-- end: sidebar -->
-            <section role="main" class="content-body" id="contentBody">
+            <section role="main" class="content-body">
                 <header class="page-header">
                     <h2>{{pageHeader}}</h2>
                 </header>
-                <!-- <role-block v-for="item in roles" v-bind:tbodyId='item.id' v-bind:title='item.title' v-bind:tableId='item.idd'></role-block> -->
-
-                <section class="panel">
-                    <header class="panel-heading">
-                        <div class="panel-actions">
-                            <a href="#" class="fa fa-caret-down"></a>
-                            <a href="#" class="fa fa-times"></a>
-                        </div>
-                        <h2 id="testID" class="panel-title">設計資料庫匯入日誌</h2>
-                    </header>
-                    <div class="panel-body">
-                        <table class="table table-bordered table-striped mb-none" id="datatable">
-                            <thead>
-                                <tr>
-                                    <th>員工編號</th>
-                                    <th>上傳人員</th>
-                                    <th>所屬部門</th>
-                                    <th>計畫編號</th>
-                                    <th>計畫名稱</th>
-                                    <th>上傳時間</th>
-                                </tr>
-                            </thead>
-                            <tbody id="table-data">
-
-                            </tbody>
-                        </table>
-                    </div>
-                </section>
-
-
+            </section>
 
         </div>
     </section>
-
+    <section role="main" id="content" class="content-body" style="padding-top: 6vh;">
+        <section class="panel">
+            <header class="panel-heading">
+                <div class="panel-actions">
+                    <a href="#" class="fa fa-caret-down"></a>
+                    <a href="#" class="fa fa-times"></a>
+                </div>
+                <h2 id="testID" class="panel-title">設計資料庫匯入日誌</h2>
+            </header>
+            <div class="panel-body">
+                <table class="table table-bordered table-striped mb-none" id="datatable">
+                    <thead>
+                        <tr>
+                            <th>員工編號</th>
+                            <th>上傳人員</th>
+                            <th>所屬部門</th>
+                            <th>計畫編號</th>
+                            <th>計畫名稱</th>
+                            <th>上傳時間</th>
+                        </tr>
+                    </thead>
+                    <tbody id="table-data">
+
+                    </tbody>
+                </table>
+            </div>
+        </section>
+    </section>
     <script>
-        vm.mount('.body');
+        vm.mount('#outFrame');
         getLog();
 
         function getLog() {
@@ -191,10 +189,6 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
                 })
             });
         }
-        $(function() {
-            addUserImage(userName.charAt(0), role);
-
-        });
     </script>
 
 
@@ -224,7 +218,7 @@ include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_
     <script src="assets/javascripts/theme.init.js"></script>
 
 
-    </section>
+
 </body>
 
 </html>

+ 356 - 0
permission.php

@@ -0,0 +1,356 @@
+<?php
+include($_SERVER['DOCUMENT_ROOT'] . "/Authorization/script/php/permission/check_right.php");
+?>
+<!doctype html>
+<html class="fixed sidebar-left-collapsed">
+
+<head>
+	<!-- Basic -->
+	<meta charset="UTF-8">
+	<title>帳號權限管理系統</title>
+	<meta name="keywords" content="HTML5 Admin Template" />
+	<meta name="description" content="JSOFT Admin - Responsive HTML5 Template">
+	<meta name="author" content="JSOFT.net">
+	<!-- Mobile Metas -->
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+
+	<!-- Web Fonts  -->
+	<link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Shadows+Into+Light" rel="stylesheet" type="text/css">
+
+	<!-- Vendor CSS -->
+	<link rel="stylesheet" href="assets/vendor/bootstrap/css/bootstrap.css" />
+	<link rel="stylesheet" href="assets/vendor/font-awesome/css/font-awesome.css" />
+	<link rel="stylesheet" href="assets/vendor/magnific-popup/magnific-popup.css" />
+	<link rel="stylesheet" href="assets/vendor/bootstrap-datepicker/css/datepicker3.css" />
+
+	<!-- Specific Page Vendor CSS -->
+	<link rel="stylesheet" href="assets/vendor/select2/select2.css" />
+	<link rel="stylesheet" href="assets/vendor/jquery-datatables-bs3/assets/css/datatables.css" />
+
+	<!-- Theme CSS -->
+	<link rel="stylesheet" href="assets/stylesheets/theme.css" />
+
+	<!-- Skin CSS -->
+	<link rel="stylesheet" href="assets/stylesheets/skins/default.css" />
+
+	<!-- Theme Custom CSS -->
+	<link rel="stylesheet" href="assets/stylesheets/theme-custom.css">
+
+	<!-- Role Custom CSS -->
+	<link rel="stylesheet" href="assets/stylesheets/role.css" />
+
+	<!-- Head Libs -->
+	<script src="assets/vendor/modernizr/modernizr.js"></script>
+	<script src="assets/vendor/jquery/jquery.js"></script>
+
+
+	<!-- Icon -->
+	<link rel="shortcut icon" href="assets/images/favicon.ico" />
+
+	<!-- vue3 -->
+	<script src="https://unpkg.com/vue@next"></script>
+	<script src="./script/js/global.js"></script>
+	<script src="/Common/script/js/user-image.js"></script>
+	<style>
+		td {
+			font-size: 20px;
+			color: black;
+		}
+
+		select {
+			font-size: 12px;
+			color: black;
+		}
+
+		.right {
+			position: absolute;
+			right: 8px;
+		}
+	</style>
+
+	<script type="application/javascript">
+		var roles;
+		var users;
+		var groups;
+		var groupDropdown;
+		var checkManager = 0;
+		var table;
+	</script>
+</head>
+
+<body>
+	<section id="outFrame">
+		<!-- start: header -->
+		<header-menu></header-menu>
+		<!-- end: header -->
+		<div>
+			<!-- start: sidebar -->
+			<side-bar></side-bar>
+			<!-- end: sidebar -->
+			<section role="main" class="content-body">
+				<header class="page-header">
+					<h2>{{pageHeader}}</h2>
+				</header>
+			</section>
+
+		</div>
+	</section>
+
+	<section role="main" id="content" class="content-body" style="padding-top: 6vh;">
+		<section class="panel">
+			<header class="panel-heading">
+				<div class="panel-actions">
+					<a href="#" class="fa fa-caret-down"></a>
+					<a href="#" class="fa fa-times"></a>
+				</div>
+				<h2 id="testID" class="panel-title">所有系統</h2>
+			</header>
+			<div class="panel-body">
+				<table class="table table-bordered table-striped mb-none" id="datatable">
+					<thead>
+						<tr>
+							<th>員工編號</th>
+							<th>使用者帳號</th>
+							<th>使用者名稱</th>
+							<th>所屬部門</th>
+							<th>使用者權限(點擊以刪除權限)</th>
+						</tr>
+					</thead>
+					<tbody id="table-data">
+
+					</tbody>
+				</table>
+			</div>
+		</section>
+
+	</section>
+
+
+
+	<script>
+		vm.mount('#outFrame');
+		$(function() {
+			getGroup();
+			getDeptUser();
+		});
+
+		function getDeptUser() {
+
+
+			$.ajax({
+				url: "./script/php/API/get_dept_user.php",
+				type: "POST",
+				dataType: "json"
+			}).done(function(result) {
+				roles = result.permissions;
+				users = result.users;
+				users.forEach(function(data) {
+
+					let btn = getPermissions(data.GroupID, data.GroupName, data.UserID);
+					$('#table-data').append(`<tr>
+						<td>${data.UserID}</td>
+						<td>${data.Account}</td>
+						<td>${data.UserName}</td>
+						<td>${data.DepartmentID}</td>
+						<td id="${data.UserID}">
+							<div class="btn-group">
+								<button type="button" class="mb-xs mt-xs mr-xs btn btn-default dropdown-toggle" data-toggle="dropdown">新增身分 <span class="caret"></span></button>
+								<ul class="dropdown-menu" role="menu" style="cursor: default;">
+									${groupDropdown}
+								</ul>
+							</div>
+							${btn}
+						</td>
+					</tr>`);
+
+				});
+			}).error(function(error) {
+				console.log(error);
+			}).complete(function(e) {
+				initTable();
+			});
+		}
+
+		function getGroup() {
+			$.ajax({
+				url: "./script/php/API/get_group.php",
+				type: "POST",
+				dataType: "json"
+			}).done(function(result) {
+				groups = result;
+				groupDropdown = '';
+				groups.forEach(function(group) {
+					groupDropdown += `<li class="li-${group.GroupID}"><a groupID="${group.GroupID}" class="groupDropdown" >${group.GroupName}</a></li>`;
+				});
+			}).error(function(error) {
+				console.log(error);
+			});
+		}
+
+		function getPermissions(groupIDs, groupNames, userID) {
+			var result = "";
+
+			groupIDs.forEach(function(groupID, index) {
+				result += `<button id="btn-${userID}-${groupID}" onclick="delPermission('${userID}','${groupID}');" class="btn btn-${groupID}">${groupNames[index]}</button>  `;
+				if (groupID == 'Manager') {
+					checkManager++;
+				}
+			});
+			return result;
+		}
+
+		function addPermission(groupID, groupName, userID) {
+			var result = "";
+			user = users.find(user => user.UserID == userID);
+			if (!user.GroupName.includes(groupName)) {
+				addPermissionDB(user.UserID, groupID);
+				result += `<button id="btn-${userID}-${groupID}" onclick="delPermission('${userID}','${groupID}');" class="btn btn-${groupID}">${groupName}</button>  `;
+				user.GroupName.push(groupName);
+				user.GroupID.push(groupID);
+				return result;
+			} else {
+				return result;
+			}
+
+		}
+
+		function addPermissionDB(userID, groupID) {
+			$.ajax({
+				url: "./script/php/API/insert_role.php",
+				type: "POST",
+				dataType: "text",
+				data: {
+					UserID: userID,
+					GroupID: groupID,
+				}
+			}).done(function(result) {
+				if (result == 'success' && groupID == 'Manager') {
+					checkManager++;
+					alert('身分新增成功!');
+				} else if (result == 'success') {
+					alert('身分新增成功!');
+				} else {
+					console.log(result);
+				}
+			}).error(function(error) {
+				console.log(error);
+			});
+		}
+
+		function delPermission(userID, groupID) {
+			if (groupID != 'User' && groupID != 'Guest') {
+				if (groupID == 'Manager') {
+					if (checkManager > 1) {
+						delPermissionDB(userID, groupID);
+						$(`#btn-${userID}-${groupID}`).remove();
+					} else {
+						alert('部門至少要有一名管理員!');
+					}
+				} else {
+					delPermissionDB(userID, groupID);
+					$(`#btn-${userID}-${groupID}`).remove();
+				}
+
+			} else {
+				alert('身分最低為一般用戶!請勿刪除!');
+			}
+
+		}
+
+		function delPermissionDB(userID, groupID) {
+			$.ajax({
+				url: "./script/php/API/delete_role.php",
+				type: "POST",
+				dataType: "text",
+				data: {
+					UserID: userID,
+					GroupID: groupID,
+				}
+			}).done(function(result) {
+				if (result == 'success' && groupID == 'Manager') {
+					checkManager--;
+					alert('身分刪除成功!');
+				} else if (result == 'success') {
+					alert('身分刪除成功!');
+				} else {
+					console.log(result);
+				}
+			}).error(function(error) {
+				console.log(error);
+			});
+		}
+
+		function initTable() {
+			table = $('#datatable').DataTable({
+				bProcessing: true,
+				responsive: true,
+				"searching": true,
+				"pageLength": 10,
+				"language": {
+					"processing": "處理中...",
+					"loadingRecords": "載入中...",
+					"lengthMenu": "顯示 _MENU_ 項結果",
+					"zeroRecords": "沒有符合的結果或是沒有資料",
+					"info": "顯示第 _START_ 至 _END_ 項結果,共 _TOTAL_ 項",
+					"infoEmpty": "顯示第 0 至 0 項結果,共 0 項",
+					"infoFiltered": "(從 _MAX_ 項結果中過濾)",
+					"infoPostFix": "",
+					"search": "",
+					"paginate": {
+						"first": '<i class="fa fa-step-backward"></i>',
+						"previous": '<i class="fa fa-backward"></i>',
+						"next": '<i class="fa fa-forward"></i>',
+						"last": '<i class="fa fa-step-forward"></i>'
+					},
+					"aria": {
+						"sortAscending": ": 升冪排列",
+						"sortDescending": ": 降冪排列"
+					}
+				},
+			});
+			$('body .dropdown-toggle').dropdown();
+			$("body").on('click', '.groupDropdown', function(e) {
+				let groupName = $(this).text();
+				let groupID = $(this).attr('groupID');
+				let userAccount = $(this).closest("td").attr('id');
+				console.log($(this))
+				$(this).closest("td").append(addPermission(groupID, groupName, userAccount));
+			})
+		}
+	</script>
+
+
+
+	<!-- Vendor -->
+	<script src="assets/vendor/jquery-browser-mobile/jquery.browser.mobile.js"></script>
+	<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
+	<script src="assets/vendor/nanoscroller/nanoscroller.js"></script>
+	<script src="assets/vendor/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
+	<script src="assets/vendor/magnific-popup/magnific-popup.js"></script>
+	<script src="assets/vendor/jquery-placeholder/jquery.placeholder.js"></script>
+
+	<!-- Specific Page Vendor -->
+	<script src="assets/vendor/select2/select2.js"></script>
+	<script src="assets/vendor/jquery-datatables/media/js/jquery.dataTables.js"></script>
+	<script src="assets/vendor/jquery-datatables/extras/TableTools/js/dataTables.tableTools.min.js"></script>
+	<script src="assets/vendor/jquery-datatables-bs3/assets/js/datatables.js"></script>
+
+	<!-- Theme Base, Components and Settings -->
+	<script src="assets/javascripts/theme.js"></script>
+
+	<!-- Theme Custom -->
+	<script src="assets/javascripts/theme.custom.js"></script>
+
+	<!-- Theme Initialization Files -->
+	<script src="assets/javascripts/theme.init.js"></script>
+
+
+	<!-- Examples -->
+	<script src="assets/javascripts/tables/examples.datatables.default.js"></script>
+	<script src="assets/javascripts/tables/examples.datatables.row.with.details.js"></script>
+	<script src="assets/javascripts/tables/examples.datatables.tabletools.js"></script>
+
+
+</body>
+
+</html>

+ 48 - 304
script/js/global.js

@@ -1,5 +1,3 @@
-var bimSupport = "帳號權限管理系統";
-var pageHeader = "";
 var list = new Array();
 var objectFilter = [];
 var usageFilter = [];
@@ -9,18 +7,52 @@ var table = [];
 const vm = Vue.createApp({
     data() {
         return {
-            banner: bimSupport,
-            pageHeader: pageHeader,
+            banner: "",
+            pageHeader: "",
+            userName: "",
+            role: "",
+            right: -1,
             list: list,
             table: table,
         }
+    },
+    mounted() {
+        $.ajax({
+            url: "/Authorization/script/php/permission/get_right.php",
+            contentType: "application/json",
+            dataType: "json",
+            type: "GET",
+            async: false,
+            data: {
+                page: window.location.pathname,
+            }
+        }).done(response => {
+            console.log(response)
+            this.userName = response.name;
+            this.role = response.GroupName;
+            this.right = response.RightID;
+            this.pageHeader = response.PageName;
+            this.banner = response.PgroupName;
+            addUserImage(response.name.charAt(0), response.GroupName);
+        }).fail(function (error) {
+            console.log(error);
+        });
+
+    },
+    provide() {
+        return {
+            banner: Vue.computed(() => this.banner),
+            role: Vue.computed(() => this.role),
+            userName: Vue.computed(() => this.userName),
+            right: Vue.computed(() => this.right),
+        }
     }
 });
 vm.component('side-bar', {
+    inject: ['right'],
     data() {
         return {
-            banner: bimSupport,
-            right: right,
+            right: this.right,
         }
     },
     template: `<aside id="sidebar-left" class="sidebar-left">
@@ -33,7 +65,7 @@ vm.component('side-bar', {
                 <nav id="menu" class="nav-main" role="navigation">
                     <ul class="nav nav-main">
                         <side-bar-list href="index.php" fa="fa fa-gear" span="權限管理"></side-bar-list>
-                        <side-bar-list v-if="right > 3" href="Log.php" fa="fa fa-history" span="Log日誌"></side-bar-list>    
+                        <side-bar-list v-if="right.value > 3" href="Log.php" fa="fa fa-history" span="Log日誌"></side-bar-list>    
                     </ul>
                 </nav>
             </div>
@@ -42,9 +74,10 @@ vm.component('side-bar', {
 });
 
 vm.component('side-bar-hide', {
+    inject: ['banner'],
     data() {
         return {
-            banner: bimSupport,
+            banner: this.banner,
         }
     },
     template: `<aside id="sidebar-left" class="sidebar-left">
@@ -67,16 +100,18 @@ vm.component('side-bar-hide', {
 });
 
 vm.component('header-menu', {
+    inject: ['banner', 'userName', 'role'],
+
     data() {
         return {
-            banner: bimSupport,
-            userName: userName,
-            role: role,
+            banner: this.banner,
+            userName: this.userName,
+            role: this.role,
         }
     },
     template: `<header class="header">
     <div class="logo-container">
-        <div class="banner-txt">{{banner}}</div>
+        <div class="banner-txt">{{banner.value}}</div>
         <div class="visible-xs toggle-sidebar-left" data-toggle-class="sidebar-left-opened" data-target="html" data-fire-event="sidebar-left-opened">
             <i class="fa fa-bars" aria-label="Toggle sidebar"></i>
         </div>
@@ -119,7 +154,7 @@ vm.component('header-menu', {
         <div id="userbox" class="userbox">
             <a href="#" data-toggle="dropdown">
                 <figure class="profile-picture"> <img src="assets/images/!logged-user.jpg" alt="Joseph Doe" class="img-circle" data-lock-picture="assets/images/!logged-user.jpg" /> </figure>
-                <div class="profile-info" data-lock-name="John Doe" data-lock-email="johndoe@JSOFT.com"> <span class="name">{{userName}}</span> <span class="role">{{role}}</span> </div> <i class="fa custom-caret"></i>
+                <div class="profile-info" data-lock-name="John Doe" data-lock-email="johndoe@JSOFT.com"> <span class="name">{{userName.value}}</span> <span class="role">{{role.value}}</span> </div> <i class="fa custom-caret"></i>
             </a>
             <div class="dropdown-menu">
                 <ul class="list-unstyled">
@@ -358,294 +393,3 @@ vm.component('role-block', {
 
 });
 
-vm.component('upload-component', {
-    template: `<a class="modal-with-form btn btn-block btn-primary btn-md pt-sm pb-sm text-md" href="#modalForm2">
-    <i class="fa fa-upload mr-xs"></i>
-    上傳元件
-</a>
-<div id="modalForm2" class="modal-block modal-block-primary mfp-hide">
-    <section class="panel form-wizard" id="w1">
-        <header class="panel-heading">
-            <h2 class="panel-title">上傳BIM元件</h2>
-        </header>
-        <div class="panel-body panel-body-nopadding">
-            <div class="wizard-tabs">
-                <ul class="wizard-steps">
-                    <li class="active">
-                        <a href="#w1-account" data-toggle="tab" class="text-center">
-                            <span class="badge hidden-xs">1</span>
-                            選擇檔案及類別
-                        </a>
-                    </li>
-                    <li>
-                        <a href="#w1-profile" data-toggle="tab" class="text-center">
-                            <span class="badge hidden-xs">2</span>
-                            填寫詳細資料
-                        </a>
-                    </li>
-                </ul>
-            </div>
-            <form class="form-horizontal" novalidate="novalidate">
-                <div class="tab-content">
-                    <div id="w1-account" class="tab-pane active">
-                        <div class="form-group">
-                            <label class="col-md-1 control-label">rfa上傳</label>
-                            <div class="col-md-6">
-                                <div class="fileupload fileupload-new" data-provides="fileupload">
-                                    <div class="input-append">
-                                        <div class="uneditable-input">
-                                            <i class="fa fa-file fileupload-exists"></i>
-                                            <span class="fileupload-preview"></span>
-                                        </div>
-                                        <span class="btn btn-default btn-file">
-                                            <span class="fileupload-exists">變更檔案</span>
-                                            <span class="fileupload-new">選擇檔案</span>
-                                            <input type="file" />
-                                        </span>
-                                        <a href="#" class="btn btn-default fileupload-exists" data-dismiss="fileupload">移除檔案</a>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label class="col-md-1 control-label">glb上傳</label>
-                            <div class="col-md-6">
-                                <div class="fileupload fileupload-new" data-provides="fileupload">
-                                    <div class="input-append">
-                                        <div class="uneditable-input">
-                                            <i class="fa fa-file fileupload-exists"></i>
-                                            <span class="fileupload-preview"></span>
-                                        </div>
-                                        <span class="btn btn-default btn-file">
-                                            <span class="fileupload-exists">變更檔案</span>
-                                            <span class="fileupload-new">選擇檔案</span>
-                                            <input type="file" />
-                                        </span>
-                                        <a href="#" class="btn btn-default fileupload-exists" data-dismiss="fileupload">移除檔案</a>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label class="col-sm-1 control-label">設備類別</label>
-                            <div class="col-sm-3">
-                                <select class="form-control mb-md" id="typeSelect">
-                                    <option value="">請選擇設備類別</option>
-                                </select>
-                            </div>
-                        </div>
-                    </div>
-                    <div id="w1-profile" class="tab-pane">
-                        <div class="form-group">
-                            尚未選擇設備類別
-                        </div>
-                    </div>
-                </div>
-            </form>
-        </div>
-        <div class="panel-footer">
-            <ul class="pager">
-                <li class="previous disabled">
-                    <a><i class="fa fa-angle-left"></i> 上一步</a>
-                </li>
-                <li class="finish hidden pull-right modal-confirm">
-                    <a>完成送出</a>
-                </li>
-                <li class="next">
-                    <a>下一步 <i class="fa fa-angle-right"></i></a>
-                </li>
-            </ul>
-        </div>
-    </section>
-</div>`,
-});
-
-vm.component('equipment-list', {
-    data() {
-        return {
-            jsonData: jsonData,
-            userName: userName,
-            url: "component-favorite.php?userName=" + userName,
-        }
-    },
-    template: `
-    <div class="sidebar-widget m-none">
-    <div class="widget-header clearfix">
-        <h6 class="title pull-left mt-xs">類別</h6>                    
-    </div>
-    <div class="widget-content">
-        <nav id="menu" class="nav-main" role="navigation">
-            <ul class="nav nav-main">
-                <special-li v-for="item in jsonData" v-bind:name="item.category_name" v-bind:children="item.children" v-bind:parent="item.category_code"></special-li>     
-                <hr class="separator" />
-                <li>
-                    <a v-bind:href="url" class="menu-item"><i class="fa fa-gears"></i>清單列表</a>
-                </li>
-            </ul>
-        </nav>
-        
-
-    </div>
-</div>`,
-
-});
-
-vm.component('special-li', {
-    template: `
-    <li class="nav-parent">
-        <a class="dropdown-btn" v-bind:href="hrefLink(parent)" v-bind:name="parent">{{name}}</a>
-        <ul class="nav nav-children" style="background: inherit; padding-left: 15px;">
-            <special-li2 v-for="item in children" v-bind:href="item.component_code" v-bind:name="item.component_name" v-bind:parent="parent"></special-li2>
-        </ul>
-    </li>
-    `,
-
-    props: {
-        name: String,
-        children: Array,
-        parent: String
-    },
-    methods: {
-        hrefLink(parent) {
-            return 'component-list.php?parent=' + parent;
-        }
-    }
-});
-
-vm.component('special-li2', {
-    template: `
-    <li>
-        <a v-bind:href="hrefLink(href, parent)" class="menu-item" v-bind:name="parent">{{name}}</a>
-    </li>
-    `,
-    props: {
-        href: String,
-        name: String,
-        parent: String
-    },
-    methods: {
-        hrefLink(code, parent) {
-            return 'component-list.php?type=' + code + '&parent=' + parent;
-        }
-    }
-});
-
-vm.component('api-list', {
-    data() {
-        return {
-            jsonData: jsonData,
-            userName: userName,
-            url: "component-favorite.php?userName=" + userName,
-        }
-    },
-    template: `<div class="sidebar-widget m-none">
-    <div class="widget-header clearfix">
-        <h6 class="title pull-left mt-xs">適用性</h6>                    
-    </div>
-    <div class="widget-content">
-        <ul class="mg-folders">
-            <inner-menu-li href="api-list.php?type=土建" name="土建"></inner-menu-li>
-            <inner-menu-li href="api-list.php?type=土開" name="土開"></inner-menu-li>
-            <inner-menu-li href="api-list.php?type=軌道" name="軌道"></inner-menu-li>
-            <inner-menu-li href="api-list.php?type=機電" name="機電"></inner-menu-li>
-            <inner-menu-li href="api-list.php?type=資訊" name="資訊"></inner-menu-li>
-            <inner-menu-li href="api-list.php?type=通用" name="通用"></inner-menu-li>
-        </ul>
-    </div>
-    <hr class="separator" />
-    <div class="widget-header clearfix">
-        <h6 class="title pull-left mt-xs">專案</h6>                    
-    </div>
-    <div class="widget-content">
-        <ul class="mg-folders">
-            <inner-menu-li href="api-list.php?type=專案(果林地下汙水管線建置系統)" name="菓林地下汙水管線建置系統"></inner-menu-li>
-            <inner-menu-li href="api-list.php?type=專案(CF管線點位調查)" name="CF管線點位調查"></inner-menu-li>                                       
-        </ul>
-    </div>
-    <hr class="separator" />
-    <div class="widget-header clearfix">
-        <h6 class="title pull-left mt-xs">其他</h6>                    
-    </div>
-    <div class="widget-content">
-        <ul class="mg-folders">
-            <inner-menu-li href="api-list.php" name="所有程式清單"></inner-menu-li>
-            <inner-menu-li href="api-list.php?type=未分類" name="未分類"></inner-menu-li>                                        
-        </ul>
-    </div>
-</div>`,
-});
-
-vm.component('other-list', {
-    data() {
-        return {
-            jsonData: jsonData,
-            userName: userName,
-            url: "component-favorite.php?userName=" + userName,
-        }
-    },
-    template: `<div class="sidebar-widget m-none">
-    <div class="widget-header clearfix">
-        <h6 class="title pull-left mt-xs">類別</h6>                    
-    </div>
-    <div class="widget-content">
-        <ul class="mg-folders">
-            <inner-menu-li href="other-list.php?type=收費建議" name="收費建議"></inner-menu-li>
-            <inner-menu-li href="other-list.php?type=契約需求範例" name="契約需求範例"></inner-menu-li>
-            <inner-menu-li href="other-list.php?type=驗收標準" name="驗收標準"></inner-menu-li>
-            <inner-menu-li href="other-list.php?type=BIM專案管理" name="BIM專案管理"></inner-menu-li>
-            <inner-menu-li href="other-list.php?type=樣板" name="樣板"></inner-menu-li>
-            <inner-menu-li href="other-list.php?type=其他" name="其他"></inner-menu-li>
-        </ul>
-    </div>
-    <hr class="separator" />
-</div>`,
-});
-
-vm.component('isotope-item', {
-    data() {
-        return {
-            list: list,
-            filClass: "isotope-item col-sm-6 col-md-4 col-lg-3 ",
-        }
-    },
-    props: {
-        name: String,
-        folder: String,
-        id: Number,
-        object: String,
-        usage: String,
-        software: String,
-        detail: String,
-        source: String,
-        operate: String,
-        viewTimes: Number,
-        downloadTimes: Number,
-    },
-    computed: {
-        addClass() {
-            return this.filClass + " " + this.object + " " + this.usage + " " + this.software;
-        }
-    },
-    methods: {
-        bindHref(software, name, folder) {
-            return 'assets/API/Universal/' + software + '/' + folder + '/' + name + '.png';
-        },
-        hrefLink(id) {
-            return 'api-detail.php?object=' + id;
-        }
-    },
-    template: `<div  v-bind:class="addClass">
-    <div class="thumbnail">
-
-        <a class="name" v-bind:href="hrefLink(id)">{{name}}</a>
-        <div class="mg-description"><small style="display:none;">{{detail}}</small><small class="operate" style="display:none;">{{operate}}</small><small class="source" style="display:none;">{{source}}</small><small class="pull-right text-muted software" >{{software}}</small></div>
-        <div class="thumb-preview">
-            <div class="thumb-image"></div>
-            <div><img v-bind:href="bindHref(software,name,folder)" v-bind:src="bindHref(software,name,folder)" class="img-responsive" alt="Project" onerror="this.src='assets/images/not-found-image.jpg'" style="transform: scale(1);"></div>
-            
-        </div>
-        <p class="viewTimes" hidden>{{viewTimes}}</p>
-        <p class="downloadTimes" hidden>{{downloadTimes}}</p>
-    </div>
-</div>`,
-});

+ 0 - 1
script/php/permission/get_right.php

@@ -22,7 +22,6 @@ if (!isset($_SESSION['loggedin'])) {
 				$groupName = $row["GroupName"];
 				$right = $row["RightID"];
 				$ajax = $row;
-				$ajax['name'] = $_SESSION['name'];
 			}
 			
 		}

+ 29 - 0
test.html

@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+
+<head>
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"
+        integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
+    <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
+        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
+    </script>
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"
+        integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous">
+    </script>
+</head>
+
+<body>
+    <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
+        <button type="button" class="btn btn-secondary">1</button>
+        <button type="button" class="btn btn-secondary">2</button>
+
+        <div class="btn-group" role="group">
+            <button id="btnGroupDrop1" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                Dropdown
+            </button>
+            <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
+                <a class="dropdown-item" href="#">Dropdown link</a>
+                <a class="dropdown-item" href="#">Dropdown link</a>
+            </div>
+        </div>
+    </div>
+</body>