From a7581104b450a18a30e877ebbe331a2ee5f8e21e Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 화, 21 12월 2021 14:03:30 +0900 Subject: [PATCH] - 모든 게시판 최근 게시물이 상단에 보이도록 정렬 - url 항목 정규표현식 --- src/main/webapp/views/issue/issueAdd.html | 249 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 215 insertions(+), 34 deletions(-) diff --git a/src/main/webapp/views/issue/issueAdd.html b/src/main/webapp/views/issue/issueAdd.html index db3d11e..f1b88c8 100644 --- a/src/main/webapp/views/issue/issueAdd.html +++ b/src/main/webapp/views/issue/issueAdd.html @@ -1,7 +1,7 @@ <div class="formModal"> <div class="modal-header faded smaller"> <div class="modal-title"> - <strong translate="issue.createIssue">�씠�뒋 留뚮뱾湲�</strong> + <strong translate="issue.createIssue">�씠�뒋 �닔�젙</strong> </div> <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> <span aria-hidden="true"> ×</span> @@ -39,7 +39,7 @@ source="fn.getProjectList(vm.projectName, vm.form.projects, vm.autoCompletePage.project.page, fn.getProjectListCallBack)" page="vm.autoCompletePage.project.page" total-page="vm.autoCompletePage.project.totalPage" - input-disabled="false" + input-disabled="vm.form.projects != null ? vm.form.projects.length > 0 : false" translation-texts="{ empty : 'common.emptyProject' }" extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> @@ -59,7 +59,8 @@ ng-model="vm.form.issueTypeId" ng-change="fn.getIssueTypeCustomFields()" ng-style="{ 'color' : fn.getOptionColor(vm.issueTypes, vm.form.issueTypeId) }" - required> + required + disabled> <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"><span translate="common.selectTarget">���긽 �꽑�깮</span> </option> @@ -123,18 +124,18 @@ <div class="col-lg-4"> <div class="form-group mb10"> <label class="issue-label"> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label> - <js-autocomplete-multi data-input-name="department" + <js-autocomplete-multi data-input-name="departments" selected-model="vm.form.departments" search="vm.departmentName" - source="fn.getIssueDepartmentList(vm.departmentName, vm.form.departments)" + source="fn.getIssueDepartmentList(vm.form.issueTypeId, vm.departmentName, vm.form.departments)" input-disabled="false" - translation-texts="{ count : 'common.userNum', empty : 'common.emptyDepartment'}" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment'}" extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true}"></js-autocomplete-multi> <div class="select3-selection__choicediv mt-10"> <span class="select3-selection__choice" ng-repeat="department in vm.form.departments"> <span>{{department.byName}}</span> - <span class="select3-selection__choice__remove" ng-click="fn.removeManager($index)">횞</span> + <span class="select3-selection__choice__remove" ng-click="fn.removeDepartment($index)">횞</span> </span> </div> </div> @@ -210,13 +211,15 @@ </div> </div> </div> + + <hr> <div class="row"> <div class="col-lg-4 fontcolor_green"> <label class="issue-label"><span class="fontcolor_green" translate="common.detectingInfo">�깘吏��젙蹂�</span></label> </div> </div> - <div class="col-lg-8"> + <div class="col-lg-12"> <div class="row"> <div class="col-md-12"> <div class="form-group mgb5" ng-show="vm.form.issueCustomFields.length < 1"> @@ -225,7 +228,7 @@ </div> </div> - <div class="col-md-6" ng-repeat="issueCustomField in vm.form.issueCustomFields"> + <div class="col-md-4" ng-repeat="issueCustomField in vm.form.issueCustomFields"> <div class="form-group mgb5"> <label class="issue-label">{{issueCustomField.customFieldVo.name}}</label> @@ -233,17 +236,99 @@ <!-- 湲곕낯 �엯�젰 --> <div ng-switch-when="INPUT"> <input type="text" class="form-control input-sm" + name="input" ng-model="issueCustomField.useValues" maxlength="100" autocomplete="off" kr-input - ng-required="issueCustomField.fieldOption == '01'"> + ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'"> + <small class="help-block form-text text-danger" + ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" + ng-if="issueAddForm.input.$error.required" + translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄�젙�쓽�븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎. + </small> + </div> + + <div ng-switch-when="NUMBER"> + <input type="text" class="form-control input-sm" + name="number" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'"> + <small class="help-block form-text text-danger" + ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" + ng-if="issueAddForm.number.$error.required" + translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎. + </small> + </div> + + <div ng-switch-when="DATETIME"> + <input type="text" class="form-control input-sm" + name="dateTime" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'"> + <small class="help-block form-text text-danger" + ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" + ng-if="issueAddForm.dateTime.$error.required" + translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎. + </small> + </div> + + <div ng-switch-when="IP_ADDRESS"> + <input type="text" class="form-control input-sm" + name="ipAddress" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'"> + <small class="help-block form-text text-danger" + ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" + ng-if="issueAddForm.ipAddress.$error.required" + translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎. + </small> + </div> + + <div ng-switch-when="SITE"> + <input type="text" class="form-control input-sm" + name="site" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'"> + <small class="help-block form-text text-danger" + ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" + ng-if="issueAddForm.site.$error.required" + translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎. + </small> + </div> + + <div ng-switch-when="TEL"> + <input type="text" class="form-control input-sm" + name="tel" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'"> + <small class="help-block form-text text-danger" + ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" + ng-if="issueAddForm.tel.$error.required" + translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎. + </small> </div> <!-- �떒�씪 ���젆�듃 --> <div ng-switch-when="SINGLE_SELECT"> <select class="form-control input-sm issue-select-label" - ng-required="issueCustomField.fieldOption == '01'" + name="singleSelect" + ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'" ng-model="issueCustomField.useValues"> <option value="" value="" translate="common.choose">�꽑�깮�븯�꽭�슂.</option> <option ng-repeat="customFieldValueVo in issueCustomField.customFieldVo.customFieldValueVos" @@ -252,6 +337,11 @@ {{customFieldValueVo.value}} </option> </select> + <small class="help-block form-text text-danger" + ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" + ng-if="issueAddForm.singleSelect.$error.required" + translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎. + </small> </div> <!-- 硫��떚 ���젆�듃 --> @@ -262,28 +352,40 @@ selected-model="issueCustomField.useValues" extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', stopRemoveBodyEvent : true }" options="issueCustomField.customFieldVo.customFieldValueVos"></ng-dropdown-multiselect> + <input class="form-control input-sm issue-select-label" + type="hidden" name="multiSelect" ng-model="issueCustomField.useValues[0]" + ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'"> + <small class="help-block form-text text-danger" + ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" + ng-if="issueAddForm.multiSelect.$error.required" + translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎. + </small> </div> </div> </div> </div> </div> </div> + <hr> - <div class="row"> + + <div ng-show="fn.containsPartner('�뾽泥�')" class="row"> <div class="col-lg-8 fontcolor_green"> <label class="issue-label"><span class="fontcolor_green" translate="companyField.info">�뾽泥댁젙蹂�</span> - <span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code> 媛� �젙蹂댁쓽 �씠由� �겢由��떆 �빐�떦 �씠由꾩쓽 �젙蹂닿� 議고쉶�맗�땲�떎.</span></label> + <span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code> + �뾽泥� �씠由� �겢由��떆 �꽑�깮�맂 �씠由꾩쓽 �뾽泥� �젙蹂닿� 議고쉶�릺硫�, �뾽泥댁젙蹂댁뿉�꽌 異붽��븳 ISP, �샇�뒪�똿 �젙蹂대�� 遺덈윭�샃�땲�떎.</span> + </label> </div> </div> - <div class="row"> + <div ng-show="fn.containsPartner('�뾽泥�')" class="row"> <div class="col-lg-4"> <div class="form-group mb10"> <label class="issue-label"> <span translate="companyField.name">�뾽泥댁씠由�</span> </label> - <js-autocomplete-single data-input-name="companyField" - selected-model="vm.form.companyFields" + <js-autocomplete-single data-input-name="issueCompanyField" + selected-model="vm.form.issueCompanyFields" search="vm.companyName" - source="fn.getCompanyFieldList(vm.companyName, vm.form.companyFields, vm.autoCompletePage.companyField.page, fn.getCompanyFieldListCallBack)" + source="fn.getIssueCompanyFieldList(vm.companyName, vm.form.issueCompanyFields, vm.autoCompletePage.companyField.page, fn.getIssueCompanyFieldListCallBack)" page="vm.autoCompletePage.companyField.page" total-page="vm.autoCompletePage.companyField.totalPage" input-disabled="false" @@ -346,6 +448,24 @@ </div> <div class="col-lg-4"> <div class="form-group mgb5"> + <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label> + <input id="companyFieldUrlAddForm" + name="companyUrl" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-maxlength="200" + ng-model="vm.companyUrl" + ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" + maxlength="200"> + <div ng-show="issueAddForm.companyUrl.$error.pattern" class="help-block form-text text-danger" + translate="common.invalidUrlFormat">url �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </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> <input id="companyFieldDescAddForm" name="companyMemo" @@ -359,27 +479,38 @@ </div> </div> </div> - <div class="row"> - <div class="col-lg-4 fontcolor_green"> - <label class="issue-label"><span class="fontcolor_green" translate="ispField.info">ISP �젙蹂�</span></label> + <p></p> + <div ng-show="fn.containsPartner('ISP')" class="row"> + <div class="col-lg-8 fontcolor_green"> + <label class="issue-label"><span class="fontcolor_green" translate="ispField.info">ISP �젙蹂�</span> + <!--<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code> ISP �씠由� �겢由��떆 �꽑�깮�맂 �씠由꾩쓽 ISP �젙蹂닿� 議고쉶�맗�땲�떎.</span>--> + </label> </div> </div> - <div class="row"> + <div ng-show="fn.containsPartner('ISP')" class="row"> <div class="col-lg-4"> <div class="form-group mb10"> <label class="issue-label"> <span translate="ispField.name">ISP �씠由�</span> </label> - <js-autocomplete-single data-input-name="ispField" - selected-model="vm.form.ispFields" + <input name="ispName" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.ispName" + ng-maxlength="100" + maxlength="100"> + <!--<js-autocomplete-single data-input-name="ispField" + selected-model="vm.form.issueIspFields" search="vm.ispName" - source="fn.getIspFieldList(vm.ispName, vm.form.ispFields, vm.autoCompletePage.ispField.page, fn.getIspFieldListCallBack)" + source="fn.getIssueIspFieldList(vm.ispName, vm.form.issueIspFields, vm.autoCompletePage.ispField.page, fn.getIssueIspFieldListCallBack)" page="vm.autoCompletePage.ispField.page" total-page="vm.autoCompletePage.ispField.totalPage" input-disabled="false" translation-texts="{ empty : 'common.emptyIsp' }" broad-cast="ispFieldEvent" extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', - type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>--> </div> </div> <div class="col-lg-4"> @@ -449,6 +580,24 @@ </div> <div class="col-lg-4"> <div class="form-group mgb5"> + <label for="ispFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label> + <input id="ispFieldUrlAddForm" + name="ispUrl" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-maxlength="200" + ng-model="vm.ispUrl" + ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" + maxlength="200"> + <div ng-show="issueAddForm.ispUrl.$error.pattern" class="help-block form-text text-danger" + translate="common.invalidUrlFormat">url �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> <label for="ispFieldDescAddForm" class="issue-label"><span translate="ispField.memo">鍮꾧퀬</span></label> <input id="ispFieldDescAddForm" name="ispMemo" @@ -462,27 +611,39 @@ </div> </div> </div> - <div class="row"> - <div class="col-lg-4 fontcolor_green"> - <label class="issue-label"><span class="fontcolor_green" translate="hostingField.info">�샇�뒪�똿 �젙蹂�</span></label> + <p></p> + <div ng-show="fn.containsPartner('�샇�뒪�똿')" class="row"> + <div class="col-lg-8 fontcolor_green"> + <label class="issue-label"><span class="fontcolor_green" translate="hostingField.info">�샇�뒪�똿 �젙蹂�</span> + <!--<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code> �샇�뒪�똿 �씠由� �겢由��떆 �꽑�깮�맂 �씠由꾩쓽 �샇�뒪�똿 �젙蹂닿� 議고쉶�맗�땲�떎.</span>--> + </label> </div> </div> - <div class="row"> + <div ng-show="fn.containsPartner('�샇�뒪�똿')" class="row"> <div class="col-lg-4"> <div class="form-group mb10"> <label class="issue-label"> <span translate="hostingField.name">�샇�뒪�똿 �씠由�</span> </label> - <js-autocomplete-single data-input-name="hostingField" - selected-model="vm.form.hostingFields" + <input name="hostingName" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.hostingName" + ng-maxlength="100" + maxlength="100"> + <!--<js-autocomplete-single data-input-name="hostingField" + selected-model="vm.form.issueHostingFields" + ng-model="vm.hostingName" search="vm.hostingName" - source="fn.getHostingFieldList(vm.hostingName, vm.form.hostingFields, vm.autoCompletePage.hostingField.page, fn.getHostingFieldListCallBack)" + source="fn.getIssueHostingFieldList(vm.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)" page="vm.autoCompletePage.hostingField.page" total-page="vm.autoCompletePage.hostingField.totalPage" input-disabled="false" translation-texts="{ empty : 'common.emptyHosting' }" broad-cast="hostingFieldEvent" extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', - type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>--> </div> </div> <div class="col-lg-4"> @@ -552,6 +713,24 @@ </div> <div class="col-lg-4"> <div class="form-group mgb5"> + <label for="hostingFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label> + <input id="hostingFieldUrlAddForm" + name="hostingUrl" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-maxlength="200" + ng-model="vm.hostingUrl" + ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" + maxlength="200"> + <div ng-show="issueAddForm.hostingUrl.$error.pattern" class="help-block form-text text-danger" + translate="common.invalidUrlFormat">url �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> <label for="hostingFieldDescAdd" class="issue-label"><span translate="hostingField.memo">鍮꾧퀬</span></label> <input id="hostingFieldDescAdd" name="hostingMemo" @@ -599,4 +778,6 @@ ng-disabled="fn.formCheck(issueAddForm.$invalid)" ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> </button> -</div> \ No newline at end of file +</div> + + -- Gitblit v1.8.0