+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/base/actionGroup/actionGroup-main.jsp b/src/main/webapp/WEB-INF/jsp/base/actionGroup/actionGroup-main.jsp
new file mode 100644
index 00000000..a894a857
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/base/actionGroup/actionGroup-main.jsp
@@ -0,0 +1,229 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
+<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
+
+
기능 그룹
+
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/base/actionGroup/select-actionGroup.jsp b/src/main/webapp/WEB-INF/jsp/base/actionGroup/select-actionGroup.jsp
new file mode 100644
index 00000000..752ca2cd
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/base/actionGroup/select-actionGroup.jsp
@@ -0,0 +1,127 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
+<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
+
+
기능 그룹
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/base/authority/actionGroup-list.jsp b/src/main/webapp/WEB-INF/jsp/base/authority/actionGroup-list.jsp
new file mode 100644
index 00000000..1cbb834f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/base/authority/actionGroup-list.jsp
@@ -0,0 +1,91 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
+<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
+
+
+
+
+
+
+
function removeAuthActions() {
+ dialog.alert({
+ content:"선택한 기능그룹을 삭제하시겠습니까?",
+ onOK:() => {
+ ${infoPrefix}Control.removeActions();
+ }
+ });
+}
+
+${infoPrefix}Control.onActionListChange = obj => {
+ let authority = ${infoPrefix}Control.authorities.getCurrent();
+ authority = authority ? authority.AUTH_NM : "";
+ let ${infoPrefix}List = ${infoPrefix}Control.actions.dataset;
+ let empty = ${infoPrefix}List.empty;
+
+ let trs =
+ ${infoPrefix}Control.authorities.isAdmin() ? [document.getElementById("adminActions").innerHTML.replace(/{authority}/, authority)] :
+ empty ?
+ [document.getElementById("authActionNotFound").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
+ ${infoPrefix}List.inStrings(document.getElementById("authActionRow").innerHTML); <%-- from template#${infoPrefix}Row --%>
+ $("#authActionList").html(trs.join());
+ $("#authActionToggler").prop("checked", false);
+
+ $("#authActionPaging").setPaging({
+ list:${infoPrefix}Control.actions.dataset,
+ prefix:${infoPrefix}Control.actions.prefix,
+ start:obj.actionStart,
+ totalSize:obj.actionTotal,
+ fetchSize:obj.actionFetch,
+ func:"${infoPrefix}Control.getActions({index})"
+ });
+};
+
+${infoPrefix}Control.onCurrentActionChange = item => {
+ if (!item) return;
+
+ let data = item.data;
+ let key = data.AUTH_ID + "-" + data.GRP_ID;
+ $("#authActionList").setCurrentRow(key);
+};
+
+${infoPrefix}Control.onActionSelect = selected => {
+ let ${infoPrefix}List = ${infoPrefix}Control.actions.dataset;
+ let keys = selected.map(e => ${infoPrefix}List.getKey(e));
+ $("#authActionList input[type='checkbox']").each(function() {
+ let checkbox = $(this);
+ checkbox.prop("checked", keys.includes(checkbox.val()));
+ });
+
+ $("#btnRemoveAuthActions").prop("disabled", keys.length < 1);
+};
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/base/authority/authority-info.jsp b/src/main/webapp/WEB-INF/jsp/base/authority/authority-info.jsp
new file mode 100644
index 00000000..35362699
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/base/authority/authority-info.jsp
@@ -0,0 +1,75 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
+<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
+