From 12ae7c239f1d17c267b6038d49c31e954afd44fb Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 목, 04 11월 2021 11:44:02 +0900
Subject: [PATCH] - etc 메뉴추가  => 업체 관리/ISP관리/호스팅 관리 메뉴 추가  => 관련 파일들만 추가. 추가 구현 필요.

---
 src/main/webapp/views/companyField/companyFieldList.html                |  110 +++++++
 src/main/webapp/scripts/app/hostingField/hostingField.js                |   45 +++
 src/main/webapp/scripts/components/ispField/ispField.service.js         |   20 +
 src/main/webapp/views/ispField/ispFieldList.html                        |  110 +++++++
 src/main/webapp/views/hostingField/hostingFieldList.html                |  110 +++++++
 src/main/webapp/scripts/components/HostingField/hostingField.service.js |   20 +
 src/main/webapp/scripts/app/companyField/companyFieldList.controller.js |   77 +++++
 src/main/webapp/scripts/app/ispField/ispField.js                        |   45 +++
 src/main/webapp/scripts/components/companyField/companyField.service.js |   20 +
 src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js |   73 +++++
 src/main/webapp/views/project/projectAdd.html                           |    4 
 src/main/webapp/scripts/app/companyField/companyField.js                |   45 +++
 src/main/webapp/i18n/ko/global.json                                     |   28 ++
 src/main/webapp/scripts/app/ispField/ispFieldList.controller.js         |   73 +++++
 src/main/webapp/scripts/main.js                                         |   24 +
 src/main/webapp/views/common/sidebar.html                               |   26 +
 16 files changed, 826 insertions(+), 4 deletions(-)

diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 7cc9db7..90b444b 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -291,6 +291,7 @@
         "projectType": "�봽濡쒖젥�듃 ���엯",
         "projectAdmin": "�봽濡쒖젥�듃 愿�由ъ옄",
         "projectTeam": "�봽濡쒖젥�듃 ���썝",
+        "projectDepartment": "�봽濡쒖젥�듃 �떞�떦遺��꽌",
         "modifyProject": "�봽濡쒖젥�듃 �닔�젙",
         "settingCustomFields": "�궗�슜�옄 �젙�쓽 �븘�뱶 �꽕�젙",
         "selectCustomField": "�궗�슜�옄 �젙�쓽 �븘�뱶 �꽑�깮",
@@ -601,6 +602,9 @@
         "changeReason": "蹂�寃� �궗�쑀",
         "failedToIssueStatusListLookup": "�씠�뒋 �긽�깭 紐⑸줉 議고쉶 �떎�뙣",
         "customField": "�궗�슜�옄 �젙�쓽 �븘�뱶",
+        "customCompanyField" : "�뾽泥� 愿�由�",
+        "customIspField" : "ISP 愿�由�",
+        "customHostingField" : "�샇�뒪�똿 愿�由�",
         "select": "�꽑�깮",
         "checkAll": "�쟾泥� �꽑�깮",
         "unCheckAll": "�쟾泥� �빐�젣",
@@ -772,5 +776,29 @@
         "create" : "�넗�겙 �깮�꽦",
         "example" : "�궗�슜 �삁�떆",
         "columnSetting" : "湲곕낯媛� �꽕�젙"
+    },
+    "companyField" : {
+        "add" : "�뾽泥� �깮�꽦",
+        "name" : "�뾽泥� �씠由�",
+        "manager" : "�떞�떦�옄",
+        "tel" : "�쟾�솕踰덊샇",
+        "email" : "�씠硫붿씪",
+        "desc" : "鍮꾧퀬"
+    },
+    "ispField" : {
+        "add" : "ISP �깮�꽦",
+        "name" : "ISP �씠由�",
+        "manager" : "�떞�떦�옄",
+        "tel" : "�쟾�솕踰덊샇",
+        "email" : "�씠硫붿씪",
+        "desc" : "鍮꾧퀬"
+    },
+    "hostingField" : {
+        "add" : "�샇�뒪�똿 �깮�꽦",
+        "name" : "�샇�뒪�똿 �씠由�",
+        "manager" : "�떞�떦�옄",
+        "tel" : "�쟾�솕踰덊샇",
+        "email" : "�씠硫붿씪",
+        "desc" : "鍮꾧퀬"
     }
 }
