OWL ITS + 탐지시스템(인터넷 진흥원)
- api 이슈 추가 시 입력한 ip에 속해있는 업체정보를 가진 이슈의 하위로 입력되도록 수정
- issue_company 테이블에 ip 컬럼 추가 및 이슈 추가/수정 시 ip 대역대 항목 추가
1개 파일 추가됨
19개 파일 변경됨
350 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/domain/IssueCompany.java 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/mapper/IssueMapper.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 14 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/form/IssueForm.java 24 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_10__alter_data.sql 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issue-template.xml 30 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/assets/styles/main.css 7 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAdd.controller.js 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddDown.controller.js 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddRelation.controller.js 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueModify.controller.js 10 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAdd.html 41 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAddDown.html 41 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAddRelation.html 41 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueModify.html 41 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/domain/IssueCompany.java
@@ -19,6 +19,8 @@
    private String email;
    private String url;
    private String memo;
    private String ipStart;
    private String ipEnd;
    private Long companyTypeId;
    private Long parentSectorId;
@@ -96,6 +98,22 @@
        this.memo = memo;
    }
    public String getIpStart() {
        return ipStart;
    }
    public void setIpStart(String ipStart) {
        this.ipStart = ipStart;
    }
    public String getIpEnd() {
        return ipEnd;
    }
    public void setIpEnd(String ipEnd) {
        this.ipEnd = ipEnd;
    }
    public Issue getIssue() {
        return issue;
    }
src/main/java/kr/wisestone/owl/mapper/IssueMapper.java
@@ -52,5 +52,7 @@
    Long countByDepartment(IssueCondition issueCondition);
    List<Map<String, Object>> findNotCompleteByParentIssueId(IssueCondition issueCondition);
    List<Map<String, Object>> findByCustomFieldValueOfIp(IssueCustomFieldValueCondition issueCustomFieldValueCondition);
}
src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java
@@ -57,6 +57,8 @@
        companyFieldForm.setName(issueForm.getCompanyName());
        companyFieldForm.setEmail(issueForm.getCompanyEmail());
        companyFieldForm.setUrl(issueForm.getCompanyUrl());
        companyFieldForm.setIpStart(issueForm.getIpStart());
        companyFieldForm.setIpEnd(issueForm.getIpEnd());
        companyFieldForm.setManager(issueForm.getCompanyManager());
        companyFieldForm.setTel(issueForm.getCompanyTel());
        companyFieldForm.setMemo(issueForm.getCompanyMemo());
