From 27659024a53ebf1c8b99f2848d6f58ae5bd17b3e Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 화, 09 11월 2021 11:50:05 +0900
Subject: [PATCH] ISP, 호스팅 관리 프론트

---
 src/main/webapp/views/hostingField/hostingFieldAdd.html                      |  137 +++++
 src/main/webapp/scripts/app/hostingField/hostingField.js                     |    1 
 src/main/webapp/scripts/components/ispField/ispField.service.js              |   26 +
 src/main/webapp/views/ispField/ispFieldList.html                             |   14 
 src/main/webapp/views/hostingField/hostingFieldList.html                     |   14 
 src/main/webapp/scripts/components/HostingField/hostingField.service.js      |   28 +
 src/main/webapp/views/ispField/ispFieldAdd.html                              |  137 +++++
 src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js            |  113 ++++
 src/main/webapp/views/ispField/ispFieldModify.html                           |  135 +++++
 src/main/webapp/scripts/app/ispField/ispField.js                             |    1 
 src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js    |  114 ++++
 src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js      |  192 +++++++
 src/main/webapp/i18n/ko/global.json                                          |   29 +
 src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js               |   79 +++
 src/main/webapp/views/hostingField/hostingFieldModify.html                   |  134 +++++
 src/main/webapp/scripts/app/ispField/ispFieldList.controller.js              |  200 +++++++
 src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js       |   79 +++
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js |   18 
 src/main/webapp/views/companyField/companyFieldAdd.html                      |   12 
 src/main/webapp/scripts/main.js                                              |    4 
 20 files changed, 1,413 insertions(+), 54 deletions(-)

diff --git a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
index a18aa93..6385a66 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -375,6 +375,24 @@
                                             }
                                             break;
 
+                                        case "ISPFIELD_MODIFY" :
+                                            if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')) {
+                                                makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.name.replace(/</gi, '&lt;') + "</span>";
+                                            }
+                                            else {
+                                                makeTag += "<span class='titlename not-modify table-word-break-all'>" + scope.data.name + "</span>";
+                                            }
+                                            break;
+
+                                        case "HOSTINGFIELD_MODIFY" :
+                                            if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')) {
+                                                makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.name.replace(/</gi, '&lt;') + "</span>";
+                                            }
+                                            else {
+                                                makeTag += "<span class='titlename not-modify table-word-break-all'>" + scope.data.name + "</span>";
+                                            }
+                                            break;
+
                                         case "ISSUE_CUSTOM_FIELD_VALUE_VIEW" :
                                             var values = [];
 
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 6923aa0..700a52f 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -789,13 +789,14 @@
     },
     "companyField" : {
         "add" : "�뾽泥� �깮�꽦",
-        "name" : "�뾽泥대챸",
+        "name" : "�뾽泥� �씠由�",
         "company" : "�뾽泥� 遺꾨쪟",
         "profitYN" : "�쁺由�/鍮꾩쁺由�",
         "industry" : "�궛�뾽 遺꾨쪟",
         "domain" : "�룄硫붿씤",
         "manager" : "�떞�떦�옄",
         "tel" : "�쟾�솕踰덊샇",
+        "code" : "肄붾뱶",
         "email" : "�씠硫붿씪",
         "desc" : "鍮꾧퀬",
         "failedToSelectCompanyFieldFullList" : "�뾽泥� 愿�由� 紐⑸줉 議고쉶 �떎�뙣",
@@ -803,22 +804,42 @@
         "wantToDeleteSelectCompanyField" : "�꽑�깮�븳 �뾽泥대�� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �뾽泥대뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.",
         "failedCompanyFieldRegistration" : "�뾽泥� �벑濡� �떎�뙣",
         "failedToDetailCompanyFieldModify" : "�뾽泥� �긽�꽭 �젙蹂� 議고쉶 �떎�뙣",
-        "pleaseEnterCompanyFieldName": "�뾽泥대챸�쓣 �엯�젰�븯�꽭�슂."
+        "pleaseEnterCompanyFieldName": "�뾽泥� �씠由꾩쓣 �엯�젰�븯�꽭�슂.",
+        "enterSpecialCharacters": "�뾽泥� �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎.",
+        "invalidTelFormat": "�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂."
     },
     "ispField" : {
         "add" : "ISP �깮�꽦",
         "name" : "ISP �씠由�",
         "manager" : "�떞�떦�옄",
         "tel" : "�쟾�솕踰덊샇",
+        "code" : "肄붾뱶",
         "email" : "�씠硫붿씪",
-        "desc" : "鍮꾧퀬"
+        "desc" : "鍮꾧퀬",
+        "failedToSelectIspFieldFullList" : "ISP 愿�由� 紐⑸줉 議고쉶 �떎�뙣",
+        "delete" : "ISP �궘�젣",
+        "wantToDeleteSelectIspField" : "�꽑�깮�븳 ISP瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 ISP�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.",
+        "failedIspFieldRegistration" : "ISP �벑濡� �떎�뙣",
+        "failedToDetailIspFieldModify" : "ISP �긽�꽭 �젙蹂� 議고쉶 �떎�뙣",
+        "pleaseEnterIspFieldName": "ISP �씠由꾩쓣 �엯�젰�븯�꽭�슂.",
+        "enterSpecialCharacters": "ISP �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎.",
+        "invalidCodeFormat": "肄붾뱶紐낆뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎."
     },
     "hostingField" : {
         "add" : "�샇�뒪�똿 �깮�꽦",
         "name" : "�샇�뒪�똿 �씠由�",
         "manager" : "�떞�떦�옄",
         "tel" : "�쟾�솕踰덊샇",
+        "code" : "肄붾뱶",
         "email" : "�씠硫붿씪",
-        "desc" : "鍮꾧퀬"
+        "desc" : "鍮꾧퀬",
+        "failedToSelectHostingFieldFullList" : "�샇�뒪�똿 愿�由� 紐⑸줉 議고쉶 �떎�뙣",
+        "delete" : "�샇�뒪�똿 �궘�젣",
+        "wantToDeleteSelectHostingField" : "�꽑�깮�븳 �샇�뒪�똿�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �샇�뒪�똿�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.",
+        "failedHostingFieldRegistration" : "�샇�뒪�똿 �벑濡� �떎�뙣",
+        "failedToDetailHostingFieldModify" : "�샇�뒪�똿 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣",
+        "pleaseEnterHostingFieldName": "�샇�뒪�똿 �씠由꾩쓣 �엯�젰�븯�꽭�슂.",
+        "enterSpecialCharacters": "�샇�뒪�똿 �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎.",
+        "invalidCodeFormat": "肄붾뱶紐낆뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎."
     }
 }