\ No newline at end of file
diff --git a/src/main/webapp/scripts/app/companyField/companyField.js b/src/main/webapp/scripts/app/companyField/companyField.js
new file mode 100644
index 0000000..569875e
--- /dev/null
+++ b/src/main/webapp/scripts/app/companyField/companyField.js
@@ -0,0 +1,45 @@
+/**
+ * Created by maprex on 2021-11-04.
+ */
+'use strict';
+
+define(['app'],
+    function (app) {
+        app.config(function ($stateProvider) {
+            $stateProvider
+                .state('companyField', {
+                    abstract : true,
+                    url : "/companyField",
+                    templateUrl : "views/common/app.html",
+                    resolve : {
+                        authorize : function (Auth) {
+                            return Auth.authorize();
+                        },
+                        translatePartialLoader : function ($translate, $translatePartialLoader) {
+                            $translatePartialLoader.addPart('global');
+
+                            return $translate.refresh();
+                        }
+                    }
+                })
+                .state('companyField.list', {
+                    url : '/companyField',
+                    data : {
+                        authorities : ['CUSTOM_FIELD_TOTAL']
+                    },
+                    templateUrl : 'views/companyField/companyFieldList.html',
+                    controller : "companyFieldListController",
+                    resolve : {
+                        loadController : ["$q", function ($q) {
+                            var deferred = $q.defer();
+                            require(["companyFieldListController", 'jsTable', 'tableColumnGenerator', 'companyFieldService', 'modalFormAutoScroll'
+                                , 'formSubmit', 'jsShortCut', 'inputRegex'], function () {
+                                deferred.resolve();
+                            });
+
+                            return deferred.promise;
+                        }]
+                    }
+                });
+        })
+    });
diff --git a/src/main/webapp/scripts/app/companyField/companyFieldList.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldList.controller.js
new file mode 100644
index 0000000..46179b8
--- /dev/null
+++ b/src/main/webapp/scripts/app/companyField/companyFieldList.controller.js
@@ -0,0 +1,77 @@
+/**
+ * Created by maprex on 2021-11-04.
+ */
+'use strict';
+
+define([
+        'app',
+        'angular'
+    ],
+    function (app, angular) {
+        app.controller('companyFieldListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'CompanyField', 'SweetAlert', '$timeout', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, CompanyField, SweetAlert, $timeout, $filter) {
+
+                //  �븿�닔
+                $scope.fn = {
+                    makeTableConfigs : makeTableConfigs, //  �뀒�씠釉� �꽕�젙
+                };
+
+                //  蹂��닔
+                $scope.vm = {
+                    tableConfigs : [],
+                };
+
+                $scope.vm.responseData = {
+                    data : []
+                };
+
+                //  �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뀒�씠釉� �꽕�젙
+                function makeTableConfigs() {
+                    $scope.vm.tableConfigs = [];
+
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setDType("checkbox")
+                        .setHWidth("width-20-p")
+                        .setDAlign("text-center"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("companyField.name")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("companyField.manager")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("companyField.tel")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("companyField.email")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("companyField.desc")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                }
+
+                $scope.fn.makeTableConfigs();
+            }
+        ]);
+    }
+);
diff --git a/src/main/webapp/scripts/app/hostingField/hostingField.js b/src/main/webapp/scripts/app/hostingField/hostingField.js
new file mode 100644
index 0000000..1a882b3
--- /dev/null
+++ b/src/main/webapp/scripts/app/hostingField/hostingField.js
@@ -0,0 +1,45 @@
+/**
+ * Created by maprex on 2021-11-04.
+ */
+'use strict';
+
+define(['app'],
+    function (app) {
+        app.config(function ($stateProvider) {
+            $stateProvider
+                .state('hostingField', {
+                    abstract : true,
+                    url : "/hostingField",
+                    templateUrl : "views/common/app.html",
+                    resolve : {
+                        authorize : function (Auth) {
+                            return Auth.authorize();
+                        },
+                        translatePartialLoader : function ($translate, $translatePartialLoader) {
+                            $translatePartialLoader.addPart('global');
+
+                            return $translate.refresh();
+                        }
+                    }
+                })
+                .state('hostingField.list', {
+                    url : '/hostingField',
+                    data : {
+                        authorities : ['CUSTOM_FIELD_TOTAL']
+                    },
+                    templateUrl : 'views/hostingField/hostingFieldList.html',
+                    controller : "hostingFieldListController",
+                    resolve : {
+                        loadController : ["$q", function ($q) {
+                            var deferred = $q.defer();
+                            require(["hostingFieldListController", 'jsTable', 'tableColumnGenerator', 'hostingFieldService', 'modalFormAutoScroll'
+                                , 'formSubmit', 'jsShortCut', 'inputRegex'], function () {
+                                deferred.resolve();
+                            });
+
+                            return deferred.promise;
+                        }]
+                    }
+                });
+        })
+    });
diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js
new file mode 100644
index 0000000..e7c9bec
--- /dev/null
+++ b/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js
@@ -0,0 +1,73 @@
+/**
+ * Created by maprex on 2021-11-04.
+ */
+'use strict';
+
+define([
+        'app',
+        'angular'
+    ],
+    function (app, angular) {
+        app.controller('hostingFieldListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'HostingField', 'SweetAlert', '$timeout', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, HostingField, SweetAlert, $timeout, $filter) {
+
+                //  �븿�닔
+                $scope.fn = {
+                    makeTableConfigs : makeTableConfigs, //  �뀒�씠釉� �꽕�젙
+                };
+
+                //  蹂��닔
+                $scope.vm = {
+                    tableConfigs : [],
+                };
+
+                //  �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뀒�씠釉� �꽕�젙
+                function makeTableConfigs() {
+                    $scope.vm.tableConfigs = [];
+
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setDType("checkbox")
+                        .setHWidth("width-20-p")
+                        .setDAlign("text-center"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("hostingField.name")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("hostingField.manager")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("hostingField.tel")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("hostingField.email")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("hostingField.desc")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                }
+
+                $scope.fn.makeTableConfigs();
+            }
+        ]);
+    }
+);
diff --git a/src/main/webapp/scripts/app/ispField/ispField.js b/src/main/webapp/scripts/app/ispField/ispField.js
new file mode 100644
index 0000000..7a2ce3b
--- /dev/null
+++ b/src/main/webapp/scripts/app/ispField/ispField.js
@@ -0,0 +1,45 @@
+/**
+ * Created by maprex on 2021-11-04.
+ */
+'use strict';
+
+define(['app'],
+    function (app) {
+        app.config(function ($stateProvider) {
+            $stateProvider
+                .state('ispField', {
+                    abstract : true,
+                    url : "/ispField",
+                    templateUrl : "views/common/app.html",
+                    resolve : {
+                        authorize : function (Auth) {
+                            return Auth.authorize();
+                        },
+                        translatePartialLoader : function ($translate, $translatePartialLoader) {
+                            $translatePartialLoader.addPart('global');
+
+                            return $translate.refresh();
+                        }
+                    }
+                })
+                .state('ispField.list', {
+                    url : '/ispField',
+                    data : {
+                        authorities : ['CUSTOM_FIELD_TOTAL']
+                    },
+                    templateUrl : 'views/ispField/ispFieldList.html',
+                    controller : "ispFieldListController",
+                    resolve : {
+                        loadController : ["$q", function ($q) {
+                            var deferred = $q.defer();
+                            require(["ispFieldListController", 'jsTable', 'tableColumnGenerator', 'ispFieldService', 'modalFormAutoScroll'
+                                , 'formSubmit', 'jsShortCut', 'inputRegex'], function () {
+                                deferred.resolve();
+                            });
+
+                            return deferred.promise;
+                        }]
+                    }
+                });
+        })
+    });
diff --git a/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js b/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js
new file mode 100644
index 0000000..ce4ce11
--- /dev/null
+++ b/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js
@@ -0,0 +1,73 @@
+/**
+ * Created by maprex on 2021-11-04.
+ */
+'use strict';
+
+define([
+        'app',
+        'angular'
+    ],
+    function (app, angular) {
+        app.controller('ispFieldListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'IspField', 'SweetAlert', '$timeout', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, IspField, SweetAlert, $timeout, $filter) {
+
+                //  �븿�닔
+                $scope.fn = {
+                    makeTableConfigs : makeTableConfigs, //  �뀒�씠釉� �꽕�젙
+                };
+
+                //  蹂��닔
+                $scope.vm = {
+                    tableConfigs : [],
+                };
+
+                //  �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뀒�씠釉� �꽕�젙
+                function makeTableConfigs() {
+                    $scope.vm.tableConfigs = [];
+
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setDType("checkbox")
+                        .setHWidth("width-20-p")
+                        .setDAlign("text-center"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("ispField.name")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("ispField.manager")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("ispField.tel")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("ispField.email")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("ispField.desc")
+                        .setHWidth("bold")
+                        .setDName("name")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDRenderer("COMMON_MODIFY"));
+                }
+
+                $scope.fn.makeTableConfigs();
+            }
+        ]);
+    }
+);
diff --git a/src/main/webapp/scripts/components/HostingField/hostingField.service.js b/src/main/webapp/scripts/components/HostingField/hostingField.service.js
new file mode 100644
index 0000000..ab89318
--- /dev/null
+++ b/src/main/webapp/scripts/components/HostingField/hostingField.service.js
@@ -0,0 +1,20 @@
+/**
+ * Created by maprex on 2021-11-04
+ */
+'use strict';
+
+define([
+    'app'
+], function (app) {
+    app.factory("HostingField", ['$http', '$log', function ($http, $log) {
+        return {
+            find : function (conditions) {
+                return $http.post("HostingField/find", conditions).then(function (response) {
+                    $log.debug("Hosting �븘�뱶 紐⑸줉 �뜲�씠�꽣 : ", response);
+                    return response;
+                });
+            }
+        }
+    }
+    ]);
+});
diff --git a/src/main/webapp/scripts/components/companyField/companyField.service.js b/src/main/webapp/scripts/components/companyField/companyField.service.js
new file mode 100644
index 0000000..606e160
--- /dev/null
+++ b/src/main/webapp/scripts/components/companyField/companyField.service.js
@@ -0,0 +1,20 @@
+/**
+ * Created by maprex on 2021-11-04
+ */
+'use strict';
+
+define([
+    'app'
+], function (app) {
+    app.factory("CompanyField", ['$http', '$log', function ($http, $log) {
+        return {
+            find : function (conditions) {
+                return $http.post("companyField/find", conditions).then(function (response) {
+                    $log.debug("�뾽泥� �븘�뱶 紐⑸줉 �뜲�씠�꽣 : ", 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
new file mode 100644
index 0000000..b3a2c09
--- /dev/null
+++ b/src/main/webapp/scripts/components/ispField/ispField.service.js
@@ -0,0 +1,20 @@
+/**
+ * Created by maprex on 2021-11-04
+ */
+'use strict';
+
+define([
+    'app'
+], function (app) {
+    app.factory("IspField", ['$http', '$log', function ($http, $log) {
+        return {
+            find : function (conditions) {
+                return $http.post("IspField/find", conditions).then(function (response) {
+                    $log.debug("ISP �븘�뱶 紐⑸줉 �뜲�씠�꽣 : ", response);
+                    return response;
+                });
+            }
+        }
+    }
+    ]);
+});
diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js
index c26e97e..14b4945 100644
--- a/src/main/webapp/scripts/main.js
+++ b/src/main/webapp/scripts/main.js
@@ -326,6 +326,21 @@
         'apiAuthController' :'app/api/apiAuth.controller',   // api �씤利� 而⑦듃濡ㅻ윭
         'apiSettingController' : 'app/api/apiSetting.controller',    // api �꽕�젙 而⑦듃濡ㅻ윭
         'apiMonitorController' : 'app/api/apiMonitor.controller', // api 紐⑤땲�꽣留� 而⑦듃濡ㅻ윭
+
+        /* �뾽泥� */
+        'companyFieldRoute' : 'app/companyField/companyField',   // �뾽泥� route �젙蹂�
+        'companyFieldService' : 'components/companyField/companyField.service',  // �뾽泥� 愿��젴�맂 �넻�떊 �떞�떦
+        'companyFieldListController' : 'app/companyField/companyFieldList.controller', // �뾽泥� 紐⑸줉 而⑦듃濡ㅻ윭
+
+        /* ISP */
+        'ispFieldRoute' : 'app/ispField/ispField',   // ISP route �젙蹂�
+        'ispFieldService' : 'components/ispField/ispField.service',  // ISP 愿��젴�맂 �넻�떊 �떞�떦
+        'ispFieldListController' : 'app/ispField/ispFieldList.controller', // ISP 紐⑸줉 而⑦듃濡ㅻ윭
+
+        /* �샇�뒪�똿 */
+        'hostingFieldRoute' : 'app/hostingField/hostingField',   // �샇�뒪�똿 route �젙蹂�
+        'hostingFieldService' : 'components/HostingField/hostingField.service',  // �샇�뒪�똿 愿��젴�맂 �넻�떊 �떞�떦
+        'hostingFieldListController' : 'app/hostingField/hostingFieldList.controller', // �샇�뒪�똿 紐⑸줉 而⑦듃濡ㅻ윭
     },
     shim : {
         'jquery-ui' : {
@@ -513,6 +528,9 @@
     'supportRoute',
     'ganttRoute',
     'apiRoute',
+    'companyFieldRoute',
+    'ispFieldRoute',
+    'hostingFieldRoute',
     'ganttService',
     'workflowService',
     'issueSearchService',
@@ -524,8 +542,10 @@
     'qnaService',
     'taskService',
     'taskCommentService',
-    'workflowStatusService'
-
+    'workflowStatusService',
+    'companyFieldService',
+    'ispFieldService',
+    'hostingFieldService'
 ], function ($, angular, domReady, app, sortable, crypto) {
     //  ���떆蹂대뱶�뿉�꽌 Sortable �씤�떇 紐삵븯�뒗 臾몄젣 �빐寃�
     window.Sortable = sortable;
diff --git a/src/main/webapp/views/common/sidebar.html b/src/main/webapp/views/common/sidebar.html
index d48cf1e..468c410 100644
--- a/src/main/webapp/views/common/sidebar.html
+++ b/src/main/webapp/views/common/sidebar.html
@@ -331,6 +331,32 @@
                 </div>
                 <span translate="managementType.managementIssueType">�씪媛� �쑀�삎 愿�由�</span></a>
         </li>
+
+        <li class="sub-header" ng-if="$root.checkMngPermissionSettings()">
+            <span>Etc</span>
+        </li>
+        <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_STATUS')">
+            <a ui-sref="companyField.list" tabindex="-1">
+                <div class="icon-w">
+                    <div class="os-icon os-icon-agenda-1"></div>
+                </div>
+                <span translate="common.customCompanyField">�뾽泥� 愿�由�</span></a>
+        </li>
+        <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_STATUS')">
+            <a ui-sref="ispField.list" tabindex="-1">
+                <div class="icon-w">
+
+                    <div class="os-icon os-icon-agenda-1"></div>
+                </div>
+                <span translate="common.customIspField">ISP 愿�由�</span></a>
+        </li>
+        <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_STATUS')">
+            <a ui-sref="hostingField.list" tabindex="-1">
+                <div class="icon-w">
+                    <div class="os-icon os-icon-agenda-1"></div>
+                </div>
+                <span translate="common.customHostingField">�샇�뒪�똿 愿�由�</span></a>
+        </li>
         <li class="sub-header" ng-if="$root.checkMngPermissionManager()">
             <span>Management</span>
         </li>
diff --git a/src/main/webapp/views/companyField/companyFieldList.html b/src/main/webapp/views/companyField/companyFieldList.html
new file mode 100644
index 0000000..d1a5d7c
--- /dev/null
+++ b/src/main/webapp/views/companyField/companyFieldList.html
@@ -0,0 +1,110 @@
+<div class="row">
+    <div class="col-sm-12">
+        <div class="element-wrapper">
+            <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')">
+                <button ng-click="fn.add()"
+                        class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span translate="companyField.add">�뾽泥� �깮�꽦</span>
+                </button>
+            </div>
+            <h6 class="element-header" translate="common.customCompanyField">
+                �뾽泥� 愿�由�
+            </h6>
+            <div class="element-box">
+                <div class="row">
+                    <div class="col-sm-12">
+                        <div class="searchdiv">
+                            <form name="customFieldListForm" role="form" ng-enter="fn.getPageList(0)">
+                                <div class="row">
+                                    <div class="col-lg-3">
+                                        <div class="form-group">
+                                            <label for="customFieldListForm1"><span translate="companyField.name">�궗�슜�옄 �젙�쓽 �븘�뱶 紐�</span></label>
+                                            <input type="text"
+                                                   name="name"
+                                                   id="customFieldListForm1"
+                                                   autocomplete="off"
+                                                   maxlength="15"
+                                                   kr-input
+                                                   owl-auto-focus
+                                                   class="form-control"
+                                                   ng-model="vm.search.name" placeholder="{{'customField.pleaseEnterUserDefinedFieldName' | translate}}">
+                                        </div>
+                                    </div>
+
+                                    <div class="col-lg-6">
+                                        <div class="form-group form-buttons-w2">
+                                            <button class="btn btn-xlg btn-navy" ng-click="fn.getPageList(0)">
+                                                <i class="os-icon os-icon-ui-37"></i>
+                                                &nbsp; &nbsp; <span translate="common.search">寃��깋</span> &nbsp; &nbsp;
+                                            </button>
+                                            <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()">
+                                                <i class="os-icon os-icon-grid-18"></i>
+                                                &nbsp; &nbsp;<span translate="common.reset">珥덇린�솕</span> &nbsp; &nbsp;
+                                            </button>
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+                <div class="controls-above-table mt-30">
+                    <div class="row">
+                        <div class="col-7">
+                            <div class="dataTables_length">
+                                <label>
+                                    <select name="pageRow"
+                                            class="form-control form-control-sm"
+                                            ng-change="fn.changePageRowCount()"
+                                            ng-model="vm.page.selectedPageRowCount">
+                                        <option value="10">10</option>
+                                        <option value="50">50</option>
+                                        <option value="100">100</option>
+                                    </select> {{vm.page.selectedPage}}-{{vm.responseData.page.totalPage}} /
+                                    {{vm.responseData.page.totalCount | number}}<span translate="common.few">嫄�</span>
+                                </label>
+                            </div>
+                        </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">
+                                <input type="hidden" name="conditions">
+                                <div class="btn-group">
+                                    <button aria-expanded="false" aria-haspopup="true"
+                                            class="btn btn-secondary dropdown-toggle"
+                                            data-toggle="dropdown" type="button"><span translate="common.addFunction">異붽�湲곕뒫</span>
+                                    </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" ng-click="fn.removes()"> <span translate="common.delete">�궘�젣</span></a>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="table-responsive">
+                    <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" event="tableEvent"></js-table>
+                </div>
+
+                <div class="controls-below-table text-center">
+                    <ul uib-pagination
+                        boundary-links-numbes="true"
+                        items-per-page="vm.page.selectedPageRowCount"
+                        total-items="vm.responseData.page.totalCount"
+                        ng-model="vm.page.selectedPage"
+                        max-size="10"
+                        ng-click="fn.getPageList(vm.page.selectedPage-1)"
+                        class="pagination pagination-sm"
+                        previous-text="&lt;"
+                        next-text="&gt;"
+                        first-text=""
+                        last-text="">
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
diff --git a/src/main/webapp/views/hostingField/hostingFieldList.html b/src/main/webapp/views/hostingField/hostingFieldList.html
new file mode 100644
index 0000000..9439daa
--- /dev/null
+++ b/src/main/webapp/views/hostingField/hostingFieldList.html
@@ -0,0 +1,110 @@
+<div class="row">
+    <div class="col-sm-12">
+        <div class="element-wrapper">
+            <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')">
+                <button ng-click="fn.add()"
+                        class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span translate="hostingField.add">�뾽泥� �깮�꽦</span>
+                </button>
+            </div>
+            <h6 class="element-header" translate="common.customHostingField">
+                �뾽泥� 愿�由�
+            </h6>
+            <div class="element-box">
+                <div class="row">
+                    <div class="col-sm-12">
+                        <div class="searchdiv">
+                            <form name="customFieldListForm" 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>
+                                            <input type="text"
+                                                   name="name"
+                                                   id="customFieldListForm1"
+                                                   autocomplete="off"
+                                                   maxlength="15"
+                                                   kr-input
+                                                   owl-auto-focus
+                                                   class="form-control"
+                                                   ng-model="vm.search.name" placeholder="{{'customField.pleaseEnterUserDefinedFieldName' | translate}}">
+                                        </div>
+                                    </div>
+
+                                    <div class="col-lg-6">
+                                        <div class="form-group form-buttons-w2">
+                                            <button class="btn btn-xlg btn-navy" ng-click="fn.getPageList(0)">
+                                                <i class="os-icon os-icon-ui-37"></i>
+                                                &nbsp; &nbsp; <span translate="common.search">寃��깋</span> &nbsp; &nbsp;
+                                            </button>
+                                            <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()">
+                                                <i class="os-icon os-icon-grid-18"></i>
+                                                &nbsp; &nbsp;<span translate="common.reset">珥덇린�솕</span> &nbsp; &nbsp;
+                                            </button>
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+                <div class="controls-above-table mt-30">
+                    <div class="row">
+                        <div class="col-7">
+                            <div class="dataTables_length">
+                                <label>
+                                    <select name="pageRow"
+                                            class="form-control form-control-sm"
+                                            ng-change="fn.changePageRowCount()"
+                                            ng-model="vm.page.selectedPageRowCount">
+                                        <option value="10">10</option>
+                                        <option value="50">50</option>
+                                        <option value="100">100</option>
+                                    </select> {{vm.page.selectedPage}}-{{vm.responseData.page.totalPage}} /
+                                    {{vm.responseData.page.totalCount | number}}<span translate="common.few">嫄�</span>
+                                </label>
+                            </div>
+                        </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">
+                                <input type="hidden" name="conditions">
+                                <div class="btn-group">
+                                    <button aria-expanded="false" aria-haspopup="true"
+                                            class="btn btn-secondary dropdown-toggle"
+                                            data-toggle="dropdown" type="button"><span translate="common.addFunction">異붽�湲곕뒫</span>
+                                    </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" ng-click="fn.removes()"> <span translate="common.delete">�궘�젣</span></a>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="table-responsive">
+                    <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" event="tableEvent"></js-table>
+                </div>
+
+                <div class="controls-below-table text-center">
+                    <ul uib-pagination
+                        boundary-links-numbes="true"
+                        items-per-page="vm.page.selectedPageRowCount"
+                        total-items="vm.responseData.page.totalCount"
+                        ng-model="vm.page.selectedPage"
+                        max-size="10"
+                        ng-click="fn.getPageList(vm.page.selectedPage-1)"
+                        class="pagination pagination-sm"
+                        previous-text="&lt;"
+                        next-text="&gt;"
+                        first-text=""
+                        last-text="">
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
diff --git a/src/main/webapp/views/ispField/ispFieldList.html b/src/main/webapp/views/ispField/ispFieldList.html
new file mode 100644
index 0000000..14ab0f9
--- /dev/null
+++ b/src/main/webapp/views/ispField/ispFieldList.html
@@ -0,0 +1,110 @@
+<div class="row">
+    <div class="col-sm-12">
+        <div class="element-wrapper">
+            <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')">
+                <button ng-click="fn.add()"
+                        class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span translate="ispField.add">�뾽泥� �깮�꽦</span>
+                </button>
+            </div>
+            <h6 class="element-header" translate="common.customIspField">
+                �뾽泥� 愿�由�
+            </h6>
+            <div class="element-box">
+                <div class="row">
+                    <div class="col-sm-12">
+                        <div class="searchdiv">
+                            <form name="customFieldListForm" 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>
+                                            <input type="text"
+                                                   name="name"
+                                                   id="customFieldListForm1"
+                                                   autocomplete="off"
+                                                   maxlength="15"
+                                                   kr-input
+                                                   owl-auto-focus
+                                                   class="form-control"
+                                                   ng-model="vm.search.name" placeholder="{{'customField.pleaseEnterUserDefinedFieldName' | translate}}">
+                                        </div>
+                                    </div>
+
+                                    <div class="col-lg-6">
+                                        <div class="form-group form-buttons-w2">
+                                            <button class="btn btn-xlg btn-navy" ng-click="fn.getPageList(0)">
+                                                <i class="os-icon os-icon-ui-37"></i>
+                                                &nbsp; &nbsp; <span translate="common.search">寃��깋</span> &nbsp; &nbsp;
+                                            </button>
+                                            <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()">
+                                                <i class="os-icon os-icon-grid-18"></i>
+                                                &nbsp; &nbsp;<span translate="common.reset">珥덇린�솕</span> &nbsp; &nbsp;
+                                            </button>
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+                <div class="controls-above-table mt-30">
+                    <div class="row">
+                        <div class="col-7">
+                            <div class="dataTables_length">
+                                <label>
+                                    <select name="pageRow"
+                                            class="form-control form-control-sm"
+                                            ng-change="fn.changePageRowCount()"
+                                            ng-model="vm.page.selectedPageRowCount">
+                                        <option value="10">10</option>
+                                        <option value="50">50</option>
+                                        <option value="100">100</option>
+                                    </select> {{vm.page.selectedPage}}-{{vm.responseData.page.totalPage}} /
+                                    {{vm.responseData.page.totalCount | number}}<span translate="common.few">嫄�</span>
+                                </label>
+                            </div>
+                        </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">
+                                <input type="hidden" name="conditions">
+                                <div class="btn-group">
+                                    <button aria-expanded="false" aria-haspopup="true"
+                                            class="btn btn-secondary dropdown-toggle"
+                                            data-toggle="dropdown" type="button"><span translate="common.addFunction">異붽�湲곕뒫</span>
+                                    </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" ng-click="fn.removes()"> <span translate="common.delete">�궘�젣</span></a>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="table-responsive">
+                    <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" event="tableEvent"></js-table>
+                </div>
+
+                <div class="controls-below-table text-center">
+                    <ul uib-pagination
+                        boundary-links-numbes="true"
+                        items-per-page="vm.page.selectedPageRowCount"
+                        total-items="vm.responseData.page.totalCount"
+                        ng-model="vm.page.selectedPage"
+                        max-size="10"
+                        ng-click="fn.getPageList(vm.page.selectedPage-1)"
+                        class="pagination pagination-sm"
+                        previous-text="&lt;"
+                        next-text="&gt;"
+                        first-text=""
+                        last-text="">
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
diff --git a/src/main/webapp/views/project/projectAdd.html b/src/main/webapp/views/project/projectAdd.html
index c2393b0..9b39cbd 100644
--- a/src/main/webapp/views/project/projectAdd.html
+++ b/src/main/webapp/views/project/projectAdd.html
@@ -67,7 +67,7 @@
             <div class="row">
                 <div class="col-lg-6">
                     <div class="form-group">
-                        <label><span translate="common.period">湲곌컙</span> <code class="highlighter-rouge">*</code></label>
+                        <label><span translate="common.period">湲곌컙</span></label>
                         <input type="text"
                                class="form-control input-readonly"
                                ng-model="vm.form.startEndDateRange"
@@ -132,7 +132,7 @@
             </div>
 
             <div class="form-group">
-                <label><span translate="project.projectTeam">�봽濡쒖젥�듃 ���썝</span> </label>
+                <label><span translate="project.projectDepartment">�봽濡쒖젥�듃 �떞�떦遺��꽌</span> </label>
                 <js-autocomplete-multi data-input-name="users"
                                        selected-model="vm.form.users"
                                        search="vm.userName"

--
Gitblit v1.8.0