@@ -128,6 +130,8 @@
                    issueCompany.setName(MapUtil.getString(param, "name"));
                    issueCompany.setEmail(MapUtil.getString(param, "email"));
                    issueCompany.setUrl(MapUtil.getString(param, "url"));
                    issueCompany.setIpStart(MapUtil.getString(param, "ipStart"));
                    issueCompany.setIpEnd(MapUtil.getString(param, "ipEnd"));
                    issueCompany.setManager(MapUtil.getString(param, "manager"));
                    issueCompany.setTel(MapUtil.getString(param, "tel"));
                    issueCompany.setMemo(MapUtil.getString(param, "memo"));
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -493,6 +493,7 @@
        if (issueCustomFieldValueForms.size() > 0) {
            String concatUseValue = "";
            String customFieldType = "";
            int useIdx = 0;
            int cntIp = 0;
            int cntSite = 0;
@@ -519,6 +520,7 @@
                        if (customFieldApiOverlap.getCustomField().getCustomFieldType().equals(IP_ADDRESS)) {
                            long ip = ConvertUtil.ipToLong(useValue);
                            customFieldType = IP_ADDRESS.toString();
                            if (cntIp == 0){
                                condition.setIp(ip);
                            }
@@ -560,8 +562,18 @@
            issueCustomFieldValueCondition.setUseValue(concatUseValue);
            issueCustomFieldValueCondition.setUseValues(userValues);
            issueCustomFieldValueCondition.setIssueTypeId(issueApiform.getIssueTypeId());
            issueCustomFieldValueCondition.setCustomFieldType(customFieldType);
//            issueCustomFieldValueCondition.setIssueStatusType("CLOSE");
            List<Map<String, Object>> results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition);
            List<Map<String, Object>> results = Lists.newArrayList();
            if (customFieldType.equals(IP_ADDRESS.toString()) && issueForm.getIssueCompanyFields() != null && issueForm.getIssueCompanyFields().size() > 0) {
                long ipValue = ConvertUtil.ipToLong(concatUseValue);
                issueCustomFieldValueCondition.setUseValue(String.valueOf(ipValue));
                //  하위이슈조건의 타입이 IP일 경우 같은 업체정보인 이슈 찾기
                results = this.issueMapper.findByCustomFieldValueOfIp(issueCustomFieldValueCondition);
            } else {
                results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition);
            }
            if (results != null && results.size() > 0) {
                for (Map<String, Object> result : results) {
                    resultIssueVos.add(this.getIssue(MapUtil.getLong(result, "id")));
src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java
@@ -12,6 +12,8 @@
    private String tel;
    private String email;
    private String memo;
    private String ipStart;
    private String ipEnd;
    private Long companyTypeId;
    private Long parentSectorId;
@@ -82,6 +84,22 @@
        this.memo = memo;
    }
    public String getIpStart() {
        return ipStart;
    }
    public void setIpStart(String ipStart) {
        this.ipStart = ipStart;
    }
    public String getIpEnd() {
        return ipEnd;
    }
    public void setIpEnd(String ipEnd) {
        this.ipEnd = ipEnd;
    }
    public String getUrl() {
        return url;
    }
src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java
@@ -13,6 +13,8 @@
    private String email;
    private List<String> url;
    private long ip;
    private String ipStart;
    private String ipEnd;
    private String memo;
    private Long ispId;
    private Long hostingId;
@@ -104,6 +106,22 @@
        this.ip = ip;
    }
    public String getIpStart() {
        return ipStart;
    }
    public void setIpStart(String ipStart) {
        this.ipStart = ipStart;
    }
    public String getIpEnd() {
        return ipEnd;
    }
    public void setIpEnd(String ipEnd) {
        this.ipEnd = ipEnd;
    }
    public Long getIspId() {
        return ispId;
    }
src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -46,6 +46,8 @@
    private String companyManager;
    private String companyTel;
    private String companyUrl;
    private String ipStart;
    private String ipEnd;
    private String companyEmail;
    private String companyMemo;
    private String companyTypeName;
@@ -178,6 +180,12 @@
        }
        if (MapUtil.getString(params, "companyUrl") != null) {
            form.setCompanyUrl(MapUtil.getString(params, "companyUrl"));
        }
        if (MapUtil.getString(params, "ipStart") != null) {
            form.setIpStart(MapUtil.getString(params, "ipStart"));
        }
        if (MapUtil.getString(params, "ipEnd") != null) {
            form.setIpEnd(MapUtil.getString(params, "ipEnd"));
        }
        if (MapUtil.getString(params, "companyEmail") != null) {
            form.setCompanyEmail(MapUtil.getString(params, "companyEmail"));
@@ -558,6 +566,22 @@
        this.companyUrl = companyUrl;
    }
    public String getIpStart() {
        return ipStart;
    }
    public void setIpStart(String ipStart) {
        this.ipStart = ipStart;
    }
    public String getIpEnd() {
        return ipEnd;
    }
    public void setIpEnd(String ipEnd) {
        this.ipEnd = ipEnd;
    }
    public String getCompanyEmail() {
        return companyEmail;
    }