\ No newline at end of file
diff --git a/src/main/webapp/scripts/app/hostingField/hostingField.js b/src/main/webapp/scripts/app/hostingField/hostingField.js
index 1a882b3..c6145d2 100644
--- a/src/main/webapp/scripts/app/hostingField/hostingField.js
+++ b/src/main/webapp/scripts/app/hostingField/hostingField.js
@@ -33,6 +33,7 @@
                         loadController : ["$q", function ($q) {
                             var deferred = $q.defer();
                             require(["hostingFieldListController", 'jsTable', 'tableColumnGenerator', 'hostingFieldService', 'modalFormAutoScroll'
+                                , 'hostingFieldAddController', 'hostingFieldModifyController'
                                 , 'formSubmit', 'jsShortCut', 'inputRegex'], function () {
                                 deferred.resolve();
                             });
diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js
new file mode 100644
index 0000000..20433a1
--- /dev/null
+++ b/src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js
@@ -0,0 +1,79 @@
+/**
+ * Created by wisestone on 2018-02-19.
+ */
+'use strict';
+
+define([
+        'app'
+    ],
+    function (app) {
+        app.controller('hostingFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'HostingField', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, HostingField, $filter) {
+
+                $scope.fn = {
+                    cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
+                    formCheck : formCheck,   //  �뤌 泥댄겕
+                };
+
+                $scope.vm = {
+                    form : {
+                        code : "",  //肄붾뱶
+                        name : "",  //�샇�뒪�똿紐�
+                        manager : "",   //�떞�떦�옄
+                        tel : "",  //�쟾�솕踰덊샇
+                        email : "",  //�씠硫붿씪
+                        memo : ""  //鍮꾧퀬
+                    }
+                };
+
+                //  �뤌 泥댄겕
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+                    return false;
+                }
+
+                //  �뤌 �쟾�넚
+                function formSubmit(condition) {
+                    $rootScope.spinner = true;
+
+                    var content = {
+                        code : $rootScope.preventXss($scope.vm.form.code),  //肄붾뱶
+                        name : $rootScope.preventXss($scope.vm.form.name),    //  �샇�뒪�똿紐�
+                        manager : $scope.vm.form.manager,   //�떞�떦�옄
+                        tel : $scope.vm.form.tel,  //�쟾�솕踰덊샇
+                        email : $scope.vm.form.email,  //�씠硫붿씪
+                        memo : $scope.vm.form.memo  //鍮꾧퀬
+                    };
+
+                    HostingField.add($resourceProvider.getContent(content,
+                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.fn.cancel();
+                            //  紐⑸줉 �솕硫� 媛깆떊
+                            $rootScope.$broadcast("getPageList", {});
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("hostingField.failedHostingFieldRegistration"), result.data.message.message);
+                        }
+
+                        $rootScope.spinner = false;
+                    });
+
+                }
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                    $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
+                }
+
+            }
+
+        ]);
+    }
+);
\ No newline at end of file
diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js
index e7c9bec..339d57c 100644
--- a/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js
+++ b/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js
@@ -13,13 +13,46 @@
 
                 //  �븿�닔
                 $scope.fn = {
+                    getPageList : getPageList, // �샇�뒪�똿 愿�由� 由ъ뒪�듃
                     makeTableConfigs : makeTableConfigs, //  �뀒�씠釉� �꽕�젙
+                    initSearch : initSearch, //寃��깋 議곌굔 珥덇린�솕
+                    add : add, //�샇�뒪�똿 �깮�꽦
+                    removes : removes, //�샇�뒪�똿 �궘�젣
+                    makeSearchConditions : makeSearchConditions //�뿊�� �떎�슫濡쒕뱶
                 };
 
                 //  蹂��닔
                 $scope.vm = {
                     tableConfigs : [],
                 };
+
+                $scope.tableEvent = {
+                    modify : modify //�샇�뒪�똿 �젙蹂� 蹂�寃�
+                };
+
+                $scope.vm.search = {
+                    name : "",  //  �샇�뒪�똿 �씠由�
+                };
+
+                $scope.vm.page = {
+                    selectedPage : 0,
+                    selectedPageRowCount : String(10)
+                };
+
+                $scope.vm.responseData = {
+                    data : []
+                };
+
+                //  �샇�뒪�똿 愿�由� 由ъ뒪�듃 遺덈윭�삤湲�
+                $scope.$on("getPageList", function () {
+                    $scope.fn.getPageList(0);
+                });
+
+                //  寃��깋 議곌굔 珥덇린�솕
+                function initSearch() {
+                    $scope.vm.search.name = "";
+                    $scope.fn.getPageList(0);
+                }
 
                 //  �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뀒�씠釉� �꽕�젙
                 function makeTableConfigs() {
@@ -35,38 +68,171 @@
                         .setDName("name")
                         .setDType("renderer")
                         .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDRenderer("HOSTINGFIELD_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("hostingField.code")
+                        .setHWidth("bold")
+                        .setDName("code")
+                        .setDAlign("text-center"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("hostingField.manager")
                         .setHWidth("bold")
                         .setDName("name")
-                        .setDType("renderer")
-                        .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDAlign("text-center"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("hostingField.tel")
                         .setHWidth("bold")
                         .setDName("name")
-                        .setDType("renderer")
-                        .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDAlign("text-center"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("hostingField.email")
                         .setHWidth("bold")
                         .setDName("name")
-                        .setDType("renderer")
-                        .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDAlign("text-center"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("hostingField.desc")
                         .setHWidth("bold")
                         .setDName("name")
-                        .setDType("renderer")
-                        .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDAlign("text-center"));
+                }
+
+                //  �샇�뒪�똿 愿�由� 紐⑸줉 議고쉶
+                function getPageList(selectedPage) {
+                    if (selectedPage < 0) {
+                        selectedPage = 0;
+                    }
+                    //  �쁽�옱 �럹�씠吏� �젙蹂�
+                    var currentPage = 0;
+
+                    //  荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣
+                    if (angular.isUndefined(selectedPage) || selectedPage === "") {
+                        currentPage = $scope.vm.page.selectedPage;
+                    }
+                    else {
+                        currentPage = selectedPage;
+                    }
+
+                    var conditions = {
+                        name : $scope.vm.search.name //�샇�뒪�똿 紐�
+                    };
+
+                    //�뀒�씠釉� 由ъ뒪�듃 �뜲�씠�꽣 而⑦듃濡ㅻ윭 �슂泥�
+                    HostingField.find($resourceProvider.getContent(conditions,
+                        $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.vm.page.selectedPage = currentPage + 1;
+                            $scope.vm.responseData = result.data;
+
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("hostingField.failedToSelectHostingFieldFullList"), result.data.message.message); // �샇�뒪�똿 愿�由� 紐⑸줉 議고쉶 �떎�뙣
+                        }
+                    });
+                }
+
+                //  �샇�뒪�똿 �깮�꽦
+                function add() {
+                    $uibModal.open({
+                        templateUrl : 'views/hostingField/hostingFieldAdd.html',
+                        size : "md",
+                        controller : 'hostingFieldAddController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                };
+                            }
+                        }
+                    });
+                }
+
+                //  �샇�뒪�똿 �닔�젙
+                function modify(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/hostingField/hostingFieldModify.html',
+                        size : "md",
+                        controller : 'hostingFieldModifyController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id
+                                };
+                            }
+                        }
+                    });
+                }
+
+                //  �샇�뒪�똿 �궘�젣
+                function removes() {
+                    var removeIds = [];
+
+                    angular.forEach($scope.vm.responseData.data, function (data) {
+                        if (data.checked) {
+                            removeIds.push(data.id);
+                        }
+                    });
+
+                    if (removeIds.length < 1) {
+                        SweetAlert.swal({
+                            title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤
+                            text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂.
+                            type : "warning"
+                        });
+                        return;
+                    }
+
+                    //  �궘�젣 �븣由�
+                    SweetAlert.swal({
+                            title : $filter("translate")("hostingField.delete"), // "�궘�젣"
+                            text : $filter("translate")("hostingField.wantToDeleteSelectHostingField"), // �꽑�깮�븳 �샇�뒪�똿�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �샇�뒪�똿�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.
+                            type : "warning",
+                            showCancelButton : true,
+                            confirmButtonColor : "#DD6B55",
+                            confirmButtonText : $filter("translate")("common.delete"), // �궘�젣
+                            cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼
+                            closeOnConfirm : false,
+                            closeOnCancel : true
+                        },
+                        function (isConfirm) {
+                            SweetAlert.close();
+
+                            if (isConfirm) {
+                                $rootScope.spinner = true;
+
+                                HostingField.removes($resourceProvider.getContent(
+                                    { removeIds : removeIds },
+                                    $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                                    if (result.data.message.status === "success") {
+                                        $timeout(function () {
+                                            SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨�
+                                        }, 100);
+
+                                        $scope.fn.getPageList(0);
+                                    }
+                                    else {
+                                        $timeout(function () {
+                                            SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣
+                                        }, 100);
+                                    }
+
+                                    $rootScope.spinner = false;
+                                });
+                            }
+                        });
+                }
+
+                function makeSearchConditions() {
+                    var conditions = {
+                        name: $scope.vm.search.name
+                    }
+                    return conditions;
                 }
 
                 $scope.fn.makeTableConfigs();
