src/main/resources/mybatis/query-template/HostingField-template.xml
@@ -22,6 +22,7 @@ <if test="id != '' and id != null"> AND h.id like CONCAT('%',#{id},'%') </if> ORDER BY h.id DESC <if test="pageSize != '' and pageSize != null"> limit #{pageSize} offset #{page}; </if> src/main/resources/mybatis/query-template/IspField-template.xml
@@ -22,6 +22,7 @@ <if test="id != '' and id != null"> AND i.id like CONCAT('%',#{id},'%') </if> ORDER BY i.id DESC <if test="pageSize != '' and pageSize != null"> limit #{pageSize} offset #{page}; </if> src/main/resources/mybatis/query-template/companyField-template.xml
@@ -23,6 +23,7 @@ <if test="id != '' and id != null"> AND cf.id like CONCAT('%',#{id},'%') </if> ORDER BY cf.id DESC <if test="pageSize != '' and pageSize != null"> limit #{pageSize} offset #{page}; </if> src/main/resources/mybatis/query-template/customField-template.xml
@@ -25,6 +25,7 @@ </when> </choose> AND ws.id = #{workspaceId} ORDER BY cf.id DESC <if test="page != null and !page.equals('')"> limit #{pageSize} offset #{page}; </if> src/main/resources/mybatis/query-template/issueType-template.xml
@@ -25,6 +25,7 @@ AND it.project_id IS NOT NULL </if> AND ws.id = #{workspaceId} ORDER BY it.id DESC <if test="page != null and !page.equals('')"> limit #{pageSize} offset #{page}; </if> src/main/resources/mybatis/query-template/workflow-template.xml
@@ -16,6 +16,7 @@ AND w.name like CONCAT('%',#{name},'%') </if> AND ws.id = #{workspaceId} ORDER BY w.id DESC <if test="page != null and !page.equals('')"> limit #{pageSize} offset #{page}; </if> src/main/webapp/i18n/ko/global.json
@@ -863,7 +863,8 @@ "invalidDateFormat": "날짜 형식이 맞지 않습니다.(xxxx-xx-xx)", "invalidEmailFormat": "이메일 형식이 맞지 않습니다.", "invalidSiteFormat": "홈페이지 주소 형식이 맞지 않습니다.(http://로 시작하셔야합니다)", "invalidTelFormat": "전화번호 형식이 맞지 않습니다(xxx-xxxx-xxxx)." "invalidTelFormat": "전화번호 형식이 맞지 않습니다(xxx-xxxx-xxxx).", "invalidUrlFormat": "url 형식이 맞지 않습니다." }, "tasks": { "agileBoardTitle": "칸반 보드" src/main/webapp/views/companyField/companyFieldAdd.html
@@ -79,7 +79,11 @@ ng-model="vm.form.url" ng-maxlength="200" maxlength="200" ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" required> <div ng-show="companyFieldAddForm.url.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> <!--<div class="row"> <div class="col-md-3"> src/main/webapp/views/companyField/companyFieldModify.html
@@ -78,7 +78,11 @@ ng-model="vm.form.url" ng-maxlength="200" maxlength="200" ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" > <div ng-show="companyFieldModifyForm.url.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <!--<div class="row"> src/main/webapp/views/hostingField/hostingFieldAdd.html
@@ -119,7 +119,11 @@ ng-model="vm.form.url" ng-maxlength="200" maxlength="200" ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" > <div ng-show="hostingFieldAddForm.url.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div> src/main/webapp/views/hostingField/hostingFieldModify.html
@@ -120,7 +120,11 @@ ng-model="vm.form.url" ng-maxlength="200" maxlength="200" ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" > <div ng-show="ispFieldModifyForm.url.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div> src/main/webapp/views/ispField/ispFieldAdd.html
@@ -119,7 +119,11 @@ ng-model="vm.form.url" ng-maxlength="200" maxlength="200" ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" > <div ng-show="ispFieldAddForm.url.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div> src/main/webapp/views/ispField/ispFieldModify.html
@@ -120,7 +120,11 @@ ng-model="vm.form.url" ng-maxlength="200" maxlength="200" ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" > <div ng-show="ispFieldModifyForm.url.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div> src/main/webapp/views/issue/issueAdd.html
@@ -457,7 +457,11 @@ 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"> @@ -585,7 +589,11 @@ 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"> @@ -714,7 +722,11 @@ 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"> src/main/webapp/views/issue/issueAddDown.html
@@ -454,7 +454,11 @@ 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="issueAddDownForm.companyUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> @@ -582,7 +586,11 @@ 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="issueAddDownForm.ispUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> @@ -710,7 +718,11 @@ 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="issueAddDownForm.hostingUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> src/main/webapp/views/issue/issueAddRelation.html
@@ -465,7 +465,11 @@ 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="issueAddRelationForm.companyUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> @@ -593,7 +597,11 @@ 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="issueAddRelationForm.ispUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> @@ -721,7 +729,11 @@ 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="issueAddRelationForm.hostingUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> src/main/webapp/views/issue/issueModify.html
@@ -9,11 +9,11 @@ </div> <div class="modal-body"> <form role="form" name="issueAddForm"> <form role="form" name="issueModifyForm"> <div class="form-group mb10"> <label for="issueAddForm1" class="issue-label"><span translate="issue.issueTitle">이슈 제목</span> <code <label for="issueModifyForm1" class="issue-label"><span translate="issue.issueTitle">이슈 제목</span> <code class="highlighter-rouge">*</code></label> <input id="issueAddForm1" <input id="issueModifyForm1" class="form-control input-sm" ng-model="vm.form.title" name="title" @@ -24,7 +24,7 @@ autofocus owl-auto-focus> <small class="help-block form-text text-danger" ng-if="issueAddForm.title.$touched && issueAddForm.title.$error.required" ng-if="issueModifyForm.title.$touched && issueModifyForm.title.$error.required" translate="issue.requireIssueTitle">이슈 제목을 입력하세요. </small> </div> @@ -50,10 +50,10 @@ <div class="row"> <div class="col-md-4"> <div class="form-group mb10"> <label for="issueAddForm4" class="issue-label"> <span <label for="issueModifyForm4" class="issue-label"> <span translate="issue.issueType">이슈 타입</span> <code class="highlighter-rouge">*</code></label> <select id="issueAddForm4" <select id="issueModifyForm4" name="issueType" class="form-control input-sm issue-select-label" ng-model="vm.form.issueTypeId" @@ -73,11 +73,11 @@ </div> <div class="col-md-4"> <div class="form-group mb10"> <label for="issueAddForm2" class="issue-label"> <label for="issueModifyForm2" class="issue-label"> <span translate="common.priority">우선 순위</span> <code class="highlighter-rouge">*</code> </label> <select id="issueAddForm2" <select id="issueModifyForm2" name="priority" class="form-control input-sm issue-select-label" ng-model="vm.form.priorityId" @@ -96,10 +96,10 @@ </div> <div class="col-md-4"> <div class="form-group mb10"> <label for="issueAddForm3" class="issue-label"> <span <label for="issueModifyForm3" class="issue-label"> <span translate="common.importance">중요도</span> <code class="highlighter-rouge">*</code></label> <select id="issueAddForm3" <select id="issueModifyForm3" name="severity" class="form-control input-sm issue-select-label" ng-model="vm.form.severityId" @@ -143,8 +143,8 @@ <div class="col-lg-4"> <div class="form-group mb10"> <label for="issueAddForm5" class="issue-label"> <span translate="common.period">기간</span></label> <input id="issueAddForm5" <label for="issueModifyForm5" class="issue-label"> <span translate="common.period">기간</span></label> <input id="issueModifyForm5" tabindex="-1" type="text" readonly @@ -244,7 +244,7 @@ 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" ng-if="issueModifyForm.input.$error.required" translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자정의필드는 필수 입력 값 입니다. </small> </div> @@ -259,7 +259,7 @@ 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" ng-if="issueModifyForm.number.$error.required" translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. </small> </div> @@ -274,7 +274,7 @@ 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" ng-if="issueModifyForm.dateTime.$error.required" translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. </small> </div> @@ -289,7 +289,7 @@ 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" ng-if="issueModifyForm.ipAddress.$error.required" translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. </small> </div> @@ -304,7 +304,7 @@ 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" ng-if="issueModifyForm.site.$error.required" translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. </small> </div> @@ -319,7 +319,7 @@ 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" ng-if="issueModifyForm.tel.$error.required" translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. </small> </div> @@ -339,7 +339,7 @@ </select> <small class="help-block form-text text-danger" ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" ng-if="issueAddForm.singleSelect.$error.required" ng-if="issueModifyForm.singleSelect.$error.required" translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. </small> </div> @@ -357,7 +357,7 @@ 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" ng-if="issueModifyForm.multiSelect.$error.required" translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. </small> </div> @@ -422,7 +422,7 @@ autocomplete="off" ng-model="vm.companyTel" maxlength="20"> <div ng-show="issueAddForm.companyTel.$error.pattern" class="help-block form-text text-danger" <div ng-show="issueModifyForm.companyTel.$error.pattern" class="help-block form-text text-danger" translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요. </div> </div> @@ -439,7 +439,7 @@ ng-model="vm.companyEmail" kr-input ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"> <div ng-show="issueAddForm.companyEmail.$error.pattern" class="help-block form-text text-danger" <div ng-show="issueModifyForm.companyEmail.$error.pattern" class="help-block form-text text-danger" translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다. </div> </div> @@ -455,7 +455,11 @@ 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="issueModifyForm.companyUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> @@ -550,7 +554,7 @@ autocomplete="off" ng-model="vm.ispTel" maxlength="20"> <div ng-show="issueAddForm.ispTel.$error.pattern" class="help-block form-text text-danger" <div ng-show="issueModifyForm.ispTel.$error.pattern" class="help-block form-text text-danger" translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요. </div> </div> @@ -567,7 +571,7 @@ ng-model="vm.ispEmail" kr-input ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"> <div ng-show="issueAddForm.ispEmail.$error.pattern" class="help-block form-text text-danger" <div ng-show="issueModifyForm.ispEmail.$error.pattern" class="help-block form-text text-danger" translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다. </div> </div> @@ -583,7 +587,11 @@ 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="issueModifyForm.ispUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> @@ -679,7 +687,7 @@ autocomplete="off" ng-model="vm.hostingTel" maxlength="20"> <div ng-show="issueAddForm.hostingTel.$error.pattern" class="help-block form-text text-danger" <div ng-show="issueModifyForm.hostingTel.$error.pattern" class="help-block form-text text-danger" translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요. </div> </div> @@ -696,7 +704,7 @@ ng-model="vm.hostingEmail" kr-input ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"> <div ng-show="issueAddForm.hostingEmail.$error.pattern" class="help-block form-text text-danger" <div ng-show="issueModifyForm.hostingEmail.$error.pattern" class="help-block form-text text-danger" translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다. </div> </div> @@ -712,7 +720,11 @@ 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="issueModifyForm.hostingUrl.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. </div> </div> </div> <div class="col-lg-4"> @@ -760,8 +772,8 @@ translate="common.cancel">취소</span></button> <button type="button" class="btn btn-md btn-primary bold" js-short-cut js-short-cut-action="(fn.formCheck(issueAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" ng-disabled="fn.formCheck(issueAddForm.$invalid)" js-short-cut-action="(fn.formCheck(issueModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" ng-disabled="fn.formCheck(issueModifyForm.$invalid)" ng-click="fn.formSubmit()"><span translate="common.save">저장</span> </button> </div>