src/main/resources/migration/V1_10__alter_data.sql
New file
@@ -0,0 +1,4 @@
/* 업체 IP 대역대 컬럼 추가 */
ALTER TABLE `issue_company` ADD COLUMN `ip_start` varchar(15) NULL;
ALTER TABLE `issue_company` ADD COLUMN `ip_end` varchar(15) NULL;
src/main/resources/mybatis/query-template/issue-template.xml
@@ -817,6 +817,36 @@
        HAVING concatUseValue LIKE CONCAT('%', #{useValue}, '%')
    </select>
    <!--    특정 사용자 정의 필드 IP 값이 업체와 동일한 이슈를 조회 -->
    <select id="findByCustomFieldValueOfIp" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition">
        SELECT
            issue.id as id,
            issue.title as title,
            customFieldValue.customFieldType AS customFieldType,
            GROUP_CONCAT(customFieldValue.useValue ORDER BY customFieldValue.customFieldId ASC) AS concatUseValue
        FROM issue issue FORCE INDEX(reverseIndex)
        INNER JOIN issue_status as issStatus ON issue.issue_status_id = issStatus.id
            LEFT OUTER JOIN (
            SELECT cf.id AS customFieldId, cf.custom_field_type AS customFieldType, issue_custom.use_value AS useValue, issue_custom.issue_id AS issueId
            FROM issue_custom_field_value issue_custom
            INNER JOIN custom_field cf ON cf.id = issue_custom.custom_field_id
            ) customFieldValue ON customFieldValue.issueId = issue.id
        INNER JOIN issue_company issc ON issc.issue_id = issue.id
        WHERE issue.issue_type_id = #{issueTypeId}
        <if test="customFieldType != '' and customFieldType != null">
            AND customFieldValue.customFieldType = #{customFieldType}
        </if>
        <if test="useValue != '' and useValue != null">
            AND INET_ATON(issc.ip_start) <![CDATA[ <= ]]> #{useValue} AND INET_ATON(issc.ip_end) >= #{useValue}
        </if>
        <choose>
            <when test="issueStatusType != null">
                AND issStatus.issue_status_type != #{issueStatusType}
            </when>
        </choose>
        GROUP BY issue.id
    </select>
    <!--  종료 안된 하위 이슈 가져오기 -->
    <select id="findNotCompleteByParentIssueId" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
src/main/webapp/assets/styles/main.css
@@ -1484,6 +1484,13 @@
        max-width: 25%;
    }
    .col-lg-3-2 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
        flex: 0 0 32.4%;
        max-width: 32.4%;
    }
    .col-lg-4 {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 33.3333333333%;
src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -89,6 +89,8 @@
                    companyTel : "",  // 업체 전화번호
                    companyEmail : "",  // 업체 이메일
                    companyUrl : "",  // 업체 url
                    ipStart : "", //ip시작주소
                    ipEnd : "", //ip종료주소
                    companyMemo : "",  // 업체 비고
                    ispId : -1, // ISP ID
                    ispName : "", // ISP 명
@@ -479,6 +481,8 @@
                        $scope.vm.companyTel = result[0].tel;
                        $scope.vm.companyEmail = result[0].email;
                        $scope.vm.companyUrl = result[0].url;
                        $scope.vm.ipStart = result[0].ipStart;
                        $scope.vm.ipEnd = result[0].ipEnd;
                        $scope.vm.companyMemo = result[0].memo;
                        $scope.vm.form.companyTypeId = result[0].companyTypeId;
                        $scope.vm.form.parentSectorId = result[0].parentSectorId;
@@ -689,6 +693,8 @@
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    ipStart :$scope.vm.ipStart,
                                    ipEnd :$scope.vm.ipEnd,
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : $scope.vm.form.companyTypeId,
                                    parentSectorId : $scope.vm.form.parentSectorId,
@@ -705,6 +711,8 @@
                        companyTel : $scope.vm.companyTel,
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl :$scope.vm.companyUrl,
                        ipStart :$scope.vm.ipStart,
                        ipEnd :$scope.vm.ipEnd,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = null;
src/main/webapp/scripts/app/issue/issueAddDown.controller.js
@@ -90,6 +90,8 @@
                    companyTel : "",  // 업체 전화번호
                    companyEmail : "",  // 업체 이메일
                    companyUrl : "", // 업체 url
                    ipStart : "", //ip시작주소
                    ipEnd : "", //ip종료주소
                    companyMemo : "",  // 업체 비고
                    ispId : -1, // ISP ID
                    ispName : "", // ISP 명
@@ -468,6 +470,8 @@
                        $scope.vm.companyTel = result[0].tel;
                        $scope.vm.companyEmail = result[0].email;
                        $scope.vm.companyUrl = result[0].url;
                        $scope.vm.ipStart = result[0].ipStart;
                        $scope.vm.ipEnd = result[0].ipEnd;
                        $scope.vm.companyMemo = result[0].memo;
                        $scope.vm.form.companyTypeId = result[0].companyTypeId;
                        $scope.vm.form.parentSectorId = result[0].parentSectorId;
@@ -596,6 +600,8 @@
                        companyTel : $scope.vm.companyTel,
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl : $scope.vm.companyUrl,
                        ipStart :$scope.vm.ipStart,
                        ipEnd :$scope.vm.ipEnd,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = -1;
@@ -740,6 +746,8 @@
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    ipStart :$scope.vm.ipStart,
                                    ipEnd :$scope.vm.ipEnd,
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : $scope.vm.form.companyTypeId,
                                    parentSectorId : $scope.vm.form.parentSectorId,
src/main/webapp/scripts/app/issue/issueAddRelation.controller.js
@@ -98,6 +98,8 @@
                    companyTel : "",  // 업체 전화번호
                    companyEmail : "",  // 업체 이메일
                    companyUrl : "", // 업체 url
                    ipStart : "", //ip시작주소
                    ipEnd : "", //ip종료주소
                    companyMemo : "",  // 업체 비고
                    ispId : -1, // ISP ID
                    ispName : "", // ISP 명
@@ -485,6 +487,8 @@
                        $scope.vm.companyTel = result[0].tel;
                        $scope.vm.companyEmail = result[0].email;
                        $scope.vm.companyUrl = result[0].url;
                        $scope.vm.ipStart = result[0].ipStart;
                        $scope.vm.ipEnd = result[0].ipEnd;
                        $scope.vm.companyMemo = result[0].memo;
                        $scope.vm.form.companyTypeId = result[0].companyTypeId;
                        $scope.vm.form.parentSectorId = result[0].parentSectorId;
@@ -613,6 +617,8 @@
                        companyTel : $scope.vm.companyTel,
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl : $scope.vm.companyUrl,
                        ipStart :$scope.vm.ipStart,
                        ipEnd :$scope.vm.ipEnd,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = -1;
@@ -757,6 +763,8 @@
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    ipStart :$scope.vm.ipStart,
                                    ipEnd :$scope.vm.ipEnd,
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : $scope.vm.form.companyTypeId,
                                    parentSectorId : $scope.vm.form.parentSectorId,
src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
@@ -215,7 +215,7 @@
                //  파트너를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
                $scope.fn.getUsePartner().then(function (result) {
                    var count = 9;
                    let count = 9;
                    angular.forEach(result, function (partner) {
                        $scope.vm.issueTableConfigs.push({
                            name : partner.name,
@@ -235,7 +235,7 @@
                            checkboxShow : true,
                            position : count
                        });
                        count++;
                        count ++;
                    });
                    //  사용자 정의 필드를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
                    $scope.fn.getCustomFields().then(function (result) {
src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -98,6 +98,8 @@
                    companyTel : "",  // 업체 전화번호
                    companyEmail : "",  // 업체 이메일
                    companyUrl : "",  // 업체 url
                    ipStart : "", //ip시작주소
                    ipEnd : "", //ip종료주소
                    companyMemo : "",  // 업체 비고
                    ispId : -1,
                    ispName : "", // ISP 명
@@ -493,6 +495,8 @@
                        $scope.vm.companyTel = result[0].tel;
                        $scope.vm.companyEmail = result[0].email;
                        $scope.vm.companyUrl = result[0].url;
                        $scope.vm.ipStart = result[0].ipStart;
                        $scope.vm.ipEnd = result[0].ipEnd;
                        $scope.vm.companyMemo = result[0].memo;
                        $scope.vm.form.companyTypeId = result[0].companyTypeId;
                        $scope.vm.form.parentSectorId = result[0].parentSectorId;
@@ -590,6 +594,8 @@
                        companyTel : $scope.vm.companyTel,
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl : $scope.vm.companyUrl,
                        ipStart :$scope.vm.ipStart,
                        ipEnd :$scope.vm.ipEnd,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
@@ -748,6 +754,8 @@
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    ipStart :$scope.vm.ipStart,
                                    ipEnd :$scope.vm.ipEnd,
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : $scope.vm.form.companyTypeId,
                                    parentSectorId : $scope.vm.form.parentSectorId,
@@ -1139,6 +1147,8 @@
                                    $scope.vm.companyTel = issueCompanyFieldValue.tel;
                                    $scope.vm.companyEmail = issueCompanyFieldValue.email;
                                    $scope.vm.companyUrl = issueCompanyFieldValue.url;
                                    $scope.vm.ipStart = issueCompanyFieldValue.ipStart;
                                    $scope.vm.ipEnd = issueCompanyFieldValue.ipEnd;
                                    $scope.vm.companyMemo = issueCompanyFieldValue.memo;
                                    $scope.vm.form.companyTypeId = issueCompanyFieldValue.companyTypeId;
                                    $scope.vm.form.companyType = issueCompanyFieldValue.companyTypeName;
src/main/webapp/views/issue/issueAdd.html
@@ -484,7 +484,7 @@
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
                <div class="col-lg-3-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                        <input id="companyFieldUrlAddForm"
@@ -501,6 +501,45 @@
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip 대역대</span></label>
                        <input id="companyFieldIpStartAddForm"
                               name="ipStart"
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                               placeholder="IP 주소 형식만 입력 가능합니다."
                               autocomplete="off"
                               ng-model="vm.ipStart"
                        >
                        <div ng-if="issueAddForm.ipStart.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="mt-30">
                    <label class="issue-label">~</label>
                </div>
                <div class="col-lg-2 mt-1">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpEndAddForm"></label>
                        <input id="companyFieldIpEndAddForm"
                               name="ipEnd"
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                               placeholder="IP 주소 형식만 입력 가능합니다."
                               autocomplete="off"
                               ng-model="vm.ipEnd"
                        >
                        <div ng-if="issueAddForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">비고</span></label>
src/main/webapp/views/issue/issueAddDown.html
@@ -450,7 +450,7 @@
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
                <div class="col-lg-3-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                        <input id="companyFieldUrlAddForm"
@@ -467,6 +467,45 @@
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip 대역대</span></label>
                        <input id="companyFieldIpStartAddForm"
                               name="ipStart"
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                               placeholder="IP 주소 형식만 입력 가능합니다."
                               autocomplete="off"
                               ng-model="vm.ipStart"
                        >
                        <div ng-if="issueAddDownForm.ipStart.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="mt-30">
                    <label class="issue-label">~</label>
                </div>
                <div class="col-lg-2 mt-1">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpEndAddForm"></label>
                        <input id="companyFieldIpEndAddForm"
                               name="ipEnd"
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                               placeholder="IP 주소 형식만 입력 가능합니다."
                               autocomplete="off"
                               ng-model="vm.ipEnd"
                        >
                        <div ng-if="issueAddDownForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">비고</span></label>
src/main/webapp/views/issue/issueAddRelation.html
@@ -453,7 +453,7 @@
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
                <div class="col-lg-3-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                        <input id="companyFieldUrlAddForm"
@@ -470,6 +470,45 @@
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip 대역대</span></label>
                        <input id="companyFieldIpStartAddForm"
                               name="ipStart"
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                               placeholder="IP 주소 형식만 입력 가능합니다."
                               autocomplete="off"
                               ng-model="vm.ipStart"
                        >
                        <div ng-if="issueAddRelationForm.ipStart.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="mt-30">
                    <label class="issue-label">~</label>
                </div>
                <div class="col-lg-2 mt-1">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpEndAddForm"></label>
                        <input id="companyFieldIpEndAddForm"
                               name="ipEnd"
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                               placeholder="IP 주소 형식만 입력 가능합니다."
                               autocomplete="off"
                               ng-model="vm.ipEnd"
                        >
                        <div ng-if="issueAddRelationForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">비고</span></label>
src/main/webapp/views/issue/issueDetail.html
@@ -345,6 +345,15 @@
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.ipRange">IP 대역대</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].ipStart}} ~ {{vm.viewer.issueCompanyVos[0].ipEnd}}</span>
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.memo">비고</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].memo}}</span>
                            </div>
src/main/webapp/views/issue/issueModify.html
@@ -482,7 +482,7 @@
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
                <div class="col-lg-3-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                        <input id="companyFieldUrlAddForm"
@@ -499,6 +499,45 @@
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip 대역대</span></label>
                        <input id="companyFieldIpStartAddForm"
                               name="ipStart"
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                               placeholder="IP 주소 형식만 입력 가능합니다."
                               autocomplete="off"
                               ng-model="vm.ipStart"
                        >
                        <div ng-if="issueModifyForm.ipStart.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="mt-30">
                    <label class="issue-label">~</label>
                </div>
                <div class="col-lg-2 mt-1">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpEndAddForm"></label>
                        <input id="companyFieldIpEndAddForm"
                               name="ipEnd"
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                               placeholder="IP 주소 형식만 입력 가능합니다."
                               autocomplete="off"
                               ng-model="vm.ipEnd"
                        >
                        <div ng-if="issueModifyForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">비고</span></label>