+                $scope.fn.getPageList();
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js
new file mode 100644
index 0000000..e7c73ef
--- /dev/null
+++ b/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js
@@ -0,0 +1,114 @@
+/**
+ * Created by wisestone on 2018-05-08.
+ */
+'use strict';
+
+define([
+        'app',
+        'angular'
+    ],
+    function (app, angular) {
+        app.controller('hostingFieldModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'HostingField', 'parameter', 'SweetAlert', '$filter', '$q',
+            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, HostingField, parameter, SweetAlert, $filter, $q) {
+
+                $scope.fn = {
+                    detail : detail,  //  �긽�꽭 議고쉶
+                    cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
+                    formCheck : formCheck,  //  �뤌 泥댄겕
+                };
+
+                $scope.vm = {
+                    id : parameter.id,
+                    form : {
+                        code : "",  //肄붾뱶
+                        name : "",  //�샇�뒪�똿紐�
+                        manager : "",   //�떞�떦�옄
+                        tel : "",  //�쟾�솕踰덊샇
+                        email : "",  //�씠硫붿씪
+                        memo : ""  //硫붾え(鍮꾧퀬)
+                    }
+                };
+
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+
+                    return false;
+                }
+
+                //  �뤌 �쟾�넚
+                function formSubmit() {
+                    $rootScope.spinner = true;
+
+                    var content = {
+                        id : parameter.id,
+                        code : $rootScope.preventXss($scope.vm.form.name),
+                        name : $rootScope.preventXss($scope.vm.form.name),
+                        manager : $rootScope.preventXss($scope.vm.form.manager),
+                        tel : $rootScope.preventXss($scope.vm.form.tel),
+                        email : $rootScope.preventXss($scope.vm.form.email),
+                        memo : $rootScope.preventXss($scope.vm.form.memo)
+                    };
+
+                    HostingField.modify($resourceProvider.getContent(
+                        content,
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.fn.cancel();
+
+                            //  紐⑸줉 �솕硫� 媛깆떊
+                            $rootScope.$broadcast("getPageList", {});
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("hostingField.failedHostingFieldRegistration"), result.data.message.message); //�벑濡� �떎�뙣
+                        }
+
+                        $rootScope.spinner = false;
+                    });
+
+                }
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                    $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
+                }
+
+                //  �긽�꽭 �젙蹂�
+                function detail() {
+                    var deferred = $q.defer();
+
+                    var conditions = {
+                        id : parameter.id
+                    }
+
+                    HostingField.detail($resourceProvider.getContent(
+                        conditions,
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            if (angular.isDefined(result.data.content)) {
+                                $scope.vm.form.code = result.data.content.code;
+                                $scope.vm.form.name = result.data.content.name;
+                                $scope.vm.form.manager = result.data.content.manager;
+                                $scope.vm.form.email = result.data.content.email;
+                                $scope.vm.form.tel = result.data.content.tel;
+                                $scope.vm.form.memo = result.data.content.memo;
+                            }
+                        }
+                        else {
+                            SweetAlert.swal($filter("translate")("hostingField.failedToDetailHostingFieldModify"), result.data.message.message, "error"); // "�긽�꽭 �젙蹂� 議고쉶 �떎�뙣"
+                        }
+                        deferred.resolve(result.data.data);
+                    });
+                    return deferred.promise;
+                }
+
+                $scope.fn.detail();
+
+            }]);
+    });
diff --git a/src/main/webapp/scripts/app/ispField/ispField.js b/src/main/webapp/scripts/app/ispField/ispField.js
index 7a2ce3b..563b10e 100644
--- a/src/main/webapp/scripts/app/ispField/ispField.js
+++ b/src/main/webapp/scripts/app/ispField/ispField.js
@@ -33,6 +33,7 @@
                         loadController : ["$q", function ($q) {
                             var deferred = $q.defer();
                             require(["ispFieldListController", 'jsTable', 'tableColumnGenerator', 'ispFieldService', 'modalFormAutoScroll'
+                                , 'ispFieldAddController', 'ispFieldModifyController'
                                 , 'formSubmit', 'jsShortCut', 'inputRegex'], function () {
                                 deferred.resolve();
                             });
diff --git a/src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js b/src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js
new file mode 100644
index 0000000..2cb2fff
--- /dev/null
+++ b/src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js
@@ -0,0 +1,79 @@
+/**
+ * Created by wisestone on 2018-02-19.
+ */
+'use strict';
+
+define([
+        'app'
+    ],
+    function (app) {
+        app.controller('ispFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'IspField', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, IspField, $filter) {
+
+                $scope.fn = {
+                    cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
+                    formCheck : formCheck,   //  �뤌 泥댄겕
+                };
+
+                $scope.vm = {
+                    form : {
+                        code : "",  //肄붾뱶
+                        name : "",  //ISP紐�
+                        manager : "",   //�떞�떦�옄
+                        tel : "",  //�쟾�솕踰덊샇
+                        email : "",  //�씠硫붿씪
+                        memo : ""  //鍮꾧퀬
+                    }
+                };
+
+                //  �뤌 泥댄겕
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+                    return false;
+                }
+
+                //  �뤌 �쟾�넚
+                function formSubmit(condition) {
+                    $rootScope.spinner = true;
+
+                    var content = {
+                        code : $rootScope.preventXss($scope.vm.form.code),  //肄붾뱶
+                        name : $rootScope.preventXss($scope.vm.form.name),    //  ISP紐�
+                        manager : $scope.vm.form.manager,   //�떞�떦�옄
+                        tel : $scope.vm.form.tel,  //�쟾�솕踰덊샇
+                        email : $scope.vm.form.email,  //�씠硫붿씪
+                        memo : $scope.vm.form.memo  //鍮꾧퀬
+                    };
+
+                    IspField.add($resourceProvider.getContent(content,
+                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.fn.cancel();
+                            //  紐⑸줉 �솕硫� 媛깆떊
+                            $rootScope.$broadcast("getPageList", {});
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("ispField.failedToSelectIspFieldFullList"), result.data.message.message);
+                        }
+
+                        $rootScope.spinner = false;
+                    });
+
+                }
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                    $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
+                }
+
+            }
+
+        ]);
+    }
+);
\ No newline at end of file
diff --git a/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js b/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js
index ce4ce11..682f68f 100644
--- a/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js
+++ b/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js
@@ -13,13 +13,46 @@
 
                 //  �븿�닔
                 $scope.fn = {
+                    getPageList : getPageList, // ISP 愿�由� 由ъ뒪�듃
                     makeTableConfigs : makeTableConfigs, //  �뀒�씠釉� �꽕�젙
+                    initSearch : initSearch, //寃��깋 議곌굔 珥덇린�솕
+                    add : add, //ISP �깮�꽦
+                    removes : removes, //ISP �궘�젣
+                    makeSearchConditions : makeSearchConditions //�뿊�� �떎�슫濡쒕뱶
                 };
 
                 //  蹂��닔
                 $scope.vm = {
                     tableConfigs : [],
                 };
+
+                $scope.tableEvent = {
+                    modify : modify //ISP �젙蹂� 蹂�寃�
+                };
+
+                $scope.vm.search = {
+                    name : "",  //  ISP �씠由�
+                };
+
+                $scope.vm.page = {
+                    selectedPage : 0,
+                    selectedPageRowCount : String(10)
+                };
+
+                $scope.vm.responseData = {
+                    data : []
+                };
+
+                //  iSP 愿�由� 由ъ뒪�듃 遺덈윭�삤湲�
+                $scope.$on("getPageList", function () {
+                    $scope.fn.getPageList(0);
+                });
+
+                //  寃��깋 議곌굔 珥덇린�솕
+                function initSearch() {
+                    $scope.vm.search.name = "";
+                    $scope.fn.getPageList(0);
+                }
 
                 //  �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뀒�씠釉� �꽕�젙
                 function makeTableConfigs() {
@@ -35,38 +68,171 @@
                         .setDName("name")
                         .setDType("renderer")
                         .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDRenderer("ISPFIELD_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("ispField.code")
+                        .setHWidth("bold")
+                        .setDName("code")
+                        .setDAlign("text-center"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("ispField.manager")
                         .setHWidth("bold")
-                        .setDName("name")
-                        .setDType("renderer")
-                        .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDName("manager")
+                        .setDAlign("text-center"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("ispField.tel")
                         .setHWidth("bold")
-                        .setDName("name")
-                        .setDType("renderer")
-                        .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDName("tel")
+                        .setDAlign("text-center"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("ispField.email")
                         .setHWidth("bold")
-                        .setDName("name")
-                        .setDType("renderer")
-                        .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDName("email")
+                        .setDAlign("text-center"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("ispField.desc")
                         .setHWidth("bold")
-                        .setDName("name")
-                        .setDType("renderer")
-                        .setDAlign("text-center")
-                        .setDRenderer("COMMON_MODIFY"));
+                        .setDName("memo")
+                        .setDAlign("text-center"));
+                }
+
+                //  ISP 愿�由� 紐⑸줉 議고쉶
+                function getPageList(selectedPage) {
+                    if (selectedPage < 0) {
+                        selectedPage = 0;
+                    }
+                    //  �쁽�옱 �럹�씠吏� �젙蹂�
+                    var currentPage = 0;
+
+                    //  荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣
+                    if (angular.isUndefined(selectedPage) || selectedPage === "") {
+                        currentPage = $scope.vm.page.selectedPage;
+                    }
+                    else {
+                        currentPage = selectedPage;
+                    }
+
+                    var conditions = {
+                        name : $scope.vm.search.name //ISP 紐�
+                    };
+
+                    //�뀒�씠釉� 由ъ뒪�듃 �뜲�씠�꽣 而⑦듃濡ㅻ윭 �슂泥�
+                    IspField.find($resourceProvider.getContent(conditions,
+                        $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.vm.page.selectedPage = currentPage + 1;
+                            $scope.vm.responseData = result.data;
+
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("ispField.failedToSelectIspFieldFullList"), result.data.message.message); // 紐⑸줉 議고쉶 �떎�뙣
+                        }
+                    });
+                }
+
+                //  ISP �깮�꽦
+                function add() {
+                    $uibModal.open({
+                        templateUrl : 'views/ispField/ispFieldAdd.html',
+                        size : "md",
+                        controller : 'ispFieldAddController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                };
+                            }
+                        }
+                    });
+                }
+
+                //  ISP �닔�젙
+                function modify(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/ispField/ispFieldModify.html',
+                        size : "md",
+                        controller : 'ispFieldModifyController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id
+                                };
+                            }
+                        }
+                    });
+                }
+
+                //  ISP �궘�젣
+                function removes() {
+                    var removeIds = [];
+
+                    angular.forEach($scope.vm.responseData.data, function (data) {
+                        if (data.checked) {
+                            removeIds.push(data.id);
+                        }
+                    });
+
+                    if (removeIds.length < 1) {
+                        SweetAlert.swal({
+                            title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤
+                            text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂.
+                            type : "warning"
+                        });
+                        return;
+                    }
+
+                    //  �궘�젣 �븣由�
+                    SweetAlert.swal({
+                            title : $filter("translate")("ispField.delete"), // "�궘�젣"
+                            text : $filter("translate")("ispField.wantToDeleteSelectIspField"),
+                            type : "warning",
+                            showCancelButton : true,
+                            confirmButtonColor : "#DD6B55",
+                            confirmButtonText : $filter("translate")("common.delete"), // �궘�젣
+                            cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼
+                            closeOnConfirm : false,
+                            closeOnCancel : true
+                        },
+                        function (isConfirm) {
+                            SweetAlert.close();
+
+                            if (isConfirm) {
+                                $rootScope.spinner = true;
+
+                                IspField.removes($resourceProvider.getContent(
+                                    { removeIds : removeIds },
+                                    $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                                    if (result.data.message.status === "success") {
+                                        $timeout(function () {
+                                            SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨�
+                                        }, 100);
+
+                                        $scope.fn.getPageList(0);
+                                    }
+                                    else {
+                                        $timeout(function () {
+                                            SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣
+                                        }, 100);
+                                    }
+
+                                    $rootScope.spinner = false;
+                                });
+                            }
+                        });
+                }
+
+                function makeSearchConditions() {
+                    var conditions = {
+                        name: $scope.vm.search.name
+                    }
+                    return conditions;
                 }
 
                 $scope.fn.makeTableConfigs();
+                $scope.fn.getPageList();
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js b/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js
new file mode 100644
index 0000000..84d41e0
--- /dev/null
+++ b/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js
@@ -0,0 +1,113 @@
+/**
+ * Created by wisestone on 2018-05-08.
+ */
+'use strict';
+
+define([
+        'app',
+        'angular'
+    ],
+    function (app, angular) {
+        app.controller('ispFieldModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'IspField', 'parameter', 'SweetAlert', '$filter', '$q',
+            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, IspField, parameter, SweetAlert, $filter, $q) {
+
+                $scope.fn = {
+                    detail : detail,  //  �긽�꽭 議고쉶
+                    cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
+                    formCheck : formCheck,  //  �뤌 泥댄겕
+                };
+
+                $scope.vm = {
+                    id : parameter.id,
+                    form : {
+                        name : "",  //ISP紐�
+                        manager : "",   //�떞�떦�옄
+                        tel : "",  //�쟾�솕踰덊샇
+                        email : "",  //�씠硫붿씪
+                        memo : ""  //硫붾え(鍮꾧퀬)
+                    }
+                };
+
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+
+                    return false;
+                }
+
+                //  �뤌 �쟾�넚
+                function formSubmit() {
+                    $rootScope.spinner = true;
+
+                    var content = {
+                        id : parameter.id,
+                        code : $rootScope.preventXss($scope.vm.form.name),
+                        name : $rootScope.preventXss($scope.vm.form.name),
+                        manager : $rootScope.preventXss($scope.vm.form.manager),
+                        tel : $rootScope.preventXss($scope.vm.form.tel),
+                        email : $rootScope.preventXss($scope.vm.form.email),
+                        memo : $rootScope.preventXss($scope.vm.form.memo)
+                    };
+
+                    IspField.modify($resourceProvider.getContent(
+                        content,
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.fn.cancel();
+
+                            //  紐⑸줉 �솕硫� 媛깆떊
+                            $rootScope.$broadcast("getPageList", {});
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("ispField.failedIspFieldRegistration"), result.data.message.message); //�벑濡� �떎�뙣
+                        }
+
+                        $rootScope.spinner = false;
+                    });
+
+                }
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                    $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
+                }
+
+                //  �긽�꽭 �젙蹂�
+                function detail() {
+                    var deferred = $q.defer();
+
+                    var conditions = {
+                        id : parameter.id
+                    }
+
+                    IspField.detail($resourceProvider.getContent(
+                        conditions,
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            if (angular.isDefined(result.data.content)) {
+                                $scope.vm.form.code = result.data.content.code;
+                                $scope.vm.form.name = result.data.content.name;
+                                $scope.vm.form.manager = result.data.content.manager;
+                                $scope.vm.form.email = result.data.content.email;
+                                $scope.vm.form.tel = result.data.content.tel;
+                                $scope.vm.form.memo = result.data.content.memo;
+                            }
+                        }
+                        else {
+                            SweetAlert.swal($filter("translate")("ispField.failedToDetailIspFieldModify"), result.data.message.message, "error"); // "�긽�꽭 �젙蹂� 議고쉶 �떎�뙣"
+                        }
+                        deferred.resolve(result.data.data);
+                    });
+                    return deferred.promise;
+                }
+
+                $scope.fn.detail();
+
+            }]);
+    });
diff --git a/src/main/webapp/scripts/components/HostingField/hostingField.service.js b/src/main/webapp/scripts/components/HostingField/hostingField.service.js
index ab89318..f06551f 100644
--- a/src/main/webapp/scripts/components/HostingField/hostingField.service.js
+++ b/src/main/webapp/scripts/components/HostingField/hostingField.service.js
@@ -9,11 +9,37 @@
     app.factory("HostingField", ['$http', '$log', function ($http, $log) {
         return {
             find : function (conditions) {
-                return $http.post("HostingField/find", conditions).then(function (response) {
+                return $http.post("hostingField/find", conditions).then(function (response) {
                     $log.debug("Hosting �븘�뱶 紐⑸줉 �뜲�씠�꽣 : ", response);
                     return response;
                 });
+            },
+            add : function (conditions) {
+                return $http.post("hostingField/add", conditions).then(function (response) {
+                    $log.debug("HostingField �깮�꽦 寃곌낵 : ", response);
+                    return response;
+                });
+            },
+            modify : function (conditions) {
+                return $http.post("hostingField/modify", conditions).then(function (response) {
+                    $log.debug("HostingField �닔�젙 寃곌낵 : ", response);
+                    return response;
+                });
+            },
+            detail : function (conditions) {
+                return $http.post("hostingField/detail", conditions).then(function (response) {
+                    $log.debug("HostingField �긽�꽭 : ", response);
+                    return response;
+                });
+            },
+            removes : function (conditions) {
+                return $http.post("hostingField/remove", conditions).then(function (response) {
+                    $log.debug("HostingField �궘�젣 寃곌낵 : ", response);
+                    return response;
+                });
             }
+
+
         }
     }
     ]);
diff --git a/src/main/webapp/scripts/components/ispField/ispField.service.js b/src/main/webapp/scripts/components/ispField/ispField.service.js
index b3a2c09..242b06e 100644
--- a/src/main/webapp/scripts/components/ispField/ispField.service.js
+++ b/src/main/webapp/scripts/components/ispField/ispField.service.js
@@ -9,10 +9,34 @@
     app.factory("IspField", ['$http', '$log', function ($http, $log) {
         return {
             find : function (conditions) {
-                return $http.post("IspField/find", conditions).then(function (response) {
+                return $http.post("ispField/find", conditions).then(function (response) {
                     $log.debug("ISP �븘�뱶 紐⑸줉 �뜲�씠�꽣 : ", response);
                     return response;
                 });
+            },
+            add : function (conditions) {
+                return $http.post("ispField/add", conditions).then(function (response) {
+                    $log.debug("IspField �깮�꽦 寃곌낵 : ", response);
+                    return response;
+                });
+            },
+            modify : function (conditions) {
+                return $http.post("ispField/modify", conditions).then(function (response) {
+                    $log.debug("IspField �닔�젙 寃곌낵 : ", response);
+                    return response;
+                });
+            },
+            detail : function (conditions) {
+                return $http.post("ispField/detail", conditions).then(function (response) {
+                    $log.debug("IspField �긽�꽭 : ", response);
+                    return response;
+                });
+            },
+            removes : function (conditions) {
+                return $http.post("ispField/remove", conditions).then(function (response) {
+                    $log.debug("IspField �궘�젣 寃곌낵 : ", response);
+                    return response;
+                });
             }
         }
     }
diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js
index 42c0fa0..2a3fc14 100644
--- a/src/main/webapp/scripts/main.js
+++ b/src/main/webapp/scripts/main.js
@@ -339,11 +339,15 @@
         'ispFieldRoute' : 'app/ispField/ispField',   // ISP route �젙蹂�
         'ispFieldService' : 'components/ispField/ispField.service',  // ISP 愿��젴�맂 �넻�떊 �떞�떦
         'ispFieldListController' : 'app/ispField/ispFieldList.controller', // ISP 紐⑸줉 而⑦듃濡ㅻ윭
+        'ispFieldAddController' : 'app/ispField/ispFieldAdd.controller', // ISP �깮�꽦 而⑦듃濡ㅻ윭
+        'ispFieldModifyController' : 'app/ispField/ispFieldModify.controller', // ISP �닔�젙 而⑦듃濡ㅻ윭
 
         /* �샇�뒪�똿 */
         'hostingFieldRoute' : 'app/hostingField/hostingField',   // �샇�뒪�똿 route �젙蹂�
         'hostingFieldService' : 'components/HostingField/hostingField.service',  // �샇�뒪�똿 愿��젴�맂 �넻�떊 �떞�떦
         'hostingFieldListController' : 'app/hostingField/hostingFieldList.controller', // �샇�뒪�똿 紐⑸줉 而⑦듃濡ㅻ윭
+        'hostingFieldAddController' : 'app/hostingField/hostingFieldAdd.controller', // �샇�뒪�똿 �깮�꽦 而⑦듃濡ㅻ윭
+        'hostingFieldModifyController' : 'app/hostingField/hostingFieldModify.controller', // �샇�뒪�똿 �닔�젙 而⑦듃濡ㅻ윭
     },
     shim : {
         'jquery-ui' : {
diff --git a/src/main/webapp/views/companyField/companyFieldAdd.html b/src/main/webapp/views/companyField/companyFieldAdd.html
index 9578e86..91445c3 100644
--- a/src/main/webapp/views/companyField/companyFieldAdd.html
+++ b/src/main/webapp/views/companyField/companyFieldAdd.html
@@ -27,7 +27,7 @@
                        ng-maxlength="100"
                        maxlength="100"
                        required>
-                <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                <small translate="companyField.enterSpecialCharacters">�뾽泥� �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷�닔 �뾾�뒿�땲�떎.</small>
             </div>
             <!--<div class="row">
                 <div class="col-md-3">
@@ -132,12 +132,14 @@
                            type="text"
                            class="form-control"
                            kr-input
-                           input-regex="[^0-9]"
+                           ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                            autocomplete="off"
                            ng-model="vm.form.tel"
                            maxlength="20"
                     >
-                    <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                    <div ng-show="companyFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger"
+                         translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.
+                    </div>
                 </div>
             </div>
             <div>
@@ -155,7 +157,9 @@
                            kr-input
                            ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"
                     >
-                    <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                    <div ng-show="companyFieldAddForm.email.$error.pattern" class="help-block form-text text-danger"
+                         translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                    </div>
                 </div>
             </div>
             <div>
diff --git a/src/main/webapp/views/hostingField/hostingFieldAdd.html b/src/main/webapp/views/hostingField/hostingFieldAdd.html
new file mode 100644
index 0000000..6919da2
--- /dev/null
+++ b/src/main/webapp/views/hostingField/hostingFieldAdd.html
@@ -0,0 +1,137 @@
+<div class="formModal">
+    <div class="modal-header faded smaller">
+        <div class="modal-title">
+            <strong>�샇�뒪�똿 �벑濡�</strong>
+        </div>
+        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
+            <span aria-hidden="true"> &times;</span>
+        </button>
+    </div>
+
+    <div class="modal-body">
+        <form role="form" name="hostingFieldAddForm">
+            <div class="form-group">
+                <label for="hostingFieldAddForm1">
+                    <span translate="hostingField.name">�샇�뒪�똿紐�</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="hostingFieldAddForm1"
+                       name="name"
+                       type="text"
+                       class="form-control"
+                       autofocus
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.name"
+                       ng-maxlength="100"
+                       maxlength="100"
+                       required>
+                <small translate="hostingField.enterSpecialCharacters">�샇�뒪�똿 �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷�닔 �뾾�뒿�땲�떎.</small>
+            </div>
+            <div class="form-group">
+                <label for="hostingFieldAddForm10">
+                    <span translate="hostingField.code">肄붾뱶</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="hostingFieldAddForm10"
+                       name="code"
+                       type="text"
+                       class="form-control"
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.code"
+                       ng-maxlength="100"
+                       maxlength="100"
+                       required>
+                <small translate="hostingField.invalidCodeFormat">肄붾뱶紐낆뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷�닔 �뾾�뒿�땲�떎.</small>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldAddForm9" class="issue-label">
+                        <span translate="hostingField.manager">�떞�떦�옄</span>
+                    </label>
+                    <input id="hostingFieldAddForm9"
+                           name="manager"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                           autocomplete="off"
+                           ng-model="vm.form.manager"
+                           ng-maxlength="100"
+                           maxlength="100"
+                    >
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldAddForm7" class="issue-label">
+                        <span translate="hostingField.tel">�쟾�솕踰덊샇</span>
+                    </label>
+                    <input id="hostingFieldAddForm7"
+                           name="tel"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
+                           autocomplete="off"
+                           ng-model="vm.form.tel"
+                           maxlength="20"
+                    >
+                    <div ng-show="hostingFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger"
+                         translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.
+                    </div>
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldAddForm6" class="issue-label">
+                        <span translate="hostingField.email">�씠硫붿씪</span>
+                    </label>
+                    <input id="hostingFieldAddForm6"
+                           name="email"
+                           type="email"
+                           class="form-control"
+                           autocomplete="off"
+                           maxLength="50"
+                           ng-model="vm.form.email"
+                           kr-input
+                           ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"
+                    >
+                    <div ng-show="hostingFieldAddForm.email.$error.pattern" class="help-block form-text text-danger"
+                         translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                    </div>
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldAddForm8" class="issue-label">
+                        <span translate="hostingField.desc">鍮꾧퀬</span>
+                    </label>
+                    <input id="hostingFieldAddForm8"
+                           name="memo"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           autocomplete="off"
+                           ng-model="vm.form.memo"
+                           ng-maxlength="200"
+                           maxlength="200"
+                    >
+                </div>
+            </div>
+        </form>
+    </div>
+
+    <div class="modal-footer buttons-on-right">
+        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button>
+        <button type="button" class="btn btn-md btn-primary bold"
+                js-short-cut
+                js-short-cut-action="(fn.formCheck(hostingFieldAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
+                ng-disabled="fn.formCheck(hostingFieldAddForm.$invalid)"
+                ng-click="fn.formSubmit()"><span translate="common.save">���옣</span>
+        </button>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/views/hostingField/hostingFieldList.html b/src/main/webapp/views/hostingField/hostingFieldList.html
index 9439daa..8c9ac52 100644
--- a/src/main/webapp/views/hostingField/hostingFieldList.html
+++ b/src/main/webapp/views/hostingField/hostingFieldList.html
@@ -13,20 +13,20 @@
                 <div class="row">
                     <div class="col-sm-12">
                         <div class="searchdiv">
-                            <form name="customFieldListForm" role="form" ng-enter="fn.getPageList(0)">
+                            <form name="hostingFieldListForm" role="form" ng-enter="fn.getPageList(0)">
                                 <div class="row">
                                     <div class="col-lg-3">
                                         <div class="form-group">
-                                            <label for="customFieldListForm1"><span translate="hostingField.name">�궗�슜�옄 �젙�쓽 �븘�뱶 紐�</span></label>
+                                            <label for="hostingFieldListForm1"><span translate="hostingField.name">ISP �씠由�</span></label>
                                             <input type="text"
                                                    name="name"
-                                                   id="customFieldListForm1"
+                                                   id="hostingFieldListForm1"
                                                    autocomplete="off"
                                                    maxlength="15"
                                                    kr-input
                                                    owl-auto-focus
                                                    class="form-control"
-                                                   ng-model="vm.search.name" placeholder="{{'customField.pleaseEnterUserDefinedFieldName' | translate}}">
+                                                   ng-model="vm.search.name" placeholder="{{'hostingField.pleaseEnterHostingFieldName' | translate}}">
                                         </div>
                                     </div>
 
@@ -66,8 +66,8 @@
                         </div>
                         <div class="col-5 text-right" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')">
                             <form class="form-inline justify-content-sm-end pull-right" method="post"
-                                  action="/customField/downloadExcel"
-                                  name="customFieldListForm">
+                                  action="/hostingField/downloadExcel"
+                                  name="hostingFieldListForm">
                                 <input type="hidden" name="conditions">
                                 <div class="btn-group">
                                     <button aria-expanded="false" aria-haspopup="true"
@@ -76,7 +76,7 @@
                                     </button>
                                     <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu"
                                          x-placement="bottom-start">
-                                        <a class="dropdown-item cursor" form-submit="customFieldListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span></a>
+                                        <a class="dropdown-item cursor" form-submit="hostingFieldListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span></a>
                                         <a class="dropdown-item cursor" ng-click="fn.removes()"> <span translate="common.delete">�궘�젣</span></a>
                                     </div>
                                 </div>
diff --git a/src/main/webapp/views/hostingField/hostingFieldModify.html b/src/main/webapp/views/hostingField/hostingFieldModify.html
new file mode 100644
index 0000000..764e8b5
--- /dev/null
+++ b/src/main/webapp/views/hostingField/hostingFieldModify.html
@@ -0,0 +1,134 @@
+<div class="formModal">
+    <div class="modal-header faded smaller">
+        <div class="modal-title">
+            <strong>�샇�뒪�똿 �닔�젙</strong>
+        </div>
+        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
+            <span aria-hidden="true"> &times;</span>
+        </button>
+    </div>
+
+    <div class="modal-body">
+        <form role="form" name="hostingFieldModifyForm">
+            <div class="form-group">
+                <label for="hostingFieldModifyForm1">
+                    <span translate="hostingField.name">�샇�뒪�똿紐�</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="hostingFieldModifyForm1"
+                       name="name"
+                       type="text"
+                       class="form-control"
+                       autofocus
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.name"
+                       ng-maxlength="100"
+                       maxlength="100"
+                       required>
+                <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+            </div>
+            <div class="form-group">
+                <label for="hostingFieldModifyForm10">
+                    <span translate="hostingField.code">肄붾뱶</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="hostingFieldModifyForm10"
+                       name="code"
+                       type="text"
+                       class="form-control"
+                       disabled
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.code"
+                       ng-maxlength="100"
+                       maxlength="100"
+                       required>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldModifyForm9" class="issue-label">
+                        <span translate="hostingField.manager">�떞�떦�옄</span>
+                    </label>
+                    <input id="hostingFieldModifyForm9"
+                           name="manager"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                           autocomplete="off"
+                           ng-model="vm.form.manager"
+                           ng-maxlength="100"
+                           maxlength="100"
+                    >
+                    <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldModifyForm7" class="issue-label">
+                        <span translate="hostingField.tel">�쟾�솕踰덊샇</span>
+                    </label>
+                    <input id="hostingFieldModifyForm7"
+                           name="tel"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           input-regex="[^0-9]"
+                           autocomplete="off"
+                           ng-model="vm.form.tel"
+                           maxlength="20"
+                    >
+                    <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldModifyForm6" class="issue-label">
+                        <span translate="hostingField.email">�씠硫붿씪</span>
+                    </label>
+                    <input id="hostingFieldModifyForm6"
+                           name="email"
+                           type="email"
+                           class="form-control"
+                           autocomplete="off"
+                           maxLength="50"
+                           ng-model="vm.form.email"
+                           kr-input
+                           ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"
+                    >
+                    <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldModifyForm8" class="issue-label">
+                        <span translate="hostingField.desc">鍮꾧퀬</span>
+                    </label>
+                    <input id="hostingFieldModifyForm8"
+                           name="memo"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           autocomplete="off"
+                           ng-model="vm.form.memo"
+                           ng-maxlength="200"
+                           maxlength="200"
+                    >
+                </div>
+            </div>
+        </form>
+    </div>
+
+    <div class="modal-footer buttons-on-right">
+        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button>
+        <button type="button" class="btn btn-md btn-primary bold"
+                js-short-cut
+                js-short-cut-action="(fn.formCheck(hostingFieldModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
+                ng-disabled="fn.formCheck(hostingFieldModifyForm.$invalid)"
+                ng-click="fn.formSubmit()"><span translate="common.save">���옣</span>
+        </button>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/views/ispField/ispFieldAdd.html b/src/main/webapp/views/ispField/ispFieldAdd.html
new file mode 100644
index 0000000..7a28d5f
--- /dev/null
+++ b/src/main/webapp/views/ispField/ispFieldAdd.html
@@ -0,0 +1,137 @@
+<div class="formModal">
+    <div class="modal-header faded smaller">
+        <div class="modal-title">
+            <strong>ISP �벑濡�</strong>
+        </div>
+        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
+            <span aria-hidden="true"> &times;</span>
+        </button>
+    </div>
+
+    <div class="modal-body">
+        <form role="form" name="ispFieldAddForm">
+            <div class="form-group">
+                <label for="ispFieldAddForm1">
+                    <span translate="ispField.name">ISP紐�</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="ispFieldAddForm1"
+                       name="name"
+                       type="text"
+                       class="form-control"
+                       autofocus
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.name"
+                       ng-maxlength="100"
+                       maxlength="100"
+                       required>
+                <small translate="ispField.enterSpecialCharacters">ISP �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷�닔 �뾾�뒿�땲�떎.</small>
+            </div>
+            <div class="form-group">
+                <label for="ispFieldAddForm10">
+                    <span translate="ispField.code">肄붾뱶</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="ispFieldAddForm10"
+                       name="code"
+                       type="text"
+                       class="form-control"
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.code"
+                       ng-maxlength="100"
+                       maxlength="100"
+                       required>
+                <small translate="hostingField.invalidCodeFormat">肄붾뱶紐낆뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷�닔 �뾾�뒿�땲�떎.</small>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="ispFieldAddForm9" class="issue-label">
+                        <span translate="ispField.manager">�떞�떦�옄</span>
+                    </label>
+                    <input id="ispFieldAddForm9"
+                           name="manager"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                           autocomplete="off"
+                           ng-model="vm.form.manager"
+                           ng-maxlength="100"
+                           maxlength="100"
+                    >
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="ispFieldAddForm7" class="issue-label">
+                        <span translate="ispField.tel">�쟾�솕踰덊샇</span>
+                    </label>
+                    <input id="ispFieldAddForm7"
+                           name="tel"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
+                           autocomplete="off"
+                           ng-model="vm.form.tel"
+                           maxlength="20"
+                    >
+                    <div ng-show="ispFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger"
+                         translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.
+                    </div>
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="ispFieldAddForm6" class="issue-label">
+                        <span translate="ispField.email">�씠硫붿씪</span>
+                    </label>
+                    <input id="ispFieldAddForm6"
+                           name="email"
+                           type="email"
+                           class="form-control"
+                           autocomplete="off"
+                           maxLength="50"
+                           ng-model="vm.form.email"
+                           kr-input
+                           ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"
+                    >
+                    <div ng-show="ispFieldAddForm.email.$error.pattern" class="help-block form-text text-danger"
+                         translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                    </div>
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="ispFieldAddForm8" class="issue-label">
+                        <span translate="ispField.desc">鍮꾧퀬</span>
+                    </label>
+                    <input id="ispFieldAddForm8"
+                           name="memo"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           autocomplete="off"
+                           ng-model="vm.form.memo"
+                           ng-maxlength="200"
+                           maxlength="200"
+                    >
+                </div>
+            </div>
+        </form>
+    </div>
+
+    <div class="modal-footer buttons-on-right">
+        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button>
+        <button type="button" class="btn btn-md btn-primary bold"
+                js-short-cut
+                js-short-cut-action="(fn.formCheck(ispFieldAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
+                ng-disabled="fn.formCheck(ispFieldAddForm.$invalid)"
+                ng-click="fn.formSubmit()"><span translate="common.save">���옣</span>
+        </button>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/views/ispField/ispFieldList.html b/src/main/webapp/views/ispField/ispFieldList.html
index 14ab0f9..847e7b5 100644
--- a/src/main/webapp/views/ispField/ispFieldList.html
+++ b/src/main/webapp/views/ispField/ispFieldList.html
@@ -13,20 +13,20 @@
                 <div class="row">
                     <div class="col-sm-12">
                         <div class="searchdiv">
-                            <form name="customFieldListForm" role="form" ng-enter="fn.getPageList(0)">
+                            <form name="ispFieldListForm" role="form" ng-enter="fn.getPageList(0)">
                                 <div class="row">
                                     <div class="col-lg-3">
                                         <div class="form-group">
-                                            <label for="customFieldListForm1"><span translate="ispField.name">�궗�슜�옄 �젙�쓽 �븘�뱶 紐�</span></label>
+                                            <label for="ispFieldListForm1"><span translate="ispField.name">�궗�슜�옄 �젙�쓽 �븘�뱶 紐�</span></label>
                                             <input type="text"
                                                    name="name"
-                                                   id="customFieldListForm1"
+                                                   id="ispFieldListForm1"
                                                    autocomplete="off"
                                                    maxlength="15"
                                                    kr-input
                                                    owl-auto-focus
                                                    class="form-control"
-                                                   ng-model="vm.search.name" placeholder="{{'customField.pleaseEnterUserDefinedFieldName' | translate}}">
+                                                   ng-model="vm.search.name" placeholder="{{'ispField.pleaseEnterIspFieldName' | translate}}">
                                         </div>
                                     </div>
 
@@ -66,8 +66,8 @@
                         </div>
                         <div class="col-5 text-right" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')">
                             <form class="form-inline justify-content-sm-end pull-right" method="post"
-                                  action="/customField/downloadExcel"
-                                  name="customFieldListForm">
+                                  action="/ispField/downloadExcel"
+                                  name="ispFieldListForm">
                                 <input type="hidden" name="conditions">
                                 <div class="btn-group">
                                     <button aria-expanded="false" aria-haspopup="true"
@@ -76,7 +76,7 @@
                                     </button>
                                     <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu"
                                          x-placement="bottom-start">
-                                        <a class="dropdown-item cursor" form-submit="customFieldListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span></a>
+                                        <a class="dropdown-item cursor" form-submit="ispFieldListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span></a>
                                         <a class="dropdown-item cursor" ng-click="fn.removes()"> <span translate="common.delete">�궘�젣</span></a>
                                     </div>
                                 </div>
diff --git a/src/main/webapp/views/ispField/ispFieldModify.html b/src/main/webapp/views/ispField/ispFieldModify.html
new file mode 100644
index 0000000..94aed34
--- /dev/null
+++ b/src/main/webapp/views/ispField/ispFieldModify.html
@@ -0,0 +1,135 @@
+<div class="formModal">
+    <div class="modal-header faded smaller">
+        <div class="modal-title">
+            <strong>ISP �닔�젙</strong>
+        </div>
+        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
+            <span aria-hidden="true"> &times;</span>
+        </button>
+    </div>
+
+    <div class="modal-body">
+        <form role="form" name="hostingFieldModifyForm">
+            <div class="form-group">
+                <label for="hostingFieldModifyForm1">
+                    <span translate="hostingField.name">ISP紐�</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="hostingFieldModifyForm1"
+                       name="name"
+                       type="text"
+                       class="form-control"
+                       autofocus
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.name"
+                       ng-maxlength="100"
+                       maxlength="100"
+                       required>
+                <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+            </div>
+            <div class="form-group">
+                <label for="hostingFieldModifyForm10">
+                    <span translate="ispField.code">肄붾뱶</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="hostingFieldModifyForm10"
+                       name="code"
+                       type="text"
+                       class="form-control"
+                       disabled
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.code"
+                       ng-maxlength="100"
+                       maxlength="100"
+                       required>
+                <small translate="hostingField.invalidCodeFormat">肄붾뱶紐낆뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷�닔 �뾾�뒿�땲�떎.</small>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldModifyForm9" class="issue-label">
+                        <span translate="hostingField.manager">�떞�떦�옄</span>
+                    </label>
+                    <input id="hostingFieldModifyForm9"
+                           name="manager"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                           autocomplete="off"
+                           ng-model="vm.form.manager"
+                           ng-maxlength="100"
+                           maxlength="100"
+                    >
+                    <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldModifyForm7" class="issue-label">
+                        <span translate="hostingField.tel">�쟾�솕踰덊샇</span>
+                    </label>
+                    <input id="hostingFieldModifyForm7"
+                           name="tel"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           input-regex="[^0-9]"
+                           autocomplete="off"
+                           ng-model="vm.form.tel"
+                           maxlength="20"
+                    >
+                    <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldModifyForm6" class="issue-label">
+                        <span translate="hostingField.email">�씠硫붿씪</span>
+                    </label>
+                    <input id="hostingFieldModifyForm6"
+                           name="email"
+                           type="email"
+                           class="form-control"
+                           autocomplete="off"
+                           maxLength="50"
+                           ng-model="vm.form.email"
+                           kr-input
+                           ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"
+                    >
+                    <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+                </div>
+            </div>
+            <div>
+                <div class="form-group">
+                    <label for="hostingFieldModifyForm8" class="issue-label">
+                        <span translate="hostingField.desc">鍮꾧퀬</span>
+                    </label>
+                    <input id="hostingFieldModifyForm8"
+                           name="memo"
+                           type="text"
+                           class="form-control"
+                           kr-input
+                           autocomplete="off"
+                           ng-model="vm.form.memo"
+                           ng-maxlength="200"
+                           maxlength="200"
+                    >
+                </div>
+            </div>
+        </form>
+    </div>
+
+    <div class="modal-footer buttons-on-right">
+        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button>
+        <button type="button" class="btn btn-md btn-primary bold"
+                js-short-cut
+                js-short-cut-action="(fn.formCheck(hostingFieldModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
+                ng-disabled="fn.formCheck(hostingFieldModifyForm.$invalid)"
+                ng-click="fn.formSubmit()"><span translate="common.save">���옣</span>
+        </button>
+    </div>
+</div>
\ No newline at end of file

--
Gitblit v1.8.0