From 3052936fed9166521b0557a36df83eb11a5e51ee Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 목, 14 10월 2021 17:50:57 +0900 Subject: [PATCH] owl-local --- src/main/webapp/scripts/app/workspace/workspacePaymentAdd.controller.js | 150 src/main/webapp/scripts/components/userHistory/userHistory.service.js | 18 src/main/webapp/views/issue/issueAddTableConfig.html | 95 src/main/webapp/views/manageUser/manageUser.html | 114 src/main/webapp/assets/images/loginbg.png | 0 src/main/webapp/scripts/app/issue/issueManager.controller.js | 34 src/main/webapp/scripts/app/issueType/issueType.js | 45 src/main/webapp/views/user/userPassword.html | 42 src/main/webapp/views/user/userDetail.html | 92 src/main/webapp/views/user/userModify.html | 100 src/main/webapp/scripts/components/issueHistory/issueHistory.service.js | 18 src/main/webapp/views/issue/issueReservation.html | 135 src/main/webapp/views/issueStatus/issueStatusList.html | 129 src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js | 170 src/main/webapp/scripts/app/workspace/workspacePaymentAgreeTerm.controller.js | 27 src/main/webapp/scripts/components/auth/auth.interceptor.js | 93 src/main/webapp/scripts/app/task/task.js | 64 src/main/webapp/scripts/components/utils/inputRegex.directive.js | 32 src/main/webapp/assets/images/login-facebook.png | 0 src/main/webapp/scripts/app/workflowStatus/workflowStatusAdd.controller.js | 59 src/main/webapp/views/common/sidebar.html | 382 src/main/webapp/scripts/components/issueRelation/issueRelation.service.js | 30 src/main/webapp/scripts/constants.js | 12 src/main/webapp/scripts/app/widget/widget.js | 43 src/main/webapp/scripts/components/issue/issue.service.js | 92 src/main/webapp/views/issue/issueList.html | 29 src/main/webapp/scripts/app/user/user.js | 42 src/main/webapp/scripts/app/issue/issueReservation.controller.js | 126 src/main/webapp/views/event/eventAdd.html | 76 src/main/webapp/views/login/login.html | 137 src/main/webapp/scripts/app/workflow/workflowList.controller.js | 246 src/main/webapp/assets/images/logo-owl.png | 0 src/main/webapp/scripts/app/workspace/workspace.js | 46 src/main/webapp/scripts/app/workspace/workspacePaymentModify.controller.js | 160 src/main/webapp/scripts/app/customField/customFieldModify.controller.js | 224 src/main/webapp/scripts/app/gantt/ganttController.js | 740 src/main/webapp/views/customField/customFieldAdd.html | 115 src/main/webapp/WEB-INF/i18n/messages_en_US.properties | 192 src/main/webapp/scripts/app/task/taskAgileBoard.controller.js | 519 src/main/webapp/scripts/components/utils/ngEnter.directive.js | 32 src/main/webapp/scripts/components/issueStatus/issueStatus.service.js | 62 src/main/webapp/scripts/components/utils/domAppend.directive.js | 25 src/main/webapp/assets/images/btn-naver.PNG | 0 src/main/webapp/assets/font/dripicons/webfont.css | 640 src/main/webapp/views/user/userModifyPassword.html | 71 src/main/webapp/scripts/components/issueComment/issueComment.service.js | 30 src/main/webapp/assets/images/logo-owl-dark.png | 0 src/main/webapp/i18n/vi/global.json | 711 src/main/webapp/scripts/app/issueType/issueTypeList.controller.js | 232 src/main/webapp/scripts/app/issue/issue.js | 51 src/main/webapp/assets/images/sub-line.png | 0 src/main/webapp/views/project/projectListNormal.html | 127 src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js | 99 src/main/webapp/scripts/app/gantt/gantt.js | 67 src/main/webapp/scripts/components/manageUser/manageUser.service.js | 26 src/main/webapp/assets/clientWeb/clientterms.html | 153 src/main/webapp/scripts/components/utils/noticeModal.directive.js | 26 src/main/webapp/views/faq/faqList.html | 117 src/main/webapp/views/workspace/workspacePaymentModify.html | 81 src/main/webapp/scripts/app/issue/issueModifyUser.controller.js | 133 src/main/webapp/scripts/components/utils/fullScroll.directive.js | 19 src/main/webapp/views/event/eventModify.html | 77 src/main/webapp/scripts/app/popup/noticeModal.controller.js | 42 src/main/webapp/scripts/app/event/eventAdd.controller.js | 130 src/main/webapp/views/task/taskModify.html | 176 src/main/webapp/scripts/components/utils/cardTextarea.directive.js | 39 src/main/webapp/scripts/components/issueTableConfig/issueTableConfig.service.js | 24 src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js | 177 src/main/webapp/scripts/components/utils/owlAutoFocus.directive.js | 24 src/main/webapp/scripts/components/reservationDisableUser/reservationDisableUser.service.js | 20 src/main/webapp/views/issueStatus/issueStatusModify.html | 76 src/main/webapp/scripts/app/qna/qnaList.controller.js | 172 src/main/webapp/scripts/components/taskComment/taskComment.service.js | 30 src/main/webapp/views/workspace/workspaceUserConfig.html | 176 src/main/webapp/scripts/config.js | 544 src/main/webapp/scripts/app/faq/faqModify.controller.js | 143 src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.eot | 0 src/main/webapp/scripts/app/project/projectList.controller.js | 378 src/main/webapp/index.html | 88 src/main/webapp/scripts/app/support/support.controller.js | 34 src/main/webapp/scripts/components/issueType/issueType.service.js | 44 src/main/webapp/views/customField/customFieldModify.html | 117 src/main/webapp/views/issueType/issueTypeAdd.html | 92 src/main/webapp/scripts/app/task/taskModify.controller.js | 572 src/main/webapp/scripts/components/utils/dateRangePicker.directive.js | 113 src/main/webapp/views/event/eventList.html | 117 src/main/webapp/scripts/components/utils/krInput.directive.js | 31 src/main/webapp/views/project/projectListTimeline.html | 73 src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.woff | 0 src/main/webapp/assets/images/login-kakao.png | 0 src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js | 24 src/main/webapp/views/qna/qnaList.html | 117 src/main/webapp/WEB-INF/i18n/messages_vi_VN.properties | 192 src/main/webapp/assets/styles/main.css.map | 114 src/main/webapp/views/guide/guideAdd.html | 59 src/main/webapp/scripts/components/guide/guide.service.js | 50 src/main/webapp/scripts/app/issue/issueVersionView.controller.js | 59 src/main/webapp/scripts/components/utils/detectIssueEditor.directive.js | 25 src/main/webapp/views/workspace/workspace.html | 39 src/main/webapp/assets/clientWeb/clientnotice.html | 10 src/main/webapp/views/login/naver.html | 16 src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js | 26 src/main/webapp/views/issueType/issueTypeModify.html | 95 src/main/webapp/scripts/components/utils/modalFormAutoScroll.directive.js | 29 src/main/webapp/views/workflow/workflowAdd.html | 55 src/main/webapp/scripts/components/auth/principal.service.js | 98 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties | 193 src/main/webapp/scripts/app/issue/issueDetail.controller.js | 566 src/main/webapp/scripts/app/issueStatus/issueStatusAdd.controller.js | 63 src/main/webapp/scripts/app/issue/issueAdd.controller.js | 564 src/main/webapp/scripts/components/issueSearch/issueSearch.service.js | 30 src/main/webapp/assets/images/loginlogo.png | 0 src/main/webapp/views/guide/guideList.html | 117 src/main/webapp/WEB-INF/i18n/mail_ja_JP.properties | 165 src/main/webapp/scripts/components/attachedFile/attachedFile.service.js | 24 src/main/webapp/assets/images/btn_kakao.png | 0 src/main/webapp/scripts/app/faq/faqList.controller.js | 191 src/main/webapp/scripts/components/utils/resource.provider.js | 30 src/main/webapp/scripts/app/notice/noticeList.controller.js | 172 src/main/webapp/scripts/app/notice/noticeModify.controller.js | 143 src/main/webapp/scripts/components/workflow/workflow.service.js | 50 src/main/webapp/views/login/terms.html | 10 src/main/webapp/WEB-INF/i18n/mail_ko_KR.properties | 167 src/main/webapp/scripts/components/utils/owlMobileTopMenu.directive.js | 91 src/main/webapp/scripts/app/issue/issueSendMail.controller.js | 97 src/main/webapp/views/user/userAdd.html | 389 src/main/webapp/WEB-INF/i18n/messages_ja_JP.properties | 192 src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js | 80 src/main/webapp/assets/images/event.png | 0 src/main/webapp/scripts/app/issue/issueModify.controller.js | 626 src/main/webapp/scripts/components/utils/owlProfileOver.directive.js | 27 src/main/webapp/scripts/app/guide/guideView.controller.js | 32 src/main/webapp/scripts/components/widget/widget.service.js | 68 src/main/webapp/scripts/app/workflow/workflowAdd.controller.js | 90 src/main/webapp/scripts/app/workspace/workspace.controller.js | 64 src/main/webapp/assets/clientWeb/clientevent.html | 12 src/main/webapp/views/issue/issueVersionView.html | 19 src/main/webapp/scripts/app/event/eventList.controller.js | 198 src/main/webapp/scripts/components/event/event.service.js | 50 src/main/webapp/assets/images/btn_google.png | 0 src/main/webapp/assets/images/twinkling.png | 0 src/main/webapp/scripts/app/user/userAdd.controller.js | 109 src/main/webapp/assets/images/login-naver.png | 0 src/main/webapp/views/workspace/workspaceUserLevelConfig.html | 109 src/main/webapp/scripts/app/support/support.js | 44 src/main/webapp/views/qna/qnaAdd.html | 59 src/main/webapp/assets/font/NanumSquareR.ttf | 0 src/main/webapp/views/login/facebook.html | 15 src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js | 170 src/main/webapp/views/project/projectModify.html | 138 src/main/webapp/scripts/app/faq/faqAdd.controller.js | 115 src/main/webapp/views/qna/qnaView.html | 20 src/main/webapp/views/customField/customFieldList.html | 121 src/main/webapp/scripts/app/userInvite/userInvite.controller.js | 234 src/main/webapp/WEB-INF/i18n/mail_vi_VN.properties | 138 src/main/webapp/assets/images/favicon.png | 0 src/main/webapp/scripts/app/qna/qna.js | 45 src/main/webapp/scripts/app/customField/customFieldAdd.controller.js | 148 src/main/webapp/scripts/app/qna/qnaModify.controller.js | 143 src/main/webapp/views/notice/noticeList.html | 115 src/main/webapp/scripts/app/manageUser/manageUser.controller.js | 193 src/main/webapp/views/login/socialFail.html | 18 src/main/webapp/views/widget/widgetDashBoard.html | 68 src/main/webapp/scripts/app/project/projectModify.controller.js | 196 src/main/webapp/scripts/app/notice/notice.js | 45 src/main/webapp/scripts/components/utils/textUpperString.directive.js | 26 src/main/webapp/scripts/components/faq/faq.service.js | 50 src/main/webapp/scripts/app/workflowStatus/workflowStatusModify.controller.js | 78 src/main/webapp/scripts/app/issue/issueListTimeline.controller.js | 626 src/main/webapp/scripts/app/guide/guideModify.controller.js | 143 src/main/webapp/scripts/components/utils/agileCardSortable.directive.js | 68 src/main/webapp/scripts/app/project/projectAdd.controller.js | 135 src/main/webapp/scripts/app/notice/noticeAdd.controller.js | 115 src/main/webapp/views/issue/issueModifyUser.html | 51 src/main/webapp/assets/images/avatar-admin.jpg | 0 src/main/webapp/assets/images/event1.png | 0 src/main/webapp/assets/images/loginbg2.png | 0 src/main/webapp/views/login/withDrawSocialAccount.html | 16 src/main/webapp/scripts/components/qna/qna.service.js | 44 src/main/webapp/scripts/app/faq/faq.js | 45 src/main/webapp/views/faq/faqAdd.html | 59 src/main/webapp/views/login/kakao.html | 22 src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js | 185 src/main/webapp/assets/images/login-google.png | 0 src/main/webapp/assets/images/logo-owltxt.png | 0 src/main/webapp/scripts/components/task/task.service.js | 57 src/main/webapp/scripts/components/severity/severity.service.js | 20 src/main/webapp/views/issue/issueModify.html | 304 src/main/webapp/views/faq/faqView.html | 20 src/main/webapp/scripts/app/login/login.controller.js | 143 src/main/webapp/scripts/components/utils/summerNoteAutoFocus.directive.js | 24 src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js | 67 src/main/webapp/views/notice/noticeModify.html | 59 src/main/webapp/assets/images/logineyes.png | 0 src/main/webapp/scripts/app/qna/qnaAdd.controller.js | 115 src/main/webapp/views/issue/issueListTimeline.html | 309 src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.svg | 210 src/main/webapp/scripts/app/support/supportQnaList.controller.js | 172 src/main/webapp/views/issueStatus/issueStatusAdd.html | 72 src/main/webapp/i18n/ja/global.json | 712 src/main/webapp/scripts/app/login/login.js | 95 src/main/webapp/scripts/app/manageUser/manageUser.js | 44 src/main/webapp/scripts/components/workflowStatus/workflowStatus.service.js | 50 src/main/webapp/scripts/app/notice/noticeView.controller.js | 32 src/main/webapp/scripts/app/workflow/workflow.js | 45 src/main/webapp/scripts/components/utils/tableUserImage.directive.js | 72 src/main/webapp/scripts/components/user/user.service.js | 89 src/main/webapp/scripts/components/utils/autoComplete.controller.js | 182 src/main/webapp/scripts/components/issueReservation/issueReservation.service.js | 26 src/main/webapp/scripts/components/priority/priority.service.js | 20 src/main/webapp/scripts/app/customField/customField.js | 45 src/main/webapp/assets/font/NanumSquareR.woff | 0 src/main/webapp/views/common/header.html | 81 src/main/webapp/views/task/taskAgileBoard.html | 83 src/main/webapp/scripts/app/guide/guide.js | 45 src/main/webapp/scripts/app/project/projectTab.controller.js | 47 src/main/webapp/scripts/components/utils/owlProjectKey.directive.js | 28 src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js | 36 src/main/webapp/assets/images/logo-owl-gr.png | 0 src/main/webapp/scripts/components/userInvite/userInvite.service.js | 18 src/main/webapp/scripts/components/gantt/googleChartLoader.js | 143 src/main/webapp/views/project/projectCustomFieldConfig.html | 97 src/main/webapp/scripts/app/event/eventModify.controller.js | 157 src/main/webapp/assets/images/stars.png | 0 src/main/webapp/scripts/app/project/project.js | 46 src/main/webapp/WEB-INF/i18n/mail_en_US.properties | 166 src/main/webapp/views/event/eventView.html | 20 src/main/webapp/WEB-INF/i18n/code_en_US.properties | 100 src/main/webapp/scripts/app/task/taskAdd.controller.js | 325 src/main/webapp/scripts/components/auth/auth.service.js | 108 src/main/webapp/scripts/app/issueStatus/issueStatus.js | 45 src/main/webapp/scripts/components/utils/numberOnly.directive.js | 31 src/main/webapp/views/user/superUserAdd.html | 178 src/main/webapp/scripts/app/event/event.js | 45 src/main/webapp/scripts/components/utils/functionToolTip.directive.js | 20 src/main/webapp/views/workflow/workflowModify.html | 61 src/main/webapp/scripts/components/utils/includeReplace.directive.js | 18 src/main/webapp/views/workspace/workspaceDepartmentConfig.html | 176 src/main/webapp/views/login/socialConnect.html | 20 src/main/webapp/views/notice/noticeView.html | 20 src/main/webapp/views/popup/notice.html | 57 src/main/webapp/excelTemplate/excelExample_new.mp4 | 0 src/main/webapp/scripts/components/notice/notice.service.js | 50 src/main/webapp/robots.txt | 5 src/main/webapp/views/gantt/gantt.html | 312 src/main/webapp/views/issue/issueDetail.html | 509 src/main/webapp/views/issueType/issueTypeList.html | 110 src/main/webapp/scripts/components/utils/owlAttachedFileType.directive.js | 34 src/main/webapp/scripts/components/workspace/workspace.service.js | 50 src/main/webapp/views/login/socialOk.html | 20 src/main/webapp/scripts/app/workflow/workflowModify.controller.js | 116 src/main/webapp/views/issue/issueAdd.html | 307 src/main/webapp/views/task/taskExcelImport.html | 50 src/main/webapp/scripts/components/issueUser/issueUser.service.js | 20 src/main/webapp/assets/font/NanumSquareR.eot | 0 src/main/webapp/scripts/app/issueStatus/issueStatusModify.controller.js | 94 src/main/webapp/scripts/components/utils/issueSearchArrayViewElement.directive.js | 70 src/main/webapp/scripts/app/common/common.controller.js | 381 src/main/webapp/views/guide/guideModify.html | 59 src/main/webapp/scripts/components/utils/formSubmit.directive.js | 32 src/main/webapp/scripts/components/utils/issueStatusAutoFocus.directive.js | 28 src/main/webapp/views/userInvite/userInvite.html | 97 src/main/webapp/scripts/components/customField/customField.service.js | 44 src/main/webapp/scripts/components/project/project.service.js | 62 src/main/webapp/views/guide/guideView.html | 20 src/main/webapp/assets/images/btn_facebook.png | 0 src/main/webapp/scripts/app/issueStatus/issueStatusList.controller.js | 246 src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js | 186 src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js | 146 src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js | 320 src/main/webapp/scripts/components/permission/permission.service.js | 30 src/main/webapp/views/login/terms_origin.html | 162 src/main/webapp/scripts/components/utils/issueSearchCustomFieldViewElement.directive.js | 96 src/main/webapp/views/common/footer.html | 32 src/main/webapp/views/workspace/workspacePaymentAgreeTerm.html | 376 src/main/webapp/scripts/app/guide/guideAdd.controller.js | 115 src/main/webapp/WEB-INF/i18n/code_ja_JP.properties | 100 src/main/webapp/scripts/components/gantt/gantt.service.js | 79 src/main/webapp/views/common/app.html | 34 src/main/webapp/scripts/app/qna/qnaView.controller.js | 32 src/main/webapp/scripts/app/user/userPassword.controller.js | 66 src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js | 170 src/main/webapp/views/notice/noticeAdd.html | 59 src/main/webapp/views/workflow/workflowList.html | 112 src/main/webapp/scripts/components/systemEmail/systemEmail.service.js | 20 src/main/webapp/scripts/app/user/userModify.controller.js | 174 src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.ttf | 0 src/main/webapp/views/project/projectAdd.html | 164 src/main/webapp/assets/images/delete-icon.png | 0 src/main/webapp/scripts/components/utils/removeHtmlTag.filter.js | 26 src/main/webapp/views/issue/issueSendMail.html | 47 src/main/webapp/assets/images/owl.png | 0 src/main/webapp/i18n/en/global.json | 710 src/main/webapp/views/workspace/workspacePaymentExecute.html | 377 src/main/webapp/scripts/components/payment/payment.service.js | 42 src/main/webapp/views/faq/faqModify.html | 59 src/main/webapp/assets/images/event-pop-voucher.jpg | 0 src/main/webapp/scripts/app/user/userModifyPassword.controller.js | 87 src/main/webapp/assets/images/default_profile.png | 0 src/main/webapp/views/qna/qnaModify.html | 59 src/main/webapp/scripts/app/faq/faqView.controller.js | 32 src/main/webapp/scripts/app/task/taskExcelImport.controller.js | 153 src/main/webapp/views/issue/issueModifyStatus.html | 56 src/main/webapp/scripts/app/user/userDetail.controller.js | 125 src/main/webapp/scripts/app/guide/guideList.controller.js | 192 src/main/webapp/assets/images/btn_naver.PNG | 0 src/main/webapp/scripts/components/auth/auth.session.service.js | 43 src/main/webapp/scripts/components/utils/dateTimePicker.directive.js | 29 src/main/webapp/scripts/components/utils/colorPalettePicker.directive.js | 34 src/main/webapp/scripts/main.js | 527 src/main/webapp/views/workspace/workspacePaymentAdd.html | 149 src/main/webapp/scripts/components/utils/owlAutoTextHeight.directive.js | 38 src/main/webapp/scripts/app/event/eventView.controller.js | 32 src/main/webapp/WEB-INF/i18n/code_vi_VN.properties | 100 src/main/webapp/scripts/app/customField/customFieldList.controller.js | 235 src/main/webapp/views/project/projectList.html | 40 src/main/webapp/scripts/components/issueVersion/issueVersion.service.js | 24 src/main/webapp/scripts/components/language/language.service.js | 20 src/main/webapp/views/issue/issueListNormal.html | 371 src/main/webapp/views/login/google.html | 27 src/main/webapp/scripts/components/utils/cardContent.directive.js | 136 src/main/webapp/scripts/app/issue/issueImportExcel.controller.js | 132 src/main/webapp/assets/styles/main.css | 30176 ++++++++++++++++++++++++++ src/main/webapp/scripts/app.js | 53 src/main/webapp/scripts/components/utils/owlTaskAutoButton.directive.js | 27 src/main/webapp/views/login/socialFailNotEmail.html | 19 src/main/webapp/views/support/support.html | 25 src/main/webapp/scripts/app/issue/issueList.controller.js | 880 src/main/webapp/scripts/app/project/projectTimeline.controller.js | 329 src/main/webapp/i18n/ko/global.json | 745 src/main/webapp/views/issue/issueExcelImport.html | 164 src/main/webapp/WEB-INF/i18n/code_ko_KR.properties | 101 332 files changed, 67,038 insertions(+), 0 deletions(-) diff --git a/src/main/webapp/WEB-INF/i18n/code_en_US.properties b/src/main/webapp/WEB-INF/i18n/code_en_US.properties new file mode 100644 index 0000000..3b4c6ea --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/code_en_US.properties @@ -0,0 +1,100 @@ +common.urgent=Urgent +common.high=High +common.medium=Medium +common.low=Low +common.critical=Critical +common.major=Major +common.minor=Minor +common.trivial=Trivial +common.issue=Issue +common.issueList=Issue List +common.status=Status +common.issueKey=Issue Number +common.issueTitle=Issue Title +common.content=Content +common.issueType=Issue Type +common.priority=Priority +common.importance=Importance +common.assignee=Assignee +common.period=Period +common.register=Registrar +common.modifyDate=Final Change Date +common.title=Title +common.project=Project +common.projectKey=Project Key +common.startDate=Start Date +common.endDate=End Date +common.registerDate=Registration date +common.admin=Admin +common.teamMember=Team Member +common.registration=Registration +common.assigned=Assigned +common.progressPercent=progress rate +common.reversalAssigneeUpdate=Change frequent contacts +common.reversalStatusUpdate=Change the status of the reversal +common.typeErrorDownloadWidget=Download widget type error +common.inProgressProjectStatus=Project status in progress +common.registerExcelIssue=Register Excel Issue +common.assignedToMeIssue=Issues assigned to me +common.managementRisk=Risk Management +common.registeredByMeIssue=Status of issues registered by me +common.delayDate=Delay Date +common.delayingIssue=Pending issue +common.assignedIssue=Assigned Issue +common.delaying=Delaying +common.progressByMember=Progress by Member +common.myIssueStatus=Current status of my issue +common.division=Division +common.complete=Complete +common.issueManagementProject=Issue Management Project +common.projectList=Project List +common.projectAdmin=Project Manager +common.projectTeamMember=Project Team Member +common.wait=Wait +common.progress=Progress +common.end=End +common.intoTheSystemIssueManagementProject=An issue management project that is built into the system. +common.create=Create +common.reProgress=re-progress +common.check=Check +common.approval=Approval +common.noApproval=No approval +common.issueStatusList=Issue Status List +common.issueStatus=Issue status +common.statusProperties=Status Properties +common.color=Color +common.workflow=Workflow +common.workflowList=Workflow List +common.btsWorkflow=BTS Workflow +common.rmsWorkflow=RMS Workflow +common.tcmWorkflow=TCM Workflow +common.usedToManageThisWorkflow=This workflow is used to manage bugs. +common.userToManageRequirementsThisWorkflow=This workflow is used to manage requirements. +common.userToManageTestCasesThisWorkflow=This workflow is used to manage test cases. +common.stringField=String field +common.singleSelectionField=Single Selection Field +common.multipleSelectionField=Multiple Selection Fields +common.customField=Custom field +common.customFieldList=Custom field List +common.fieldType=Field Type +common.bug=Bug +common.improvement=Improvement +common.requirement=Requirements +common.testcase=test case +common.issueTypeList=Issue Type List +common.excelDownloadNotPossibleExcludedFromTheWorkspace=Excel download is not possible because participation is excluded from the workspace. +common.sWorkspace='s Workspace +common.few= a few +common.createIssue=Creating an Issue +common.updateIssue=Change the issue +common.deleteIssue=Delete Issue +common.updateTitle=Title has changed. +common.updateContent=The contents have been changed. +common.updateProject=The project has been changed. +common.updateSeverity=severity has changed. +common.updatePriority=The priority has been changed +common.updateStatus=The status has changed. +common.updateWorkflowNotExist=The status of the issue has changed because the changed workflow does not exist. +common.updateIssueType=Issue type has been changed. +common.updatePeriod=The period has changed. +common.remainIssue=The remain issue diff --git a/src/main/webapp/WEB-INF/i18n/code_ja_JP.properties b/src/main/webapp/WEB-INF/i18n/code_ja_JP.properties new file mode 100644 index 0000000..9e6bb4d --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/code_ja_JP.properties @@ -0,0 +1,100 @@ +common.urgent=\u7DCA\u6025 +common.high=\u9AD8 +common.medium=\u666E\u901A +common.low=\u4F4E\u3055 +common.critical=\u6DF1\u523B +common.major=\u9AD8 +common.minor=\u666E\u901A +common.trivial=\u4F4E\u3055 +common.issue=\u30A4\u30B7\u30E5\u30FC +common.issueList=\u30A4\u30B7\u30E5\u30FC\u00B7\u30EA\u30B9\u30C8 +common.status=\u72B6\u614B +common.issueKey=\u30A4\u30B7\u30E5\u30FC\u756A\u53F7 +common.issueTitle=\u30A4\u30B7\u30E5\u30FC\u984C\u76EE +common.content=\u5185\u5BB9 +common.issueType=\u30A4\u30B7\u30E5\u30FC\u00B7\u30BF\u30A4\u30D7 +common.priority=\u512A\u5148\u9806\u4F4D +common.importance=\u91CD\u8981\u5EA6 +common.assignee=\u62C5\u5F53\u8005 +common.period=\u671F\u9593 +common.register=\u767B\u9332\u8005 +common.modifyDate=\u6700\u7D42\u5909\u66F4\u65E5 +common.title=\u984C\u76EE +common.project=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 +common.projectKey=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u00B7\u30AD\u30FC +common.startDate=\u958B\u59CB\u65E5 +common.endDate=\u7D42\u4E86\u65E5 +common.registerDate=\u767B\u9332\u65E5 +common.admin=\u7BA1\u7406\u8005 +common.teamMember=\u30C1\u30FC\u30E0\u30E1\u30F3\u30D0\u30FC +common.registration=\u767B\u9332 +common.assigned=\u62C5\u5F53 +common.progressPercent=\u9032\u884C\u7387 +common.reversalAssigneeUpdate=\u983B\u7E41\u306A\u62C5\u5F53\u8005\u306E\u5909\u66F4 +common.reversalStatusUpdate=\u8986\u9762\u5909\u66F4 +common.typeErrorDownloadWidget=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30BF\u30A4\u30D7\u30A8\u30E9\u30FC +common.inProgressProjectStatus=\u9032\u884C\u4E2D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u73FE\u72B6 +common.registerExcelIssue=\u30A8\u30AF\u30BB\u30ED\u554F\u984C\u767B\u9332 +common.assignedToMeIssue=\u79C1\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u305F\u30A4\u30B7\u30E5\u30FC +common.managementRisk=\u5371\u967A\u7BA1\u7406 +common.registeredByMeIssue=\u79C1\u304C\u767B\u9332\u3057\u305F\u554F\u984C\u73FE\u6CC1 +common.delayDate=\u9045\u5EF6\u65E5 +common.delayingIssue=\u9045\u5EF6\u4E2D\u306E\u30A4\u30B7\u30E5\u30FC +common.assignedIssue=\u62C5\u5F53\u30A4\u30B7\u30E5\u30FC +common.delaying=\u9045\u5EF6\u4E2D +common.progressByMember=\u30E1\u30F3\u30D0\u30FC\u5225\u9032\u884C\u7387 +common.myIssueStatus=\u79C1\u306E\u30A4\u30B7\u30E5\u30FC\u73FE\u6CC1 +common.division=\u4ED5\u5206\u3051 +common.complete=\u5B8C\u4E86 +common.issueManagementProject=\u30A4\u30B7\u30E5\u30FC\u7BA1\u7406\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 +common.projectList=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30EA\u30B9\u30C8 +common.projectAdmin=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30DE\u30CD\u30FC\u30B8\u30E3 +common.projectTeamMember=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C1\u30FC\u30E0\u54E1 +common.wait=\u5F85\u3061 +common.progress=\u9032\u884C +common.end=\u7D42\u4E86 +common.intoTheSystemIssueManagementProject=\u30B7\u30B9\u30C6\u30E0\u3067\u57FA\u672C\u306B\u63D0\u4F9B\u3055\u308C\u308B\u30A4\u30B7\u30E5\u30FC\u7BA1\u7406\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u3059\u3002 +common.create=\u751F\u6210 +common.reProgress=\u518D\u9032\u884C +common.check=\u78BA\u8A8D +common.approval=\u627F\u8A8D +common.noApproval=\u627F\u8A8D\u4E0D\u53EF +common.issueStatusList=\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u30EA\u30B9\u30C8 +common.issueStatus=\u4E89\u70B9\u72B6\u614B +common.statusProperties=\u72B6\u614B\u5C5E\u6027 +common.color=\u8272\u76F8 +common.workflow=\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC +common.workflowList=\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30EA\u30B9\u30C8 +common.btsWorkflow=BTS \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC +common.rmsWorkflow=RMS \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC +common.tcmWorkflow=TCM \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC +common.usedToManageThisWorkflow=\u30D0\u30B0\u3092\u7BA1\u7406\u3059\u308B\u306E\u306B\u4F7F\u7528\u3059\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067\u3059\u3002 +common.userToManageRequirementsThisWorkflow=\u8981\u6C42\u4E8B\u9805\u3092\u7BA1\u7406\u3059\u308B\u306E\u306B\u4F7F\u7528\u3059\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067\u3059\u3002 +common.userToManageTestCasesThisWorkflow=\u30C6\u30B9\u30C8\u30B1\u30FC\u30B9\u3092\u7BA1\u7406\u3059\u308B\u306E\u306B\u4F7F\u7528\u3059\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067\u3059\u3002 +common.stringField=\u6587\u5B57\u5217\u30D5\u30A3\u30FC\u30EB\u30C9 +common.singleSelectionField=\u5358\u4E00\u9078\u629E\u30D5\u30A3\u30FC\u30EB\u30C9 +common.multipleSelectionField=\u591A\u91CD\u9078\u629E\u30D5\u30A3\u30FC\u30EB\u30C9 +common.customField=\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9 +common.customFieldList=\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u30EA\u30B9\u30C8 +common.fieldType=\u30D5\u30A3\u30FC\u30EB\u30C9\u30BF\u30A4\u30D7 +common.bug=\u30D0\u30C3\u30B0 +common.improvement=\u6539\u5584 +common.requirement=\u8981\u6C42\u4E8B\u9805 +common.testcase=\u30C6\u30B9\u30C8\u30B1\u30FC\u30B9 +common.issueTypeList=\u30A4\u30B7\u30E5\u30FC\u00B7\u30BF\u30A4\u30D7\u00B7\u30EA\u30B9\u30C8 +common.excelDownloadNotPossibleExcludedFromTheWorkspace=\u696D\u52D9\u7A7A\u9593\u3067\u53C2\u52A0\u304C\u9664\u5916\u3055\u308C,\u30A8\u30AF\u30BB\u30EB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u304C\u4E0D\u53EF\u80FD\u3067\u3059\u3002 +common.sWorkspace=\u306E\u696D\u52D9\u7A7A\u9593 +common.few= \u4EF6 +common.createIssue=\u30A4\u30B7\u30E5\u30FC\u751F\u6210 +common.updateIssue=\u4E89\u70B9\u5909\u66F4 +common.deleteIssue=\u30A4\u30B7\u30E5\u30FC\u524A\u9664 +common.updateTitle=\u30BF\u30A4\u30C8\u30EB\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.updateContent=\u5185\u5BB9\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.updateProject=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.updateSeverity=\u91CD\u8981\u5EA6\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.updatePriority=\u512A\u5148\u9806\u4F4D\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.updateStatus=\u72B6\u614B\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.updateWorkflowNotExist=\u5909\u66F4\u3055\u308C\u305F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u72B6\u614B\u304C\u5B58\u5728\u305B\u305A,\u30A4\u30B7\u30E5\u30FC\u306E\u72B6\u614B\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.updateIssueType=\u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.updatePeriod=\u671F\u9593\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +common.remainIssue=\u6B8B\u4F59\u30A4\u30B7\u30E5\u30FC diff --git a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties new file mode 100644 index 0000000..93a06cf --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties @@ -0,0 +1,101 @@ +common.urgent=\uAE34\uAE09 +common.high=\uB192\uC74C +common.medium=\uBCF4\uD1B5 +common.low=\uB0AE\uC74C +common.critical=\uC2EC\uAC01 +common.major=\uB192\uC74C +common.minor=\uBCF4\uD1B5 +common.trivial=\uB0AE\uC74C +common.issue=\uC77C\uAC10 +common.issueList=\uC77C\uAC10 \uBAA9\uB85D +common.status=\uC0C1\uD0DC +common.issueKey=\uC77C\uAC10 \uBC88\uD638 +common.issueTitle=\uC77C\uAC10 \uC81C\uBAA9 +common.content=\uB0B4\uC6A9 +common.issueType=\uC77C\uAC10 \uC720\uD615 +common.priority=\uC6B0\uC120\uC21C\uC704 +common.importance=\uC911\uC694\uB3C4 +common.assignee=\uB2F4\uB2F9\uC790 +common.period=\uAE30\uAC04 +common.register=\uB4F1\uB85D\uC790 +common.modifyDate=\uCD5C\uC885 \uBCC0\uACBD\uC77C +common.title=\uC81C\uBAA9 +common.project=\uD504\uB85C\uC81D\uD2B8 +common.projectKey=\uD504\uB85C\uC81D\uD2B8 \uD0A4 +common.startDate=\uC2DC\uC791\uC77C +common.endDate=\uC885\uB8CC\uC77C +common.registerDate=\uB4F1\uB85D\uC77C +common.admin=\uAD00\uB9AC\uC790 +common.teamMember=\uD300\uC6D0 +common.registration=\uB4F1\uB85D +common.assigned=\uB2F4\uB2F9 +common.progressPercent=\uC9C4\uD589\uB960 +common.reversalAssigneeUpdate=\uBE48\uBC88\uD55C \uB2F4\uB2F9\uC790 \uBCC0\uACBD +common.reversalStatusUpdate=\uBC88\uBCF5\uB418\uB294 \uC0C1\uD0DC \uBCC0\uACBD +common.typeErrorDownloadWidget=\uB2E4\uC6B4\uB85C\uB4DC \uC704\uC82F \uC720\uD615 \uC624\uB958 +common.inProgressProjectStatus=\uC9C4\uD589 \uC911\uC778 \uD504\uB85C\uC81D\uD2B8 \uD604\uD669 +common.registerExcelIssue=\uC5D1\uC140\uB85C \uC77C\uAC10 \uB4F1\uB85D\uD558\uAE30 +common.assignedToMeIssue=\uB098\uC5D0\uAC8C \uD560\uB2F9\uB41C \uC77C\uAC10 +common.managementRisk=\uC704\uD5D8 \uAD00\uB9AC +common.registeredByMeIssue=\uB0B4\uAC00 \uB4F1\uB85D\uD55C \uC77C\uAC10 \uD604\uD669 +common.delayDate=\uC9C0\uC5F0\uC77C +common.delayingIssue=\uC9C0\uC5F0 \uC911\uC778 \uC77C\uAC10 +common.assignedIssue=\uB2F4\uB2F9 \uC77C\uAC10 +common.delaying=\uC9C0\uC5F0\uC911 +common.progressByMember=\uBA64\uBC84\uBCC4 \uC9C4\uD589\uB960 +common.myIssueStatus=\uB098\uC758 \uC77C\uAC10 \uD604\uD669 +common.division=\uAD6C\uBD84 +common.complete=\uC644\uB8CC +common.issueManagementProject=\uC774\uC288 \uAD00\uB9AC \uD504\uB85C\uC81D\uD2B8 +common.projectList=\uD504\uB85C\uC81D\uD2B8 \uBAA9\uB85D +common.projectAdmin=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790 +common.projectTeamMember=\uD504\uB85C\uC81D\uD2B8 \uD300\uC6D0 +common.wait=\uB300\uAE30 +common.progress=\uC9C4\uD589 +common.end=\uC885\uB8CC +common.intoTheSystemIssueManagementProject=\uC2DC\uC2A4\uD15C\uC5D0\uC11C \uAE30\uBCF8\uC73C\uB85C \uC81C\uACF5\uB418\uB294 \uC774\uC288 \uAD00\uB9AC \uD504\uB85C\uC81D\uD2B8\uC785\uB2C8\uB2E4. +common.create=\uC0DD\uC131 +common.reProgress=\uC7AC\uC9C4\uD589 +common.check=\uD655\uC778 +common.approval=\uC2B9\uC778 +common.noApproval=\uC2B9\uC778 \uBD88\uAC00 +common.issueStatusList=\uC77C\uAC10 \uC0C1\uD0DC \uBAA9\uB85D +common.issueStatus=\uC77C\uAC10 \uC0C1\uD0DC +common.statusProperties=\uC0C1\uD0DC \uC18D\uC131 +common.color=\uC0C9\uC0C1 +common.workflow=\uC6CC\uD06C\uD50C\uB85C\uC6B0 +common.workflowList=\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uBAA9\uB85D +common.btsWorkflow=\uACB0\uD568 \uAD00\uB9AC \uC6CC\uD06C\uD50C\uB85C\uC6B0 +common.rmsWorkflow=\uC694\uAD6C \uC0AC\uD56D \uAD00\uB9AC \uC6CC\uD06C\uD50C\uB85C\uC6B0 +common.tcmWorkflow=\uD14C\uC2A4\uD2B8\uCF00\uC774\uC2A4 \uAD00\uB9AC \uC6CC\uD06C\uD50C\uB85C\uC6B0 +common.usedToManageThisWorkflow=\uACB0\uD568\uC744 \uAD00\uB9AC\uD558\uB294\uB370 \uC0AC\uC6A9\uD558\uB294 \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC785\uB2C8\uB2E4. +common.userToManageRequirementsThisWorkflow=\uC694\uAD6C \uC0AC\uD56D\uC744 \uAD00\uB9AC\uD558\uB294\uB370 \uC0AC\uC6A9\uD558\uB294 \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC785\uB2C8\uB2E4. +common.userToManageTestCasesThisWorkflow=\uD14C\uC2A4\uD2B8 \uCF00\uC774\uC2A4\uB97C \uAD00\uB9AC\uD558\uB294\uB370 \uC0AC\uC6A9\uD558\uB294 \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC785\uB2C8\uB2E4. +common.stringField=\uBB38\uC790\uC5F4 \uD544\uB4DC +common.singleSelectionField=\uB2E8\uC77C \uC120\uD0DD \uD544\uB4DC +common.multipleSelectionField=\uB2E4\uC911 \uC120\uD0DD \uD544\uB4DC +common.customField=\uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC +common.customFieldList=\uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBAA9\uB85D +common.fieldType=\uD544\uB4DC \uC720\uD615 +common.bug=\uBC84\uADF8 +common.improvement=\uAC1C\uC120 +common.requirement=\uC694\uAD6C \uC0AC\uD56D +common.testcase=\uD14C\uC2A4\uD2B8 \uCF00\uC774\uC2A4 +common.issueTypeList=\uC77C\uAC10 \uD0C0\uC785 \uBAA9\uB85D +common.excelDownloadNotPossibleExcludedFromTheWorkspace=\uC5C5\uBB34 \uACF5\uAC04\uC5D0\uC11C \uCC38\uC5EC\uAC00 \uC81C\uC678\uB418\uC5B4 \uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC\uAC00 \uBD88\uAC00\uB2A5\uD569\uB2C8\uB2E4. +common.sWorkspace=\uC758 \uC5C5\uBB34\uACF5\uAC04 +common.few= \uAC74 +common.createIssue=\uC77C\uAC10 \uC0DD\uC131 +common.updateIssue=\uC77C\uAC10 \uBCC0\uACBD +common.deleteIssue=\uC77C\uAC10 \uC0AD\uC81C +common.updateTitle=\uC81C\uBAA9\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.updateContent=\uB0B4\uC6A9\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.updateProject=\uD504\uB85C\uC81D\uD2B8\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.updateSeverity=\uC911\uC694\uB3C4\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.updatePriority=\uC6B0\uC120\uC21C\uC704\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.updateStatus=\uC0C1\uD0DC\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.updateWorkflowNotExist=\uBCC0\uACBD\uB41C \uC6CC\uD06C\uD50C\uB85C\uC6B0\uC5D0\uC11C \uC0C1\uD0DC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC544 \uC77C\uAC10\uC758 \uC0C1\uD0DC\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.updateIssueType=\uC77C\uAC10 \uD0C0\uC785\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.updatePeriod=\uAE30\uAC04\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +common.remainIssue=\uC794\uC5EC \uC77C\uAC10 +common.severityIssue=\uC911\uC694\uB3C4 \uBCC4 \uC77C\uAC10 \uD604\uD669 \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/i18n/code_vi_VN.properties b/src/main/webapp/WEB-INF/i18n/code_vi_VN.properties new file mode 100644 index 0000000..ceb5924 --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/code_vi_VN.properties @@ -0,0 +1,100 @@ +common.urgent=t\u00ECnh tr\u1EA1ng c\u1EA5p b\u00E1ch +common.high=\u00E2m cao +common.medium=th\u00F4ng th\u01B0\u1EDDng +common.low=\u00E2m th\u1EA5p +common.critical=t\u00EDnh tr\u1EA7m tr\u1ECDng +common.major=\u00E2m cao +common.minor=th\u00F4ng th\u01B0\u1EDDng +common.trivial=\u00E2m th\u1EA5p +common.issue=v\u1EA5n \u0111\u1EC1 +common.issueList=danh m\u1EE5c v\u1EA5n \u0111\u1EC1 +common.status=\u0111i\u1EC1u ki\u1EC7n +common.issueKey=con s\u1ED1 v\u1EA5n \u0111\u1EC1 +common.issueTitle=T\u1EF1a \u0111\u1EC1 v\u1EA5n \u0111\u1EC1 +common.content=n\u1ED9i dung +common.issueType=ki\u1EC3u v\u1EA5n \u0111\u1EC1 +common.priority=th\u1EE9 t\u1EF1 \u01B0u ti\u00EAn +common.importance=t\u1EA7m quan tr\u1ECDng +common.assignee=ng\u01B0\u1EDDi ch\u1ECBu tr\u00E1ch nhi\u1EC7m +common.period=th\u1EDDi gian +common.register=ng\u01B0\u1EDDi \u0111\u0103ng k\u00FD +common.modifyDate=ng\u00E0y thay \u0111\u1ED5i cu\u1ED1i c\u00F9ng +common.title=T\u1EF1a \u0111\u1EC1 +common.project=d\u1EF1 \u00E1n +common.projectKey=Ch\u00ECa kh\u00F3a d\u1EF1 \u00E1n +common.startDate=ng\u00E0y b\u1EAFt \u0111\u1EA7u +common.endDate=ng\u00E0y k\u1EBFt th\u00FAc +common.registerDate=ng\u00E0y \u0111\u0103ng k\u00FD +common.admin=ng\u01B0\u1EDDi qu\u1EA3n l\u00FD +common.teamMember=th\u00E0nh vi\u00EAn trong nh\u00F3m +common.registration=\u0110\u0103ng k\u00FD +common.assigned=ph\u1EE5 tr\u00E1ch +common.progressPercent=t\u1EF7 l\u1EC7 th\u1EF1c hi\u1EC7n +common.reversalAssigneeUpdate=hay thay \u0111\u1ED5i ng\u01B0\u1EDDi ph\u1EE5 tr\u00E1ch +common.reversalStatusUpdate=thay \u0111\u1ED5i tr\u1EA1ng th\u00E1i +common.typeErrorDownloadWidget=l\u1ED7i v\u1EC1 m\u00E1y download +common.inProgressProjectStatus=T\u00ECnh h\u00ECnh d\u1EF1 \u00E1n \u0111ang \u0111\u01B0\u1EE3c ti\u1EBFn h\u00E0nh +common.registerExcelIssue=Ch\u1EE5p h\u00ECnh t\u1EF1 s\u01B0\u1EDBng +common.assignedToMeIssue=M\u1ED9t v\u1EA5n \u0111\u1EC1 sanh l\u1EE3i v\u1EDBi t\u00F4i +common.managementRisk=Qu\u1EA3n l\u00FD r\u1EE7i ro +common.registeredByMeIssue=T\u00ECnh h\u00ECnh l\u00E0 v\u1EA5n \u0111\u1EC1 m\u00E0 t\u00F4i \u0111\u00E3 \u0111\u0103ng k\u00FD +common.delayDate=ng\u00E0y h\u1ED9i +common.delayingIssue=v\u1EA5n \u0111\u1EC1 \u0111ang ch\u1EDD \u0111\u1EE3i +common.assignedIssue=V\u1EA5n \u0111\u1EC1 ph\u1EE5 tr\u00E1ch +common.delaying=\u0111ang tr\u00EC ho\u00E3n +common.progressByMember=t\u1ED1c \u0111\u1ED9 theo t\u1EEBng th\u00E0nh vi\u00EAn +common.myIssueStatus=Hi\u1EC7n tr\u1EA1ng V\u1EA5n \u0111\u1EC1 c\u1EE7a t\u00F4i +common.division=s\u1EF1 ph\u00E2n chia +common.complete=Ho\u00E0n th\u00E0nh +common.issueManagementProject=D\u1EF1 \u00E1n qu\u1EA3n l\u00FD v\u1EA5n \u0111\u1EC1 +common.projectList=Danh s\u00E1ch d\u1EF1 \u00E1n +common.projectAdmin=Ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n +common.projectTeamMember=Th\u00E0nh vi\u00EAn d\u1EF1 \u00E1n +common.wait=b\u00E1t t\u00F4 +common.progress=Ti\u1EBFn h\u00E0nh +common.end=K\u1EBFt th\u00FAc +common.intoTheSystemIssueManagementProject=L\u00E0 m\u1ED9t d\u1EF1 \u00E1n qu\u1EA3n l\u00FD c\u00E1c v\u1EA5n \u0111\u1EC1 c\u01A1 b\u1EA3n \u0111\u01B0\u1EE3c cung c\u1EA5p trong h\u1EC7 th\u1ED1ng. +common.create=T\u1EA1o +common.reProgress=s\u1EF1 thi h\u00E0nh l\u1EA1i +common.check=s\u1EF1 x\u00E1c nh\u1EADn +common.approval=s\u1EF1 th\u1EEBa nh\u1EADn +common.noApproval=Kh\u00F4ng th\u1EC3 ch\u1EA5p thu\u1EADn \u0111\u01B0\u1EE3c +common.issueStatusList=danh m\u1EE5c tr\u1EA1ng th\u00E1i v\u1EA5n \u0111\u1EC1 +common.issueStatus=t\u00ECnh tr\u1EA1ng c\u1EE7a v\u1EA5n \u0111\u1EC1 +common.statusProperties=\u0111\u00E0o t\u1EA1o tr\u1EA1ng th\u00E1i +common.color=m\u00E0u s\u1EAFc +common.workflow=Quy tr\u00ECnh l\u00E0m vi\u1EC7c +common.workflowList=danh m\u1EE5c workbook +common.btsWorkflow=Quy tr\u00ECnh l\u00E0m vi\u1EC7c BTS +common.rmsWorkflow=Quy tr\u00ECnh l\u00E0m vi\u1EC7c RMS +common.tcmWorkflow=Quy tr\u00ECnh l\u00E0m vi\u1EC7c TCM +common.usedToManageThisWorkflow=L\u00E0 workbook s\u1EED d\u1EE5ng \u0111\u1EC3 qu\u1EA3n l\u00FD c\u00F4ng vi\u1EC7c. +common.userToManageRequirementsThisWorkflow=L\u00E0 workbook s\u1EED d\u1EE5ng \u0111\u1EC3 qu\u1EA3n l\u00FD n\u1ED9i dung y\u00EAu c\u1EA7u. +common.userToManageTestCasesThisWorkflow=L\u00E0 workbook s\u1EED d\u1EE5ng \u0111\u1EC3 qu\u1EA3n l\u00FD case ki\u1EC3m tra. +common.stringField=n\u00FAt b\u1EA7n +common.singleSelectionField=Ch\u1EEF vi\u1EBFt t\u1EAFt c\u1EE7a m\u1ED9t ng\u01B0\u1EDDi +common.multipleSelectionField=c\u1EA7n nhi\u1EC1u l\u1EF1a ch\u1ECDn +common.customField=Tr\u01B0\u1EDDng \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng +common.customFieldList=Danh s\u00E1ch ng\u01B0\u1EDDi d\u00F9ng +common.fieldType=Lo\u1EA1i tr\u01B0\u1EDDng +common.bug=l\u1EDBp v\u00E1ng +common.improvement=s\u1EF1 c\u1EA3i thi\u1EC7n +common.requirement=h\u1EA1ng m\u1EE5c y\u00EAu c\u1EA7u +common.testcase=tr\u01B0\u1EDDng h\u1EE3p ki\u1EC3m tra +common.issueTypeList=h\u1EA1ng m\u1EE5c t\u00ECm ki\u1EBFm +common.excelDownloadNotPossibleExcludedFromTheWorkspace=Kh\u00F4ng th\u1EC3 quay selfie m\u00E0 kh\u00F4ng c\u00F3 ng\u01B0\u1EDDi tham gia v\u00E0o kh\u00F4ng gian l\u00E0m vi\u1EC7c. +common.sWorkspace=Kh\u00F4ng gian l\u00E0m vi\u1EC7c c\u1EE7a +common.few= S\u1ED1 +common.createIssue=t\u1EA1o n\u00EAn m\u1ED9t v\u1EA5n \u0111\u1EC1 +common.updateIssue=thay \u0111\u1ED5i v\u1EA5n \u0111\u1EC1 +common.deleteIssue=x\u00F3a b\u1ECF v\u1EA5n \u0111\u1EC1 +common.updateTitle=T\u1EF1a \u0111\u1EC1 \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.updateContent=N\u1ED9i dung \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.updateProject=D\u1EF1 \u00E1n \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.updateSeverity=T\u1EA7m quan tr\u1ECDng \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.updatePriority=Th\u1EE9 t\u1EF1 \u01B0u ti\u00EAn \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.updateStatus=Tr\u1EA1ng th\u00E1i \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.updateWorkflowNotExist=T\u00ECnh tr\u1EA1ng kh\u00F4ng t\u1ED3n t\u1EA1i trong workbook \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i, v\u1EA5n \u0111\u1EC1 \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.updateIssueType=V\u1EA5n \u0111\u1EC1 \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.updatePeriod=Th\u1EDDi gian \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +common.remainIssue=ch\u1EE7 ngh\u0129a cao c\u1EA5p diff --git a/src/main/webapp/WEB-INF/i18n/mail_en_US.properties b/src/main/webapp/WEB-INF/i18n/mail_en_US.properties new file mode 100644 index 0000000..889ab10 --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/mail_en_US.properties @@ -0,0 +1,166 @@ + +workspace.join.title=Welcome to [OWL ITS] membership. +workspace.join.01=Thank you for joining OWL ITS. You can use a variety of features provided by OWL ITS. +workspace.expired=OWL ITS workspace has expired. +workspace.expiredAlarm=OWL ITS Workspace Usage is 3 days left. +workspace.subscription=Your subscription has expired. +workspace.expiration.date=Expiration date +workspace.regular.payment.request=If you do not have a regular payment request, please apply for a regular payment. +workspace.invitation.card=invitation card +workspace.hello=Hello. +workspace.asked.you=asked you +workspace.invited.to=You are invited to +workspace.click.button=Click the button below to sign up to join the invited workspace. OWL ITS is an issue-based project management tool that can manage and collaborate on all issues. +workspace.invited.join=You can join the invited workspace by clicking the button below. +workspace.capacity.remove=Free up capacity by removing unnecessary files or adding users. +workspace.storage.capacity.user=5GB of storage capacity per user +workspace.storage.space=OWL ITS workspace is out of storage space. +workspace.storage.space.cannot.upload=There is a lack of storage space. If there is not enough storage space, you cannot upload the file. +workspace.workspace=[work space] +workspace.total.storage=Total Storage Capacity +workspace.current.usage=Current Usage +workspace.capacity.remain=Capacity Remaining +workspace.add.capacity.method=Add Capacity Method +workspace.maximum.number.user=Maximum number of users exceeded in OWL ITS workspace. +workspace.maximum.number.user.invite.inactive=Invitees are inactive because the maximum number of active users has been exceeded. +workspace.maximum.number.active=Maximum number of active +workspace.number.inactive=Number of inactive users +workspace.user.add.payment=User add payment is required to change an inactive user to an active user. +workspace.shortcut=OWL ITS Shortcut +workspace.check.user.id=Please check your ID. +workspace.user.id=ID +workspace.subscription.date=subscription date + + + +user.search.password.title=A [OWL ITS] temporary password has been issued. + +user.withDraw.title=[OWL ITS] withdrawal has been completed. + +regular.payment.title=[OWL ITS] Periodic Payment has been completed. + +regular.payment.cancel.title=[OWL ITS] Periodic Payment Termination has been completed. + +regular.payment.cancel.accounting.manager.title=[OWL ITS] The following users have completed their regular payment cancellation: I'd like to ask you for a refund. + +regular.payment.modify.title=[OWL ITS] You will be notified of changes to regular payments. + +regular.payment.termination.guide=Regular Payment Termination Notice +regular.payment.termination.complete=Your application for a regular payment cancellation has been completed. +regular.payment.user=Number of users +regular.payment.workspace=service storage space +regular.payment.service.end=Service End Date +regular.payment.service.remain.day=remaining service period +regular.payment.service.shortcut.workspace=Shortcut to workspace +regular.payment.service.service.end.date=Two weeks after the end of the service <span style="color: #D625;font-weight:old;">All data in the workspace will be deleted</span>. Before the end date, please back up the data you need. +regular.payment.service.day=service period +regular.payment.date=Payment date +regular.payment.information=Regular payment details information +regular.payment.service.information=service information +regular.payment.next.date=Next Regular Payment Date +regular.payment.amount=Payment amount +regular.payment.using.service=Thank you for using OWL ITS service. +regular.payment.complete=Your application for OWL ITS regular payment has been completed. +regular.payment.person=person +regular.payment.won=won +regular.payment.day=st +regular.payment.change.notice=Regular Payment Change Notice +regular.payment.change.payment=Regular payment to announce changes and payment application for change has been completed. +regular.payment.service.charge=service charge +regular.payment.mean.payment=means of payment +regular.payment.credit.card=Credit card +regular.payment.application.time=Application time +regular.payment.apply.payment=Apply from regular payment +regular.payment.automatically=The service will be automatically paid and billed on the due date of the regular payment. If there are any changes to the service you are using, please make sure to change it before the regular payment date. + +workspace.inviteNewUser.title=You are invited to [OWL ITS]. + +workspace.maxUserExcess.title=Maximum number of users exceeded in [OWL ITS] workspace. + +workspace.inviteSystemUser.title=[OWL ITS] You are invited to another user's workspace. + +workspace.expire.title=[OWL ITS] Workspace Expires. + +workspace.expire.alarm.title=[OWL ITS] Workspace Usage is 3 days away. + +project.default.exclude.title=You have been excluded from the [OWL ITS] project. + +project.default.include.title=I was part of the [OWL ITS] project. + +project.manager.exclude.title=You have been excluded from the [OWL ITS] project manager. + +project.manager.include.title=[OWL ITS] became a project manager. + +project.manager.exclude.default.include.title=Participation role changed from [OWL ITS] Project Manager to end user. + +project.default.exclude.manager.include.title=[OWL ITS] Participation role changed from end user to project manager. +project.default.project.manager.change=The Join as Project Manager role has been changed from OWL ITS End User. +project.default.project.user.change=The Join as Project Manager role has been changed from the end user. +project.default.workspaceName=Work space name +project.default.date=Date +project.default.projectName=Project name +project.default.projectAdmin=Project Manager +project.default.project.manager=Project participation was excluded by the project manager. +project.default.project.delete=You have been excluded from the OWL ITS project. +project.default.project.join=I was part of the OWL ITS project. +project.default.project.manager.join=You have been involved in a project by the project manager. +project.default.project.manager.user=Participation role changed from OWL ITS Project Manager to End User. +project.default.project.manager.user.change=The Engagement role has been changed from Project Manager to End User. +project.default.project.manager.delete=You have been excluded from the OWL ITS project manager. +project.default.project.manager.exclude.delete=You have been excluded from the project manager. +project.default.project.manager.include.manager=I became an OWL ITS project manager. +project.include.manager=I became a project manager. + +issue.add.title=Issue [OWL ITS] is registered. +issue.add.occurrence=Time of occurrence time +issue.add.registerIssue=OWL ITS Issue Registered +issue.add.new=A new issue has been created. +issue.add.issueName=Name of issue +issue.add.content=content +issue.add.issueType=Issue Type +issue.add.issueStatus=Issue Status +issue.add.assignee=The person in charge +issue.add.schedule=Schedule +issue.add.priority=Priority +issue.add.severity=Severity +issue.add.project=Project +issue.add.projectKey=Project Key +issue.add.register=Registered person +issue.add.customField=custom field +issue.add.attachedFile=The attached file +issue.add.deleteIssue=The OWL ITS issue has been deleted. +issue.add.delete=Issue has been deleted +issue.remove.title=Issue [OWL ITS] has been deleted. +issue.send.title=[OWL ITS] Please check the issue. +user.join.statistics.title=[OWL ITS] This is your daily subscription information. +total.statistics.title=[OWL ITS] This is a daily system status update. + + + + + + +workspace.inviteSystemUser.01=You have been invited to a new workspace from OWL ITS. +workspace.inviteNewUser.01=Invite to Issue Management System OWL ITS If you sign up with an invitation email account, you will automatically join the workspace/project that issued the invitation. +workspace.maxUserExcess.01=Maximum user exceeded for managed workspace. Authorization is required to add a user. +workspace.expire.01=The managed workspace has expired. Approval is required for use. +workspace.out.01=Participation was excluded by the administrator in the following workspace: +project.default.exclude.01=You have been excluded from the project. +project.default.include.01=I was part of the project. +project.manager.exclude.01=You have been excluded from the project's manager. +project.manager.include.01=You have been assigned to a project as an administrator. +project.etc.managerExcludeAndDefaultInclude.01=Participated as a general user after project manager was excluded. +project.etc.defaultExcludeAndManagerInclude.01=You have been designated as the project manager after exclusion from the end user. + +user.return.emailPassword.01=This is a temporary password. + +user.password.guidanceTemporaryPassword=Temporary password issue guidance +user.password.pleaseMakeSureChangeYourPassword=We will issue you a temporary password to change your OWL ITS account password.Please make sure to change your password after logging in. +user.password.account=Account +user.password.temporaryPassword=temporary password +user.password.login=OWL ITS Login +user.hello=Hello, everyone. +user.withDraw.guide=notice of withdrawal from membership +user.withDraw.success=Your request to sign out of the OWL ITS membership has been successfully completed.<br/><br/>Thank you for using it in the whole time.<br>I will try harder so that you can visit again. + +common.common.sendMail=This email is for outgoing only. diff --git a/src/main/webapp/WEB-INF/i18n/mail_ja_JP.properties b/src/main/webapp/WEB-INF/i18n/mail_ja_JP.properties new file mode 100644 index 0000000..258802f --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/mail_ja_JP.properties @@ -0,0 +1,165 @@ + +workspace.join.title=[OWL ITS]\u4F1A\u54E1\u52A0\u5165\u3092\u6B53\u8FCE\u3057\u307E\u3059\u3002 +workspace.join.01=OWL ITS\u306B\u3054\u52A0\u5165\u3044\u305F\u3060\u304D,\u8AA0\u306B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002 OWL ITS\u3067\u63D0\u4F9B\u3059\u308B\u69D8\u3005\u306A\u6A5F\u80FD\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +workspace.expired=OWL ITS \u696D\u52D9\u7A7A\u9593\u4F7F\u7528\u671F\u9593\u304C\u6E80\u4E86\u3057\u307E\u3057\u305F\u3002 +workspace.expiredAlarm=OWL ITS \u696D\u52D9\u7A7A\u9593\u306E\u4F7F\u7528\u671F\u9593\u304C 3\u65E5\u6B8B\u308A\u307E\u3057\u305F\u3002 +workspace.subscription=\u4F7F\u7528\u671F\u9593\u304C\u6E80\u4E86\u3057\u307E\u3057\u305F\u3002 +workspace.expiration.date=\u6E80\u4E86\u65E5 +workspace.regular.payment.request=\u5B9A\u671F\u6C7A\u6E08\u304C\u7533\u8ACB\u3055\u308C\u3066\u3044\u306A\u3044\u304A\u5BA2\u69D8\u306F\u5B9A\u671F\u6C7A\u6E08\u3092\u7533\u8ACB\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +workspace.invitation.card=\u62DB\u5F85\u72B6 +workspace.hello=\u304A\u306F\u3088\u3046\u3054\u3056\u3044\u307E\u3059 +workspace.asked.you=\u3042\u306A\u305F\u304C\u304A\u5BA2\u69D8\u3092 +workspace.invited.to=\u306B\u62DB\u5F85\u3057\u307E\u3057\u305F\u3002 +workspace.click.button=\u4E0B\u8A18\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u4F1A\u54E1\u52A0\u5165\u3059\u308B\u3068\u62DB\u5F85\u3055\u308C\u305F\u696D\u52D9\u7A7A\u9593\u306B\u53C2\u52A0\u3067\u304D\u307E\u3059\u3002 OWL ITS \u306F,\u30A4\u30B7\u30E5\u30FC\u30D9\u30FC\u30B9\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30DE\u30CD\u30B8\u30E1\u30F3\u30C8\u30C4\u30FC\u30EB\u3068\u3057\u3066,\u3042\u3089\u3086\u308B\u30A4\u30B7\u30E5\u30FC\u3092\u7BA1\u7406\u3057\u5354\u696D\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +workspace.invited.join=\u4E0B\u8A18\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057,\u62DB\u5F85\u3055\u308C\u305F\u696D\u52D9\u30B9\u30DA\u30FC\u30B9\u306B\u53C2\u52A0\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +workspace.capacity.remove=\u4E0D\u8981\u306A\u30D5\u30A1\u30A4\u30EB\u3092\u9664\u53BB\u3057\u305F\u308A,\u30E6\u30FC\u30B6\u30FC\u3092\u8FFD\u52A0\u3057\u3066\u5BB9\u91CF\u3092\u78BA\u4FDD\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +workspace.storage.capacity.user=\u30E6\u30FC\u30B61\u4EBA\u5F53\u305F\u308A\u306E\u30B9\u30C8\u30EC\u30FC\u30B8\u5BB9\u91CF5GB\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002 +workspace.storage.space=OWL ITS \u696D\u52D9\u7A7A\u9593\u306B\u4FDD\u5B58\u30B9\u30DA\u30FC\u30B9\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002 +workspace.storage.space.cannot.upload=\u4FDD\u5B58\u30B9\u30DA\u30FC\u30B9\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002 \u4FDD\u5B58\u30B9\u30DA\u30FC\u30B9\u304C\u8DB3\u308A\u306A\u3051\u308C\u3070\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u304C\u3067\u304D\u307E\u305B\u3093\u3002 +workspace.workspace=[\u696D\u52D9\u7A7A\u9593] +workspace.total.storage=\u30B9\u30C8\u30EC\u30FC\u30B8\u7DCF\u5BB9\u91CF +workspace.current.usage=\u73FE\u5728\u4F7F\u7528\u91CF +workspace.capacity.remain=\u6B8B\u3063\u305F\u5BB9\u91CF +workspace.add.capacity.method=\u5BB9\u91CF\u8FFD\u52A0\u65B9\u6CD5 +workspace.maximum.number.user=OWL ITS \u696D\u52D9\u7A7A\u9593\u306B\u6700\u5927\u30E6\u30FC\u30B6\u30FC\u6570\u304C\u8D85\u904E\u3057\u307E\u3057\u305F\u3002 +workspace.maximum.number.user.invite.inactive=\u6700\u5927\u6D3B\u6027\u53EF\u80FD\u306A\u30E6\u30FC\u30B6\u30FC\u6570\u304C\u8D85\u904E\u3057,\u62DB\u304B\u308C\u305F\u30E6\u30FC\u30B6\u30FC\u304C\u4E0D\u6D3B\u6027\u72B6\u614B\u3067\u3059\u3002 +workspace.maximum.number.active=\u6700\u5927\u6D3B\u6027\u30E6\u30FC\u30B6\u30FC\u6570 +workspace.number.inactive=\u975E\u6D3B\u6027\u30E6\u30FC\u30B6\u6570 +workspace.user.add.payment=\u975E\u6D3B\u6027\u30E6\u30FC\u30B6\u30FC\u3092\u6D3B\u6027\u30E6\u30FC\u30B6\u30FC\u306B\u5909\u66F4\u3059\u308B\u305F\u3081\u306B\u306F,\u30E6\u30FC\u30B6\u30FC\u306E\u8FFD\u52A0\u6C7A\u6E08\u304C\u5FC5\u8981\u3067\u3059\u3002 +workspace.shortcut=OWL ITS \u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u3078 +workspace.check.user.id=\u52A0\u5165\u3057\u305FID\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +workspace.user.id=\u30A2\u30A4\u30C7\u30A3 +workspace.subscription.date=\u52A0\u5165\u65E5\u6642 + + + +user.search.password.title=[OWL ITS] \u4E00\u6642\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u767A\u884C\u3055\u308C\u307E\u3057\u305F\u3002 + +user.withDraw.title=[OWL ITS] \u8131\u9000\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 + +regular.payment.title=[OWL ITS] \u5B9A\u671F\u6C7A\u6E08\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 + +regular.payment.cancel.title=[OWL ITS] \u5B9A\u671F\u6C7A\u6E08\u89E3\u9664\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 + +regular.payment.cancel.accounting.manager.title=[OWL ITS] \u6B21\u306E\u30E6\u30FC\u30B6\u306E\u5B9A\u671F\u6C7A\u6E08\u306E\u89E3\u7D04\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 \u6255\u3044\u623B\u3057\u8981\u8ACB\u3057\u307E\u3059\u3002 + +regular.payment.modify.title=[OWL ITS] \u5B9A\u671F\u6C7A\u6E08\u306E\u5909\u66F4\u4E8B\u9805\u3092\u304A\u77E5\u3089\u305B\u3044\u305F\u3057\u307E\u3059\u3002 + +regular.payment.termination.guide=\u5B9A\u671F\u6C7A\u6E08\u89E3\u7D04\u6848\u5185 +regular.payment.termination.complete=\u5B9A\u671F\u6C7A\u6E08\u89E3\u7D04\u306E\u7533\u3057\u8FBC\u307F\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 +regular.payment.user=\u30E6\u30FC\u30B6\u30FC\u6570 +regular.payment.workspace=\u30B5\u30FC\u30D3\u30B9\u4FDD\u5B58\u7A7A\u9593 +regular.payment.service.end=\u30B5\u30FC\u30D3\u30B9\u7D42\u4E86\u65E5 +regular.payment.service.remain.day=\u6B8B\u308A\u306E\u4F7F\u7528\u671F\u9593 +regular.payment.service.shortcut.workspace=\u696D\u52D9\u7A7A\u9593\u76F4\u3057 +regular.payment.service.service.end.date=\u30B5\u30FC\u30D3\u30B9\u7D42\u4E86\u65E5\u304B\u30892\u9031\u9593\u304C\u7D4C\u3064\u3068<span style='color:#D62525;font-weight:bold;>\u696D\u52D9\u7A7A\u9593\u306E\u3059\u3079\u3066\u306E\u30C7\u30FC\u30BF\u304C\u524A\u9664</span>\u3055\u308C\u307E\u3059\u3002 \u7D42\u4E86\u65E5\u4EE5\u524D\u306B<span style='color:#D62525;font-weight:bold;'>\u5FC5\u8981\u306A\u30C7\u30FC\u30BF\u3092\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7</span>\u3057\u3066\u304A\u3044\u3066\u304F\u3060\u3055\u3044\u3002 +regular.payment.service.day=\u30B5\u30FC\u30D3\u30B9\u671F\u9593 +regular.payment.date=\u6C7A\u6E08\u65E5\u6642 +regular.payment.information=\u5B9A\u671F\u6C7A\u6E08\u6848\u5185 +regular.payment.service.information=\u30B5\u30FC\u30D3\u30B9\u60C5\u5831 +regular.payment.next.date=\u6B21\u306E\u5B9A\u671F\u6C7A\u6E08\u65E5 +regular.payment.amount=\u6C7A\u6E08\u91D1\u984D +regular.payment.using.service=OWL ITS \u30B5\u30FC\u30D3\u30B9\u3092\u3054\u5229\u7528\u3044\u305F\u3060\u304D\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002 +regular.payment.complete=\u304A\u5BA2\u69D8\u306E\u3054\u7533\u8ACB\u3044\u305F\u3060\u3044\u305FOWL ITS\u5B9A\u671F\u6C7A\u6E08\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 +regular.payment.person=\u540D +regular.payment.won=\u30A6\u30A9\u30F3 +regular.payment.day=\u65E5 +regular.payment.change.notice=\u5B9A\u671F\u6C7A\u6E08\u5909\u66F4\u6848\u5185 +regular.payment.change.payment=\u6C7A\u6E08\u306E\u5909\u66F4\u7533\u8ACB\u304C\u5B8C\u4E86\u3057\u3001\u5B9A\u671F\u6C7A\u6E08\u306E\u5909\u66F4\u4E8B\u9805\u3092\u304A\u77E5\u3089\u305B\u3044\u305F\u3057\u307E\u3059\u3002 +regular.payment.service.charge=\u30B5\u30FC\u30D3\u30B9\u6599\u91D1 +regular.payment.mean.payment=\u6C7A\u6E08\u624B\u6BB5 +regular.payment.credit.card=\u30AF\u30EC\u30B8\u30C3\u30C8\u30AB\u30FC\u30C9 +regular.payment.application.time=\u9069\u7528\u6642\u671F +regular.payment.apply.payment=\u5B9A\u671F\u6C7A\u6E08\u304B\u3089\u9069\u7528 +regular.payment.automatically=\u5B9A\u671F\u6C7A\u6E08\u4E88\u5B9A\u65E5\u306B\u81EA\u52D5\u7684\u306B\u30B5\u30FC\u30D3\u30B9\u304C\u6C7A\u6E08\u3055\u308C\u8ACB\u6C42\u3055\u308C\u307E\u3059\u3002 \u5229\u7528\u4E2D\u306E\u30B5\u30FC\u30D3\u30B9\u306B\u5909\u52D5\u4E8B\u9805\u304C\u3042\u308C\u3070\u5B9A\u671F\u6C7A\u6E08\u65E5\u306E\u524D\u306B\u5FC5\u305A\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + +workspace.inviteNewUser.title=[OWL ITS]\u306B\u62DB\u5F85\u3055\u308C\u307E\u3057\u305F\u3002 + +workspace.maxUserExcess.title=[OWL ITS] \u696D\u52D9\u7A7A\u9593\u306B\u6700\u5927\u30E6\u30FC\u30B6\u30FC\u6570\u304C\u8D85\u904E\u3057\u307E\u3057\u305F\u3002 + +workspace.inviteSystemUser.title=[OWL ITS] \u4ED6\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u696D\u52D9\u7A7A\u9593\u306B\u62DB\u5F85\u3055\u308C\u307E\u3057\u305F\u3002 + +workspace.expire.title=[OWL ITS] \u696D\u52D9\u7A7A\u9593\u4F7F\u7528\u671F\u9593\u304C\u6E80\u4E86\u3057\u307E\u3059\u3002 + +workspace.expire.alarm.title=[OWL ITS]\u3001\u696D\u52D9\u7A7A\u9593\u306E\u4F7F\u7528\u671F\u9593\u304C 3\u65E5\u6B8B\u308A\u307E\u3057\u305F\u3002 + +project.default.exclude.title=[OWL ITS] \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304B\u3089\u9664\u5916\u3055\u308C\u307E\u3057\u305F\u3002 + +project.default.include.title=[OWL ITS]\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u53C2\u52A0\u3057\u307E\u3057\u305F\u3002 + +project.manager.exclude.title=[OWL ITS] \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304B\u3089\u9664\u304B\u308C\u307E\u3057\u305F\u3002 + +project.manager.include.title=[OWL ITS] \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30DE\u30CD\u30FC\u30B8\u30E3\u306B\u306A\u308A\u307E\u3057\u305F\u3002 + +project.manager.exclude.default.include.title=[OWL ITS] \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304B\u3089\u4E00\u822C\u30E6\u30FC\u30B6\u3078\u306E\u53C2\u753B\u5F79\u5272\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 + +project.default.exclude.manager.include.title=[OWL ITS] \u4E00\u822C\u30E6\u30FC\u30B6\u30FC\u304B\u3089\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u306B\u53C2\u52A0\u5F79\u5272\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.project.manager.change=OWL ITS \u4E00\u822C\u30E6\u30FC\u30B6\u304B\u3089\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u306B\u53C2\u52A0\u5F79\u5272\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.project.user.change=\u4E00\u822C\u30E6\u30FC\u30B6\u304B\u3089\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u306B\u53C2\u753B\u3059\u308B\u5F79\u5272\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.workspaceName=\u696D\u52D9\u7A7A\u9593\u540D +project.default.date=\u65E5\u6642 +project.default.projectName=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D +project.default.projectAdmin=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30DE\u30CD\u30FC\u30B8\u30E3 +project.default.project.manager=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u306B\u3088\u3063\u3066\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u53C2\u52A0\u304C\u9664\u5916\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.project.delete=OWL ITS \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304B\u3089\u9664\u5916\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.project.join=OWL ITS \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u53C2\u52A0\u3057\u307E\u3057\u305F\u3002 +project.default.project.manager.join=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u306B\u3088\u308A\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u53C2\u52A0\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.project.manager.user=OWL ITS \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304B\u3089\u4E00\u822C\u30E6\u30FC\u30B6\u3078\u53C2\u52A0\u5F79\u5272\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.project.manager.user.change=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304B\u3089\u4E00\u822C\u30E6\u30FC\u30B6\u3078\u306E\u53C2\u753B\u5F79\u5272\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.project.manager.delete=OWL ITS \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304B\u3089\u9664\u304B\u308C\u307E\u3057\u305F\u3002 +project.default.project.manager.exclude.delete=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304B\u3089\u306F\u305A\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.project.manager.include.manager=OWL ITS \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u306B\u306A\u308A\u307E\u3057\u305F\u3002 +project.include.manager=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30DE\u30CD\u30FC\u30B8\u30E3\u306B\u306A\u308A\u307E\u3057\u305F\u3002 + +issue.add.title=[OWL ITS] \u30A4\u30B7\u30E5\u30FC\u304C\u767B\u9332\u3055\u308C\u307E\u3057\u305F\u3002 +issue.add.occurrence=\u767A\u751F\u6642\u9593 +issue.add.registerIssue=OWL ITS \u554F\u984C\u304C\u767B\u9332\u3055\u308C\u307E\u3057\u305F\u3002 +issue.add.new=\u65B0\u3057\u3044\u30A4\u30B7\u30E5\u30FC\u304C\u751F\u6210\u3055\u308C\u307E\u3057\u305F\u3002 +issue.add.issueName=\u30A4\u30B7\u30E5\u30FC\u540D +issue.add.content=\u5185\u5BB9 +issue.add.issueType=\u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7 +issue.add.issueStatus=\u4E89\u70B9\u72B6\u614B +issue.add.assignee=\u62C5\u5F53\u8005 +issue.add.schedule=\u65E5\u7A0B +issue.add.priority=\u91CD\u8981\u5EA6 +issue.add.severity=\u512A\u5148\u9806\u4F4D +issue.add.project=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 +issue.add.projectKey=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u00B7\u30AD\u30FC +issue.add.register=\u767B\u9332\u8005 +issue.add.customField=\u4F7F\u7528\u8005\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9 +issue.add.attachedFile=\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB +issue.add.deleteIssue=OWL ITS \u554F\u984C\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002 +issue.add.delete=\u8A71\u984C\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002 +issue.remove.title=[OWL ITS] \u30A4\u30B7\u30E5\u30FC\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002 +issue.send.title=[OWL ITS] \u30A4\u30B7\u30E5\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +user.join.statistics.title=[OWL ITS] 1\u65E5\u306E\u4F7F\u7528\u8005\u306E\u52A0\u5165\u60C5\u5831\u3092\u304A\u77E5\u3089\u305B\u3057\u307E\u3059\u3002 +total.statistics.title=[OWL ITS] \u65E5\u4ED8\u30B7\u30B9\u30C6\u30E0\u306E\u73FE\u72B6\u60C5\u5831\u3092\u304A\u77E5\u3089\u305B\u3044\u305F\u3057\u307E\u3059\u3002 + + + + + +workspace.inviteSystemUser.01=\u4F7F\u7528\u3057\u3066\u3044\u308BOWL ITS\u3067\u65B0\u898F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u62DB\u5F85\u3055\u308C\u307E\u3057\u305F\u3002 +workspace.inviteNewUser.01=\u30A4\u30B7\u30E5\u30FC\u7BA1\u7406\u30B7\u30B9\u30C6\u30E0OWL ITS \u306B\u62DB\u5F85\u3057\u307E\u3059\u3002 \u62DB\u5F85\u3055\u308C\u305F\u96FB\u5B50\u30E1\u30FC\u30EB\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u4F1A\u54E1\u52A0\u5165\u3092\u3059\u308B\u3068,\u62DB\u5F85\u72B6\u3092\u767A\u7D66\u3057\u305F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9/\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u81EA\u52D5\u7684\u306B\u53C2\u52A0\u3057\u307E\u3059\u3002 +workspace.maxUserExcess.01=\u7BA1\u7406\u3059\u308B\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u6700\u5927\u30E6\u30FC\u30B6\u304C\u8D85\u904E\u3057\u307E\u3057\u305F\u3002 \u4F7F\u7528\u8005\u3092\u8FFD\u52A0\u3059\u308B\u306B\u306F\u6C7A\u6E08\u304C\u5FC5\u8981\u3067\u3059\u3002 +workspace.expire.01=\u7BA1\u7406\u3059\u308B\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u4F7F\u7528\u671F\u9593\u304C\u6E80\u4E86\u3057\u307E\u3057\u305F\u3002 \u4F7F\u7528\u306E\u305F\u3081\u306B\u306F\u6C7A\u88C1\u304C\u5FC5\u8981\u3067\u3059\u3002 +workspace.out.01=\u6B21\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u304A\u3044\u3066,\u7BA1\u7406\u8005\u306B\u3088\u3063\u3066\u53C2\u52A0\u304C\u9664\u5916\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.exclude.01=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304B\u3089\u9664\u5916\u3055\u308C\u307E\u3057\u305F\u3002 +project.default.include.01=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u53C2\u52A0\u3057\u307E\u3057\u305F\u3002 +project.manager.exclude.01=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u304B\u3089\u9664\u304B\u308C\u307E\u3057\u305F\u3002 +project.manager.include.01=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7BA1\u7406\u8005\u306B\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F\u3002 +project.etc.managerExcludeAndDefaultInclude.01=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u3092\u9664\u3044\u3066\u304B\u3089\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\u3068\u3057\u3066\u53C2\u52A0\u3057\u307E\u3057\u305F\u3002 +project.etc.defaultExcludeAndManagerInclude.01=\u4E00\u822C\u30E6\u30FC\u30B6\u304B\u3089\u9664\u304B\u308C\u305F\u5F8C,\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u306B\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F\u3002 + +user.return.emailPassword.01=\u81E8\u6642\u6697\u8A3C\u756A\u53F7\u3067\u3059\u3002 + +user.password.guidanceTemporaryPassword=\u81E8\u6642\u306E\u6697\u8A3C\u756A\u53F7\u767A\u7D66\u6848\u5185 +user.password.pleaseMakeSureChangeYourPassword=\u304A\u5BA2\u69D8\u306EOWL ITS \u30A2\u30AB\u30A6\u30F3\u30C8\u30D1\u30B9\u30EF\u30FC\u30C9\u5909\u66F4\u306E\u305F\u3081,\u81E8\u6642\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u767A\u7D66\u3044\u305F\u3057\u307E\u3059\u3002\u30ED\u30B0\u30A4\u30F3\u5F8C,\u5FC5\u305A\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +user.password.account=\u52D8\u5B9A +user.password.temporaryPassword=\u81E8\u6642\u6697\u8A3C\u756A\u53F7 +user.password.login=OWL ITS \u30ED\u30B0\u30A4\u30F3 +user.hello=\u3042\u306A\u305F\u69D8,\u3053\u3093\u306B\u3061\u306F\u3002 +user.withDraw.guide=\u4F1A\u54E1\u9000\u4F1A\u6848\u5185 +user.withDraw.success=\u4F1A\u54E1\u69D8\u304C\u8981\u8ACB\u3055\u308C\u305FOWL ITS\u4F1A\u54E1\u8131\u9000\u304C\u6210\u529F\u7684\u306B\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002<br/><br/>\u4ECA\u307E\u3067\u3054\u5229\u7528\u3044\u305F\u3060\u304D\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002<br>\u307E\u305F\u8A2A\u554F\u3067\u304D\u308B\u3088\u3046\u306B\u4E00\u5C64\u52AA\u529B\u3057\u307E\u3059\u3002 + +common.common.sendMail=\u672C\u30E1\u30FC\u30EB\u306F\u767A\u4FE1\u5C02\u7528\u30E1\u30FC\u30EB\u3067\u3059\u3002 diff --git a/src/main/webapp/WEB-INF/i18n/mail_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/mail_ko_KR.properties new file mode 100644 index 0000000..a0be3be --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/mail_ko_KR.properties @@ -0,0 +1,167 @@ +workspace.expire.title=OWL ITS \uC5C5\uBB34\uACF5\uAC04\uC758 \uC0AC\uC6A9 \uAE30\uAC04\uC774 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +workspace.expire.msg1=<span style="font-size:24px;font-weight:bold;">OWL ITS \uC5C5\uBB34 \uACF5\uAC04 <br/>\uC0AC\uC6A9 \uAE30\uAC04\uC774 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.</span><br/><br/> +workspace.expire.msg2=<span style="color:#4B72FA;font-weight:bold">{0}</span>\uB2D8, OWL ITS\uB97C \uC774\uC6A9\uD574 \uC8FC\uC154\uC11C \uAC10\uC0AC\uD569\uB2C8\uB2E4.<br/> +workspace.expire.msg3=<span style="color:#4B72FA;font-weight:bold">[{0}]</span>\uC5C5\uBB34 \uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04\uC774 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.<br/><br/> +workspace.expire.msg4=<span>\uACC4\uC18D \uC0AC\uC6A9\uC744 \uC6D0\uD558\uC2E0\uB2E4\uBA74 OWL ITS \uC815\uAE30\uACB0\uC81C\uB97C \uC2E0\uCCAD\uD574 \uC8FC\uC138\uC694. \uC815\uAE30 \uACB0\uC81C\uB97C \uC2E0\uCCAD\uD558\uC2DC\uBA74 OWL ITS\uC758 \uBAA8\uB4E0 \uAE30\uB2A5\uC744 \uADF8\uB300\uB85C \uC0AC\uC6A9\uD558\uC2E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4.<br/><br/></span> +workspace.expire.msg5=<span style="color:#ff3c00; font-size:12px;">\u203B\uC720\uC758\uC0AC\uD56D<br/>\uC0AC\uC6A9\uAE30\uAC04 \uB9CC\uB8CC 6\uAC1C\uC6D4 \uC774\uD6C4\uC5D0\uB294 \uC5C5\uBB34\uACF5\uAC04\uC5D0 \uC800\uC7A5\uB41C \uB370\uC774\uD130\uAC00 \uBAA8\uB450 \uC0AD\uC81C\uB418\uB2C8 \uC720\uC758\uD574 \uC8FC\uC138\uC694!</span> +workspace.expire.msg6=<div style="color: #9a9a9a; font-size: 12px; font-weight:bold;">\uC5C5\uBB34\uACF5\uAC04 \uB9CC\uB8CC\uC77C</div><div style="font-weight:bold">{0}</div> +workspace.expire.msg7=\uC815\uAE30 \uACB0\uC81C \uC2E0\uCCAD\uD558\uAE30 +workspace.expire.msg8=<span style="font-size:12px;color: #8D929D;">OWL ITS \uC0AC\uC6A9\uC5D0 \uC5B4\uB824\uC6C0\uC774 \uC788\uB2E4\uBA74 <a href="mailto:supportowl@wisestone.kr" style="text-decoration: underline; color: #4B72FA;">supportowl@wisestone.kr</a>\uB85C \uC774\uBA54\uC77C\uC744 \uBCF4\uB0B4\uC8FC\uC138\uC694.</span> +workspace.expire.msg9=\uBCF8 \uBA54\uC77C\uC740 \uBC1C\uC2E0\uC804\uC6A9 \uBA54\uC77C\uC785\uB2C8\uB2E4.<br/><span style="color: #A5A5A5; font-size: 11px;">Copyright \u00A9 WISESTONE CO., Ltd. All Rights Reserved.</span> + + +workspace.join.title=OWL ITS \uAC00\uC785\uC744 \uD658\uC601\uD569\uB2C8\uB2E4. +workspace.join.msg1=<span style="font-size:24px;font-weight:bold;"> OWL ITS \uAC00\uC785\uC744 \uD658\uC601\uD569\uB2C8\uB2E4.</span><br/><br/>\uC548\uB155\uD558\uC138\uC694. <span style="color:#4B72FA;font-weight:bold">{0}</span>\uB2D8! OWL ITS \uAC00\uC785\uC744 \uC9C4\uC2EC\uC73C\uB85C \uD658\uC601\uD569\uB2C8\uB2E4.<br/>OWL ITS\uB97C \uC774\uC6A9\uD558\uBA74 \uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C \uBC1C\uC0DD\uD558\uB294 \uC774\uC288\uB97C \uD6A8\uC728\uC801\uC73C\uB85C \uAD00\uB9AC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +workspace.join.msg2=\uAC00\uC785\uD558\uC2E0 \uC815\uBCF4\uB97C \uD655\uC778\uD574 \uC8FC\uC138\uC694. +workspace.join.msg3=<div style="color: #9a9a9a; font-size: 12px; font-weight:bold;">\uC544\uC774\uB514</div><div style="font-weight:bold">{0}</div> +workspace.join.msg4=<div style="color: #9a9a9a; font-size: 12px; font-weight:bold;">\uAC00\uC785 \uC77C\uC2DC</div><div style="font-weight: bold;">{0}</div> +workspace.join.msg5=\uC9C0\uAE08, OWL ITS\uC5D0 \uB85C\uADF8\uC778\uD574 \uB2E4\uC591\uD55C \uAE30\uB2A5\uC744 \uC0AC\uC6A9\uD574 \uBCF4\uC138\uC694! +workspace.join.msg6=\uC544\uC6B8ITS \uB85C\uADF8\uC778\uD558\uAE30 +workspace.join.msg7=<span style="font-size:12px;color: #8D929D;">OWL ITS \uC0AC\uC6A9\uC5D0 \uC5B4\uB824\uC6C0\uC774 \uC788\uB2E4\uBA74 <a href="mailto:supportowl@wisestone.kr" style="text-decoration: underline; color: #4B72FA;">supportowl@wisestone.kr</a>\uB85C \uC774\uBA54\uC77C\uC744 \uBCF4\uB0B4\uC8FC\uC138\uC694.</span> +workspace.join.msg8=\uBCF8 \uBA54\uC77C\uC740 \uBC1C\uC2E0\uC804\uC6A9 \uBA54\uC77C\uC785\uB2C8\uB2E4.<br/><span style="color: #A5A5A5; font-size: 11px;">Copyright \u00A9 WISESTONE CO., Ltd. All Rights Reserved.</span> + +workspace.expiredAlarm.title=OWL ITS \uC5C5\uBB34\uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04\uC774 \uB9CC\uB8CC\uB420 \uC608\uC815\uC785\uB2C8\uB2E4. +workspace.expiredAlarm.msg1=<span style="font-size:24px;font-weight:bold;">OWL ITS \uC5C5\uBB34 \uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04\uC774<br/><span style="color:#ff3c00; font-weight:bold;">{0}</span>\uC77C \uB0A8\uC558\uC2B5\uB2C8\uB2E4.</span> +workspace.expiredAlarm.msg2=<span style="color:#4B72FA;font-weight:bold">{0}</span>\uB2D8, OWL ITS\uC758 <span style="color:#4B72FA;font-weight:bold">{1}</span> \uC5C5\uBB34\uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04\uC774<span style="color:#ff3c00; font-weight:bold;"> {2}</span>\uC77C \uBC16\uC5D0 \uB0A8\uC9C0 \uC54A\uC558\uC5B4\uC694. +workspace.expiredAlarm.msg3=\uC815\uAE30 \uACB0\uC81C\uB97C \uC2E0\uCCAD\uD558\uC2DC\uBA74 OWL ITS\uC758 \uBAA8\uB4E0 \uAE30\uB2A5\uC744 \uADF8\uB300\uB85C \uC0AC\uC6A9\uD558\uC2E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +workspace.expiredAlarm.msg4=<div style="color: #9a9a9a; font-size: 12px; font-weight:bold;">\uC5C5\uBB34\uACF5\uAC04 \uB9CC\uB8CC \uC608\uC815\uC77C</div><div style="font-weight:bold">{0}</div> +workspace.expiredAlarm,msg5=\uC9C0\uAE08 OWL ITS \uC815\uAE30\uACB0\uC81C\uB97C \uC2E0\uCCAD\uD558\uC2DC\uACE0 \uB2E4\uC591\uD55C \uC774\uC288 \uAD00\uB9AC \uAE30\uB2A5\uC744 \uB9C8\uC74C\uAECF \uC0AC\uC6A9\uD558\uC138\uC694! +workspace.expiredAlarm.msg6=\uC815\uAE30 \uACB0\uC81C \uC2E0\uCCAD\uD558\uAE30 +workspace.expiredAlarm.msg7=<span style="font-size:12px;color: #8D929D;">OWL ITS \uC0AC\uC6A9\uC5D0 \uC5B4\uB824\uC6C0\uC774 \uC788\uB2E4\uBA74 <a href="mailto:supportowl@wisestone.kr" style="text-decoration: underline; color: #4B72FA;">supportowl@wisestone.kr</a>\uB85C \uC774\uBA54\uC77C\uC744 \uBCF4\uB0B4\uC8FC\uC138\uC694.</span> +workspace.expiredAlarm.msg8= \uBCF8 \uBA54\uC77C\uC740 \uBC1C\uC2E0\uC804\uC6A9 \uBA54\uC77C\uC785\uB2C8\uB2E4.<br/><span style="color: #A5A5A5; font-size: 11px;">Copyright \u00A9 WISESTONE CO., Ltd. All Rights Reserved.</span> + + + +workspace.join.01=OWL ITS\uC5D0 \uAC00\uC785\uD574\uC8FC\uC154\uC11C \uAC10\uC0AC\uB4DC\uB9BD\uB2C8\uB2E4. OWL ITS\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uB2E4\uC591\uD55C \uAE30\uB2A5\uB4E4\uC744 \uC0AC\uC6A9\uD558\uC2E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +workspace.expired=OWL ITS \uC5C5\uBB34 \uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04\uC774 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +workspace.expiredAlarm=OWL ITS \uC5C5\uBB34 \uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04\uC774 {0}\uC77C \uB0A8\uC558\uC2B5\uB2C8\uB2E4. +workspace.subscription=\uC0AC\uC6A9 \uAE30\uAC04\uC774 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +workspace.expiration.date=\uB9CC\uB8CC\uC77C +workspace.regular.payment.request=\uC815\uAE30 \uACB0\uC81C\uAC00 \uC2E0\uCCAD\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC740 \uACE0\uAC1D\uB2D8\uAED8\uC11C\uB294 \uC815\uAE30 \uACB0\uC81C\uB97C \uC2E0\uCCAD\uD574\uC8FC\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4. +workspace.invitation.card=\uCD08\uB300\uC7A5 +workspace.hello=\uC548\uB155\uD558\uC138\uC694. +workspace.asked.you=\uB2D8\uC774 \uACE0\uAC1D\uB2D8\uC744 +workspace.invited.to=\uC5D0 \uCD08\uB300\uD558\uC600\uC2B5\uB2C8\uB2E4. +workspace.click.button=\uC544\uB798 \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uC5EC \uD68C\uC6D0\uAC00\uC785\uC744 \uD558\uC2DC\uBA74 \uCD08\uB300\uB41C \uC5C5\uBB34 \uACF5\uAC04\uC5D0 \uCC38\uC5EC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. OWL ITS\uB294 \uC774\uC288 \uAE30\uBC18\uC758 \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC \uD234\uB85C \uBAA8\uB4E0 \uC774\uC288\uB97C \uAD00\uB9AC\uD558\uACE0 \uD611\uC5C5\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +workspace.invited.join=\uC544\uB798 \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uC5EC \uCD08\uB300\uB41C \uC5C5\uBB34 \uACF5\uAC04\uC5D0 \uCC38\uC5EC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +workspace.capacity.remove=\uBD88\uD544\uC694\uD55C \uD30C\uC77C\uC744 \uC81C\uAC70\uD558\uAC70\uB098 \uC0AC\uC6A9\uC790\uB97C \uCD94\uAC00\uD558\uC5EC \uC6A9\uB7C9\uC744 \uD655\uBCF4\uD558\uC138\uC694. +workspace.storage.capacity.user=\uC0AC\uC6A9\uC790 1\uBA85\uB2F9 \uC2A4\uD1A0\uB9AC\uC9C0 \uC6A9\uB7C9 5GB\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4. +workspace.storage.space=OWL ITS \uC5C5\uBB34 \uACF5\uAC04\uC5D0 \uC800\uC7A5 \uACF5\uAC04\uC774 \uBD80\uC871\uD569\uB2C8\uB2E4. +workspace.storage.space.cannot.upload=\uC800\uC7A5 \uACF5\uAC04\uC774 \uBD80\uC871\uD569\uB2C8\uB2E4. \uC800\uC7A5 \uACF5\uAC04\uC774 \uBD80\uC871\uD558\uBA74 \uD30C\uC77C \uC5C5\uB85C\uB4DC\uB97C \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +workspace.workspace=[\uC5C5\uBB34 \uACF5\uAC04] +workspace.total.storage=\uC2A4\uD1A0\uB9AC\uC9C0 \uCD1D \uC6A9\uB7C9 +workspace.current.usage=\uD604\uC7AC \uC0AC\uC6A9 \uB7C9 +workspace.capacity.remain=\uB0A8\uC740 \uC6A9\uB7C9 +workspace.add.capacity.method=\uC6A9\uB7C9 \uCD94\uAC00 \uBC29\uBC95 +workspace.maximum.number.user=OWL ITS \uC5C5\uBB34 \uACF5\uAC04\uC5D0 \uCD5C\uB300 \uC0AC\uC6A9\uC790 \uC218\uAC00 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +workspace.maximum.number.user.invite.inactive=\uCD5C\uB300 \uD65C\uC131 \uAC00\uB2A5\uD55C \uC0AC\uC6A9\uC790 \uC218\uAC00 \uCD08\uACFC\uB418\uC5B4 \uCD08\uB300\uBC1B\uC740 \uC0AC\uC6A9\uC790\uAC00 \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC785\uB2C8\uB2E4. +workspace.maximum.number.active=\uCD5C\uB300 \uD65C\uC131 \uC0AC\uC6A9\uC790 \uC218 +workspace.number.inactive=\uBE44\uD65C\uC131 \uC0AC\uC6A9\uC790\uC218 +workspace.user.add.payment=\uBE44\uD65C\uC131 \uC0AC\uC6A9\uC790\uB97C \uD65C\uC131 \uC0AC\uC6A9\uC790\uB85C \uBCC0\uACBD\uD558\uAE30 \uC704\uD574\uC11C\uB294 \uC0AC\uC6A9\uC790 \uCD94\uAC00 \uACB0\uC81C\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. +workspace.shortcut=OWL ITS \uBC14\uB85C\uAC00\uAE30 +workspace.check.user.id=\uAC00\uC785\uD558\uC2E0 \uC544\uC774\uB514\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694. +workspace.user.id=\uC544\uC774\uB514 +workspace.subscription.date=\uAC00\uC785 \uC77C\uC2DC +user.search.password.title=[OWL ITS] \uC784\uC2DC \uBE44\uBC00\uBC88\uD638\uAC00 \uBC1C\uAE09\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +user.withDraw.title=[OWL ITS] \uD0C8\uD1F4\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +regular.payment.title=[OWL ITS] \uC815\uAE30 \uACB0\uC81C\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +regular.payment.cancel.title=[OWL ITS] \uC815\uAE30 \uACB0\uC81C \uD574\uC9C0\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +regular.payment.cancel.accounting.manager.title=[OWL ITS] \uB2E4\uC74C \uC0AC\uC6A9\uC790\uC758 \uC815\uAE30 \uACB0\uC81C \uD574\uC9C0\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uD658\uBD88 \uC694\uCCAD \uB4DC\uB9BD\uB2C8\uB2E4. +regular.payment.modify.title=[OWL ITS] \uC815\uAE30 \uACB0\uC81C \uBCC0\uACBD \uC0AC\uD56D\uC744 \uC54C\uB824\uB4DC\uB9BD\uB2C8\uB2E4. +regular.payment.termination.guide=\uC815\uAE30 \uACB0\uC81C \uD574\uC9C0 \uC548\uB0B4 +regular.payment.termination.complete=\uC815\uAE30 \uACB0\uC81C \uD574\uC9C0 \uC2E0\uCCAD\uC774 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +regular.payment.user=\uC0AC\uC6A9\uC790 \uC218 +regular.payment.workspace=\uC11C\uBE44\uC2A4 \uC800\uC7A5 \uACF5\uAC04 +regular.payment.service.end=\uC11C\uBE44\uC2A4 \uC885\uB8CC\uC77C +regular.payment.service.use.day=\uC0AC\uC6A9 \uAE30\uAC04 +regular.payment.service.shortcut.workspace=\uC5C5\uBB34 \uACF5\uAC04 \uBC14\uB85C\uAC00\uAE30 +regular.payment.service.service.end.date=\uC11C\uBE44\uC2A4 \uC885\uB8CC\uC77C \uC774\uD6C4 30\uC77C\uC774 \uC9C0\uB098\uBA74 <span style="color: #D62525;font-weight:bold;">\uC5C5\uBB34 \uACF5\uAC04\uC758 \uBAA8\uB4E0 \uB370\uC774\uD130\uAC00 \uC0AD\uC81C\uB429\uB2C8\uB2E4. </span> +regular.payment.service.day=\uC11C\uBE44\uC2A4 \uAE30\uAC04 +regular.payment.date=\uACB0\uC81C \uC77C\uC2DC +regular.payment.information=\uC815\uAE30 \uACB0\uC81C \uB0B4\uC5ED \uC548\uB0B4 +regular.payment.service.information=\uC11C\uBE44\uC2A4 \uC815\uBCF4 +regular.payment.next.date=\uB2E4\uC74C \uC815\uAE30 \uACB0\uC81C\uC77C +regular.payment.amount=\uACB0\uC81C \uAE08\uC561 +regular.payment.using.service=OWL ITS \uC11C\uBE44\uC2A4\uB97C \uC774\uC6A9\uD574 \uC8FC\uC154\uC11C \uAC10\uC0AC\uD569\uB2C8\uB2E4. +regular.payment.complete=\uACE0\uAC1D\uB2D8\uC774 \uC2E0\uCCAD\uD558\uC2E0 OWL ITS \uC815\uAE30 \uACB0\uC81C\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +regular.payment.person=\uBA85 +regular.payment.won=\uC6D0 +regular.payment.day=\uC77C +regular.payment.change.notice=\uC815\uAE30 \uACB0\uC81C \uBCC0\uACBD\uC0AC\uD56D \uC548\uB0B4 +regular.payment.change.payment=\uACB0\uC81C \uBCC0\uACBD \uC2E0\uCCAD\uC774 \uC644\uB8CC\uB418\uC5B4 \uC815\uAE30 \uACB0\uC81C \uBCC0\uACBD\uC0AC\uD56D\uC744 \uC54C\uB824\uB4DC\uB9BD\uB2C8\uB2E4. +regular.payment.service.charge=\uC11C\uBE44\uC2A4 \uC694\uAE08 +regular.payment.mean.payment=\uACB0\uC81C \uC218\uB2E8 +regular.payment.credit.card=\uC2E0\uC6A9\uCE74\uB4DC +regular.payment.application.time=\uC801\uC6A9\uC2DC\uAE30 +regular.payment.apply.payment=\uC815\uAE30 \uACB0\uC81C\uBD80\uD130 \uC801\uC6A9 +regular.payment.automatically=\uC815\uAE30 \uACB0\uC81C \uC608\uC815\uC77C\uC5D0 \uC790\uB3D9\uC73C\uB85C \uC11C\uBE44\uC2A4\uAC00 \uACB0\uC81C\uB418\uC5B4 \uCCAD\uAD6C\uB429\uB2C8\uB2E4. \uC774\uC6A9 \uC911\uC778 \uC11C\uBE44\uC2A4\uC5D0 \uBCC0\uB3D9\uC0AC\uD56D\uC774 \uC788\uB2E4\uBA74 \uC815\uAE30 \uACB0\uC81C\uC77C \uC804\uC5D0 \uAF2D \uBCC0\uACBD\uD574 \uC8FC\uC138\uC694. +workspace.inviteNewUser.title=[OWL ITS]\uC5D0 \uCD08\uB300\uB418\uC168\uC2B5\uB2C8\uB2E4. +workspace.maxUserExcess.title=[OWL ITS] \uC5C5\uBB34 \uACF5\uAC04\uC5D0 \uCD5C\uB300 \uC0AC\uC6A9\uC790 \uC218\uAC00 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +workspace.inviteSystemUser.title=[OWL ITS] \uB2E4\uB978 \uC0AC\uC6A9\uC790\uC758 \uC5C5\uBB34 \uACF5\uAC04\uC5D0 \uCD08\uB300\uB418\uC168\uC2B5\uB2C8\uB2E4. +workspace.expire.alarm.title=[OWL ITS] \uC5C5\uBB34 \uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04 \uB9CC\uB8CC \uC608\uC815 \uC548\uB0B4 +project.default.exclude.title=[OWL ITS] \uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C \uC81C\uC678\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.include.title=[OWL ITS] \uD504\uB85C\uC81D\uD2B8\uC5D0 \uCC38\uC5EC \uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.manager.exclude.title=[OWL ITS] \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uC5D0\uC11C \uC81C\uC678\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.manager.include.title=[OWL ITS] \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uAC00 \uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.manager.exclude.default.include.title=[OWL ITS] \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uC5D0\uC11C \uC77C\uBC18 \uC0AC\uC6A9\uC790\uB85C \uCC38\uC5EC \uC5ED\uD560\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.exclude.manager.include.title=[OWL ITS] \uC77C\uBC18 \uC0AC\uC6A9\uC790\uC5D0\uC11C \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uB85C \uCC38\uC5EC \uC5ED\uD560\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.manager.change=OWL ITS \uC77C\uBC18 \uC0AC\uC6A9\uC790\uC5D0\uC11C \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uB85C \uCC38\uC5EC \uC5ED\uD560\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.user.change=\uC77C\uBC18 \uC0AC\uC6A9\uC790\uC5D0\uC11C \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uB85C \uCC38\uC5EC \uC5ED\uD560\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.workspaceName=\uC5C5\uBB34 \uACF5\uAC04 \uBA85 +project.default.date=\uC77C\uC2DC +project.default.projectName=\uD504\uB85C\uC81D\uD2B8 \uBA85 +project.default.projectAdmin=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790 +project.default.project.manager=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uC5D0 \uC758\uD574 \uD504\uB85C\uC81D\uD2B8 \uCC38\uC5EC\uAC00 \uC81C\uC678\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.delete=OWL ITS \uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C \uC81C\uC678 \uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.join=OWL ITS \uD504\uB85C\uC81D\uD2B8\uC5D0 \uCC38\uC5EC \uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.manager.join=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uC5D0 \uC758\uD574 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uCC38\uC5EC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.manager.user=OWL ITS \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uC5D0\uC11C \uC77C\uBC18 \uC0AC\uC6A9\uC790\uB85C \uCC38\uC5EC \uC5ED\uD560\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.manager.user.change=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uC5D0\uC11C \uC77C\uBC18 \uC0AC\uC6A9\uC790\uB85C \uCC38\uC5EC \uC5ED\uD560\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.manager.delete=OWL ITS \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uC5D0\uC11C \uC81C\uC678 \uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.manager.exclude.delete=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uC5D0\uC11C \uC81C\uC678 \uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.project.manager.include.manager=OWL ITS \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uAC00 \uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.include.manager=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uAC00 \uB418\uC5C8\uC2B5\uB2C8\uB2E4. +issue.add.title=[OWL ITS] \uC774\uC288\uAC00 \uB4F1\uB85D\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +issue.add.occurrence=\uBC1C\uC0DD \uC2DC\uAC04 +issue.add.registerIssue=OWL ITS \uC774\uC288\uAC00 \uB4F1\uB85D\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +issue.add.new=\uC0C8\uB85C\uC6B4 \uC774\uC288\uAC00 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +issue.add.issueName=\uC774\uC288 \uBA85 +issue.add.content=\uB0B4\uC6A9 +issue.add.issueType=\uC774\uC288 \uC720\uD615 +issue.add.issueStatus=\uC774\uC288 \uC0C1\uD0DC +issue.add.assignee=\uB2F4\uB2F9\uC790 +issue.add.schedule=\uC77C\uC815 +issue.add.priority=\uC911\uC694\uB3C4 +issue.add.severity=\uC6B0\uC120 \uC21C\uC704 +issue.add.project=\uD504\uB85C\uC81D\uD2B8 +issue.add.projectKey=\uD504\uB85C\uC81D\uD2B8 \uD0A4 +issue.add.register=\uB4F1\uB85D\uC790 +issue.add.customField=\uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC +issue.add.attachedFile=\uCCA8\uBD80\uD30C\uC77C +issue.add.deleteIssue=OWL ITS \uC774\uC288\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +issue.add.delete=\uC774\uC288\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +issue.remove.title=[OWL ITS] \uC774\uC288\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +issue.send.title=[OWL ITS] \uC774\uC288\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694. +user.join.statistics.title=[OWL ITS] \uC77C\uC77C \uC0AC\uC6A9\uC790 \uAC00\uC785 \uC815\uBCF4\uB97C \uC54C\uB824\uB4DC\uB9BD\uB2C8\uB2E4. +total.statistics.title=[OWL ITS] \uC77C\uC77C \uC2DC\uC2A4\uD15C \uD604\uD669 \uC815\uBCF4\uB97C \uC54C\uB824\uB4DC\uB9BD\uB2C8\uB2E4. +workspace.inviteSystemUser.01=\uC0AC\uC6A9\uD558\uACE0 \uACC4\uC2E0 OWL ITS \uC5D0\uC11C \uC2E0\uADDC \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0 \uCD08\uB300\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +workspace.inviteNewUser.01=\uC774\uC288 \uAD00\uB9AC \uC2DC\uC2A4\uD15C OWL ITS \uC5D0 \uCD08\uB300\uD569\uB2C8\uB2E4. \uCD08\uB300\uBC1B\uC740 \uC774\uBA54\uC77C \uACC4\uC815\uC73C\uB85C \uD68C\uC6D0\uAC00\uC785\uC744 \uD558\uC2DC\uBA74 \uCD08\uB300\uC7A5\uC744 \uBC1C\uAE09\uD55C \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4/\uD504\uB85C\uC81D\uD2B8\uC5D0 \uC790\uB3D9\uC73C\uB85C \uCC38\uC5EC\uD558\uAC8C \uB429\uB2C8\uB2E4. +workspace.maxUserExcess.01=\uAD00\uB9AC\uD558\uB294 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0 \uCD5C\uB300 \uC0AC\uC6A9\uC790\uAC00 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uB97C \uCD94\uAC00\uD558\uB824\uBA74 \uACB0\uC7AC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. +workspace.expire.01=\uAD00\uB9AC\uD558\uB294 \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC758 \uC0AC\uC6A9 \uAE30\uAC04\uC774 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC0AC\uC6A9\uC744 \uC704\uD574\uC11C\uB294 \uACB0\uC7AC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. +workspace.out.01=\uB2E4\uC74C \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0\uC11C \uAD00\uB9AC\uC790\uC5D0 \uC758\uD574 \uCC38\uC5EC\uAC00 \uC81C\uC678\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.exclude.01=\uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C \uC81C\uC678\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.default.include.01=\uD504\uB85C\uC81D\uD2B8\uC5D0 \uCC38\uC5EC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.manager.exclude.01=\uD504\uB85C\uC81D\uD2B8\uC758 \uAD00\uB9AC\uC790\uC5D0\uC11C \uC81C\uC678\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.manager.include.01=\uD504\uB85C\uC81D\uD2B8\uC5D0 \uAD00\uB9AC\uC790\uB85C \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.etc.managerExcludeAndDefaultInclude.01=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790 \uC81C\uC678 \uD6C4 \uC77C\uBC18 \uC0AC\uC6A9\uC790\uB85C \uCC38\uC5EC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +project.etc.defaultExcludeAndManagerInclude.01=\uC77C\uBC18 \uC0AC\uC6A9\uC790\uC5D0\uC11C \uC81C\uC678 \uD6C4 \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uB85C \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +user.return.emailPassword.01=\uC784\uC2DC \uBE44\uBC00\uBC88\uD638\uC785\uB2C8\uB2E4. +user.password.guidanceTemporaryPassword=\uC784\uC2DC \uBE44\uBC00\uBC88\uD638 \uBC1C\uAE09 \uC548\uB0B4 +user.password.pleaseMakeSureChangeYourPassword=\uACE0\uAC1D\uB2D8\uC758 OWL ITS \uACC4\uC815 \uBE44\uBC00\uBC88\uD638 \uBCC0\uACBD\uC744 \uC704\uD574 \uC784\uC2DC \uBE44\uBC00\uBC88\uD638\uB97C \uBC1C\uAE09\uD574 \uB4DC\uB9BD\uB2C8\uB2E4. \uB85C\uADF8\uC778 \uD6C4 \uAF2D \uBE44\uBC00\uBC88\uD638\uB97C \uBCC0\uACBD\uD558\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4. +user.password.account=\uACC4\uC815 +user.password.temporaryPassword=\uC784\uC2DC \uBE44\uBC00\uBC88\uD638\uAC00 \uBC1C\uAE09\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +user.password.login=OWL ITS \uB85C\uADF8\uC778 +user.hello=\uB2D8, \uC548\uB155\uD558\uC138\uC694. +user.withDraw.guide=\uD68C\uC6D0 \uD0C8\uD1F4 \uC548\uB0B4 +user.withDraw.success=\uD68C\uC6D0\uB2D8\uC774 \uC694\uCCAD\uD558\uC2E0 OWL ITS \uD68C\uC6D0 \uD0C8\uD1F4\uAC00 \uC131\uACF5\uC801\uC73C\uB85C \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.<br/><br/>\uADF8\uB3D9\uC548 \uC774\uC6A9\uD574 \uC8FC\uC154\uC11C \uAC10\uC0AC\uB4DC\uB9BD\uB2C8\uB2E4.<br>\uB2E4\uC2DC \uBC29\uBB38\uD558\uC2E4 \uC218 \uC788\uB3C4\uB85D \uB354\uC6B1\uB354 \uB178\uB825\uD558\uACA0\uC2B5\uB2C8\uB2E4. +common.common.sendMail=\uBCF8 \uBA54\uC77C\uC740 \uBC1C\uC2E0\uC804\uC6A9 \uBA54\uC77C\uC785\uB2C8\uB2E4. diff --git a/src/main/webapp/WEB-INF/i18n/mail_vi_VN.properties b/src/main/webapp/WEB-INF/i18n/mail_vi_VN.properties new file mode 100644 index 0000000..92f6f95 --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/mail_vi_VN.properties @@ -0,0 +1,138 @@ +workspace.join.title=[OWL ITS] Ch\u00E0o m\u1EEBng b\u1EA1n \u0111\u1EBFn v\u1EDBi t\u01B0 c\u00E1ch th\u00E0nh vi\u00EAn. +workspace.join.01=C\u1EA3m \u01A1n b\u1EA1n \u0111\u00E3 tham gia v\u00E0o OWL ITS Entertainment. B\u1EA1n c\u00F3 th\u1EC3 s\u1EED d\u1EE5ng nhi\u1EC1u ch\u1EE9c n\u0103ng kh\u00E1c nhau m\u00E0 cung c\u1EA5p trong OWL ITS +workspace.expired=Th\u1EDDi gian s\u1EED d\u1EE5ng kh\u00F4ng gian l\u00E0m vi\u1EC7c OWL ITS \u0111\u00E3 h\u1EBFt h\u1EA1n. +workspace.expiredAlarm=OWL ITS Th\u1EDDi gian s\u1EED d\u1EE5ng kh\u00F4ng gian l\u00E0m vi\u1EC7c ch\u1EC9 c\u00F2n l\u1EA1i 3 gi\u1EDD th\u00F4i. +workspace.subscription=Th\u1EDDi gian s\u1EED d\u1EE5ng \u0111\u00E3 h\u1EBFt h\u1EA1n. +workspace.expiration.date=ng\u00E0y h\u1EBFt h\u1EA1n +workspace.regular.payment.request=Kh\u00E1ch h\u00E0ng kh\u00F4ng \u0111\u0103ng k\u00FD thanh to\u00E1n \u0111\u1ECBnh k\u1EF3, xin vui l\u00F2ng \u0111\u0103ng k\u00FD thanh to\u00E1n \u0111\u1ECBnh k\u1EF3. +workspace.invitation.card=gi\u1EA5y m\u1EDDi +workspace.hello=Xin ch\u00E0o. +workspace.asked.you=B\u1EA1n c\u00F3 ID l\u00E0 'kh\u00E1ch h\u00E0ng' +workspace.invited.to=T\u00F4i \u0111\u00E3 m\u1EDDi \u0111\u1EBFn +workspace.click.button=B\u1EA1n c\u00F3 th\u1EC3 nh\u1EA5n v\u00E0o n\u00FAt b\u00EAn d\u01B0\u1EDBi \u0111\u1EC3 tham gia kh\u00F4ng gian l\u00E0m vi\u1EC7c \u0111\u01B0\u1EE3c m\u1EDDi. OMB c\u00F3 th\u1EC3 qu\u1EA3n l\u00ED v\u00E0 h\u1EE3p t\u00E1c t\u1EA5t c\u1EA3 c\u00E1c v\u1EA5n \u0111\u1EC1 nh\u01B0 m\u1ED9t c\u00F4ng c\u1EE5 qu\u1EA3n l\u00FD d\u1EF1 \u00E1n n\u1EC1n t\u1EA3ng c\u1EE7a v\u1EA5n \u0111\u1EC1 +workspace.invited.join=B\u1EA1n c\u00F3 th\u1EC3 nh\u1EA5n v\u00E0o n\u00FAt d\u01B0\u1EDBi \u0111\u1EC3 tham gia kh\u00F4ng gian l\u00E0m vi\u1EC7c \u0111\u01B0\u1EE3c m\u1EDDi. +workspace.capacity.remove=H\u00E3y lo\u1EA1i b\u1ECF c\u00E1c t\u1EADp tin kh\u00F4ng c\u1EA7n thi\u1EBFt ho\u1EB7c th\u00EAm ng\u01B0\u1EDDi d\u00F9ng \u0111\u1EC3 \u0111\u1EA3m b\u1EA3o dung l\u01B0\u1EE3ng. +workspace.storage.capacity.user=Ng\u01B0\u1EDDi s\u1EED d\u1EE5ng cung c\u1EA5p 5GB. +workspace.storage.space=Thi\u1EBFu kh\u00F4ng gian l\u01B0u tr\u1EEF trong kh\u00F4ng gian l\u00E0m vi\u1EC7c OWL ITS +workspace.storage.space.cannot.upload=Kh\u00F4ng gian l\u01B0u tr\u1EEF thi\u1EBFu. N\u1EBFu thi\u1EBFu kh\u00F4ng gian l\u01B0u tr\u1EEF th\u00EC kh\u00F4ng th\u1EC3 t\u1EA3i file \u0111\u01B0\u1EE3c. +workspace.workspace=[n\u01A1i l\u00E0m vi\u1EC7c] +workspace.total.storage=t\u1ED5ng dung l\u01B0\u1EE3ng b\u1ED9 nh\u1EDB +workspace.current.usage=l\u01B0\u1EE3ng s\u1EED d\u1EE5ng hi\u1EC7n t\u1EA1i +workspace.capacity.remain=dung l\u01B0\u1EE3ng c\u00F2n l\u1EA1i +workspace.add.capacity.method=ph\u01B0\u01A1ng ph\u00E1p b\u1ED5 sung dung l\u01B0\u1EE3ng +workspace.maximum.number.user=S\u1ED1 ng\u01B0\u1EDDi s\u1EED d\u1EE5ng t\u1ED1i \u0111a \u0111\u00E3 b\u1ECB v\u01B0\u1EE3t qu\u00E1 trong kh\u00F4ng gian l\u00E0m vi\u1EC7c c\u1EE7a OWL ITS +workspace.maximum.number.user.invite.inactive=S\u1ED1 ng\u01B0\u1EDDi d\u00F9ng c\u00F3 kh\u1EA3 n\u0103ng k\u00EDch ho\u1EA1t t\u1ED1i \u0111a b\u1ECB v\u01B0\u1EE3t qu\u00E1 s\u1ED1 l\u01B0\u1EE3ng ng\u01B0\u1EDDi d\u00F9ng \u0111\u01B0\u1EE3c m\u1EDDi n\u00EAn t\u00ECnh tr\u1EA1ng kh\u00F4ng ho\u1EA1t \u0111\u1ED9ng \u0111\u01B0\u1EE3c. +workspace.maximum.number.active=s\u1ED1 ng\u01B0\u1EDDi d\u00F9ng ho\u1EA1t t\u00EDnh t\u1ED1i \u0111a +workspace.number.inactive=s\u1ED1 ng\u01B0\u1EDDi d\u00F9ng kh\u00F4ng c\u00F3 t\u00EDnh n\u0103ng +workspace.user.add.payment=\u0110\u1EC3 thay \u0111\u1ED5i ng\u01B0\u1EDDi s\u1EED d\u1EE5ng kh\u00F4ng c\u00F3 n\u0103ng l\u1EF1c th\u00E0nh ng\u01B0\u1EDDi s\u1EED d\u1EE5ng, th\u00EC c\u1EA7n ph\u1EA3i thanh to\u00E1n b\u1ED5 sung cho ng\u01B0\u1EDDi s\u1EED d\u1EE5ng. +workspace.shortcut=\u0111i ngay OWL ITS +workspace.check.user.id=H\u00E3y ki\u1EC3m tra ID \u0111\u00E3 \u0111\u0103ng k\u00FD. +workspace.user.id=con ng\u01B0\u1EDDi +workspace.subscription.date=th\u1EDDi gian gia nh\u1EADp +user.search.password.title=[OWL ITS] m\u1EADt kh\u1EA9u t\u1EA1m th\u1EDDi \u0111\u00E3 \u0111\u01B0\u1EE3c c\u1EA5p. +user.withDraw.title=[OWL ITS] Vi\u1EC7c r\u00FAt ti\u1EC1n c\u1EE7a b\u1EA1n \u0111\u00E3 ho\u00E0n t\u1EA5t. +regular.payment.title=[OWL ITS] Thanh to\u00E1n \u0111\u1ECBnh k\u1EF3 \u0111\u01B0\u1EE3c ho\u00E0n th\u00E0nh. +regular.payment.cancel.accounting.manager.title=[OWL ITS] Ng\u01B0\u1EDDi s\u1EED d\u1EE5ng sau \u0111\u00E3 ho\u00E0n th\u00E0nh vi\u1EC7c h\u1EE7y b\u1ECF thanh to\u00E1n \u0111\u1ECBnh k\u1EF3: mu\u1ED1n y\u00EAu c\u1EA7u ho\u00E0n l\u1EA1i. +regular.payment.cancel.title=\u0110\u00E3 ho\u00E0n th\u00E0nh vi\u1EC7c gi\u1EA3i quy\u1EBFt thanh to\u00E1n \u0111\u1ECBnh k\u1EF3 [OWL ITS] +regular.payment.modify.title=Ch\u00FAng t\u00F4i s\u1EBD th\u00F4ng b\u00E1o cho b\u1EA1n v\u1EC1 c\u00E1c thay \u0111\u1ED5i thanh to\u00E1n th\u01B0\u1EDDng xuy\u00EAn. [OWL ITS] +regular.payment.termination.guide=h\u01B0\u1EDBng d\u1EABn gi\u1EA3i quy\u1EBFt \u0111\u1ECBnh k\u1EF3 +regular.payment.termination.complete=T\u00F4i \u0111\u00E3 ho\u00E0n th\u00E0nh \u0111\u01A1n xin thanh to\u00E1n \u0111\u1ECBnh k\u1EF3. +regular.payment.user=s\u1ED1 ng\u01B0\u1EDDi s\u1EED d\u1EE5ng +regular.payment.workspace=kh\u00F4ng gian l\u01B0u tr\u1EEF d\u1ECBch v\u1EE5 +regular.payment.service.end=ng\u00E0y h\u1EBFt h\u1EA1n d\u1ECBch v\u1EE5 +regular.payment.service.remain.day=th\u1EDDi gian s\u1EED d\u1EE5ng c\u00F2n l\u1EA1i +regular.payment.service.shortcut.workspace=\u0110i th\u1EB3ng \u0111\u1EBFn kh\u020Fng gian l\u00E0m vi\u1EC7c +regular.payment.service.service.end.date=2 tu\u1EA7n sau khi d\u1ECBch v\u1EE5 k\u1EBFt th\u00FAc <span style="color: #D62525;font-weight:bold;">X\u00F3a t\u1EA5t c\u1EA3 d\u1EEF li\u1EC7u \u0111i l\u00E0m</span>\u0110\u01B0\u1EE3c r\u1ED3i. Tr\u01B0\u1EDBc ng\u00E0y k\u1EBFt th\u00FAc <span style="color: #D62525;font-weight:bold;">Back up d\u1EEF li\u1EC7u c\u1EA7n thi\u1EBFt </span>Mong l\u00E0 c\u00E1c b\u1EA1n s\u1EBD th\u00EDch. +regular.payment.service.day=th\u1EDDi gian ph\u1EE5c v\u1EE5 +regular.payment.date=m\u1ED9t th\u1EDDi thanh to\u00E1n +regular.payment.information=h\u01B0\u1EDBng d\u1EABn chi tr\u1EA3 \u0111\u1ECBnh k\u1EF3 +regular.payment.service.information=th\u00F4ng tin d\u1ECBch v\u1EE5 +regular.payment.next.date=Ng\u00E0y thanh to\u00E1n tr\u1EC5 k\u1EF3 sau +regular.payment.amount=s\u1ED1 ti\u1EC1n thanh to\u00E1n +regular.payment.using.service=Xin c\u1EA3m \u01A1n qu\u00FD kh\u00E1ch \u0111\u00E3 s\u1EED d\u1EE5ng d\u1ECBch v\u1EE5 OWL ITS. +regular.payment.complete=\u0110\u00E3 ho\u00E0n th\u00E0nh thanh to\u00E1n \u0111\u1ECBnh k\u1EF3 OLASM m\u00E0 qu\u00FD kh\u00E1ch \u0111\u0103ng k\u00FD. +regular.payment.person=ng\u01B0\u1EDDi +regular.payment.won=won +regular.payment.day=ng\u00E0y +regular.payment.change.notice=H\u01B0\u1EDBng d\u1EABn thay \u0111\u1ED5i h\u1EA1ng m\u1EE5c thanh to\u00E1n \u0111\u1ECBnh k\u1EF3 +regular.payment.change.payment=thanh to\u00E1n \u0111\u0103ng k\u00FD thay \u0111\u1ED5i ho\u00E0n th\u00E0nh \u0111\u01B0\u1EE3c \u0111\u1ECBnh k\u1EF3 thanh to\u00E1n b\u1EA5t k\u1EF3 thay \u0111\u1ED5i +regular.payment.service.charge=ph\u00ED ph\u1EE5c v\u1EE5 +regular.payment.mean.payment=ph\u01B0\u01A1ng ti\u1EC7n thanh to\u00E1n +regular.payment.credit.card=th\u1EBB t\u00EDn d\u1EE5ng +regular.payment.application.time=th\u1EDDi k\u1EF3 \u00E1p d\u1EE5ng +regular.payment.apply.payment=\u00C1p d\u1EE5ng thanh to\u00E1n \u0111\u1ECBnh k\u1EF3 tr\u01B0\u1EDBc +regular.payment.automatically=V\u00E0o ng\u00E0y thanh to\u00E1n \u0111\u1ECBnh k\u1EF3, d\u1ECBch v\u1EE5 s\u1EBD \u0111\u01B0\u1EE3c t\u1EF1 \u0111\u1ED9ng thanh to\u00E1n. N\u1EBFu c\u00F3 h\u1EA1ng m\u1EE5c bi\u1EBFn \u0111\u1ED9ng trong d\u1ECBch v\u1EE5 th\u00EC h\u00E3y ch\u1EAFc ch\u1EAFn thay \u0111\u1ED5i tr\u01B0\u1EDBc ng\u00E0y thanh to\u00E1n \u0111\u1ECBnh k\u1EF3. +workspace.inviteNewUser.title=B\u1EA1n \u0111\u01B0\u1EE3c m\u1EDDi tham gia [OWL ITS]. +workspace.maxUserExcess.title=S\u1ED1 ng\u01B0\u1EDDi d\u00F9ng t\u1ED1i \u0111a \u0111\u00E3 v\u01B0\u1EE3t qu\u00E1 s\u1ED1 l\u01B0\u1EE3ng ng\u01B0\u1EDDi d\u00F9ng \u1EDF kh\u00F4ng gian l\u00E0m vi\u1EC7c [OWL ITS] +workspace.inviteSystemUser.title=B\u1EA1n \u0111\u00E3 \u0111\u01B0\u1EE3c m\u1EDDi \u0111\u1EBFn kh\u00F4ng gian l\u00E0m vi\u1EC7c c\u1EE7a ng\u01B0\u1EDDi d\u00F9ng kh\u00E1c [OWL ITS] +workspace.expire.title=Th\u1EDDi gian s\u1EED d\u1EE5ng kh\u00F4ng gian l\u00E0m vi\u1EC7c [OWL ITS] s\u1EBD h\u1EBFt h\u1EA1n. +project.default.exclude.title=N\u00F3 \u0111\u00E3 \u0111\u01B0\u1EE3c lo\u1EA1i tr\u1EEB kh\u1ECFi d\u1EF1 \u00E1n [OWL ITS] +project.default.include.title=\u0110\u00E3 tham gia d\u1EF1 \u00E1n [OWL ITS] +project.manager.exclude.title=N\u00F3 \u0111\u00E3 b\u1ECB lo\u1EA1i kh\u1ECFi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n [OWL ITS] +project.manager.include.title=T\u00F4i tr\u1EDF th\u00E0nh nh\u00E0 qu\u1EA3n l\u00FD d\u1EF1 \u00E1n [OWL ITS] +project.manager.exclude.default.include.title=Vai tr\u00F2 tham gia c\u1EE7a ng\u01B0\u1EDDi s\u1EED d\u1EE5ng th\u00F4ng th\u01B0\u1EDDng trong qu\u1EA3n l\u00FD d\u1EF1 \u00E1n [OWL ITS] +project.default.exclude.manager.include.title=Vai tr\u00F2 tham gia c\u1EE7a ng\u01B0\u1EDDi s\u1EED d\u1EE5ng th\u00F4ng th\u01B0\u1EDDng \u0111\u01B0\u1EE3c thay \u0111\u1ED5i th\u00E0nh ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. [OWL ITS] +project.default.project.manager.change=Vai tr\u00F2 tham gia v\u1EDBi t\u01B0 c\u00E1ch l\u00E0 ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n trong ng\u01B0\u1EDDi s\u1EED d\u1EE5ng th\u00F4ng th\u01B0\u1EDDng OWL ITS \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i +project.default.project.user.change=Vai tr\u00F2 tham gia c\u1EE7a ng\u01B0\u1EDDi s\u1EED d\u1EE5ng th\u00F4ng th\u01B0\u1EDDng \u0111\u01B0\u1EE3c thay \u0111\u1ED5i th\u00E0nh ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. +project.default.workspaceName=n\u1ED5i danh n\u01A1i l\u00E0m vi\u1EC7c +project.default.date=ng\u00E0y \u0111\u00E3 qua +project.default.projectName=T\u00EAn d\u1EF1 \u00E1n +project.default.projectAdmin=Ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n +project.default.project.manager=Ngo\u1EA1i tr\u1EEB vi\u1EC7c tham gia d\u1EF1 \u00E1n c\u1EE7a ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. +project.default.project.delete=Lo\u1EA1i tr\u1EEB kh\u1ECFi d\u1EF1 \u00E1n OWL ITS +project.default.project.join=T\u00F4i \u0111\u00E3 tham gia d\u1EF1 \u00E1n OWL ITS +project.default.project.manager.join=D\u1EF1 \u00E1n \u0111\u01B0\u1EE3c tham gia b\u1EDFi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. +project.default.project.manager.user=Vai tr\u00F2 tham gia c\u1EE7a ng\u01B0\u1EDDi s\u1EED d\u1EE5ng th\u00F4ng th\u01B0\u1EDDng trong qu\u1EA3n l\u00FD d\u1EF1 \u00E1n OWL ITS \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +project.default.project.manager.user.change=Vai tr\u00F2 tham gia c\u1EE7a ng\u01B0\u1EDDi s\u1EED d\u1EE5ng th\u00F4ng th\u01B0\u1EDDng trong qu\u1EA3n l\u00FD d\u1EF1 \u00E1n \u0111\u00E3 \u0111\u01B0\u1EE3c thay \u0111\u1ED5i. +project.default.project.manager.delete=\u0110\u00E3 b\u1ECB lo\u1EA1i kh\u1ECFi ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n OWL ITS +project.default.project.manager.exclude.delete=Lo\u1EA1i tr\u1EEB ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. +project.default.project.manager.include.manager=T\u00F4i tr\u1EDF th\u00E0nh ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n OWL ITS. +project.include.manager=T\u00F4i \u0111\u00E3 tr\u1EDF th\u00E0nh ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. +issue.add.title=H\u1ECD \u0111\u00E3 \u0111\u0103ng k\u00FD v\u1EA5n \u0111\u1EC1 [OWL ITS] +issue.add.occurrence=th\u1EDDi gian ph\u00E1t sinh +issue.add.registerIssue=C\u00F3 \u0111\u0103ng k\u00FD v\u1EA5n \u0111\u1EC1 OWL ITS +issue.add.new=\u0110\u00E3 t\u1EA1o ra m\u1ED9t ch\u1EE7 \u0111\u1EC1 m\u1EDBi. +issue.add.issueName=t\u00EAn c\u1EE7a m\u1ED9t v\u1EA5n \u0111\u1EC1 +issue.add.content=n\u1ED9i dung +issue.add.issueType=lo\u1EA1i h\u00ECnh v\u1EA5n \u0111\u1EC1 +issue.add.issueStatus=t\u00ECnh tr\u1EA1ng c\u1EE7a v\u1EA5n \u0111\u1EC1 +issue.add.assignee=ng\u01B0\u1EDDi ch\u1ECBu tr\u00E1ch nhi\u1EC7m +issue.add.schedule=s\u1EF1 c\u1ED1 \u0111\u1ECBnh +issue.add.priority=t\u1EA7m quan tr\u1ECDng +issue.add.severity=\u0110\u1EA7u ti\u00EAn l\u00E0 +issue.add.project=d\u1EF1 \u00E1n +issue.add.projectKey=Ch\u00ECa kh\u00F3a d\u1EF1 \u00E1n +issue.add.register=ng\u01B0\u1EDDi \u0111\u0103ng k\u00FD +issue.add.customField=n\u00E9t c\u1EA7n thi\u1EBFt c\u1EE7a ng\u01B0\u1EDDi d\u00F9ng +issue.add.attachedFile=t\u1EADp tin \u0111\u00EDnh k\u00E8m +issue.add.deleteIssue=V\u1EA5n \u0111\u1EC1 OWL ITS \u0111\u00E3 b\u1ECB x\u00F3a. +issue.add.delete=\u0110\u00E3 x\u00F3a b\u1ECF v\u1EA5n \u0111\u1EC1. +issue.remove.title=V\u1EA5n \u0111\u1EC1 [OWL ITS] \u0111\u00E3 b\u1ECB x\u00F3a b\u1ECF. +issue.send.title=[OWL ITS] H\u00E3y ki\u1EC3m tra v\u1EA5n \u0111\u1EC1 \u0111i. +user.join.statistics.title=[OWL ITS] \u0110\u00E2y l\u00E0 th\u00F4ng tin t\u00ECm \u0111\u1ECDc h\u00E0ng ng\u00E0y c\u1EE7a b\u1EA1n. +total.statistics.title=[OWL ITS] \u0110i\u1EC1u n\u00E0y c\u1EADp nh\u1EADt tr\u1EA1ng th\u00E1i h\u1EC7 th\u1ED1ng h\u00E0ng ng\u00E0y. + + + +workspace.inviteSystemUser.01=N\u00F3 \u0111\u01B0\u1EE3c m\u1EDDi \u0111\u1EBFn v\u1EDBi m\u1ED9t b\u1ED9 l\u00E0m vi\u1EC7c m\u1EDBi trong OWL ITS \u0111ang s\u1EED d\u1EE5ng. +workspace.inviteNewUser.01=T\u00F4i xin m\u1EDDi b\u1EA1n \u0111\u1EBFn v\u1EDBi OWL ITS, h\u1EC7 th\u1ED1ng qu\u1EA3n l\u00FD v\u1EA5n \u0111\u1EC1. N\u1EBFu b\u1EA1n gia nh\u1EADp h\u1ED9i vi\u00EAn b\u1EB1ng t\u00E0i kho\u1EA3n e-mail b\u1EA1n nh\u1EADn \u0111\u01B0\u1EE3c th\u00EC b\u1EA1n c\u00F3 th\u1EC3 tham gia t\u1EF1 \u0111\u1ED9ng trong worksheet / Project. +workspace.maxUserExcess.01=\u0110\u00E3 v\u01B0\u1EE3t qu\u00E1 ng\u01B0\u1EDDi s\u1EED d\u1EE5ng t\u1ED1i \u0111a tr\u00EAn tinh th\u1EA7n l\u00E0m vi\u1EC7c qu\u1EA3n l\u00FD. N\u1EBFu mu\u1ED1n th\u00EAm ng\u01B0\u1EDDi d\u00F9ng th\u00EC c\u1EA7n ph\u1EA3i c\u00F3 ph\u00E1n quy\u1EBFt. +workspace.expire.01=Th\u1EDDi gian s\u1EED d\u1EE5ng c\u1EE7a g\u01B0\u01A1ng nh\u00E2n vi\u00EAn qu\u1EA3n l\u00FD \u0111\u00E3 h\u1EBFt h\u1EA1n. S\u1EED d\u1EE5ng c\u00E1i n\u00E0y th\u00EC c\u1EA7n ph\u1EA3i c\u00F3 b\u1EA3n th\u1EA3o. +workspace.expire.alarm.title=[OWL ITS] Kh\u00F4ng gian l\u00E0m vi\u1EC7c ch\u1EC9 c\u00F2n 3. +workspace.out.01=Trong khu\u00F4n vi\u00EAn workstation ti\u1EBFp theo \u0111\u00E3 b\u1ECB lo\u1EA1i b\u1ECF tham gia c\u1EE7a ng\u01B0\u1EDDi qu\u1EA3n l\u00FD +project.default.exclude.01=\u0110\u00E3 b\u1ECB lo\u1EA1i kh\u1ECFi d\u1EF1 \u00E1n +project.default.include.01=\u0110\u00E3 tham gia v\u00E0o d\u1EF1 \u00E1n. +project.manager.exclude.01=Lo\u1EA1i tr\u1EEB kh\u1ECFi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. +project.manager.include.01=D\u1EF1 \u00E1n \u0111\u00E3 \u0111\u01B0\u1EE3c ch\u1EC9 \u0111\u1ECBnh l\u00E0 ng\u01B0\u1EDDi qu\u1EA3n l\u00FD. +project.etc.managerExcludeAndDefaultInclude.01=Ngo\u1EA1i tr\u1EEB ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n, \u0111\u00E3 tham gia ng\u01B0\u1EDDi s\u1EED d\u1EE5ng th\u00F4ng th\u01B0\u1EDDng +project.etc.defaultExcludeAndManagerInclude.01=\u0110\u00E3 \u0111\u01B0\u1EE3c ch\u1EC9 \u0111\u1ECBnh l\u00E0 ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n sau khi lo\u1EA1i tr\u1EEB ng\u01B0\u1EDDi s\u1EED d\u1EE5ng th\u00F4ng th\u01B0\u1EDDng. +user.return.emailPassword.01=\u0110\u00E2y l\u00E0 m\u1EADt kh\u1EA9u t\u1EA1m th\u1EDDi. +user.password.guidanceTemporaryPassword=H\u01B0\u1EDBng d\u1EABn vi\u00EAn \u0111\u01B0\u1EE3c c\u1EA5p m\u1EADt kh\u1EA9u t\u1EA1m th\u1EDDi +user.password.pleaseMakeSureChangeYourPassword=Ch\u00FAng t\u00F4i s\u1EBD c\u1EA5p m\u1ED9t m\u1EADt kh\u1EA9u t\u1EA1m th\u1EDDi \u0111\u1EC3 thay \u0111\u1ED5i m\u1EADt kh\u1EA9u t\u00E0i kho\u1EA3n OW c\u1EE7a qu\u00ED kh\u00E1ch.Sau khi \u0111\u0103ng nh\u1EADp, vui l\u00F2ng thay \u0111\u1ED5i m\u1EADt kh\u1EA9u. +user.password.account=t\u00E0i kho\u1EA3n +user.password.temporaryPassword=m\u1EADt kh\u1EA9u t\u1EA1m th\u1EDDi +user.password.login=\u0110\u0103ng nh\u1EADp v\u00E0o OWL ITS +user.hello=Xin ch\u00E0o. +user.withDraw.guide=h\u01B0\u1EDBng d\u1EABn r\u00FAt lui th\u00E0nh vi\u00EAn +user.withDraw.success=Vi\u1EC7c r\u00FAt kh\u1ECFi c\u00E1c th\u00E0nh vi\u00EAn OLASI do h\u1ED9i vi\u00EAn y\u00EAu c\u1EA7u \u0111\u00E3 \u0111\u01B0\u1EE3c ho\u00E0n th\u00E0nh th\u00E0nh c\u00F4ng.<br/><br/>C\u1EA3m \u01A1n v\u00EC \u0111\u00E3 s\u1EED d\u1EE5ng trong th\u1EDDi gian qua.<br>\u0111\u1EC3 c\u00F3 th\u1EC3 gh\u00E9 th\u0103m l\u1EA1i l\u1EA7n n\u1EEFa. +common.common.sendMail=Email n\u00E0y l\u00E0 email s\u1EED d\u1EE5ng \u0111\u1EC3 g\u1EEDi. diff --git a/src/main/webapp/WEB-INF/i18n/messages_en_US.properties b/src/main/webapp/WEB-INF/i18n/messages_en_US.properties new file mode 100644 index 0000000..43897a4 --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/messages_en_US.properties @@ -0,0 +1,192 @@ +ERR_FAILED_CONVERT_OBJECT = Data conversion failed. +TARGET_OBJECT_IS_NULL = Target object is null. +SOURCE_OBJECT_IS_NULL = Source object is null. +ERR_FAILED_CONVERT_JSON = Json conversion of request data failed. +NOT_READABLE_JSON_DATA = Unable to read Json data. +SUCCESS_REQUEST = The request was successful. +SESSION_EXPIRED = User session has ended. + + + + +PROJECT_NAME_MAX_LENGTH_OUT = Project names can be up to 50 characters long. +DATE_PICKER_NOT_AVAILABLE = Invalid date selection. +PROJECT_NOT_EXIST = Project does not exist +PROJECT_NOT_MANAGER = Project Manager does not exist. +PROJECT_NOT_MODIFY_PERMISSION = You do not have project management privileges. +PROJECT_NOT_NAME = Project name is not entered. +PROJECT_NOT_STATUS = The status of the project is not selected. +DATE_NOT_EXIST = No period selected. +PROJECT_OVER_LENGTH_PROJECT_KEY = Project keys can only be up to 10 characters long. +PROJECT_KEY_NOT_EXIST = Project key not entered. +PROJECT_USED_NAME = Project name is already in use. +DEFAULT_PROJECT_NOT_REMOVE = You cannot delete a built-in project. +PROJECT_REMOVE_NOT_SELECT = No project selected to delete. +PROJECT_NOT_INCLUDE_USER = This is a user who is not participating in a project. +PROJECT_USED_PROJECT_KEY = Project key is already in use. + +PAYMENT_TYPE_NOT_EXIST = No payment method selected. +PAYMENT_NOT_EXIST = There is no payment information +PAYMENT_EXECUTE_ONLY_WORKSPACE_MANAGER = Payment can only be made by the workspace manager. +PAYMENT_BUY_USER_MUST_BE_GREATER_THAN_ZERO = The number of users you want to pay must be greater than 0. +PAYMENT_NO_TYPE = Payment type not entered. +PAYMENT_HISTORY_NOT_EXIST = No payment history information. + +USER_WORKSPACE_MANAGER_NOT_EXIST = Workspace Manager information does not exist +OAUTH_STATE_VALUE_NOT_EQUAL = OAuth authentication failed. +WORKSPACE_NOT_EXIST = Workspace does not exist +WORKSPACE_STORAGE_SIZE_EXCESS = The workspace storage space has been Organize unnecessary files. +WORKSPACE_MANAGER_NOT_CHANGE_USE_YN = Workspace Manager cannot be changed to Disabled. +WORKSPACE_PERIOD_REMAIN = There is a period of working space remaining. +WORKSPACE_USE_PERIOD_EXCESS = The Create, Modify, Delete, and Image/Excel download features are out of service. +WORKSPACE_INCLUDE_DISABLED = The Create, Modify, Delete, and Image/Excel download functions are not available because they are inactive in that workspace. + +ATTACHED_FILE_NOT_EXIST = Profile files can only be jpg and png. + +START_ISSUE_STATUS_NOT_EXIST = The starting issue state does not exist. +END_ISSUE_STATUS_NOT_EXIST = The exiting issue state does not exist. + +EMAIL_NOT_SEND = Unable to send mail. +INVITE_USER_USED_WORKSPACE = The user is already involved in the workspace. + +PROJECT_ROLE_NOT_EXIST = Project role does not exist. +WORKSPACE_NOT_NAME = No workspace name entered. +WORKSPACE_MAX_USER_EXCESS = The maximum number of users in the workspace has been exceeded. If the maximum number of users is exceeded, the invitee will not be able to access the workspace. +WORKSPACE_MAX_USER_EXCESS_NOT_INCLUDE = The maximum number of users in the workspace has been exceeded and cannot be changed to a participating state. +WORKSPACE_NAME_MAX_LENGTH_OUT = Workspaces can be up to 50 characters long. + +DEFAULT_PROJECT_MANAGER_NOT_CHANGE = The manager of the built-in project must have a workspace manager. + + +ISSUE_STATUS_NOT_ID = Issue status ID is not entered. +ISSUE_STATUS_NAME_MAX_LENGTH_OUT = Issue status names can be up to 50 characters long. +ISSUE_STATUS_NOT_NAME = Issue status name is not entered. +ISSUE_STATUS_NOT_COLOR = Issue status color is not entered. +ISSUE_STATUS_USED_NAME = Issue status name is already in use. +ISSUE_STATUS_REMOVE_NOT_SELECT = Issue state to delete is not selected. +DEFAULT_ISSUE_STATUS_NOT_REMOVE = You cannot delete the built-in issue status. +ISSUE_STATUS_NOT_EXIST = Issue state does not exist. +READY_ISSUE_STATUS_NOT_EXIST = Issue state with issue status type waiting could not be found. +ISSUE_STATUS_CHANGE_NOT_TARGET = Unable to change to the selected issue state. Check out your workflow. +ISSUE_STATUS_USE_ISSUES = There are issues that are using the status of the issue. +ISSUE_STATUS_USE_WORKFLOW = There is a workflow that is using the issue state. + +WORKFLOW_NOT_EXIST = Workflow does not exist. +WORKFLOW_NOT_NAME = Workflow name is not entered. +WORKFLOW_NAME_MAX_LENGTH_OUT = Workflow names can be up to 20 characters long. +WORKFLOW_USED_NAME = Workflow name is already in use. +WORKFLOW_TRANSITION_NOT_EXIST = Workflow transfer does not exist. +WORKFLOW_USED_ISSUE_TYPE = Cannot delete workflow because it is used by issue type. +WORKFLOW_ISOLATION = Isolated issue state exists in workflow. +WORKFLOW_REMOVE_NOT_SELECT = No workflow selected to delete. + +CUSTOM_FIELD_NOT_EXIST = Custom field does not exist. +CUSTOM_FIELD_NOT_NAME = User-defined field name is not entered. +CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = User-defined field names can be up to 50 characters long. +CUSTOM_FIELD_USED_NAME = User-defined field name is already in use. +CUSTOM_FIELD_REMOVE_NOT_SELECT = No custom fields are selected to delete. +CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = The string field cannot use the option value. +CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = User-defined field default value does not exist in option. +CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = Duplicate values exist in user-defined field default values. +CUSTOM_FIELD_OPTIONS_NOT_USE_MULTI_DEFAULT_VALUE = You cannot specify more than one default value for user-defined field option values. +CUSTOM_FIELD_OPTIONS_NOT_EMPTY_VALUE = Unable to register spaces with user-defined field option values. +CUSTOM_FIELD_OPTIONS_NOT_VALUE = User-defined field option value is not entered. +CUSTOM_FIELD_TEXT_TYPE_MAX_LENGTH_OUT = User-defined string fields can be up to 100 characters long. +CUSTOM_FIELD_DEFAULT_VALUE_MAX_LENGTH_OUT = The default value field for a custom field can contain up to 100 characters. +CUSTOM_FIELD_OPTION_VALUE_MAX_LENGTH_OUT = User-defined field option values can be up to 15 characters long. + +ISSUE_TYPE_NOT_EXIST = Issue type does not exist. +ISSUE_TYPE_NOT_NAME = Issue type name is not entered. +ISSUE_TYPE_NAME_MAX_LENGTH_OUT = Issue type can be up to 50 characters long. +ISSUE_TYPE_USED_NAME = Issue type name is already used. +ISSUE_TYPE_REMOVE_NOT_SELECT = No issue type selected to delete. +ISSUE_TYPE_NOT_COLOR = No color entered for issue type. +ISSUE_TYPE_USE_ISSUES = There are issues using issue types. + +PRIORITY_NOT_EXIST = Priority does not exist. +SEVERITY_NOT_EXIST = Importance does not exist. + +ISSUE_NOT_EXIST = Issue does not exist +ISSUE_NUMBER_GENERATOR_NOT_EXIST = An error occurred while generating the issue number. +ISSUE_NUMBER_NOT_EXIST = Issue number does not exist +ISSUE_TITLE_MAX_LENGTH_OUT = Issue title can be up to 300 characters long. +ISSUE_NOT_MODIFY_PERMISSION = You do not have permission to correct the issue. +ISSUE_REMOVE_NOT_SELECT = No issues selected to delete. +ISSUE_NO_TITLE = Issue title is not entered. +ISSUE_NOT_SEND_USER = Issue Send To is not selected. + +ISSUE_COMMENT_REMOVE_NOT_SELECT = You have not selected a comment to delete. +ISSUE_COMMENT_NOT_EXIST = The comment does not exist. +ISSUE_COMMENT_NOT_REMOVE_PERMISSION = You do not have permission to delete comments. +ISSUE_COMMENT_NOT_COMMENT = No comments have been entered. +ISSUE_COMMENT_MAX_LENGTH_OUT = Comments can be up to 300 characters long. + +USER_WORKSPACE_NOT_EXIST = Workspace user connection information does not exist. + +WIDGET_SEARCH_DATE_NOT_FOUND = Widget search date not found. + +USER_NO_NAME = No name was entered. +USER_NAME_LENGTH_EXCESS = Username can only be up to 50 characters long. +USER_NO_EMAIL = Email address is not entered. +USER_INVALID_EMAIL = Invalid email address. +USER_USED_EMAIL = This email address is already registered. +USER_NO_PASSWORD = The password has not been entered +USER_NOT_MODIFY_SELF = You cannot modify other people's information. +USER_PHONE_MAX_LENGTH_OUT = Contact can be up to 20 characters long. +USER_PHONE_ONLY_NUMBER = Contact can only be entered with numbers. +USER_PASSWORD_MAX_LENGTH_OUT = Passwords can be up to 20 characters long. +USER_PASSWORD_NOT_SAME_CONFIRM_PASSWORD = The password entered in the Confirm new password field is different. +USER_INVALID_CURRENT_PASSWORD = The current password entered is invalid. +USER_PASSWORD_SAME_NEW_PASSWORD = The password you are using must be different from the one you are trying to change. +USER_INVALID_LICENSEKEY = The current license key entered is invalid. +USER_WITH_DRAW_EXIST = The account has a membership withdrawal record. +USER_PROFILE_SIZE_NOT_ALLOW = User profile size is too large. Please upload to a file that is less than 10MB +USER_PROFILE_UPLOAD_FILE_TYPE_NOT_ALLOW = Profile files can only be jpg and png. +USER_NOT_EQUAL_PASSWORD = The password does not match. +USER_NOT_EXIST = User does not exist. +USER_NOT_AUTHORIZED = You do not have user authentication privileges. +USER_EXPIRED_PASSWORD = Your password has expired. +USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER = The Find Password feature is not available to social account subscribers. +USER_NOT_USE_ACTIVE_STATUS = Users cannot log in unless they are active. + +EXCEL_NOT_EXTENSION = Only Excel file extensions (xlsx) can be uploaded. +EXCEL_DOWNLOAD_MAX_ROWS_OVER = Only 10,000 Excel downloads are available. Change the list to 10,000 or fewer queries using the search criteria to proceed with the download. +EXCEL_CONDITIONS_NOT_EXIST = Unable to find the search criteria required for Excel download. +EXCEL_EMPTY_CELL = Excel header partial cell not found. There is a problem with the Excel Creation Form. +EXCEL_HEADER_EMPTY_CELL = There is an empty cell in the Excel header. +EXCEL_IMPORT_ISSUE_TITLE_IS_NULL=Issue title is not entered in the following Excel line: \n Line Information : {0} +EXCEL_IMPORT_PROJECT_KEY_IS_NULL=The project key has not been entered on the following Excel line: \n Line Information : {0} +EXCEL_IMPORT_PROJECT_NOT_EXIST=No projects are retrieved with the entered project key on the following Excel line: \n Line Information : {0} +EXCEL_IMPORT_ISSUE_TYPE_IS_NULL=Issue type name is not entered in the following Excel line: \n Line Information : {0} +EXCEL_IMPORT_ISSUE_TYPE_NOT_EXIST=No issue type is retrieved with the issue type entered in the following Excel line: \n Line Information : {0} +EXCEL_IMPORT_PRIORITY_IS_NULL=Priority name is not entered on the following Excel line: \n Line Information : {0} +EXCEL_IMPORT_PRIORITY_NOT_EXIST=No priority is retrieved with the entered priority name on the following Excel line. \n Line Information : {0} +EXCEL_IMPORT_SEVERITY_IS_NULL=No criticality names were entered on the following Excel lines: \n Line Information : {0} +EXCEL_IMPORT_SEVERITY_NOT_EXIST=No priority is retrieved with the entered criticality name on the following Excel line. \n Line Information : {0} +EXCEL_CUSTOM_FIELD_VALUE_NOT_VALIDITY=The user-defined field value entered on the following Excel lines is invalid. \n Line Information : {0} +EXCEL_IMPORT_HEADER_CUSTOM_FIELD_NOT_EXIST=The custom field you are trying to register could not be found. The user-defined field has been renamed or deleted. \n Line Information : {0} +EXCEL_IMPORT_PERIOD_NOT_VALIDITY= There is a problem with the start and end dates entered on the next Excel line. The start date must be earlier than the end date. \n Line Information : {0} +EXCEL_IMPORT_PERIOD_NOT_VALIDITY_EMPTY=There is a problem with the start and end dates entered on the next Excel line. Make sure that the space is included before removing the space. \n Line Information : {0} +EXCEL_IMPORT_MAX_ROWS_OVER = With Excel upload, you can register up to 10,000 issues. If you receive this message if there are less than 10,000 Excels created, please delete all rows after the last row created and try again. +RESERVATION_EMAIL_TITLE=[OWL ITS] Next Day Issue and Activity Status. + +ISSUE_RESERVATION_VALUE_INVALID=Invalid reservation date for issue. +ISSUE_RESERVATION_NOT_EXIST=Issue generated reservation information does not exist. + +FILE_TYPE_NOT_ALLOW = Unauthorized file type. +WORKSPACE_OUT=You have been excluded from the following workspace: ({0}) + +NOTICE_NOT_EXIST=Notice does not exist. +NOTICE_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +FAQ_NOT_EXIST=FAQ does not exist. +FAQ_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +GUIDE_NOT_EXIST=Guide does not exist. +GUIDE_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +EVENT_NOT_EXIST=Event does not exist. +EVENT_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +QNA_NOT_EXIST=QNA does not exist. +QNA_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/i18n/messages_ja_JP.properties b/src/main/webapp/WEB-INF/i18n/messages_ja_JP.properties new file mode 100644 index 0000000..8c72720 --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/messages_ja_JP.properties @@ -0,0 +1,192 @@ +ERR_FAILED_CONVERT_OBJECT = \u30C7\u30FC\u30BF\u5909\u63DB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +TARGET_OBJECT_IS_NULL = \u30BF\u30B2\u30C3\u30C8\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u304CNull\u3067\u3059\u3002 +SOURCE_OBJECT_IS_NULL = \u30BD\u30FC\u30B9\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u304CNull\u3067\u3059\u3002 +ERR_FAILED_CONVERT_JSON = \u8981\u8ACB\u30C7\u30FC\u30BF\u306Ejson\u5909\u63DB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +NOT_READABLE_JSON_DATA = Json\u30C7\u30FC\u30BF\u304C\u8AAD\u3081\u307E\u305B\u3093\u3002 +SUCCESS_REQUEST = \u8981\u8ACB\u304C\u6210\u529F\u3057\u307E\u3057\u305F +SESSION_EXPIRED = \u30E6\u30FC\u30B6\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u7D42\u4E86\u3057\u307E\u3057\u305F\u3002 + + + + +PROJECT_NAME_MAX_LENGTH_OUT = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D\u306F\u6700\u592750\u6587\u5B57\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059\u3002 +DATE_PICKER_NOT_AVAILABLE = \u65E5\u4ED8\u306E\u9078\u629E\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3057\u305F\u3002 +PROJECT_NOT_EXIST = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +PROJECT_NOT_MANAGER = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +PROJECT_NOT_MODIFY_PERMISSION = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +PROJECT_NOT_NAME = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PROJECT_NOT_STATUS = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u72B6\u614B\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +DATE_NOT_EXIST = \u671F\u9593\u304C\u9078\u3070\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PROJECT_OVER_LENGTH_PROJECT_KEY = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30AD\u30FC\u306F\u6700\u592710 \u6587\u5B57\u306E\u307F\u5165\u529B\u53EF\u80FD\u3067\u3059\u3002 +PROJECT_KEY_NOT_EXIST = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30AD\u30FC\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PROJECT_USED_NAME = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D\u304C\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002 +DEFAULT_PROJECT_NOT_REMOVE = \u57FA\u672C\u306B\u63D0\u4F9B\u3055\u308C\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002 +PROJECT_REMOVE_NOT_SELECT = \u524A\u9664\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u9078\u3070\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PROJECT_NOT_INCLUDE_USER = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u53C2\u52A0\u3057\u3066\u3044\u306A\u3044\u30E6\u30FC\u30B6\u3067\u3059\u3002 +PROJECT_USED_PROJECT_KEY = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30AD\u30FC\u304C\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002 + +PAYMENT_TYPE_NOT_EXIST = \u6C7A\u6E08\u65B9\u5F0F\u304C\u9078\u3070\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PAYMENT_NOT_EXIST = \u6C7A\u6E08\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +PAYMENT_EXECUTE_ONLY_WORKSPACE_MANAGER = \u6C7A\u6E08\u306F\u696D\u52D9\u7A7A\u9593\u7BA1\u7406\u8005\u306E\u307F\u884C\u3046\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +PAYMENT_BUY_USER_MUST_BE_GREATER_THAN_ZERO = \u6C7A\u6E08\u3057\u3088\u3046\u3068\u3059\u308B\u30E6\u30FC\u30B6\u30FC\u6570\u306F0\u3088\u308A\u5927\u304D\u304F\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3002 +PAYMENT_NO_TYPE = \u6C7A\u6E08\u30BF\u30A4\u30D7\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PAYMENT_HISTORY_NOT_EXIST = \u6C7A\u6E08\u5C65\u6B74\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093\u3002 + +USER_WORKSPACE_MANAGER_NOT_EXIST = \u696D\u52D9\u7A7A\u9593\u7BA1\u7406\u8005\u60C5\u5831\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +OAUTH_STATE_VALUE_NOT_EQUAL = OAuth \u8A8D\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +WORKSPACE_NOT_EXIST = \u696D\u52D9\u7A7A\u9593\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +WORKSPACE_STORAGE_SIZE_EXCESS = \u696D\u52D9\u7A7A\u9593\u4FDD\u5B58\u7A7A\u9593\u304C\u8D85\u904E\u3057\u307E\u3057\u305F\u3002 \u4E0D\u8981\u306A\u30D5\u30A1\u30A4\u30EB\u3092\u6574\u7406\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +WORKSPACE_MANAGER_NOT_CHANGE_USE_YN = \u696D\u52D9\u7A7A\u9593\u7BA1\u7406\u8005\u306F\u975E\u6D3B\u6027\u5316\u306B\u5909\u66F4\u3055\u308C\u307E\u305B\u3093\u3002 +WORKSPACE_PERIOD_REMAIN = \u696D\u52D9\u7A7A\u9593\u4F7F\u7528\u671F\u9593\u304C\u6B8B\u3063\u3066\u3044\u307E\u3059\u3002 +WORKSPACE_USE_PERIOD_EXCESS = \u696D\u52D9\u7A7A\u9593\u4F7F\u7528\u671F\u9593\u304C\u7D42\u4E86\u3057,\u751F\u6210,\u4FEE\u6B63,\u524A\u9664,\u30A4\u30E1\u30FC\u30B8/\u30A8\u30AF\u30BB\u30EB\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u6A5F\u80FD\u304C\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +WORKSPACE_INCLUDE_DISABLED = \u5F53\u8A72\u696D\u52D9\u7A7A\u9593\u3067\u4E0D\u6D3B\u6027\u72B6\u614B\u3067\u3042\u308B\u305F\u3081,\u751F\u6210,\u4FEE\u6B63,\u524A\u9664,\u30A4\u30E1\u30FC\u30B8/\u30A8\u30AF\u30BB\u30EB\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u6A5F\u80FD\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 + +ATTACHED_FILE_NOT_EXIST = \u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u30D5\u30A1\u30A4\u30EB\u306Fjpg,png\u306E\u307F\u53EF\u80FD\u3067\u3059\u3002 + +START_ISSUE_STATUS_NOT_EXIST = \u59CB\u3081\u308B\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +END_ISSUE_STATUS_NOT_EXIST = \u7D42\u4E86\u3059\u308B\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 + +EMAIL_NOT_SEND = \u30E1\u30FC\u30EB\u304C\u8EE2\u9001\u3067\u304D\u307E\u305B\u3093\u3002 +INVITE_USER_USED_WORKSPACE = \u5F53\u8A72\u30E6\u30FC\u30B6\u30FC\u306F\u65E2\u306B\u696D\u52D9\u7A7A\u9593\u306B\u53C2\u52A0\u3057\u3066\u3044\u307E\u3059\u3002 + +PROJECT_ROLE_NOT_EXIST = \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5F79\u5272\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +WORKSPACE_NOT_NAME = \u696D\u52D9\u7A7A\u9593\u540D\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +WORKSPACE_MAX_USER_EXCESS = \u696D\u52D9\u7A7A\u9593\u306E\u6700\u5927\u30E6\u30FC\u30B6\u30FC\u6570\u304C\u8D85\u904E\u3057\u307E\u3057\u305F\u3002 \u6700\u5927\u30E6\u30FC\u30B6\u30FC\u6570\u304C\u8D85\u904E\u3059\u308B\u3068,\u62DB\u5F85\u3055\u308C\u305F\u30E6\u30FC\u30B6\u30FC\u304C\u305D\u306E\u696D\u52D9\u30B9\u30DA\u30FC\u30B9\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +WORKSPACE_MAX_USER_EXCESS_NOT_INCLUDE = \u696D\u52D9\u7A7A\u9593\u306E\u6700\u5927\u30E6\u30FC\u30B6\u6570\u304C\u8D85\u904E\u3057,\u53C2\u52A0\u72B6\u614B\u306B\u5909\u66F4\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +WORKSPACE_NAME_MAX_LENGTH_OUT = \u696D\u52D9\u7A7A\u9593\u540D\u306F\u6700\u592750 \u6587\u5B57\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059\u3002 + +DEFAULT_PROJECT_MANAGER_NOT_CHANGE = \u57FA\u672C\u63D0\u4F9B\u3055\u308C\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u306F\u696D\u52D9\u7A7A\u9593\u7BA1\u7406\u8005\u304C\u3044\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3002 + + +ISSUE_STATUS_NOT_ID = \u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u306EID\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ISSUE_STATUS_NAME_MAX_LENGTH_OUT = \u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u540D\u306F\u6700\u592750 \u6587\u5B57\u307E\u3067\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +ISSUE_STATUS_NOT_NAME = \u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u540D\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ISSUE_STATUS_NOT_COLOR = \u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u306E\u8272\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ISSUE_STATUS_USED_NAME = \u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u540D\u304C\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002 +ISSUE_STATUS_REMOVE_NOT_SELECT = \u524A\u9664\u3059\u308B\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u304C\u9078\u3070\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +DEFAULT_ISSUE_STATUS_NOT_REMOVE = \u57FA\u672C\u7684\u306B\u63D0\u4F9B\u3055\u308C\u308B\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u306F\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002 +ISSUE_STATUS_NOT_EXIST = \u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +READY_ISSUE_STATUS_NOT_EXIST = "\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u306E\u985E\u578B\u304C\u5927\u6C17\u306E\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002 +ISSUE_STATUS_CHANGE_NOT_TARGET = \u9078\u629E\u3057\u305F\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u306B\u5909\u66F4\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +ISSUE_STATUS_USE_ISSUES = \u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u30A4\u30B7\u30E5\u30FC\u304C\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002 +ISSUE_STATUS_USE_WORKFLOW = \u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002 + +WORKFLOW_NOT_EXIST = \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +WORKFLOW_NOT_NAME = \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u540D\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +WORKFLOW_NAME_MAX_LENGTH_OUT = \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u540D\u306F\u6700\u592720\u6587\u5B57\u307E\u3067\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +WORKFLOW_USED_NAME = \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u540D\u304C\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002 +WORKFLOW_TRANSITION_NOT_EXIST = \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u8EE2\u79FB\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +WORKFLOW_USED_ISSUE_TYPE = \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u3067\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u524A\u9664\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +WORKFLOW_ISOLATION = \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u5B64\u7ACB\u3057\u305F\u30A4\u30B7\u30E5\u30FC\u72B6\u614B\u304C\u5B58\u5728\u3057\u307E\u3059\u3002 +WORKFLOW_REMOVE_NOT_SELECT = \u524A\u9664\u3059\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u9078\u629E\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 + +CUSTOM_FIELD_NOT_EXIST = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +CUSTOM_FIELD_NOT_NAME = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u306F\u6700\u592750 \u6587\u5B57\u307E\u3067\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +CUSTOM_FIELD_USED_NAME = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u304C\u65E2\u306B\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +CUSTOM_FIELD_REMOVE_NOT_SELECT = \u524A\u9664\u3059\u308B\u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u9078\u629E\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = \u6587\u5B57\u5217\u30D5\u30A3\u30FC\u30EB\u30C9\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u5024\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u57FA\u672C\u5024\u304C\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u57FA\u672C\u5024\u306B\u91CD\u8907\u3057\u305F\u5024\u304C\u5B58\u5728\u3057\u307E\u3059\u3002 +CUSTOM_FIELD_OPTIONS_NOT_USE_MULTI_DEFAULT_VALUE = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3\u5024\u306B\u5BFE\u3059\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3068\u3057\u30662\u3064\u4EE5\u4E0A\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +CUSTOM_FIELD_OPTIONS_NOT_EMPTY_VALUE = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3\u5024\u306B\u7A7A\u767D\u3092\u767B\u9332\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +CUSTOM_FIELD_OPTIONS_NOT_VALUE = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3\u5024\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +CUSTOM_FIELD_TEXT_TYPE_MAX_LENGTH_OUT = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u6587\u5B57\u5217\u30D5\u30A3\u30FC\u30EB\u30C9\u306F\u6700\u5927100 \u6587\u5B57\u307E\u3067\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +CUSTOM_FIELD_DEFAULT_VALUE_MAX_LENGTH_OUT = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u57FA\u672C\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u306F,\u6700\u5927100 \u6587\u5B57\u307E\u3067\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +CUSTOM_FIELD_OPTION_VALUE_MAX_LENGTH_OUT = \u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3\u5024\u306F\u6700\u592715 \u6587\u5B57\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059\u3002 + +ISSUE_TYPE_NOT_EXIST = \u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +ISSUE_TYPE_NOT_NAME = \u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u540D\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ISSUE_TYPE_NAME_MAX_LENGTH_OUT = \u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u306F\u6700\u592750\u6587\u5B57\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059\u3002 +ISSUE_TYPE_USED_NAME = \u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u540D\u304C\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002 +ISSUE_TYPE_REMOVE_NOT_SELECT = \u524A\u9664\u3059\u308B\u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u304C\u9078\u3070\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ISSUE_TYPE_NOT_COLOR = \u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u306B\u8272\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ISSUE_TYPE_USE_ISSUES = \u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u30A4\u30B7\u30E5\u30FC\u304C\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002 + +PRIORITY_NOT_EXIST = \u512A\u5148\u9806\u4F4D\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +SEVERITY_NOT_EXIST = \u91CD\u8981\u5EA6\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 + +ISSUE_NOT_EXIST = \u30A4\u30B7\u30E5\u30FC\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +ISSUE_NUMBER_GENERATOR_NOT_EXIST = \u30A4\u30B7\u30E5\u30FC\u756A\u53F7\u306E\u751F\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +ISSUE_NUMBER_NOT_EXIST = \u30A4\u30B7\u30E5\u30FC\u756A\u53F7\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +ISSUE_TITLE_MAX_LENGTH_OUT = \u30A4\u30B7\u30E5\u30FC\u306E\u30BF\u30A4\u30C8\u30EB\u306F\u6700\u5927300\u6587\u5B57\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059\u3002 +ISSUE_NOT_MODIFY_PERMISSION = \u30A4\u30B7\u30E5\u30FC\u4FEE\u6B63\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ISSUE_REMOVE_NOT_SELECT = \u524A\u9664\u3059\u308B\u30A4\u30B7\u30E5\u30FC\u304C\u9078\u3070\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ISSUE_NO_TITLE = \u30A4\u30B7\u30E5\u30FC\u306E\u30BF\u30A4\u30C8\u30EB\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ISSUE_NOT_SEND_USER = \u554F\u984C\u767A\u9001\u5BFE\u8C61\u8005\u3092\u9078\u3073\u307E\u305B\u3093\u3067\u3057\u305F\u3002 + +ISSUE_COMMENT_REMOVE_NOT_SELECT = \u524A\u9664\u3059\u308B\u66F8\u304D\u8FBC\u307F\u3092\u9078\u3073\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +ISSUE_COMMENT_NOT_EXIST = \u30B3\u30E1\u30F3\u30C8\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +ISSUE_COMMENT_NOT_REMOVE_PERMISSION = \u30B3\u30E1\u30F3\u30C8\u3092\u524A\u9664\u3067\u304D\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ISSUE_COMMENT_NOT_COMMENT = \u30B3\u30E1\u30F3\u30C8\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +ISSUE_COMMENT_MAX_LENGTH_OUT = \u30B3\u30E1\u30F3\u30C8\u306F\u6700\u5927300\u6587\u5B57\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059\u3002 + +USER_WORKSPACE_NOT_EXIST = \u696D\u52D9\u7A7A\u9593\u30E6\u30FC\u30B6\u30FC\u9023\u7D50\u60C5\u5831\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 + +WIDGET_SEARCH_DATE_NOT_FOUND = \u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u691C\u7D22\u306E\u65E5\u4ED8\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002 + +USER_NO_NAME = \u540D\u524D\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +USER_NAME_LENGTH_EXCESS = \u30E6\u30FC\u30B6\u30FC\u540D\u306F\u6700\u592750\u6587\u5B57\u306E\u307F\u53EF\u80FD\u3067\u3059\u3002 +USER_NO_EMAIL = E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +USER_INVALID_EMAIL = \u9593\u9055\u3063\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u3059\u3002 +USER_USED_EMAIL = \u65E2\u306B\u52A0\u5165\u3057\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u3059\u3002 +USER_NO_PASSWORD = \u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +USER_NOT_MODIFY_SELF = \u4ED6\u306E\u4EBA\u306E\u60C5\u5831\u3092\u4FEE\u6B63\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +USER_PHONE_MAX_LENGTH_OUT = \u9023\u7D61\u5148\u306F\u6700\u592720\u6587\u5B57\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059\u3002 +USER_PHONE_ONLY_NUMBER = \u9023\u7D61\u5148\u306F\u6570\u5B57\u3060\u3051\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 +USER_PASSWORD_MAX_LENGTH_OUT = \u6697\u8A3C\u756A\u53F7\u306F\u6700\u592720\u6587\u5B57\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059\u3002 +USER_PASSWORD_NOT_SAME_CONFIRM_PASSWORD = \u65B0\u898F\u30D1\u30B9\u30EF\u30FC\u30C9\u3068\u65B0\u898F\u30D1\u30B9\u30EF\u30FC\u30C9\u78BA\u8A8D\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5165\u529B\u3057\u305F\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u7570\u306A\u308A\u307E\u3059\u3002 +USER_INVALID_CURRENT_PASSWORD = \u5165\u529B\u3057\u305F\u73FE\u5728\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +USER_INVALID_LICENSEKEY = The current license key entered is invalid. +USER_PASSWORD_SAME_NEW_PASSWORD = \u73FE\u5728\u4F7F\u7528\u3059\u308B\u6697\u8A3C\u756A\u53F7\u3068\u5909\u66F4\u3057\u3088\u3046\u3068\u3059\u308B\u6697\u8A3C\u756A\u53F7\u306F\u9055\u308F\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3002 +USER_WITH_DRAW_EXIST = \u5F53\u8A72\u52D8\u5B9A\u306F\u4F1A\u54E1\u8131\u9000\u8A18\u9332\u304C\u3042\u308A\u307E\u3059\u3002 +USER_PROFILE_SIZE_NOT_ALLOW = \u30E6\u30FC\u30B6\u30FC\u30D7\u30ED\u30D5\u30A3\u30EB\u306E\u30B5\u30A4\u30BA\u304C\u3068\u3066\u3082\u5927\u304D\u3044\u3067\u3059\u3002 10MB\u4EE5\u4E0B\u306E\u30D5\u30A1\u30A4\u30EB\u306B\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +USER_PROFILE_UPLOAD_FILE_TYPE_NOT_ALLOW = \u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u30D5\u30A1\u30A4\u30EB\u306Fjpg,png\u306E\u307F\u53EF\u80FD\u3067\u3059\u3002 +USER_NOT_EQUAL_PASSWORD = \u6697\u8A3C\u756A\u53F7\u304C\u5408\u3044\u307E\u305B\u3093\u3002 +USER_NOT_EXIST = \u4F7F\u7528\u8005\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +USER_NOT_AUTHORIZED = \u30E6\u30FC\u30B6\u8A8D\u8A3C\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +USER_EXPIRED_PASSWORD = \u6697\u8A3C\u756A\u53F7\u304C\u6E80\u4E86\u3057\u307E\u3057\u305F\u3002 +USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER = \u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u63A2\u3059\u6A5F\u80FD\u3092\u30BD\u30FC\u30B7\u30E3\u30EB\u30A2\u30AB\u30A6\u30F3\u30C8\u52A0\u5165\u30E6\u30FC\u30B6\u30FC\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +USER_NOT_USE_ACTIVE_STATUS = \u4F7F\u7528\u8005\u306F\u6D3B\u6027\u72B6\u614B\u3067\u306A\u3044\u3068\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u307E\u305B\u3093\u3002 + +EXCEL_NOT_EXTENSION = \u30A8\u30AF\u30BB\u30EB\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u5B50(xlsx)\u306E\u307F\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u304C\u53EF\u80FD\u3067\u3059\u3002 +EXCEL_DOWNLOAD_MAX_ROWS_OVER = \u30A8\u30AF\u30BB\u30EB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u306F10,000 \u4EF6\u7A0B\u5EA6\u53EF\u80FD\u3067\u3059\u3002 \u691C\u7D22\u6761\u4EF6\u3092\u4F7F\u7528\u3057\u3066\u7167\u4F1A\u3055\u308C\u308B\u30EA\u30B9\u30C8\u309210,000 \u4EF6\u4EE5\u4E0B\u306B\u5909\u66F4\u3057\u3066\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3092\u9032\u3081\u3066\u304F\u3060\u3055\u3044\u3002 +EXCEL_CONDITIONS_NOT_EXIST = \u30A8\u30AF\u30BB\u30EB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u306B\u5FC5\u8981\u306A\u691C\u7D22\u6761\u4EF6\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002 +EXCEL_EMPTY_CELL = \u30A8\u30AF\u30BB\u30EB\u30D8\u30C3\u30C0\u90E8\u5206\u30BB\u30EB\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002 \u30A8\u30AF\u30BB\u30EB\u4F5C\u6210\u69D8\u5F0F\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3059\u3002 +EXCEL_HEADER_EMPTY_CELL = \u30A8\u30AF\u30BB\u30EB\u30D8\u30C3\u30C0\u306B\u30A6\u30A3\u30FC\u30F3\u30BB\u30EB\u304C\u3042\u308A\u307E\u3059\u3002 +EXCEL_IMPORT_ISSUE_TITLE_IS_NULL=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u30A4\u30B7\u30E5\u30FC\u306E\u30BF\u30A4\u30C8\u30EB\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_PROJECT_KEY_IS_NULL=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30AD\u30FC\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_PROJECT_NOT_EXIST=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3055\u308C\u305F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30AD\u30FC\u3067\u691C\u7D22\u3055\u308C\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_ISSUE_TYPE_IS_NULL=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u540D\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_ISSUE_TYPE_NOT_EXIST=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3055\u308C\u305F\u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u540D\u3067\u691C\u7D22\u3055\u308C\u308B\u30A4\u30B7\u30E5\u30FC\u30BF\u30A4\u30D7\u306F\u3042\u308A\u307E\u305B\u3093\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_PRIORITY_IS_NULL=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u512A\u5148\u9806\u4F4D\u540D\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_PRIORITY_NOT_EXIST=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3055\u308C\u305F\u512A\u5148\u9806\u4F4D\u540D\u3067\u691C\u7D22\u3055\u308C\u308B\u512A\u5148\u9806\u4F4D\u304C\u3042\u308A\u307E\u305B\u3093\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_SEVERITY_IS_NULL=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u91CD\u8981\u5EA6\u540D\u304C\u5165\u529B\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_SEVERITY_NOT_EXIST=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3055\u308C\u305F\u91CD\u8981\u5EA6\u540D\u3067\u691C\u7D22\u3055\u308C\u308B\u512A\u5148\u9806\u4F4D\u304C\u3042\u308A\u307E\u305B\u3093\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_CUSTOM_FIELD_VALUE_NOT_VALIDITY=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3057\u305F\u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u5024\u306F\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_HEADER_CUSTOM_FIELD_NOT_EXIST=\u767B\u9332\u3057\u3088\u3046\u3068\u3059\u308B\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002 \u5F53\u8A72\u30E6\u30FC\u30B6\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u540D\u524D\u304C\u5909\u66F4\u3055\u308C\u305F\u304B,\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_PERIOD_NOT_VALIDITY= \u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3057\u305F\u958B\u59CB\u65E5,\u7D42\u4E86\u65E5\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3059\u3002 \u958B\u59CB\u65E5\u306F\u7D42\u4E86\u65E5\u3088\u308A\u65E9\u304F\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_PERIOD_NOT_VALIDITY_EMPTY=\u6B21\u306E\u30A8\u30AF\u30BB\u30EB\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3057\u305F\u958B\u59CB\u65E5,\u7D42\u4E86\u65E5\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3059\u3002 \u7A7A\u767D\u304C\u5165\u3063\u3066\u3044\u308B\u304B\u3092\u78BA\u8A8D\u3057\u3066\u304B\u3089\u7A7A\u767D\u3092\u53D6\u308A\u9664\u3044\u3066\u304F\u3060\u3055\u3044\u3002 \n \u30E9\u30A4\u30F3\u60C5\u5831 : {0} +EXCEL_IMPORT_MAX_ROWS_OVER = \u30A8\u30AF\u30BB\u30EB\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u30A4\u30B7\u30E5\u30FC\u767B\u9332\u306F\u6700\u59271\u4E07\u4EF6\u307E\u3067\u53EF\u80FD\u3067\u3059\u3002 \u3082\u3057\u4F5C\u6210\u3055\u308C\u305F\u30A8\u30AF\u30BB\u30EB\u304C1\u4E07\u4EF6\u4EE5\u4E0B\u306E\u5834\u5408,\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u8868\u793A\u3055\u308C\u305F\u3089,\u6700\u5F8C\u306E\u884C\u4EE5\u5F8C\u306E\u3059\u3079\u3066\u306E\u884C\u3092\u524A\u9664\u3057\u305F\u5F8C,\u518D\u3073\u8A66\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +RESERVATION_EMAIL_TITLE=[OWL ITS] \u533F\u540D\u30A4\u30B7\u30E5\u30FC\u304A\u3088\u3073\u6D3B\u52D5\u73FE\u72B6\u3067\u3059\u3002 + +ISSUE_RESERVATION_VALUE_INVALID=\u30A4\u30B7\u30E5\u30FC\u767A\u751F\u306E\u4E88\u7D04\u65E5\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +ISSUE_RESERVATION_NOT_EXIST=\u30A4\u30B7\u30E5\u30FC\u767A\u751F\u306E\u4E88\u7D04\u60C5\u5831\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 + +FILE_TYPE_NOT_ALLOW = \u8A31\u3055\u308C\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7\u3067\u3059\u3002 +WORKSPACE_OUT=\u53C2\u52A0\u3059\u308B\u6B21\u306E\u696D\u52D9\u7A7A\u9593\u3067\u9664\u5916\u3055\u308C\u307E\u3057\u305F\u3002 ({0}) + +NOTICE_NOT_EXIST=\u516C\u77E5\u4E8B\u9805\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +NOTICE_EMPTY_CONTENT=\u7A7A\u5730\u4E8B\u9805\u306E\u30BF\u30A4\u30C8\u30EB\u304A\u3088\u3073\u5185\u5BB9\u306E\u3046\u3061,\u5165\u529B\u5024\u304C\u306A\u3044\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u3059\u3002 + +FAQ_NOT_EXIST=FAQ does not exist. +FAQ_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +GUIDE_NOT_EXIST=Guide does not exist. +GUIDE_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +EVENT_NOT_EXIST=Event does not exist. +EVENT_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +QNA_NOT_EXIST=QNA does not exist. +QNA_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties new file mode 100644 index 0000000..15bda99 --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties @@ -0,0 +1,193 @@ +ERR_FAILED_CONVERT_OBJECT = \uB370\uC774\uD130 \uBCC0\uD658\uC744 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. +TARGET_OBJECT_IS_NULL = \uD0C0\uAC9F \uC624\uBE0C\uC81D\uD2B8\uAC00 Null \uC785\uB2C8\uB2E4. +SOURCE_OBJECT_IS_NULL = \uC18C\uC2A4 \uC624\uBE0C\uC81D\uD2B8\uAC00 Null \uC785\uB2C8\uB2E4. +ERR_FAILED_CONVERT_JSON = \uC694\uCCAD \uB370\uC774\uD130\uC758 json \uBCC0\uD658\uC744 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. +NOT_READABLE_JSON_DATA = Json \uB370\uC774\uD130\uB97C \uC77D\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +SUCCESS_REQUEST = \uC694\uCCAD\uC774 \uC131\uACF5\uD558\uC600\uC2B5\uB2C8\uB2E4. +SESSION_EXPIRED = \uC0AC\uC6A9\uC790 \uC138\uC158\uC774 \uC885\uB8CC \uB418\uC5C8\uC2B5\uB2C8\uB2E4. + + + + +PROJECT_NAME_MAX_LENGTH_OUT = \uD504\uB85C\uC81D\uD2B8 \uBA85\uC740 \uCD5C\uB300 50\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +DATE_PICKER_NOT_AVAILABLE = \uB0A0\uC9DC \uC120\uD0DD\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +PROJECT_NOT_EXIST = \uD504\uB85C\uC81D\uD2B8\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +PROJECT_NOT_MANAGER = \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC\uC790\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +PROJECT_NOT_MODIFY_PERMISSION = \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC \uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. +PROJECT_NOT_NAME = \uD504\uB85C\uC81D\uD2B8 \uC774\uB984\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +PROJECT_NOT_STATUS = \uD504\uB85C\uC81D\uD2B8\uC758 \uC0C1\uD0DC\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +DATE_NOT_EXIST = \uAE30\uAC04\uC774 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +PROJECT_OVER_LENGTH_PROJECT_KEY = \uD504\uB85C\uC81D\uD2B8 \uD0A4\uB294 \uCD5C\uB300 10\uAE00\uC790\uB9CC \uC785\uB825 \uAC00\uB2A5\uD569\uB2C8\uB2E4. +PROJECT_KEY_NOT_EXIST = \uD504\uB85C\uC81D\uD2B8 \uD0A4\uAC00 \uC785\uB825 \uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +PROJECT_USED_NAME = \uD504\uB85C\uC81D\uD2B8 \uC774\uB984\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. +DEFAULT_PROJECT_NOT_REMOVE = \uAE30\uBCF8\uC73C\uB85C \uC81C\uACF5\uB418\uB294 \uD504\uB85C\uC81D\uD2B8\uB294 \uC0AD\uC81C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +PROJECT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uD504\uB85C\uC81D\uD2B8\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +PROJECT_NOT_INCLUDE_USER = \uC120\uD0DD\uD55C \uB2F4\uB2F9\uC790 \uC911 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uCC38\uC5EC\uD558\uACE0 \uC788\uC9C0 \uC54A\uC740 \uC0AC\uC6A9\uC790\uAC00 \uC788\uC2B5\uB2C8\uB2E4. +PROJECT_USED_PROJECT_KEY = \uD504\uB85C\uC81D\uD2B8 \uD0A4\uAC00 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. + +PAYMENT_TYPE_NOT_EXIST = \uACB0\uC81C \uBC29\uC2DD\uC774 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +PAYMENT_NOT_EXIST = \uACB0\uC81C \uC815\uBCF4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. +PAYMENT_EXECUTE_ONLY_WORKSPACE_MANAGER = \uACB0\uC81C\uB294 \uC5C5\uBB34 \uACF5\uAC04 \uAD00\uB9AC\uC790\uB9CC \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +PAYMENT_BUY_USER_MUST_BE_GREATER_THAN_ZERO = \uACB0\uC81C\uD558\uB824\uB294 \uC0AC\uC6A9\uC790 \uC218\uB294 0\uBCF4\uB2E4 \uCEE4\uC57C \uD569\uB2C8\uB2E4. +PAYMENT_NO_TYPE = \uACB0\uC81C \uC720\uD615\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +PAYMENT_HISTORY_NOT_EXIST = \uACB0\uC81C \uC774\uB825 \uC815\uBCF4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. + + +USER_WORKSPACE_MANAGER_NOT_EXIST = \uC5C5\uBB34 \uACF5\uAC04 \uAD00\uB9AC\uC790 \uC815\uBCF4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +OAUTH_STATE_VALUE_NOT_EQUAL = OAuth \uC778\uC99D\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. +WORKSPACE_NOT_EXIST = \uC5C5\uBB34 \uACF5\uAC04\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +WORKSPACE_STORAGE_SIZE_EXCESS = \uC5C5\uBB34 \uACF5\uAC04 \uC800\uC7A5 \uACF5\uAC04\uC774 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBD88\uD544\uC694\uD55C \uD30C\uC77C\uC744 \uC815\uB9AC\uD558\uC138\uC694. +WORKSPACE_MANAGER_NOT_CHANGE_USE_YN = \uC5C5\uBB34 \uACF5\uAC04 \uAD00\uB9AC\uC790\uB294 \uBE44\uD65C\uC131\uD654\uB85C \uBCC0\uACBD \uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +WORKSPACE_PERIOD_REMAIN = \uC5C5\uBB34 \uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04\uC774 \uB0A8\uC544 \uC788\uC2B5\uB2C8\uB2E4. +WORKSPACE_USE_PERIOD_EXCESS = \uC5C5\uBB34 \uACF5\uAC04 \uC0AC\uC6A9 \uAE30\uAC04\uC774 \uC885\uB8CC\uB418\uC5B4 \uC0DD\uC131, \uC218\uC815, \uC0AD\uC81C, \uC774\uBBF8\uC9C0/\uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC \uAE30\uB2A5\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +WORKSPACE_INCLUDE_DISABLED = \uD574\uB2F9 \uC5C5\uBB34 \uACF5\uAC04\uC5D0\uC11C \uBE44\uD65C\uC131 \uC0C1\uD0DC\uC774\uBBC0\uB85C \uC0DD\uC131, \uC218\uC815, \uC0AD\uC81C, \uC774\uBBF8\uC9C0/\uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC \uAE30\uB2A5\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. + +ATTACHED_FILE_NOT_EXIST = \uCCA8\uBD80 \uD30C\uC77C \uC815\uBCF4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. + +START_ISSUE_STATUS_NOT_EXIST = \uC2DC\uC791\uD558\uB294 \uC774\uC288 \uC0C1\uD0DC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +END_ISSUE_STATUS_NOT_EXIST = \uC885\uB8CC\uD558\uB294 \uC774\uC288 \uC0C1\uD0DC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. + +EMAIL_NOT_SEND = \uBA54\uC77C\uC744 \uC804\uC1A1\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +INVITE_USER_USED_WORKSPACE = \uD574\uB2F9 \uC0AC\uC6A9\uC790\uB294 \uC774\uBBF8 \uC5C5\uBB34 \uACF5\uAC04\uC5D0 \uCC38\uC5EC\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4. + +PROJECT_ROLE_NOT_EXIST = \uD504\uB85C\uC81D\uD2B8 \uC5ED\uD560\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +WORKSPACE_NOT_NAME = \uC5C5\uBB34 \uACF5\uAC04 \uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +WORKSPACE_MAX_USER_EXCESS = \uC5C5\uBB34 \uACF5\uAC04\uC758 \uCD5C\uB300 \uC0AC\uC6A9\uC790 \uC218\uAC00 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uCD5C\uB300 \uC0AC\uC6A9\uC790 \uC218\uAC00 \uCD08\uACFC\uB418\uBA74 \uCD08\uB300\uBC1B\uC740 \uC0AC\uC6A9\uC790\uAC00 \uD574\uB2F9 \uC5C5\uBB34 \uACF5\uAC04\uB97C \uC811\uADFC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +WORKSPACE_MAX_USER_EXCESS_NOT_INCLUDE = \uC5C5\uBB34 \uACF5\uAC04\uC758 \uCD5C\uB300 \uC0AC\uC6A9\uC790 \uC218\uAC00 \uCD08\uACFC\uB418\uC5B4 \uCC38\uC5EC \uC0C1\uD0DC\uB85C \uBCC0\uACBD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +WORKSPACE_NAME_MAX_LENGTH_OUT = \uC5C5\uBB34 \uACF5\uAC04 \uBA85\uC740 \uCD5C\uB300 50\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. + +DEFAULT_PROJECT_MANAGER_NOT_CHANGE = \uAE30\uBCF8 \uC81C\uACF5\uB418\uB294 \uD504\uB85C\uC81D\uD2B8\uC758 \uAD00\uB9AC\uC790\uB294 \uC5C5\uBB34 \uACF5\uAC04 \uAD00\uB9AC\uC790\uAC00 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4. + + +ISSUE_STATUS_NOT_ID = \uC774\uC288 \uC0C1\uD0DC \uC544\uC774\uB514\uAC00 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_STATUS_NAME_MAX_LENGTH_OUT = \uC774\uC288 \uC0C1\uD0DC \uBA85\uC740 \uCD5C\uB300 50\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +ISSUE_STATUS_NOT_NAME = \uC774\uC288 \uC0C1\uD0DC \uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_STATUS_NOT_COLOR = \uC774\uC288 \uC0C1\uD0DC\uC758 \uC0C9\uC0C1\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_STATUS_USED_NAME = \uC774\uC288 \uC0C1\uD0DC \uBA85\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. +ISSUE_STATUS_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC774\uC288 \uC0C1\uD0DC\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +DEFAULT_ISSUE_STATUS_NOT_REMOVE = \uAE30\uBCF8\uC73C\uB85C \uC81C\uACF5\uB418\uB294 \uC774\uC288 \uC0C1\uD0DC\uB294 \uC0AD\uC81C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +ISSUE_STATUS_NOT_EXIST = \uC774\uC288 \uC0C1\uD0DC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +READY_ISSUE_STATUS_NOT_EXIST = \uC774\uC288 \uC0C1\uD0DC \uC720\uD615\uC774 \uB300\uAE30\uC778 \uC774\uC288 \uC0C1\uD0DC\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +ISSUE_STATUS_CHANGE_NOT_TARGET = \uC120\uD0DD\uD55C \uC774\uC288 \uC0C1\uD0DC\uB85C \uBCC0\uACBD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC6CC\uD06C\uD50C\uB85C\uC6B0\uB97C \uD655\uC778\uD558\uC138\uC694. +ISSUE_STATUS_USE_ISSUES = \uC774\uC288 \uC0C1\uD0DC\uB97C \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uC774\uC288\uAC00 \uC874\uC7AC\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4. +ISSUE_STATUS_USE_WORKFLOW = \uC774\uC288 \uC0C1\uD0DC\uB97C \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uC6CC\uD06C\uD50C\uB85C\uC6B0\uAC00 \uC874\uC7AC\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4. + +WORKFLOW_NOT_EXIST = \uC6CC\uD06C\uD50C\uB85C\uC6B0\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +WORKFLOW_NOT_NAME = \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +WORKFLOW_NAME_MAX_LENGTH_OUT = \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uBA85\uC740 \uCD5C\uB300 20\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +WORKFLOW_USED_NAME = \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uBA85\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. +WORKFLOW_TRANSITION_NOT_EXIST = \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC804\uC774\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +WORKFLOW_USED_ISSUE_TYPE = \uC6CC\uD06C\uD50C\uB85C\uC6B0\uAC00 \uC774\uC288 \uD0C0\uC785\uC5D0\uC11C \uC0AC\uC6A9\uB418\uACE0 \uC788\uC5B4\uC11C \uC0AD\uC81C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +WORKFLOW_ISOLATION = \uC6CC\uD06C\uD50C\uB85C\uC6B0\uC5D0 \uACE0\uB9BD\uB41C \uC774\uC288 \uC0C1\uD0DC\uAC00 \uC874\uC7AC\uD569\uB2C8\uB2E4. +WORKFLOW_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC6CC\uD06C\uD50C\uB85C\uC6B0\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. + +CUSTOM_FIELD_NOT_EXIST = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_NOT_NAME = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC740 \uCD5C\uB300 50\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_USED_NAME = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = \uBB38\uC790\uC5F4 \uD544\uB4DC\uB294 \uC635\uC158 \uAC12\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAE30\uBCF8 \uAC12\uC774 \uC635\uC158\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAE30\uBCF8 \uAC12\uC5D0 \uC911\uBCF5\uB41C \uAC12\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4. +CUSTOM_FIELD_OPTIONS_NOT_USE_MULTI_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uC635\uC158 \uAC12\uC5D0 \uB300\uD55C \uAE30\uBCF8 \uAC12\uC73C\uB85C 2\uAC1C \uC774\uC0C1 \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_OPTIONS_NOT_EMPTY_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uC635\uC158 \uAC12\uC5D0 \uACF5\uBC31\uC744 \uB4F1\uB85D\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_OPTIONS_NOT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uC635\uC158 \uAC12\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_TEXT_TYPE_MAX_LENGTH_OUT = \uC0AC\uC6A9\uC790 \uC815\uC758 \uBB38\uC790\uC5F4 \uD544\uB4DC\uB294 \uCD5C\uB300 100\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_DEFAULT_VALUE_MAX_LENGTH_OUT = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC\uC758 \uAE30\uBCF8 \uAC12 \uD544\uB4DC\uB294 \uCD5C\uB300 100\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +CUSTOM_FIELD_OPTION_VALUE_MAX_LENGTH_OUT = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uC635\uC158 \uAC12\uC740 \uCD5C\uB300 15\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. + +ISSUE_TYPE_NOT_EXIST = \uC774\uC288 \uD0C0\uC785\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +ISSUE_TYPE_NOT_NAME = \uC774\uC288 \uD0C0\uC785 \uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_TYPE_NAME_MAX_LENGTH_OUT = \uC774\uC288 \uD0C0\uC785\uC740 \uCD5C\uB300 50\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +ISSUE_TYPE_USED_NAME = \uC774\uC288 \uD0C0\uC785 \uBA85\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. +ISSUE_TYPE_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC774\uC288 \uD0C0\uC785\uC774 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_TYPE_NOT_COLOR = \uC774\uC288 \uD0C0\uC785\uC5D0 \uC0C9\uC0C1\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_TYPE_USE_ISSUES = \uC774\uC288 \uD0C0\uC785\uC744 \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uC774\uC288\uAC00 \uC874\uC7AC\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4. + +PRIORITY_NOT_EXIST = \uC6B0\uC120\uC21C\uC704\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +SEVERITY_NOT_EXIST = \uC911\uC694\uB3C4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. + +ISSUE_NOT_EXIST = \uC774\uC288\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +ISSUE_NUMBER_GENERATOR_NOT_EXIST = \uC774\uC288 \uBC88\uD638 \uC0DD\uC131 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD558\uC600\uC2B5\uB2C8\uB2E4. +ISSUE_NUMBER_NOT_EXIST = \uC774\uC288 \uBC88\uD638\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +ISSUE_TITLE_MAX_LENGTH_OUT = \uC774\uC288 \uC81C\uBAA9\uC740 \uCD5C\uB300 300\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +ISSUE_NOT_MODIFY_PERMISSION = \uC774\uC288 \uC218\uC815 \uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. +ISSUE_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC774\uC288\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_NO_TITLE = \uC774\uC288 \uC81C\uBAA9\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_NOT_SEND_USER = \uC774\uC288 \uBC1C\uC1A1 \uB300\uC0C1\uC790\uB97C \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. + +ISSUE_COMMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uB313\uAE00\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_COMMENT_NOT_EXIST = \uB313\uAE00\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +ISSUE_COMMENT_NOT_REMOVE_PERMISSION = \uB313\uAE00\uC744 \uC0AD\uC81C\uD560 \uC218 \uC788\uB294 \uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. +ISSUE_COMMENT_NOT_COMMENT = \uB313\uAE00\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +ISSUE_COMMENT_MAX_LENGTH_OUT = \uB313\uAE00\uC740 \uCD5C\uB300 300\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. + +USER_WORKSPACE_NOT_EXIST = \uC5C5\uBB34 \uACF5\uAC04 \uC0AC\uC6A9\uC790 \uC5F0\uACB0 \uC815\uBCF4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. + +WIDGET_SEARCH_DATE_NOT_FOUND = \uC704\uC82F \uAC80\uC0C9 \uC77C\uC790\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. + +USER_NO_NAME = \uC774\uB984\uC774 \uC785\uB825 \uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +USER_NAME_LENGTH_EXCESS = \uC0AC\uC6A9\uC790 \uC774\uB984\uC740 \uCD5C\uB300 50\uAE00\uC790\uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. +USER_NO_EMAIL = \uC774\uBA54\uC77C \uC8FC\uC18C\uAC00 \uC785\uB825 \uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +USER_INVALID_EMAIL = \uC798\uBABB\uB41C \uC774\uBA54\uC77C \uC8FC\uC18C \uC785\uB2C8\uB2E4. +USER_USED_EMAIL = \uC774\uBBF8 \uAC00\uC785\uB41C \uC774\uBA54\uC77C \uC8FC\uC18C \uC785\uB2C8\uB2E4. +USER_NO_PASSWORD = \uBE44\uBC00\uBC88\uD638\uAC00 \uC785\uB825 \uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. +USER_NOT_MODIFY_SELF = \uB2E4\uB978 \uC0AC\uB78C\uC758 \uC815\uBCF4\uB97C \uC218\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +USER_PHONE_MAX_LENGTH_OUT = \uC5F0\uB77D\uCC98\uB294 \uCD5C\uB300 20\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +USER_PHONE_ONLY_NUMBER = \uC5F0\uB77D\uCC98\uB294 \uC22B\uC790\uB9CC \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +USER_PASSWORD_MAX_LENGTH_OUT = \uBE44\uBC00\uBC88\uD638\uB294 \uCD5C\uB300 20\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +USER_PASSWORD_NOT_SAME_CONFIRM_PASSWORD = \uC2E0\uADDC \uBE44\uBC00\uBC88\uD638\uC640 \uC2E0\uADDC \uBE44\uBC00\uBC88\uD638 \uD655\uC778 \uD544\uB4DC\uC5D0 \uC785\uB825\uD55C \uBE44\uBC00\uBC88\uD638\uAC00 \uB2E4\uB985\uB2C8\uB2E4. +USER_INVALID_CURRENT_PASSWORD = \uC785\uB825\uD55C \uD604\uC7AC \uBE44\uBC00\uBC88\uD638\uAC00 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +USER_INVALID_LICENSEKEY = \uC785\uB825\uD55C \uB77C\uC774\uC13C\uC2A4 \uBC88\uD638\uB294 \uC798\uBABB\uB41C \uBC88\uD638\uC785\uB2C8\uB2E4. +USER_PASSWORD_SAME_NEW_PASSWORD = \uD604\uC7AC \uC0AC\uC6A9\uD558\uB294 \uBE44\uBC00\uBC88\uD638\uC640 \uBCC0\uACBD\uD558\uB824\uB294 \uBE44\uBC00\uBC88\uD638\uB294 \uB2EC\uB77C\uC57C \uD569\uB2C8\uB2E4. +USER_WITH_DRAW_EXIST = \uD574\uB2F9 \uACC4\uC815\uC740 \uD68C\uC6D0 \uD0C8\uD1F4 \uAE30\uB85D\uC774 \uC788\uC2B5\uB2C8\uB2E4. +USER_PROFILE_SIZE_NOT_ALLOW = \uC0AC\uC6A9\uC790 \uD504\uB85C\uD544 \uC0AC\uC774\uC988\uAC00 \uB108\uBB34 \uD07D\uB2C8\uB2E4. 10MB \uC774\uD558 \uD30C\uC77C\uB85C \uC5C5\uB85C\uB4DC\uD574\uC8FC\uC138\uC694. +USER_PROFILE_UPLOAD_FILE_TYPE_NOT_ALLOW = \uD504\uB85C\uD544 \uD30C\uC77C\uC740 jpg, png \uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. +USER_NOT_EQUAL_PASSWORD = \uBE44\uBC00\uBC88\uD638\uAC00 \uB9DE\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +USER_NOT_EXIST = \uC0AC\uC6A9\uC790\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +USER_NOT_AUTHORIZED = \uC0AC\uC6A9\uC790 \uC778\uC99D \uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. +USER_EXPIRED_PASSWORD = \uBE44\uBC00\uBC88\uD638\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER = \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30 \uAE30\uB2A5\uC744 \uC18C\uC15C \uACC4\uC815 \uAC00\uC785 \uC0AC\uC6A9\uC790\uB294 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +USER_NOT_USE_ACTIVE_STATUS = \uC0AC\uC6A9\uC790\uB294 \uD65C\uC131 \uC0C1\uD0DC\uAC00 \uC544\uB2C8\uBA74 \uB85C\uADF8\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. + +EXCEL_NOT_EXTENSION = \uC5D1\uC140 \uD30C\uC77C \uD655\uC7A5\uC790 (xlsx)\uB9CC \uC5C5\uB85C\uB4DC\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4. +EXCEL_DOWNLOAD_MAX_ROWS_OVER = \uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC\uB294 1.000 \uAC74 \uAE4C\uC9C0\uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. \uAC80\uC0C9 \uC870\uAC74\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC870\uD68C\uB418\uB294 \uBAA9\uB85D\uC744 1,000 \uAC74 \uC774\uD558\uB85C \uBCC0\uACBD\uD558\uC5EC \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC9C4\uD589\uD574\uC8FC\uC138\uC694. +EXCEL_CONDITIONS_NOT_EXIST = \uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC\uC5D0 \uD544\uC694\uD55C \uAC80\uC0C9 \uC870\uAC74\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +EXCEL_EMPTY_CELL = \uC5D1\uC140 \uD5E4\uB354 \uBD80\uBD84 \uC140\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC5D1\uC140 \uC791\uC131 \uC591\uC2DD\uC5D0 \uBB38\uC81C\uAC00 \uC788\uC2B5\uB2C8\uB2E4. +EXCEL_HEADER_EMPTY_CELL = \uC5D1\uC140 \uD5E4\uB354\uC5D0 \uBE48 \uC140\uC774 \uC788\uC2B5\uB2C8\uB2E4. +EXCEL_IMPORT_ISSUE_TITLE_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC774\uC288 \uC81C\uBAA9\uC774 \uC785\uB825\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_PROJECT_KEY_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uD504\uB85C\uC81D\uD2B8 \uD0A4\uAC00 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_PROJECT_NOT_EXIST=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC785\uB825\uB41C \uD504\uB85C\uC81D\uD2B8 \uD0A4\uB85C \uAC80\uC0C9\uB418\uB294 \uD504\uB85C\uC81D\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_ISSUE_TYPE_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC774\uC288 \uD0C0\uC785 \uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_ISSUE_TYPE_NOT_EXIST=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC785\uB825\uB41C \uC774\uC288 \uD0C0\uC785 \uBA85\uC73C\uB85C \uAC80\uC0C9\uB418\uB294 \uC774\uC288 \uD0C0\uC785\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_PRIORITY_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC6B0\uC120\uC21C\uC704 \uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_PRIORITY_NOT_EXIST=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC785\uB825\uB41C \uC6B0\uC120\uC21C\uC704 \uBA85\uC73C\uB85C \uAC80\uC0C9\uB418\uB294 \uC6B0\uC120\uC21C\uC704\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_SEVERITY_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC911\uC694\uB3C4 \uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_SEVERITY_NOT_EXIST=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC785\uB825\uB41C \uC911\uC694\uB3C4 \uBA85\uC73C\uB85C \uAC80\uC0C9\uB418\uB294 \uC6B0\uC120\uC21C\uC704\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_CUSTOM_FIELD_VALUE_NOT_VALIDITY=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC785\uB825\uD55C \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAC12\uC774 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_HEADER_CUSTOM_FIELD_NOT_EXIST=\uB4F1\uB85D\uD558\uB824\uB294 \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uD574\uB2F9 \uC0AC\uC6A9\uC790 \uC815\uC758\uD544\uB4DC\uC758 \uC774\uB984\uC774 \uBCC0\uACBD\uB418\uC5C8\uAC70\uB098 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_PERIOD_NOT_VALIDITY= \uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC785\uB825\uD55C \uC2DC\uC791\uC77C, \uC885\uB8CC\uC77C\uC5D0 \uBB38\uC81C\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \uC2DC\uC791\uC77C\uC740 \uC885\uB8CC\uC77C\uBCF4\uB2E4 \uBE68\uB77C\uC57C \uD569\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_PERIOD_NOT_VALIDITY_EMPTY=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uC785\uB825\uD55C \uC2DC\uC791\uC77C, \uC885\uB8CC\uC77C\uC5D0 \uBB38\uC81C\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \uACF5\uBC31\uC774 \uD3EC\uD568\uB418\uC5B4 \uC788\uB294\uC9C0 \uD655\uC778 \uD6C4 \uACF5\uBC31\uC744 \uC81C\uAC70\uD558\uC138\uC694. \n \uB77C\uC778 \uC815\uBCF4 : {0} +EXCEL_IMPORT_MAX_ROWS_OVER = \uC5D1\uC140 \uC5C5\uB85C\uB4DC\uB85C \uC774\uC288 \uB4F1\uB85D\uC740 \uCD5C\uB300 1,000 \uAC74\uAE4C\uC9C0\uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. \uB9CC\uC57D \uC791\uC131\uB41C \uC5D1\uC140\uC774 1,000 \uAC74 \uC774\uD558\uC77C \uACBD\uC6B0 \uC774 \uBA54\uC2DC\uC9C0\uAC00 \uD45C\uC2DC\uB418\uBA74 \uB9C8\uC9C0\uB9C9 \uC791\uC131\uB41C \uD589\uC774\uD6C4\uC758 \uBAA8\uB4E0 \uD589\uC744 \uC0AD\uC81C\uD55C \uD6C4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694. +RESERVATION_EMAIL_TITLE=[OWL ITS] \uC5B4\uC81C \uC774\uC288 \uBC0F \uD65C\uB3D9 \uD604\uD669\uC785\uB2C8\uB2E4. + +ISSUE_RESERVATION_VALUE_INVALID=\uC774\uC288 \uBC1C\uC0DD \uC608\uC57D\uC77C\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +ISSUE_RESERVATION_NOT_EXIST=\uC774\uC288 \uBC1C\uC0DD \uC608\uC57D \uC815\uBCF4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. + +FILE_TYPE_NOT_ALLOW = \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC740 \uD30C\uC77C \uC720\uD615\uC785\uB2C8\uB2E4. +WORKSPACE_OUT=\uCC38\uC5EC\uD558\uB294 \uB2E4\uC74C \uC5C5\uBB34 \uACF5\uAC04\uC5D0\uC11C \uC81C\uC678\uB418\uC5C8\uC2B5\uB2C8\uB2E4. ({0}) + +NOTICE_NOT_EXIST=\uACF5\uC9C0\uC0AC\uD56D\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +NOTICE_EMPTY_CONTENT=\uACF5\uC9C0\uC0AC\uD56D \uC81C\uBAA9 \uBC0F \uB0B4\uC6A9 \uC911 \uC785\uB825 \uAC12\uC774 \uC5C6\uB294 \uD544\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4. + +FAQ_NOT_EXIST=FAQ\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +FAQ_EMPTY_CONTENT=FAQ \uC81C\uBAA9 \uBC0F \uB0B4\uC6A9 \uC911 \uC785\uB825 \uAC12\uC774 \uC5C6\uB294 \uD544\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4. + +GUIDE_NOT_EXIST=\uAC00\uC774\uB4DC\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +GUIDE_EMPTY_CONTENT=\uAC00\uC774\uB4DC\uAC00 \uC81C\uBAA9 \uBC0F \uB0B4\uC6A9 \uC911 \uC785\uB825 \uAC12\uC774 \uC5C6\uB294 \uD544\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4. + +EVENT_NOT_EXIST=\uC774\uBCA4\uD2B8\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +EVENT_EMPTY_CONTENT=\uC774\uBCA4\uD2B8\uAC00 \uC81C\uBAA9 \uBC0F \uB0B4\uC6A9 \uC911 \uC785\uB825 \uAC12\uC774 \uC5C6\uB294 \uD544\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4. + +QNA_NOT_EXIST=QnA\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +QNA_EMPTY_CONTENT=QnA\uAC00 \uC81C\uBAA9 \uBC0F \uB0B4\uC6A9 \uC911 \uC785\uB825 \uAC12\uC774 \uC5C6\uB294 \uD544\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/i18n/messages_vi_VN.properties b/src/main/webapp/WEB-INF/i18n/messages_vi_VN.properties new file mode 100644 index 0000000..14867fd --- /dev/null +++ b/src/main/webapp/WEB-INF/i18n/messages_vi_VN.properties @@ -0,0 +1,192 @@ +ERR_FAILED_CONVERT_OBJECT = Vi\u1EC7c thay \u0111\u1ED5i d\u1EEF li\u1EC7u th\u1EA5t b\u1EA1i. +TARGET_OBJECT_IS_NULL = \u0110\u1ED1i t\u01B0\u1EE3ng \u0111\u00EDch l\u00E0 null. +SOURCE_OBJECT_IS_NULL = \u0110\u1ED1i t\u01B0\u1EE3ng ngu\u1ED3n l\u00E0 null. +ERR_FAILED_CONVERT_JSON = Vi\u1EC7c chuy\u1EC3n \u0111\u1ED5i d\u1EEF li\u1EC7u y\u00EAu c\u1EA7u l\u00E0 th\u1EA5t b\u1EA1i. +NOT_READABLE_JSON_DATA = Kh\u00F4ng th\u1EC3 \u0111\u1ECDc d\u1EEF li\u1EC7u c\u1EE7a Json. +SUCCESS_REQUEST = T\u00F4i \u0111\u00E3 y\u00EAu c\u1EA7u th\u00E0nh c\u00F4ng. +SESSION_EXPIRED = Set ng\u01B0\u1EDDi d\u00F9ng \u0111\u00E3 k\u1EBFt th\u00FAc. + + + + +PROJECT_NAME_MAX_LENGTH_OUT = T\u00EAn d\u1EF1 \u00E1n c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 50 k\u00FD t\u1EF1. +DATE_PICKER_NOT_AVAILABLE = Ch\u1ECDn ng\u00E0y sai r\u1ED3i. +PROJECT_NOT_EXIST = D\u1EF1 \u00E1n kh\u00F4ng t\u1ED3n t\u1EA1i. +PROJECT_NOT_MANAGER = Kh\u00F4ng c\u00F3 ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. +PROJECT_NOT_MODIFY_PERMISSION = Kh\u00F4ng c\u00F3 quy\u1EC1n qu\u1EA3n l\u00FD d\u1EF1 \u00E1n. +PROJECT_NOT_NAME = T\u00EAn d\u1EF1 \u00E1n kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp. +PROJECT_NOT_STATUS = T\u00ECnh tr\u1EA1ng c\u1EE7a d\u1EF1 \u00E1n kh\u00F4ng \u0111\u01B0\u1EE3c l\u1EF1a ch\u1ECDn. +DATE_NOT_EXIST = Th\u1EDDi gian kh\u00F4ng \u0111\u01B0\u1EE3c l\u1EF1a ch\u1ECDn. +PROJECT_OVER_LENGTH_PROJECT_KEY = Chi\u1EC1u cao c\u1EE7a d\u1EF1 \u00E1n ch\u1EC9 c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 10 k\u00FD t\u1EF1. +PROJECT_KEY_NOT_EXIST = Chi\u1EC1u cao d\u1EF1 \u00E1n kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp. +PROJECT_USED_NAME = T\u00EAn d\u1EF1 \u00E1n \u0111\u00E3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. +DEFAULT_PROJECT_NOT_REMOVE = Kh\u00F4ng th\u1EC3 x\u00F3a b\u1ECF d\u1EF1 \u00E1n \u0111\u01B0\u1EE3c cung c\u1EA5p d\u1EF1a tr\u00EAn c\u01A1 b\u1EA3n. +PROJECT_REMOVE_NOT_SELECT = D\u1EF1 \u00E1n s\u1EBD kh\u00F4ng \u0111\u01B0\u1EE3c ch\u1ECDn. +PROJECT_NOT_INCLUDE_USER = Ng\u01B0\u1EDDi s\u1EED d\u1EE5ng kh\u00F4ng tham gia v\u00E0o d\u1EF1 \u00E1n. +PROJECT_USED_PROJECT_KEY = Ch\u00ECa kh\u00F3a d\u1EF1 \u00E1n \u0111\u00E3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. + +PAYMENT_TYPE_NOT_EXIST = Ch\u01B0a ch\u1ECDn ph\u01B0\u01A1ng th\u1EE9c thanh to\u00E1n. +PAYMENT_NOT_EXIST = Kh\u00F4ng c\u00F3 th\u00F4ng tin thanh to\u00E1n. +PAYMENT_EXECUTE_ONLY_WORKSPACE_MANAGER = Ch\u1EC9 ng\u01B0\u1EDDi qu\u1EA3n l\u00FD kh\u00F4ng gian c\u00F4ng vi\u1EC7c m\u1EDBi c\u00F3 th\u1EC3 thanh to\u00E1n. +PAYMENT_BUY_USER_MUST_BE_GREATER_THAN_ZERO = S\u1ED1 ng\u01B0\u1EDDi d\u00F9ng mu\u1ED1n thanh to\u00E1n ph\u1EA3i l\u1EDBn h\u01A1n 0 +PAYMENT_NO_TYPE = Lo\u1EA1i h\u00ECnh thanh to\u00E1n ch\u01B0a \u0111\u01B0\u1EE3c nh\u1EADp. +PAYMENT_HISTORY_NOT_EXIST = Kh\u00F4ng c\u00F3 th\u00F4ng tin chi tr\u1EA3. + +USER_WORKSPACE_MANAGER_NOT_EXIST = Kh\u00F4ng t\u1ED3n t\u1EA1i th\u00F4ng tin qu\u1EA3n l\u00FD kh\u00F4ng gian c\u00F4ng vi\u1EC7c. +OAUTH_STATE_VALUE_NOT_EQUAL = Th\u1EA5t b\u1EA1i trong vi\u1EC7c x\u00E1c nh\u1EADn OAuth. +WORKSPACE_NOT_EXIST = Kh\u00F4ng c\u00F3 kh\u00F4ng gian l\u00E0m vi\u1EC7c. +WORKSPACE_STORAGE_SIZE_EXCESS = Kh\u00F4ng gian l\u01B0u tr\u1EEF c\u00F4ng vi\u1EC7c \u0111\u00E3 b\u1ECB v\u01B0\u1EE3t qu\u00E1. H\u00E3y s\u1EAFp x\u1EBFp l\u1EA1i c\u00E1c t\u1EADp tin kh\u00F4ng c\u1EA7n thi\u1EBFt. +WORKSPACE_MANAGER_NOT_CHANGE_USE_YN = Ng\u01B0\u1EDDi qu\u1EA3n l\u00FD kh\u00F4ng gian c\u00F4ng vi\u1EC7c kh\u00F4ng th\u1EC3 thay \u0111\u1ED5i b\u1EB1ng kh\u00F4ng ho\u1EA1t \u0111\u1ED9ng. +WORKSPACE_PERIOD_REMAIN = V\u1EABn c\u00F2n th\u1EDDi gian s\u1EED d\u1EE5ng kh\u00F4ng gian l\u00E0m vi\u1EC7c. +WORKSPACE_USE_PERIOD_EXCESS = Th\u1EDDi gian s\u1EED d\u1EE5ng kh\u00F4ng gian c\u00F4ng vi\u1EC7c \u0111\u00E3 k\u1EBFt th\u00FAc, kh\u00F4ng th\u1EC3 s\u1EED d\u1EE5ng t\u00EDnh n\u0103ng t\u1EA3i v\u1EC1 h\u00ECnh \u1EA3nh, x\u00F3a, h\u00ECnh \u1EA3nh/ Excel. +WORKSPACE_INCLUDE_DISABLED = Trong tr\u1EA1ng th\u00E1i kh\u00F4ng ho\u1EA1t \u0111\u1ED9ng trong kh\u00F4ng gian c\u00F4ng vi\u1EC7c t\u01B0\u01A1ng \u1EE9ng, b\u1EA1n kh\u00F4ng th\u1EC3 s\u1EED d\u1EE5ng t\u00EDnh n\u0103ng t\u1EA3i v\u1EC1 h\u00ECnh \u1EA3nh/ thanh to\u00E1n. + +ATTACHED_FILE_NOT_EXIST = H\u1ED3 s\u01A1 t\u1EADp tin ch\u1EC9 c\u00F3 s\u1EB5n trong jpg v\u00E0 png. + +START_ISSUE_STATUS_NOT_EXIST = T\u00ECnh tr\u1EA1ng c\u1EE7a v\u1EA5n \u0111\u1EC1 b\u1EAFt \u0111\u1EA7u kh\u00F4ng t\u1ED3n t\u1EA1i. +END_ISSUE_STATUS_NOT_EXIST = Kh\u00F4ng t\u1ED3n t\u1EA1i t\u00ECnh tr\u1EA1ng k\u1EBFt th\u00FAc. + +EMAIL_NOT_SEND = Kh\u00F4ng th\u1EC3 g\u1EEDi mail. +INVITE_USER_USED_WORKSPACE = Ng\u01B0\u1EDDi s\u1EED d\u1EE5ng t\u01B0\u01A1ng \u1EE9ng \u0111ang tham gia v\u00E0o kh\u00F4ng gian l\u00E0m vi\u1EC7c. + +PROJECT_ROLE_NOT_EXIST = Vai tr\u00F2 c\u1EE7a d\u1EF1 \u00E1n kh\u00F4ng t\u1ED3n t\u1EA1i. +WORKSPACE_NOT_NAME = Kh\u00F4ng gian l\u00E0m vi\u1EC7c ch\u01B0a \u0111\u01B0\u1EE3c nh\u1EADp. +WORKSPACE_MAX_USER_EXCESS = S\u1ED1 ng\u01B0\u1EDDi d\u00F9ng t\u1ED1i \u0111a trong kh\u00F4ng gian c\u00F4ng vi\u1EC7c \u0111\u00E3 b\u1ECB v\u01B0\u1EE3t qu\u00E1. N\u1EBFu s\u1ED1 l\u01B0\u1EE3ng ng\u01B0\u1EDDi d\u00F9ng t\u1ED1i \u0111a v\u01B0\u1EE3t qu\u00E1 s\u1ED1 l\u01B0\u1EE3ng ng\u01B0\u1EDDi d\u00F9ng \u0111\u01B0\u1EE3c m\u1EDDi th\u00EC b\u1EA1n kh\u00F4ng th\u1EC3 ti\u1EBFp c\u1EADn kh\u00F4ng gian l\u00E0m vi\u1EC7c t\u01B0\u01A1ng \u1EE9ng. +WORKSPACE_MAX_USER_EXCESS_NOT_INCLUDE = S\u1ED1 ng\u01B0\u1EDDi d\u00F9ng t\u1ED1i \u0111a trong kh\u00F4ng gian c\u00F4ng vi\u1EC7c v\u01B0\u1EE3t qu\u00E1 s\u1ED1 ng\u01B0\u1EDDi d\u00F9ng n\u00EAn kh\u00F4ng th\u1EC3 thay \u0111\u1ED5i tr\u1EA1ng th\u00E1i tham gia +WORKSPACE_NAME_MAX_LENGTH_OUT = Kh\u00F4ng gian l\u00E0m vi\u1EC7c c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 50 k\u00FD t\u1EF1. + +DEFAULT_PROJECT_MANAGER_NOT_CHANGE = Ng\u01B0\u1EDDi qu\u1EA3n l\u00FD d\u1EF1 \u00E1n c\u01A1 b\u1EA3n \u0111\u01B0\u1EE3c cung c\u1EA5p ph\u1EA3i c\u00F3 ng\u01B0\u1EDDi qu\u1EA3n l\u00FD kh\u00F4ng gian l\u00E0m vi\u1EC7c. + + +ISSUE_STATUS_NOT_ID = Kh\u00F4ng nh\u1EADp ID tr\u1EA1ng th\u00E1i v\u1EA5n \u0111\u1EC1. +ISSUE_STATUS_NAME_MAX_LENGTH_OUT = M\u1ED9t t\u00EAn c\u1EE7a v\u1EA5n \u0111\u1EC1 c\u00F3 th\u1EC3 \u0111\u01B0\u1EE3c nh\u1EADp t\u1ED1i \u0111a 50 k\u00FD t\u1EF1. +ISSUE_STATUS_NOT_NAME = Nguy\u00EAn nh\u00E2n g\u00E2y ra v\u1EA5n \u0111\u1EC1 ch\u01B0a \u0111\u01B0\u1EE3c nh\u1EADp. +ISSUE_STATUS_NOT_COLOR = M\u00E0u s\u1EAFc kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp v\u00E0o c\u1EE7a t\u00ECnh h\u00ECnh v\u1EA5n \u0111\u1EC1. +ISSUE_STATUS_USED_NAME = C\u00E1c v\u1EA5n \u0111\u1EC1 \u0111ang \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. +ISSUE_STATUS_REMOVE_NOT_SELECT = T\u00ECnh tr\u1EA1ng c\u1EE7a v\u1EA5n \u0111\u1EC1 s\u1EBD kh\u00F4ng \u0111\u01B0\u1EE3c l\u1EF1a ch\u1ECDn. +DEFAULT_ISSUE_STATUS_NOT_REMOVE = Tr\u1EA1ng th\u00E1i v\u1EA5n \u0111\u1EC1 c\u01A1 b\u1EA3n kh\u00F4ng th\u1EC3 b\u1ECB x\u00F3a. +ISSUE_STATUS_NOT_EXIST = T\u00ECnh tr\u1EA1ng c\u1EE7a v\u1EA5n \u0111\u1EC1 kh\u00F4ng t\u1ED3n t\u1EA1i. +READY_ISSUE_STATUS_NOT_EXIST = Kh\u00F4ng th\u1EC3 t\u00ECm th\u1EA5y m\u1ED9t tr\u1EA1ng th\u00E1i m\u00E0 lo\u1EA1i h\u00ECnh c\u1EE7a v\u1EA5n \u0111\u1EC1 \u0111ang ch\u1EDD \u0111\u1EE3i. +ISSUE_STATUS_CHANGE_NOT_TARGET = Kh\u00F4ng th\u1EC3 thay \u0111\u1ED5i sang tr\u1EA1ng th\u00E1i \u0111\u00E3 ch\u1ECDn. H\u00E3y ki\u1EC3m tra workbook. +ISSUE_STATUS_USE_ISSUES = C\u00F3 r\u1EA5t nhi\u1EC1u v\u1EA5n \u0111\u1EC1 \u0111ang \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng trong l\u0129nh v\u1EF1c n\u00E0y. +ISSUE_STATUS_USE_WORKFLOW = workbook \u0111ang \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng \u1EDF tr\u1EA1ng th\u00E1i v\u1EA5n \u0111\u1EC1. + +WORKFLOW_NOT_EXIST = Kh\u00F4ng c\u00F3 workbook. +WORKFLOW_NOT_NAME = T\u00EAn workbook kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp. +WORKFLOW_NAME_MAX_LENGTH_OUT = B\u1EA1n c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 20 k\u00FD t\u1EF1. +WORKFLOW_USED_NAME = T\u00EAn workbook \u0111\u00E3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. +WORKFLOW_TRANSITION_NOT_EXIST = workbook kh\u00F4ng t\u1ED3n t\u1EA1i. +WORKFLOW_USED_ISSUE_TYPE = workbook \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng theo t\u1EEBng lo\u1EA1i v\u1EA5n \u0111\u1EC1 n\u00EAn kh\u00F4ng th\u1EC3 x\u00F3a. +WORKFLOW_ISOLATION = T\u00ECnh tr\u1EA1ng v\u1EA5n \u0111\u1EC1 b\u1ECB c\u00F4 l\u1EADp trong workbook t\u1ED3n t\u1EA1i. +WORKFLOW_REMOVE_NOT_SELECT = \u0110\u00E3 kh\u00F4ng l\u1EF1a ch\u1ECDn workbook \u0111\u1EC3 x\u00F3a. + +CUSTOM_FIELD_NOT_EXIST = Ch\u1EEF vi\u1EBFt t\u1EAFt c\u1EE7a ng\u01B0\u1EDDi d\u00F9ng kh\u00F4ng t\u1ED3n t\u1EA1i. +CUSTOM_FIELD_NOT_NAME = Ch\u01B0a c\u00F3 t\u00EAn g\u1ECDi ch\u00EDnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng. +CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = Ch\u1EEF c\u00E1i ch\u00EDnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 50 ch\u1EEF. +CUSTOM_FIELD_USED_NAME = Ng\u01B0\u1EDDi d\u00F9ng ch\u00EDnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng \u0111\u00E3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. +CUSTOM_FIELD_REMOVE_NOT_SELECT = M\u00E3 \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng s\u1EBD x\u00F3a kh\u00F4ng \u0111\u01B0\u1EE3c l\u1EF1a ch\u1ECDn. +CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = B\u1ED9 ph\u1EADn n\u1ED1i ch\u1EEF kh\u00F4ng th\u1EC3 s\u1EED d\u1EE5ng gi\u00E1 tr\u1ECB t\u00F9y ch\u1ECDn. +CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = Gi\u00E1 tr\u1ECB c\u01A1 b\u1EA3n c\u1EE7a \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng kh\u00F4ng t\u1ED3n t\u1EA1i trong t\u00F9y ch\u1ECDn. +CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = C\u00F3 gi\u00E1 tr\u1ECB tr\u00F9ng l\u1EB7p v\u1EDBi gi\u00E1 tr\u1ECB c\u01A1 b\u1EA3n c\u1EE7a \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng. +CUSTOM_FIELD_OPTIONS_NOT_USE_MULTI_DEFAULT_VALUE = Kh\u00F4ng th\u1EC3 ch\u1EC9 \u0111\u1ECBnh tr\u00EAn 2 gi\u00E1 tr\u1ECB c\u01A1 b\u1EA3n v\u1EC1 gi\u00E1 tr\u1ECB l\u1EF1a ch\u1ECDn con s\u1ED1 do ng\u01B0\u1EDDi s\u1EED d\u1EE5ng \u0111\u1ECBnh ngh\u0129a. +CUSTOM_FIELD_OPTIONS_NOT_EMPTY_VALUE = Kh\u00F4ng th\u1EC3 \u0111\u0103ng k\u00FD gi\u00E1 tr\u1ECB l\u1EF1a ch\u1ECDn con s\u1ED1 theo \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng. +CUSTOM_FIELD_OPTIONS_NOT_VALUE = Ch\u01B0a nh\u1EADp gi\u00E1 tr\u1ECB l\u1EF1a ch\u1ECDn thi\u1EBFt l\u1EADp theo \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng. +CUSTOM_FIELD_TEXT_TYPE_MAX_LENGTH_OUT = Ch\u1EEF vi\u1EBFt tay \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a \u0111\u1EBFn 100 ch\u1EEF. +CUSTOM_FIELD_DEFAULT_VALUE_MAX_LENGTH_OUT = Ch\u1EEF s\u1ED1 c\u01A1 b\u1EA3n c\u1EE7a danh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng c\u00F3 th\u1EC3 nh\u1EADp t\u1EDBi 100 ch\u1EEF +CUSTOM_FIELD_OPTION_VALUE_MAX_LENGTH_OUT = Gi\u00E1 tr\u1ECB l\u1EF1a ch\u1ECDn tu\u1EF3 ch\u1ECDn theo \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi s\u1EED d\u1EE5ng c\u00F3 th\u1EC3 nh\u1EADp \u0111\u1EBFn t\u1ED1i \u0111a 15 k\u00FD t\u1EF1. + +ISSUE_TYPE_NOT_EXIST = Kh\u00F4ng c\u00F3 v\u1EA5n \u0111\u1EC1 g\u00EC t\u1ED3n t\u1EA1i. +ISSUE_TYPE_NOT_NAME = M\u1ED9t ng\u01B0\u1EDDi c\u00F3 v\u1EA5n \u0111\u1EC1 \u0111\u00E3 kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp. +ISSUE_TYPE_NAME_MAX_LENGTH_OUT = C\u00E1c lo\u1EA1i v\u1EA5n \u0111\u1EC1 c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 50 t\u1EEB. +ISSUE_TYPE_USED_NAME = Nh\u1EEFng ng\u01B0\u1EDDi c\u00F3 v\u1EA5n \u0111\u1EC1 \u0111\u00E3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. +ISSUE_TYPE_REMOVE_NOT_SELECT = Kh\u00F4ng l\u1EF1a ch\u1ECDn lo\u1EA1i v\u1EA5n \u0111\u1EC1 s\u1EBD x\u00F3a. +ISSUE_TYPE_NOT_COLOR = M\u00E0u s\u1EAFc kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp v\u00E0o trong m\u1ED9t v\u1EA5n \u0111\u1EC1. +ISSUE_TYPE_USE_ISSUES = \u0111ang s\u1EED d\u1EE5ng trong l\u0129nh v\u1EF1c n\u00E0y. + +PRIORITY_NOT_EXIST = Th\u1EE9 t\u1EF1 \u01B0u ti\u00EAn kh\u00F4ng t\u1ED3n t\u1EA1i. +SEVERITY_NOT_EXIST = S\u1EF1 quan tr\u1ECDng kh\u00F4ng t\u1ED3n t\u1EA1i. + +ISSUE_NOT_EXIST = Kh\u00F4ng c\u00F3 v\u1EA5n \u0111\u1EC1 g\u00EC. +ISSUE_NUMBER_GENERATOR_NOT_EXIST = \u0110\u00E3 x\u1EA3y ra l\u1ED7i trong khi t\u1EA1o ra s\u1ED1 \u0111i\u1EC7n tho\u1EA1i. +ISSUE_NUMBER_NOT_EXIST = S\u1ED1 \u0111i\u1EC7n tho\u1EA1i c\u00F3 v\u1EA5n \u0111\u1EC1 kh\u00F4ng t\u1ED3n t\u1EA1i. +ISSUE_TITLE_MAX_LENGTH_OUT = Ti\u00EAu \u0111\u1EC1 c\u1EE7a v\u1EA5n \u0111\u1EC1 c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 300 ch\u1EEF. +ISSUE_NOT_MODIFY_PERMISSION = Kh\u00F4ng c\u00F3 quy\u1EC1n s\u1EEDa \u0111\u1ED5i v\u1EA5n \u0111\u1EC1. +ISSUE_REMOVE_NOT_SELECT = Kh\u00F4ng l\u1EF1a ch\u1ECDn v\u1EA5n \u0111\u1EC1 s\u1EBD x\u00F3a. +ISSUE_NO_TITLE = T\u1EF1a \u0111\u1EC1 \u0111\u00E3 kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp. +ISSUE_NOT_SEND_USER = Kh\u00F4ng \u0111\u01B0\u1EE3c l\u1EF1a ch\u1ECDn \u0111\u1ED1i t\u01B0\u1EE3ng \u0111\u1EC3 g\u1EEDi c\u00E2u h\u1ECFi. + +ISSUE_COMMENT_REMOVE_NOT_SELECT = Nh\u1EEFng b\u00ECnh lu\u1EADn s\u1EBD kh\u00F4ng \u0111\u01B0\u1EE3c x\u00F3a. +ISSUE_COMMENT_NOT_EXIST = B\u00ECnh lu\u1EADn kh\u00F4ng t\u1ED3n t\u1EA1i. +ISSUE_COMMENT_NOT_REMOVE_PERMISSION = Kh\u00F4ng c\u00F3 quy\u1EC1n h\u1EA1n n\u00E0o x\u00F3a b\u00ECnh lu\u1EADn. +ISSUE_COMMENT_NOT_COMMENT = B\u00ECnh lu\u1EADn ch\u01B0a \u0111\u01B0\u1EE3c nh\u1EADp. +ISSUE_COMMENT_MAX_LENGTH_OUT = C\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 300 ch\u1EEF c\u00E1i v\u00E0o comment. + +USER_WORKSPACE_NOT_EXIST = Kh\u00F4ng c\u00F3 th\u00F4ng tin k\u1EBFt n\u1ED1i ng\u01B0\u1EDDi d\u00F9ng trong kh\u00F4ng gian c\u00F4ng vi\u1EC7c. + +WIDGET_SEARCH_DATE_NOT_FOUND = Kh\u00F4ng th\u1EC3 t\u00ECm th\u1EA5y ng\u00E0y th\u00E1ng t\u00ECm ki\u1EBFm widget. + +USER_NO_NAME = Ch\u01B0a nh\u1EADp t\u00EAn \u0111\u01B0\u1EE3c. +USER_NAME_LENGTH_EXCESS = T\u00EAn ng\u01B0\u1EDDi d\u00F9ng ch\u1EC9 c\u00F3 th\u1EC3 c\u00F3 50 t\u1EEB. +USER_NO_EMAIL = \u0110\u1ECBa ch\u1EC9 email ch\u01B0a \u0111\u01B0\u1EE3c nh\u1EADp. +USER_INVALID_EMAIL = \u0110\u00E2y l\u00E0 \u0111\u1ECBa ch\u1EC9 email sai. +USER_USED_EMAIL = \u0110\u1ECBa ch\u1EC9 email \u0111\u00E3 \u0111\u0103ng k\u00FD. +USER_NO_PASSWORD = M\u1EADt kh\u1EA9u kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp. +USER_NOT_MODIFY_SELF = Kh\u00F4ng th\u1EC3 s\u1EEDa th\u00F4ng tin c\u1EE7a ng\u01B0\u1EDDi kh\u00E1c. +USER_PHONE_MAX_LENGTH_OUT = S\u1ED1 li\u00EAn l\u1EA1c c\u00F3 th\u1EC3 nh\u1EADp t\u1ED1i \u0111a 20 k\u00FD t\u1EF1. +USER_PHONE_ONLY_NUMBER = S\u1ED1 li\u00EAn l\u1EA1c ch\u1EC9 c\u00F3 th\u1EC3 \u0111\u01B0\u1EE3c nh\u1EADp. +USER_PASSWORD_MAX_LENGTH_OUT = M\u1EADt kh\u1EA9u c\u00F3 th\u1EC3 \u0111\u01B0\u1EE3c nh\u1EADp t\u1ED1i \u0111a 20 k\u00FD t\u1EF1. +USER_PASSWORD_NOT_SAME_CONFIRM_PASSWORD = M\u1EADt kh\u1EA9u m\u1EDBi v\u00E0 m\u1EADt kh\u1EA9u m\u1EDBi nh\u1EADp v\u00E0o ph\u1EA7n x\u00E1c nh\u1EADn kh\u00E1c nhau. +USER_INVALID_CURRENT_PASSWORD = M\u00E3 s\u1ED1 b\u00ED m\u1EADt hi\u1EC7n t\u1EA1i \u0111\u00E3 b\u1ECB sai. +USER_INVALID_LICENSEKEY = The current license key entered is invalid.\ +USER_PASSWORD_SAME_NEW_PASSWORD = M\u00E3 s\u1ED1 b\u00ED m\u1EADt \u0111ang \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng hi\u1EC7n nay ph\u1EA3i kh\u00E1c nhau. +USER_WITH_DRAW_EXIST = T\u00E0i kho\u1EA3n t\u01B0\u01A1ng \u1EE9ng c\u00F3 ghi ch\u00E9p v\u1EC1 vi\u1EC7c r\u00FAt kh\u1ECFi h\u1ED9i vi\u00EAn +USER_PROFILE_SIZE_NOT_ALLOW = K\u00EDch th\u01B0\u1EDBc profile c\u1EE7a ng\u01B0\u1EDDi s\u1EED d\u1EE5ng qu\u00E1 l\u1EDBn. H\u00E3y t\u1EA3i v\u1EC1 file d\u01B0\u1EDBi 10MB. +USER_PROFILE_UPLOAD_FILE_TYPE_NOT_ALLOW = T\u1EADp tin h\u1ED3 s\u01A1 ch\u1EC9 c\u00F3 kh\u1EA3 n\u0103ng l\u00E0 JYP. +USER_NOT_EQUAL_PASSWORD = M\u1EADt kh\u1EA9u kh\u00F4ng ph\u00F9 h\u1EE3p. +USER_NOT_EXIST = Ng\u01B0\u1EDDi s\u1EED d\u1EE5ng kh\u00F4ng t\u1ED3n t\u1EA1i. +USER_NOT_AUTHORIZED = Kh\u00F4ng c\u00F3 quy\u1EC1n ki\u1EC3m \u0111\u1ECBnh ng\u01B0\u1EDDi d\u00F9ng. +USER_EXPIRED_PASSWORD = M\u1EADt kh\u1EA9u \u0111\u00E3 h\u1EBFt h\u1EA1n. +USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER = Ng\u01B0\u1EDDi d\u00F9ng kh\u00F4ng th\u1EC3 s\u1EED d\u1EE5ng t\u00EDnh n\u0103ng t\u00ECm ki\u1EBFm m\u1EADt kh\u1EA9u. +USER_NOT_USE_ACTIVE_STATUS = Ng\u01B0\u1EDDi d\u00F9ng kh\u00F4ng th\u1EC3 \u0111\u0103ng nh\u1EADp n\u1EBFu kh\u00F4ng \u1EDF tr\u1EA1ng th\u00E1i k\u00EDch ho\u1EA1t. + +EXCEL_NOT_EXTENSION = Ch\u1EC9 c\u00F3 ng\u01B0\u1EDDi m\u1EDF r\u1ED9ng t\u1EADp tin Excel (xlsx). +EXCEL_DOWNLOAD_MAX_ROWS_OVER = Ch\u1EC9 c\u00F3 10,000 l\u01B0\u1EE3t download th\u00F4i. Vui l\u00F2ng thay \u0111\u1ED5i danh s\u00E1ch truy c\u1EADp d\u01B0\u1EDBi 10.000 c\u00E1i v\u00E0 t\u1EA3i xu\u1ED1ng. +EXCEL_CONDITIONS_NOT_EXIST = Kh\u00F4ng th\u1EC3 t\u00ECm th\u1EA5y \u0111i\u1EC1u ki\u1EC7n t\u00ECm ki\u1EBFm c\u1EA7n thi\u1EBFt \u0111\u1EC3 t\u1EA3i xu\u1ED1ng Excel. +EXCEL_EMPTY_CELL = Kh\u00F4ng th\u1EC3 t\u00ECm c\u1ED9t quay \u1EDF ph\u1EA7n \u0111\u1EA7u. C\u00F3 v\u1EA5n \u0111\u1EC1 v\u1EDBi m\u1EABu t\u1EF1 s\u01B0\u1EDBng. +EXCEL_HEADER_EMPTY_CELL = C\u00F3 m\u1ED9t b\u1EE9c selca trong \u0111\u1EA7u t\u1EF1 s\u01B0\u1EDBng. +EXCEL_IMPORT_ISSUE_TITLE_IS_NULL=Kh\u00F4ng c\u00F3 ch\u1EE7 \u0111\u1EC1 n\u1EB1m \u1EDF line ti\u1EBFp theo. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_PROJECT_KEY_IS_NULL=\u1EDE line quay ti\u1EBFp theo, ch\u00ECa kh\u00F3a d\u1EF1 \u00E1n kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_PROJECT_NOT_EXIST=Kh\u00F4ng c\u00F3 d\u1EF1 \u00E1n n\u00E0o \u0111\u01B0\u1EE3c t\u00ECm ki\u1EBFm v\u1EDBi ch\u00ECa kh\u00F3a d\u1EF1 \u00E1n \u0111\u01B0\u1EE3c nh\u1EADp t\u1EEB d\u00F2ng Excel sau. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_ISSUE_TYPE_IS_NULL=M\u1ED9t ng\u01B0\u1EDDi kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp m\u1ED9t ki\u1EC3u v\u1EA5n \u0111\u1EC1 \u1EDF d\u00F2ng Excel ti\u1EBFp theo. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_ISSUE_TYPE_NOT_EXIST=Kh\u00F4ng c\u00F3 lo\u1EA1i v\u1EA5n \u0111\u1EC1 n\u00E0o \u0111\u01B0\u1EE3c t\u00ECm ki\u1EBFm d\u01B0\u1EDBi d\u1EA1ng c\u00E2u h\u1ECFi m\u00E0 \u0111\u01B0\u1EE3c nh\u1EADp. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_PRIORITY_IS_NULL=Kh\u00F4ng nh\u1EADp th\u1EE9 t\u1EF1 \u01B0u ti\u00EAn cho d\u00F2ng Excel ti\u1EBFp theo. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_PRIORITY_NOT_EXIST=Kh\u00F4ng c\u00F3 th\u1EE9 t\u1EF1 \u01B0u ti\u00EAn \u0111\u01B0\u1EE3c t\u00ECm ki\u1EBFm theo t\u00EAn \u01B0u ti\u00EAn \u0111\u01B0\u1EE3c nh\u1EADp \u1EDF d\u00F2ng Excel sau. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_SEVERITY_IS_NULL=Kh\u00F4ng c\u00F3 t\u00EAn g\u1ECDi quan tr\u1ECDng n\u00E0o \u0111\u01B0\u1EE3c nh\u1EADp trong \u0111\u01B0\u1EDDng Excel ti\u1EBFp theo. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_SEVERITY_NOT_EXIST=Kh\u00F4ng c\u00F3 th\u1EE9 t\u1EF1 \u01B0u ti\u00EAn g\u00EC \u0111\u01B0\u1EE3c t\u00ECm ki\u1EBFm m\u1EE9c \u0111\u1ED9 quan tr\u1ECDng \u0111\u01B0\u1EE3c nh\u1EADp t\u1EEB d\u00F2ng Excel sau. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_CUSTOM_FIELD_VALUE_NOT_VALIDITY=Gi\u00E1 tr\u1ECB c\u1EA7n thi\u1EBFt c\u1EE7a \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng nh\u1EADp t\u1EEB d\u00F2ng Excel ti\u1EBFp theo kh\u00F4ng c\u00F3 hi\u1EC7u l\u1EF1c. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_HEADER_CUSTOM_FIELD_NOT_EXIST=Kh\u00F4ng th\u1EC3 t\u00ECm th\u1EA5y b\u1ED9 l\u1ECDc \u0111\u1ECBnh ngh\u0129a ng\u01B0\u1EDDi d\u00F9ng \u0111\u1ECBnh \u0111\u0103ng k\u00FD. T\u00EAn c\u1EE7a ph\u1EA7n ghi ch\u00FA ng\u01B0\u1EDDi d\u00F9ng t\u01B0\u01A1ng \u1EE9ng \u0111\u00E3 b\u1ECB thay \u0111\u1ED5i ho\u1EB7c x\u00F3a. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_PERIOD_NOT_VALIDITY= C\u00F3 v\u1EA5n \u0111\u1EC1 v\u1EC1 ng\u00E0y b\u1EAFt \u0111\u1EA7u, ng\u00E0y k\u1EBFt th\u00FAc nh\u1EADp \u1EDF d\u00F2ng Excel sau. Ng\u00E0y b\u1EAFt \u0111\u1EA7u ph\u1EA3i nhanh h\u01A1n ng\u00E0y k\u1EBFt th\u00FAc. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_PERIOD_NOT_VALIDITY_EMPTY=C\u00F3 v\u1EA5n \u0111\u1EC1 v\u1EC1 ng\u00E0y b\u1EAFt \u0111\u1EA7u, ng\u00E0y k\u1EBFt th\u00FAc nh\u1EADp \u1EDF d\u00F2ng Excel sau. Sau khi ki\u1EC3m tra xem c\u00F2n bao nhi\u00EAu ch\u1ED7 tr\u1ED1ng th\u00EC h\u00E3y xo\u00E1 b\u1ECF kho\u1EA3ng tr\u1ED1ng \u0111\u00F3. \n th\u00F4ng tin d\u00E2y : {0} +EXCEL_IMPORT_MAX_ROWS_OVER = B\u1EA1n ch\u1EC9 c\u00F3 th\u1EC3 \u0111\u0103ng k\u00FD v\u1EA5n \u0111\u1EC1 v\u1EDBi vi\u1EC7c \u0111\u0103ng t\u1EA3i t\u1EF1 \u0111\u1ED9ng l\u00EAn \u0111\u1EBFn t\u1ED1i \u0111a 10 ng\u00E0n. N\u1EBFu gh\u1EBF t\u1EF1 \u0111\u1ED9ng so\u1EA1n d\u01B0\u1EDBi 10.000 vi\u1EC7c, h\u00E3y th\u1EED l\u1EA1i sau khi x\u00F3a t\u1EA5t c\u1EA3 c\u00E1c d\u00F2ng cu\u1ED1i c\u00F9ng \u0111\u01B0\u1EE3c vi\u1EBFt. +RESERVATION_EMAIL_TITLE=[OWL ITS] V\u1EA5n \u0111\u1EC1 v\u00E0 ho\u1EA1t \u0111\u1ED9ng ti\u1EBFp theo. + +ISSUE_RESERVATION_VALUE_INVALID=\u0110\u1ED3ng th\u1EDDi c\u0169ng cho ph\u00E9p \u0111i\u1EC1u ph\u1ED1i vi\u00EAn hi\u1EC7n \u0111\u1EA1i. +ISSUE_RESERVATION_NOT_EXIST=Vi\u1EC7c th\u1EA9m \u0111\u1ECBnh s\u1EBD kh\u00F4ng th\u00F4ng b\u00E1o tr\u01B0\u1EDBc. + +FILE_TYPE_NOT_ALLOW = Lo\u1EA1i file kh\u00F4ng \u0111\u01B0\u1EE3c ph\u00E9p. +WORKSPACE_OUT=Kh\u00F4ng gian l\u00E0m vi\u1EC7c sau khi tham gia \u0111\u00E3 b\u1ECB lo\u1EA1i tr\u1EEB. ({0}) + +NOTICE_NOT_EXIST=Kh\u00F4ng c\u00F3 n\u1ED9i dung th\u00F4ng b\u00E1o. +NOTICE_EMPTY_CONTENT=C\u00F3 m\u1ED9t cu\u1ED1n s\u00E1ch kh\u00F4ng c\u00F3 gi\u00E1 tr\u1ECB nh\u1EADp trong ti\u00EAu \u0111\u1EC1 th\u00F4ng b\u00E1o v\u00E0 n\u1ED9i dung th\u00F4ng b\u00E1o. + +FAQ_NOT_EXIST=FAQ does not exist. +FAQ_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +GUIDE_NOT_EXIST=Guide does not exist. +GUIDE_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +EVENT_NOT_EXIST=Event does not exist. +EVENT_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. + +QNA_NOT_EXIST=QNA does not exist. +QNA_EMPTY_CONTENT=There is a field that does not have an input value among the bulletins title and content. \ No newline at end of file diff --git a/src/main/webapp/assets/clientWeb/clientevent.html b/src/main/webapp/assets/clientWeb/clientevent.html new file mode 100644 index 0000000..0bde488 --- /dev/null +++ b/src/main/webapp/assets/clientWeb/clientevent.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Event</title> +</head> +<body> +<div> + <a href="https://forms.gle/TSBrCgp95C5PZ3Ma6" target="_blank"><img src="/assets/images/event.png"></a> +</div> +</body> +</html> diff --git a/src/main/webapp/assets/clientWeb/clientnotice.html b/src/main/webapp/assets/clientWeb/clientnotice.html new file mode 100644 index 0000000..bc01496 --- /dev/null +++ b/src/main/webapp/assets/clientWeb/clientnotice.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Event</title> +</head> +<body> + <embed style="width:100%;height:100%;" type="text/html" src="http://www.wisestone.kr/company/about.php"> +</body> +</html> diff --git a/src/main/webapp/assets/clientWeb/clientterms.html b/src/main/webapp/assets/clientWeb/clientterms.html new file mode 100644 index 0000000..b5d711d --- /dev/null +++ b/src/main/webapp/assets/clientWeb/clientterms.html @@ -0,0 +1,153 @@ + 1媛쒖씤�젙蹂� 泥섎━諛⑹묠<br><br> + 二쇱떇�쉶�궗 ���씠利덉뒪�넠(�씠�븯 �쒗쉶�궗��)�� 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� 留ㅼ슦 以묒슂�떆�븯硫�, �젙蹂댄넻�떊留� �씠�슜珥됱쭊 諛� �젙蹂대낫�샇�뿉 愿��븳 踰뺣쪧�쓣 以��닔�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 怨듦컻瑜� �넻�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂닿� + �뼱�뼚�븳 紐⑹쟻怨� 諛⑹떇�쑝濡� �씠�슜�릺怨� �엳�쑝硫� 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 �뼱�뼚�븳 議곗튂媛� 痍⑦빐吏�怨� �엳�뒗吏�瑜� �븣�젮 �뱶由쎈땲�떎. 蹂� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 愿��젴 踰뺣졊�쓽 媛쒖젙�씠�굹 �쉶�궗 �궡遺�諛⑹묠�뿉 �쓽�빐 蹂�寃쎈맆 �닔 �엳�뒿�땲�떎. 蹂�寃쎈맆 �떆�뿉�뒗 + �뼵�젣�뱺吏� 洹� �궡�슜怨� �씠�쑀瑜� �돺寃� �븣 �닔 �엳�룄濡� 怨듭��궗�빆�쓣 �넻�븯�뿬 �븣�젮�뱶由ш쿋�뒿�땲�떎.<br> + + �젣 1議� (媛쒖씤�젙蹂댁쓽 �닔吏묓빆紐� 諛� �씠�슜紐⑹쟻)<br> + 怨좉컼�씠 �룞�쓽�븳 �씠�슜�빟愿��뿉 �뵲�씪 OWL �꽌鍮꾩뒪(OWL solution �궗�씠�듃 諛� OWL ITS �씠�븯 �쏰WL �꽌鍮꾩뒪��)�쓽 �떎�뼇�븳 湲곕뒫�쓣 �젣怨듯븯湲� �쐞�빐�꽌, �쉶�궗�뒗 怨좉컼�떂�쑝濡쒕��꽣 �떎�쓬怨� 媛숈� 媛쒖씤�젙蹂�(�룷愿꾪븯�뿬 �씠�븯 + �쒓컻�씤�젙蹂닳��)瑜� �닔吏�, 蹂닿��븯怨� �엳�뒿�땲�떎.<br> + (1) �븘�닔�엯�젰�궗�빆<br> + �몺 �쉶�썝媛��엯 �떆 �닔吏묓빆紐�: �씠硫붿씪, �씠由�<br> + (2) �꽑�깮�엯�젰�빆紐�<br> + �몺 �궗吏�<br> + (3) �꽌鍮꾩뒪 �씠�슜 �삉�뒗 �궗�뾽泥섎━ 怨쇱젙�뿉�꽌 �깮�꽦 �닔吏묐릺�뒗 媛곸쥌 嫄곕옒 諛� 媛쒖씤 �꽦�뼢 �젙蹂�<br> + �몺 �꽌鍮꾩뒪 �씠�슜湲곕줉, �젒�냽濡쒓렇, 荑좏궎, �젒�냽 IP�젙蹂�, 寃곗젣湲곕줉, 遺덈웾�씠�슜湲곕줉<br> + (4) �닔吏묅���씠�슜紐⑹쟻<br> + �몺 �꽌鍮꾩뒪(�젣�뭹) 臾몄쓽 �벑�뿉 ���븳 �긽�떞�씠�굹 �쓳��瑜� �쐞�븳 �솢�룞<br> + �몼 �쉶�썝�젣 �꽌鍮꾩뒪 �씠�슜�뿉 �뵲瑜� 蹂몄씤�솗�씤, 媛쒖씤�떇蹂�, 遺덈웾�쉶�썝�쓽 遺��젙 �씠�슜諛⑹��� 鍮꾩씤媛� �궗�슜諛⑹�, 媛��엯�쓽�궗 �솗�씤, 遺꾩웳議곗젙�쓣 �쐞�븳 湲곕줉蹂댁〈, 遺덈쭔泥섎━ �벑 誘쇱썝泥섎━, 怨좎��궗�빆 �쟾�떖<br> + �몾 �꽌鍮꾩뒪 �젣怨듭뿉 愿��븳 怨꾩빟�씠�뻾 諛� �꽌鍮꾩뒪 �젣怨듭뿉 �뵲瑜� �슂湲덉젙�궛 諛� �듅�젙 留욎땄�꽌鍮꾩뒪 �젣怨�(泥�援ъ꽌 �벑 諛쒖넚, �슂湲덇껐�젣)<br> + �몿 �떊洹� �꽌鍮꾩뒪(�젣�뭹) 媛쒕컻 �넻怨꾪븰�쟻 �듅�꽦�뿉 �뵲瑜� �꽌鍮꾩뒪 �젣怨�, �듅�솕, �씠踰ㅽ듃 �벑 愿묎퀬�꽦 �젙蹂댁쟾�떖 諛� 李몄뿬湲고쉶 �젣怨�, �꽌鍮꾩뒪�쓽 �쑀�슚�꽦 �솗�씤, �젒�냽 鍮덈룄 �뙆�븙 �삉�뒗 �쉶�썝�쓽 �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 �넻怨�<br> + + �젣 2議� (媛쒖씤�젙蹂댁쓽 �닔吏묐갑踰�)<br> + �솃�럹�씠吏� �쉶�썝媛��엯, �쉶�썝�젙蹂댁닔�젙, �쟾�솕, �씠硫붿씪, �꽭誘몃굹/�꽕臾�/�씠踰ㅽ듃 �떊泥�, 臾몄쓽 諛� �긽�떞, �젣�쑕臾몄쓽, �깮�꽦�젙蹂� �닔吏� �댋 �벑�쓣 �넻�븯�뿬 �룞�쓽�븳 寃쎌슦�뿉留� 媛쒖씤�젙蹂대�� �닔吏묓빀�땲�떎.<br> + + �젣 3議� (媛쒖씤�젙蹂� �옄�룞�닔吏묒옣移섏쓽 �꽕移� �슫�쁺 諛� 洹� 嫄곕�諛⑸쾿)<br> + �쉶�궗�뒗 怨좉컼�씠 �솃�럹�씠吏�瑜� �씠�슜�븯�뒗 寃쎌슦 怨좉컼�쓽 �젙蹂대�� �닔�떆濡� ���옣�븯怨� 李얠븘�궡�뒗 "荑좏궎(cookie)"�� �솃�럹�씠吏� �궗�슜湲곕줉(�씠�븯 "�넻怨꾨뜲�씠�꽣")�쓣 �옄�룞�쑝濡� �닔吏묓븯�뒗 �옣移섎�� �꽕移섃���슫�쁺�븷 �닔 �엳�뒿�땲�떎.<br> + (1) 荑좏궎(cookie)��?<br> + 荑좏궎�뒗 �솃�럹�씠吏�媛� 怨좉컼�쓽 �쎒 釉뚮씪�슦��濡� �쟾�넚�븯�뒗 �냼�웾�쓽 �젙蹂댁엯�땲�떎. 怨좉컼�씠 �솃�럹�씠吏��뿉 �젒�냽�븯硫� �쉶�궗�쓽 而댄벂�꽣�뒗 怨좉컼�쓽 釉뚮씪�슦���뿉 �엳�뒗 荑좏궎�쓽 �궡�슜�쓣 �씫怨�, 怨좉컼�쓽 異붽��젙蹂대�� 怨좉컼�쓽 而댄벂�꽣�뿉�꽌 李얠븘 �젒�냽�뿉 �뵲瑜� + �꽦紐� �벑�쓽 異붽� �엯�젰 �뾾�씠 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �엳�뒿�땲�떎. �삉�븳, 怨좉컼�� 荑좏궎�뿉 ���븳 �꽑�깮沅뚯씠 �엳�뒿�땲�떎. �쎒 釉뚮씪�슦�� �긽�떒�쓽 "�룄援�> �씤�꽣�꽬 �샃�뀡 �꺆�뿉�꽌 紐⑤뱺 荑좏궎瑜� �떎 諛쏆븘�뱾�씠嫄곕굹, 荑좏궎媛� �꽕移섎맆 �븣 �넻吏�瑜� + 蹂대궡�룄濡� �븯嫄곕굹, �븘�땲硫� 紐⑤뱺 荑좏궎瑜� 嫄곕��븷 �닔 �엳�뒗 �꽑�깮沅뚯쓣 媛�吏� �닔 �엳�뒿�땲�떎. �떒, 怨좉컼�뿉寃뚯꽌 荑좏궎�꽕移섎�� 嫄곕��븯���쓣 寃쎌슦 �꽌鍮꾩뒪 �씠�슜�뿉 遺덊렪�씠 �엳嫄곕굹, �꽌鍮꾩뒪 �젣怨듭뿉 �뼱�젮���씠 �엳�쓣 �닔 �엳�뒿�땲�떎<br> + (2) �넻怨꾨뜲�씠�꽣��?<br> + �솃�럹�씠吏�, �씠�룞�쟾�솕 �벑�쓽 �꽌鍮꾩뒪 �씠�슜 �떆 而댄벂�꽣 諛� �떒留먭린�쓽 �듅�젙�쁺�뿭�뿉 ���옣�릺怨�, 二쇨린�쟻�쑝濡� �쉶�궗�쓽 �꽌踰꾨줈 �쟾�떖�릺�뒗 �븘�옒�� 媛숈� �젙蹂댁엯�땲�떎.<br> + �몺 �꽌鍮꾩뒪 �궗�슜�넻怨�(�샇�젒�냽, �샇�젅�떒, �샇�떎�뙣 �떆 留앺솚寃�, �떎�슫濡쒕뱶 �떎�뻾�삤瑜�, �쑀/臾댁씤�꽣�꽬 �젒�냽�떎�뙣 諛� �젒�냽�떆媛� �벑)<br> + �몼 �궗�슜 �뙣�꽩 �젙蹂�(怨좉컼�쓽 硫붾돱 �씠�룞寃쎈줈, 二쇰줈 �씠�슜�븯�뒗 �꽌鍮꾩뒪, �꽌鍮꾩뒪 �씠�슜�슏�닔, 諛⑸Ц湲곕줉 �벑)<br> + (3) �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �슫�쁺<br> + �쉶�궗�뒗 怨좉컼�쓽 �렪�쓽瑜� �쐞�븯�뿬 荑좏궎, �넻怨꾨뜲�씠�꽣瑜� �슫�쁺�빀�땲�떎. �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �궗�슜紐⑹쟻�� �떎�쓬怨� 媛숈뒿�땲�떎.<br> + �몺 愿��떖 �엳寃� �몮�윭蹂� �궡�슜�뱾�뿉 ���븳 �옄痍⑤�� 異붿쟻�븯�뿬 �떎�쓬 踰� �젒�냽 �븣 媛쒖씤 留욎땄 �꽌鍮꾩뒪瑜� �젣怨�<br> + �몼 �쉶�썝怨� 鍮꾪쉶�썝�쓽 �젒�냽鍮덈룄 �삉�뒗 癒몃Ц �떆媛� �벑�쓣 遺꾩꽍�븯�뿬 怨좉컼�쓽 痍⑦뼢怨� 愿��떖遺꾩빞瑜� �뙆�븙�븯怨� �쉶�썝�뱾�쓽 �뒿愿��쓣 遺꾩꽍�븯�뿬 �꽌鍮꾩뒪 媛쒗렪 �떆 湲곗��쑝濡� �씠�슜 ��源�(target) 留덉��똿�뿉 �솢�슜<br> + �몾 �쑀猷뚯꽌鍮꾩뒪 �씠�슜 �떆 �씠�슜湲곌컙 �븞�궡<br> + �몿 臾몄쓽 諛� �긽�떞 湲� �벑濡� �렪�쓽�꽦 �젣怨�<br> + + �젣 4議� (媛쒖씤�젙蹂댁쓽 �씠�슜 諛� �젣3�옄 �젣怨�)<br> + (1) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 媛��엯�떊泥��꽌, �씠�슜�빟愿�, 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 "媛쒖씤�젙蹂� �닔吏묅���씠�슜 紐⑹쟻�긽 怨좎��븳 踰붿쐞 �궡�뿉�꽌 �씠�슜 諛� �젣怨듯븯硫�, 洹� 踰붿쐞瑜� �꽆�뼱�꽌 �씠�슜�븯嫄곕굹 �젣怨듯븯吏� �븡�뒿�땲�떎. �듅�엳, �떎�쓬�쓽 + 寃쎌슦�뒗 二쇱쓽瑜� 湲곗슱�뿬 媛쒖씤�젙蹂대�� �씠�슜 諛� �젣怨듯븷 寃껋엯�땲�떎.<br> + �몺 �젣�쑕愿�怨�<br> + 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂대�� �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨� �븷 �닔 �엳�뒿�땲�떎. �씠 寃쎌슦 �궗�쟾�뿉 怨좉컼�뿉寃� �젣�쑕�궗媛� �늻援ъ씤吏�, 怨듭쑀 �삉�뒗 �젣怨듬릺�뒗 媛쒖씤�젙蹂댁쓽 �빆紐⑹씠 臾댁뾿�씤吏�, �뼱�뼚�븳 + �씠�쑀�뿉�꽌 媛쒖씤�젙蹂닿� 怨듭쑀�릺嫄곕굹 �젣怨듬릺�뼱�빞 �븯�뒗吏�, 洹몃━怨� �뼱�뼸寃� �뼵�젣源뚯� 蹂닿���愿�由щ릺�뒗吏��뿉 愿��븯�뿬 媛쒕퀎�쟻�쑝濡� �쟾�옄�쟻 諛⑸쾿�씠�굹, �쟾�솕, �꽌硫�, �뙥�뒪, �슦�렪 �벑�쓣 �넻�빐 怨좎��븯�뿬 �룞�쓽瑜� 援ы븯�뒗 �젅李⑤�� 嫄곗튂寃� �릺硫�, + 怨좉컼�씠 �룞�쓽�븯吏� �븡�뒗 寃쎌슦�뿉�뒗 �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨듬릺吏� �븡�뒿�땲�떎.<br> + (2) �쉶�궗�뒗 �꽌鍮꾩뒪�쓽 �젣怨듭뿉 愿��븳 怨꾩빟�쓣 �씠�뻾�븯湲� �쐞�븯�뿬 �븘�슂�븳 媛쒖씤�젙蹂대줈�꽌 湲곗닠�쟻��寃쎌젣�쟻�씤 �궗�쑀濡� �넻�긽�쟻�씤 �룞�쓽瑜� 諛쏅뒗 寃껋씠 �슌�졆�븯寃� 怨ㅻ��븳 寃쎌슦�뿉�뒗 怨좉컼�쓽 �룞�쓽媛� �뾾�뜑�씪�룄 媛쒖씤�젙蹂대�� �닔吏묅���씠�슜�븷 �닔 + �엳�뒿�땲�떎.<br> + (3) �떎�쓬�쓽 寃쎌슦�뿉�뒗 愿��젴 踰뺣졊�쓽 洹쒖젙�뿉 �쓽�븯�뿬 �쉶�썝�쓽 �룞�쓽 �뾾�씠 媛쒖씤�젙蹂대�� �젣怨듯븯�뒗 寃껋씠 媛��뒫�빀�땲�떎.<br> + �몺 �꽌鍮꾩뒪�젣怨듭뿉 �뵲瑜� �슂湲� �젙�궛�쓣 �쐞�븯�뿬 �븘�슂�븳 寃쎌슦<br> + �몼 �넻怨꾩옉�꽦���븰�닠�뿰援� �삉�뒗 �떆�옣議곗궗瑜� �쐞�븯�뿬 �븘�슂�븳 寃쎌슦濡쒖꽌 �듅�젙 媛쒖씤�쓣 �븣�븘蹂� �닔 �뾾�뒗 �삎�깭濡� 媛�怨듯븯�뿬 �젣怨듯븯�뒗 寃쎌슦<br> + �몾 湲덉쑖 �떎紐� 嫄곕옒 諛� 鍮꾨�蹂댁옣�뿉 愿��븳 踰뺣쪧, �떊�슜�젙蹂댁쓽 �씠�슜 諛� 蹂댄샇�뿉 愿��븳 踰뺣쪧, �쟾湲고넻�떊湲곕낯踰�, �쟾湲고넻�떊�궗�뾽踰�, 吏�諛⑹꽭踰�, �냼鍮꾩옄蹂댄샇踰�, �븳援����뻾踰�, �삎�궗�냼�넚踰� �벑 踰뺣쪧�뿉 �듅蹂꾪븳 洹쒖젙�씠 �엳�뒗 寃쎌슦<br> + �몿 �닔�궗 紐⑹쟻�쑝濡� 踰뺣졊�뿉 �젙�빐吏� �젅李⑥� 諛⑸쾿�뿉 �뵲�씪 �닔�궗湲곌��쓽 �슂援ш� �엳�뒗 寃쎌슦<br> + �뫀 怨좉컼�씠 �궗�쟾�뿉 �룞�쓽�븳 寃쎌슦<br> + + �젣 5議� (媛쒖씤�젙蹂댁쓽 泥섎━�쐞�긽)<br> + (1) �쉶�궗�뒗 怨좉컼�렪�쓽 �젣怨듦낵 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨� �벑 �뾽臾� �닔�뻾�쓣 �썝�솢�븯寃� �븯湲� �쐞�븯�뿬 �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂댁뿉 ���븳 �닔吏묅��蹂닿���泥섎━���씠�슜���젣怨듈��愿�由р���뙆湲� �벑(�씠�븯 �쒖쿂由р��)�쓣 �쐞�긽�븷 �닔 + �엳�뒿�땲�떎.<br> + (2) �쉶�궗媛� �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯�뒗 寃쎌슦 洹� �쐞�긽�뾽臾댁쓽 �궡�슜, �닔�긽�옄�뒗 �떎�쓬 �몴�� 媛숈뒿�땲�떎.<br> + <媛쒖씤�젙蹂� �젣3�옄 �젣怨� 諛� �쐞�긽�쁽�솴><br> + �닔�긽�뾽泥� �굹�씠�뒪�젙蹂댄넻�떊�닚<br> + �쐞�긽�뾽臾대궡�슜 �떊�슜移대뱶 寃곗젣<br> + 蹂댁쑀 諛� �씠�슜湲곌컙 �쉶�썝 �깉�눜 �떆 �샊�� �쐞�긽怨꾩빟 醫낅즺 �떆源뚯�<br> + (3) �쉶�궗�뒗 怨좉컼�쓽 �룞�쓽 �뾾�씠 �꽌鍮꾩뒪 �젣怨� �씠�쇅�쓽 紐⑹쟻�쑝濡� 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯吏� �븡�뒗 寃껋쓣 �썝移숈쑝濡� �빀�땲�떎. �떎留�, 洹몃윭�븳 �븘�슂媛� �깮湲곕뒗 寃쎌슦 �쐞�긽�뾽臾댁쓽 �궡�슜怨� �닔�긽�옄瑜� 怨좉컼�뿉寃� 怨좎��븯怨� �룞�쓽瑜� + 諛쏆뒿�땲�떎.<br> + + �젣 6議� (媛쒖씤�젙蹂댁쓽 �씠�슜��蹂닿� 湲곌컙)<br> + 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 �룞�쓽瑜� 諛쏆� 媛쒖씤�젙蹂댁쓽 �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�릺硫� 踰뺣졊 �삉�뒗 �궡遺�諛⑹묠�뿉 �쓽�빐 蹂댁〈�븷 �븘�슂媛� �엳�뒗 寃쎌슦瑜� �젣�쇅�븯怨좊뒗 吏�泥� �뾾�씠 �뙆湲곕맗�땲�떎.<br> + (1) 臾대텇蹂꾪븳 �쉶�썝�깉�눜�� �옱媛��엯�쑝濡� �씤�븳 �뵾�빐 理쒖냼�솕, �쉶�썝�깉�눜 �썑 蹂��떖�뿉 �쓽�븳 誘쇱썝泥섎━ �벑�쓣 泥섎━�븯湲� �쐞�븯�뿬 �쉶�썝�깉�눜 �썑 1�뀈媛� �쉶�썝�젙蹂대�� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br> + (2) 蹂댁쑀 湲곌컙�쓣 誘몃━ 怨좎��븯怨� 蹂꾨룄�쓽 �룞�쓽瑜� 諛쏆� 寃쎌슦 �빐�떦 蹂댁쑀湲곌컙源뚯� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br> + (3) �쉶�궗媛� 踰뺣졊�뿉 �뵲�씪 蹂닿��븯�뒗 媛쒖씤�젙蹂� 諛� �빐�떦 踰뺣졊�� �븘�옒 �몴�� 媛숈뒿�땲�떎.<br> + + 蹂댁〈 �빆紐�: 怨꾩빟 �삉�뒗 泥��빟泥좏쉶 �벑�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: ��湲덇껐�젣 諛� �옱�솕 �벑�쓽 怨듦툒�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �냼鍮꾩옄�쓽 遺덈쭔 �삉�뒗 遺꾩웳泥섎━�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 3�뀈<br> + 蹂댁〈 �빆紐�: �몴�떆/愿묎퀬�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 6媛쒖썡<br> + 蹂댁〈 �빆紐�: �꽭踰뺤씠 洹쒖젙�븯�뒗 紐⑤뱺 嫄곕옒�뿉 愿��븳 �옣遺� 諛� 利앸튃�꽌瑜�<br> + 洹쇨굅 踰뺣졊: 援��꽭湲곕낯踰�<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �쟾�옄湲덉쑖 嫄곕옒�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄湲덉쑖嫄곕옒踰�<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �꽌鍮꾩뒪 諛⑸Ц湲곕줉<br> + 洹쇨굅 踰뺣졊: �넻�떊鍮꾨�蹂댄샇踰�<br> + 蹂댁〈 湲곌컙: 3媛쒖썡<br> + + (4) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 怨좉컼�쓽 �쉶�썝媛��엯 怨꾩젙�쓣 �궗�슜怨꾩젙怨� �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯�뿬 愿�由ы빀�땲�떎. OWL �꽌鍮꾩뒪瑜� 1�뀈 �룞�븞 濡쒓렇�씤 �삉�뒗 �씠�슜�궡�뿭�씠 �뾾�쓣 寃쎌슦 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� �쐞�빐 + �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯怨� 怨좉컼 媛쒖씤�젙蹂댁쓽 �솢�슜 諛� �젣�쑕�궗 (�젣3�옄 �룞�쓽�븳 �젣�쑕�궗)�뿉 怨좉컼�쓽 �젙蹂대�� �젣怨듯븯吏� �븡�뒿�땲�떎.<br> + + �젣 7議� (媛쒖씤�젙蹂댁쓽 �뙆湲곗젅李� 諛� 諛⑸쾿)<br> + (1) 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 怨좉컼�쑝濡쒕��꽣 �룞�쓽瑜� 諛쏆� �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�맂 �븣�뿉�뒗 蹂꾨룄�쓽 DB濡� �삷寃⑥졇(醫낆씠�쓽 寃쎌슦 蹂꾨룄�쓽 �꽌瑜섑븿) 愿�怨� 踰뺣졊�뿉�꽌 �젙�븳 �씪�젙�븳 湲곌컙 �룞�븞 蹂닿��븳 �떎�쓬 �뙆湲고빀�땲�떎.<br> + (2) 醫낆씠�뿉 異쒕젰�맂 媛쒖씤�젙蹂대뒗 遺꾩뇙湲곕줈 遺꾩뇙�븯嫄곕굹 �냼媛곸쓣 �넻�븯�뿬 �뙆湲고븯怨�, �쟾�옄�쟻 �뙆�씪 �삎�깭濡� ���옣�맂 媛쒖씤�젙蹂대뒗 湲곕줉�쓣 �옱�깮�븷 �닔 �뾾�뒗 湲곗닠�쟻 諛⑸쾿�쓣 �궗�슜�븯�뿬 �궘�젣�빀�땲�떎.<br> + + �젣 8議� (怨좉컼�쓽 沅뚮━�� 洹� �뻾�궗諛⑸쾿)<br> + (1) 怨좉컼(留� 14�꽭 誘몃쭔�씤 寃쎌슦 踰뺤젙 ��由ъ씤)�� �뼵�젣�뱺吏� OWL �꽌鍮꾩뒪 �궡�뿉�꽌 怨좉컼�쓽 媛쒖씤�젙蹂대�� �뿴�엺 �삉�뒗 蹂�寃쏀븷 �닔 �엳�쑝硫�, 怨좉컼�� �븘�슱 �꽌鍮꾩뒪�쓽 �씠�슜�빟愿��뿉 �뵲�씪 怨좉컼�쓽 媛쒖씤�젙蹂� �닔吏� 諛� �씠�슜�뿉 ���븯�뿬 + �쉶�궗�뿉 �룞�쓽 泥좏쉶瑜� �슂援ы븯嫄곕굹 OWL �꽌鍮꾩뒪�뿉�꽌 �깉�눜�떆耳� 以� 寃껋쓣 �슂援ы븷 �닔 �엳�뒿�땲�떎<br> + (2) �삩�씪�씤 媛��엯�젙蹂댁쓽 �뿴�엺 諛� �젙�젙�쓣 �븯怨좎옄 �븯�뒗 怨좉컼�쓽 寃쎌슦�뿉�뒗 �솃�럹�씠吏� �궡�쓽 "�쉶�썝�젙蹂�"瑜� �겢由��븯�뿬 吏곸젒 �뿴�엺 諛� �젙�젙�쓣 �븯嫄곕굹, 怨좉컼�꽱�꽣瑜� �넻�빐 �꽌硫�, �쟾�솕 �삉�뒗 �씠硫붿씪濡� �뿰�씫�븯�떆硫� 吏�泥� �뾾�씠 + 議곗튂�븯寃좎뒿�땲�떎.<br> + (3) �쉶�궗�뒗 ��由ъ씤�씠 諛⑸Ц�븯�뿬 �뿴�엺��利앸챸�쓣 �슂援ы븯�뒗 寃쎌슦�뿉�뒗 �쟻踰뺥븳 �쐞�엫�쓣 諛쏆븯�뒗吏� �솗�씤�븷 �닔 �엳�뒗 �쐞�엫�옣 諛� 蹂몄씤�쓽 �씤媛먯쬆紐낆꽌�� ��由ъ씤�쓽 �떊遺꾩쬆 �벑�쓣 �젣異� 諛쏆븘 �젙�솗�엳 ��由ъ씤 �뿬遺�瑜� �솗�씤�빀�땲�떎.<br> + (4) 怨좉컼�씠 媛쒖씤�젙蹂댁쓽 �삤瑜섏뿉 ���븳 �젙�젙�쓣 �슂泥��븯�떊 寃쎌슦 �쉶�궗�뒗 �젙�젙�쓣 �셿猷뚰븯湲� �쟾源뚯� �빐�떦 媛쒖씤�젙蹂대�� �씠�슜 �삉�뒗 �젣怨듯븯吏� �븡�뒿�땲�떎. �삉�븳 �쉶�궗�뒗 �옒紐삳맂 媛쒖씤�젙蹂대�� �씠誘� �젣3�옄�뿉寃� �젣怨듯븳 寃쎌슦 洹� �젙�젙 + 泥섎━寃곌낵瑜� �젣3�옄�뿉寃� 吏�泥� �뾾�씠 �넻吏��븯�뿬 �젙�젙�븯�룄濡� �빀�땲�떎. + (5) 怨좉컼�� 媛쒖씤�젙蹂대�� 理쒖떊�쓽 �긽�깭濡� �젙�솗�븯寃� �엯�젰�븯怨� 蹂��룞 �궗�빆�씠 �엳�뒗 寃쎌슦, �씠瑜� �쉶�궗�뿉 �넻蹂댄븯�뿬�빞 �븯硫�, �뒪�뒪濡� 遺��젙�솗�븳 �젙蹂대�� �엯�젰�븯嫄곕굹, �쉶�궗�뿉 �넻蹂댄븯吏� �븡�븘�꽌 �쉶�궗媛� �븣 �닔 �뾾�뒗 怨좉컼�젙蹂댁쓽 + 蹂��룞�쑝濡� �씤�븳 梨낆엫�� 怨좉컼 �옄�떊�뿉寃� 洹��냽�맗�땲�떎.<br> + (6) 怨좉컼�씠 ���씤 �젙蹂댁쓽 �룄�슜�씠�굹 移⑦빐, �뿀�쐞�젙蹂대�� �엯�젰�븯�뒗 寃쎌슦 �꽌鍮꾩뒪 �빐吏� 諛� �쉶�썝�옄寃⑹씠 �긽�떎�맆 �닔 �엳�쑝硫� 踰� �벑 愿��젴 踰뺣졊�뿉 �뵲�씪 泥섎쾶諛쏆쓣 �닔 �엳�뒿�땲�떎.<br> + + �젣 9議� (媛쒖씤�젙蹂대낫�샇瑜� �쐞�븳 湲곗닠�쟻 愿�由ъ쟻 ��梨�)<br> + �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂닿� 遺꾩떎, �룄�궃, �늻異�, 蹂�議� �삉�뒗 �쎕�넀�릺吏� �븡�룄濡� �븯湲� �쐞�빐�꽌 �떎�쓬怨� 媛숈� 湲곗닠�쟻/愿�由ъ쟻 ��梨낆쓣 媛뺢뎄�븯怨� �엳�뒿�땲�떎.<br> + (1) 湲곗닠�쟻 ��梨�<br> + �몺 �젒�냽湲곕줉�쓽 �쐞��蹂�議� 諛⑹� 議곗튂瑜� 痍⑦븯怨� �엳�뒿�땲�떎.<br> + �몼 媛쒖씤�젙蹂대뒗 洹� 醫낅쪟�뿉 �뵲�씪 愿��젴 踰뺣졊�씠 �슂援ы븯�뒗 �닔以��쓽 �븫�샇�솕 ���옣 �삉�뒗 �쟾�넚 �떆 �븫�샇�솕 湲곗닠�쓽 �쟻�슜�븯�뿬 愿�由ы빀�땲�떎.<br> + �몾 諛깆떊�봽濡쒓렇�옩�쓣 �씠�슜�븯�뿬 而댄벂�꽣 諛붿씠�윭�뒪�뿉 �쓽�븳 �뵾�빐瑜� 諛⑹��븯湲� �쐞�븳 議곗튂瑜� 痍⑦븯怨� �엳�쑝硫�, 諛깆떊�봽濡쒓렇�옩�쓣 二쇨린�쟻�쑝濡� �뾽�뜲�씠�듃�븯怨� 媛묒옉�뒪�윭�슫 諛붿씠�윭�뒪 異쒗쁽 �떆�뿉 諛깆떊�씠 �굹�삤�뒗 利됱떆 �씠瑜� �젣怨듯븿�쑝濡쒖뜥 + 媛쒖씤�젙蹂닿� 移⑦빐�릺�뒗 寃껋쓣 諛⑹��븯怨� �엳�뒿�땲�떎.<br> + �몿 �븫�샇�븣怨좊━利섏쓣 �씠�슜�븯�뿬 �꽕�듃�썙�겕�긽 媛쒖씤�젙蹂대�� �븞�쟾�븯寃� �쟾�넚�븯�뒗 蹂댁븞�옣移�(SSL �벑)瑜� 梨꾪깮�븯怨� �엳�뒿�땲�떎.<br> + �뫀 �빐�궧 �벑 �쇅遺� 移⑥엯�뿉 ��鍮꾪븯�뿬 媛� �꽌踰꾨쭏�떎 移⑥엯李⑤떒�떆�뒪�뀥 諛� 痍⑥빟�젏遺꾩꽍�떆�뒪�뀥�쓣 �씠�슜�븯�뿬 蹂댁븞�뿉 理쒖꽑�쓣 �떎�븯怨� �엳�뒿�땲�떎.<br> + + (2) 愿�由ъ쟻 ��梨�<br> + �몺 �쉶�궗�뒗 媛쒖씤�젙蹂� 蹂댄샇�뿉 愿��븳 �궡遺�愿�由ш퀎�쉷�쓣 �닔由�, �떆�뻾�븯怨� �엳�뒿�땲�떎.<br> + �몼 �쉶�궗�뒗 媛쒖씤�젙蹂댁뿉 ���븳 �젒洹쇨텒�븳�쓣 �븘�슂��理쒖냼�븳�쓽 �씤�썝�쑝濡� �젣�븳�븯怨� �엳�뒿�땲�떎.<br> + �몾 �쉶�궗�뒗 媛쒖씤�젙蹂닿��젴 痍④툒 吏곸썝�� �떞�떦�옄�뿉寃� �븳�젙�떆�궎怨� �엳怨� �씠瑜� 蹂꾨룄�쓽 鍮꾨�踰덊샇瑜� 遺��뿬�븯�뿬 �젙湲곗쟻�쑝濡� 媛깆떊�븯怨� �엳�쑝硫�, �떞�떦�옄�뿉 ���븳 �닔�떆 援먯쑁�쓣 �넻�븯�뿬 �쉶�궗 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 以��닔瑜� �빆�긽 媛뺤“�븯怨� + �엳�뒿�땲�떎.<br> + �몿 �쉶�궗�뒗 怨좉컼�쓽 �떎�닔�굹 湲곕낯�쟻�씤 �씤�꽣�꽬�쓽 �쐞�뿕�꽦 �븣臾몄뿉 �씪�뼱�굹�뒗 �씪�뱾�뿉 ���빐 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎. 怨좉컼 �뒪�뒪濡쒓� 蹂몄씤�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯湲� �쐞�빐�꽌 �옄�떊�쓽 �씠硫붿씪怨� 鍮꾨�踰덊샇瑜� �쟻�젅�븯寃� 愿�由ы븯怨� �뒪�뒪濡� 梨낆엫�쓣 + �졇�빞 �빀�땲�떎.<br> + + �젣 10議� (媛쒖씤�젙蹂� 蹂댄샇梨낆엫�옄 諛� �떞�떦�옄�쓽 �뿰�씫泥�)<br> + �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯怨� 媛쒖씤�젙蹂댁� 愿��젴�븳 遺덈쭔�쓣 泥섎━�븯湲� �쐞�븯�뿬 �븘�옒�� 媛숈씠 愿��젴 遺��꽌 諛� 媛쒖씤�젙蹂닿�由ъ콉�엫�옄瑜� 吏��젙�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 怨좉컼�쓽 紐⑹냼由ъ뿉 洹� 湲곗슱�씠怨� �떊�냽�븯怨� 異⑸텇�븳 �떟蹂��쓣 �뱶由� �닔 + �엳�룄濡� 理쒖꽑�쓣 �떎�븯寃좎뒿�땲�떎.<br> + + <媛쒖씤�젙蹂대낫�샇 梨낆엫�옄><br> + 愿�由� 梨낆엫�옄: �씠�젙�꽑 ���옣 | 愿�由� �떞�떦�옄: 源��쑀吏� 二쇱엫<br> + �떞�떦遺��꽌: �뀒�뒪�똿 �넄猷⑥뀡�꽱�꽣 �냼�봽�듃�썾�뼱 媛쒕컻��<br> + �뿰�씫泥�: jslee1@wisestone.kr<br> + + 湲고� 媛쒖씤�젙蹂댁묠�빐�뿉 ���븳 �떊怨좊굹 �긽�떞�씠 �븘�슂�븯�떊 寃쎌슦�뿉�뒗 �븘�옒 湲곌��뿉 臾몄쓽�븯�떆湲� 諛붾엻�땲�떎.<br> + + �몺 媛쒖씤�젙蹂댁묠�빐�떊怨좎꽱�꽣: �쟾�솕 118 / �씠硫붿씪 privacy@kisa.or.kr / http://privacy.kisa.or.kr<br> + �몼 �젙蹂대낫�샇留덊겕 �씤利앹쐞�썝�쉶: �쟾�솕 02-580-0533~4 / http://www.eprivacy.or.kr<br> + �몾 ��寃�李곗껌 �궗�씠踰꾨쾾二꾩닔�궗�떒: �쟾�솕 02-3480-3571 / �씠硫붿씪 cybercid@spo.go.kr / http://www.spo.go.kr<br> + �몿 寃쎌같泥� �궗�씠踰꾪뀒�윭 ���쓳�꽱�꽣: �쟾�솕 1566-0112 / http://cyber.go.kr<br> + + �젣 11議� (怨좎��쓽 �쓽臾�)<br> + �쉶�궗�뒗 踰뺣쪧�씠�굹 �꽌鍮꾩뒪�쓽 蹂�寃쎌궗�빆�쓣 諛섏쁺�븯湲� �쐞�븳 紐⑹쟻 �벑�쑝濡� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓣 �닔�젙�븷 �닔 �엳�뒿�땲�떎. 媛쒖씤�젙蹂� 泥섎━諛⑹묠�씠 蹂�寃쎈릺�뒗 寃쎌슦 �쉶�궗�뒗 蹂�寃� �궗�빆�쓣 寃뚯떆�븯硫�, 蹂�寃쎈맂 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 寃뚯떆�븳 + �궇濡쒕��꽣 7�씪 �썑遺��꽣 �슚�젰�씠 諛쒖깮�빀�땲�떎. �븯吏�留�, �뵾移� 紐삵븯寃� �뿬�윭遺꾩쓽 沅뚮━�뿉 以묒슂�븳 蹂�寃쎌씠 �엳�쓣 寃쎌슦 蹂�寃쎈맆 �궡�슜�쓣 30�씪 �쟾�뿉 誘몃━ �븣�젮�뱶由ш쿋�뒿�땲�떎.<br> + + �� �떆�뻾�씪�옄 : 2018�뀈 11�썡 09�씪<br><br> \ No newline at end of file diff --git a/src/main/webapp/assets/font/NanumSquareR.eot b/src/main/webapp/assets/font/NanumSquareR.eot new file mode 100644 index 0000000..63e5c28 --- /dev/null +++ b/src/main/webapp/assets/font/NanumSquareR.eot Binary files differ diff --git a/src/main/webapp/assets/font/NanumSquareR.ttf b/src/main/webapp/assets/font/NanumSquareR.ttf new file mode 100644 index 0000000..926d9e9 --- /dev/null +++ b/src/main/webapp/assets/font/NanumSquareR.ttf Binary files differ diff --git a/src/main/webapp/assets/font/NanumSquareR.woff b/src/main/webapp/assets/font/NanumSquareR.woff new file mode 100644 index 0000000..f74f7fa --- /dev/null +++ b/src/main/webapp/assets/font/NanumSquareR.woff Binary files differ diff --git a/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.eot b/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.eot new file mode 100644 index 0000000..8afeaaa --- /dev/null +++ b/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.eot Binary files differ diff --git a/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.svg b/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.svg new file mode 100644 index 0000000..0b50172 --- /dev/null +++ b/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.svg @@ -0,0 +1,210 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata>Generated by Fontastic.me</metadata> +<defs> +<font id="dripicons-v2" horiz-adv-x="512"> +<font-face font-family="dripicons-v2" units-per-em="512" ascent="480" descent="-32"/> +<missing-glyph horiz-adv-x="512" /> + +<glyph glyph-name="alarm" unicode="a" d="M459 344c6 5 30 28 31 62 0 25-11 47-35 67 0 0 0 1 0 1-28 21-53 22-68 20-27-5-46-25-54-35-24 9-50 14-77 14-27 0-53-5-77-13-8 10-26 30-53 35-16 3-40 1-68-20 0 0-1-1-1-1-24-21-35-43-35-68 1-34 25-57 31-62-13-29-21-61-21-96 0-56 21-108 56-147-1-1-1-1-1-1l-32-49c-7-10-4-24 6-30 4-3 8-4 12-4 7 0 14 3 18 10l29 43c38-29 85-46 136-46 51 0 99 17 136 47l30-44c4-7 11-10 18-10 5 0 9 1 12 4 10 6 13 20 7 30l-33 49c0 0-1 1-1 1 34 40 54 91 54 147 1 35-7 67-20 96z m-64 106c9 2 20-2 31-11 13-11 19-22 19-32 0-10-5-19-10-24-17 22-38 41-61 56 6 5 13 10 21 11z m-328-43c0 10 6 21 19 32 11 9 22 13 31 11 8-1 15-6 21-11-23-15-44-34-61-56-4 6-10 14-10 24z m189-339c-99 0-179 81-179 180 0 99 80 181 179 181 99 0 179-81 179-180 0-99-80-181-179-181z m81 131c9-9 9-23 0-31-5-5-10-7-16-7-5 0-11 2-15 7l-66 65c-3 4-6 10-6 15l0 120c0 13 10 23 22 23 12 0 22-10 22-23l0-110z"/> +<glyph glyph-name="align-center" unicode="b" d="M456 412l-400 0c-13 0-23 10-23 22 0 12 10 22 23 22l400 0c13 0 23-10 23-22 0-12-10-22-23-22z m-63-97c0 12-10 22-22 22l-230 0c-12 0-22-10-22-22 0-12 10-22 22-22l230 0c12 0 22 10 22 22z m34-119c0 13-10 23-22 23l-298 0c-12 0-22-10-22-23 0-12 10-22 22-22l298 0c12 0 22 10 22 22z m41-118c0 12-10 22-22 22l-380 0c-12 0-22-10-22-22 0-12 10-22 22-22l379 0c13 0 23 10 23 22z"/> +<glyph glyph-name="align-justify" unicode="c" d="M456 412l-400 0c-13 0-23 10-23 22 0 12 10 22 23 22l400 0c13 0 23-10 23-22 0-12-10-22-23-22z m23-97c0 12-10 22-23 22l-400 0c-13 0-23-10-23-22 0-12 10-22 23-22l400 0c13 0 23 10 23 22z m0-119c0 13-10 23-23 23l-400 0c-13 0-23-10-23-23 0-12 10-22 23-22l400 0c13 0 23 10 23 22z m-201-118c0 12-10 22-22 22l-199 0c-12 0-22-10-22-22 0-12 10-22 22-22l199 0c12 0 22 10 22 22z"/> +<glyph glyph-name="align-left" unicode="d" d="M456 412l-400 0c-13 0-23 10-23 22 0 12 10 22 23 22l400 0c13 0 23-10 23-22 0-12-10-22-23-22z m-148-97c0 12-10 22-22 22l-230 0c-13 0-23-10-23-22 0-12 10-22 23-22l230 0c12 0 22 10 22 22z m68-119c0 13-10 23-22 23l-298 0c-13 0-23-10-23-23 0-12 10-22 23-22l298 0c12 0 22 10 22 22z m83-118c0 12-10 22-23 22l-379 0c-12 0-22-10-22-22 0-12 10-22 22-22l379 0c13 0 23 10 23 22z"/> +<glyph glyph-name="align-right" unicode="e" d="M456 412l-400 0c-13 0-23 10-23 22 0 12 10 22 23 22l400 0c13 0 23-10 23-22 0-12-10-22-23-22z m23-97c0 12-10 22-23 22l-230 0c-12 0-22-10-22-22 0-12 10-22 22-22l230 0c13 0 23 10 23 22z m0-119c0 13-10 23-23 23l-298 0c-12 0-22-10-22-23 0-12 10-22 22-22l298 0c13 0 23 10 23 22z m-2-118c0 12-10 22-22 22l-379 0c-13 0-23-10-23-22 0-12 10-22 23-22l379 0c12 0 22 10 22 22z"/> +<glyph glyph-name="anchor" unicode="f" d="M485 215c-5 5-11 8-18 8l-71 0c-13 0-23-10-23-23 0-12 10-22 23-22l43 0c-22-72-85-123-161-132l0 295c37 10 64 44 64 84 0 48-38 87-86 87-48 0-86-39-86-87 0-40 25-74 64-84l0-295c-78 9-139 60-161 132l43 0c13 0 23 10 23 22 0 13-10 23-23 23l-71 0c-7 0-13-3-18-8-4-5-6-11-5-17 20-115 118-198 234-198 116 0 214 83 233 198 1 6 0 12-4 17z m-271 210c0 24 19 42 42 42 23 0 42-18 42-42 0-23-19-42-42-42-23 0-42 19-42 42z"/> +<glyph glyph-name="archive" unicode="g" d="M87 390c0 12 10 22 23 22l292 0c12 0 22-10 22-22 0-13-10-23-22-23l-292 0c-13 0-23 10-23 23z m59 55l220 0c10 0 19 9 19 20 0 10-9 19-19 19l-220 0c-10 0-19-9-19-19 0-11 9-20 19-20z m366-81l0-61c0-2-1-4-1-6l-71-259c-3-9-11-16-21-16l-327 0c-10 0-19 7-21 17l-70 258c0 1 0 2-1 4 0 1 0 2 0 3l0 60c0 12 10 22 22 22 13 0 23-10 23-22l0-41 422 0 0 41c0 12 10 22 23 22 12 0 22-10 22-22z m-52-86l-409 0 58-211 292 0z m-270-111l132 0c12 0 22 10 22 22 0 12-10 22-22 22l-132 0c-12 0-22-10-22-22 0-12 10-22 22-22z"/> +<glyph glyph-name="arrow-down" unicode="h" d="M444 236c-4 8-12 14-21 14l-72 0 0 206c0 13-13 23-25 23l-140 0c-12 0-25-10-25-23l0-206-72 0c-9 0-17-6-21-14-3-8-1-18 5-25l167-170c4-5 10-7 16-7 6 0 12 2 16 7l167 170c6 7 8 17 5 25z m-188-146l-114 116 44 0c13 0 20 8 20 20l0 208 100 0 0-208c0-12 7-20 20-20l44 0z"/> +<glyph glyph-name="arrow-left" unicode="i" d="M456 351l-206 0 0 72c0 9-6 17-14 21-8 3-18 1-25-5l-170-167c-5-4-8-10-8-16 0-6 3-12 7-16l170-167c5-4 10-6 16-6 3 0 7 0 9 1 9 4 15 12 15 21l0 72 206 0c12 0 22 13 22 25l0 140c1 12-9 25-22 25z m-22-145l-208 0c-12 0-20-7-20-20l0-44-116 114 116 114 0-44c0-13 8-20 20-20l208 0z"/> +<glyph glyph-name="arrow-right" unicode="j" d="M472 272l-170 167c-7 6-18 8-25 5-9-4-15-12-15-21l0-72-206 0c-13 0-23-13-23-25l0-140c0-12 10-25 23-25l206 0 0-72c0-9 6-17 14-21 3-1 6-1 9-1 6 0 12 2 16 6l170 167c4 4 6 10 6 16 0 6-1 12-5 16z m-166-130l0 44c0 13-8 20-20 20l-208 0 0 100 208 0c12 0 20 7 20 20l0 44 116-114z"/> +<glyph glyph-name="arrow-thin-down" unicode="k" d="M411 190l-139-139c-5-4-10-6-16-6-6 0-11 2-16 6l-139 139c-9 9-9 23 0 31 9 9 23 9 32 0l101-101 0 325c0 12 10 22 22 22 12 0 22-10 22-22l0-325 102 101c8 9 22 9 31 0 9-8 9-22 0-31z"/> +<glyph glyph-name="arrow-thin-left" unicode="l" d="M467 256c0-12-10-22-22-22l-325 0 101-102c9-8 9-22 0-31-4-4-10-6-16-6-5 0-11 2-15 6l-139 139c-9 9-9 23 0 32l139 139c9 9 23 9 31 0 9-9 9-23 0-32l-101-101 325 0c12 0 22-10 22-22z"/> +<glyph glyph-name="arrow-thin-right" unicode="m" d="M461 240l-139-139c-4-4-10-6-15-6-6 0-11 2-16 6-9 9-9 23 0 32l101 101-325 0c-12 0-22 10-22 22 0 12 10 22 22 22l325 0-101 102c-9 8-9 22 0 31 8 9 22 9 31 0l139-139c9-9 9-23 0-32z"/> +<glyph glyph-name="arrow-thin-up" unicode="n" d="M411 291c-5-5-10-7-16-7-5 0-11 2-15 7l-102 101 0-325c0-12-10-22-22-22-12 0-22 10-22 22l0 325-102-101c-8-9-22-9-31 0-9 8-9 22 0 31l139 139c9 9 23 9 31 0l139-139c10-9 10-23 1-31z"/> +<glyph glyph-name="arrow-up" unicode="o" d="M439 302l-167 170c-4 4-10 7-16 7-6 0-12-3-16-7l-167-170c-6-6-8-18-5-25 4-9 12-15 21-15l72 0 0-206c0-12 13-22 25-22l140 0c12 0 25 10 25 22l0 206 72 0c9 0 17 6 21 14 3 8 1 19-5 26z m-113 4c-13 0-20-8-20-20l0-208-100 0 0 208c0 12-7 20-20 20l-44 0 114 116 114-116z"/> +<glyph glyph-name="article" unicode="p" d="M423 501l-334 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 446c0 12-10 22-22 22z m-22-445l-290 0 0 400 290 0z m-234 80c0 11 9 20 19 20l133 0c10 0 19-9 19-20 0-10-8-19-19-19l-133 0c-10 0-19 9-19 19z m0 78c0 11 9 20 19 20l133 0c10 0 19-9 19-20 0-10-8-19-19-19l-133 0c-10 0-19 9-19 19z m172 162c0 10-8 19-19 19l-134 0c-10 0-19-9-19-19l0-78c0-11 9-20 19-20l134 0c11 0 19 9 19 20z m-133-20l95 0 0-39-95 0z"/> +<glyph glyph-name="backspace" unicode="q" d="M512 258l0-98c0-14-8-25-22-25-14 0-23 11-23 25l0 73-380 0 57-56c10-9 9-25-1-35-5-5-12-7-18-7-6 0-13 2-18 7l-100 98c-4 5-7 12-7 18 0 7 3 13 7 17l100 99c9 9 25 9 35 0 9-9 9-25-1-35l-56-56 401 0c7 0 14-3 19-8 4-4 7-11 7-17z"/> +<glyph glyph-name="basket" unicode="r" d="M490 351l-61 0c0 0-1 1-1 2l-105 128c-8 10-22 12-31 4-10-8-12-23-4-33l83-101-230 0 83 101c8 10 6 24-4 32-9 8-23 7-31-3l-105-129c0 0-1-1-1-1l-61 0c-12 0-22-8-22-20l0-84c0-12 10-24 22-24l7 0 42-170c5-19 22-31 42-31l286 0c20 0 37 13 42 31l42 170 7 0c12 0 22 12 22 24l0 84c0 12-10 20-22 20z m-445-45l422 0 0-39-422 0z m353-239l-284 0-39 156 362 0z"/> +<glyph glyph-name="basketball" unicode="s" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m161-392c-14 13-38 41-47 84 43 6 75 15 95 22-5-40-23-76-48-106z m-370 107c20-8 52-17 95-23-8-43-33-71-47-84-25 30-43 66-48 107z m35 149c18-19 56-67 62-127-54 8-86 20-99 26 4 37 17 72 37 101z m384-101c-12-6-44-18-98-26 5 60 44 108 62 127 20-29 33-64 36-101z m-143-31c-14-1-29-2-45-2l0 224c48-5 90-25 123-56-21-22-74-84-78-166z m-89-3c-16 1-31 1-45 2-4 83-58 145-78 167 33 30 75 51 122 56l0-225z m-48-42c15-1 30-2 48-2l0-151c-40 4-77 20-108 43 20 19 50 55 60 110z m92-3c17 1 33 2 48 3 10-55 40-92 60-111-30-23-68-38-108-43z"/> +<glyph glyph-name="battery-empty" unicode="t" d="M490 317l-17 0 0 61c0 13-9 23-22 23l-429 0c-12 0-22-10-22-23l0-244c0-13 10-23 22-23l429 0c12 0 22 10 22 23l0 61 17 0c12 0 22 8 22 20l0 82c0 12-10 20-22 20z m-61-161l-384 0 0 200 384 0z"/> +<glyph glyph-name="battery-full" unicode="u" d="M195 211l0 90c0 12 10 22 22 22l39 0c12 0 22-10 22-22l0-90c0-12-10-22-22-22l-39 0c-12 0-22 10-22 22z m139-22l39 0c12 0 22 10 22 22l0 57c0 6-1 11-5 15l-29 33c-5 5-10 7-17 7l-10 0c-12 0-22-9-22-21l0-91c0-12 10-22 22-22z m-234 0l39 0c12 0 22 10 22 22l0 90c0 12-10 22-22 22l-39 0c-12 0-22-10-22-22l0-90c0-12 10-22 22-22z m412 108l0-82c0-12-10-20-22-20l-17 0 0-61c0-13-9-23-22-23l-429 0c-12 0-22 10-22 23l0 244c0 13 10 23 22 23l429 0c12 0 22-10 22-23l0-61 17 0c12 0 22-8 22-20z m-83 59l-384 0 0-200 384 0z"/> +<glyph glyph-name="battery-low" unicode="v" d="M490 317l-17 0 0 61c0 13-9 23-22 23l-429 0c-12 0-22-10-22-23l0-244c0-13 10-23 22-23l429 0c12 0 22 10 22 23l0 61 17 0c12 0 22 8 22 20l0 82c0 12-10 20-22 20z m-61-161l-384 0 0 200 384 0z m-268 55c0-12-10-22-22-22l-39 0c-12 0-22 10-22 22l0 90c0 12 10 22 22 22l39 0c12 0 22-10 22-22z"/> +<glyph glyph-name="battery-medium" unicode="w" d="M490 317l-17 0 0 61c0 13-9 23-22 23l-429 0c-12 0-22-10-22-23l0-244c0-13 10-23 22-23l429 0c12 0 22 10 22 23l0 61 17 0c12 0 22 8 22 20l0 82c0 12-10 20-22 20z m-61-161l-384 0 0 200 384 0z m-268 55c0-12-10-22-22-22l-39 0c-12 0-22 10-22 22l0 90c0 12 10 22 22 22l39 0c12 0 22-10 22-22z m117 0c0-12-10-22-22-22l-39 0c-12 0-22 10-22 22l0 90c0 12 10 22 22 22l39 0c12 0 22-10 22-22z"/> +<glyph glyph-name="bell" unicode="x" d="M467 114c-37 0-51 22-51 158 0 107-49 174-132 184l0 34c0 13-10 23-22 23-13 0-23-10-23-23l0-33c-89-7-140-75-140-184 0-137-17-158-54-158-12-1-23-9-23-22 0-12 10-21 23-21l144 0c2-16 7-37 20-51 12-13 28-20 46-20 18 0 34 7 46 20 13 15 19 35 21 51l145 0c13 0 23 9 23 21 0 13-10 21-23 21z m-199-63c-2-3-5-6-13-6-7 0-11 3-13 6-4 5-7 10-8 21l19 0c1 0 2 0 4 0 1 0 2 0 3 0l18 0c-2-11-5-16-10-21z m-9 66c-1 0-2 0-3 0-1 0-2 0-3 0l-132 0c21 39 21 99 21 156 0 91 39 139 111 139l6 0c71 0 111-48 111-139 0-57 0-117 20-156z m79 197c1-10-7-20-18-20-1 0-1 0-1 0-10 0-19 8-20 18-1 25-21 34-23 35-10 5-14 16-11 26 4 10 15 14 26 10 2-1 45-18 47-69z"/> +<glyph glyph-name="blog" unicode="y" d="M423 501l-334 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 446c0 12-10 22-22 22z m-22-445l-290 0 0 400 290 0z m-242 94c0 13 10 23 22 23l150 0c12 0 22-10 22-23 0-12-10-22-22-22l-150 0c-12 0-22 10-22 22z m3 106c0 12 10 22 22 22l147 0c12 0 22-10 22-22 0-12-10-22-22-22l-147 0c-12 0-22 10-22 22z m0 106c0 12 10 22 22 22l147 0c12 0 22-10 22-22 0-13-10-23-22-23l-147 0c-12 0-22 10-22 23z"/> +<glyph glyph-name="bluetooth" unicode="z" d="M289 256l99 99c9 8 9 22 0 31l-116 119c-7 7-16 9-24 5-9-3-14-11-14-20l0-179-79 78c-9 9-23 8-32 0-9-9-8-23 0-32l103-101-102-102c-9-9-9-23 0-32 4-4 10-6 15-6 6 0 11 2 16 6l79 79 0-179c0-9 5-17 14-20 2-1 5-2 8-2 6 0 12 2 16 7l117 119c8 9 8 23 0 31z m-11 179l63-64-63-63z m0-358l0 127 63-63z"/> +<glyph glyph-name="bold" unicode="A" d="M334 266c21 20 34 48 34 79 0 61-50 111-111 111l-118 0c-12 0-22-10-22-22l0-356c0-12 10-22 22-22l145 0c61 0 111 50 111 111 0 43-24 80-61 99z m-173 146l96 0c36 0 66-30 66-67 0-37-30-67-66-67l-96 0z m123-312l-123 0 0 134 123 0c37 0 67-30 67-67 0-37-30-67-67-67z"/> +<glyph glyph-name="bookmark" unicode="B" d="M356 512l-200 0c-12 0-22-10-22-22l0-468c0-9 5-17 13-20 3-1 6-2 9-2 6 0 12 2 16 7l82 87 86-87c6-6 16-8 25-5 8 3 13 11 13 20l0 468c0 12-10 22-22 22z m-22-436l-65 66c-4 5-10 8-15 8-6 0-12-4-16-8l-60-64 0 389 156 0z"/> +<glyph glyph-name="bookmarks" unicode="C" d="M295 417l-161 0c-13 0-23-8-23-20l0-375c0-9 6-17 14-20 3-1 6-2 9-2 6 0 11 2 16 7l63 66 66-67c6-6 16-8 24-5 9 4 14 12 14 21l0 375c0 12-10 20-22 20z m-22-341l-45 45c-4 5-10 7-15 7-7 0-12-3-17-7l-40-43 0 295 117 0z m122 419l0-374c0-11-9-20-19-20-11 0-20 9-20 20l0 352-117 0 0-7c0-11-9-20-19-20-11 0-20 9-20 20l0 29c0 11 6 17 17 17l161 0c11 0 17-6 17-17z"/> +<glyph glyph-name="box" unicode="D" d="M416 378l-320 0c-12 0-22-10-22-22l-3-284c0-6 2-11 6-16 5-4 10-6 16-6l325 0c6 0 12 2 16 6 4 5 6 10 6 16l-2 284c0 12-10 22-22 22z m-160-283l-141 0 3 239 275 0 2-239z m71 178c0-13-10-23-22-23l-98 0c-12 0-22 10-22 23 0 12 10 22 22 22l97 0c13 0 23-10 23-22z m167 89c-1 0-3 0-4 0-11 0-20 7-22 18l-7 37-410 0-7-37c-2-13-14-20-26-18-12 2-20 14-18 26l11 56c2 10 11 18 22 18l446 0c10 0 20-8 21-18l11-56c3-12-5-23-17-26z"/> +<glyph glyph-name="briefcase" unicode="E" d="M505 385c-4 3-9 5-15 5l-117 0 0 66c0 13-11 23-24 23l-186 0c-13 0-24-10-24-23l0-66-117 0c-12 0-22-8-22-20l0-314c0-13 10-23 22-23l468 0c12 0 22 10 22 23l0 313c0 6-2 11-7 16z m-321 49l144 0 0-44-144 0z m283-89l0-117-155 0 0 9c0 9-9 13-19 13l-74 0c-10 0-19-5-19-13l0-9-155 0 0 117z m-189-128l0-11-44 0 0 11z m-233-139l0 117 155 0 0-6c0-9 9-16 19-16l75 0c9 0 18 7 18 16l0 6 156 0 0-117z"/> +<glyph glyph-name="brightness-low" unicode="F" d="M256 352c-53 0-96-43-96-96 0-53 43-96 96-96 53 0 96 43 96 96 0 53-43 96-96 96z m0-148c-28 0-52 24-52 52 0 28 24 52 52 52 28 0 52-24 52-52 0-28-24-52-52-52z m-22 204l0 21c0 12 10 22 22 22 12 0 22-10 22-22l0-21c0-12-10-22-22-22-12 0-22 10-22 22z m217-152c0-12-10-22-22-22l-21 0c-12 0-22 10-22 22 0 12 10 22 22 22l21 0c12 0 22-10 22-22z m-173-152l0-21c0-12-10-22-22-22-12 0-22 10-22 22l0 21c0 12 10 22 22 22 12 0 22-10 22-22z m-174 130l-21 0c-12 0-22 10-22 22 0 12 10 22 22 22l21 0c12 0 22-10 22-22 0-12-10-22-22-22z m244 114c-9 9-9 23 0 32l14 13c9 9 23 9 31 0 9-8 9-22 0-31l-13-14c-5-5-10-7-16-7-6 1-12 3-16 7z m45-198c9-9 9-23 0-32-4-4-10-7-15-7-6 0-11 3-16 7l-14 14c-9 9-9 23 0 32 9 9 23 9 32 0z m-229 14c9-9 9-23 0-32l-14-13c-4-5-10-7-15-7-6 0-11 2-16 7-9 8-9 22 0 31l14 14c8 9 22 9 31 0z m-45 198c-9 9-9 23 0 32 8 9 22 9 31 0l14-14c9-9 9-23 0-32-4-4-10-6-15-6-6 0-12 2-16 6z"/> +<glyph glyph-name="brightness-max" unicode="G" d="M256 380c-68 0-124-56-124-124 0-68 56-124 124-124 68 0 124 56 124 124 0 68-56 124-124 124z m0-204c-44 0-80 36-80 80 0 44 36 80 80 80 44 0 80-36 80-80 0-44-36-80-80-80z m-22 268l0 46c0 12 10 22 22 22 12 0 22-10 22-22l0-46c0-13-10-23-22-23-12 0-22 10-22 23z m278-188c0-12-10-22-22-22l-46 0c-13 0-23 10-23 22 0 12 10 22 23 22l46 0c12 0 22-10 22-22z m-234-188l0-46c0-12-10-22-22-22-12 0-22 10-22 22l0 46c0 13 10 23 22 23 12 0 22-10 22-23z m-210 166l-46 0c-12 0-22 10-22 22 0 12 10 22 22 22l46 0c13 0 23-10 23-22 0-12-10-22-23-22z m305 139c-9 9-9 23 0 32l32 32c9 9 23 9 32 0 9-9 9-23 0-32l-32-32c-5-5-10-7-16-7-6 0-12 2-16 7z m64-267c9-9 9-23 0-31-5-5-10-7-16-7-5 0-11 2-15 7l-33 32c-9 9-9 23 0 32 9 9 23 9 32 0z m-298 33c9-9 9-23 0-32l-32-32c-5-4-10-7-16-7-5 0-11 3-15 7-9 9-9 23 0 32l32 32c8 8 22 8 31 0z m-64 267c-9 9-9 23 0 31 9 9 23 9 32 0l32-32c9-9 9-23 0-32-4-4-10-6-15-6-6 0-12 2-16 6z"/> +<glyph glyph-name="brightness-medium" unicode="H" d="M256 380c-68 0-124-56-124-124 0-68 56-124 124-124 68 0 124 56 124 124 0 68-56 124-124 124z m-80-124c0 44 36 80 80 80l0-159c-44-1-80 35-80 79z m58 188l0 46c0 12 10 22 22 22 12 0 22-10 22-22l0-46c0-13-10-23-22-23-12 0-22 10-22 23z m278-188c0-12-10-22-22-22l-46 0c-13 0-23 10-23 22 0 12 10 22 23 22l46 0c12 0 22-10 22-22z m-234-188l0-46c0-12-10-22-22-22-12 0-22 10-22 22l0 46c0 13 10 23 22 23 12 0 22-10 22-23z m-210 166l-46 0c-12 0-22 10-22 22 0 12 10 22 22 22l46 0c13 0 23-10 23-22 0-12-10-22-23-22z m305 139c-9 9-9 23 0 32l32 32c9 9 23 9 32 0 9-9 9-23 0-32l-32-32c-5-5-10-7-16-7-6 1-12 2-16 7z m64-267c9-9 9-23 0-31-5-5-10-7-16-7-5 0-11 2-15 7l-33 32c-9 9-9 23 0 32 9 9 23 9 32 0z m-298 33c9-9 9-23 0-32l-32-32c-5-4-10-7-16-7-5 0-11 3-15 7-9 9-9 23 0 32l32 32c8 8 22 8 31 0z m-64 267c-9 9-9 23 0 31 9 9 23 9 32 0l32-32c9-9 9-23 0-32-4-4-10-6-15-6-6 0-12 2-16 6z"/> +<glyph glyph-name="broadcast" unicode="I" d="M509 321c-5 17-15 30-30 38-19 10-41 9-57 6l-32 114c-2 8-8 14-16 16-8 1-16-1-22-7-79-89-112-111-200-149l-69-20c-61-17-96-82-79-143 9-29 28-54 56-69 17-10 36-15 55-15 9 0 18 1 27 4l7-26c4-14 12-27 22-37l12-11c4-4 10-6 15-6 6 0 12 2 16 7 9 9 9 23-1 32l-12 11c-4 4-7 10-9 16l-7 26 32 9c92 14 134 13 247-19 2-1 4-1 6-1 6 0 12 2 16 7 5 5 8 13 5 21l-32 114c14 6 34 16 45 34 8 15 10 31 5 48z m-428-175c-16 9-28 24-34 42-10 38 11 77 48 88l50 15 23-81 16-56-50-14c-18-5-37-3-53 6z m227 24c-25 0-50-2-80-6l-32 114-8 28c70 32 108 57 170 123l79-278c-52 14-90 19-129 19z m158 127c-4-6-12-11-20-14l-11 39c9 1 18 1 24-3 3-1 6-3 8-10 2-6 0-10-1-12z m-142 36c7-9 5-21-4-27-21-14-44-27-45-28-3-1-6-2-9-2-7 0-14 4-17 11-5 9-1 21 8 26 0 0 22 11 40 24 9 7 21 5 27-4z"/> +<glyph glyph-name="browser" unicode="J" d="M490 462l-468 0c-12 0-22-10-22-22l0-368c0-12 10-22 22-22l468 0c12 0 22 10 22 22l0 368c0 12-10 22-22 22z m-23-95l-155 0 0 50 155 0z m-333 0l0 50 55 0 0-50z m89 50l55 0 0-50-55 0z m-123 0l0-50-55 0 0 50z m-55-322l0 233 422 0 0-233z"/> +<glyph glyph-name="browser-upload" unicode="K" d="M278 250l1-228c0-12-10-22-22-22-13 0-23 10-23 22l0 229-65-65c-9-8-23-8-32 0-8 9-8 23 0 32l103 102c9 8 23 8 31 0l102-102c9-9 9-23 0-32-4-4-10-6-15-6-6 0-11 2-16 6z m234 240l0-371c0-13-10-24-22-24l-137 0c-12 0-22 10-22 22 0 12 10 22 22 22l114 0 0 239-422 0 0-239 116 0c12 0 22-10 22-22 0-12-10-22-22-22l-139 0c-12 0-22 11-22 24l0 371c0 12 10 22 22 22l468 0c12 0 22-10 22-22z m-289-73l55 0 0 50-55 0z m-34 50l-55 0 0-50 55 0z m-144-50l55 0 0 50-55 0z m422 0l0 50-155 0 0-50z"/> +<glyph glyph-name="brush" unicode="L" d="M512 464c0 12-5 24-14 33l-1 1c-18 18-48 18-66 1l-272-252c-37 7-76-3-104-31-38-38-38-80-37-106 0-3 0-6 0-9-1-21-11-46-16-54-3-6-3-12-1-18 2-6 7-11 12-13 27-11 53-16 78-16 44 0 85 17 117 48 26 27 41 58 41 90 0 8-1 15-2 22l251 271c9 9 14 20 14 33z m-335-384c-33-33-78-43-125-30 5 14 10 32 10 50 0 4 0 7 0 11 0 23-1 49 24 73 27 27 71 27 98 0 14-13 21-29 21-46 0-19-10-40-28-58z m290 382c0 0-1-1-1-1l-239-257c-4 4-7 8-11 12-4 4-8 7-12 11l257 239c0 0 1 1 1 1 1 1 3 1 4 0l1-1c0-1 0-2 0-2 0-1 0-2 0-2z"/> +<glyph glyph-name="calendar" unicode="M" d="M122 391l0 71c0 15 13 28 28 28 16 0 28-13 28-28l0-71c0-16-12-28-28-28-15 0-28 12-28 28z m240-28c15 0 28 12 28 28l0 71c0 15-13 28-28 28-16 0-28-13-28-28l0-71c0-16 12-28 28-28z m150 63l0-376c0-12-10-22-22-22l-468 0c-12 0-22 10-22 22l0 376c0 13 10 25 22 25l52 0c12 0 22-10 22-22 0-13-10-23-22-23l-29 0 0-94 422 0 0 94-29 0c-12 0-22 10-22 23 0 12 10 22 22 22l52 0c12 0 22-12 22-25z m-45-354l0 201-422 0 0-201z m-246 334l70 0c12 0 22 10 22 23 0 12-10 22-22 22l-70 0c-12 0-22-10-22-22 0-13 10-23 22-23z"/> +<glyph glyph-name="camcorder" unicode="N" d="M500 393c-8 4-18 3-25-2l-91-68 0 50c0 12-8 22-20 22l-342 0c-12 0-22-10-22-22l0-234c0-12 10-22 22-22l342 0c12 0 20 10 20 22l0 50 91-68c4-2 10-4 14-4 4 0 7 0 10 2 8 4 13 12 13 20l0 234c0 8-5 16-12 20z m-161-232l-294 0 0 190 294 0z m128 23l-77 59 0 26 77 59z"/> +<glyph glyph-name="camera" unicode="O" d="M256 362c-70 0-127-58-127-129 0-72 57-129 127-129 70 0 127 57 127 129 0 71-57 129-127 129z m0-215c-46 0-83 38-83 85 0 47 37 85 83 85 46 0 83-38 83-84 0-47-37-86-83-86z m62 80c-1-10-10-17-20-17-1 0-1 0-2 0-11 2-19 11-17 22 2 16-17 25-18 26-9 4-14 16-9 25 4 10 15 14 25 10 18-8 46-30 41-66z m-43-24c4-4 7-10 7-16 0-6-3-12-7-16-5-3-10-6-16-6-5 0-11 2-15 6-4 5-7 10-7 16 0 6 2 12 7 16 4 4 10 6 15 6 6 0 12-2 16-6z m215 164l-86 0-24 89c-3 10-12 17-22 17l-205 0c-10 0-19-7-22-17l-24-89-85 0c-12 0-22-9-22-21l0-285c0-12 10-22 22-22l468 0c12 0 22 10 22 22l0 285c0 12-10 21-22 21z m-23-284l-422 0 0 240 80 0c10 0 19 7 21 16l24 90 172 0 24-90c2-9 11-16 21-16l80 0z"/> +<glyph glyph-name="card" unicode="P" d="M512 382c0 23-18 41-41 41l-430 0c-23 0-41-18-41-41l0-252c0-23 18-41 41-41l430 0c23 0 42 18 42 41l0 252z m-45-4l0-39-422 0 0 39z m-422-244l0 139 422 0 0-139z m381 72c0-12-10-22-23-22l-105 0c-13 0-23 10-23 22 0 12 10 22 23 22l105 0c13 0 23-10 23-22z"/> +<glyph glyph-name="cart" unicode="Q" d="M511 360l-60-187c-4-14-16-23-30-23l-230 0c-13 0-26 9-30 21l-88 235-51 0c-12 0-22 10-22 23 0 12 10 22 22 22l66 0c10 0 18-6 22-15l90-241 212 0 47 150-262 0c-12 0-22 10-22 22 0 13 10 23 22 23l293 0c7 0 14-4 18-10 4-5 5-13 3-20z m-308-239c-10 0-19-4-26-11-7-6-11-16-11-25 0-10 4-19 11-26 7-7 16-11 26-11 9 0 18 4 25 11 7 7 11 16 11 26 0 9-4 19-11 25-7 7-16 11-25 11z m199 0c-9 0-19-4-25-11-7-6-11-16-11-25 0-10 4-19 11-26 6-7 16-11 25-11 10 0 19 4 26 11 7 7 11 16 11 26 0 9-4 19-11 25-7 7-16 11-26 11z"/> +<glyph glyph-name="checklist" unicode="R" d="M201 434c0 16 13 28 28 28l244 0c16 0 28-12 28-28 0-15-12-28-28-28l-244 0c-15 0-28 13-28 28z m272-150l-244 0c-15 0-28-12-28-28 0-16 13-28 28-28l244 0c16 0 28 12 28 28 0 16-12 28-28 28z m0-178l-244 0c-15 0-28-13-28-28 0-16 13-28 28-28l244 0c16 0 28 12 28 28 0 15-12 28-28 28z m-334 370c0 10-9 19-19 19l-84 0c-10 0-19-9-19-19l0-84c0-10 9-19 19-19l84 0c10 0 19 9 19 19z m0-262c0-10-9-19-19-19l-84 0c-10 0-19 9-19 19l0 84c0 10 9 19 19 19l84 0c10 0 19-9 19-19z m-33 64l-50 0 0-44 50 0z m33-242c0-10-9-19-19-19l-84 0c-10 0-19 9-19 19l0 84c0 10 9 19 19 19l84 0c10 0 19-9 19-19z m-33 64l-50 0 0-50 50 0z"/> +<glyph glyph-name="checkmark" unicode="S" d="M191 111c-6 0-12 3-17 8l-111 110c-10 10-10 26 0 36 10 10 25 10 36 0l93-93 222 221c10 10 26 10 36 0 10-10 10-25 0-35l-240-239c-6-5-12-8-19-8z"/> +<glyph glyph-name="chevron-down" unicode="T" d="M256 161c-6 0-12 3-16 7l-139 145c-9 9-9 23 0 31 9 9 23 9 32 0l123-128 123 128c8 9 23 9 32 0 9-8 9-22 0-31l-139-145c-4-4-10-7-16-7z"/> +<glyph glyph-name="chevron-left" unicode="U" d="M344 133c9-8 9-23 0-32-4-4-10-6-16-6-5 0-11 2-15 6l-145 139c-4 4-7 10-7 16 0 6 3 12 7 16l145 139c9 9 23 9 31 0 9-9 9-23 0-32l-128-123z"/> +<glyph glyph-name="chevron-right" unicode="V" d="M351 256c0-6-3-12-7-16l-145-139c-4-4-10-6-15-6-6 0-12 2-16 6-9 9-9 23 0 32l128 123-128 123c-9 8-9 23 0 32 8 9 22 9 31 0l145-139c4-4 7-10 7-16z"/> +<glyph glyph-name="chevron-up" unicode="W" d="M395 161c-6 0-12 3-16 7l-123 128-123-128c-8-9-23-9-32 0-9 8-9 22 0 31l139 145c4 4 10 7 16 7 6 0 12-3 16-7l139-145c9-9 9-23 0-31-5-4-10-7-16-7z"/> +<glyph glyph-name="clipboard" unicode="X" d="M429 462l-83 0-9 23c-6 16-22 27-39 27l-79 0c-18 0-33-11-39-27l-9-23-88 0c-12 0-22-11-22-23l0-417c0-12 10-22 22-22l346 0c12 0 22 10 22 22l0 417c0 12-10 23-22 23z m-242-45c9 0 18 6 21 14l13 36 75 0 13-36c4-9 12-14 22-14l17 0-16-31c-3-5-8-8-13-8l-121 0c-5 0-10 3-13 7l-19 32z m219-372l-300 0 0 372 9 0 31-55c0-1 1 0 1-1 11-17 30-27 51-27l120 0c21 0 42 10 52 29 0 1 1 2 1 2l26 52 9 0z"/> +<glyph glyph-name="clock" unicode="Y" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-467c-117 0-211 94-211 211 0 117 94 211 211 211 117 0 211-94 211-211 0-117-94-211-211-211z m85 158c9-9 9-23 0-32-4-5-10-7-15-7-6 0-12 2-16 7l-70 69c-4 4-6 10-6 16l0 132c0 13 10 23 22 23 12 0 22-10 22-23l0-123z"/> +<glyph glyph-name="clockwise" unicode="Z" d="M484 279l-78-78c-4-4-10-6-16-6-6 0-12 2-16 6l-77 78c-8 9-8 23 0 32 9 8 23 8 32 0l43-43c-6 80-72 144-153 144-84 0-152-70-152-156 0-86 68-156 153-156 31 0 61 10 86 27 10 8 24 5 31-5 7-10 5-24-5-31-33-23-72-35-112-35-109 0-198 89-198 200 0 111 89 200 198 200 102 0 187-79 196-181l35 36c9 8 23 8 32 0 9-9 9-23 1-32z"/> +<glyph glyph-name="cloud" unicode="0" d="M396 78c-111 0-294 0-297 0-49 0-90 37-98 88-6 39 11 92 73 120-14 62 21 114 67 136 30 14 62 15 92 5 26-8 50-26 68-51 27 15 60 16 87 1 24-13 46-41 43-83 60-19 84-70 81-115-4-49-41-101-116-101z m-202 312c-12 0-24-3-34-8-33-15-58-53-38-101 2-6 2-12-1-18-2-5-7-10-13-11-66-21-65-66-63-79 4-25 23-50 54-50 1 0 185-1 297-1 46 0 69 30 71 61 3 30-16 65-64 71-6 1-12 5-15 10-3 5-5 11-3 18 6 26-1 47-18 57-15 8-38 8-57-11-5-5-12-7-19-6-7 1-13 5-16 11-22 42-53 57-81 57z"/> +<glyph glyph-name="cloud-download" unicode="1" d="M506 265c-3-48-40-99-113-99-33 0-50 0-50 0-12 0-22 10-22 23 0 12 10 22 22 22 0 0 17 0 50 0 45 0 67 28 69 57 3 30-16 63-62 69-7 1-12 5-15 10-4 5-5 11-4 18 6 25 0 45-16 54-14 8-37 8-56-11-5-5-12-7-18-6-7 1-13 6-17 12-31 58-79 62-111 47-31-15-55-51-36-96 2-6 2-13-1-18-2-6-7-10-13-12-66-21-64-64-62-76 3-24 22-48 51-48l68 0c13 0 23-10 23-22 0-13-10-22-23-22l-68 0c-47 0-88 36-95 85-6 39 10 90 70 117-13 60 20 110 66 131 47 23 112 16 156-44 28 15 60 16 87 1 22-13 43-40 41-81 58-18 82-68 79-111z m-174-135l-54-54 0 202c0 12-10 23-23 23-12 0-22-11-22-23l1-202-54 54c-9 9-23 9-32 0-9-9-9-23 0-31l92-93c4-4 10-7 15-7 6 0 12 3 16 7l92 92c9 9 9 23 0 32-8 9-22 9-31 0z"/> +<glyph glyph-name="cloud-upload" unicode="2" d="M512 225c-3-48-41-101-115-101-34 0-52 0-52 0-12 0-22 10-22 22 0 12 10 21 22 21 0 0 18 1 52 1 46 0 69 31 71 61 2 30-17 64-65 71-6 1-11 4-15 9-3 5-4 12-3 18 6 26 0 47-18 56-14 9-38 8-56-10-5-5-13-7-19-6-7 1-13 5-17 11-32 61-81 64-114 48-32-15-57-52-37-99 2-6 2-13-1-18-3-6-8-10-13-12-68-20-67-65-65-78 4-25 23-50 54-50l69 0c12 0 22-11 22-23 0-12-10-24-22-24l-69 2c-49 0-90 38-97 89-6 39 10 91 73 119-15 61 20 113 66 134 48 23 116 17 160-45 28 15 61 16 88 1 23-14 45-41 42-83 59-18 84-69 81-114z m-178-18c5-4 10-7 16-7 6 0 11 3 16 7 9 9 9 23 0 32l-94 94c-4 4-10 6-16 6-6 0-12-2-16-6l-94-95c-9-9-9-23 0-32 9-8 23-8 32 0l56 58 0-208c0-13 10-23 23-23 12 0 22 10 22 23l-1 207z"/> +<glyph glyph-name="code" unicode="3" d="M328 95c-6 0-11 2-16 6-8 9-8 23 1 32l128 123-128 123c-9 8-9 23-1 32 9 9 23 9 32 0l145-139c4-4 6-10 6-16 0-6-2-12-6-16l-145-139c-5-4-10-6-16-6z m-128 6c8 9 8 23-1 32l-128 123 128 123c9 8 9 23 1 32-9 9-23 9-32 0l-145-139c-4-4-6-10-6-16 0-6 2-12 6-16l145-139c5-4 10-6 16-6 5 0 11 2 16 6z"/> +<glyph glyph-name="contract" unicode="4" d="M492 49c9-9 9-23 0-32-4-4-10-6-16-6-5 0-11 2-16 6l-121 121 0-57c0-13-10-23-22-23-12 0-22 10-22 23l0 111c0 6 3 12 7 16 4 3 10 6 16 6l111 0c12 0 22-10 22-22 0-12-10-22-22-22l-57 0z m-175 246l111 0c12 0 22 10 22 22 0 12-10 22-22 22l-57 0 123 124c9 9 9 23 0 31-9 9-23 9-31 0l-124-123 0 57c0 12-10 23-22 23-12 0-22-10-22-22l0-112c0-6 2-11 7-15 4-5 9-7 15-7z m-123 154c-12 0-21-10-21-22l0-57-123 123c-9 8-23 8-32 0-9-9-9-23 0-31l122-122-57 0 0-1c-11 0-22-10-22-22 0-13 10-23 22-23l111 0c6 0 11 3 16 7 4 5 6 10 6 16l0 111c0 11-10 21-22 21z m-1-232l-111 0c-12 0-22-10-22-22 0-12 10-22 22-22l57 0-121-123c-9-9-9-23 0-32 4-4 10-6 16-6 6 0 12 2 17 6l122 121 0-57c0-12 8-21 21-21l-1 0c12 0 22 9 22 21l0 111c0 6-2 12-6 17-4 4-10 7-16 7z"/> +<glyph glyph-name="contract-2" unicode="5" d="M225 227c4-5 7-11 7-17l0-116c0-12-10-21-22-21l0 0c-12 0-21 8-21 20l0 63-139-138c-4-5-11-7-17-7-5 0-11 2-15 7-9 9-9 23 0 32l138 139-63 0c-12 0-22 10-22 22 0 13 10 23 22 23l117 0c6 0 11-3 15-7z m269 267c-9 9-22 9-31 0l-140-141 0 64c0 12-10 23-23 23-12 0-22-10-22-23l0-116c0-7 2-12 6-16 5-5 10-6 16-6l117 0c12 0 22 10 22 22 0 12-10 22-22 22l-64 0 141 140c9 9 9 23 0 31z"/> +<glyph glyph-name="conversation" unicode="6" d="M490 378l-217 0 0 52c0 9-13 21-21 21l-235 0c-10 0-17-12-17-21l0-143c0-9 8-20 17-20l34 0 44-48c4-4 8-5 13-5 2 0 3 0 5 1 7 3 10 9 10 17l0 35 33 0 0-103c0-13 13-25 25-25l153 0 0-68c0-9 4-17 13-20 3-1 5-2 8-2 6 0 12 1 16 6l83 84 36 0c12 0 22 12 22 25l0 187c0 12-10 27-22 27z m-382-77c-9 0-19-4-19-14l0-11-19 21c-3 4-7 4-12 4l-25 0 0 116 201 0 0-39-53 0c-12 0-25-15-25-27l0-50z m359-117l-22 0c-6 0-11-1-16-6l-51-51 0 37c0 12-11 20-23 20l-155 0 0 150 267 0z m-234 100c0 9 7 17 16 17l107 0c9 0 16-8 16-17 0-10-7-17-16-17l-107 0c-9 0-16 7-16 17z m162-12c-4 3-5 7-5 12 0 4 1 9 5 12 6 6 17 6 24 0 3-4 5-8 5-12 0-5-2-9-5-12-4-3-8-5-12-5-5 1-10 2-12 5z"/> +<glyph glyph-name="copy" unicode="7" d="M256 390c-4 4-9 5-14 5l-166 0c-11 0-26-7-26-17l0-352c0-12 15-25 26-25l263 0c12 0 17 14 17 25l0 253c0 5 0 10-4 14z m55-112l-72 0 0 72z m-216-233l0 311 105 0 0-96c0-11 10-21 21-21l96 0 0-194z m364 367l-97 97c-4 2-7 3-11 3l-167 0c-9 0-17-5-17-14l0-53c0-10 7-17 17-17 9 0 16 8 16 17l0 34 117 0 0-94c0-10 8-18 17-18l95 0 0-206-23 0c-10 0-17-7-17-16 0-10 8-17 17-17l42 0c9 0 14 8 14 18l0 254c0 4-1 8-3 12z m-108 61l71-72-71 0z"/> +<glyph glyph-name="crop" unicode="8" d="M494 457c9 9 9 23 0 32-8 9-23 9-32 0l-66-66-279 0 0 41c0 12-10 22-22 22-13 0-23-10-23-22l0-41-39 0c-12 0-22-10-22-22 0-13 10-23 22-23l39 0 0-277c0-1 1-1 1-2 0-1 0-2 0-3 0 0 1-1 1-2 0-1 1-2 1-2 0-1 0-1 1-2 0-1 0-2 1-2 0-1 1-2 1-2 1-1 1-1 2-1 1-2 2-2 3-3 0 0 0-1 1-1 1 0 2-1 3-1 1 0 1-1 3-1 0 0 1-1 2-1 1 0 3 0 4 0l288 0 0-39c0-12 10-22 22-22 13 0 23 10 23 22l0 39 38 0c13 0 23 10 23 22 0 12-10 22-23 22l-38 0 0 271z m-143-79l-234-225 0 225z m33-256l-234 0 234 227z"/> +<glyph glyph-name="cross" unicode="9" d="M393 154c10-10 10-25 0-35-5-5-11-8-17-8-7 0-13 3-18 8l-102 101-102-101c-5-5-11-8-18-8-6 0-12 3-17 8-10 10-10 25 0 35l101 102-101 102c-10 10-10 25 0 35 10 10 25 10 35 0l102-101 102 101c10 10 25 10 35 0 10-10 10-25 0-35l-101-102z"/> +<glyph glyph-name="crosshair" unicode="!" d="M257 512c-1 0-1 0 0 0-1 0-1 0 0 0-142 0-257-115-257-256 0-141 115-256 255-256 142 0 256 115 256 256 1 141-114 256-254 256z m21-466l0 57c0 12-10 22-22 22-12 0-22-10-22-22l0-57c-100 10-178 89-188 188l57 0c12 0 22 10 22 22 0 12-10 22-22 22l-57 0c10 99 88 178 188 188l0-57c0-12 10-22 22-22 12 0 22 10 22 22l0 57c100-10 178-89 188-188l-57 0c-12 0-22-10-22-22 0-12 10-22 22-22l57 0c-10-99-88-178-188-188z"/> +<glyph glyph-name="cutlery" unicode=""" d="M461 60c9-9 9-23 0-32-5-4-10-6-16-6-5 0-11 2-15 7l-177 177-175-177c-5-5-10-7-16-7-5 0-11 2-15 7-9 9-9 23 0 32l174 177-30 29-4-4c-14-14-33-22-53-22-20 0-39 8-53 22l-74 73c-9 8-9 22 0 31 9 9 22 9 31 0l74-73c6-6 14-9 22-9 8 0 16 3 22 9l5 5-96 94c-9 9-9 23 0 32 8 9 22 9 31 0l95-95 6 6c12 11 12 31 0 43l-74 73c-9 9-9 23 0 32 9 9 23 9 32 0l73-74c30-29 30-77 0-106l-5-6 29-29 197 199c3 4 10 7 15 7 6 0 12-3 16-7 49-49 41-119-21-181l-76-76c-8-8-22-8-31 0-9 9-9 23 0 32l75 75c45 45 44 79 34 100l-177-180z"/> +<glyph glyph-name="device-desktop" unicode="#" d="M470 473l-428 0c-23 0-42-19-42-42l0-247c0-23 19-45 42-45l142 0 0-23-43-34c-7-6-11-17-7-26 3-9 11-17 21-17l200 0c10 0 18 8 22 17 3 9 0 20-7 26l-42 34 0 23 142 0c23 0 42 22 42 45l0 247c0 23-19 42-42 42z m-174-383l13-12-109 0 15 13c4 4 8 10 8 16l0 32 66 0 0-32c0-6 3-13 7-17z m171 94l-422 0 0 245 422 0z"/> +<glyph glyph-name="device-mobile" unicode="$" d="M294 89c0-9-7-17-17-17l-43 0c-9 0-16 8-16 17 0 10 7 17 16 17l43 0c10 0 17-7 17-17z m107 381l0-428c0-23-19-42-43-42l-204 0c-24 0-43 19-43 42l0 428c0 23 19 42 43 42l204 0c24 0 43-19 43-42z m-245-3l0-294 200 0 0 294z m200-422l0 94-200 0 0-94z"/> +<glyph glyph-name="device-tablet" unicode="%" d="M287 83c0-9-7-16-17-16l-28 0c-10 0-17 7-17 16 0 10 7 17 17 17l28 0c10 0 17-7 17-17z m175 387l0-428c0-23-19-42-42-42l-328 0c-23 0-42 19-42 42l0 428c0 23 19 42 42 42l328 0c23 0 42-19 42-42z m-367-3l0-306 322 0 0 306z m322-422l0 83-322 0 0-83z"/> +<glyph glyph-name="direction" unicode="&" d="M278 22c-1 0-3 0-4 1-10 1-17 9-18 19l-19 194-195 19c-10 2-18 9-19 19-2 10 4 19 13 24l423 190c8 3 18 2 25-5 6-7 8-17 4-25l-190-423c-4-8-12-13-20-13z m-148 269l128-13c11-1 19-9 20-20l14-128 131 293z"/> +<glyph glyph-name="disc" unicode="'" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-45c117 0 211-94 211-211 0-29-6-58-17-84l-125 62c8 25 2 54-18 74-20 20-48 25-73 18l-45 91c-4 8-14 12-23 8-8-4-11-14-7-23l46-93c0 0 0 0-1-1 0 0 0 0 0 0l-127 62c38 59 104 97 179 97z m-24-187c7 7 15 10 24 10 9 0 17-3 24-10 13-13 13-35 0-48-13-13-35-13-48 0-13 13-13 35 0 48z m138-202l-29 59c-4 8-14 12-23 8-8-4-11-14-7-23l29-59c-26-11-55-18-84-18-117 0-211 94-211 211 0 29 6 58 17 84l125-62c-8-25-2-53 18-73 14-14 33-21 51-21 18 0 37 7 51 21 0 0 1 0 1 0l126-63c-16-25-38-47-64-64z m-50 103c3-3 6-8 6-14 0-5-3-10-6-14-3-4-9-6-14-6-5 0-10 3-14 6-4 3-5 9-5 14 0 5 2 10 5 14 7 7 21 7 28 0z"/> +<glyph glyph-name="document" unicode="(" d="M423 501l-334 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 446c0 12-10 22-22 22z m-22-445l-290 0 0 400 290 0z m-237 147c0 11 9 20 20 20l65 0c11 0 20-9 20-20 0-10-9-19-20-19l-65 0c-11 0-20 9-20 19z m3 89c0 11 9 20 19 20l133 0c10 0 19-9 19-20 0-10-8-19-19-19l-133 0c-10 0-19 9-19 19z m0 84c0 10 9 19 19 19l133 0c10 0 19-9 19-19 0-11-8-20-19-20l-133 0c-10 0-19 9-19 20z m165-161c4-3 6-8 6-14 0-5-2-10-6-13-3-4-9-6-14-6-5 0-10 2-14 6-3 3-5 8-5 13 0 5 2 10 5 14 8 8 21 8 28 0z"/> +<glyph glyph-name="document-delete" unicode=")" d="M439 370l-123 124c-5 5-10 7-17 7l-210 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 322c0 6-2 11-6 15z m-38-25l-112 0 0 111 2 0z m-290-289l0 400 134 0 0-133c0-12 9-22 22-22l134 0 0-245z m209 166l-37-37 37-36c8-8 8-20 0-28-4-4-9-5-14-5-5 0-10 1-14 5l-36 36-36-36c-4-4-9-6-14-6-5 0-10 2-14 6-8 8-8 20 0 27l37 37-37 36c-8 8-8 21 0 28 8 8 20 8 27 0l36-37 37 37c7 8 20 8 27 0 9-7 9-19 1-27z"/> +<glyph glyph-name="document-edit" unicode="*" d="M479 461l-39 40c-4 4-8 5-13 5-4 0-8-1-11-5l-233-236c-2-2-3-3-4-6l-27-66c-2-6-1-13 4-18 4-3 8-5 12-5 2 0 4 1 6 1l66 27c2 1 4 2 5 3l234 237c7 6 7 17 0 23z m-254-234l-27-11 11 28 218 222 17-17z m170 20l0-225c0-12-11-22-23-22l-316 0c-13 0-23 10-23 22l0 424c0 13 10 21 23 21l231 0c12 0 22-10 22-22 0-12-10-22-22-22l-209 0 0-378 273 0 0 202c0 12 10 22 22 22 12 0 22-10 22-22z"/> +<glyph glyph-name="document-new" unicode="+" d="M439 370l-123 124c-5 5-10 7-17 7l-210 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 322c0 6-2 11-6 15z m-38-25l-112 0 0 111 2 0z m-290-289l0 400 134 0 0-133c0-12 9-22 22-22l134 0 0-245z"/> +<glyph glyph-name="document-remove" unicode="," d="M439 370l-123 124c-5 5-10 7-17 7l-210 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 322c0 6-2 11-6 15z m-38-25l-112 0 0 111 2 0z m-290-289l0 400 134 0 0-133c0-12 9-22 22-22l134 0 0-245z m215 130c0-10-9-19-20-19l-100 0c-11 0-20 9-20 19 0 11 9 20 20 20l100 0c11 0 20-9 20-20z"/> +<glyph glyph-name="dot" unicode="-" d="M256 217c-10 0-21 4-28 12-7 7-11 17-11 27 0 10 4 20 11 28 7 7 17 11 28 11 10 0 20-4 27-11 8-7 12-17 12-28 0-10-4-20-12-27-7-8-17-12-27-12z"/> +<glyph glyph-name="dots-2" unicode="." d="M189 217c-10 0-20 4-28 12-7 7-11 17-11 27 0 10 5 20 11 28 8 7 18 11 28 11 10 0 20-4 27-11 8-7 12-17 12-28 0-10-4-20-12-27-7-8-17-12-27-12z m161 12c7 7 12 17 12 27 0 10-5 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z"/> +<glyph glyph-name="dots-3" unicode="/" d="M117 217c-10 0-21 4-28 12-7 7-11 17-11 27 0 10 4 20 11 28 7 7 17 11 28 11 10 0 20-4 27-11 7-7 12-17 12-28 0-10-5-20-12-27-7-8-17-12-27-12z m166 12c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z m139 0c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-20-4-28-11-7-7-11-17-11-28 0-10 5-20 11-27 8-8 18-12 28-12 10 0 20 4 27 12z"/> +<glyph glyph-name="download" unicode=":" d="M495 185l0-152c0-15-12-27-28-27l-422 0c-16 0-28 12-28 27l0 152c0 15 12 28 28 28 15 0 27-13 27-28l0-124 368 0 0 124c0 15 12 28 27 28 16 0 28-13 28-28z m-259-35c5-5 12-8 20-8 8 0 14 3 20 8l111 114c10 11 10 28-1 39-11 11-28 11-39 0l-63-65 0 241c0 15-12 27-28 27-16 0-28-12-28-27l0-241-63 64c-11 11-29 11-40 1-11-11-11-29 0-40z"/> +<glyph glyph-name="duplicate" unicode=";" d="M490 131l-336 0c-13 0-23 10-23 23l0 336c0 12 10 22 23 22l336 0c12 0 22-10 22-22l0-336c0-13-10-23-22-23z m-314 45l291 0 0 291-291 0z m194-149l0 59c0 9-8 16-17 16-9 0-17-7-17-16l0-53-302 0 0 303 52 0c9 0 16 7 16 16 0 9-7 17-16 17l-59 0c-15 0-27-12-27-27l0-316c0-14 12-26 27-26l316 0c15 0 27 12 27 27z"/> +<glyph glyph-name="enter" unicode="<" d="M495 440l0-368c0-12-10-22-22-22l-290 0c-12 0-22 10-22 22l0 102c0 12 10 22 23 22 12 0 22-10 22-22l0-79 245 0 0 322-245 0 0-79c0-12-10-22-22-22-13 0-23 10-23 22l0 102c0 12 10 22 22 22l290 0c12 0 22-10 22-22z m-236-256c-9-9-9-23 0-32 4-4 10-6 15-6 6 0 12 2 16 6l87 88c9 9 9 23 0 32l-86 89c-9 9-23 9-32 0-9-9-9-23 0-32l49-50-269-1c-12 0-22-10-22-22 0-12 10-22 22-22l269 0z"/> +<glyph glyph-name="exit" unicode="=" d="M334 174l0-102c0-12-9-22-21-22l-291 0c-12 0-22 10-22 22l0 368c0 12 10 22 22 22l291 0c12 0 21-10 21-22l0-102c0-12-10-22-22-22-13 0-23 10-23 22l0 79-244 0 0-322 244 0 0 79c0 12 10 22 23 22 12 0 22-10 22-22z m171 99l-86 88c-9 9-23 9-32 0-9-9-9-23 0-32l49-50-270-1c-12 0-22-10-22-22 0-12 10-22 22-22l270 0-49-50c-9-9-9-23 0-32 4-4 10-6 15-6 6 0 12 2 16 6l87 88c9 10 9 24 0 33z"/> +<glyph glyph-name="expand" unicode=">" d="M501 479l0-112c0-12-10-22-22-22-13 0-23 10-23 22l0 58-129-129c-4-5-10-7-15-7-6 0-11 2-16 7-9 8-9 22 0 31l129 129-58 0c-12 0-22 10-22 23 0 12 10 22 22 22l112 0c6 0 11-2 15-7 5-4 7-9 7-15z m-22-312c-13 0-23-10-23-22l0-58-127 126c-8 9-23 9-32 0-9-9-9-23 0-32l125-125-57 0c-12 0-22-10-22-23 0-12 10-22 22-22l111 0c7 0 13 2 17 7 5 4 8 10 8 15l0 112c0 12-10 22-22 22z m-296 47l-127-127 0 58c0 12-10 22-23 22-12 0-22-10-22-22l0-112c0-6 2-11 7-15 4-5 10-7 16-7l111 0c12 0 23 10 23 22 0 13-11 23-23 23l-58 0 127 127c9 8 9 22 0 31-8 9-23 9-31 0z m-96 240l58 0c12 0 22 10 22 22 0 13-10 23-22 23l-112 0c-6 0-11-3-15-7-5-4-7-9-7-16l0-111c0-12 10-22 22-22 13 0 23 10 23 22l0 58 128-129c5-4 10-6 16-6 5 0 11 2 15 6 9 9 9 23 0 32z"/> +<glyph glyph-name="expand-2" unicode="?" d="M501 479l0-117c0-13-10-23-22-23-13 0-23 10-23 23l0 63-140-141c-5-4-10-6-16-6-6 0-11 2-16 6-9 9-9 23 0 32l141 140-63 0c-13 0-23 10-23 23 0 12 10 22 23 22l117 0c6 0 11-2 15-7 5-4 7-9 7-15z m-307-254l-138-138 0 63c0 13-10 23-23 23-12 0-22-10-22-23l0-117c0-6 2-11 7-15 4-5 9-7 15-7l117 0c13 0 23 10 23 22 0 13-10 23-23 23l-63 0 139 138c9 9 9 23 0 32-9 8-23 8-32-1z"/> +<glyph glyph-name="experiment" unicode="@" d="M499 489c-4 7-12 12-20 12l-446 0c-8 0-16-5-20-12-4-7-2-16 3-23l173-255 0-168c0-17 12-32 30-32l74 0c18 0 30 14 30 32l0 168 173 255c5 7 7 16 3 23z m-216-259c-3-3-5-7-5-12l0-162-44 0 0 162c0 5-2 9-5 12l-53 78c11 3 24 6 39 6 17 0 29-3 42-7 13-3 26-6 45-7 11 0 21 1 30 2z m82 119c-1 0-24-10-63-10-14 0-24 3-36 7-13 3-29 7-51 7-25 0-47-6-63-11l-77 114 362 0z m-46 37c-4 4-7 10-7 16 0 6 2 11 7 15 4 4 10 7 15 7 7 0 12-2 16-7 4-4 7-10 7-15 0-6-2-12-7-16-4-4-10-6-16-6-5 0-11 2-15 6z"/> +<glyph glyph-name="export" unicode="[" d="M406 86l0-28c0-12-10-19-23-19l-363 0c-12 0-20 7-20 19l0 275c0 13 8 24 20 24l65 0c12 0 22-10 22-23 0-12-10-22-22-22l-40 0 0-229 317 0 0 3c0 13 10 23 22 23 12 0 22-10 22-23z m99 208l-138-141c-6-7-16-8-24-5-9 4-15 12-15 21l0 61c-44 1-151-3-190-72-4-7-12-12-19-12-2 0-4 0-6 1-10 3-17 12-17 22 0 3 0 89 65 153 40 42 95 64 167 68l0 61c0 9 6 17 14 20 9 4 19 2 25-5l139-140c8-9 8-23-1-32z m-48 16l-84 86 0-28c0-12-10-22-22-22-69 0-122-18-158-55-17-17-28-35-36-53 53 31 119 37 160 37 21 0 35-2 36-2 12-1 20-11 20-22l0-27z"/> +<glyph glyph-name="feed" unicode="]" d="M343 55c0-17-14-30-30-30-1 0-1 0-1 0-17 1-30 15-30 32 3 79-15 138-56 176-65 61-166 51-167 51-17-2-32 10-34 27-2 17 10 32 27 34 5 1 130 13 216-66 54-51 79-127 75-224z m-240 118c-19 0-38-8-51-21-14-13-21-32-21-51 0-19 7-38 21-51 13-14 32-22 51-22 19 0 38 8 51 22 14 13 21 32 21 51 0 19-7 38-21 51-13 13-32 21-51 21z m270 215c-127 119-313 98-321 97-17-2-29-17-27-34 2-16 17-29 34-26 2 0 166 18 273-81 67-62 98-159 93-287-1-16 12-31 29-31 1 0 1 0 1 0 16 0 30 12 31 29 7 146-31 258-113 333z"/> +<glyph glyph-name="flag" unicode="^" d="M483 511c-11 3-21-3-25-13-6-14-65-75-116-77-29-1-55 19-84 40-37 27-77 57-129 47-78-15-114-84-116-88-2-4-2-10-1-15l22-99 65-289c2-11 12-18 22-18 1 0 3 0 5 1 12 3 19 14 16 27l-37 168c10 16 38 54 83 64 26 6 47-1 72-9 27-8 58-19 98-10 84 19 141 120 143 250 0 10-7 19-18 21z m-135-228c-27-6-49 1-74 10-27 9-58 19-96 10-38-8-67-30-86-51l-2 10-33 144c9 15 35 49 79 58 34 6 62-15 95-39 32-24 68-50 112-49 38 2 76 24 106 48-13-67-46-128-101-141z"/> +<glyph glyph-name="flashlight" unicode="_" d="M238 256c0-9-7-17-17-17l-42 0c-9 0-16 8-16 17 0 9 7 17 16 17l42 0c10 0 17-8 17-17z m274 130l0-260c0-17-14-32-32-32l-53 0c-91 1-147 51-165 73l-230 0c-18 0-32 14-32 32l0 115c0 18 14 31 32 31l229 0c19 22 74 72 166 72l53 0c18 0 32-14 32-31z m-467-175l38 0 0 90-38 0z m350-70l0 230c-67-11-106-60-106-61-5-6-10-9-17-9l-155 0 0-90 155 0c7 0 12-3 16-9 2-2 40-50 107-61z m72 232l-38 0 0-234 38 0z"/> +<glyph glyph-name="folder" unicode="`" d="M445 384l-192 0-24 40c-4 6-11 10-19 10l-143 0c-12 0-22-10-22-22l0-312c0-12 10-22 22-22l378 0c12 0 22 10 22 22l0 261c0 12-10 23-22 23z m-22-262l-334 0 0 268 108 0 24-40c4-7 12-11 19-11l183 0z"/> +<glyph glyph-name="folder-open" unicode="{" d="M507 297c-4 6-11 9-17 9l-28 0 0 61c0 10-8 17-18 17l-195 0-25 41c-4 6-10 9-17 9l-144 0c-10 0-18-6-18-17l0-111-23 0c-6 0-13-3-17-8-4-5-6-13-4-19l41-189c2-10 11-18 21-18l381 0c10 0 18 8 21 17l46 189c2 7 0 14-4 19z m-424 98l113 0 25-41c3-6 10-9 17-9l185 0 0-39-340 0z m343-278l-345 0-31 145 411 0z"/> +<glyph glyph-name="forward" unicode="|" d="M72 95c-1 0-4 0-5 0-10 3-17 11-17 22 0 3 1 88 64 152 41 40 96 63 166 67l0 59c0 9 6 17 14 21 9 3 18 1 25-5l137-139c8-9 8-23 0-32l-137-139c-6-6-16-8-25-5-8 4-14 12-14 21l0 60c-44 1-150-3-188-71-4-7-12-11-20-11z m196 127c21 0 35-2 37-2 11-1 20-10 20-22l0-27 83 85-83 85 0-27c0-12-10-22-22-22-69 0-122-19-157-55-16-16-27-34-35-52 52 31 117 37 157 37z"/> +<glyph glyph-name="gaming" unicode="}" d="M338 340c5-4 8-11 8-18 0-6-3-13-8-18-4-4-11-7-17-7-7 0-14 3-18 7-5 5-7 12-7 18 0 7 2 13 7 18 4 4 11 7 18 7 6 0 13-3 17-7z m39-35c-6 0-12-3-17-7-5-5-8-11-8-18 0-7 3-13 8-18 4-4 11-7 17-7 7 0 14 3 18 7 5 5 7 11 7 18 0 7-2 13-7 18-4 4-11 7-18 7z m-189 12l-15 0 0 15c0 7-7 14-14 14-8 0-14-7-14-14l0-15-15 0c-8 0-14-6-14-14 0-7 6-14 14-14l15 0 0-14c0-8 6-14 14-14 7 0 14 6 14 14l0 14 15 0c8 0 14 7 14 14 0 8-6 14-14 14z m324-173c0-24-13-43-35-52-21-7-54-4-84 30-15 17-39 47-52 63-72-16-140-6-169 0-13-16-38-46-52-63-22-25-45-34-65-34-8 0-14 2-20 4-22 8-35 28-35 52 0 65 42 168 56 199-5 15-3 32 5 46 11 18 30 32 46 33 15 2 34-7 47-13 25 4 104 16 204 0 12 6 32 15 47 13 16-1 35-15 46-33 8-14 10-31 5-46 14-30 56-133 56-199z m-45 0c0 66-55 189-55 190-3 6-3 13 0 19 3 5 3 9 1 13-3 6-10 11-12 12-5 0-19-6-29-11-5-2-10-4-15-2-114 20-201 0-202 0-5-2-10-1-15 2-11 5-24 11-29 11-3-1-10-6-12-12-2-5-2-8 0-13 3-6 3-13 1-19 0-1-55-124-55-190 0-5 2-8 5-10 8-3 22 2 36 17 19 23 59 73 60 73 5 8 15 10 23 8 1 0 88-25 173 0 2 0 4 1 6 1 7 0 14-3 18-9 0 0 40-50 60-73 14-16 28-20 35-17 4 2 6 5 6 10z"/> +<glyph glyph-name="gear" unicode="~" d="M256 149c-59 0-107 47-107 107 0 59 47 107 107 107 59 0 107-47 107-107 0-59-48-107-107-107z m0 175c-37 0-68-31-68-68 0-37 31-68 68-68 37 0 68 31 68 68 0 37-31 68-68 68z m0-324l-3 0c-19 0-36 2-37 2-9 1-16 8-17 17l-6 40c-12 4-24 9-35 15l-31-24c-7-5-17-5-24 0-1 1-14 11-28 25l-2 2c-14 14-24 27-25 28-5 7-5 16 0 24l25 32c-6 11-11 23-15 35l-39 6c-8 1-15 8-16 17-1 1-3 18-3 37l0 3c0 19 2 36 2 37 1 9 8 16 17 17l40 6c4 12 9 24 15 35l-24 31c-5 7-5 17 0 24 1 1 11 14 25 28l2 2c14 14 27 24 28 25 7 5 16 5 24 0l32-25c11 6 23 11 35 15l6 39c1 8 8 15 17 16 1 1 18 3 37 3l3 0c19 0 36-2 37-2 9-1 16-8 17-17l6-40c12-4 24-9 35-15l31 24c7 5 17 5 24 0 1-1 14-11 28-25l2-2c14-14 24-27 25-28 5-7 5-16 0-24l-24-32c6-11 10-23 14-35l39-6c9-1 16-8 17-17 0-1 2-18 2-38l0-2c0-20-2-37-2-38-1-9-8-15-17-17l-40-5c-4-13-9-24-15-36l24-31c5-7 5-17 0-24-1-1-11-14-25-28l-2-2c-14-14-27-24-28-25-7-5-16-5-24 0l-32 25c-11-6-23-10-35-14l-6-39c-1-9-8-16-17-17-1 0-18-2-37-2z m-20 40c5 0 11 0 17 0l3 0c6 0 12 0 17 0l5 37c1 8 7 14 15 16 18 4 34 11 49 21 5 2 10 3 15 2 3-1 6-2 8-4l30-22c3 3 8 7 12 11l3 3c4 4 8 8 11 12l-22 30c-5 6-5 15-1 22 9 15 16 31 20 47 2 9 8 15 17 17l37 5c0 5 0 11 0 17l0 2c0 6 0 12 0 17l-37 5c-8 1-14 7-16 15-4 18-11 34-20 49-1 1-2 2-2 4-2 6-1 14 3 19l22 30c-3 3-7 8-11 12l-3 3c-4 4-8 8-12 11l-30-22c-7-5-17-5-23 0-15 9-31 16-47 20-8 2-14 8-16 17l-5 37c-5 1-11 1-17 1l-2 0c-6 0-12 0-17-1l-5-38c-1-9-8-15-17-16-17-4-33-11-47-20-5-3-10-3-15-2-3 0-6 2-8 4l-29 22c-4-3-8-7-13-12l-2-2c-4-4-8-9-12-13l23-29c5-7 5-15 1-23-1 0-1-1-1-1-9-15-16-31-20-47-2-8-8-14-17-16l-37-5c0-5 0-11 0-17l0-2c0-6 0-12 0-17l37-5c9-1 15-8 16-17 0 0 0-1 0-1 4-16 11-32 20-46 3-5 4-11 2-17-1-2-3-4-4-7l-22-29c3-3 7-8 12-12l2-3c4-4 9-8 13-11l29 22c7 6 18 5 25-1 14-8 30-15 46-19 8-2 14-8 15-17z"/> +<glyph glyph-name="graduation" unicode="\" d="M499 337l-234 105c-6 3-13 3-18 0l-234-105c-7-4-13-11-13-20 0-9 6-16 13-20l20-10 0-78c0-8 7-14 14-14 8 0 14 6 14 14l0 64 34-18 0-95c0-4 1-7 3-10 2-4 53-79 155-79 105 0 154 76 156 79 2 2 3 6 3 10l0 92 89 45c8 4 12 12 12 20-1 9-7 16-14 20z m-126-171c-11-13-49-56-120-56-69 0-108 42-119 56l0 69 112-57c3-2 7-2 10-2 3 0 7 0 11 2l106 54z m-117 57l-183 92 183 82 183-82z m-195-47c4-3 7-10 7-15 0-6-2-12-7-16-4-4-10-6-15-6-6 0-12 2-16 6-4 4-7 10-7 16 0 5 3 12 7 15 4 4 10 7 16 7 5 0 11-2 15-7z"/> +<glyph glyph-name="graph-bar" unicode="" d="M406 17c-18 0-33 15-33 33l0 412c0 18 15 33 33 33 19 0 34-15 34-33l0-412c0-18-15-33-34-33z m-117 33l0 276c0 18-15 34-33 34-18 0-33-16-33-34l0-276c0-18 15-33 33-33 18 0 33 15 33 33z m-150 0l0 140c0 19-15 34-33 34-19 0-34-15-34-34l0-140c0-18 15-33 34-33 18 0 33 15 33 33z"/> +<glyph glyph-name="graph-line" unicode="" d="M33 56c-5 0-10 1-14 4-13 7-17 25-10 38l68 113c5 8 14 14 23 14 10 0 19-4 24-12l29-40 61 105c5 7 14 13 23 14 9 0 18-4 23-12l54-71 141 233c7 14 25 18 38 10 13-8 17-25 10-39l-162-268c-5-8-14-13-23-14-9 0-18 4-24 11l-53 72-62-105c-5-8-13-13-23-14-9 0-18 4-24 12l-28 40-47-77c-5-9-14-14-24-14z"/> +<glyph glyph-name="graph-pie" unicode="" d="M187 305l-168 0c-10 0-19 9-19 19 0 104 84 188 187 188 11 0 19-9 19-19l0-168c1-11-8-20-19-20z m-146 39l127 0 0 127c-66-8-119-61-127-127z m232-344c-132 0-238 102-238 229 0 12 10 22 22 22l204 0 0 204c0 12 10 22 22 22 124 0 229-109 229-238 0-132-107-239-239-239z m-192 206c11-91 93-161 192-161 107 0 194 87 194 194 0 97-72 181-161 192l0-202c0-13-10-23-23-23z"/> +<glyph glyph-name="headset" unicode="" d="M495 274l0-141c0-12-10-22-23-22-12 0-22 10-22 22l1 141c0 52-20 100-57 137-37 36-85 56-137 56 0 0-1 0-1 0-107 0-194-86-195-192l0-141c0-13-10-23-22-23-12 0-22 10-22 23l0 141c0 131 108 237 239 237 0 0 1 0 1 0 64 0 124-25 168-70 46-45 70-105 70-168z m-291-12c4-4 5-8 5-13l0-225c0-11-9-18-20-18-73 0-97 42-100 65 0 1 0 0 0 1l0 127c0 1 0 1 0 2 3 23 27 66 100 66 0 0 1 0 1 0 5 0 10-1 14-5z m-34-34c-35-6-41-27-42-30l-1-125c2-4 8-24 43-30z m254-29l0-126c0-1 0-1 0-2-3-23-27-65-100-65-11 0-20 7-20 18l0 224c0 5 2 10 5 14 4 3 9 5 14 5 0 0 1 0 1 0 73 0 97-43 100-66 0-1 0-1 0-2z m-39-126l0 125c-2 4-8 24-43 30l1-185c35 7 41 27 42 30z"/> +<glyph glyph-name="heart" unicode="" d="M483 390c-23 50-71 83-122 83-52 0-86-23-105-47-19 24-53 47-105 47-51 0-99-33-122-83-23-53-13-112 28-157 97-110 183-187 185-188 4-4 9-5 15-5 5 0 10 1 15 5 1 1 86 79 184 188 40 45 50 104 27 157z m-61-128c-72-81-138-144-166-171-28 27-94 90-166 171-29 33-37 72-20 110 15 34 48 57 81 57 67 0 82-50 83-56 3-10 11-17 21-17 10 0 19 7 22 17 2 5 17 56 83 56 33 0 66-23 82-58 17-37 9-76-20-109z m-5 65c0-11-7-20-19-21 0 0-1 0-1 0-10 0-19 8-19 18-2 32-23 37-27 38-10 1-18 11-17 21 2 11 12 18 23 17 19-3 56-22 60-73z m-27-33c4-4 7-10 7-15 0-6-2-12-7-16-4-4-10-6-15-6-6 0-12 2-16 6-4 4-7 10-7 16 0 5 3 12 7 15 4 4 10 7 16 7 5 0 11-3 15-7z"/> +<glyph glyph-name="help" unicode="" d="M437 437c-49 48-113 75-181 75-68 0-132-27-181-75-48-49-75-113-75-181 0-68 27-132 75-181 49-48 113-75 181-75 68 0 132 27 181 75 48 49 75 113 75 181 0 68-27 132-75 181z m-50-150l76 12c3-14 4-29 4-43 0-14-1-29-4-43l-76 12c4 20 4 42 0 62z m67 45l-79-13c-7 12-14 23-24 32-9 10-20 18-32 24l13 79c27-11 53-27 74-48 21-22 37-47 48-74z m-198-166c-24 0-47 9-63 26-18 17-27 40-27 63 0 24 10 47 27 64 17 18 40 26 63 26 23 0 46-9 63-26 18-17 27-40 27-64 0-23-10-46-27-63-16-17-39-26-63-26z m0 301c14 0 29-1 43-4l-12-76c-20 5-42 5-62 0l-12 76c14 3 29 4 43 4z m-150-61c21 21 47 38 74 48l13-79c-12-7-23-14-32-24-10-9-17-20-24-32l-79 13c11 27 27 52 48 74z m-61-150c0 14 1 29 4 43l76-12c-2-10-4-20-4-31 0-11 1-21 4-31l-76-12c-3 14-4 29-4 43z m13-76l79 13c7-12 14-23 24-32 10-10 21-17 32-24l-12-79c-27 10-53 27-74 48-22 22-38 47-49 74z m198-135c-14 0-29 1-43 4l12 76c10-2 20-4 31-4 11 0 21 1 31 4l12-76c-14-3-29-4-43-4z m150 61c-21-21-47-38-74-48l-13 79c12 7 23 14 32 24 10 10 18 21 24 32l79-12c-11-28-27-53-48-75z"/> +<glyph glyph-name="home" unicode="" d="M490 239c-6 0-11 3-16 6l-218 214-218-214c-9-8-23-8-32 1-8 9-8 23 1 32l233 228c9 8 23 8 32 0l233-228c9-9 9-23 1-32-5-4-11-7-16-7z m-49-217l0 218c0 12-10 22-22 22-13 0-23-10-23-22l0-195-69 0 0 119c0 16-14 29-30 29l-82 0c-16 0-30-13-30-29l0-119-69 0 0 195c0 12-10 22-23 22-12 0-22-10-22-22l0-218c0-12 10-22 22-22l115 0c12 0 22 10 22 22l0 127 53 0 0-127c0-12 10-22 22-22l114 0c12 0 22 10 22 22z"/> +<glyph glyph-name="hourglass" unicode="" d="M434 56l-22 0 0 58c0 32-32 60-64 86-10 9-25 23-31 29l0 54c6 6 21 20 31 29 32 26 64 54 64 86l0 58 22 0c12 0 22 10 22 23 0 12-10 22-22 22l-356 0c-12 0-22-10-22-22 0-13 10-23 22-23l22 0 0-58c0-32 32-60 64-86 10-9 25-23 31-29l0-54c-6-6-21-20-31-29-32-26-64-54-64-86l0-58-22 0c-12 0-22-10-22-23 0-12 10-22 22-22l356 0c12 0 22 10 22 22 0 13-10 23-22 23z m-289 58c0 12 31 38 48 52 26 23 46 40 46 61l0 58c0 22-20 38-46 61-17 14-48 40-48 52l0 58 222 0 0-58c0-12-31-38-48-52-26-23-46-40-46-61l0-58c0-21 20-38 46-61 17-14 48-40 48-52l0-58-222 0z m161 292l0 11c0 11 9 20 20 20 10 0 19-8 19-20l0-11c0-10-9-19-19-19-11 0-20 9-20 19z"/> +<glyph glyph-name="inbox" unicode="" d="M512 294c0 0 0 2 0 2 0 1 0 1-1 2 0 1 0 2 0 3 0 0-1 1-1 2 0 0 0 1-1 1 0 1-1 2-1 3 0 0 0 0 0 0l-121 147c-4 5-10 8-17 8l-228 0c-7 0-13-3-17-8l-120-147c0 0-1 0-1 0 0-1-1-1-1-3 0 0 0-1-1-1 0-1 0-1 0-2 0-1-1-2-1-3 0 0 0-1 0-2 0 0 0-2 0-2 0-1 0-1 0-1l0-200c-1-23 19-43 44-43l422 0c25 0 45 20 45 44l0 199c0 0 0 1 0 1z m-360 123l207 0 83-100-73 0c-6 0-12-4-17-8l-50-59-92 0-50 59c-5 5-10 8-17 8l-74 0z m315-322l-422 0 0 178 88 0 48-56c6-7 14-11 23-11l104 0c9 0 16 5 23 11l48 56 88 0z"/> +<glyph glyph-name="information" unicode="" d="M241 101c-4 0-9 2-12 5-6 4-9 11-7 19l27 139-15-9c-9-5-21-2-26 8-5 9-3 21 7 26l52 30c6 4 15 3 21-1 6-5 9-12 8-20l-29-144 24 10c10 4 21 0 25-10 5-10 0-22-10-26l-57-25c-2-1-5-2-8-2z m55 266c5 5 8 13 8 20 0 7-2 14-8 19-5 5-12 9-19 9-8 0-15-3-20-9-5-5-8-12-8-19 0-7 3-15 8-20 5-5 12-8 20-8 7 0 14 3 19 8z m216-111c0 141-115 256-256 256-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256z m-45 0c0-117-94-211-211-211-117 0-211 94-211 211 0 117 94 211 211 211 117 0 211-94 211-211z"/> +<glyph glyph-name="italic" unicode="" d="M282 342c5-5 6-13 5-20l-41-211c10 4 22 0 27-10 6-10 2-24-9-30l-14-8c-5-2-11-4-17-4-7 0-14 2-20 7-12 9-17 22-14 36l39 204-9 0c-13 0-23 10-23 22 0 13 10 23 23 23l36 0c7 0 13-4 17-9z m-10 95c-14 0-26-11-26-26 0-14 12-26 26-26 15 0 26 12 26 26 0 15-12 26-26 26z"/> +<glyph glyph-name="jewel" unicode="" d="M506 338l-94 100c-5 4-10 7-16 7l-280 0c-6 0-12-3-16-7l-94-100c-8-9-8-22 1-31l233-234c5-5 10-7 16-7 6 0 12 2 16 7l233 234c9 9 9 22 1 31z m-354-32l42-120-121 120z m123 95l36-56-110 0 36 56z m-19-280l0 1-62 184 124 0-62-184z m104 185l79 0-121-120z m81 39l-85 0-35 56 65 0z m-315 56l65 0-35-56-85 0z"/> +<glyph glyph-name="lifting" unicode="" d="M429 390l0-268c0-12-10-22-23-22-12 0-22 10-22 22l0 112-256 0 0-112c0-12-10-22-22-22-13 0-23 10-23 22l0 268c0 12 10 22 23 22 12 0 22-10 22-22l0-112 256 0 0 112c0 12 10 22 22 22 13 0 23-10 23-22z m-396-33c-12 0-22-10-22-23l0-157c0-12 10-22 22-22 13 0 23 10 23 22l0 157c0 13-10 23-23 23z m446 0c-13 0-23-10-23-23l0-157c0-12 10-22 23-22 12 0 22 10 22 22l0 157c0 13-10 23-22 23z"/> +<glyph glyph-name="lightbulb" unicode="" d="M256 512c-91 0-167-76-167-169 0-56 22-102 67-133l0-54c0-6 4-12 8-16 4-4 10-6 16-6 0 0 1 0 2 0l153 12c12 1 22 10 22 22l0 42c39 28 67 77 67 133-1 93-77 169-168 169z m67-270c-7-4-11-12-11-19l0-34-112-9 0 43c0 7-3 15-10 19-38 22-56 56-56 101 0 69 55 124 122 124 67 0 122-55 122-124 0-44-20-82-55-101z m31-143c1-13-8-23-21-24l-152-12c0 0-1 0-1 0-12 0-21 9-23 21-1 12 9 23 21 24l152 11c13 1 23-8 24-20z m-48-71c1-12-9-22-21-24l-55-4c0 0-1 0-1 0-12 0-21 9-23 21-1 12 9 22 21 24l55 4c12 1 23-8 24-21z m38 316c-1-10-9-18-19-18-1 0-1 0-2 0-10 1-18 11-17 21 3 32-24 44-28 45-10 4-15 15-11 25 3 10 14 15 24 12 21-8 58-35 53-85z"/> +<glyph glyph-name="link" unicode="" d="M505 156l-132 133c-9 9-23 9-32 0l-43-44-53 53 44 43c9 9 9 23 0 32l-133 132c-9 9-22 9-31 0l-118-118c-5-4-7-10-7-16 0-6 2-11 7-15l132-133c5-4 10-7 16-7 5 0 11 3 15 7l44 44 52-53-43-43c-9-9-9-23 0-32l132-132c5-5 10-7 16-7 6 0 11 2 15 7l119 118c9 9 9 23 0 31z m-350 114l-101 101 87 87 101-101-28-28-17 17c-9 9-23 9-32 0-9-9-9-23 0-32l17-16z m216-216l-101 101 28 28 17-17c4-5 10-7 16-7 5 0 11 2 15 7 9 9 9 23 0 32l-17 16 28 28 101-101z"/> +<glyph glyph-name="link-broken" unicode="" d="M207 245c0-12-10-22-22-22l-35-2c-5 0-10 2-14 6l-129 130c-5 5-7 10-7 16 0 7 2 12 7 16l116 116c9 9 23 9 32 0l130-130c9-9 9-23 0-31-9-9-23-8-32 0l-114 115-85-85 107-107 23 0c13 0 23-10 23-22z m298-90l-129 129c-4 5-9 6-14 6l-35-1c-12 0-22-10-22-22 0-12 10-22 22-22l24 0 108-107-86-85-114 115c-9 9-23 9-32 0-9-9-9-23 0-31l130-130c5-5 10-7 16-7 6 0 12 2 16 7l116 116c5 4 7 10 7 16 0 6-2 11-7 16z m-166 231c13 0 23 10 23 22l0 56c0 12-10 22-23 22-12 0-22-10-22-22l0-56c0-12 10-22 22-22z m66-69l55 0c12 0 23 10 23 22 0 13-11 23-23 23l-55 0c-13 0-23-10-23-23 0-12 10-22 23-22z m-232-187c-13 0-23-10-23-23l0-55c0-12 10-23 23-23 12 0 22 11 22 23l0 55c0 13-10 23-22 23z m-69 65l-56 0c-12 0-22-10-22-22 0-13 10-23 22-23l56 0c12 0 22 10 22 23 0 12-10 22-22 22z"/> +<glyph glyph-name="list" unicode="" d="M508 429c0-19-15-34-34-34l-306 0c-19 0-34 15-34 34 0 18 15 33 34 33l306 0c19 0 34-15 34-33z m-340-206l174 0c18 0 33 15 33 33 0 18-15 33-33 33l-174 0c-19 0-34-15-34-33 0-18 15-33 34-33z m245-106l-245 0c-19 0-34-15-34-34 0-18 15-33 34-33l245 0c19 0 34 15 34 33 0 19-15 34-34 34z m-375 348c-10 0-19-4-26-11-6-7-11-16-11-25 0-10 4-19 11-26 6-7 16-11 25-11 10 0 19 4 26 11 7 7 10 16 10 26 0 9-3 18-10 25-6 7-16 11-25 11z m0-173c-10 0-19-4-26-10-6-7-11-17-11-26 0-9 4-19 11-26 6-6 16-10 25-10 10 0 19 4 26 10 7 7 10 17 10 26 0 9-3 19-10 26-6 6-16 10-25 10z m0-172c-10 0-19-4-26-11-6-7-11-16-11-26 0-9 4-18 11-25 6-7 16-11 25-11 10 0 19 4 26 11 7 7 10 16 10 25 0 10-3 19-10 26-6 7-16 11-25 11z"/> +<glyph glyph-name="loading" unicode="" d="M256 369c-12 0-22 10-22 22l0 96c0 12 10 22 22 22 12 0 22-10 22-22l0-96c0-12-10-22-22-22z m-66-22c10 8 12 21 5 31l-57 78c-7 10-21 12-31 5-10-7-12-21-5-31l56-78c5-6 11-9 18-9 5 0 10 1 14 4z m-41-56c3 12-3 25-15 28l-91 29c-12 4-25-2-28-14-4-11 3-24 14-28l92-29c2-1 4-2 6-2 10 0 18 7 22 16z m-106-127l91 29c12 4 18 16 15 28-4 12-17 18-28 14l-92-29c-11-4-18-16-14-28 3-9 12-15 21-15 2 0 5 0 7 1z m95-108l57 78c7 10 5 23-5 31-10 7-24 5-31-5l-57-78c-7-10-5-24 5-31 4-3 9-4 13-4 7 0 14 3 18 9z m140-31l0 96c0 12-10 22-22 22-12 0-22-10-22-22l0-96c0-12 10-22 22-22 12 0 22 10 22 22z m127 26c10 7 12 21 5 31l-57 78c-7 10-21 12-31 5-10-8-12-21-5-31l56-78c5-6 12-9 18-9 5 0 10 1 14 4z m92 127c4 11-3 24-14 27l-92 30c-11 4-24-3-28-15-3-11 3-24 15-27l91-30c2 0 5-1 7-1 9 1 18 7 21 16z m-106 99l92 29c11 4 18 16 14 28-4 12-16 18-28 14l-91-29c-12-4-18-16-15-28 3-9 12-16 22-16 2 0 4 1 6 2z m-38 75l57 78c7 10 5 24-5 31-10 7-24 5-32-5l-56-78c-7-10-5-23 5-31 4-3 9-4 13-4 7 0 14 3 18 9z"/> +<glyph glyph-name="location" unicode="" d="M381 468c-32 28-77 44-125 44-48 0-93-16-125-44-39-34-59-86-59-151 0-139 161-304 168-310 5-5 10-7 16-7 6 0 12 2 16 7 7 6 168 171 168 310 0 65-20 117-59 151z m-125-413c-15 17-39 45-62 78-50 71-77 135-77 184 0 139 106 150 139 150 129 0 139-115 139-150 0-98-99-218-139-262z m0 361c-49 0-88-41-88-90 0-50 39-90 88-90 49 0 88 41 88 90 0 50-39 90-88 90z m0-141c-27 0-50 23-50 51 0 29 23 51 50 51 27 0 50-22 50-51 0-28-23-51-50-51z"/> +<glyph glyph-name="lock" unicode="" d="M406 328l-16 0 0 39c0 82-56 139-134 139-78 0-134-57-134-139l0-39-16 0c-13 0-23-10-23-22l0-278c0-12 10-22 23-22l300 0c13 0 23 10 23 22l0 278c0 12-10 22-23 22z m-239 39c0 57 37 95 89 95 52 0 89-38 89-95l0-39-178 0z m217-317l-256 0 0 234 256 0z"/> +<glyph glyph-name="lock-open" unicode="" d="M406 328l-239 0 0 39c0 57 36 95 88 95 38 0 68-20 81-54 4-12 17-17 29-13 11 5 17 17 12 29-19 51-65 82-122 82-77 0-133-57-133-139l0-39-16 0c-13 0-23-10-23-22l0-278c0-12 10-22 23-22l300 0c13 0 23 10 23 22l0 278c0 12-10 22-23 22z m-22-278l-256 0 0 234 256 0z"/> +<glyph glyph-name="mail" unicode="" d="M512 385c0 0 0 1 0 2 0 0 0 1 0 1 0 1-1 2-1 3 0 0 0 1 0 2 0 0-1 1-1 2-1 0-1 1-1 2 0 0 0 0 0 0-1 1-1 1-1 1-1 1-2 2-2 2-1 1-1 1-2 1 0 1-1 1-1 1-1 1-2 1-2 1-1 1-1 1-2 2 0 0-1 0-2 0-1 0-1 1-2 1-1 0-2 0-2 0-1 0-2 0-2 0l-469 0c0 0-1 0-1 0-1 0-2 0-3 0 0 0-1-1-2-1 0 0-2 0-2 0-1 0-1-1-2-2 0 0-1 0-1-1-1 0-2 0-2-1-1 0-1-1-2-1 0 0-1-1-1-2-1 0-1 0-2-1 0 0 0 0 0 0 0-1-1-2-1-2 0-1 0-2-1-2 0-1 0-1 0-2 0-1-1-1-1-3 0 0 0-1 0-1 0-1 0-2 0-2 0 0 0-1 0-1l0-256c0-12 10-22 22-22l468 0c12 0 22 10 22 22l-1 257c0-1 0 0 0 0z m-90-23l-166-124-166 124z m-377-212l0 189 198-146c4-3 8-5 13-5 5 0 9 2 13 5l198 146 0-189z"/> +<glyph glyph-name="map" unicode="" d="M502 430l-117 55c-1 0-1 0-1 0-1 1-2 1-2 1-1 0-2 0-2 0-1 0-2 0-3 0 0 0-1 0-2 0 0 0-2 0-2 0-1 0-2-1-2-1-1 0-1 0-1 0l-110-51-111 51c0 0 0 0-1 0-1 1-2 1-2 1-1 0-2 0-2 0-1 0-2 0-3 0 0 0-1 0-2 0 0 0-2 0-2 0-1 0-2-1-2-1-1 0-1 0-1 0l-121-55c-7-4-13-10-13-18l0-362c0-7 5-13 11-17 3-2 7-3 11-3 2 0 6 1 9 2l109 51 110-51c2 0 3-1 4-1 0 0 0 0 1 0 1 0 2 0 4 0 1 0 3 0 4 0 0 0 0 0 1 0 1 1 2 1 3 1l110 51 109-51c3-1 6-1 9-1 4 0 6 1 9 3 5 4 7 10 7 17l0 361c1 8-2 14-9 18z m-268-349l-73 36 0 319 73-37z m-195 318l78 37 0-319-78-36z m239 0l78 37 0-319-78-36z m195-318l-78 36 0 319 78-37z"/> +<glyph glyph-name="media-loop" unicode="" d="M440 332l0-221c0-12-10-22-23-22l-322 0c-13 0-23 10-23 22l0 221c0 12 10 24 23 24l123 0-30 30c-9 9-8 22 0 30 9 9 23 9 32 0l68-68c8-9 8-23 0-31l-68-69c-5-4-10-6-16-6-5 0-11 2-15 6-9 9-9 24 0 32l30 31-102 0 0-178 278 0 0 179-47 0c-12 0-22 10-22 22 0 12 10 22 22 22l69 0c13 0 23-12 23-24z"/> +<glyph glyph-name="media-next" unicode="" d="M331 273l-234 184c-6 5-15 6-23 3-8-4-13-12-13-20l0-368c0-8 5-16 13-20 3-1 7-2 9-2 5 0 10 2 14 5l234 184c6 4 8 10 8 17 0 7-3 13-8 17z m-225-155l0 276 175-138z m345 313l0-354c0-14-11-25-25-25-14 0-25 11-25 25l0 354c0 14 11 25 25 25 14 0 25-11 25-25z"/> +<glyph glyph-name="media-pause" unicode="" d="M184 440l0-368c0-15-13-27-28-27-16 0-28 12-28 27l0 368c0 15 12 27 28 27 15 0 28-12 28-27z m172 27c-15 0-28-12-28-27l0-368c0-15 13-27 28-27 16 0 28 12 28 27l0 368c0 15-12 27-28 27z"/> +<glyph glyph-name="media-play" unicode="" d="M387 273l-234 184c-7 5-16 6-23 3-8-4-13-12-13-20l0-368c0-8 5-16 13-20 3-1 6-2 9-2 5 0 10 2 14 5l234 184c5 4 8 10 8 17 0 7-3 13-8 17z m-226-155l0 276 176-138z"/> +<glyph glyph-name="media-previous" unicode="" d="M438 460c-8 4-17 2-23-3l-231-184c-6-4-9-10-9-17 0-7 4-13 9-17l231-184c4-3 9-5 14-5 3 0 6 1 9 2 8 4 13 12 13 20l0 368c0 8-5 16-13 20z m-32-341l-173 137 173 137z m-300 312l0-354c0-14-11-25-25-25-14 0-25 11-25 25l0 354c0 14 11 25 25 25 14 0 25-11 25-25z"/> +<glyph glyph-name="media-record" unicode="" d="M256 42c-118 0-214 96-214 214 0 118 96 214 214 214 118 0 214-96 214-214 0-118-96-214-214-214z m0 378c-91 0-164-73-164-164 0-91 73-164 164-164 91 0 164 73 164 164 0 91-73 164-164 164z"/> +<glyph glyph-name="media-shuffle" unicode="" d="M380 345c-24 0-82-58-125-100-65-62-126-123-175-123l-30 0c-12 0-22 10-22 23 0 12 10 22 22 22l30 0c31 0 94 62 144 111 61 59 114 112 156 112l28 0-30 29c-9 9-9 22 0 31 9 9 23 9 32 0l68-69c5-4 7-10 7-15 0-6-2-12-7-16l-69-68c-4-5-10-7-16-7-5 0-11 3-15 7-9 9-9 24 0 32l30 31z m29-115c-9 9-23 9-32 0-9-9-9-23 0-32l31-31-29 0c-18 0-49 27-79 55-9 8-23 8-32-1-8-8-8-23 1-32 47-43 78-67 111-67l28 0-30-29c-9-9-9-22 0-31 4-5 10-6 15-6 6 0 12 2 16 6l68 69c5 4 7 10 7 15 0 6-2 12-7 16z m-359 115l30 0c24 0 59-30 86-55 5-4 10-6 15-6 7 0 13 2 17 7 8 9 8 24-2 32-43 40-80 67-116 67l-30 0c-12 0-22-10-22-22 0-12 10-23 22-23z"/> +<glyph glyph-name="media-stop" unicode="" d="M467 442c0 14-11 25-25 25l-378 0c-14 0-25-11-25-25l0-378c0-14 11-25 25-25l378 0c14 0 25 11 25 25z m-50-353l-328 0 0 328 328 0z"/> +<glyph glyph-name="medical" unicode="" d="M505 385c-4 3-9 5-15 5l-117 0 0 66c0 13-11 23-24 23l-186 0c-13 0-24-10-24-23l0-66-117 0c-12 0-22-8-22-20l0-314c0-13 10-23 22-23l468 0c12 0 22 10 22 23l0 313c0 6-2 11-7 16z m-321 49l144 0 0-44-144 0z m283-356l-422 0 0 267 422 0z m-302 136c0 11 9 20 20 20l49 0 0 49c0 11 9 20 19 20 11 0 20-9 20-20l0-49 54 0c11 0 20-9 20-20 0-10-9-19-20-19l-54 0 0-53c0-10-9-19-20-19-10 0-19 8-19 19l0 53-49 0c-11 0-20 9-20 19z"/> +<glyph glyph-name="menu" unicode="" d="M434 381l-356 0c-20 0-36 16-36 36 0 20 16 37 36 37l356 0c20 0 36-17 36-37 0-20-16-36-36-36z m36-125c0 20-16 36-36 36l-356 0c-20 0-36-16-36-36 0-20 16-36 36-36l356 0c20 0 36 16 36 36z m0-161c0 20-16 36-36 36l-356 0c-20 0-36-16-36-36 0-20 16-37 36-37l356 0c20 0 36 17 36 37z"/> +<glyph glyph-name="message" unicode="" d="M490 479l-468 0c-12 0-22-10-22-23l0-284c0-12 10-22 22-22l262 0 0-94c0-10 7-18 15-21 3-2 6-2 9-2 6 0 13 3 17 8l92 109 73 0c12 0 22 10 22 22l0 284c0 13-10 23-22 23z m-23-284l-60 0c-6 0-14-4-18-8l-61-71 0 56c0 12-7 23-20 23l-263 0 0 239 422 0z m-363 161c0 12 10 22 22 22l161 0c12 0 22-10 22-22 0-12-10-22-22-22l-161 0c-12 0-22 10-22 22z m244-17c-4 4-7 10-7 16 0 6 2 11 7 15 4 5 10 7 15 7 7 0 12-2 16-7 4-4 7-10 7-15 0-7-3-12-7-16-4-5-10-7-16-7-5 1-11 3-15 7z"/> +<glyph glyph-name="meter" unicode="" d="M405 373l-108-232c-9-24-26-38-44-38-15 0-28 8-35 20-8 14-8 32 2 47l141 227c7 11 22 15 34 9 11-6 16-20 10-33z m38-67c-8 9-22 10-32 1-9-8-9-22-1-32 37-40 57-92 57-147 0-12 10-22 23-22 12 0 22 10 22 22 0 66-24 130-69 178z m-169 37c12-1 23 8 24 20 1 12-8 23-20 24-8 0-15 1-22 1-141 0-256-117-256-261 0-12 10-22 22-22 13 0 23 10 23 22 0 120 94 216 211 216 6 1 12 0 18 0z"/> +<glyph glyph-name="microphone" unicode="" d="M380 22c0-12-10-22-23-22l-203 0c-13 0-23 10-23 22 0 13 10 23 23 23l82 0 0 37c0 11 9 20 20 20 11 0 20-9 20-20l0-37 82 0c12 0 22-10 22-23z m-5 329c-11 0-20-9-20-20l0-145c0-8-3-16-9-21-5-6-13-9-20-9l-140 0c-7 0-15 3-20 9-6 6-9 13-9 21l0 145c0 11-9 20-20 20-11 0-20-9-20-20l0-145c0-18 7-36 20-49 13-13 31-20 49-20l140 0c18 0 36 7 49 20 13 14 20 31 20 49l0 145c0 11-9 20-20 20z m-179-152c-8 9-12 20-12 31l0 232c0 12 4 23 12 33 9 11 21 17 33 17l54 0c25 0 45-27 45-49l0-231c0-23-20-48-45-48l-54-1c-12 0-24 5-33 16z m33 31c0-1 1-3 3-4l48 0c1 1 3 3 3 5l0 232c0 1-2 3-3 4l-48 0c-2-1-3-3-3-5z"/> +<glyph glyph-name="minus" unicode="" d="M378 231l-244 0c-14 0-25 11-25 25 0 14 11 25 25 25l244 0c14 0 25-11 25-25 0-14-11-25-25-25z"/> +<glyph glyph-name="monitor" unicode="" d="M512 440c0 12-10 22-22 22l-468 0c-12 0-22-10-22-22l0-290c0-12 10-22 22-22l468 0c12 0 22 10 22 22z m-45-267l-422 0 0 244 422 0z m-80-101c0-12-10-22-22-22l-218 0c-12 0-22 10-22 22 0 13 10 23 22 23l217 0c13 0 23-10 23-23z"/> +<glyph glyph-name="move" unicode="" d="M512 254c0-6-2-11-7-15l-78-78c-5-5-10-6-16-6-5 0-11 2-15 6-9 9-9 24 0 32l40 41-158 0 0-158 41 41c9 9 23 8 32 0 9-9 8-23 0-32l-79-78c-4-5-10-7-16-7-6 0-11 2-16 7l-78 78c-9 8-9 22 0 31 9 9 23 9 31 0l41-40 0 158-158 0 41-41c9-9 9-24 0-33-5-4-10-6-16-6-5 0-11 2-15 6l-79 79c-5 4-7 9-7 15 0 6 2 12 7 16l78 78c9 9 23 9 32 0 9-9 8-22 0-31l-41-39 158 0 0 158-41-40c-9-9-23-9-31 0-9 9-8 23 0 31l78 78c9 9 23 9 32 0l79-78c9-8 9-22 0-31-5-5-10-7-16-7-6 0-12 2-16 7l-41 40 0-158 158 0-41 40c-9 9-9 21 0 30 9 9 23 9 32 0l78-78c5-4 7-10 7-16z"/> +<glyph glyph-name="music" unicode="" d="M495 477c0 7-3 13-9 17-5 5-11 6-18 5l-280-57c-11-2-18-11-18-22l0-255c-16 9-35 14-55 14-25 0-49-8-68-24-20-16-30-36-30-60 0-48 44-84 98-84 26 0 49 7 67 22 19 16 29 37 29 60l0 0 2 218 236 48 0-132c-15 8-33 12-53 12-25 0-49-7-68-22-20-16-31-37-31-61 0-47 45-84 99-84 51 0 94 34 98 79 0 0 0 3 0 9z m-340-410c-10-9-24-11-40-11-29 0-54 16-54 39 0 10 5 19 15 26 10 9 24 12 40 12 29 0 54-18 54-40 0-10-5-18-15-26z m59 284l0 51 236 48 0-50z m182-234c-29 0-54 18-54 40 0 10 5 18 14 26 11 9 25 12 40 12 28 0 55-15 55-36l0-6c-6-21-27-36-55-36z"/> +<glyph glyph-name="network-1" unicode="" d="M364 125c-25 0-46-19-55-36l-121 0c-10 0-15 5-15 15l0 124 136 0c9-22 30-36 55-36 33 0 60 27 60 59 0 32-27 59-60 59-25 0-46-15-55-37l-136 0 0 119c0 0-2 1-2 1 22 9 37 30 37 54 0 33-27 59-59 59-33 1-60-26-60-58 0-24 16-46 38-55 0 0 1 0 1 0l0-289c0-34 26-59 60-59l121 0c9-23 30-39 55-39 33 0 60 27 60 59 0 32-28 60-60 60z m0 152c14 0 26-12 26-26 0-14-12-26-26-26-15 0-26 12-26 26 0 14 11 26 26 26z m-216 197c15 0 26-12 26-26 0-14-11-26-26-26-14 0-26 12-26 26 0 14 12 26 26 26z m216-436c-15 0-26 12-26 26 0 14 11 26 26 26 14 0 26-12 26-26 0-14-12-26-26-26z"/> +<glyph glyph-name="network-2" unicode="" d="M429 447c0 33-27 59-59 59-33 0-60-26-60-59 0-24 15-45 37-54-1-10-7-72-94-104-40-15-69-34-86-54l0 158c22 9 36 30 36 54 0 33-28 59-60 59-33 0-58-26-58-59 0-24 15-45 37-54l0-274c-22-9-38-30-38-54 0-33 26-59 58-59 33 0 61 26 61 59 0 24-14 45-37 54l0 18c0 6 3 74 102 110 118 43 124 135 124 146 22 9 37 30 37 54z m-287 26c15 0 26-12 26-26 0-13-12-25-26-25-14 0-25 12-25 25 0 14 11 26 25 26z m0-434c-14 0-25 12-25 26 0 13 12 25 25 25 15 0 26-12 26-25 0-14-12-26-26-26z m228 383c-15 0-26 12-26 25 0 14 12 26 26 26 14 0 25-12 25-26 0-13-11-25-25-25z"/> +<glyph glyph-name="network-3" unicode="" d="M462 119l0 120c0 34-24 62-58 62l-126 0 0 91c0 0 0 1 0 1 22 9 37 30 37 54 0 33-26 59-59 59-33 0-59-26-59-59 0-24 16-45 37-54 0 0 0-1 0-1l0-91-126 0c-34 0-58-28-58-62l0-120c-22-9-38-30-38-54 0-33 25-59 58-59 32 0 60 26 60 59 0 24-19 45-36 54l0 120c0 10 5 17 13 17l127 0 0-137c-23-9-37-30-37-54 0-33 26-59 59-59 33 0 59 26 59 59 0 24-14 45-37 54l0 137 126 0c9 0 13-8 13-17l0-120c-16-9-35-30-35-54 0-33 28-59 60-59 33 0 58 26 58 59 0 24-16 45-38 54z m-206 354c14 0 26-12 26-26 0-13-12-25-26-25-14 0-26 12-26 25 0 14 12 26 26 26z m-187-434c-14 0-26 12-26 26 0 13 12 25 26 25 14 0 26-12 26-25 0-14-12-26-26-26z m187 0c-14 0-26 12-26 26 0 13 12 25 26 25 14 0 26-12 26-25 0-14-12-26-26-26z m187 0c-14 0-26 12-26 26 0 13 12 25 26 25 14 0 26-12 26-25 0-14-12-26-26-26z"/> +<glyph glyph-name="network-4" unicode="" d="M215 450c0 33-26 59-59 59-32 0-61-26-61-59 0-25 16-47 33-55l0-278c-17-8-33-30-33-55 0-33 28-59 60-59 33 0 59 26 59 59 0 25-14 47-36 55l0 278c22 8 37 30 37 55z m-58 25c14 0 26-11 26-25 0-14-12-26-26-26-13 0-25 12-25 26 0 14 11 25 25 25z m0-438c-13 0-25 11-25 25 0 14 12 26 25 26 14 0 26-12 26-26 0-14-12-25-26-25z m227 80l0 278c17 8 33 30 33 55 0 33-28 59-61 59-33 0-59-26-59-59 0-25 15-47 37-55l0-278c-22-8-37-30-37-55 0-33 26-59 59-59 32 0 61 26 61 59 0 25-16 47-33 55z m-29 358c13 0 25-11 25-25 0-14-12-26-25-26-14 0-26 12-26 26 0 14 12 25 26 25z m0-438c-14 0-26 11-26 25 0 14 12 26 26 26 13 0 25-12 25-26 0-14-11-25-25-25z"/> +<glyph glyph-name="network-5" unicode="" d="M278 119l0 273c0 0 0 1 0 1 21 9 36 30 36 54 0 33-26 59-58 59-32 0-58-26-58-59 0-24 15-45 36-54 0 0 0-1 0-1l0-273c-21-9-36-30-36-54 0-33 26-59 58-59 32 0 58 26 58 59 0 24-15 45-36 54z m-22 354c14 0 25-12 25-26 0-13-11-25-25-25-14 0-25 12-25 25 0 14 11 26 25 26z m0-434c-14 0-25 12-25 26 0 13 11 25 25 25 14 0 25-12 25-25 0-14-11-26-25-26z"/> +<glyph glyph-name="pamphlet" unicode="" d="M454 495c-5 4-12 4-18 1l-117-55-118 55c-1 0-1 0-1 1-1 1-2 1-2 1-1 0-2 0-3 0 0 0-1 0-2 0 0 0-2 0-2 0-1 0-2 0-2 0-1 0-2-1-3-1 0 0 0 0-1-1l-128-59c-7-3-12-10-12-17l0-387c0-6 5-12 10-16 3-3 7-3 11-3 3 0 6 0 9 2l118 55 118-55c1-1 2-2 3-2 0 0 0 0 1 0 1 0 2 0 4 0 2 0 2 0 4 0 0 0 0 0 1 0 1 1 2 1 3 2l125 59c7 3 10 10 10 17l0 387c0 6-2 12-8 16z m-153-431l-90 41 0 343 90-41z m-218 343l90 41 0-343-90-41z m340-302l-84-41 0 343 84 41z"/> +<glyph glyph-name="paperclip" unicode="" d="M473 308c8-7 8-20 0-28l-221-220c-37-38-79-57-119-57-10 0-20 1-30 4-39 10-69 40-80 81-13 50 5 105 50 150l247 246c40 40 96 27 128-5 44-44 32-96 2-125l-249-248c-32-33-70-31-89-11-19 19-21 55 12 89l168 168c8 8 20 8 28 0 8-8 8-20 0-28l-169-168c-15-15-17-29-12-34 6-6 20-3 34 11l249 249c25 25 14 53-2 70-19 19-50 28-73 4l-246-246c-35-35-50-76-40-112 7-27 27-47 53-53 34-10 74 6 110 42l222 222c7 7 19 7 27-1z"/> +<glyph glyph-name="pencil" unicode="" d="M496 478l-18 18c-11 10-24 16-39 16-15 0-28-6-39-16l-352-352c-2-3-3-5-5-8l-41-105c-4-9-2-18 5-24 4-5 10-7 15-7 3 0 6 1 9 2l105 41c3 1 6 3 8 5l352 352c22 21 22 56 0 78z m-414-365l32-31-52-20z m382 318l-307-307-32 32 306 308c3 3 6 3 8 3 2 0 5 0 8-3l18-18c4-4 4-10-1-15z"/> +<glyph glyph-name="phone" unicode="" d="M493 442c-1 1-1 1-2 2l-60 52c-8 8-19 12-31 10-11-1-22-5-29-13-1 0-1-1-2-2l-59-74c-16-17-15-42 1-59 1-1 2-2 3-2l30-20c-2-11-17-41-72-96-55-55-86-70-96-72l-20 30c0 1-1 2-2 3-17 16-43 16-59 1l-74-59c0-1-1-1-2-2-16-16-17-44-2-60l52-60c1 0 1 0 1-1 10-10 26-14 43-14 31 0 66 12 84 20 36 14 105 47 174 116 51 52 93 113 117 175 10 27 33 96 5 125z m-154-269c-103-103-219-131-238-122l-51 59 72 57 20-30c0 0 0-1 1-1 7-9 16-13 27-14 11 0 44-2 132 87 22 21 89 88 86 132 0 11-5 20-13 27 0 0-1 1-2 1l-28 20 57 73 58-51c10-19-18-135-121-238z"/> +<glyph glyph-name="photo" unicode="" d="M490 451l-468 0c-12 0-22-10-22-22l0-346c0-12 10-22 22-22l468 0c12 0 22 10 22 22l0 346c0 12-10 22-22 22z m-23-45l0-186-37 31c-8 7-20 7-28 0l-60-50-140 121c-8 7-20 7-28 1l-129-104 0 187z m-422-300l0 55 142 116 140-122c8-7 20-7 29 0l60 50 51-44 0-55z m245 225c0 22 18 40 41 40 23 0 41-18 41-40 0-23-18-41-41-41-23 0-41 18-41 41z"/> +<glyph glyph-name="photo-group" unicode="" d="M510 371l-53-255c-1-8-8-14-16-14-1 0-2 0-3 1-9 2-15 11-13 19l50 239-320 65-8-36c-2-9-11-14-20-13-8 3-14 11-12 20l11 52c3 9 11 15 20 13l352-71c4-1 8-4 10-8 2-3 3-8 2-12z m-104-304c0-12-10-22-22-22l-362 0c-12 0-22 10-22 22l0 272c0 13 10 23 22 23l362 0c12 0 22-10 22-23z m-361 250l0-137 94 76c7 6 18 6 26-1l105-93 44 38c8 6 16 6 23 0l19-19 0 136z m311-228l0 41-31 29-42-38c-8-6-18-6-25 0l-108 94-105-86 0-40z m-92 138c19 0 34 15 34 33 0 19-16 34-34 34-19 0-34-15-34-34-1-18 15-33 34-33z"/> +<glyph glyph-name="pill" unicode="" d="M462 462c-24 26-57 39-92 39-35 0-67-13-92-39l-228-228c-26-25-39-58-39-92 0-35 13-68 39-92 24-25 57-39 92-39 35 0 68 13 92 39l229 228c25 25 38 58 38 93 0 35-13 67-39 91z m-259-381c-17-16-38-25-61-25-23 0-45 9-61 25-16 16-25 38-25 60 0 23 9 45 25 61l93 93c26-17 89-62 122-121z m228 228l-107-106c-35 57-92 100-122 121l107 107c17 16 38 25 61 25 23 0 45-9 61-25 16-16 25-38 25-60 0-23-9-45-25-62z m-111 66c8-8 8-20 0-28l-27-27c-4-4-9-6-14-6-5 0-10 2-14 6-7 8-7 20 0 28l27 27c8 7 20 7 28 0z m45 45c3-4 6-10 6-16 0-6-2-12-6-16-4-3-10-6-16-6-6 0-12 2-16 6-4 5-6 10-6 16 0 6 2 12 6 16 5 4 10 6 16 6 6 0 12-2 16-6z"/> +<glyph glyph-name="pin" unicode="" d="M505 365l-140 140c-9 9-23 9-32 0-1-1-42-43-26-98l-64-63c-35 11-124 29-191-37-9-9-9-23 0-32l96-96-141-141c-9-9-9-23 0-32 4-4 10-6 15-6 6 0 11 2 16 7l141 141 96-96c4-4 10-6 16-6 5 0 11 2 15 6 66 67 48 157 37 191l64 64c54-16 96 25 98 26 9 9 9 23 0 32z m-94-12c-8 4-18 2-25-5l-83-83c-6-6-9-16-5-24 0 0 10-25 11-57 2-33-5-60-20-83l-94 94-95 94c60 40 137 10 140 9 8-4 18-2 24 5l84 83c7 7 8 17 4 25-8 17-5 32 0 44l103-103c-11-4-27-7-44 1z m-132-121c1-2 8-18 8-35 0-11-9-19-20-19 0 0 0 0 0 0-11 1-20 10-19 20 0 7-3 16-4 18-5 11 0 22 10 26 10 4 21 0 25-10z"/> +<glyph glyph-name="plus" unicode="" d="M403 253c0-14-11-25-25-25l-100 0 0-94c0-14-11-25-25-25-14 0-25 11-25 25l0 94-94 0c-14 0-25 11-25 25 0 14 11 25 25 25l94 0 0 100c0 14 11 25 25 25 14 0 25-11 25-25l0-100 100 0c14 0 25-11 25-25z"/> +<glyph glyph-name="power" unicode="" d="M256 248c-12 0-22 10-22 22l0 192c0 12 10 22 22 22 12 0 22-10 22-22l0-192c0-12-9-22-22-22z m211-8c0 82-45 155-117 191-11 5-24 1-30-10-6-11-1-25 10-30 57-29 93-87 93-151 0-93-75-168-167-168-92 0-167 75-167 168 0 65 36 122 93 151 11 6 16 19 10 30-6 11-19 16-30 10-72-36-117-109-117-191 0-117 94-212 211-212 117 0 211 95 211 212z"/> +<glyph glyph-name="preview" unicode="" d="M508 268c-4 6-94 138-252 138-158 0-248-132-252-138-5-7-5-17 0-25 4-5 94-137 252-137 158 0 248 132 252 138 5 7 5 17 0 24z m-252-118c-107 0-181 76-206 106 25 31 98 106 206 106 107 0 181-76 206-106-26-31-99-106-206-106z m13 197c-25 4-49-3-69-18-40-30-49-88-18-129 15-20 36-32 61-36 4 0 9-1 12-1 20 0 39 7 56 18 40 31 49 89 18 130-14 20-36 33-60 36z m22-138c-12-10-28-14-43-11-16 2-30 10-39 22-19 27-14 64 12 83 12 10 28 14 43 11 16-2 30-10 39-22 19-27 14-64-12-83z m-2 80c4-4 7-10 7-15 0-6-3-12-7-16-4-4-10-6-16-6-6 0-11 2-15 6-5 5-7 10-7 16 0 6 2 11 7 15 4 5 10 7 15 7 6 0 12-3 16-7z"/> +<glyph glyph-name="print" unicode="" d="M490 417l-112 0 0 67c0 10-5 17-13 17l-218 0c-8 0-13-7-13-17l0-67-112 0c-12 0-22-9-22-21l0-256c0-12 10-23 22-23l82 0-13-87c-1-6 0-12 4-17 4-4 9-7 15-7l292 0c6 0 11 3 15 8 4 4 6 10 5 15l-14 88 82 0c12 0 22 11 22 23l0 256c0 12-10 21-22 21z m-323 50l178 0 0-50-178 0z m-35-422l22 139 204 0 22-139z m335 116l-66 0-7 46c-2 9-9 16-19 16l-238 0c-10 0-18-7-20-16l-6-46-66 0 0 212 422 0z m-365 156c0 10 7 17 17 17l52 0c9 0 17-7 17-17 0-9-8-16-17-16l-52 0c-9 0-17 7-17 16z"/> +<glyph glyph-name="pulse" unicode="" d="M512 195c0-12-10-22-22-22l-105 0c-9 0-18 5-21 14l-17 47-54-184c-3-10-12-17-21-17 0 0-1 0-1 0-10 1-19 8-21 18l-72 311-43-173c-3-10-11-16-22-16l-91 0c-12 0-22 10-22 22 0 12 10 22 22 22l74 0 61 245c3 10 12 17 22 17 10 0 19-8 22-18l73-318 50 169c3 10 12 16 21 16 10 1 18-5 22-14l34-97 89 0c12 0 22-10 22-22z"/> +<glyph glyph-name="question" unicode="" d="M339 370c18-20 26-47 22-76-6-54-45-73-80-73-2 0-3 0-3 0l0-13c0-12-10-22-22-22-12 0-22 10-22 22l0 18c0 18 8 40 47 40 22 0 33 11 36 33 1 8 1 27-12 42-11 11-28 17-51 17-50 0-52-32-52-36 0-12-10-22-22-22-12 0-23 10-23 22 0 22 18 81 97 81 46 0 72-18 85-33z m-85-203c-7 0-14-3-19-8-5-5-8-13-8-20 0-7 2-14 8-19 5-5 12-9 19-9 8 0 15 3 20 9 5 5 8 12 8 19 0 7-3 15-8 20-5 5-12 8-20 8z m258 89c0-141-115-256-256-256-141 0-256 115-256 256 0 141 115 256 256 256 141 0 256-115 256-256z m-45 0c0 117-94 211-211 211-117 0-211-94-211-211 0-117 94-211 211-211 117 0 211 94 211 211z"/> +<glyph glyph-name="reply" unicode="" d="M399 269c-41 40-98 63-165 67l0 59c0 9-7 17-15 21-9 3-19 1-25-5l-137-139c-9-9-9-23 0-32l137-139c6-6 16-8 25-5 8 4 15 12 15 21l0 60c44 1 149-3 187-71 4-7 11-11 19-11 2 0 4 0 6 0 10 3 17 11 17 22-1 3-1 88-64 152z m-191-49c-11-1-19-10-19-22l0-27-83 85 83 85 0-27c0-12 9-22 21-22 120 0 171-58 192-107-78 47-188 36-194 35z"/> +<glyph glyph-name="reply-all" unicode="" d="M449 269c-41 40-98 63-165 67l0 59c0 9-7 17-15 21-9 3-19 1-25-5l-138-139c-8-9-9-23 0-32l137-139c6-6 17-8 26-5 8 4 15 12 15 21l0 60c44 1 149-3 187-71 4-7 11-11 19-11 1 0 3 0 5 0 10 3 18 11 18 22-1 3 0 88-64 152z m-191-49c-11-1-19-10-19-22l0-27-83 85 83 85 0-27c0-12 9-22 21-22 120 0 171-58 192-107-78 47-188 36-194 35z m-83-88c9-8 9-22 0-31-4-5-10-7-15-7-6 0-12 2-16 7l-137 139c-8 9-8 23 0 31l137 139c9 9 23 9 31 0 9-9 9-23 0-32l-122-122z"/> +<glyph glyph-name="return" unicode="" d="M456 332l0-221c0-12-10-22-22-22l-328 0c-12 0-22 10-22 22 0 13 10 23 22 23l306 0 0 178-280 0 31-32c8-8 8-23 0-32-5-4-11-6-16-6-6 0-11 2-16 6l-69 69c-4 4-6 10-6 15 0 6 2 12 6 16l69 68c9 9 23 9 32 0 9-9 8-22 0-31l-31-29 302 0c12 0 22-12 22-24z"/> +<glyph glyph-name="retweet" unicode="" d="M505 182l-69-69c-5-4-10-7-16-7-5 0-12 3-15 7l-71 69c-9 9-9 23-1 31 9 9 23 9 31 0l31-32 0 147-195 0c-12 0-22 10-22 23 0 12 10 22 22 22l220 0c12 0 20-10 20-22l0-169 33 32c9 9 24 8 33 0 8-9 8-23-1-32z m-193-32l-195 0 0 148 30-32c5-4 10-7 16-7 5 0 11 3 15 7 9 9 8 23 0 31l-70 70c-9 8-23 8-32 0l-69-69c-9-9-9-23 0-31 9-9 24-9 33 0l33 31 0-169c0-12 7-23 20-23l220 0c12 0 22 10 22 23 0 12-11 21-23 21z"/> +<glyph glyph-name="rocket" unicode="" d="M510 490c-1 11-9 20-20 21-141 11-242-57-305-143-34 11-71 7-105-12-33-18-61-49-78-87-4-9-3-19 5-26 6-6 17-8 25-3 36 19 76 15 100-9l98-98c0 0 0-1 0-1 24-23 28-64 9-99-4-9-2-19 4-26 4-4 10-6 16-6 3 0 6 0 9 2 38 18 69 45 88 78 19 34 23 71 11 106 25 18 48 38 67 61 59 67 85 149 76 242z m-435-194c24 23 54 38 85 32-9-15-16-31-23-46-18 10-40 15-62 14z m222-221c0 22-5 44-15 63 16 7 32 14 47 23 5-32-8-62-32-86z m-45 99l-78 79c39 105 137 217 293 214 5-186-148-267-215-293z m144 222c7-6 11-16 11-25 0-10-4-19-11-26-6-7-16-11-25-11-10 0-19 4-26 11-7 7-11 16-11 26 0 9 4 19 11 25 7 7 16 11 26 11 9 0 19-4 25-11z m-313-231c-26-26-27-77-27-87 0-12 10-22 22-22 0 0 1 0 1 0 12 0 61 1 86 26 15 16 19 32 19 43 0 15-6 29-18 41-28 28-63 19-83-1z m51-51c-6-5-18-9-31-11 2 13 6 25 11 30 4 4 7 6 11 6 3 0 6-2 10-5 3-3 5-7 5-9-1-4-4-8-6-11z"/> +<glyph glyph-name="scale" unicode="" d="M263 161c0-12-10-22-23-22l-218 0c-12 0-22 10-22 22 0 13 10 23 22 23l218 0c13 0 23-10 23-23z m227 23l-19 0c-12 0-22-10-22-23 0-12 10-22 22-22l19 0c12 0 22 10 22 22 0 13-10 23-22 23z m-410 167c0 37 30 66 66 66 37 0 67-30 67-66 0-36-30-66-67-66-36 0-66 29-66 66z m44 0c0-12 10-22 22-22 13 0 23 10 23 22 0 12-10 22-23 22-12 0-22-10-22-22z m296-190c0-37-30-66-67-66-37 0-67 30-67 66 0 36 30 66 67 66 37 1 67-29 67-66z m-45 0c0 12-10 22-22 22-12 0-22-10-22-22 0-12 10-22 22-22 12 0 22 10 22 22z m-353 167l13 0c12 0 22 10 22 23 0 12-10 22-22 22l-13 0c-12 0-22-10-22-22 0-13 10-23 22-23z m490 23c0 12-10 22-22 22l-227 0c-12 0-22-10-22-22 0-13 10-23 22-23l227 0c12 0 22 10 22 23z"/> +<glyph glyph-name="search" unicode="" d="M322 500c-95 0-173-79-173-174 0-41 14-78 37-108l-164-166c-9-10-9-25 0-35 5-5 11-7 18-7 6 0 12 2 17 7l164 166c28-20 63-32 100-32 95 0 173 78 173 174 0 96-77 175-172 175z m0-305c-71 0-128 58-128 130 0 72 57 130 128 130 70 0 128-58 128-130 0-72-58-130-128-130z m86 128c-1-10-10-17-19-17-1 0-2 0-3 0-10 2-18 11-16 22 3 29-29 44-31 44-9 5-13 16-9 26 4 9 16 14 26 10 2-1 60-27 52-85z m-41-43c4-3 7-10 7-15 0-6-2-12-7-16-4-4-10-6-15-6-6 0-12 2-16 6-4 4-7 10-7 16 0 5 3 12 7 15 4 4 10 7 16 7 5 0 11-2 15-7z"/> +<glyph glyph-name="shopping-bag" unicode="" d="M444 372c-4 4-9 6-15 6l-56 0 0 10c0 66-54 118-116 118l-2 0c-62 0-116-52-116-118l0-10-56 0c-12 0-22-10-22-23l0-327c0-12 10-22 22-22l346 0c12 0 22 10 22 22l0 328c0 5-2 11-7 16z m-260 16c0 41 33 74 71 74l2 0c38 0 71-33 71-74l0-10-144 0z m222-338l-300 0 0 284 33 0 0-38c0-13 10-23 22-23 13 0 23 10 23 23l0 38 144 0 0-38c0-13 10-23 23-23 12 0 22 10 22 23l0 38 33 0z"/> +<glyph glyph-name="skip" unicode="" d="M461 189l-99-99c-5-5-11-8-18-8-6 0-12 3-17 8-10 9-10 25 0 35l56 56-316 0c-7 0-14 3-19 8-5 4-9 11-9 17l0 127c0 14 11 25 25 25 14 0 25-11 25-25l0-102 293 0-55 57c-10 9-10 25 0 35 9 9 25 9 35 0l99-99c10-10 10-26 0-35z m-393 188c7 0 14 3 19 8 5 5 9 12 9 20 0 7-3 14-9 19-5 5-12 8-19 8-7 0-15-3-20-8-5-5-8-12-8-19 0-8 3-15 8-20 5-4 13-8 20-8z"/> +<glyph glyph-name="stack" unicode="" d="M451 422c0 59-98 90-195 90-97 0-195-31-195-90 0 0 0-1 0-1 0 0 0-1 0-1l0-333c0-57 98-87 195-87 97 0 195 30 195 87l0 333c0 0 0 1 0 1 0 1 0 1 0 1z m-45-168c0-12-53-43-150-43-97 0-150 30-150 43l0 109c38-20 94-30 150-30 56 0 112 10 150 30z m-150 213c99 0 150-31 150-45 0-13-51-45-150-45-99 0-150 32-150 45 0 14 51 45 150 45z m0-422c-97 0-150 30-150 42l0 109c38-19 94-29 150-29 56 0 112 10 150 29l0-109c0-12-53-42-150-42z m95 228l0 28c0 10 9 19 19 19 11 0 20-9 20-19l0-28c0-10-9-19-20-19-10 0-19 8-19 19z"/> +<glyph glyph-name="star" unicode="" d="M393 22c-4 0-8 1-12 4l-125 81-125-81c-8-5-18-5-25 0-7 6-11 15-9 24l40 139-118 100c-7 5-10 15-7 24 3 9 11 14 20 15l141 10 63 139c3 8 11 13 20 13 9 0 17-5 20-13l63-139 141-10c9 0 17-6 20-15 3-9 0-18-7-24l-117-99 39-139c3-9 0-19-8-24-4-3-9-5-14-5z m-137 134c4 0 8-1 12-4l88-57-27 96c-2 9 0 18 7 23l86 73-99 8c-8 1-15 6-19 13l-48 106-48-106c-4-7-11-12-19-13l-99-7 86-73c7-6 9-15 7-23l-27-97 88 57c4 3 8 4 12 4z"/> +<glyph glyph-name="stopwatch" unicode="" d="M452 403c5-4 10-6 15-6 7 0 13 3 17 8 9 8 8 23-1 31l-29 26-29 27c-9 8-24 7-32-2-8-9-7-23 2-32l12-11-22-25c-25 19-55 33-87 40-1 7-4 15-9 22-6 8-17 17-39 18 0 0 0 0-1 0-19 0-30-8-36-15-7-8-10-18-11-25-103-22-180-113-180-222 0-125 102-228 227-228 126 0 227 102 227 228 0 59-22 112-58 153l22 25z m-203-348c-100 0-182 81-182 182 0 101 82 183 182 183 101 0 183-82 183-183 0-101-82-182-183-182z m39 182c0-21-18-38-39-38-21 0-38 17-38 38 0 13 6 25 17 31l0 90c0 13 10 23 22 23 13 0 23-10 23-23l0-90c11-6 15-18 15-31z"/> +<glyph glyph-name="store" unicode="" d="M223 203c0 11-9 20-20 20l-72 0c-11 0-20-9-20-20l0-72c0-11 9-20 20-20l72 0c11 0 20 9 20 20z m-73-19l34 0 0-34-34 0z m356 187l-50 50 0 58c0 12-10 22-22 22l-356 0c-12 0-22-10-22-22l0-58-50-50c-4-4-6-10-6-16l0-57c0-12 10-20 22-20l468 0c12 0 22 8 22 21l0 56c0 6-2 12-6 16z m-94 85l0-27-312 0 0 27z m55-133l-422 0 0 23 45 44 332 0 45-44z m12-90l0-200c0-12-10-22-23-22l-76 0c-12 0-22 9-22 21l0 118-52 0 0-117c0-12-10-22-23-22l-227 0c-12 0-23 10-23 22l0 200c0 12 10 22 23 22 12 0 22-10 22-22l0-177 184 0 0 119c0 12 9 20 21 20l97 0c12 0 20-8 20-20l0-119 34 0 0 177c0 12 10 22 22 22 12 0 23-10 23-22z"/> +<glyph glyph-name="suitcase" unicode="" d="M500 379c-8 8-19 11-29 11l-120 0 0 66c0 13-13 23-25 23l-140 0c-12 0-25-10-25-23l0-66-120 0c-23 0-41-17-41-39l0-276c0-23 18-42 41-42l429 0c23 0 41 19 41 42l0 275c1 11-3 21-11 29z m-133-34l0-267-222 0 0 267z m-161 89l100 0 0-44-100 0z m-161-89l66 0 0-267-66 0z m422-267l-66 0 0 267 66 0z"/> +<glyph glyph-name="swap" unicode="" d="M512 203c0-6-2-12-7-15l-103-104c-5-4-10-6-16-6-5 0-11 3-15 7-9 8-9 23 0 32l65 67-218 0c-12 0-22 10-22 22 0 12 10 22 22 22l218 0-65 64c-9 9-9 22 0 30 9 9 22 9 31 0l104-103c4-4 6-10 6-16z m-436 81l218 0c12 0 22 10 22 22 0 12-10 22-22 22l-218 0 65 67c9 9 9 24 0 32-9 9-22 9-31 1l-103-104c-5-3-7-9-7-15 0-6 2-12 7-16l103-103c5-5 10-7 16-7 5 0 11 2 15 7 9 9 9 21 0 30z"/> +<glyph glyph-name="tag" unicode="" d="M490 401l-329 0c-5 0-10-3-14-6l-139-122c-5-5-8-11-8-17 0-7 3-12 8-17l139-122c4-3 9-6 14-6l329 0c12 0 22 10 22 23l0 244c0 13-10 23-22 23z m-23-245l-297 0-114 100 114 100 297 0z m-316 126c7 6 17 10 26 10 9 0 19-4 26-10 6-7 10-17 10-26 0-9-4-19-10-26-7-6-17-10-26-10-9 0-19 4-26 10-6 7-10 17-10 26 0 9 4 19 10 26z"/> +<glyph glyph-name="tag-delete" unicode="" d="M490 401l-329 0c-5 0-10-3-14-6l-139-122c-5-5-8-11-8-17 0-7 3-12 8-17l139-122c4-3 9-6 14-6l329 0c12 0 22 10 22 23l0 244c0 13-10 23-22 23z m-23-245l-297 0-114 100 114 100 297 0z m-222 70l30 30-30 30c-7 8-7 20 0 27 8 8 20 8 28 0l30-30 30 30c8 8 20 8 27 0 8-7 8-20 0-27l-29-30 30-30c7-8 7-20 0-27-4-4-9-6-14-6-5 0-10 2-14 6l-30 30-30-30c-4-4-9-6-14-6-5 0-10 2-14 6-7 7-7 19 0 27z"/> +<glyph glyph-name="tags" unicode="" d="M419 225c0 6-3 12-7 15l-208 205c-4 4-9 6-14 6l-166 11c-7 0-13-2-17-7-5-4-8-10-7-17l11-163c0-6 2-11 6-15l208-204c5-4 10-6 16-6 6 0 11 2 16 6l155 153c4 4 7 10 7 16z m-178-121l-186 183-9 129 133-9 186-182z m-96 262c6-6 10-15 10-23 0-9-4-17-10-24-6-6-15-10-24-10-9 0-17 4-24 10-6 7-10 15-10 24 0 9 3 17 10 23 6 6 15 10 24 10 9 0 18-4 24-10z m367-141c0-5-2-10-6-14l-155-153c-4-3-9-5-14-5-5 0-10 2-14 5-7 8-7 20 0 28l142 138-195 191c-7 8-7 20 0 27 8 8 21 8 28 0l208-203c4-4 6-9 6-14z"/> +<glyph glyph-name="thumbs-down" unicode="" d="M179 512c70 0 178-23 205-42 6-4 9-11 9-18l0-218c0-6-3-13-8-17-2-1-41-32-81-54-51-28-86-67-94-92-11-30-25-71-71-71-22 0-39 12-49 33-19 44 1 104 35 151-23 5-50 12-67 17-30 10-51 32-55 59-4 28 10 57 40 78 22 58 59 151 86 166 10 6 28 8 50 8z m169-73c-42 17-172 36-197 26-12-11-45-86-68-149-2-4-5-8-8-11-19-12-28-27-27-39 2-10 11-18 24-23 28-9 97-24 98-24 8-1 14-7 17-15 3-8 1-16-5-21-50-54-59-110-50-132 3-6 5-6 7-6 11 0 16 7 28 41 13 39 60 85 115 115 26 15 53 34 66 44z m88 15l0-222c0-20 16-36 36-36 21 0 37 16 37 36l0 222c0 20-16 36-37 36-20 0-36-16-36-36z"/> +<glyph glyph-name="thumbs-up" unicode="" d="M333 0c-69 0-178 23-204 42-7 4-10 11-10 18l0 218c0 6 3 13 8 17 2 1 41 32 82 54 50 28 85 67 94 92 10 30 24 71 70 71 22 0 39-12 49-33 19-44-1-104-35-151 23-5 50-12 67-17 31-10 51-32 55-59 4-28-10-57-39-78-22-59-59-151-87-166-10-6-28-8-50-8z m-169 73c42-17 172-36 197-26 12 11 45 86 68 149 2 4 5 8 8 11 19 12 28 27 27 39-2 10-11 18-24 23-28 9-97 24-98 24-8 1-14 7-17 15-3 8-1 16 5 21 50 54 59 110 50 132-3 6-5 6-7 6-11 0-16-7-28-41-13-39-60-85-115-115-26-15-53-34-66-44z m-88-15l0 222c0 21-16 37-36 37-21 0-37-16-37-37l0-222c0-20 16-36 36-36 20 0 37 16 37 36z"/> +<glyph glyph-name="ticket" unicode="" d="M151 277l126-126c5-5 12-7 19-7 6 0 13 2 18 7l47 47c5 5 7 11 7 18 0 7-2 14-7 19l-126 126c-5 5-11 7-19 7-6 0-13-2-18-7l-47-47c-10-10-10-27 0-37z m65 55l116-116-36-36-116 116z m289-129l-302 302c-9 9-23 9-32 0l-42-42c-6-6-8-16-5-24 6-15 2-32-9-43-11-11-28-14-43-9-8 4-17 1-24-5l-42-42c-4-4-6-10-6-16 0-6 2-11 7-15l302-302c4-5 10-7 15-7 7 0 12 2 16 7l42 42c6 6 9 16 5 24-6 15-2 32 9 43 11 11 28 14 43 9 8-4 18-1 24 5l42 42c9 9 9 23 0 31z m-64-33c-28 6-56-2-76-23-21-20-29-49-24-76l-17-18-270 271 17 18c28-6 56 2 76 23 21 20 29 49 24 76l17 18 271-271z"/> +<glyph glyph-name="time-reverse" unicode="" d="M512 256c0-120-97-217-216-217-44 0-86 13-122 38-10 7-13 20-6 31 7 10 21 13 31 6 29-20 63-31 97-31 95 0 171 78 171 173 0 95-76 173-171 173-92 0-168-74-171-167l51 52c9 9 23 9 32 0 9-8 9-22 0-31l-85-85c-4-5-10-7-16-7-6 0-11 2-15 7l-85 85c-9 9-9 23 0 32 9 9 22 9 31 0l43-43c7 112 101 201 215 201 119 0 216-97 216-217z m-217 126c-12 0-22-10-22-22l0-104c0-6 2-12 7-16l48-47c4-5 10-7 16-7 5 0 12 2 16 7 8 8 8 22-1 31l-42 41 0 95c0 12-10 22-22 22z"/> +<glyph glyph-name="to-do" unicode="" d="M139 413l0 71c0 16 12 28 28 28 16 0 28-12 28-28l0-71c0-16-12-28-28-28-16 0-28 12-28 28z m206-28c16 0 28 12 28 28l0 71c0 16-12 28-28 28-16 0-28-12-28-28l0-71c0-16 12-28 28-28z m-188-96l198 0c12 0 22 10 22 23 0 12-10 22-22 22l-198 0c-12 0-22-10-22-22 0-13 10-23 22-23z m310 184l-46 0c-12 0-22-10-22-22 0-12 10-22 22-22l24 0 0-379-378 0 0 379 24 0c12 0 22 10 22 22 0 12-10 22-22 22l-46 0c-13 0-23-12-23-24l0-421c0-12 10-22 23-22l422 0c13 0 23 10 23 22l0 421c0 12-10 24-23 24z m-229-44l36 0c13 0 23 10 23 22 0 12-10 22-23 22l-36 0c-13 0-23-10-23-22 0-12 10-22 23-22z m-81-240l198 0c12 0 22 10 22 22 0 13-10 23-22 23l-198 0c-12 0-22-10-22-23 0-12 10-22 22-22z"/> +<glyph glyph-name="toggles" unicode="" d="M467 240l0-218c0-12-10-22-22-22-12 0-22 10-22 22l0 218c0 13 10 23 22 23 12 0 22-10 22-23z m-22 209c12 0 22 10 22 22l0 19c0 12-10 22-22 22-12 0-22-10-22-22l0-19c0-12 10-22 22-22z m-312-193c0-37-30-67-66-67-36 0-67 30-67 67 0 37 30 67 66 67 36 0 67-30 67-67z m-45 0c0 12-10 22-21 22-12 0-22-10-22-22 0-12 10-22 21-22 12 0 22 10 22 22z m234-110c0-36-30-66-66-66-36 0-66 30-66 66 0 37 30 67 66 67 36 0 66-29 66-67z m-44 0c0 13-10 23-22 23-12 0-22-10-22-23 0-12 10-22 22-22 12 0 22 10 22 22z m234 207c0-37-30-67-66-67-36 0-66 30-66 67 0 37 30 67 66 67 36 0 66-30 66-67z m-45 0c0 12-10 22-21 22-12 0-22-10-22-22 0-12 10-22 22-22 11 0 21 9 21 22z m-211-296c-12 0-22-10-22-22l0-13c0-12 10-22 22-22 12 0 22 10 22 22l0 13c0 12-10 22-22 22z m0 184c12 0 22 10 22 22l0 227c0 12-10 22-22 22-12 0-22-10-22-22l0-227c0-12 10-22 22-22z m-189-81c-12 0-22-10-22-23l0-115c0-12 10-22 22-22 12 0 22 10 22 22l0 115c0 13-10 23-22 23z m0 191c12 0 22 10 22 22l0 117c0 12-10 22-22 22-12 0-22-10-22-22l0-117c0-12 10-22 22-22z"/> +<glyph glyph-name="trash" unicode="" d="M436 343l-17-322c0-12-11-21-22-21l-282 0c-11 0-22 9-22 21l-17 322c-1 12 9 23 21 23 12 1 23-9 23-21l16-300 240 0 16 300c1 12 11 22 24 21 11 0 21-11 20-23z m59 74c0-12-10-22-22-22l-434 0c-12 0-22 10-22 22 0 13 10 23 22 23l122 0 0 50c0 10 8 16 18 16l154 0c10 0 18-6 18-16l0-50 122 0c12 0 22-10 22-23z m-295 23l112 0 0 27-112 0z m10-362c11 0 19 10 19 21l-5 240c0 11-9 20-20 20-11 0-20-9-19-20l5-241c0-11 9-20 20-20z m92 0c10 0 19 9 19 19l6 241c0 10-9 20-19 20-11 0-20-9-20-19l-6-240c0-12 9-21 20-21-1 0-1 0 0 0z"/> +<glyph glyph-name="trophy" unicode="" d="M301 355l0 50c0 10 8 19 19 19 11 0 19-9 19-19l0-50c0-11-8-19-19-19-11 0-19 8-19 19z m18-76c6 0 12 3 15 7 4 5 7 10 7 16 0 6-2 11-7 15-3 5-10 7-15 7-6 0-12-2-16-7-4-4-6-10-6-15 0-6 2-12 6-16 4-4 10-7 16-7z m147 22c-16-18-37-28-61-32-13-75-66-113-127-120l0-82 48 0c12 0 22-10 22-22 0-13-10-23-22-23l-140 0c-12 0-22 10-22 23 0 12 10 22 22 22l48 0 0 82c-61 7-114 45-126 120-25 4-45 14-62 32-46 47-44 128-43 131 0 10 9 19 19 19l84 0 0 16c0 13 9 23 21 23l258 0c12 0 21-10 21-23l0-16 84 0c10 0 19-9 19-19 0-3 2-85-43-131z m-392 26c9-9 21-15 32-18l0 103-64 0c3-22 9-61 32-85z m288 118l-212 0 0-144c0-81 55-109 106-109 51 0 106 29 106 109z m76-118c22 22 29 57 32 85l-64 0 0-103c11 3 23 9 32 18z"/> +<glyph glyph-name="upload" unicode="" d="M495 185l0-152c0-15-12-27-28-27l-422 0c-16 0-28 12-28 27l0 152c0 15 12 28 28 28 15 0 27-13 27-28l0-124 368 0 0 124c0 15 12 28 27 28 16 0 28-13 28-28z m-330 161l63 65 0-241c0-16 12-28 28-28 16 0 28 12 28 28l0 240 63-64c6-6 13-9 20-9 8 0 14 3 20 8 11 11 11 28 0 40l-111 113c-6 6-13 8-20 8-7 0-14-2-20-8l-111-113c-10-12-10-29 1-40 10-11 28-10 39 1z"/> +<glyph glyph-name="user" unicode="" d="M256 194c82 0 150 68 150 150 0 84-68 151-150 151-82 0-150-67-150-150 0-83 68-151 150-151z m0 257c58 0 105-48 105-106 0-58-47-106-105-106-58 0-105 48-105 106 0 58 47 106 105 106z m70-271c-8 2-16 0-22-5l-48-41-48 41c-7 5-14 7-22 5-31-10-186-64-186-141 0-12 10-22 22-22l468 0c12 0 22 10 22 22 0 77-155 131-186 141z m-270-119c25 26 84 55 133 72l53-45c8-7 20-7 28 0l53 45c49-17 108-46 133-72z"/> +<glyph glyph-name="user-group" unicode="" d="M197 210c65 0 118 53 118 117 0 65-53 118-118 118-65 0-118-53-118-118 1-64 53-117 118-117z m0 191c41 0 73-33 73-73 0-40-32-73-73-73-41 0-73 33-73 73 0 40 33 73 73 73z m53-202c-6 2-12 1-18-2l-35-21-35 21c-6 3-12 4-18 2-34-11-144-50-144-110 0-12 10-22 22-22l350 0c12 0 22 10 22 22 0 60-110 99-144 110z m-188-88c19 15 51 30 85 43l38-23c8-5 16-5 23 0l38 23c34-12 66-28 85-43z m444 17c0-9-7-17-16-17l-75 0c-9 0-17 8-17 17 0 9 8 17 17 17l50 0c-9 11-22 20-39 29-8 4-11 14-6 22 4 8 14 11 22 7 24-13 64-40 64-75z m-93 147c0 24-20 44-44 44-6 0-12-1-17-3-9-4-19 0-22 8-3 9 1 19 9 22 9 4 19 6 30 6 43 0 77-34 77-77 0-43-35-77-77-77-22 0-43 9-58 26-6 6-5 17 2 23 6 6 17 6 23-2 8-9 21-15 34-15 23 1 43 21 43 45z"/> +<glyph glyph-name="user-id" unicode="" d="M347 203c43 0 78 35 78 78 0 43-35 78-78 78-43 0-78-35-78-78 0-43 35-78 78-78z m0 123c24 0 44-20 44-45 0-24-20-44-44-44-25 0-45 20-45 44 0 25 20 45 45 45z m-260-9c0 10 8 17 17 17l97 0c9 0 17-7 17-17 0-9-8-16-17-16l-97 0c-9 0-17 7-17 16z m114-78l-97 0c-9 0-17 8-17 17 0 9 8 17 17 17l97 0c9 0 17-8 17-17 0-9-8-17-17-17z m-25-44c0-10-7-17-16-17l-56 0c-9 0-17 7-17 17 0 9 8 16 17 16l56 0c9 0 16-7 16-16z m336 191c0 20-17 37-37 37l-438 0c-20 0-37-17-37-37l0-260c0-20 17-37 37-37l438 0c20 0 37 17 37 37z m-467-8l422 0 0-232c-23 24-65 39-81 45-3 1-7 1-11 0l-28-10-29 10c-3 1-7 0-11-1-18-6-70-23-91-56l-171 0z m220-244c13 11 30 16 48 23l28-10c3-1 8-1 11 0l29 9c17-6 34-12 47-23l-163 0z"/> +<glyph glyph-name="vibrate" unicode="" d="M6 371c-9 10-8 26 2 34 90 75 182 49 260 14 82-38 148-34 203 11 10 9 26 7 35-4 9-10 7-26-3-34-39-32-83-49-132-49-38 0-80 10-124 31-77 35-142 48-206-7-11-8-27-7-35 4z m465-81c-54-45-121-48-203-11-78 35-169 62-259-14-11-8-12-24-3-34 9-11 25-12 35-3 65 54 129 42 207 6 44-20 85-30 124-30 48 0 92 16 131 48 11 9 12 25 3 35-8 10-24 12-35 3z m0-140c-54-45-121-48-203-11-78 36-169 62-259-13-11-9-12-25-3-35 9-10 25-11 35-3 65 54 129 42 207 7 44-20 85-31 124-31 48 0 92 16 131 48 11 9 12 25 3 35-8 10-24 12-35 3z"/> +<glyph glyph-name="view-apps" unicode="" d="M111 356c-10 0-20 5-28 12-7 7-11 17-11 27 0 10 5 20 11 28 8 7 18 11 28 11 10 0 20-4 28-11 7-7 11-17 11-28 0-10-4-20-11-27-8-7-18-12-28-12z m172 12c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-7 17-12 28-12 10 0 20 5 27 12z m145 0c7 7 12 17 12 27 0 10-5 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-7 17-12 28-12 10 0 20 5 27 12z m-289-139c7 7 11 17 11 27 0 10-4 20-11 28-8 7-18 11-28 11-10 0-20-4-28-11-7-7-11-17-11-28 0-10 5-20 11-27 8-8 18-12 28-12 10 0 20 4 28 12z m144 0c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z m145 0c7 7 12 17 12 27 0 10-5 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z m-289-139c7 7 11 17 11 27 0 10-4 20-11 28-8 7-18 11-28 11-10 0-20-5-28-11-7-8-11-18-11-28 0-10 5-20 11-27 8-8 18-12 28-12 10 0 20 4 28 12z m144 0c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-21-5-28-11-7-8-11-18-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z m145 0c7 7 12 17 12 27 0 10-5 20-12 28-7 7-17 11-27 11-10 0-21-5-28-11-7-8-11-18-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z"/> +<glyph glyph-name="view-list" unicode="" d="M142 434c0 16 13 28 28 28l309 0c15 0 27-12 27-28 0-15-12-28-27-28l-309 0c-15 0-28 13-28 28z m337-150l-309 0c-15 0-28-12-28-28 0-16 13-28 28-28l309 0c15 0 27 12 27 28 0 16-12 28-27 28z m0-178l-309 0c-15 0-28-13-28-28 0-16 13-28 28-28l309 0c15 0 27 12 27 28 0 15-12 28-27 28z m-429 187c-22 0-39-18-39-40 0-21 17-39 39-39 22 0 39 18 39 39 0 22-18 40-39 40z m0 180c-22 0-39-18-39-39 0-22 17-40 39-40 22 0 39 18 39 40 0 21-18 39-39 39z m0-355c-22 0-39-18-39-40 0-21 17-39 39-39 22 0 39 18 39 39 0 22-18 40-39 40z"/> +<glyph glyph-name="view-list-large" unicode="" d="M482 282l-249 0c-17 0-30 14-30 30l0 75c0 17 13 30 30 30l248 0c17 0 30-13 30-30l0-75c1-16-12-30-29-30z m-235 45l220 0 0 46-220 0z m235-232l-249 0c-17 0-30 13-30 30l0 75c0 16 13 30 30 30l248 0c17 0 30-14 30-30l0-75c1-17-12-30-29-30z m-235 44l220 0 0 46-220 0z m-115 143l-101 0c-17 0-31 14-31 31l0 73c0 17 14 31 31 31l101 0c17 0 31-14 31-31l0-73c0-17-14-31-31-31z m-87 45l74 0 0 46-74 0z m87-232l-101 0c-17 0-31 14-31 31l0 73c0 17 14 31 31 31l101 0c17 0 31-14 31-31l0-73c0-17-14-31-31-31z m-87 44l74 0 0 46-74 0z"/> +<glyph glyph-name="view-thumb" unicode="" d="M194 285l-152 0c-17 0-31 14-31 32l0 119c0 18 14 31 31 31l152 0c17 0 31-13 31-31l0-119c0-18-14-32-31-32z m-138 45l125 0 0 93-125 0z m414-45l-152 0c-17 0-31 14-31 32l0 119c0 18 14 31 31 31l152 0c17 0 31-13 31-31l0-119c0-18-14-32-31-32z m-139 45l125 0 0 93-125 0z m-137-285l-152 0c-17 0-31 13-31 31l0 119c0 18 14 32 31 32l152 0c17 0 31-14 31-32l0-119c0-18-14-31-31-31z m-138 44l125 0 0 93-125 0z m414-44l-152 0c-17 0-31 13-31 31l0 119c0 18 14 32 31 32l152 0c17 0 31-14 31-32l0-119c0-18-14-31-31-31z m-139 44l125 0 0 93-125 0z"/> +<glyph glyph-name="volume-full" unicode="" d="M210 488c-9 3-17 2-24-5l-110-110-54 0c-12 0-22-10-22-22l0-190c0-12 10-22 22-22l55 0 109-110c5-5 10-7 16-7 3 0 5 1 8 2 8 3 13 12 13 21l0 422c0 9-5 18-13 21z m-32-389l-77 78c-5 4-9 7-15 7l-41 0 0 144 41 0c6 0 10 3 15 7l77 78z m118 63c-4-5-11-7-17-7-5 0-10 1-15 5-9 9-10 23-1 31 55 63 5 123 0 130-9 9-8 23 1 31 9 8 24 7 32-2 29-32 67-113 0-188z m67-60c-4-5-10-7-16-7-5 0-11 2-15 6-9 8-10 22-2 31 110 123 4 243 0 248-8 10-7 23 2 32 9 8 23 7 31-2 2-2 136-156 0-308z m71-45c-5-5-11-7-17-7-5 0-11 2-15 6-9 8-10 22-2 31 62 70 82 148 57 231-19 63-56 106-57 106-8 9-7 23 2 31 9 9 23 7 32-1 1-2 175-200 0-397z"/> +<glyph glyph-name="volume-low" unicode="" d="M299 488c-8 3-17 2-24-5l-109-110-55 0c-12 0-22-10-22-22l0-190c0-12 10-22 22-22l55 0 110-110c4-5 10-7 16-7 2 0 4 1 7 2 8 3 13 12 13 21l0 422c0 9-5 18-13 21z m-32-389l-77 78c-5 4-9 7-15 7l-41 0 0 144 41 0c6 0 10 3 14 7l78 78z m119 63c-5-5-11-7-17-7-6 0-11 1-15 5-9 9-10 23-2 31 58 64 3 127 0 130-8 8-7 23 2 31 9 8 23 7 31-2 30-32 67-113 1-188z"/> +<glyph glyph-name="volume-medium" unicode="" d="M254 488c-9 3-18 2-24-5l-109-110-54 0c-12 0-22-10-22-22l0-190c0-12 10-22 22-22l54 0 109-110c5-5 10-7 16-7 3 0 5 1 8 2 8 3 13 12 13 21l0 422c0 9-5 18-13 21z m-31-389l-78 78c-4 4-9 7-15 7l-41 0 0 144 41 0c6 0 11 3 15 7l78 78z m117 63c-4-5-11-7-17-7-5 0-10 1-15 5-9 9-10 23-1 31 55 63 5 123 0 130-9 9-8 23 2 31 9 8 23 7 31-2 29-32 66-113 0-188z m67-60c-5-5-11-7-17-7-5 0-10 2-15 6-9 8-10 22-2 31 110 122 5 243 0 248-8 10-7 23 2 31 10 9 23 8 31-1 2-2 137-156 1-308z"/> +<glyph glyph-name="volume-off" unicode="" d="M224 488c-8 3-18 1-25-5l-107-110-53 0c-12 0-22-10-22-22l0-190c0-12 10-22 22-22l53 0 107-110c4-5 10-7 16-7 3 0 6 1 9 2 9 3 15 12 15 21l0 422c0 9-6 18-15 21z m-29-389l-77 78c-4 4-11 7-17 7l-40 0 0 144 40 0c6 0 13 3 18 7l76 78z m294 90c9-9 9-23 0-32-5-3-10-6-16-6-6 0-12 3-16 7l-64 66-64-66c-5-4-10-7-16-7-6 0-11 3-16 6-9 9-9 23 0 32l65 67-65 67c-8 9-8 23 1 32 9 8 23 8 31-1l64-66 64 66c9 9 23 9 32 1 9-9 9-23 1-32l-66-67z"/> +<glyph glyph-name="wallet" unicode="" d="M402 238c8-8 11-18 11-28 0-10-3-20-11-27-7-8-17-12-27-12-10 0-20 4-28 12-8 7-11 17-11 27 0 10 4 20 11 28 7 7 17 11 28 11 10 0 20-4 27-11z m104 86l0-246c0-25-20-45-45-45l-403 0c-29 0-52 24-52 53l0 326c0 37 30 67 66 67l308 0c31 0 54-25 54-56l0-33 10 0c35 0 62-31 62-66z m-459 88c0-12 10-22 22-22l321 0 0 34c0 6-5 10-10 10l-311 0c-12 0-22-10-22-22z m415-88c0 10-8 21-18 21l-385 0c-5 0-9-7-9-12l0-247c0-4 4-8 8-8l403 0c1 0 1 0 1 0z"/> +<glyph glyph-name="warning" unicode="" d="M490 28l-468 0c-8 0-15 4-19 11-4 7-4 15 0 22l234 412c3 7 11 11 19 11 8 0 16-4 19-11l234-412c4-6 4-15 0-22-4-7-11-11-19-11z m-429 44l391 0-196 345z m217 133l0 104c0 12-10 22-22 22-12 0-22-10-22-22l0-104c0-12 10-22 22-22 12 0 22 10 22 22z m-3-92c5 5 9 12 9 19 0 8-3 15-9 20-5 5-12 8-19 8-7 0-14-3-19-8-5-5-9-12-9-20 0-7 3-14 9-19 5-5 12-8 19-8 7 0 14 3 19 8z"/> +<glyph glyph-name="web" unicode="" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m21-466c-2 0-3 0-4-1l0 121c29 0 55 1 79 3-21-65-61-109-75-123z m-42 0c-15 15-54 58-75 123 24-2 50-3 79-3l0-121c-1 0-2 1-4 1z m-190 210c0 14 1 28 3 41 13 2 36 6 69 9-3-16-5-33-5-51 0-17 2-34 4-50-32 4-56 7-68 9-2 14-3 28-3 42z m101 0c0 19 3 37 6 53 26 2 54 4 87 4l0-114c-32 1-61 2-88 4-2 16-5 34-5 53z m130 210c15-15 53-59 75-123-23 2-49 3-78 3l0 121c1 0 2-1 3-1z m-37 1l0-121c-29 0-55-1-78-3 21 64 60 108 74 123 2 0 3 1 4 1z m34-268l0 114c32-1 61-2 87-4 3-16 6-34 6-53 0-19-2-37-5-53-26-2-55-3-88-4z m122 107c32-3 56-7 68-9 3-13 4-27 4-41 0-14-1-28-3-41-13-2-36-6-69-9 3 16 4 33 4 51 0 16-2 34-4 49z m58 27c-16 2-38 5-66 8-14 47-37 86-56 113 56-21 100-66 122-121z m-272 121c-20-27-42-65-56-113-28-2-50-5-66-8 22 55 67 100 122 121z m-122-275c16-2 38-5 66-8 13-47 35-86 55-113-55 22-99 66-121 121z m273-121c20 27 42 65 55 113 28 2 50 5 66 8-22-55-66-99-121-121z"/> +<glyph glyph-name="weight" unicode="" d="M452 339c-2 22-21 39-44 39l-41 0 0 10c0 66-48 118-110 118l-2 0c-62 0-110-52-110-118l0-10-41 0c-23 0-41-17-44-39l-32-308c-1-7 1-13 5-18 5-5 11-7 17-7l412 0c6 0 12 2 17 7 4 4 6 11 5 17z m-263 49c0 41 29 74 66 74l2 0c37 0 66-33 66-74l0-10-134 0z m-114-338l29 284 303 0 29-284z"/> +<glyph glyph-name="wifi" unicode="" d="M424 286c11-11 12-28 1-39-5-6-13-9-20-9-7 0-14 2-19 7-124 113-257 6-262 2-12-10-30-9-39 3-10 12-9 29 3 39 61 50 208 114 336-3z m-166-155c-14 0-28-5-38-15-10-10-15-24-15-38 0-13 5-27 15-37 10-10 24-15 38-15 14 0 27 5 37 15 10 10 16 24 16 37 0 14-6 28-16 38-10 10-23 15-37 15z m245 231c-132 115-260 109-344 83-89-27-148-80-150-83-11-11-12-28-1-39 10-11 28-12 39-1 1 0 52 47 129 70 102 32 200 7 290-72 5-4 12-7 19-7 8 0 15 4 21 10 9 11 8 29-3 39z m-339-152c-12-10-14-27-4-39 9-12 27-14 39-5 2 2 61 48 111 1 6-5 12-7 19-7 7 0 15 3 20 9 11 11 11 29-1 39-68 62-150 28-184 2z"/> +<glyph glyph-name="wrong" unicode="" d="M437 437c-100 99-262 99-362 0-100-100-100-262 0-362 50-51 115-76 180-76 66 0 132 25 181 76 101 100 101 262 1 362z m-331-331c-77 78-82 200-15 283l298-298c-83-67-205-62-283 15z m315 17l-298 298c38 31 86 46 133 46 54 0 109-20 150-61 77-78 82-200 15-283z"/> +<glyph glyph-name="zoom-in" unicode="" d="M505 43l-194 191c23 29 37 66 37 105 0 96-78 173-174 173-97 0-174-77-174-173 0-95 78-172 174-172 38 0 73 12 101 32l195-192c5-5 11-7 17-7 7 0 13 2 18 7 9 10 9 26 0 36z m-460 296c0 71 57 128 129 128 72 0 130-57 130-128 0-70-59-128-130-128-71 0-129 58-129 128z m216-2c0-11-9-20-19-20l-47 0 0-44c0-11-9-20-20-20-10 0-19 9-19 20l0 44-50 0c-10 0-19 9-19 20 0 10 9 19 19 19l50 0 0 51c0 10 9 19 19 19 11 0 20-9 20-19l0-51 47 0c11 0 19-9 19-19z"/> +<glyph glyph-name="zoom-out" unicode="" d="M505 43l-194 191c23 29 37 66 37 105 0 96-78 173-174 173-97 0-174-77-174-173 0-95 78-172 174-172 38 0 73 12 101 32l195-192c5-5 11-7 17-7 7 0 13 2 18 7 9 10 9 26 0 36z m-460 296c0 71 57 128 129 128 72 0 130-57 130-128 0-70-59-128-130-128-71 0-129 58-129 128z m216-2c0-11-9-20-19-20l-136 0c-10 0-19 9-19 20 0 10 9 19 19 19l136 0c11 0 19-9 19-19z"/> +</font></defs></svg> diff --git a/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.ttf b/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.ttf new file mode 100644 index 0000000..041e333 --- /dev/null +++ b/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.ttf Binary files differ diff --git a/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.woff b/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.woff new file mode 100644 index 0000000..5322e3d --- /dev/null +++ b/src/main/webapp/assets/font/dripicons/fonts/dripicons-v2.woff Binary files differ diff --git a/src/main/webapp/assets/font/dripicons/webfont.css b/src/main/webapp/assets/font/dripicons/webfont.css new file mode 100644 index 0000000..a56015e --- /dev/null +++ b/src/main/webapp/assets/font/dripicons/webfont.css @@ -0,0 +1,640 @@ +@charset "UTF-8"; + +@font-face { + font-family: "dripicons-v2"; + src:url("fonts/dripicons-v2.eot"); + src:url("fonts/dripicons-v2.eot?#iefix") format("embedded-opentype"), + url("fonts/dripicons-v2.woff") format("woff"), + url("fonts/dripicons-v2.ttf") format("truetype"), + url("fonts/dripicons-v2.svg#dripicons-v2") format("svg"); + font-weight: normal; + font-style: normal; + +} + +[data-icon]:before { + font-family: "dripicons-v2" !important; + content: attr(data-icon); + font-style: normal !important; + font-weight: normal !important; + font-variant: normal !important; + text-transform: none !important; + speak: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +[class^="dripicons-"]:before, +[class*=" dripicons-"]:before { + font-family: "dripicons-v2" !important; + font-style: normal !important; + font-weight: normal !important; + font-variant: normal !important; + text-transform: none !important; + speak: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.dripicons-alarm:before { + content: "\61"; +} +.dripicons-align-center:before { + content: "\62"; +} +.dripicons-align-justify:before { + content: "\63"; +} +.dripicons-align-left:before { + content: "\64"; +} +.dripicons-align-right:before { + content: "\65"; +} +.dripicons-anchor:before { + content: "\66"; +} +.dripicons-archive:before { + content: "\67"; +} +.dripicons-arrow-down:before { + content: "\68"; +} +.dripicons-arrow-left:before { + content: "\69"; +} +.dripicons-arrow-right:before { + content: "\6a"; +} +.dripicons-arrow-thin-down:before { + content: "\6b"; +} +.dripicons-arrow-thin-left:before { + content: "\6c"; +} +.dripicons-arrow-thin-right:before { + content: "\6d"; +} +.dripicons-arrow-thin-up:before { + content: "\6e"; +} +.dripicons-arrow-up:before { + content: "\6f"; +} +.dripicons-article:before { + content: "\70"; +} +.dripicons-backspace:before { + content: "\71"; +} +.dripicons-basket:before { + content: "\72"; +} +.dripicons-basketball:before { + content: "\73"; +} +.dripicons-battery-empty:before { + content: "\74"; +} +.dripicons-battery-full:before { + content: "\75"; +} +.dripicons-battery-low:before { + content: "\76"; +} +.dripicons-battery-medium:before { + content: "\77"; +} +.dripicons-bell:before { + content: "\78"; +} +.dripicons-blog:before { + content: "\79"; +} +.dripicons-bluetooth:before { + content: "\7a"; +} +.dripicons-bold:before { + content: "\41"; +} +.dripicons-bookmark:before { + content: "\42"; +} +.dripicons-bookmarks:before { + content: "\43"; +} +.dripicons-box:before { + content: "\44"; +} +.dripicons-briefcase:before { + content: "\45"; +} +.dripicons-brightness-low:before { + content: "\46"; +} +.dripicons-brightness-max:before { + content: "\47"; +} +.dripicons-brightness-medium:before { + content: "\48"; +} +.dripicons-broadcast:before { + content: "\49"; +} +.dripicons-browser:before { + content: "\4a"; +} +.dripicons-browser-upload:before { + content: "\4b"; +} +.dripicons-brush:before { + content: "\4c"; +} +.dripicons-calendar:before { + content: "\4d"; +} +.dripicons-camcorder:before { + content: "\4e"; +} +.dripicons-camera:before { + content: "\4f"; +} +.dripicons-card:before { + content: "\50"; +} +.dripicons-cart:before { + content: "\51"; +} +.dripicons-checklist:before { + content: "\52"; +} +.dripicons-checkmark:before { + content: "\53"; +} +.dripicons-chevron-down:before { + content: "\54"; +} +.dripicons-chevron-left:before { + content: "\55"; +} +.dripicons-chevron-right:before { + content: "\56"; +} +.dripicons-chevron-up:before { + content: "\57"; +} +.dripicons-clipboard:before { + content: "\58"; +} +.dripicons-clock:before { + content: "\59"; +} +.dripicons-clockwise:before { + content: "\5a"; +} +.dripicons-cloud:before { + content: "\30"; +} +.dripicons-cloud-download:before { + content: "\31"; +} +.dripicons-cloud-upload:before { + content: "\32"; +} +.dripicons-code:before { + content: "\33"; +} +.dripicons-contract:before { + content: "\34"; +} +.dripicons-contract-2:before { + content: "\35"; +} +.dripicons-conversation:before { + content: "\36"; +} +.dripicons-copy:before { + content: "\37"; +} +.dripicons-crop:before { + content: "\38"; +} +.dripicons-cross:before { + content: "\39"; +} +.dripicons-crosshair:before { + content: "\21"; +} +.dripicons-cutlery:before { + content: "\22"; +} +.dripicons-device-desktop:before { + content: "\23"; +} +.dripicons-device-mobile:before { + content: "\24"; +} +.dripicons-device-tablet:before { + content: "\25"; +} +.dripicons-direction:before { + content: "\26"; +} +.dripicons-disc:before { + content: "\27"; +} +.dripicons-document:before { + content: "\28"; +} +.dripicons-document-delete:before { + content: "\29"; +} +.dripicons-document-edit:before { + content: "\2a"; +} +.dripicons-document-new:before { + content: "\2b"; +} +.dripicons-document-remove:before { + content: "\2c"; +} +.dripicons-dot:before { + content: "\2d"; +} +.dripicons-dots-2:before { + content: "\2e"; +} +.dripicons-dots-3:before { + content: "\2f"; +} +.dripicons-download:before { + content: "\3a"; +} +.dripicons-duplicate:before { + content: "\3b"; +} +.dripicons-enter:before { + content: "\3c"; +} +.dripicons-exit:before { + content: "\3d"; +} +.dripicons-expand:before { + content: "\3e"; +} +.dripicons-expand-2:before { + content: "\3f"; +} +.dripicons-experiment:before { + content: "\40"; +} +.dripicons-export:before { + content: "\5b"; +} +.dripicons-feed:before { + content: "\5d"; +} +.dripicons-flag:before { + content: "\5e"; +} +.dripicons-flashlight:before { + content: "\5f"; +} +.dripicons-folder:before { + content: "\60"; +} +.dripicons-folder-open:before { + content: "\7b"; +} +.dripicons-forward:before { + content: "\7c"; +} +.dripicons-gaming:before { + content: "\7d"; +} +.dripicons-gear:before { + content: "\7e"; +} +.dripicons-graduation:before { + content: "\5c"; +} +.dripicons-graph-bar:before { + content: "\e000"; +} +.dripicons-graph-line:before { + content: "\e001"; +} +.dripicons-graph-pie:before { + content: "\e002"; +} +.dripicons-headset:before { + content: "\e003"; +} +.dripicons-heart:before { + content: "\e004"; +} +.dripicons-help:before { + content: "\e005"; +} +.dripicons-home:before { + content: "\e006"; +} +.dripicons-hourglass:before { + content: "\e007"; +} +.dripicons-inbox:before { + content: "\e008"; +} +.dripicons-information:before { + content: "\e009"; +} +.dripicons-italic:before { + content: "\e00a"; +} +.dripicons-jewel:before { + content: "\e00b"; +} +.dripicons-lifting:before { + content: "\e00c"; +} +.dripicons-lightbulb:before { + content: "\e00d"; +} +.dripicons-link:before { + content: "\e00e"; +} +.dripicons-link-broken:before { + content: "\e00f"; +} +.dripicons-list:before { + content: "\e010"; +} +.dripicons-loading:before { + content: "\e011"; +} +.dripicons-location:before { + content: "\e012"; +} +.dripicons-lock:before { + content: "\e013"; +} +.dripicons-lock-open:before { + content: "\e014"; +} +.dripicons-mail:before { + content: "\e015"; +} +.dripicons-map:before { + content: "\e016"; +} +.dripicons-media-loop:before { + content: "\e017"; +} +.dripicons-media-next:before { + content: "\e018"; +} +.dripicons-media-pause:before { + content: "\e019"; +} +.dripicons-media-play:before { + content: "\e01a"; +} +.dripicons-media-previous:before { + content: "\e01b"; +} +.dripicons-media-record:before { + content: "\e01c"; +} +.dripicons-media-shuffle:before { + content: "\e01d"; +} +.dripicons-media-stop:before { + content: "\e01e"; +} +.dripicons-medical:before { + content: "\e01f"; +} +.dripicons-menu:before { + content: "\e020"; +} +.dripicons-message:before { + content: "\e021"; +} +.dripicons-meter:before { + content: "\e022"; +} +.dripicons-microphone:before { + content: "\e023"; +} +.dripicons-minus:before { + content: "\e024"; +} +.dripicons-monitor:before { + content: "\e025"; +} +.dripicons-move:before { + content: "\e026"; +} +.dripicons-music:before { + content: "\e027"; +} +.dripicons-network-1:before { + content: "\e028"; +} +.dripicons-network-2:before { + content: "\e029"; +} +.dripicons-network-3:before { + content: "\e02a"; +} +.dripicons-network-4:before { + content: "\e02b"; +} +.dripicons-network-5:before { + content: "\e02c"; +} +.dripicons-pamphlet:before { + content: "\e02d"; +} +.dripicons-paperclip:before { + content: "\e02e"; +} +.dripicons-pencil:before { + content: "\e02f"; +} +.dripicons-phone:before { + content: "\e030"; +} +.dripicons-photo:before { + content: "\e031"; +} +.dripicons-photo-group:before { + content: "\e032"; +} +.dripicons-pill:before { + content: "\e033"; +} +.dripicons-pin:before { + content: "\e034"; +} +.dripicons-plus:before { + content: "\e035"; +} +.dripicons-power:before { + content: "\e036"; +} +.dripicons-preview:before { + content: "\e037"; +} +.dripicons-print:before { + content: "\e038"; +} +.dripicons-pulse:before { + content: "\e039"; +} +.dripicons-question:before { + content: "\e03a"; +} +.dripicons-reply:before { + content: "\e03b"; +} +.dripicons-reply-all:before { + content: "\e03c"; +} +.dripicons-return:before { + content: "\e03d"; +} +.dripicons-retweet:before { + content: "\e03e"; +} +.dripicons-rocket:before { + content: "\e03f"; +} +.dripicons-scale:before { + content: "\e040"; +} +.dripicons-search:before { + content: "\e041"; +} +.dripicons-shopping-bag:before { + content: "\e042"; +} +.dripicons-skip:before { + content: "\e043"; +} +.dripicons-stack:before { + content: "\e044"; +} +.dripicons-star:before { + content: "\e045"; +} +.dripicons-stopwatch:before { + content: "\e046"; +} +.dripicons-store:before { + content: "\e047"; +} +.dripicons-suitcase:before { + content: "\e048"; +} +.dripicons-swap:before { + content: "\e049"; +} +.dripicons-tag:before { + content: "\e04a"; +} +.dripicons-tag-delete:before { + content: "\e04b"; +} +.dripicons-tags:before { + content: "\e04c"; +} +.dripicons-thumbs-down:before { + content: "\e04d"; +} +.dripicons-thumbs-up:before { + content: "\e04e"; +} +.dripicons-ticket:before { + content: "\e04f"; +} +.dripicons-time-reverse:before { + content: "\e050"; +} +.dripicons-to-do:before { + content: "\e051"; +} +.dripicons-toggles:before { + content: "\e052"; +} +.dripicons-trash:before { + content: "\e053"; +} +.dripicons-trophy:before { + content: "\e054"; +} +.dripicons-upload:before { + content: "\e055"; +} +.dripicons-user:before { + content: "\e056"; +} +.dripicons-user-group:before { + content: "\e057"; +} +.dripicons-user-id:before { + content: "\e058"; +} +.dripicons-vibrate:before { + content: "\e059"; +} +.dripicons-view-apps:before { + content: "\e05a"; +} +.dripicons-view-list:before { + content: "\e05b"; +} +.dripicons-view-list-large:before { + content: "\e05c"; +} +.dripicons-view-thumb:before { + content: "\e05d"; +} +.dripicons-volume-full:before { + content: "\e05e"; +} +.dripicons-volume-low:before { + content: "\e05f"; +} +.dripicons-volume-medium:before { + content: "\e060"; +} +.dripicons-volume-off:before { + content: "\e061"; +} +.dripicons-wallet:before { + content: "\e062"; +} +.dripicons-warning:before { + content: "\e063"; +} +.dripicons-web:before { + content: "\e064"; +} +.dripicons-weight:before { + content: "\e065"; +} +.dripicons-wifi:before { + content: "\e066"; +} +.dripicons-wrong:before { + content: "\e067"; +} +.dripicons-zoom-in:before { + content: "\e068"; +} +.dripicons-zoom-out:before { + content: "\e069"; +} diff --git a/src/main/webapp/assets/images/avatar-admin.jpg b/src/main/webapp/assets/images/avatar-admin.jpg new file mode 100644 index 0000000..6dc6625 --- /dev/null +++ b/src/main/webapp/assets/images/avatar-admin.jpg Binary files differ diff --git a/src/main/webapp/assets/images/btn-naver.PNG b/src/main/webapp/assets/images/btn-naver.PNG new file mode 100644 index 0000000..0adfb08 --- /dev/null +++ b/src/main/webapp/assets/images/btn-naver.PNG Binary files differ diff --git a/src/main/webapp/assets/images/btn_facebook.png b/src/main/webapp/assets/images/btn_facebook.png new file mode 100644 index 0000000..50dd2e2 --- /dev/null +++ b/src/main/webapp/assets/images/btn_facebook.png Binary files differ diff --git a/src/main/webapp/assets/images/btn_google.png b/src/main/webapp/assets/images/btn_google.png new file mode 100644 index 0000000..008dcd3 --- /dev/null +++ b/src/main/webapp/assets/images/btn_google.png Binary files differ diff --git a/src/main/webapp/assets/images/btn_kakao.png b/src/main/webapp/assets/images/btn_kakao.png new file mode 100644 index 0000000..16a0a41 --- /dev/null +++ b/src/main/webapp/assets/images/btn_kakao.png Binary files differ diff --git a/src/main/webapp/assets/images/btn_naver.PNG b/src/main/webapp/assets/images/btn_naver.PNG new file mode 100644 index 0000000..575ec58 --- /dev/null +++ b/src/main/webapp/assets/images/btn_naver.PNG Binary files differ diff --git a/src/main/webapp/assets/images/default_profile.png b/src/main/webapp/assets/images/default_profile.png new file mode 100644 index 0000000..4b75fa5 --- /dev/null +++ b/src/main/webapp/assets/images/default_profile.png Binary files differ diff --git a/src/main/webapp/assets/images/delete-icon.png b/src/main/webapp/assets/images/delete-icon.png new file mode 100644 index 0000000..fc5dc10 --- /dev/null +++ b/src/main/webapp/assets/images/delete-icon.png Binary files differ diff --git a/src/main/webapp/assets/images/event-pop-voucher.jpg b/src/main/webapp/assets/images/event-pop-voucher.jpg new file mode 100644 index 0000000..51c6b91 --- /dev/null +++ b/src/main/webapp/assets/images/event-pop-voucher.jpg Binary files differ diff --git a/src/main/webapp/assets/images/event.png b/src/main/webapp/assets/images/event.png new file mode 100644 index 0000000..75c460c --- /dev/null +++ b/src/main/webapp/assets/images/event.png Binary files differ diff --git a/src/main/webapp/assets/images/event1.png b/src/main/webapp/assets/images/event1.png new file mode 100644 index 0000000..dc54577 --- /dev/null +++ b/src/main/webapp/assets/images/event1.png Binary files differ diff --git a/src/main/webapp/assets/images/favicon.png b/src/main/webapp/assets/images/favicon.png new file mode 100644 index 0000000..4d87d4a --- /dev/null +++ b/src/main/webapp/assets/images/favicon.png Binary files differ diff --git a/src/main/webapp/assets/images/login-facebook.png b/src/main/webapp/assets/images/login-facebook.png new file mode 100644 index 0000000..6abf686 --- /dev/null +++ b/src/main/webapp/assets/images/login-facebook.png Binary files differ diff --git a/src/main/webapp/assets/images/login-google.png b/src/main/webapp/assets/images/login-google.png new file mode 100644 index 0000000..b7b5fce --- /dev/null +++ b/src/main/webapp/assets/images/login-google.png Binary files differ diff --git a/src/main/webapp/assets/images/login-kakao.png b/src/main/webapp/assets/images/login-kakao.png new file mode 100644 index 0000000..a1737c2 --- /dev/null +++ b/src/main/webapp/assets/images/login-kakao.png Binary files differ diff --git a/src/main/webapp/assets/images/login-naver.png b/src/main/webapp/assets/images/login-naver.png new file mode 100644 index 0000000..c8034af --- /dev/null +++ b/src/main/webapp/assets/images/login-naver.png Binary files differ diff --git a/src/main/webapp/assets/images/loginbg.png b/src/main/webapp/assets/images/loginbg.png new file mode 100644 index 0000000..7f55671 --- /dev/null +++ b/src/main/webapp/assets/images/loginbg.png Binary files differ diff --git a/src/main/webapp/assets/images/loginbg2.png b/src/main/webapp/assets/images/loginbg2.png new file mode 100644 index 0000000..74768af --- /dev/null +++ b/src/main/webapp/assets/images/loginbg2.png Binary files differ diff --git a/src/main/webapp/assets/images/logineyes.png b/src/main/webapp/assets/images/logineyes.png new file mode 100644 index 0000000..00ffca6 --- /dev/null +++ b/src/main/webapp/assets/images/logineyes.png Binary files differ diff --git a/src/main/webapp/assets/images/loginlogo.png b/src/main/webapp/assets/images/loginlogo.png new file mode 100644 index 0000000..281130e --- /dev/null +++ b/src/main/webapp/assets/images/loginlogo.png Binary files differ diff --git a/src/main/webapp/assets/images/logo-owl-dark.png b/src/main/webapp/assets/images/logo-owl-dark.png new file mode 100644 index 0000000..1a140f0 --- /dev/null +++ b/src/main/webapp/assets/images/logo-owl-dark.png Binary files differ diff --git a/src/main/webapp/assets/images/logo-owl-gr.png b/src/main/webapp/assets/images/logo-owl-gr.png new file mode 100644 index 0000000..67c2f93 --- /dev/null +++ b/src/main/webapp/assets/images/logo-owl-gr.png Binary files differ diff --git a/src/main/webapp/assets/images/logo-owl.png b/src/main/webapp/assets/images/logo-owl.png new file mode 100644 index 0000000..4362ef3 --- /dev/null +++ b/src/main/webapp/assets/images/logo-owl.png Binary files differ diff --git a/src/main/webapp/assets/images/logo-owltxt.png b/src/main/webapp/assets/images/logo-owltxt.png new file mode 100644 index 0000000..c7e15fe --- /dev/null +++ b/src/main/webapp/assets/images/logo-owltxt.png Binary files differ diff --git a/src/main/webapp/assets/images/owl.png b/src/main/webapp/assets/images/owl.png new file mode 100644 index 0000000..6a8837a --- /dev/null +++ b/src/main/webapp/assets/images/owl.png Binary files differ diff --git a/src/main/webapp/assets/images/stars.png b/src/main/webapp/assets/images/stars.png new file mode 100644 index 0000000..6c8c8cb --- /dev/null +++ b/src/main/webapp/assets/images/stars.png Binary files differ diff --git a/src/main/webapp/assets/images/sub-line.png b/src/main/webapp/assets/images/sub-line.png new file mode 100644 index 0000000..cd94b3e --- /dev/null +++ b/src/main/webapp/assets/images/sub-line.png Binary files differ diff --git a/src/main/webapp/assets/images/twinkling.png b/src/main/webapp/assets/images/twinkling.png new file mode 100644 index 0000000..f73bf40 --- /dev/null +++ b/src/main/webapp/assets/images/twinkling.png Binary files differ diff --git a/src/main/webapp/assets/styles/main.css b/src/main/webapp/assets/styles/main.css new file mode 100644 index 0000000..c336ec9 --- /dev/null +++ b/src/main/webapp/assets/styles/main.css @@ -0,0 +1,30176 @@ +/* +TABLE OF CONTENTS + + +1. Theme Variables + 1a. User Override Variables +2. Theme Mixins +3. Bootstrap Override Styles + 3a. Override default includes of bootstrap + 3b. Override bootstrap table styles + 3c. Override bootstrap form styles + 3d. Override bootstrap navigation styles + 3e. Override bootstrap button styles + 3f. Override bootstrap breadcrumbs styles + 3g. Override bootstrap typography styles + 3h. Override bootstrap modal styles + 3i. Override bootstrap alerts styles +4. Overrides for various plugins that are included with this template +5. Handy Animations +6. User Profiles +7. Layout styles +8. Menu styles +9. Styles for all element blocks +10. Helpful Misc Styles +11. Icon Fonts +12. Chat +13. App - Email +14. App - Projects +15. App - Full Chat +16. Pricing Plans +17. Pipelines +18. OS Dropdowns +19. App - TODO +20. Fancy Selector +21. App - Rentals +22. App - Support +23. Onboarding +24. Top Bar styles +25. Search +26. Customizer +##. Dark Color Scheme +##. Responsive Styles + +*/ +/* 1. Theme Variables */ +/* 1a. User Override Variables */ +/* 2. Theme Mixins */ +/* 3. Bootstrap Override Styles */ +/* 3a. Override default includes of bootstrap */ +/*! + * Bootstrap v4.0.0 (https://getbootstrap.com) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +@import url(https://fonts.googleapis.com/css?family=Noto+Sans:400,700); +/*@import url(https://cdn.rawgit.com/hiun/NanumSquare/master/nanumsquare.css);*/ + +@font-face { + font-family: 'NanumSquare'; + src: url(../font/NanumSquareR.eot); + src: url(../font/NanumSquareR.eot?#iefix) format('embedded-opentype'), + url(../font/NanumSquareR.woff) format('woff'), + url(../font/NanumSquareR.ttf) format('truetype'); +} + +:root { + --blue: #047bf8; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #e65252; + --orange: #fd7e14; + --yellow: #fbe4a0; + --green: #5eb314; + --teal: #20c997; + --cyan: #5bc0de; + --white: #fff; + --gray: #636c72; + --gray-dark: #343a40; + --primary: #047bf8; + --secondary: #292b2c; + --success: #5eb314; + --info: #5bc0de; + --warning: #fbe4a0; + --danger: #e65252; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --breakpoint-xxl: 1450px; + --font-family-sans-serif: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +*, +*::before, +*::after { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; +} + +@-ms-viewport { + width: device-width; +} + +article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: "Noto Sans", "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-size: 0.84rem; + font-weight: 400; + line-height: 1.5; + color: #3E4B5B; + text-align: left; + background-color: #fff; + height: 100%; +} + +/*[tabindex="-1"]:focus { + outline: 0 !important; +}*/ + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 500; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +dfn { + font-style: italic; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #047bf8; + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +a:hover { + color: #0356ad; + text-decoration: underline; +} + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):focus { + outline: 0; +} + +pre, +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg:not(:root) { + overflow: hidden; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #636c72; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: .5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-family: "Noto Sans", "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-weight: 500; + line-height: 1.2; + color: #334152; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.125rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 80%; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fbe4a0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.125rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #636c72; +} + +.blockquote-footer::before { + content: "\2014 \00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 4px; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #636c72; +} + +code, +kbd, +pre, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-break: break-word; +} + +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #292b2c; + border-radius: 4px; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 500; +} + +pre { + display: block; + font-size: 87.5%; + color: #292b2c; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +@media (min-width: 1450px) { + .container { + max-width: 1380px; + } +} + +.container-fluid { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto, .col-xxl-1, .col-xxl-2, .col-xxl-3, .col-xxl-4, .col-xxl-5, .col-xxl-6, .col-xxl-7, .col-xxl-8, .col-xxl-9, .col-xxl-10, .col-xxl-11, .col-xxl-12, .col-xxl, +.col-xxl-auto { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.col-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; +} + +.col-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; +} + +.col-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; +} + +.col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; +} + +.col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; +} + +.col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; +} + +.col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; +} + +.col-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; +} + +.col-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; +} + +.col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.3333333333%; +} + +.offset-2 { + margin-left: 16.6666666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.3333333333%; +} + +.offset-5 { + margin-left: 41.6666666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.3333333333%; +} + +.offset-8 { + margin-left: 66.6666666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.3333333333%; +} + +.offset-11 { + margin-left: 91.6666666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-sm-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-sm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-sm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-sm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-sm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-sm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-sm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-sm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-sm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-sm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-sm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-sm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-sm-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-sm-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-sm-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-sm-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-sm-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-sm-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-sm-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-sm-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-sm-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-sm-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-sm-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-sm-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-sm-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-sm-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-sm-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-sm-0 { + margin-left: 0; + } + + .offset-sm-1 { + margin-left: 8.3333333333%; + } + + .offset-sm-2 { + margin-left: 16.6666666667%; + } + + .offset-sm-3 { + margin-left: 25%; + } + + .offset-sm-4 { + margin-left: 33.3333333333%; + } + + .offset-sm-5 { + margin-left: 41.6666666667%; + } + + .offset-sm-6 { + margin-left: 50%; + } + + .offset-sm-7 { + margin-left: 58.3333333333%; + } + + .offset-sm-8 { + margin-left: 66.6666666667%; + } + + .offset-sm-9 { + margin-left: 75%; + } + + .offset-sm-10 { + margin-left: 83.3333333333%; + } + + .offset-sm-11 { + margin-left: 91.6666666667%; + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-md-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-md-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-md-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-md-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-md-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-md-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-md-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-md-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-md-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-md-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-md-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-md-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-md-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-md-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-md-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-md-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-md-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-md-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-md-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-md-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-md-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-md-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-md-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-md-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-md-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-md-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-md-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-md-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-md-0 { + margin-left: 0; + } + + .offset-md-1 { + margin-left: 8.3333333333%; + } + + .offset-md-2 { + margin-left: 16.6666666667%; + } + + .offset-md-3 { + margin-left: 25%; + } + + .offset-md-4 { + margin-left: 33.3333333333%; + } + + .offset-md-5 { + margin-left: 41.6666666667%; + } + + .offset-md-6 { + margin-left: 50%; + } + + .offset-md-7 { + margin-left: 58.3333333333%; + } + + .offset-md-8 { + margin-left: 66.6666666667%; + } + + .offset-md-9 { + margin-left: 75%; + } + + .offset-md-10 { + margin-left: 83.3333333333%; + } + + .offset-md-11 { + margin-left: 91.6666666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-lg-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-lg-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-lg-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-lg-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-lg-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-lg-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-lg-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-lg-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-lg-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-lg-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-lg-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-lg-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-lg-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-lg-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-lg-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-lg-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-lg-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-lg-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-lg-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-lg-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-lg-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-lg-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-lg-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-lg-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-lg-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-lg-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-lg-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-lg-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-lg-0 { + margin-left: 0; + } + + .offset-lg-1 { + margin-left: 8.3333333333%; + } + + .offset-lg-2 { + margin-left: 16.6666666667%; + } + + .offset-lg-3 { + margin-left: 25%; + } + + .offset-lg-4 { + margin-left: 33.3333333333%; + } + + .offset-lg-5 { + margin-left: 41.6666666667%; + } + + .offset-lg-6 { + margin-left: 50%; + } + + .offset-lg-7 { + margin-left: 58.3333333333%; + } + + .offset-lg-8 { + margin-left: 66.6666666667%; + } + + .offset-lg-9 { + margin-left: 75%; + } + + .offset-lg-10 { + margin-left: 83.3333333333%; + } + + .offset-lg-11 { + margin-left: 91.6666666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-xl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-xl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-xl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-xl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-xl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-xl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-xl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-xl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-xl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-xl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-xl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-xl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-xl-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-xl-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-xl-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-xl-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-xl-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-xl-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-xl-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-xl-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-xl-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-xl-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-xl-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-xl-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-xl-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-xl-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-xl-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-xl-0 { + margin-left: 0; + } + + .offset-xl-1 { + margin-left: 8.3333333333%; + } + + .offset-xl-2 { + margin-left: 16.6666666667%; + } + + .offset-xl-3 { + margin-left: 25%; + } + + .offset-xl-4 { + margin-left: 33.3333333333%; + } + + .offset-xl-5 { + margin-left: 41.6666666667%; + } + + .offset-xl-6 { + margin-left: 50%; + } + + .offset-xl-7 { + margin-left: 58.3333333333%; + } + + .offset-xl-8 { + margin-left: 66.6666666667%; + } + + .offset-xl-9 { + margin-left: 75%; + } + + .offset-xl-10 { + margin-left: 83.3333333333%; + } + + .offset-xl-11 { + margin-left: 91.6666666667%; + } +} + +@media (min-width: 1450px) { + .col-xxl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-xxl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-xxl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + } + + .col-xxl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + + .col-xxl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-xxl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + + .col-xxl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + } + + .col-xxl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-xxl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + } + + .col-xxl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + } + + .col-xxl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-xxl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + } + + .col-xxl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + } + + .col-xxl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-xxl-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-xxl-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-xxl-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-xxl-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-xxl-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-xxl-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-xxl-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-xxl-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-xxl-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-xxl-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-xxl-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-xxl-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-xxl-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-xxl-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-xxl-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-xxl-0 { + margin-left: 0; + } + + .offset-xxl-1 { + margin-left: 8.3333333333%; + } + + .offset-xxl-2 { + margin-left: 16.6666666667%; + } + + .offset-xxl-3 { + margin-left: 25%; + } + + .offset-xxl-4 { + margin-left: 33.3333333333%; + } + + .offset-xxl-5 { + margin-left: 41.6666666667%; + } + + .offset-xxl-6 { + margin-left: 50%; + } + + .offset-xxl-7 { + margin-left: 58.3333333333%; + } + + .offset-xxl-8 { + margin-left: 66.6666666667%; + } + + .offset-xxl-9 { + margin-left: 75%; + } + + .offset-xxl-10 { + margin-left: 83.3333333333%; + } + + .offset-xxl-11 { + margin-left: 91.6666666667%; + } +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; + background-color: transparent; +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid rgba(83, 101, 140, 0.33); +} + +.table tr:last-child { + border-bottom: 1px solid rgba(83, 101, 140, 0.33); +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid rgba(83, 101, 140, 0.33); + border-top: 1px solid rgba(83, 101, 140, 0.33); +} + +.table tbody + tbody { + border-top: 2px solid rgba(83, 101, 140, 0.33); +} + +.table .table { + background-color: #fff; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid rgba(83, 101, 140, 0.33); +} + +.table-bordered th, +.table-bordered td { + border: 1px solid rgba(83, 101, 140, 0.33); +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(94, 130, 152, 0.05); +} + +.table-hover tbody tr:hover { + background-color: rgba(18, 95, 142, 0.075); +} + +.table.table-striped tbody tr:hover { + /*background-color: rgba(177, 221, 255, 0.3);*/ + +} + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b9dafd; +} + +.table-hover .table-primary:hover { + background-color: #a0cdfc; +} + +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #a0cdfc; +} + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #c3c4c4; +} + +.table-hover .table-secondary:hover { + background-color: #b6b7b7; +} + +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #b6b7b7; +} + +.table-success, +.table-success > th, +.table-success > td { + background-color: #d2eabd; +} + +.table-hover .table-success:hover { + background-color: #c5e4aa; +} + +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #c5e4aa; +} + +.table-info, +.table-info > th, +.table-info > td { + background-color: #d1edf6; +} + +.table-hover .table-info:hover { + background-color: #bce5f2; +} + +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #bce5f2; +} + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #fef7e4; +} + +.table-hover .table-warning:hover { + background-color: #fdf0cb; +} + +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #fdf0cb; +} + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f8cfcf; +} + +.table-hover .table-danger:hover { + background-color: #f5b9b9; +} + +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f5b9b9; +} + +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(18, 95, 142, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(15, 80, 119, 0.075); +} + +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(15, 80, 119, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #292b2c; + border-color: #3b3e40; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: rgba(83, 101, 140, 0.33); +} + +.table-dark { + color: #fff; + background-color: #292b2c; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #3b3e40; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-sm > .table-bordered { + border: 0; + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-md > .table-bordered { + border: 0; + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-lg > .table-bordered { + border: 0; + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-xl > .table-bordered { + border: 0; + } +} + +@media (max-width: 1449.98px) { + .table-responsive-xxl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-xxl > .table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 0.84rem; + line-height: 1.5; + color: #000000; + font-weight:400!important; + background-color: #fff; + background-clip: padding-box; + border: 2px solid #dde2ec; + border-radius: 2px; + -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #047bf8; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.form-control::-webkit-input-placeholder { + color: #636c72; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #636c72; + opacity: 1; +} + +.form-control::-ms-input-placeholder { + color: #636c72; + opacity: 1; +} + +.form-control::placeholder { + color: #636c72; + opacity: 1; +} + +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +select.form-control:not([size]):not([multiple]) { + height: calc(2.1rem + 4px); +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 2px); + padding-bottom: calc(0.375rem + 2px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 2px); + padding-bottom: calc(0.5rem + 2px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 2px); + padding-bottom: calc(0.25rem + 2px); + font-size: 0.8rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding-top: 0.375rem; + padding-bottom: 0.375rem; + margin-bottom: 0; + line-height: 1.5; + background-color: transparent; + border: solid transparent; + border-width: 2px 0; +} + +.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control, +.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text, +.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text, +.input-group-sm > .input-group-prepend > .form-control-plaintext.btn, .all-wrapper +.input-group-sm > .input-group-prepend > .form-control-plaintext.fc-button, +.input-group-sm > .input-group-append > .form-control-plaintext.btn, .all-wrapper +.input-group-sm > .input-group-append > .form-control-plaintext.fc-button, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control, +.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text, +.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text, +.input-group-lg > .input-group-prepend > .form-control-plaintext.btn, .all-wrapper +.input-group-lg > .input-group-prepend > .form-control-plaintext.fc-button, +.input-group-lg > .input-group-append > .form-control-plaintext.btn, .all-wrapper +.input-group-lg > .input-group-append > .form-control-plaintext.fc-button { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm, .input-group-sm > .form-control, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, .all-wrapper +.input-group-sm > .input-group-prepend > .fc-button, +.input-group-sm > .input-group-append > .btn, .all-wrapper +.input-group-sm > .input-group-append > .fc-button { + padding: 0.25rem 0.5rem; + font-size: 0.8rem; + line-height: 1.5; + border-radius: 4px; +} + +select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), +.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), +.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]), +.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]), .all-wrapper +.input-group-sm > .input-group-prepend > select.fc-button:not([size]):not([multiple]), +.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]), .all-wrapper +.input-group-sm > .input-group-append > select.fc-button:not([size]):not([multiple]) { + height: calc(1.7rem + 4px); +} + +.form-control-lg, .input-group-lg > .form-control, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, .all-wrapper +.input-group-lg > .input-group-prepend > .fc-button, +.input-group-lg > .input-group-append > .btn, .all-wrapper +.input-group-lg > .input-group-append > .fc-button { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 6px; +} + +select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]), +.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), +.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]), +.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]), .all-wrapper +.input-group-lg > .input-group-prepend > select.fc-button:not([size]):not([multiple]), +.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]), .all-wrapper +.input-group-lg > .input-group-append > select.fc-button:not([size]):not([multiple]) { + height: calc(2.875rem + 4px); +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input:disabled ~ .form-check-label { + color: #636c72; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #5eb314; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(94, 179, 20, 0.8); + border-radius: .2rem; +} + +.was-validated .form-control:valid, .form-control.is-valid, .was-validated +.custom-select:valid, +.custom-select.is-valid { + border-color: #5eb314; +} + +.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated +.custom-select:valid:focus, +.custom-select.is-valid:focus { + border-color: #5eb314; + -webkit-box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.25); + box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.25); +} + +.was-validated .form-control:valid ~ .valid-feedback, +.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback, +.form-control.is-valid ~ .valid-tooltip, .was-validated +.custom-select:valid ~ .valid-feedback, +.was-validated +.custom-select:valid ~ .valid-tooltip, +.custom-select.is-valid ~ .valid-feedback, +.custom-select.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #5eb314; +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { + color: #5eb314; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + background-color: #9eed5a; +} + +.was-validated .custom-control-input:valid ~ .valid-feedback, +.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback, +.custom-control-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + background-color: #76e119; +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(94, 179, 20, 0.25); + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(94, 179, 20, 0.25); +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #5eb314; +} + +.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before { + border-color: inherit; +} + +.was-validated .custom-file-input:valid ~ .valid-feedback, +.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback, +.custom-file-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + -webkit-box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.25); + box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #e65252; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(230, 82, 82, 0.8); + border-radius: .2rem; +} + +.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated +.custom-select:invalid, +.custom-select.is-invalid { + border-color: #e65252; +} + +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated +.custom-select:invalid:focus, +.custom-select.is-invalid:focus { + border-color: #e65252; + -webkit-box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.25); + box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.25); +} + +.was-validated .form-control:invalid ~ .invalid-feedback, +.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback, +.form-control.is-invalid ~ .invalid-tooltip, .was-validated +.custom-select:invalid ~ .invalid-feedback, +.was-validated +.custom-select:invalid ~ .invalid-tooltip, +.custom-select.is-invalid ~ .invalid-feedback, +.custom-select.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #e65252; +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { + color: #e65252; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + background-color: #f6c1c1; +} + +.was-validated .custom-control-input:invalid ~ .invalid-feedback, +.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback, +.custom-control-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + background-color: #ec7f7f; +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(230, 82, 82, 0.25); + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(230, 82, 82, 0.25); +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #e65252; +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before { + border-color: inherit; +} + +.was-validated .custom-file-input:invalid ~ .invalid-feedback, +.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback, +.custom-file-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + -webkit-box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.25); + box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.25); +} + +.form-inline { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0; + } + + .form-inline .form-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0; + } + + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .form-inline .form-control-plaintext { + display: inline-block; + } + + .form-inline .input-group { + width: auto; + } + + .form-inline .form-check { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0; + } + + .form-inline .form-check-input { + position: relative; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + + .form-inline .custom-control { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + } + + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn, .all-wrapper .fc-button { + display: inline-block; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 2px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 0.85rem; + line-height: 1.5; + border-radius: 2px; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; +} + +.btn:hover, .all-wrapper .fc-button:hover, .btn:focus, .all-wrapper .fc-button:focus { + text-decoration: none; +} + +.btn:focus, .all-wrapper .fc-button:focus, .btn.focus, .all-wrapper .focus.fc-button { + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn.disabled, .all-wrapper .disabled.fc-button, .btn:disabled, .all-wrapper .fc-button:disabled { + opacity: 0.65; +} + +.btn:not(:disabled):not(.disabled), .all-wrapper .fc-button:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.btn:not(:disabled):not(.disabled):active, .all-wrapper .fc-button:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active, .all-wrapper .fc-button:not(:disabled):not(.disabled).active { + background-image: none; +} + +a.btn.disabled, .all-wrapper a.disabled.fc-button, +fieldset:disabled a.btn, +fieldset:disabled .all-wrapper a.fc-button, .all-wrapper +fieldset:disabled a.fc-button { + pointer-events: none; +} + +.btn-primary, .all-wrapper .fc-button.fc-state-active { + color: #fff; + background-color: #0066ff; + border-color: #0066ff; +} + +.btn-primary:hover, .all-wrapper .fc-button.fc-state-active:hover { + color: #fff; + background-color: #003585; + border-color: #003585; +} + +.btn-primary:focus, .all-wrapper .fc-button.fc-state-active:focus, .btn-primary.focus, .all-wrapper .focus.fc-button.fc-state-active { + -webkit-box-shadow: 0 0 0 0.2rem rgba(4, 123, 248, 0.5); + box-shadow: 0 0 0 0.2rem rgba(4, 123, 248, 0.5); +} + +.btn-primary.disabled, .all-wrapper .disabled.fc-button.fc-state-active, .btn-primary:disabled, .all-wrapper .fc-button.fc-state-active:disabled { + color: #fff; + background-color: #047bf8; + border-color: #047bf8; +} + +.btn-primary:not(:disabled):not(.disabled):active, .all-wrapper .fc-button.fc-state-active:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .all-wrapper .fc-button.fc-state-active:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle, .all-wrapper +.show > .dropdown-toggle.fc-button.fc-state-active { + color: #fff; + background-color: #0362c6; + border-color: #035cb9; +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, .all-wrapper .fc-button.fc-state-active:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .all-wrapper .fc-button.fc-state-active:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus, .all-wrapper +.show > .dropdown-toggle.fc-button.fc-state-active:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(4, 123, 248, 0.5); + box-shadow: 0 0 0 0.2rem rgba(4, 123, 248, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #777; + border-color: #777; +} + +.btn-secondary:hover { + color: #fff; + background-color: #171818; + border-color: #101112; +} + +.btn-secondary:focus, .btn-secondary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); + box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); +} + +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #292b2c; + border-color: #292b2c; +} + +.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #101112; + border-color: #0a0b0b; +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); + box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); +} + +.btn-navy { + color: #fff; + background-color: #160199; + border-color: #160199; +} + +.btn-navy:hover { + color: #fff; + background-color: #0f0165; + border-color: #0f0165; +} + +.btn-navy:focus, .btn-secondary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); + box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); +} + +.btn-navy.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #292b2c; + border-color: #292b2c; +} + +.btn-success { + color: #fff; + background-color: #5eb314; + border-color: #5eb314; +} + +.btn-success:hover { + color: #fff; + background-color: #4c9110; + border-color: #46850f; +} + +.btn-success:focus, .btn-success.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.5); + box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.5); +} + +.btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #5eb314; + border-color: #5eb314; +} + +.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #46850f; + border-color: #407a0e; +} + +.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.5); + box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.5); +} + +.btn-info { + color: #fff; + background-color: #716aca; + border-color: #716aca; +} + +.btn-info:hover { + color: #fff; + background-color: #484298; + border-color: #484298; +} + +.btn-info:focus, .btn-info.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); + box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); +} + +.btn-info.disabled, .btn-info:disabled { + color: #292b2c; + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #31b0d5; + border-color: #2aaacf; +} + +.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); + box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); +} + +.btn-warning { + color: #fff; + background-color: #ff9057; + border-color: #ff9057; +} + +.btn-warning:hover { + color: #fff; + background-color: #d5510d; + border-color: #d5510d; +} + +.btn-warning:focus, .btn-warning.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(251, 228, 160, 0.5); + box-shadow: 0 0 0 0.2rem rgba(251, 228, 160, 0.5); +} + +.btn-warning.disabled, .btn-warning:disabled { + color: #fff; + background-color: #d5510d; + border-color: #d5510d; +} + +.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #d5510d; + border-color: #d5510d; +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(251, 228, 160, 0.5); + box-shadow: 0 0 0 0.2rem rgba(251, 228, 160, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #e65252; + border-color: #e65252; +} + +.btn-danger:hover { + color: #fff; + background-color: #e13131; + border-color: #e02525; +} + +.btn-danger:focus, .btn-danger.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.5); + box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.5); +} + +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #e65252; + border-color: #e65252; +} + +.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #e02525; + border-color: #d91f1f; +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.5); + box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.5); +} + +.btn-light { + color: #292b2c; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:hover { + color: #292b2c; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light:focus, .btn-light.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-light.disabled, .btn-light:disabled { + color: #292b2c; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #292b2c; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark:focus, .btn-dark.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-primary { + color: #047bf8; + background-color: transparent; + background-image: none; + border-color: #047bf8; +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #047bf8; + border-color: #047bf8; +} + +.btn-outline-primary:focus, .btn-outline-primary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(4, 123, 248, 0.5); + box-shadow: 0 0 0 0.2rem rgba(4, 123, 248, 0.5); +} + +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #047bf8; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #047bf8; + border-color: #047bf8; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(4, 123, 248, 0.5); + box-shadow: 0 0 0 0.2rem rgba(4, 123, 248, 0.5); +} + +.btn-outline-secondary { + color: #292b2c; + background-color: transparent; + background-image: none; + border-color: #666; +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #292b2c; + border-color: #292b2c; +} + +.btn-outline-secondary:focus, .btn-outline-secondary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); + box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); +} + +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #292b2c; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #292b2c; + border-color: #292b2c; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); + box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5); +} + +.btn-outline-success { + color: #5eb314; + background-color: transparent; + background-image: none; + border-color: #5eb314; +} + +.btn-outline-success:hover { + color: #fff; + background-color: #5eb314; + border-color: #5eb314; +} + +.btn-outline-success:focus, .btn-outline-success.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.5); + box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.5); +} + +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #5eb314; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #5eb314; + border-color: #5eb314; +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.5); + box-shadow: 0 0 0 0.2rem rgba(94, 179, 20, 0.5); +} + +.btn-outline-info { + color: #5bc0de; + background-color: transparent; + background-image: none; + border-color: #5bc0de; +} + +.btn-outline-info:hover { + color: #292b2c; + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-outline-info:focus, .btn-outline-info.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); + box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); +} + +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #5bc0de; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #292b2c; + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); + box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); +} + +.btn-outline-warning { + color: #fbe4a0; + background-color: transparent; + background-image: none; + border-color: #fbe4a0; +} + +.btn-outline-warning:hover { + color: #292b2c; + background-color: #fbe4a0; + border-color: #fbe4a0; +} + +.btn-outline-warning:focus, .btn-outline-warning.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(251, 228, 160, 0.5); + box-shadow: 0 0 0 0.2rem rgba(251, 228, 160, 0.5); +} + +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #fbe4a0; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #292b2c; + background-color: #fbe4a0; + border-color: #fbe4a0; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(251, 228, 160, 0.5); + box-shadow: 0 0 0 0.2rem rgba(251, 228, 160, 0.5); +} + +.btn-outline-danger { + color: #e65252; + background-color: transparent; + background-image: none; + border-color: #e65252; +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #e65252; + border-color: #e65252; +} + +.btn-outline-danger:focus, .btn-outline-danger.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.5); + box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.5); +} + +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #e65252; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #e65252; + border-color: #e65252; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.5); + box-shadow: 0 0 0 0.2rem rgba(230, 82, 82, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + background-color: transparent; + background-image: none; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #292b2c; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:focus, .btn-outline-light.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #292b2c; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + background-color: transparent; + background-image: none; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:focus, .btn-outline-dark.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #047bf8; + background-color: transparent; + border: 1px solid #ddd; +} + +.btn-link:hover { + color: #0356ad; + text-decoration: underline; + background-color: transparent; + border: 1px solid #ddd; +} + +.btn-link:focus, .btn-link.focus { + text-decoration: underline; + border-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link:disabled, .btn-link.disabled { + color: #636c72; +} + +.btn-lg, .btn-group-lg > .btn, .all-wrapper .btn-group-lg > .fc-button { + padding: 0.5rem 1rem; + font-size: 1.05rem; + line-height: 1.5; + border-radius: 6px; +} + +.btn-xlg { + padding: 0.6rem 0.8rem; + font-weight: 600 !important; + font-size: 1rem; + line-height: 1.5; + border-radius: 2px; +} + +.btn-md { + padding: 0.75rem 1rem; + line-height: 1.5; +} + +.btn-sm, .btn-group-sm > .btn, .all-wrapper .btn-group-sm > .fc-button { + padding: 0.25rem 0.5rem; + font-size: 0.75rem; + line-height: 1.5; + border-radius: 2px; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0px; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 0.82rem; + color: #3E4B5B; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; +} + +.dropup .dropdown-menu { + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + width: 0; + height: 0; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #292b2c; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:hover, .dropdown-item:focus { + color: #1d1e1f; + text-decoration: none; + background-color: #f8f9fa; +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #047bf8; +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #636c72; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.8rem; + color: #636c72; + white-space: nowrap; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} + +.btn-group > .btn, .all-wrapper .btn-group > .fc-button, +.btn-group-vertical > .btn, .all-wrapper +.btn-group-vertical > .fc-button { + position: relative; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; +} + +.btn-group > .btn:hover, .all-wrapper .btn-group > .fc-button:hover, +.btn-group-vertical > .btn:hover, .all-wrapper +.btn-group-vertical > .fc-button:hover { + z-index: 1; +} + +.btn-group > .btn:focus, .all-wrapper .btn-group > .fc-button:focus, .btn-group > .btn:active, .all-wrapper .btn-group > .fc-button:active, .btn-group > .btn.active, .all-wrapper .btn-group > .active.fc-button, +.btn-group-vertical > .btn:focus, .all-wrapper +.btn-group-vertical > .fc-button:focus, +.btn-group-vertical > .btn:active, .all-wrapper +.btn-group-vertical > .fc-button:active, +.btn-group-vertical > .btn.active, .all-wrapper +.btn-group-vertical > .active.fc-button { + z-index: 1; +} + +.btn-group .btn + .btn, .btn-group .all-wrapper .fc-button + .btn, .all-wrapper .btn-group .fc-button + .btn, .btn-group .all-wrapper .btn + .fc-button, .all-wrapper .btn-group .btn + .fc-button, .btn-group .all-wrapper .fc-button + .fc-button, .all-wrapper .btn-group .fc-button + .fc-button, +.btn-group .btn + .btn-group, +.btn-group .all-wrapper .fc-button + .btn-group, .all-wrapper +.btn-group .fc-button + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .all-wrapper .btn-group + .fc-button, .all-wrapper +.btn-group .btn-group + .fc-button, +.btn-group .btn-group + .btn-group, +.btn-group-vertical .btn + .btn, +.btn-group-vertical .all-wrapper .fc-button + .btn, .all-wrapper +.btn-group-vertical .fc-button + .btn, +.btn-group-vertical .all-wrapper .btn + .fc-button, .all-wrapper +.btn-group-vertical .btn + .fc-button, +.btn-group-vertical .all-wrapper .fc-button + .fc-button, .all-wrapper +.btn-group-vertical .fc-button + .fc-button, +.btn-group-vertical .btn + .btn-group, +.btn-group-vertical .all-wrapper .fc-button + .btn-group, .all-wrapper +.btn-group-vertical .fc-button + .btn-group, +.btn-group-vertical .btn-group + .btn, +.btn-group-vertical .all-wrapper .btn-group + .fc-button, .all-wrapper +.btn-group-vertical .btn-group + .fc-button, +.btn-group-vertical .btn-group + .btn-group { + margin-left: -2px; +} + +.btn-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:first-child, .all-wrapper .btn-group > .fc-button:first-child { + margin-left: 0; +} + +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .all-wrapper .btn-group > .fc-button:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn, .all-wrapper +.btn-group > .btn-group:not(:last-child) > .fc-button { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:not(:first-child), .all-wrapper .btn-group > .fc-button:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn, .all-wrapper +.btn-group > .btn-group:not(:first-child) > .fc-button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.dropdown-toggle-split::after { + margin-left: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split, .all-wrapper .btn-group-sm > .fc-button + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split, .all-wrapper .btn-group-lg > .fc-button + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.btn-group-vertical .btn, .btn-group-vertical .all-wrapper .fc-button, .all-wrapper .btn-group-vertical .fc-button, +.btn-group-vertical .btn-group { + width: 100%; +} + +.btn-group-vertical > .btn + .btn, .all-wrapper .btn-group-vertical > .fc-button + .btn, .all-wrapper .btn-group-vertical > .btn + .fc-button, .all-wrapper .btn-group-vertical > .fc-button + .fc-button, +.btn-group-vertical > .btn + .btn-group, .all-wrapper +.btn-group-vertical > .fc-button + .btn-group, +.btn-group-vertical > .btn-group + .btn, .all-wrapper +.btn-group-vertical > .btn-group + .fc-button, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -2px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), .all-wrapper .btn-group-vertical > .fc-button:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn, .all-wrapper +.btn-group-vertical > .btn-group:not(:last-child) > .fc-button { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:not(:first-child), .all-wrapper .btn-group-vertical > .fc-button:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn, .all-wrapper +.btn-group-vertical > .btn-group:not(:first-child) > .fc-button { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, .all-wrapper .btn-group-toggle > .fc-button, +.btn-group-toggle > .btn-group > .btn, .all-wrapper +.btn-group-toggle > .btn-group > .fc-button { + margin-bottom: 0; +} + +.btn-group-toggle > .btn input[type="radio"], .all-wrapper .btn-group-toggle > .fc-button input[type="radio"], +.btn-group-toggle > .btn input[type="checkbox"], .all-wrapper +.btn-group-toggle > .fc-button input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="radio"], .all-wrapper +.btn-group-toggle > .btn-group > .fc-button input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"], .all-wrapper +.btn-group-toggle > .btn-group > .fc-button input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100%; +} + +.input-group > .form-control, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; +} + +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file:focus { + z-index: 3; +} + +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -2px; +} + +.input-group > .form-control:not(:last-child), +.input-group > .custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .custom-file { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::before { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-file:not(:first-child) .custom-file-label, +.input-group > .custom-file:not(:first-child) .custom-file-label::before { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.input-group-prepend .btn, .input-group-prepend .all-wrapper .fc-button, .all-wrapper .input-group-prepend .fc-button, +.input-group-append .btn, +.input-group-append .all-wrapper .fc-button, .all-wrapper +.input-group-append .fc-button { + position: relative; + z-index: 2; +} + +.input-group-prepend .btn + .btn, .input-group-prepend .all-wrapper .fc-button + .btn, .all-wrapper .input-group-prepend .fc-button + .btn, .input-group-prepend .all-wrapper .btn + .fc-button, .all-wrapper .input-group-prepend .btn + .fc-button, .input-group-prepend .all-wrapper .fc-button + .fc-button, .all-wrapper .input-group-prepend .fc-button + .fc-button, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .all-wrapper .fc-button + .input-group-text, .all-wrapper +.input-group-prepend .fc-button + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-prepend .all-wrapper .input-group-text + .fc-button, .all-wrapper +.input-group-prepend .input-group-text + .fc-button, +.input-group-append .btn + .btn, +.input-group-append .all-wrapper .fc-button + .btn, .all-wrapper +.input-group-append .fc-button + .btn, +.input-group-append .all-wrapper .btn + .fc-button, .all-wrapper +.input-group-append .btn + .fc-button, +.input-group-append .all-wrapper .fc-button + .fc-button, .all-wrapper +.input-group-append .fc-button + .fc-button, +.input-group-append .btn + .input-group-text, +.input-group-append .all-wrapper .fc-button + .input-group-text, .all-wrapper +.input-group-append .fc-button + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn, +.input-group-append .all-wrapper .input-group-text + .fc-button, .all-wrapper +.input-group-append .input-group-text + .fc-button { + margin-left: -2px; +} + +.input-group-prepend { + margin-right: -2px; +} + +.input-group-append { + margin-left: -2px; +} + +.input-group-text { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 0.9rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 2px solid #dde2ec; + border-radius: 4px; +} + +.input-group-text2 { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 0.9rem; + font-weight: 400; + line-height: 1.5; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #0066ff; + border: 2px solid #0066ff; + border-radius: 0px; + cursor: pointer; +} + +.input-group-text2.disable { + background-color: #ddd; + border: 2px solid #ddd; + cursor: default; +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} + +.input-group > .input-group-prepend > .btn, .all-wrapper .input-group > .input-group-prepend > .fc-button, +.input-group > .input-group-prepend > .input-group-text, +.input-group > .input-group-append:not(:last-child) > .btn, .all-wrapper +.input-group > .input-group-append:not(:last-child) > .fc-button, +.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .all-wrapper +.input-group > .input-group-append:last-child > .fc-button:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, .all-wrapper .input-group > .input-group-append > .fc-button, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, .all-wrapper +.input-group > .input-group-prepend:not(:first-child) > .fc-button, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), .all-wrapper +.input-group > .input-group-prepend:first-child > .fc-button:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .input-group-prepend > .btn { + border-radius: 2px !important; +} + +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} + +.custom-control-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + z-index: -1; + opacity: 0; +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + background-color: #047bf8; +} + +.custom-control-input:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 1px #fff, none; + box-shadow: 0 0 0 1px #fff, none; +} + +.custom-control-input:active ~ .custom-control-label::before { + color: #fff; + background-color: #b1d6fe; +} + +.custom-control-input:disabled ~ .custom-control-label { + color: #636c72; +} + +.custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + margin-bottom: 0; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #dee2e6; +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 4px; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { + background-color: #047bf8; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + background-color: #047bf8; +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(4, 123, 248, 0.5); +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(4, 123, 248, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::before { + background-color: #047bf8; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(4, 123, 248, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(2.1rem + 4px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; + background-size: 8px 10px; + border: 2px solid #dde2ec; + border-radius: 4px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-select:focus { + border-color: #047bf8; + outline: 0; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(4, 123, 248, 0.5); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(4, 123, 248, 0.5); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #636c72; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + opacity: 0; +} + +.custom-select-sm { + height: calc(1.7rem + 4px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 75%; +} + +.custom-select-lg { + height: calc(2.875rem + 4px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 125%; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(2.1rem + 4px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(2.1rem + 4px); + margin: 0; + opacity: 0; +} + +.custom-file-input:focus ~ .custom-file-control { + border-color: #047bf8; + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-file-input:focus ~ .custom-file-control::before { + border-color: #047bf8; +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(2.1rem + 4px); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 2px solid #dde2ec; + border-radius: 4px; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(calc(2.1rem + 4px) - 2px * 2); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: 2px solid #dde2ec; + border-radius: 0 4px 4px 0; +} + +.nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 0rem; + +} + +.nav-link:hover, .nav-link:focus { + text-decoration: none; +} + +.nav-link.disabled { + color: #636c72; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-item { + margin-bottom: -1px; +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #636c72; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: transparent; + border-color: #dee2e6 #dee2e6 transparent; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0px; + border: 1px solid #047bf8; + background-color: #fff; + color: #666; +} + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #047bf8; +} + +.nav-fill .nav-item { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; +} + +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.breadcrumb { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 4px; +} + +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + padding-left: 0.5rem; + color: #636c72; + content: "/"; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #636c72; +} + +.pagination { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; + border-radius: 4px; + margin: 0 auto; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #666; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.page-link:hover { + color: #0356ad; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 2; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.page-link:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.page-item:last-child .page-link { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.page-item.active .page-link { + z-index: 1; + color: #fff; + background-color: #666; + border-color: #666; + +} + +.page-item.active .page-link:hover { + color: #fff; +} + +.page-item.disabled .page-link { + color: #999; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; + opacity: 0.7; + +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.72rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.pushbadge { + display: inline-block; + padding: 0.15em 0.60em; + font-size: 0.6rem; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: top; + margin-top: 2px; + border-radius: 99px; + color: #fff; + background-color: #f4516c; + font-family: "Arial", sans-serif; +} + +.badge { + display: inline-block; + padding: 0.20em 0.65em; + font-size: 75%; + font-weight: 300; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 4px; +} + +.badge:empty { + display: none; +} + +.btn .badge, .all-wrapper .fc-button .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #5773ff; +} + +/*.badge-primary[href]:hover, .badge-primary[href]:focus { + color: #fff; + text-decoration: none; + background-color: #0362c6; +}*/ + +.badge-secondary { + color: #fff; + background-color: #666; +} + +/*.badge-secondary[href]:hover, .badge-secondary[href]:focus { + color: #fff; + text-decoration: none; + background-color: #101112; +}*/ + +.badge-success { + color: #fff; + background-color: #34bfa3; +} + +/*.badge-success[href]:hover, .badge-success[href]:focus { + color: #fff; + text-decoration: none; + background-color: #46850f; +}*/ + +.badge-info { + color: #292b2c; + background-color: #5bc0de; +} + +/*.badge-info[href]:hover, .badge-info[href]:focus { + color: #292b2c; + text-decoration: none; + background-color: #31b0d5; +}*/ + +.badge-warning { + color: #292b2c; + background-color: #fbe4a0; +} + +/*.badge-warning[href]:hover, .badge-warning[href]:focus { + color: #292b2c; + text-decoration: none; + background-color: #f9d66f; +}*/ + +.badge-danger { + color: #fff; + background-color: #f4516c; +} + +/*.badge-danger[href]:hover, .badge-danger[href]:focus { + color: #fff; + text-decoration: none; + background-color: #f4516c; +}*/ + +.badge-light { + color: #292b2c; + background-color: #f8f9fa; +} + +/*.badge-light[href]:hover, .badge-light[href]:focus { + color: #292b2c; + text-decoration: none; + background-color: #dae0e5; +}*/ + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +/*.badge-dark[href]:hover, .badge-dark[href]:focus { + color: #fff; + text-decoration: none; + background-color: #1d2124; +}*/ + +.badge-tip { + display: inline-block; + padding: 0.20em 0.70em; + font-size: 85%; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 4px; + color: #666; + background-color: #ddd; + cursor: pointer; + margin: 0 5px; + border: 1px solid #999; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 2px solid transparent; + border-radius: 6px; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 500; +} + +.alert-dismissible { + padding-right: 3.85rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #02366d; + background-color: #54a5fa; + border-color: #1886f9; +} + +.alert-primary hr { + border-top-color: #0679f1; +} + +.alert-primary .alert-link { + color: #011d3b; +} + +.alert-secondary { + color: #121313; + background-color: #6d6f70; + border-color: #3a3c3d; +} + +.alert-secondary hr { + border-top-color: #2e2f30; +} + +.alert-secondary .alert-link { + color: black; +} + +.alert-success { + color: #294f09; + background-color: #92cb5f; + border-color: #6bb927; +} + +.alert-success hr { + border-top-color: #5fa423; +} + +.alert-success .alert-link { + color: #112104; +} + +.alert-info { + color: #285462; + background-color: #8fd4e9; + border-color: #68c5e1; +} + +.alert-info hr { + border-top-color: #53bddd; +} + +.alert-info .alert-link { + color: #19353e; +} + +.alert-warning { + color: #6e6446; + background-color: #fcedbe; + border-color: #fbe6a8; +} + +.alert-warning hr { + border-top-color: #fadf90; +} + +.alert-warning .alert-link { + color: #4f4832; +} + +.alert-danger { + color: #652424; + background-color: #ee8989; + border-color: #e86060; +} + +.alert-danger hr { + border-top-color: #e54a4a; +} + +.alert-danger .alert-link { + color: #3f1717; +} + +.alert-light { + color: #6d6e6e; + background-color: #fafbfc; + border-color: #f9f9fa; +} + +.alert-light hr { + border-top-color: #ebebee; +} + +.alert-light .alert-link { + color: #545454; +} + +.alert-dark { + color: #171a1c; + background-color: #75797d; + border-color: #444a4f; +} + +.alert-dark hr { + border-top-color: #383d41; +} + +.alert-dark .alert-link { + color: black; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +.progress { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.675rem; + background-color: #e9ecef; + border-radius: 4px; +} + +.progress-bar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + color: #fff; + text-align: center; + background-color: #047bf8; + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} + +.close { + float: right; + font-size: 1.35rem; + font-weight: 500; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; +} + +.close:hover, .close:focus { + color: #000; + text-decoration: none; + opacity: .75; +} + +.close:not(:disabled):not(.disabled) { + cursor: pointer; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; +} + +/* ios �솕硫� �뒪�겕濡� �씠�뒋 �빐寃곗쓣 �쐞�븳 ��鍮꾩콉 */ +/*@media (max-width: 480px) { + + .modal { + height: 620px; + position: fixed; !* Display modal in the centre of your screen *! + overflow-y: scroll; !* Ensure that the modal is scroll-able *! + -webkit-overflow-scrolling: touch; !* Avoid having to use 2 finger scroll on iOS *! + } + + .modal.fade.in { + top: 5px; + } + + .modal-body { + max-height: 2400px; + } +} + +@media (max-width: 480px) and (max-height: 500px) { + .modal { + height: 450px + } +} + +@media (max-width: 480px) and (max-height: 450px) { + .modal { + height: 400px + } +} + +@media (max-width: 480px) and (max-height: 400px) { + .modal { + height: 350px + } +} + +@media (max-width: 480px) and (max-height: 350px) { + .modal { + height: 300px + } +} + +@media (max-width: 480px) and (max-height: 300px) { + .modal { + height: 250px + } +} + +@media (max-width: 480px) and (max-height: 250px) { + .modal { + height: 200px + } +} + +@media (max-width: 480px) and (max-height: 200px) { + .modal { + height: 150px + } +}*/ + +.modal-open { + overflow: hidden +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + outline: 0; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal.show .modal-dialog { + -webkit-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-dialog-centered { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - (0.5rem * 2)); +} + +.modal-content { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 0px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #235a94; +} + +.modal-backdrop.fade { + opacity: 0.5; +} + +.modal-backdrop.show { + opacity: 0.3; +} + +.modal-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem; + border-bottom: 0px solid #e9ecef; + border-top-left-radius: 6px; + border-top-right-radius: 6px; +} + +.modal-header .close { + padding: 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 1rem; + border-top: 1px solid #e9ecef; +} + +.modal-footer > :not(:first-child) { + margin-left: .25rem; +} + +.modal-footer > :not(:last-child) { + margin-right: .25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 550px; + margin: 1.75rem auto; + } + + .modal-dialog-centered { + min-height: calc(100% - (1.75rem * 2)); + } + + .modal-sm { + max-width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg { + max-width: 900px; + } + .modal-xlg { + max-width: 1300px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.8rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.8rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 0px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 6px; +} + +.popover .arrow::before, .popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} + +.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow { + bottom: calc((0.5rem + 0px) * -1); +} + +.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before, +.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after { + border-width: 0.5rem 0.5rem 0; +} + +.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before { + bottom: 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after { + bottom: 0px; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} + +.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow { + left: calc((0.5rem + 0px) * -1); + width: 0.5rem; + height: 1rem; + margin: 6px 0; +} + +.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before, +.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after { + border-width: 0.5rem 0.5rem 0.5rem 0; +} + +.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before { + left: 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after { + left: 0px; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} + +.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow { + top: calc((0.5rem + 0px) * -1); +} + +.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before, +.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after { + border-width: 0 0.5rem 0.5rem 0.5rem; +} + +.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before { + top: 0; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after { + top: 0px; + border-bottom-color: #fff; +} + +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 0px solid #047bf8; +} + +.bs-popover-left, .bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} + +.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow { + right: calc((0.5rem + 0px) * -1); + width: 0.5rem; + height: 1rem; + margin: 6px 0; +} + +.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before, +.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after { + border-width: 0.5rem 0 0.5rem 0.5rem; +} + +.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before { + right: 0; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after { + right: 0px; + border-left-color: #fff; +} + +.popover-header { + padding: 12px 15px; + margin-bottom: 0; + font-size: 0.9rem; + color: #fff; + background-color: #047bf8; + border-bottom: 0px solid #046fdf; + border-top-left-radius: calc(6px - 0px); + border-top-right-radius: calc(6px - 0px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 15px 20px; + color: #3E4B5B; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-item { + position: relative; + display: none; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + -webkit-transition: -webkit-transform 0.6s ease; + transition: -webkit-transform 0.6s ease; + transition: transform 0.6s ease; + transition: transform 0.6s ease, -webkit-transform 0.6s ease; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next, +.carousel-item-prev { + position: absolute; + top: 0; +} + +.carousel-item-next.carousel-item-left, +.carousel-item-prev.carousel-item-right { + -webkit-transform: translateX(0); + transform: translateX(0); +} + +@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { + .carousel-item-next.carousel-item-left, + .carousel-item-prev.carousel-item-right { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.carousel-item-next, +.active.carousel-item-right { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { + .carousel-item-next, + .active.carousel-item-right { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.carousel-item-prev, +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { + .carousel-item-prev, + .active.carousel-item-left { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; +} + +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: transparent no-repeat center center; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 10px; + left: 0; + z-index: 15; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + position: relative; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + background-color: rgba(255, 255, 255, 0.5); +} + +.carousel-indicators li::before { + position: absolute; + top: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} + +.carousel-indicators li::after { + position: absolute; + bottom: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.bg-primary { + background-color: #047bf8 !important; +} + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0362c6 !important; +} + +.bg-secondary { + background-color: #292b2c !important; +} + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #101112 !important; +} + +.bg-success { + background-color: #5eb314 !important; +} + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #46850f !important; +} + +.bg-info { + background-color: #5bc0de !important; +} + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #31b0d5 !important; +} + +.bg-warning { + background-color: #fbe4a0 !important; +} + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #f9d66f !important; +} + +.bg-danger { + background-color: #e65252 !important; +} + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #e02525 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid rgba(0, 0, 0, 0.1) !important; +} + +.border-top { + border-top: 1px solid rgba(0, 0, 0, 0.1) !important; +} + +.border-right { + border-right: 1px solid rgba(0, 0, 0, 0.1) !important; +} + +.border-bottom { + border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important; +} + +.border-left { + border-left: 1px solid rgba(0, 0, 0, 0.1) !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #047bf8 !important; +} + +.border-secondary { + border-color: #292b2c !important; +} + +.border-success { + border-color: #5eb314 !important; +} + +.border-info { + border-color: #5bc0de !important; +} + +.border-warning { + border-color: #fbe4a0 !important; +} + +.border-danger { + border-color: #e65252 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded { + border-radius: 4px !important; +} + +.rounded-top { + border-top-left-radius: 4px !important; + border-top-right-radius: 4px !important; +} + +.rounded-right { + border-top-right-radius: 4px !important; + border-bottom-right-radius: 4px !important; +} + +.rounded-bottom { + border-bottom-right-radius: 4px !important; + border-bottom-left-radius: 4px !important; +} + +.rounded-left { + border-top-left-radius: 4px !important; + border-bottom-left-radius: 4px !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + + .d-sm-inline { + display: inline !important; + } + + .d-sm-inline-block { + display: inline-block !important; + } + + .d-sm-block { + display: block !important; + } + + .d-sm-table { + display: table !important; + } + + .d-sm-table-row { + display: table-row !important; + } + + .d-sm-table-cell { + display: table-cell !important; + } + + .d-sm-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-sm-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + + .d-md-inline { + display: inline !important; + } + + .d-md-inline-block { + display: inline-block !important; + } + + .d-md-block { + display: block !important; + } + + .d-md-table { + display: table !important; + } + + .d-md-table-row { + display: table-row !important; + } + + .d-md-table-cell { + display: table-cell !important; + } + + .d-md-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-md-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + + .d-lg-inline { + display: inline !important; + } + + .d-lg-inline-block { + display: inline-block !important; + } + + .d-lg-block { + display: block !important; + } + + .d-lg-table { + display: table !important; + } + + .d-lg-table-row { + display: table-row !important; + } + + .d-lg-table-cell { + display: table-cell !important; + } + + .d-lg-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-lg-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + + .d-xl-inline { + display: inline !important; + } + + .d-xl-inline-block { + display: inline-block !important; + } + + .d-xl-block { + display: block !important; + } + + .d-xl-table { + display: table !important; + } + + .d-xl-table-row { + display: table-row !important; + } + + .d-xl-table-cell { + display: table-cell !important; + } + + .d-xl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-xl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1450px) { + .d-xxl-none { + display: none !important; + } + + .d-xxl-inline { + display: inline !important; + } + + .d-xxl-inline-block { + display: inline-block !important; + } + + .d-xxl-block { + display: block !important; + } + + .d-xxl-table { + display: table !important; + } + + .d-xxl-table-row { + display: table-row !important; + } + + .d-xxl-table-cell { + display: table-cell !important; + } + + .d-xxl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-xxl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + + .d-print-inline { + display: inline !important; + } + + .d-print-inline-block { + display: inline-block !important; + } + + .d-print-block { + display: block !important; + } + + .d-print-table { + display: table !important; + } + + .d-print-table-row { + display: table-row !important; + } + + .d-print-table-cell { + display: table-cell !important; + } + + .d-print-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-print-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.8571428571%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-sm-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-sm-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-sm-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-sm-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-sm-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-sm-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-sm-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-sm-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-sm-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-sm-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-sm-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-sm-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-md-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-md-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-md-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-md-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-md-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-md-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-md-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-md-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-md-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-md-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-md-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-md-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-lg-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-lg-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-lg-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-lg-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-lg-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-lg-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-lg-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-lg-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-lg-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-lg-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-lg-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-lg-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-xl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-xl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-xl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-xl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-xl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-xl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-xl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-xl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-xl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-xl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-xl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-xl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1450px) { + .flex-xxl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-xxl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-xxl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-xxl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-xxl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-xxl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-xxl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-xxl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-xxl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-xxl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-xxl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-xxl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-xxl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-xxl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-xxl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-xxl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-xxl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-xxl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-xxl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-xxl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-xxl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-xxl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-xxl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-xxl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-xxl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-xxl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-xxl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-xxl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-xxl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + + .float-sm-right { + float: right !important; + } + + .float-sm-none { + float: none !important; + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + + .float-md-right { + float: right !important; + } + + .float-md-none { + float: none !important; + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + + .float-lg-right { + float: right !important; + } + + .float-lg-none { + float: none !important; + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + + .float-xl-right { + float: right !important; + } + + .float-xl-none { + float: none !important; + } +} + +@media (min-width: 1450px) { + .float-xxl-left { + float: left !important; + } + + .float-xxl-right { + float: right !important; + } + + .float-xxl-none { + float: none !important; + } +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports ((position: -webkit-sticky) or (position: sticky)) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; + -webkit-clip-path: none; + clip-path: none; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + + .m-sm-1 { + margin: 0.25rem !important; + } + + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.5rem !important; + } + + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + + .m-sm-3 { + margin: 1rem !important; + } + + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + + .m-sm-4 { + margin: 1.5rem !important; + } + + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + + .m-sm-5 { + margin: 3rem !important; + } + + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.5rem !important; + } + + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + + .p-sm-3 { + padding: 1rem !important; + } + + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + + .p-sm-4 { + padding: 1.5rem !important; + } + + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + + .p-sm-5 { + padding: 3rem !important; + } + + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + + .m-sm-auto { + margin: auto !important; + } + + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + + .m-md-1 { + margin: 0.25rem !important; + } + + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + + .m-md-2 { + margin: 0.5rem !important; + } + + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + + .m-md-3 { + margin: 1rem !important; + } + + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + + .m-md-4 { + margin: 1.5rem !important; + } + + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + + .m-md-5 { + margin: 3rem !important; + } + + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + + .p-md-2 { + padding: 0.5rem !important; + } + + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + + .p-md-3 { + padding: 1rem !important; + } + + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + + .p-md-4 { + padding: 1.5rem !important; + } + + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + + .p-md-5 { + padding: 3rem !important; + } + + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + + .m-md-auto { + margin: auto !important; + } + + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + + .m-lg-1 { + margin: 0.25rem !important; + } + + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.5rem !important; + } + + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + + .m-lg-3 { + margin: 1rem !important; + } + + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + + .m-lg-4 { + margin: 1.5rem !important; + } + + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + + .m-lg-5 { + margin: 3rem !important; + } + + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.5rem !important; + } + + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + + .p-lg-3 { + padding: 1rem !important; + } + + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + + .p-lg-4 { + padding: 1.5rem !important; + } + + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + + .p-lg-5 { + padding: 3rem !important; + } + + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + + .m-lg-auto { + margin: auto !important; + } + + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + + .m-xl-1 { + margin: 0.25rem !important; + } + + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.5rem !important; + } + + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + + .m-xl-3 { + margin: 1rem !important; + } + + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + + .m-xl-4 { + margin: 1.5rem !important; + } + + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + + .m-xl-5 { + margin: 3rem !important; + } + + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.5rem !important; + } + + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + + .p-xl-3 { + padding: 1rem !important; + } + + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + + .p-xl-4 { + padding: 1.5rem !important; + } + + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + + .p-xl-5 { + padding: 3rem !important; + } + + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + + .m-xl-auto { + margin: auto !important; + } + + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1450px) { + .m-xxl-0 { + margin: 0 !important; + } + + .mt-xxl-0, + .my-xxl-0 { + margin-top: 0 !important; + } + + .mr-xxl-0, + .mx-xxl-0 { + margin-right: 0 !important; + } + + .mb-xxl-0, + .my-xxl-0 { + margin-bottom: 0 !important; + } + + .ml-xxl-0, + .mx-xxl-0 { + margin-left: 0 !important; + } + + .m-xxl-1 { + margin: 0.25rem !important; + } + + .mt-xxl-1, + .my-xxl-1 { + margin-top: 0.25rem !important; + } + + .mr-xxl-1, + .mx-xxl-1 { + margin-right: 0.25rem !important; + } + + .mb-xxl-1, + .my-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .ml-xxl-1, + .mx-xxl-1 { + margin-left: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.5rem !important; + } + + .mt-xxl-2, + .my-xxl-2 { + margin-top: 0.5rem !important; + } + + .mr-xxl-2, + .mx-xxl-2 { + margin-right: 0.5rem !important; + } + + .mb-xxl-2, + .my-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .ml-xxl-2, + .mx-xxl-2 { + margin-left: 0.5rem !important; + } + + .m-xxl-3 { + margin: 1rem !important; + } + + .mt-xxl-3, + .my-xxl-3 { + margin-top: 1rem !important; + } + + .mr-xxl-3, + .mx-xxl-3 { + margin-right: 1rem !important; + } + + .mb-xxl-3, + .my-xxl-3 { + margin-bottom: 1rem !important; + } + + .ml-xxl-3, + .mx-xxl-3 { + margin-left: 1rem !important; + } + + .m-xxl-4 { + margin: 1.5rem !important; + } + + .mt-xxl-4, + .my-xxl-4 { + margin-top: 1.5rem !important; + } + + .mr-xxl-4, + .mx-xxl-4 { + margin-right: 1.5rem !important; + } + + .mb-xxl-4, + .my-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .ml-xxl-4, + .mx-xxl-4 { + margin-left: 1.5rem !important; + } + + .m-xxl-5 { + margin: 3rem !important; + } + + .mt-xxl-5, + .my-xxl-5 { + margin-top: 3rem !important; + } + + .mr-xxl-5, + .mx-xxl-5 { + margin-right: 3rem !important; + } + + .mb-xxl-5, + .my-xxl-5 { + margin-bottom: 3rem !important; + } + + .ml-xxl-5, + .mx-xxl-5 { + margin-left: 3rem !important; + } + + .p-xxl-0 { + padding: 0 !important; + } + + .pt-xxl-0, + .py-xxl-0 { + padding-top: 0 !important; + } + + .pr-xxl-0, + .px-xxl-0 { + padding-right: 0 !important; + } + + .pb-xxl-0, + .py-xxl-0 { + padding-bottom: 0 !important; + } + + .pl-xxl-0, + .px-xxl-0 { + padding-left: 0 !important; + } + + .p-xxl-1 { + padding: 0.25rem !important; + } + + .pt-xxl-1, + .py-xxl-1 { + padding-top: 0.25rem !important; + } + + .pr-xxl-1, + .px-xxl-1 { + padding-right: 0.25rem !important; + } + + .pb-xxl-1, + .py-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .pl-xxl-1, + .px-xxl-1 { + padding-left: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.5rem !important; + } + + .pt-xxl-2, + .py-xxl-2 { + padding-top: 0.5rem !important; + } + + .pr-xxl-2, + .px-xxl-2 { + padding-right: 0.5rem !important; + } + + .pb-xxl-2, + .py-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .pl-xxl-2, + .px-xxl-2 { + padding-left: 0.5rem !important; + } + + .p-xxl-3 { + padding: 1rem !important; + } + + .pt-xxl-3, + .py-xxl-3 { + padding-top: 1rem !important; + } + + .pr-xxl-3, + .px-xxl-3 { + padding-right: 1rem !important; + } + + .pb-xxl-3, + .py-xxl-3 { + padding-bottom: 1rem !important; + } + + .pl-xxl-3, + .px-xxl-3 { + padding-left: 1rem !important; + } + + .p-xxl-4 { + padding: 1.5rem !important; + } + + .pt-xxl-4, + .py-xxl-4 { + padding-top: 1.5rem !important; + } + + .pr-xxl-4, + .px-xxl-4 { + padding-right: 1.5rem !important; + } + + .pb-xxl-4, + .py-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .pl-xxl-4, + .px-xxl-4 { + padding-left: 1.5rem !important; + } + + .p-xxl-5 { + padding: 3rem !important; + } + + .pt-xxl-5, + .py-xxl-5 { + padding-top: 3rem !important; + } + + .pr-xxl-5, + .px-xxl-5 { + padding-right: 3rem !important; + } + + .pb-xxl-5, + .py-xxl-5 { + padding-bottom: 3rem !important; + } + + .pl-xxl-5, + .px-xxl-5 { + padding-left: 3rem !important; + } + + .m-xxl-auto { + margin: auto !important; + } + + .mt-xxl-auto, + .my-xxl-auto { + margin-top: auto !important; + } + + .mr-xxl-auto, + .mx-xxl-auto { + margin-right: auto !important; + } + + .mb-xxl-auto, + .my-xxl-auto { + margin-bottom: auto !important; + } + + .ml-xxl-auto, + .mx-xxl-auto { + margin-left: auto !important; + } +} + +.text-justify { + text-align: justify !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.no-cont { + color: #999 !important; + cursor: default !important; +} + +.no-cont:hover { + background-color: #f7f9fa !important; +} + +.no-cont2 { + color: #999 !important; + text-align: center; + padding: 20px; +} + +.bold { + font-weight: bold !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + + .text-sm-right { + text-align: right !important; + } + + .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + + .text-md-right { + text-align: right !important; + } + + .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + + .text-lg-right { + text-align: right !important; + } + + .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + + .text-xl-right { + text-align: right !important; + } + + .text-xl-center { + text-align: center !important; + } +} + +@media (min-width: 1450px) { + .text-xxl-left { + text-align: left !important; + } + + .text-xxl-right { + text-align: right !important; + } + + .text-xxl-center { + text-align: center !important; + } +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 500 !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #047bf8 !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #0362c6 !important; +} + +.text-secondary { + color: #292b2c !important; +} + +a.text-secondary:hover, a.text-secondary:focus { + color: #101112 !important; +} + +.text-success { + color: #5eb314 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #46850f !important; +} + +.text-info { + color: #5bc0de !important; +} + +a.text-info:hover, a.text-info:focus { + color: #31b0d5 !important; +} + +.text-warning { + color: #fbe4a0 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #f9d66f !important; +} + +.text-danger { + color: #e65252 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #e02525 !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, a.text-light:focus { + color: #dae0e5 !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, a.text-dark:focus { + color: #1d2124 !important; +} + +.text-muted, .invoice-body .invoice-desc .desc-value { + color: #636c72 !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + + a:not(.btn):not(.all-wrapper .fc-button) { + text-decoration: underline; + } + + abbr[title]::after { + content: " (" attr(title) ")"; + } + + pre { + white-space: pre-wrap !important; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, + img { + page-break-inside: avoid; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + @page { + size: a3; + } + + body { + min-width: 992px !important; + } + + .container { + min-width: 992px !important; + } + + .navbar { + display: none; + } + + .badge { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + + .table td, + .table th { + background-color: #fff !important; + } + + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +/* 3b. Override bootstrap table styles */ +.table .user-with-avatar { + white-space: nowrap; +} + +.table .user-with-avatar img { + width: 30px; + height: 30px; + display: inline-block; + vertical-align: middle; + border-radius: 50px; +} + +.table .user-with-avatar span { + display: inline-block; + vertical-align: middle; +} + +.table .user-with-avatar img + span { + margin-left: 10px; +} + +.table .more { + background-color: #0066ff; + display: inline-block; + vertical-align: middle; + position: relative; + left: -8px; + padding: 2px 6px; + border-radius: 50px; + color: #fff; + font-size: 0.69rem; + letter-spacing: -0.04em; + font-family: "Arial", sans-serif; + font-weight: normal !important; +} + +.table th { + font-weight: 500; +} + +.table .smaller { + font-size: 0.72rem; +} + +.table .lighter { + color: rgba(90, 99, 126, 0.49); +} + +.table.table-editable td:hover { + background-color: #fff; + -webkit-box-shadow: inset 0px 0px 0px 2px #047bf8; + box-shadow: inset 0px 0px 0px 2px #047bf8; +} + +.table.table-lightborder td { + border-top-color: rgba(83, 101, 140, 0.08); +} + +.table.table-lightfont td { + font-weight: 300; +} + +.table.table-bordered thead th { + border-top: 1px solid rgba(83, 101, 140, 0.33); +} + +.table th, +.table td { + vertical-align: middle; +} + +.table th img, .table td img { + max-width: 100%; +} + +.table thead th { + border-bottom: 1px solid #999; +} + +.table tfoot th { + border-top: 1px solid #999; +} + +.table tfoot th, +.table thead th { + font-size: 0.75rem; +} + +.table th.nowrap { + white-space: nowrap; +} + +.table tbody + tbody { + border-top: 1px solid rgba(83, 101, 140, 0.33); +} + +.table td.nowrap { + white-space: nowrap; +} + +.table .row-actions { + text-align: center; +} + +.table .row-actions .os-icon { + font-size: 16px; +} + +.table .row-actions a { + margin-right: 0.8rem; + color: #3E4B5B; +} + +.table .row-actions a.danger { + color: #9d1818; +} + +.table .row-actions a:last-child { + margin-right: 0px; +} + +.table .cell-image-list { + position: relative; + display: inline-block; + white-space: nowrap; +} + +.table .cell-image-list .cell-img { + display: inline-block; + width: 30px; + height: 30px; + background-size: cover; + background-position: center center; + border-radius: 2px; + -webkit-box-shadow: 0px 0px 0px 2px #fff, 1px 1px 5px rgba(0, 0, 0, 0.8); + box-shadow: 0px 0px 0px 2px #fff, 1px 1px 5px rgba(0, 0, 0, 0.8); + vertical-align: middle; + -webkit-transition: all 0.1s ease; + transition: all 0.1s ease; + -webkit-transform: scale(1); + transform: scale(1); + position: relative; + cursor: pointer; +} + +.table .cell-image-list .cell-img:nth-child(1) { + z-index: 5; +} + +.table .cell-image-list .cell-img:nth-child(2) { + z-index: 4; +} + +.table .cell-image-list .cell-img:nth-child(3) { + z-index: 3; +} + +.table .cell-image-list .cell-img:nth-child(4) { + z-index: 2; +} + +.table .cell-image-list .cell-img:nth-child(5) { + z-index: 1; +} + +.table .cell-image-list .cell-img:hover { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +.table .cell-image-list .cell-img + .cell-img { + margin-left: -15px; +} + +.table .cell-image-list .cell-img + .cell-img:hover { + -webkit-transform: translateX(5px) scale(1.1); + transform: translateX(5px) scale(1.1); +} + +.table .cell-image-list .cell-img-more { + font-size: 0.63rem; + display: inline-block; + vertical-align: middle; + margin-left: 10px; + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + right: -70%; + background-color: #fff; + padding: 3px 5px; + border-radius: 4px; + z-index: 7; + white-space: nowrap; +} + +@media (min-width: 1100px) { + .table-responsive { + overflow: visible; + } +} + +.table-lg td { + padding: 1.2rem 1.5rem; +} + +.table.table-v2 thead tr th, .table.table-v2 tfoot tr th { + text-align: center; + border-top: 1px solid #999; + border-bottom: 1px solid #999; + background-color: rgba(0, 0, 0, 0.05); +} + +.table.table-v2 thead tr th:first-child, .table.table-v2 tfoot tr th:first-child { + border-left: 1px solid #999; +} + +.table.table-v2 thead tr th:last-child, .table.table-v2 tfoot tr th:last-child { + border-right: 1px solid #999; +} + +.table.table-v2 tbody tr td { + border-color: #d1d8e6; +} + +.controls-above-table { + margin-bottom: 1rem; +} + +.controls-above-table .btn, .controls-above-table .all-wrapper .fc-button, .all-wrapper .controls-above-table .fc-button { + /*margin-right: 0.5rem;*/ +} + +.controls-above-table .form-control { + /*margin-right: 1rem;*/ +} + +.controls-above-table .form-control:last-child { + margin-right: 0px; +} + +.controls-below-table { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + font-size: 0.81rem; + margin-top: 20px; +} + +.controls-below-table .table-records-info { + color: rgba(0, 0, 0, 0.5); +} + +.controls-below-table .table-records-pages ul { + list-style: none; +} + +.controls-below-table .table-records-pages ul li { + display: inline-block; + margin: 0px 10px; +} + +.controls-below-table .table-records-pages ul li a.current { + color: #3E4B5B; +} + +.all-wrapper table.dataTable { + border-collapse: collapse !important; +} + +.table.table-padded { + border-collapse: separate; + border-spacing: 0 5px; +} + +.table.table-padded thead tr th { + border: none; + font-size: 0.81rem; + color: rgba(90, 99, 126, 0.49); + letter-spacing: 1px; + padding: 0.3rem 1.1rem; +} + +.table.table-padded tbody tr { + border-radius: 4px; + -webkit-transition: all 0.1s ease; + transition: all 0.1s ease; +} + +.table.table-padded tbody tr:hover { + -webkit-box-shadow: 0px 2px 5px rgba(69, 101, 173, 0.1); + box-shadow: 0px 2px 5px rgba(69, 101, 173, 0.1); + -webkit-transform: translateY(-1px) scale(1.01); + transform: translateY(-1px) scale(1.01); +} + +.table.table-padded tbody td { + padding: 0.9rem 1.1rem; + background-color: #fff; + border: none; + border-right: 1px solid rgba(0, 0, 0, 0.03); +} + +.table.table-padded tbody td.bolder { + font-weight: 500; + font-size: 0.99rem; +} + +.table.table-padded tbody td img { + display: inline-block; + vertical-align: middle; +} + +.table.table-padded tbody td img + span { + display: inline-block; + margin-left: 10px; + vertical-align: middle; +} + +.table.table-padded tbody td span + span { + margin-left: 5px; +} + +.table.table-padded tbody td .status-pill + span { + margin-left: 2px; +} + +.table.table-padded tbody td:first-child { + border-radius: 4px 0px 0px 4px; +} + +.table.table-padded tbody td:last-child { + border-radius: 0px 4px 4px 0px; + border-right: none; +} + +.element-box .table:last-child, .invoice-w .table:last-child, .big-error-w .table:last-child { + margin-bottom: 0; +} + +/* 3c. Override bootstrap form styles */ +label { + margin-bottom: 4px; +} + +button, input, optgroup, select, textarea { + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-weight: 400; +} + +select.form-control { + -webkit-appearance: none; + -moz-appearance: none; + padding-right: 20px; + padding-left: 15px; + background-position: right 5px top 50%; + background-repeat: no-repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDZFNDEwNjlGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDZFNDEwNkFGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NkU0MTA2N0Y3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NkU0MTA2OEY3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuGsgwQAAAA5SURBVHjaYvz//z8DOYCJgUxAf42MQIzTk0D/M+KzkRGPoQSdykiKJrBGpOhgJFYTWNEIiEeAAAMAzNENEOH+do8AAAAASUVORK5CYII=); +} + +.form-control.rounded { + border-radius: 30px !important; +} + +select.form-control.rounded { + -webkit-appearance: none; + -moz-appearance: none; + padding-right: 20px; + padding-left: 15px; + background-position: right 5px top 50%; + background-repeat: no-repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDZFNDEwNjlGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDZFNDEwNkFGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NkU0MTA2N0Y3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NkU0MTA2OEY3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuGsgwQAAAA5SURBVHjaYvz//z8DOYCJgUxAf42MQIzTk0D/M+KzkRGPoQSdykiKJrBGpOhgJFYTWNEIiEeAAAMAzNENEOH+do8AAAAASUVORK5CYII=); +} + +.form-text { + font-size: 0.81rem; +} + +.form-text.with-errors { + color: #e65252; +} + +.has-danger .form-control-feedback.text-muted, .has-danger .invoice-body .invoice-desc .form-control-feedback.desc-value, .invoice-body .invoice-desc .has-danger .form-control-feedback.desc-value { + color: #e65252 !important; + font-weight: 400; +} + +.has-danger .form-control { + border-color: #e65252; +} + +.form-control { + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; +} + +.form-control.bright { + border-color: #e2e4ef; +} + +.form-control[type="checkbox"] { + width: auto; + display: inline-block; +} + +.form-group .date-input { + position: relative; +} + +.form-group .date-input:before { + content: "\e972"; + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: 15px; + color: #047bf8; + position: absolute; + top: 50%; + left: 10px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.form-group .date-input .form-control { + padding-left: 35px; +} + +.form-control::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.4); +} + +.form-control:-ms-input-placeholder { + color: rgba(0, 0, 0, 0.4); +} + +.form-control::-ms-input-placeholder { + color: rgba(0, 0, 0, 0.4); +} + +.form-control::placeholder { + color: rgba(0, 0, 0, 0.4); +} + +.form-check-input { + margin-right: 0.5rem; +} + +.form-check.stick-right span { + margin-right: 5px; +} + +.form-buttons-w { + margin-top: 1rem; + margin-bottom: 1rem; + padding-top: 1rem; + border-top: 1px solid rgba(0, 0, 0, 0.1); + +} + +.form-buttons-w.compact { + margin-top: 0.5rem; +} + +.form-buttons-w .btn + .btn, .form-buttons-w .all-wrapper .fc-button + .btn, .all-wrapper .form-buttons-w .fc-button + .btn, .form-buttons-w .all-wrapper .btn + .fc-button, .all-wrapper .form-buttons-w .btn + .fc-button, .form-buttons-w .all-wrapper .fc-button + .fc-button, .all-wrapper .form-buttons-w .fc-button + .fc-button { + margin-left: 2px; +} + +.form-buttons-w2 { + margin-top: 1.1rem; + text-align: center; +} + +.form-buttons-w2 button { + margin-left: 3px; + +} + +label.bigger { + font-size: 1.08rem; + margin-bottom: 1rem; + margin-top: 1rem; +} + +label.lighter { + color: rgba(90, 99, 126, 0.49); +} + +fieldset { + margin-top: 2rem; +} + +legend { + font-size: 0.99rem; + display: block; + margin-bottom: 1.5rem; + position: relative; + color: #047bf8; +} + +legend span { + padding: 0px 0.5rem 0 0; + background-color: #fff; + display: inline-block; + z-index: 2; + position: relative; +} + +legend:before { + content: ""; + position: absolute; + left: 0px; + right: 0px; + height: 1px; + top: 50%; + background-color: rgba(0, 0, 0, 0.1); + z-index: 1; +} + +.form-header { + margin-bottom: 1rem; + padding-top: 0.5rem; + display: block; +} + +.form-desc { + color: #999; + margin-bottom: 1.5rem; + font-weight: 300; + font-size: 0.9rem; + padding-bottom: 1rem; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + display: block; +} + +.os-toggler-w { + display: inline-block; + margin-right: 10px; +} + +.os-toggler-w .os-toggler-i { + border-radius: 20px; + background-color: rgba(255, 255, 255, 0.2); + height: 20px; + width: 35px; + position: relative; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.os-toggler-w .os-toggler-i .os-toggler-pill { + background-color: #fff; + width: 14px; + height: 14px; + border-radius: 50%; + position: absolute; + top: 50%; + left: 3px; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.os-toggler-w.on .os-toggler-i { + background-color: #E1E6F2; +} + +.os-toggler-w.on .os-toggler-i .os-toggler-pill { + -webkit-transform: translate(15px, -50%); + transform: translate(15px, -50%); + background-color: #047bf8; +} + +/* 3d. Override bootstrap navigation styles */ +.nav.smaller { + font-size: 0.72rem; +} + +.nav.smaller.nav-tabs .nav-link { + padding: 0.7em 1.1em; +} + +.nav.smaller.nav-pills .nav-link { + padding: 0.7em 1em; +} + +.nav.bigger { + font-size: 1.25rem; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-weight: 500; +} + +.nav.bigger.nav-tabs .nav-link.active:after, +.nav.bigger.nav-tabs .nav-item.show .nav-link:after { + height: 6px; + bottom: -3px; + border-radius: 2px; +} + +.nav.bigger.nav-tabs .nav-link { + padding-left: 0px; + padding-right: 0px; + margin-right: 2rem; +} + +.nav.upper { + font-size: 0.9rem; + font-weight: 600; + + letter-spacing: 0px; +} + +.nav.upper.nav-tabs .nav-link.active:after, +.nav.upper.nav-tabs .nav-item.show .nav-link:after { + height: 3px; + bottom: -2px; + border-radius: 2px; +} + +.nav.upper.nav-tabs .nav-link { + padding-left: 0px; + padding-right: 0px; + padding-bottom: 15px; + margin-right: 2rem; +} + +.nav.upper.centered.nav-tabs .nav-link { + padding-left: 0px; + padding-right: 0px; + padding-bottom: 15px; + margin-left: 1rem; + margin-right: 1rem; +} + +.nav.upper.centered.nav-tabs .nav-item { + margin-right: 0px; +} + +.nav.centered { + text-align: center; + -ms-flex-pack: distribute; + justify-content: space-around; +} + +.nav-link i { + display: inline-block; + color: #b0c4f3; + font-size: 26px; + margin-bottom: 5px; +} + +.nav-link span { + display: block; + font-size: 0.72rem; +} + +.nav-link.active i { + color: #047bf8; +} + +.nav-tabs .nav-item { + margin-bottom: 0px; + margin-right: 0.5rem; +} + +.nav-tabs .nav-link { + border: none; + color: rgba(0, 0, 0, 0.6); +} + +.nav-tabs .nav-link.disabled { + color: #636c72; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link, +.nav-tabs .nav-item .nav-link { + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + position: relative; +} + +.nav-tabs .nav-link:after, +.nav-tabs .nav-item .nav-link:after { + content: ""; + width: 0%; + height: 3px; + background-color: #047bf8; + position: absolute; + bottom: -2px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link, +.nav-tabs .nav-link:hover, +.nav-tabs .nav-item:hover .nav-link { + color: #047bf8; + background-color: transparent; + border-color: #dee2e6 #dee2e6 transparent; + position: relative; +} + +.nav-tabs .nav-link.active:after, +.nav-tabs .nav-item.show .nav-link:after, +.nav-tabs .nav-link:hover:after, +.nav-tabs .nav-item:hover .nav-link:after { + width: 100%; +} + +.nav-pills .nav-link { + border-radius: 2px; + color: rgba(0, 0, 0, 0.6); + margin-right: 4px; +} + +.nav-pills .nav-item { + width: 33.3%; + text-align: center; +} + +.nav-pills .nav-link.active, +.nav-pills .nav-item.show .nav-link { + color: #fff; + cursor: default; + background-color: #047bf8; + font-weight: bold; +} + +/* 3e. Override bootstrap button styles */ +.toggled-buttons .btn-toggled { + border: 2px solid #047bf8; + border: 2px solid transparent; + border-radius: 6px; + text-transform: uppercase; + letter-spacing: 2px; + font-weight: 500; + font-size: 0.72rem; + padding: 4px 8px; + color: rgba(0, 0, 0, 0.3); + margin: 5px 0px; +} + +.toggled-buttons .btn-toggled.on, .toggled-buttons .btn-toggled:hover { + border-color: #047bf8; + color: #047bf8; +} + +.toggled-buttons .btn-toggled + .btn-toggled { + margin-left: 10px; +} + +.toggled-buttons.solid .btn-toggled { + background-color: rgba(0, 0, 0, 0.07); + color: rgba(0, 0, 0, 0.6); + font-size: 0.81rem; +} + +.toggled-buttons.solid .btn-toggled.on, .toggled-buttons.solid .btn-toggled:hover { + background-color: #047bf8; + color: #fff; +} + +.btn-sm, .btn-group-sm > .btn, .all-wrapper .btn-group-sm > .fc-button { + padding: 0.25rem 0.5rem; + font-size: 0.675rem; + line-height: 1.5; + border-radius: 2px; +} + +.btn-white, .all-wrapper .fc-button { + color: #292b2c; + background-color: #fff; + border-color: #fff; +} + +.btn-white:hover, .all-wrapper .fc-button:hover { + color: #292b2c; + background-color: #ececec; + border-color: #e6e5e5; +} + +.btn-white:focus, .all-wrapper .fc-button:focus, .btn-white.focus, .all-wrapper .focus.fc-button { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); +} + +.btn-white.disabled, .all-wrapper .disabled.fc-button, .btn-white:disabled, .all-wrapper .fc-button:disabled { + color: #292b2c; + background-color: #fff; + border-color: #fff; +} + +.btn-white:not(:disabled):not(.disabled):active, .all-wrapper .fc-button:not(:disabled):not(.disabled):active, .btn-white:not(:disabled):not(.disabled).active, .all-wrapper .fc-button:not(:disabled):not(.disabled).active, +.show > .btn-white.dropdown-toggle, .all-wrapper +.show > .dropdown-toggle.fc-button { + color: #292b2c; + background-color: #e6e5e5; + border-color: #dfdfdf; +} + +.btn-white:not(:disabled):not(.disabled):active:focus, .all-wrapper .fc-button:not(:disabled):not(.disabled):active:focus, .btn-white:not(:disabled):not(.disabled).active:focus, .all-wrapper .fc-button:not(:disabled):not(.disabled).active:focus, +.show > .btn-white.dropdown-toggle:focus, .all-wrapper +.show > .dropdown-toggle.fc-button:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); +} + +.btn-grey { + color: #666; + background-color: #E5E6EB; + border-color: #E5E6EB; +} + +.btn-grey:hover { + color: #292b2c; + background-color: #cfd1da; + border-color: #c8cad5; +} + +.btn-grey:focus, .btn-grey.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(229, 230, 235, 0.5); + box-shadow: 0 0 0 0.2rem rgba(229, 230, 235, 0.5); +} + +.btn-grey.disabled, .btn-grey:disabled { + color: #292b2c; + background-color: #E5E6EB; + border-color: #E5E6EB; +} + +.btn-grey:not(:disabled):not(.disabled):active, .btn-grey:not(:disabled):not(.disabled).active, +.show > .btn-grey.dropdown-toggle { + color: #292b2c; + background-color: #c8cad5; + border-color: #c1c3cf; +} + +.btn-grey:not(:disabled):not(.disabled):active:focus, .btn-grey:not(:disabled):not(.disabled).active:focus, +.show > .btn-grey.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(229, 230, 235, 0.5); + box-shadow: 0 0 0 0.2rem rgba(229, 230, 235, 0.5); +} + +.btn-white-gold { + color: #292b2c; + background-color: #fff; + border-color: #fff; + color: #CF8D0D; +} + +.btn-white-gold:hover { + color: #292b2c; + background-color: #ececec; + border-color: #e6e5e5; +} + +.btn-white-gold:focus, .btn-white-gold.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); +} + +.btn-white-gold.disabled, .btn-white-gold:disabled { + color: #292b2c; + background-color: #fff; + border-color: #fff; +} + +.btn-white-gold:not(:disabled):not(.disabled):active, .btn-white-gold:not(:disabled):not(.disabled).active, +.show > .btn-white-gold.dropdown-toggle { + color: #292b2c; + background-color: #e6e5e5; + border-color: #dfdfdf; +} + +.btn-white-gold:not(:disabled):not(.disabled):active:focus, .btn-white-gold:not(:disabled):not(.disabled).active:focus, +.show > .btn-white-gold.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); +} + +.btn-teal { + color: #292b2c; + background-color: #fff; + border-color: #31C37F; +} + +.btn-teal:hover { + color: #fff; + background-color: transparent; + border-color: #279a64; +} + +.btn-teal:focus, .btn-teal.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(49, 195, 127, 0.5); + box-shadow: 0 0 0 0.2rem rgba(49, 195, 127, 0.5); +} + +.btn-teal.disabled, .btn-teal:disabled { + color: #292b2c; + background-color: #fff; + border-color: #31C37F; +} + +.btn-teal:not(:disabled):not(.disabled):active, .btn-teal:not(:disabled):not(.disabled).active, +.show > .btn-teal.dropdown-toggle { + color: #292b2c; + background-color: #e6e5e5; + border-color: #24905e; +} + +.btn-teal:not(:disabled):not(.disabled):active:focus, .btn-teal:not(:disabled):not(.disabled).active:focus, +.show > .btn-teal.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(49, 195, 127, 0.5); + box-shadow: 0 0 0 0.2rem rgba(49, 195, 127, 0.5); +} + +.btn-link.btn-danger { + color: #e65252; +} + +.btn, .all-wrapper .fc-button { + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-weight: 400; + outline: none; + line-height: 1; +} + +.btn.btn-secondary:focus, .all-wrapper .btn-secondary.fc-button:focus, .btn.btn-secondary.focus, .all-wrapper .btn-secondary.focus.fc-button { + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn .os-icon, .all-wrapper .fc-button .os-icon { + font-size: 0.9rem; + display: inline-block; + vertical-align: middle; +} + +.btn .os-icon + span, .all-wrapper .fc-button .os-icon + span { + margin-left: 10px; + display: inline-block; + vertical-align: middle; +} + +.btn span + .os-icon, .all-wrapper .fc-button span + .os-icon { + display: inline-block; + vertical-align: middle; + margin-left: 10px; +} + +.btn.btn-sm .os-icon, .btn-group-sm > .btn .os-icon, .all-wrapper .btn-group-sm > .fc-button .os-icon, .all-wrapper .btn-sm.fc-button .os-icon { + font-size: 14px; +} + +.btn.btn-sm .os-icon + span, .btn-group-sm > .btn .os-icon + span, .all-wrapper .btn-group-sm > .fc-button .os-icon + span, .all-wrapper .btn-sm.fc-button .os-icon + span { + margin-left: 0.5rem; +} + +.btn.btn-sm span + .os-icon, .btn-group-sm > .btn span + .os-icon, .all-wrapper .btn-group-sm > .fc-button span + .os-icon, .all-wrapper .btn-sm.fc-button span + .os-icon { + margin-left: 0.5rem; +} + +.btn.btn-rounded, .all-wrapper .btn-rounded.fc-button { + border-radius: 40px; +} + +.btn.btn-upper, .all-wrapper .btn-upper.fc-button { + text-transform: uppercase; + letter-spacing: 1px; +} + +.btn.btn-underlined, .all-wrapper .btn-underlined.fc-button { + background-color: transparent; + padding-left: 0px; + padding-right: 0px; + text-decoration: none; +} + +.btn.btn-underlined span, .all-wrapper .btn-underlined.fc-button span { + border-bottom: 2px solid #047bf8; +} + +.btn.btn-underlined i, .all-wrapper .btn-underlined.fc-button i { + font-size: 0.63rem; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.btn.btn-underlined:hover, .all-wrapper .btn-underlined.fc-button:hover { + color: #0362c6; +} + +.btn.btn-underlined:hover span, .all-wrapper .btn-underlined.fc-button:hover span { + border-color: #0362c6; +} + +.btn.btn-underlined:hover i, .all-wrapper .btn-underlined.fc-button:hover i { + -webkit-transform: translateX(5px); + transform: translateX(5px); +} + +.btn.btn-underlined.btn-gold, .all-wrapper .btn-underlined.btn-gold.fc-button { + color: #BE8B1C; +} + +.btn.btn-underlined.btn-gold span, .all-wrapper .btn-underlined.btn-gold.fc-button span { + border-color: #BE8B1C; +} + +.btn.btn-underlined.btn-gold:hover, .all-wrapper .btn-underlined.btn-gold.fc-button:hover { + color: #926a15; +} + +.btn.btn-underlined.btn-gold:hover span, .all-wrapper .btn-underlined.btn-gold.fc-button:hover span { + border-color: #926a15; +} + +/* 3f. Override bootstrap breadcrumbs styles */ +.breadcrumb { + list-style: none; + margin: 0px; + padding: 10px 30px 10px 30px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + background-color: transparent; + letter-spacing: 0.7px; +} + +.breadcrumb li { + margin-bottom: 0px; + display: inline-block; + text-transform: uppercase; + font-size: 0.585rem; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; +} + +.breadcrumb li a { + color: #3E4B5B; +} + +.breadcrumb li span { + color: rgba(0, 0, 0, 0.4); +} + +.breadcrumbs + .content-box { + padding-top: 0px; +} + +/* 3g. Override bootstrap typography styles */ +.text-muted, .invoice-body .invoice-desc .desc-value { + font-weight: 300; +} + +/* 3h. Override bootstrap modal styles */ +.modal-content { + -webkit-box-shadow: 0 25px 65px rgba(4, 111, 223, 0.5); + box-shadow: 0 25px 65px rgba(4, 111, 223, 0.5); +} + +.modal-footer.buttons-on-left { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.modal-header.faded { + background-color: rgba(0, 0, 0, 0.05); +} + +.modal-header.smaller { + font-size: 0.99rem; +} + +.modal-header span, .modal-header strong, .modal-header .avatar { + display: inline-block; + vertical-align: middle; +} + +.modal-header span { + color: #999; + margin-right: 5px; +} + +.modal-header .avatar { + border-radius: 50%; + width: 40px; + height: auto; +} + +.modal-header .avatar + span { + border-left: 1px solid rgba(0, 0, 0, 0.1); + padding-left: 15px; + margin-left: 15px; +} + +/* 3h. Override bootstrap popover styles */ +.popover { + font-size: 0.99rem; + -webkit-box-shadow: 0 5px 50px rgba(4, 123, 248, 0.3); + box-shadow: 0 5px 50px rgba(4, 123, 248, 0.3); +} + +.popover-header { + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.9rem; + color: #fff; +} + +/* 3i. Override bootstrap alerts styles */ +.alert { + font-weight: 300; +} + +.alert p:last-child { + margin-bottom: 0px; +} + +.alert.alert-warning .alert-heading { + color: #3E3221; +} + +.alert.borderless { + border: none; +} + +.alert.compact { + padding: 15px 20px; + font-size: 0.72rem; +} + +/* 3i. Override bootstrap badges styles */ +.badge { + font-size: 0.75rem; +} + +.badge-default-inverted { + background-color: #b4bbc3; + border: 1px solid #101112; + color: #040404; + font-weight: 300; +} + +/*.badge-default-inverted[href]:hover, .badge-default-inverted[href]:focus { + background-color: #98a2ac; + border: 1px solid black; + color: #040404; + font-weight: 300; +}*/ + +.badge-primary-inverted { + background-color: #cce4ff; + border: 1px solid #0362c6; + color: #0356ad; + font-weight: 300; +} + +/*.badge-primary-inverted[href]:hover, .badge-primary-inverted[href]:focus { + background-color: #99caff; + border: 1px solid #024994; + color: #0356ad; + font-weight: 300; +}*/ + +.badge-success-inverted { + background-color: #d6f0c0; + border: 1px solid #46850f; + color: #3a6e0c; + font-weight: 300; +} + +/*.badge-success-inverted[href]:hover, .badge-success-inverted[href]:focus { + background-color: #bce697; + border: 1px solid #2e570a; + color: #3a6e0c; + font-weight: 300; +}*/ + +.badge-info-inverted { + background-color: #ecf9fd; + border: 1px solid #31b0d5; + color: #28a1c5; + font-weight: 300; +} + +/*.badge-info-inverted[href]:hover, .badge-info-inverted[href]:focus { + background-color: #bfeaf7; + border: 1px solid #2390b0; + color: #28a1c5; + font-weight: 300; +}*/ + +.badge-warning-inverted { + background-color: white; + border: 1px solid #f9d66f; + color: #f8cf57; + font-weight: 300; +} + +/*.badge-warning-inverted[href]:hover, .badge-warning-inverted[href]:focus { + background-color: #fff9e8; + border: 1px solid #f7c83e; + color: #f8cf57; + font-weight: 300; +}*/ + +.badge-danger-inverted { + background-color: #fdebeb; + border: 1px solid #e02525; + color: #ce1e1e; + font-weight: 300; +} + +/*.badge-danger-inverted[href]:hover, .badge-danger-inverted[href]:focus { + background-color: #fabcbc; + border: 1px solid #b71b1b; + color: #ce1e1e; + font-weight: 300; +}*/ + +/* 4. Overrides for various plugins that are included with this template */ +/* STAR RATING */ +.br-theme-osadmin .br-widget { + height: 28px; + white-space: nowrap; +} + +.br-theme-osadmin .br-widget a { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-decoration: none; + margin-right: 2px; +} + +.br-theme-osadmin .br-widget a:after { + content: '\e970'; + color: #d2d2d2; +} + +.br-theme-osadmin .br-widget a.br-active:after { + color: #EDB867; +} + +.br-theme-osadmin .br-widget a.br-selected:after { + color: #EDB867; +} + +.br-theme-osadmin .br-widget .br-current-rating { + display: none; +} + +.br-theme-osadmin .br-readonly a { + cursor: default; +} + +@media print { + .br-theme-osadmin .br-widget a:after { + content: '\f006'; + color: black; + } + + .br-theme-osadmin .br-widget a.br-active:after, + .br-theme-osadmin .br-widget a.br-selected:after { + content: '\e970'; + color: black; + } +} + +/* ION RANGE SLIDER */ +.irs-line-mid, +.irs-line-left, +.irs-line-right, +.irs-bar, +.irs-bar-edge, +.irs-slider { + background-color: #dddddd; +} + +.irs { + height: 40px; +} + +.irs-with-grid { + height: 60px; +} + +.irs-line { + height: 5px; + top: 25px; + border-radius: 2px; +} + +.irs-line-left { + height: 12px; +} + +.irs-line-mid { + height: 12px; +} + +.irs-line-right { + height: 12px; +} + +.irs-bar { + height: 5px; + top: 25px; + background-color: #98c9fd; +} + +.irs-bar-edge { + top: 25px; + height: 12px; + width: 9px; +} + +.irs-shadow { + height: 3px; + top: 34px; + background: #000; + opacity: 0.25; +} + +.lt-ie9 .irs-shadow { + filter: alpha(opacity=25); +} + +.irs-slider { + width: 11px; + height: 11px; + top: 22px; + background-color: #047bf8; + -webkit-box-shadow: 0px 0px 0px 2px #fff; + box-shadow: 0px 0px 0px 2px #fff; + border-radius: 20px; + cursor: pointer; +} + +.irs-slider:hover { + background-color: #024994; +} + +.irs-min, .irs-max { + color: #999; + font-size: 10px; + line-height: 1.333; + text-shadow: none; + top: 0; + padding: 1px 3px; + background: #e1e4e9; + border-radius: 4px; +} + +.irs-from, .irs-to, .irs-single { + color: #fff; + font-size: 10px; + line-height: 1.333; + text-shadow: none; + padding: 1px 5px; + background: #ed5565; + border-radius: 4px; +} + +.irs-from:after, .irs-to:after, .irs-single:after { + position: absolute; + display: block; + content: ""; + bottom: -6px; + left: 50%; + width: 0; + height: 0; + margin-left: -3px; + overflow: hidden; + border: 3px solid transparent; + border-top-color: #ed5565; +} + +.irs-grid-pol { + background: #e1e4e9; +} + +.irs-grid-text { + color: #999; +} + +/* DROPZONE */ +.dropzone { + border: 2px dashed #047bf8; + border-radius: 6px; +} + +/* SELECT 2 */ +.select2-container--default .select2-selection--single, +.select2-container--default .select2-selection--multiple { + border-color: #dde2ec; + border-width: 2px; +} + +.select2-selection__choicediv { + margin-top: 10px; +} + +.select2-selection__choice2 { + background-color: #f2f5fd; + border: 1px solid #c0cdeb; + border-radius: 4px; + font-size: 0.66rem; + letter-spacing: -0.02em; + padding: 3px 3px; + color: #047bf8; + margin-right: 4px; + margin-bottom: 4px; + display: inline-block; +} + +.select2-selection__choice2__remove { + color: #474a50; + margin-right: 3px; + cursor: pointer; + font-size: 0.79rem; + text-align: right; +} + +.select3-selection__choicediv { + /*margin-top:10px;*/ +} + +.select3-selection__choice { + background-color: #fff; + border: 1px solid #0066ff; + border-radius: 4px; + font-size: 0.66rem; + letter-spacing: -0.01em; + padding: 3px 8px; + color: #0066ff; + margin-right: 4px; + margin-bottom: 4px; + display: inline-block; +} + +.select3-selection__choice .avatar-w { + width: 20px; + height: 20px; + border-radius: 100px; + overflow: hidden; +} + +.select3-selection__choice .avatar-w img { + width: 20px; + height: 20px; + border-radius: 100px; +} + +.select3-selection__choice__remove { + color: #0066ff; + margin-left: 4px; + cursor: pointer; + font-size: 0.79rem; +} + +.select4-selection__choice { + font-size: 0.66rem; + letter-spacing: -0.01em; + line-height: 1.5; + margin-right: 4px; + display: inline-block; +} + +.select4-selection__choice .avatar-w { + width: 20px; + height: 20px; + border-radius: 100px; + overflow: hidden; +} + +.select4-selection__choice .avatar-w img { + width: 20px; + height: 20px; + border-radius: 100px; +} + +.select2-container--default .select2-results__option[aria-selected=true] { + background-color: #047bf8; + color: #fff; +} + +.select2-container--default.select2-container--focus .select2-selection--multiple { + border-width: 2px; + border-color: #047bf8; +} + +.select2-dropdown { + border-width: 2px; + border-color: #047bf8; +} + +.form-control { + font-weight: 300; +} + +.select2 { + font-weight: 300; +} + +/* DATERANGEPICKER */ +body .daterangepicker { + -webkit-box-shadow: 3px 25px 50px rgba(77, 76, 132, 0.34); + box-shadow: 3px 25px 50px rgba(77, 76, 132, 0.34); + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + border: none; + padding: 15px; + min-width: 540px; +} + +@media screen and (max-width: 767px) { + body .daterangepicker { + min-width: 300px; + } +} + + +body .daterangepicker::after { + display: block; + clear: both; + content: ""; +} + +body .daterangepicker .calendar { + float: left; + max-width: 300px; + margin: 10px; +} + +body .daterangepicker .calendar td { + cursor: pointer; +} + +body .daterangepicker .calendar td:hover { + background-color: #1a88fb; + color: #fff; +} + +body .daterangepicker .calendar td.in-range { + background-color: #1a88fb; + color: #fff; + border-color: #fff; +} + +body .daterangepicker .calendar td.active, body .daterangepicker .calendar td.active:hover { + background-color: #046fdf; + color: #fff; + border-color: #fff; +} + +body .daterangepicker .ranges { + clear: left; + padding: 5px 10px; +} + +body .daterangepicker .ranges .btn, body .daterangepicker .ranges .all-wrapper .fc-button, .all-wrapper body .daterangepicker .ranges .fc-button { + padding: 5px 10px; + line-height: 1; + vertical-align: middle; + text-transform: none; + font-size: 0.81rem; +} + +body .daterangepicker th { + font-weight: 500; + text-align: center; + padding: 5px 0px; + font-size: 0.72rem; +} + +body .daterangepicker th.prev { + text-align: left; + cursor: pointer; +} + +body .daterangepicker th.next { + text-align: right; + cursor: pointer; +} + +/*body .daterangepicker:before { +border-bottom-color: #3E4B5B; +}*/ + +body .daterangepicker .calendar td { + font-weight: 300; + font-size: 0.81rem; + text-align: right; + font-size: 0.81rem; + padding: 5px 8px; + border: 1px solid #eee; +} + +body .daterangepicker .calendar th.month { + color: #047bf8; +} + +body .daterangepicker .calendar-table { + padding-top: 10px; +} + +body .daterangepicker thead tr:first-child th { + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + padding-bottom: 5px; +} + +body .daterangepicker thead tr:first-child + tr th { + padding-top: 10px; +} + +body .daterangepicker .daterangepicker_input { + position: relative; +} + +body .daterangepicker .daterangepicker_input input { + width: 100%; + display: block; + padding-left: 35px; +} + +/*body .daterangepicker .daterangepicker_input i { + left: 10px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 18px; + position: absolute; +} + +body .daterangepicker .fa.fa-calendar.glyphicon.glyphicon-calendar:before { + + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\e926"; +} + +body .daterangepicker .fa.fa-chevron-left.glyphicon.glyphicon-chevron-left:before { + + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\e919"; + font-size: 10px; +} + +body .daterangepicker .fa.fa-chevron-right.glyphicon.glyphicon-chevron-right:before { + + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\e910"; + font-size: 10px; +}*/ + +/* DATATABLES */ +.dataTables_length select { + display: inline-block; + width: 50px; + margin: 0px 5px; + vertical-align: middle; +} + +.dataTables_filter input { + display: inline-block; + width: 130px; + margin: 0px 5px; + vertical-align: middle; +} + +.dataTables_wrapper .row:first-child { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + margin-bottom: 1rem; + margin-top: 1rem; + padding-bottom: 0.5rem; +} + +.dataTables_wrapper .row:last-child { + border-top: 1px solid rgba(0, 0, 0, 0.1); + margin-top: 1rem; + margin-bottom: 1rem; + padding-top: 0.5rem; +} + +/* CALENDAR */ +.fc-header { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.fc-header td { + padding: 10px 0px; +} + +.fc-header h2 { + text-transform: uppercase; + font-size: 18px; +} + +.fc-content { + color: #fff; +} + +.fc-event { + background-color: #3584ff; + -webkit-box-shadow: 5px 5px 10px 0px #bdd4ff; + box-shadow: 5px 5px 10px 0px #bdd4ff; + border: none; + padding: 6px; + padding-left: 9px; + color: #fff; + border-radius: 4px; +} + +.fc-day-number { + color: #6B6862; +} + +.fc-day-header { + font-weight: 300; + color: #6B6862; + text-transform: uppercase; + font-size: 12px; +} + +.fc-other-month { + background-color: #eee; +} + +.all-wrapper .fc-button { + padding: 5px 10px; + height: auto; + margin: 0px 5px; + background-image: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.all-wrapper .fc-button.fc-state-active { + outline: none; + text-shadow: none; +} + +/* Datatables for Bootstrap 4 */ +table.dataTable { + clear: both; + margin-top: 6px !important; + margin-bottom: 6px !important; + max-width: none !important; + border-collapse: separate !important; +} + +table.dataTable td, table.dataTable th { + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +table.dataTable td.dataTables_empty, table.dataTable th.dataTables_empty { + text-align: center; +} + +table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; +} + +div.dataTables_length label { + font-weight: normal; + text-align: left; + white-space: nowrap; +} + +div.dataTables_length select { + width: 75px; + display: inline-block; +} + +div.dataTables_wrapper div.dataTables_filter { + text-align: right; +} + +div.dataTables_wrapper div.dataTables_filter label { + font-weight: normal; + white-space: nowrap; + text-align: left; +} + +div.dataTables_wrapper div.dataTables_filter input { + margin-left: 0.5em; + display: inline-block; + width: auto; +} + +div.dataTables_wrapper div.dataTables_info { + padding-top: 0.85em; + white-space: nowrap; +} + +div.dataTables_wrapper div.dataTables_paginate { + margin: 0; + white-space: nowrap; + text-align: right; +} + +div.dataTables_wrapper div.dataTables_paginate ul.pagination { + margin: 2px 0; + white-space: nowrap; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +div.dataTables_wrapper div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + margin-top: -26px; + text-align: center; + padding: 1em 0; +} + +table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > td.sorting_asc, table.dataTable thead > tr > td.sorting_desc, table.dataTable thead > tr > td.sorting { + padding-right: 30px; +} + +table.dataTable thead > tr > th:active, table.dataTable thead > tr > td:active { + outline: none; +} + +table.dataTable thead .sorting, table.dataTable thead .sorting_asc, table.dataTable thead .sorting_desc, table.dataTable thead .sorting_asc_disabled, table.dataTable thead .sorting_desc_disabled { + cursor: pointer; + position: relative; +} + +table.dataTable thead .sorting:before, table.dataTable thead .sorting:after, table.dataTable thead .sorting_asc:before, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc:before, table.dataTable thead .sorting_desc:after, table.dataTable thead .sorting_asc_disabled:before, table.dataTable thead .sorting_asc_disabled:after, table.dataTable thead .sorting_desc_disabled:before, table.dataTable thead .sorting_desc_disabled:after { + position: absolute; + bottom: 0.9em; + display: block; + opacity: 0.3; +} + +table.dataTable thead .sorting:before, table.dataTable thead .sorting_asc:before, table.dataTable thead .sorting_desc:before, table.dataTable thead .sorting_asc_disabled:before, table.dataTable thead .sorting_desc_disabled:before { + right: 1em; + content: "\2191"; +} + +table.dataTable thead .sorting:after, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc:after, table.dataTable thead .sorting_asc_disabled:after, table.dataTable thead .sorting_desc_disabled:after { + right: 0.5em; + content: "\2193"; +} + +table.dataTable thead .sorting_asc:before, table.dataTable thead .sorting_desc:after { + opacity: 1; +} + +table.dataTable thead .sorting_asc_disabled:before, table.dataTable thead .sorting_desc_disabled:after { + opacity: 0; +} + +div.dataTables_scrollHead table.dataTable { + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody table { + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody table thead .sorting:after, div.dataTables_scrollBody table thead .sorting_asc:after, div.dataTables_scrollBody table thead .sorting_desc:after { + display: none; +} + +div.dataTables_scrollBody table tbody tr:first-child th, div.dataTables_scrollBody table tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + margin-top: 0 !important; + border-top: none; +} + +@media screen and (max-width: 767px) { + div.dataTables_wrapper div.dataTables_length, div.dataTables_wrapper div.dataTables_filter, div.dataTables_wrapper div.dataTables_info, div.dataTables_wrapper div.dataTables_paginate { + text-align: center; + } +} + +table.dataTable.table-condensed > thead > tr > th { + padding-right: 20px; +} + +table.dataTable.table-condensed .sorting:after, table.dataTable.table-condensed .sorting_asc:after, table.dataTable.table-condensed .sorting_desc:after { + top: 6px; + right: 6px; +} + +table.table-bordered.dataTable th, table.table-bordered.dataTable td { + border-left-width: 0; +} + +table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable td:last-child, table.table-bordered.dataTable td:last-child { + border-right-width: 0; +} + +table.table-bordered.dataTable tbody th, table.table-bordered.dataTable tbody td { + border-bottom-width: 0; +} + +div.dataTables_scrollHead table.table-bordered { + border-bottom-width: 0; +} + +div.table-responsive > div.dataTables_wrapper > div.row { + margin: 0; +} + +div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child { + padding-left: 0; +} + +div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { + padding-right: 0; +} + +/* 5. Handy Animations */ +@-webkit-keyframes fadeLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(50px); + transform: translateX(50px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px); + transform: translateX(0px); + } +} + +@keyframes fadeLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(50px); + transform: translateX(50px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px); + transform: translateX(0px); + } +} + +@-webkit-keyframes fadeRight { + 0% { + opacity: 0; + -webkit-transform: translateX(-50px); + transform: translateX(-50px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px); + transform: translateX(0px); + } +} + +@keyframes fadeRight { + 0% { + opacity: 0; + -webkit-transform: translateX(-50px); + transform: translateX(-50px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px); + transform: translateX(0px); + } +} + +@-webkit-keyframes fadeUp { + 0% { + opacity: 0; + -webkit-transform: translateY(30px); + transform: translateY(30px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0px); + transform: translateY(0px); + } +} + +@keyframes fadeUp { + 0% { + opacity: 0; + -webkit-transform: translateY(30px); + transform: translateY(30px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0px); + transform: translateY(0px); + } +} + +@-webkit-keyframes jumpUp { + 0% { + opacity: 0; + -webkit-transform: scale(0.5) translate(70px, 70px); + transform: scale(0.5) translate(70px, 70px); + } + 80% { + opacity: 1; + -webkit-transform: scale(1.1) translate(-10px, -10px); + transform: scale(1.1) translate(-10px, -10px); + } + 100% { + opacity: 1; + -webkit-transform: scale(1) translate(0px); + transform: scale(1) translate(0px); + } +} + +@keyframes jumpUp { + 0% { + opacity: 0; + -webkit-transform: scale(0.5) translate(70px, 70px); + transform: scale(0.5) translate(70px, 70px); + } + 80% { + opacity: 1; + -webkit-transform: scale(1.1) translate(-10px, -10px); + transform: scale(1.1) translate(-10px, -10px); + } + 100% { + opacity: 1; + -webkit-transform: scale(1) translate(0px); + transform: scale(1) translate(0px); + } +} + +.floated-chat-btn { + -webkit-animation-name: jumpUp; + animation-name: jumpUp; + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; +} + +.floated-colors-btn { + -webkit-animation-name: jumpUp; + animation-name: jumpUp; + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; + -webkit-animation-delay: 0.1s; + animation-delay: 0.1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.floated-customizer-btn { + -webkit-animation-name: jumpUp; + animation-name: jumpUp; + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.element-box, .invoice-w, .big-error-w { + -webkit-animation-name: fadeUp; + animation-name: fadeUp; + -webkit-animation-duration: 1s; + animation-duration: 1s; +} + +.element-balances .balance { + -webkit-animation-name: fadeRight; + animation-name: fadeRight; + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.element-balances .balance:nth-child(1) { + -webkit-animation-delay: 0s; + animation-delay: 0s; +} + +.element-balances .balance:nth-child(2) { + -webkit-animation-delay: 0.1s; + animation-delay: 0.1s; +} + +.element-balances .balance:nth-child(3) { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} + +.element-balances .balance:nth-child(4) { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; +} + +.element-balances .balance:nth-child(5) { + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; +} + +.pipeline { + -webkit-animation-name: fadeUp; + animation-name: fadeUp; + -webkit-animation-duration: 1s; + animation-duration: 1s; +} + +.project-box { + -webkit-animation-name: fadeUp; + animation-name: fadeUp; + -webkit-animation-duration: 1s; + animation-duration: 1s; +} + +.aec-full-message-w { + -webkit-animation-name: fadeUp; + animation-name: fadeUp; + -webkit-animation-duration: 1s; + animation-duration: 1s; +} + +.user-profile { + -webkit-animation-name: fadeUp; + animation-name: fadeUp; + -webkit-animation-duration: 1s; + animation-duration: 1s; +} + +.content-panel { + -webkit-animation-name: fadeLeft; + animation-name: fadeLeft; + -webkit-animation-duration: 1s; + animation-duration: 1s; +} + +/* 6. User Profile */ +.user-profile .up-head-w { + background-size: cover; + background-position: center center; + position: relative; + color: #fff; + border-radius: 6px 6px 0px 0px; +} + +.user-profile .up-head-w .decor { + position: absolute; + bottom: -1px; + right: 0px; + max-width: 100%; + z-index: 3; +} + +.user-profile .up-head-w .decor .decor-path { + fill: #fff; +} + +.user-profile .up-head-w:before { + z-index: 1; + content: ''; + position: absolute; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(rgba(0, 0, 0, 0.2)), color-stop(70%), to(rgba(0, 0, 0, 0.5))); + background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2), 70%, rgba(0, 0, 0, 0.5)); +} + +.up-social { + position: absolute; + top: 35px; + right: 25px; + z-index: 5; +} + +.up-social a { + color: rgba(255, 255, 255, 0.8); + display: inline-block; + font-size: 25px; + margin-left: 10px; + +} + +.up-social a:hover { + color: white; + text-decoration: none; +} + +.user-profile .up-main-info { + padding: 20% 5% 5% 5%; + position: relative; + z-index: 4; +} + +.user-profile .up-main-info .user-avatar-w { + margin-bottom: 1rem; +} + +.user-profile .up-main-info .user-avatar-w .user-avatar { + width: 60px; + height: 60px; + border-radius: 40px; + border: 3px solid #fff; + overflow: hidden; + -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.4); + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.4); +} + +.user-profile .up-main-info .user-avatar-w .user-avatar img { + max-width: 100%; + height: auto; +} + +.user-profile .up-header { + text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6); + color: #fff; + font-size: 3.75rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.4); + padding-bottom: 10px; + display: inline-block; + margin-bottom: 10px; +} + +.user-profile .up-sub-header { + text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); + color: rgba(255, 255, 255, 0.8); +} + +.user-profile .up-controls { + padding: 20px 5%; +} + +.user-profile .btn + .btn, .user-profile .all-wrapper .fc-button + .btn, .all-wrapper .user-profile .fc-button + .btn, .user-profile .all-wrapper .btn + .fc-button, .all-wrapper .user-profile .btn + .fc-button, .user-profile .all-wrapper .fc-button + .fc-button, .all-wrapper .user-profile .fc-button + .fc-button { + margin-left: 20px; +} + +.user-profile .up-controls + .up-contents { + border-top: 1px solid rgba(0, 0, 0, 0.05); +} + +.user-profile .up-contents { + padding: 20px 5%; + padding-top: 3rem; +} + +.user-profile.compact .up-contents { + padding-top: 0px; +} + +.user-profile.compact .up-main-info { + padding-top: 35%; +} + +.user-profile.compact .up-head-w .up-social a { + font-size: 20px; +} + +.user-profile.compact .up-header { + font-size: 1.5rem; + margin-bottom: 10px; + padding-bottom: 5px; +} + +.user-profile.compact .up-sub-header { + font-size: 0.81rem; +} + +.user-profile + .element-wrapper { + margin-top: 2rem; +} + +.value-pair { + display: inline-block; +} + +.value-pair .label { + color: rgba(0, 0, 0, 0.4); + font-size: 0.63rem; + text-transform: uppercase; + display: inline-block; +} + +.value-pair .value { + display: inline-block; + font-size: 0.63rem; + text-transform: uppercase; +} + +.value-pair + .value-pair { + margin-left: 10px; + padding-left: 10px; + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +/* 7. Layout styles */ +html { + height: 100%; +} + +body { + min-height: 100%; + position: relative; + padding: 50px; + overflow-x: hidden; +} + +body:before { + content: ""; + position: absolute; + z-index: -1; + background: -webkit-gradient(linear, left top, right bottom, from(#D7BBEA), to(#65A8F1)); + background: linear-gradient(to bottom right, #D7BBEA, #65A8F1); + top: 0px; + left: 0px; + bottom: 0px; + right: 0px; +} + +body.full-screen { + padding: 0px; +} + +body.full-screen .all-wrapper { + max-width: initial; + border-radius: 0px; +} + +body.full-screen .all-wrapper > .top-bar { + border-radius: 0px; +} + +body.full-screen .menu-w, +body.full-screen .top-bar { + border-radius: 0px !important; +} + +body.full-screen .menu-position-side .logged-user-menu { + left: 0px; + right: -1px; + border-radius: 0px; +} + +b, +strong { + font-weight: 600; +} + +.all-wrapper { + -webkit-box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.1); + border-radius: 6px; + /*max-width: 1600px;*/ + /*margin: 0px auto; + position: relative;*/ + min-height: 100%; +} + +.all-wrapper.with-pattern { + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 0px; + background-image: url(../images/bg-pattern2.png); + background-size: contain; + background-repeat: repeat; + background-position: 0 0; +} + +.all-wrapper.no-padding-content .content-box { + padding: 0px; +} + +.all-wrapper.white-bg-content .content-w { + background-color: #fff; + background-image: none; +} + +.all-wrapper.solid-bg-all { + background-color: #f2f4f8; +} + +.all-wrapper.solid-bg-all .content-w { + background-image: none; +} + +body.with-content-panel .content-box { + /*padding-left: 4rem;*/ +} + +.auth-wrapper .all-wrapper { + /*padding: 100px;*/ +} + +.section-heading { + padding: 5% 10%; + font-size: 1.26rem; + color: rgba(0, 0, 0, 0.5); +} + +.section-heading.centered { + text-align: center; +} + +.section-heading h1 { + position: relative; + margin-bottom: 40px; +} + +.section-heading h1:after { + position: absolute; + bottom: -25px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + content: ""; + background-color: #047bf8; + height: 5px; + width: 40px; + border-radius: 6px; +} + +/* Layout settings based on menu position */ +/* MENU ON A SIDE */ +body.menu-position-side .layout-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + min-height: 100%; + width: 100%; + position: absolute; + background-color: #030962; +} + +/* ie11,ie10 hack*/ +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + body.menu-position-side .layout-w { + min-height: 100vh; + position: relative; + } + + body { + min-height: 100vh; + } + + .menu-w { + min-height: 100vh; + } +} + +body.menu-position-side .content-w { + border-radius: 0px 6px 6px 0px; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +/* MENU ON TOP */ +body.menu-position-top .content-w { + border-radius: 0px 0px 6px 6px; +} + +body.menu-position-top .top-bar + .layout-w .menu-w { + border-radius: 0px; +} + +body.menu-side-right .layout-w { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; +} + +.content-w { + background-color: #f2f4f8; + background-image: url(../images/bg-pattern.png); + background-repeat: no-repeat; + background-position: 20px 50px; + vertical-align: top; + min-height: 100%; + position: relative; +} + +.content-box { + vertical-align: top; + padding: 2rem 2.5rem; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.content-box > .element-wrapper:first-child { + padding-top: 0px !important; +} + +.content-panel { + vertical-align: top; + -webkit-box-flex: 0; + -ms-flex: 0 0 400px; + flex: 0 0 400px; + border-left: 1px solid rgba(0, 0, 0, 0.05); + padding: 2rem 2.5rem; +} + +.content-panel .content-panel-close { + display: none; + position: absolute; + top: 10px; + right: 10px; + font-size: 14px; + color: #047bf8; + z-index: 999; + cursor: pointer; +} + +.content-panel-toggler { + background-color: #047bf8; + padding: 4px 10px; + border-radius: 6px; + color: #fff; + font-size: 0.72rem; + text-transform: uppercase; + display: none; + position: absolute; + top: 4px; + right: 4px; + z-index: 4; + cursor: pointer; +} + +.content-panel-toggler:hover { + background-color: #1a88fb; +} + +.content-panel-toggler i { + display: inline-block; + vertical-align: middle; + font-size: 12px; +} + +.content-panel-toggler span { + margin-left: 10px; + display: inline-block; + vertical-align: middle; + letter-spacing: 1px; +} + +/* + SIDE PANEL IS ACTIVE - ADD STYLES +*/ +.with-side-panel .content-i { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.with-side-panel .menu-mobile .mm-logo-buttons-w .content-panel-open { + display: block; +} + +/* ICONS LIST FOR DEMO */ +.demo-icons-list { + list-style: none; + padding: 0px; + margin: 0px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.demo-icons-list li { + width: 80px; + text-align: center; + display: inline-block; + font-size: 24px; + vertical-align: middle; + padding: 20px 15px; + border-right: 1px solid rgba(0, 0, 0, 0.05); + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.demo-icons-list li a { + position: relative; + color: #333; +} + +.demo-icons-list li a i { + font-style: normal; +} + +.demo-icons-list li a span { + display: inline-block; + position: absolute; + background-color: #047bf8; + color: #fff; + padding: 4px 7px; + border-radius: 4px; + font-size: 0.81rem; + white-space: nowrap; + top: -30px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + display: none; +} + +.demo-icons-list li a:hover { + text-decoration: none; +} + +.demo-icons-list li a:hover span { + display: block; +} + +/* 8. Menu styles */ +/* + STYLE NAVIGATION + +#1. Logged User Box +#2. Shared styles between Top Bar & Main Menu +#3. Desktop Menu +#4. Mobile Menu + +*/ +/* +#1. Logged User Box +*/ +.logged-user-w { + text-align: center; + padding: 1rem 1rem; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.logged-user-w .avatar-w { + padding: 5px; + /*border: 1px solid #262626;*/ + border-radius: 50%; + overflow: hidden; + display: inline-block; +} + +.logged-user-w .avatar-w img { + width: 50px; + height: 50px; + border-radius: 50%; +} + +.logged-user-w .logged-user-role { + display: block; + font-size: 0.70rem; + color: rgba(0, 0, 0, 0.4); + +} + +.logged-user-w .logged-user-toggler-arrow { + padding: 3px; + font-size: 14px; + position: absolute; + top: 50%; + right: 15px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + background-color: rgba(0, 0, 0, 0.08); + border-radius: 6px; +} + +.logged-user-w.avatar-inline { + text-align: left; + position: relative; +} + +.logged-user-w.avatar-inline .logged-user-i { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-left: 0.7rem; +} + +.logged-user-w.avatar-inline .logged-user-i .logged-user-info-w { + padding-left: 20px; + text-align: left; +} + +.logged-user-w.avatar-inline .logged-user-toggler-arrow { + padding: 3px; + font-size: 14px; + position: absolute; + top: 50%; + right: 15px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + background-color: rgba(0, 0, 0, 0.08); + border-radius: 6px; +} + +.logged-user-w.avatar-inline .logged-user-avatar-info { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.logged-user-w.avatar-inline .logged-user-avatar-info .logged-user-info-w { + margin-bottom: 0px; + padding: 10px 10px 10px 20px; +} + +/* +#2. Shared styles between Top Bar & Main Menu +*/ +.menu-w .logo-w, +.top-bar .logo-w { + padding: 10px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.menu-w .logo-w .filters-toggler, +.top-bar .logo-w .filters-toggler { + color: rgba(255, 255, 255, 0.7); + font-size: 20px; + line-height: 1; + cursor: pointer; +} + +.menu-w .logo-w .filters-toggler .os-icon, +.top-bar .logo-w .filters-toggler .os-icon { + display: inline-block; + vertical-align: middle; + line-height: 1; +} + +.menu-w .logo-w .filters-toggler:hover, +.top-bar .logo-w .filters-toggler:hover { + color: #fff; +} + +.menu-w .logo-w .logo, +.top-bar .logo-w .logo { + display: inline-block; + text-decoration: none; +} + +.menu-w .logo-w .logo-element, +.top-bar .logo-w .logo-element { + content: ""; + width: 60px; + height: 30px; + background-image: url(../images/logo-owl.png); + position: relative; + display: inline-block; + vertical-align: middle; + margin-right: 20px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-w .logo-w .logo-element:after, +.top-bar .logo-w .logo-element:after { + content: ""; + width: 105px; + height: 31px; + background-image: url(../images/logo-owltxt.png); + right: -20px; + left: 70px; + position: absolute; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-w .logo-w .logo:hover .logo-element, +.top-bar .logo-w .logo:hover .logo-element { + -webkit-transform: translateX(5px); + transform: translateX(5px); +} + +.menu-w .logo-w .logo:hover .logo-element:after, +.top-bar .logo-w .logo:hover .logo-element:after { + -webkit-transform: translateX(-10px); + transform: translateX(-10px); +} + +.menu-w .logo-w .logo:hover .logo-label:after, +.top-bar .logo-w .logo:hover .logo-label:after { + width: 100%; + background-color: #fff; +} + +.menu-w .logo-w .logo-label, +.top-bar .logo-w .logo-label { + display: inline-block; + vertical-align: middle; + color: #fff; + letter-spacing: 2px; + text-transform: uppercase; + font-weight: 500; + font-size: 0.81rem; + position: relative; + margin-left: 10px; +} + +.menu-w .logo-w .logo-label:after, +.top-bar .logo-w .logo-label:after { + height: 2px; + position: absolute; + width: 0%; + left: 0px; + bottom: -5px; + background-color: #fff; + content: ""; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +/* + #3. Desktop Menu +*/ +.menu-w { + position: relative; + background-color: #fff; + -webkit-box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + -webkit-box-flex: 0; + -ms-flex: 0 0 260px; + flex: 0 0 260px; + border-right: 0px solid rgba(0, 0, 0, 0.05); + /* Styles for sub menu */ +} + +.menu-w .menu-page-header { + display: none; +} + +.menu-w .logged-user-w { + position: relative; + padding: 1rem; +} + +.menu-w .logged-user-w .logged-user-i:hover { + cursor: pointer; +} + +.menu-w .logged-user-w .logged-user-i:hover .logged-user-menu { + visibility: visible; + opacity: 1; + -webkit-transform: translateY(0px); + transform: translateY(0px); +} + +.menu-w .logged-user-w + .main-menu { + padding-top: 0px; +} + +.menu-w .logged-user-menu { + position: absolute; + top: -1px; + left: -10px; + overflow: hidden; + padding: 1rem; + z-index: 999; + visibility: hidden; + opacity: 0; + -webkit-transform: translateY(5px); + transform: translateY(5px); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + +} + +.menu-w .logged-user-menu .avatar-w { + border-color: #fff; +} + +.menu-w .logged-user-menu .logged-user-avatar-info { + padding-bottom: 20px; + margin-bottom: 20px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.menu-w .logged-user-menu .logged-user-info-w .logged-user-name { + color: #fff; +} + +.menu-w .logged-user-menu .logged-user-info-w .logged-user-role { + color: rgba(255, 255, 255, 0.6); +} + +.menu-w .logged-user-menu ul { + list-style: none; + text-align: left; + margin: 0px; + padding: 0px 30px; + padding-bottom: 20px; +} + +.menu-w .logged-user-menu ul li { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-w .logged-user-menu ul li a { + display: block; + padding: 10px; + color: #fff; +} + +.menu-w .logged-user-menu ul li a i { + vertical-align: middle; + margin-right: 15px; + font-size: 20px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + display: inline-block; +} + +.menu-w .logged-user-menu ul li a span { + vertical-align: middle; + font-size: 0.9rem; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + display: inline-block; +} + +.menu-w .logged-user-menu ul li a:hover { + text-decoration: none; +} + +.menu-w .logged-user-menu ul li a:hover i { + -webkit-transform: translateX(5px); + transform: translateX(5px); +} + +.menu-w .logged-user-menu ul li a:hover span { + -webkit-transform: translateX(8px); + transform: translateX(8px); +} + +.menu-w .logged-user-menu ul li:last-child { + border-bottom: none; +} + +.menu-w .logged-user-menu .bg-icon { + font-size: 100px; + color: rgba(255, 255, 255, 0.1); + position: absolute; + bottom: -40px; + right: -20px; +} + +.menu-w .logged-user-menu.color-style-light { + background-color: #fff; +} + +.menu-w .logged-user-menu.color-style-light .logged-user-avatar-info { + border-bottom-color: rgba(0, 0, 0, 0.1); +} + +.menu-w .logged-user-menu.color-style-light .logged-user-info-w .logged-user-name { + color: #334152; +} + +.menu-w .logged-user-menu.color-style-light .logged-user-info-w .logged-user-role { + color: #636c72; +} + +.menu-w .logged-user-menu.color-style-light .avatar-w { + border-color: #111; +} + +.menu-w .logged-user-menu.color-style-light ul li { + border-bottom-color: rgba(0, 0, 0, 0.05); +} + +.menu-w .logged-user-menu.color-style-light ul li a { + color: #3E4B5B; +} + +.menu-w .logged-user-menu.color-style-light ul li a i { + color: #047bf8; +} + +.menu-w .logged-user-menu.color-style-dark { + background-color: #323c58; +} + +.menu-w .logged-user-menu.color-style-bright { + background-color: #1b55e2; +} + +.menu-w .logged-user-menu.color-style-bright-alt { + background-color: #5e00da; +} + +.menu-w .side-menu-magic { + margin-top:20px; + text-align: center; + +} + +.menu-w .side-menu-magic h1, .menu-w .side-menu-magic h2, .menu-w .side-menu-magic h3, .menu-w .side-menu-magic h4, .menu-w .side-menu-magic h5 { + color: #fff; + margin-bottom: 5px; +} + +.menu-w .side-menu-magic p { + color: rgba(255, 255, 255, 0.6); +} + +.menu-w .side-menu-magic .btn-w { + margin-top: 15px; +} + +.menu-w .side-menu-magic .btn-white, .menu-w .side-menu-magic .all-wrapper .fc-button, .all-wrapper .menu-w .side-menu-magic .fc-button { + border: none; + -webkit-box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.3); + box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.3); +} + +.menu-w .logo-w { + text-align: center; + padding: 14px 1rem 14px 1.7rem; +} + +.menu-w .logo-w a { + display: inline-block; +} + +.menu-w .logo-w .logo { + display: inline-block; +} + +.menu-w .logo-w img { + width: 40px; + height: auto; + display: inline-block; + vertical-align: middle; +} + +.menu-w .logo-w span { + vertical-align: middle; + display: inline-block; + color: #334152; + margin-left: 1rem; +} + +.menu-w ul.main-menu { + list-style: none; + padding: 2rem 1rem; + margin-bottom: 0px; + +} + +.menu-w ul.main-menu > li { + display: block; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-w ul.main-menu > li:last-child { + border-bottom: none; +} + +.menu-w ul.main-menu > li.has-sub-menu > a:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\e91c"; + font-size: 7px; + color: rgba(0, 0, 0, 0.5); + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + position: absolute; + top: 50%; + right: 5px; +} + +.menu-w ul.main-menu > li.has-sub-menu.active .sub-menu { + display: block; +} + +.menu-w ul.main-menu > li.sub-header { + text-transform: uppercase; + color: #448eef; + font-size: 0.72rem; + letter-spacing: 1px; + padding-top: 20px; + padding-bottom: 0px; + border-bottom: none; +} + +.menu-w ul.main-menu > li.sub-header:first-child { + padding-top: 0px; +} + +.menu-w ul.main-menu > li.sub-header:first-child span { + padding-top: 0px; +} + +.menu-w ul.main-menu > li > a { + color: #3E4B5B; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + position: relative; + font-size: 0.99rem; +} + +.menu-w ul.main-menu > li > a:focus { + text-decoration: none; +} + +.menu-w ul.main-menu > li > a:hover { + text-decoration: none; +} + +@media (min-width: 1025px) { + .menu-w ul.main-menu > li > a:hover .icon-w { + -webkit-transform: translateX(8px); + transform: translateX(8px); + } + + .menu-w ul.main-menu > li > a:hover span { + -webkit-transform: translateX(5px); + transform: translateX(5px); + } +} + +.menu-w ul.main-menu > li .icon-w { + color: #0073ff; + font-size: 27px; + display: block; + padding: 1rem 1rem 1rem 0rem; + width: 70px; + text-align: center; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-w ul.main-menu > li span { + padding: 1rem; + padding-left: 0.8rem; + display: block; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-w ul.main-menu > li .icon-w + span { + padding-left: 0px; +} + +.menu-w ul.sub-menu { + padding: 0px; + padding-left: 55px; + display: none; + list-style: none; +} + +.menu-w ul.sub-menu:first-child { + border-top: 1px solid rgba(0, 0, 0, 0.05); + padding-top: 1rem; +} + +.menu-w ul.sub-menu li { + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-w ul.sub-menu li a { + padding: 0.4rem 10px 0.4rem 10px; + display: block; + position: relative; + font-size: 0.81rem; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-w ul.sub-menu li a:before { + content: ""; + width: 5px; + height: 5px; + border: 1px solid #047bf8; + position: absolute; + left: -10px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + background-color: #fff; + display: block; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + border-radius: 6px; +} + +.menu-w ul.sub-menu li a:hover { + text-decoration: none; + cursor: pointer; + -webkit-transform: translateX(-5px); + transform: translateX(-5px); +} + +.menu-w ul.sub-menu li a:hover:before { + -webkit-transform: translate(-5px, -50%); + transform: translate(-5px, -50%); + border-radius: 6px; + background-color: #047bf8; + border-color: #047bf8; +} + +.menu-w.color-scheme-light .messages-notifications, +.menu-w.color-scheme-light .top-icon { + color: #047bf8; +} + +.menu-w.color-scheme-light .logo-w { + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-w.color-scheme-light .logo-w .logo-label { + color: #3E4B5B; +} + +.menu-w.color-scheme-light .logo-w .logo-element { + background-color: #0a7cf8; +} + +.menu-w.color-scheme-light .logo-w .logo-element:after { + background-color: #bfd6f9; +} + +.menu-w.color-scheme-light .logo-w .logo:hover .logo-label { + color: #047bf8; +} + +.menu-w.color-scheme-light .logo-w .logo:hover .logo-label:after { + background-color: #047bf8; +} + +.menu-w.color-scheme-dark { + background-color: #030962; + background-image: none; + color: rgba(255, 255, 255, 0.9); + border-right-color: rgba(255, 255, 255, 0.05); + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +.menu-w.color-scheme-dark .messages-notifications, +.menu-w.color-scheme-dark .top-icon { + color: #fff; +} + +.menu-w.color-scheme-dark .logged-user-menu { + /* -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.2);*/ +} + +.menu-w.color-scheme-dark .side-menu-magic { + + text-align:center; + -webkit-box-shadow: 0px 5px 10px rgba(19, 19, 19, 0.17); + box-shadow: 0px 5px 10px rgba(19, 19, 19, 0.17); +} + +.menu-w.color-scheme-dark ul.sub-menu li { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.menu-w.color-scheme-dark ul.sub-menu li a { + color: #fff; +} + +.menu-w.color-scheme-dark.color-style-bright ul.main-menu .icon-w { + color: #95acff; +} + +.menu-w.color-scheme-dark ul.main-menu .icon-w { + color: #babed0; +} + +.menu-w.color-scheme-dark ul.main-menu > li { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-w.color-scheme-dark ul.main-menu > li > a { + color: #fff; +} + +.menu-w.color-scheme-dark ul.main-menu > li > a:hover > .icon-w { + color: #fff; +} + +.menu-w.color-scheme-dark ul.main-menu > li > a:before { + color: #fff; +} + +.menu-w.color-scheme-dark .sub-menu-w { + -webkit-box-shadow: 0px 2px 40px 0px rgba(0, 0, 0, 0.2); + box-shadow: 0px 2px 40px 0px rgba(0, 0, 0, 0.2); +} + +.menu-w.color-scheme-dark .logo-w { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.menu-w.color-scheme-dark .logo-w span { + color: #fff; +} + +.menu-w.color-scheme-dark .logged-user-w { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.menu-w.color-scheme-dark .logged-user-w .avatar-w { + border-color: #fff; +} + +.menu-w.color-scheme-dark .logged-user-w .logged-user-role { + color: rgba(255, 255, 255, 0.4); +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w .sub-menu-header { + border-bottom-color: rgba(255, 255, 255, 0.05); + color: #fff; +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w ul.sub-menu:first-child { + border-top-color: rgba(255, 255, 255, 0.05); +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w ul.sub-menu li { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w ul.sub-menu li a { + color: #ccd9e8; +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w ul.sub-menu li a:before { + border-color: #fff; + opacity: 0.7; +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w ul.sub-menu li a:hover { + color: #fff; +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w ul.sub-menu li a:hover:before { + background-color: #fff; + opacity: 1; +} + +.menu-w.color-scheme-dark.sub-menu-style-inside .sub-menu-w ul.sub-menu + ul.sub-menu { + border-left-color: rgba(255, 255, 255, 0.05); +} + +.menu-w.color-style-transparent { + background: none; + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + box-shadow: none; + border-right-width: 1px; +} + +.menu-w.color-style-bright { + background-image: -webkit-gradient(linear, left top, left bottom, from(#1c4cc3), to(#0e369a)); + background-image: linear-gradient(to bottom, #1c4cc3 0%, #0e369a 100%); + background-repeat: repeat-x; +} + +.menu-w.sub-menu-style-inside .sub-menu-header { + display: none; +} + +.menu-w.sub-menu-style-inside .sub-menu-icon { + display: none; +} + +.menu-w.sub-menu-style-inside ul.sub-menu { + padding-left: 45px; +} + +.menu-w.sub-menu-style-inside ul.sub-menu:last-child { + padding-bottom: 1rem; +} + +.menu-w.sub-menu-style-inside ul.sub-menu:last-child li:last-child { + border-bottom: none; +} + +.menu-w.sub-menu-style-inside.sub-menu-color-bright ul.main-menu > li.active > a:before, .menu-w.sub-menu-style-inside.sub-menu-color-dark ul.main-menu > li.active > a:before { + color: #fff; +} + +.menu-w.sub-menu-style-inside.sub-menu-color-bright ul.main-menu > li.active > a span, .menu-w.sub-menu-style-inside.sub-menu-color-dark ul.main-menu > li.active > a span { + color: #fff; +} + +.menu-w.sub-menu-style-inside.sub-menu-color-bright ul.main-menu > li.active > a .icon-w, .menu-w.sub-menu-style-inside.sub-menu-color-dark ul.main-menu > li.active > a .icon-w { + color: #fff; +} + +.menu-w.sub-menu-style-flyout .main-menu > li.has-sub-menu { + position: relative; +} + +.menu-w.sub-menu-style-flyout .main-menu > li.has-sub-menu > a:before { + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-w.sub-menu-style-flyout .main-menu > li.has-sub-menu.active > a:before { + -webkit-transform: translateY(-50%) rotate(-90deg); + transform: translateY(-50%) rotate(-90deg); +} + +.menu-w.sub-menu-style-flyout .main-menu > li.has-sub-menu.active .sub-menu-w { + visibility: visible; + opacity: 1; + -webkit-transform: translate(100%, -50%); + transform: translate(100%, -50%); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.menu-w.sub-menu-style-flyout .sub-menu-w { + position: absolute; + background-color: #fff; + padding: 10px 20px 20px; + border-radius: 6px; + right: 0px; + top: 50%; + -webkit-transform: translate(110%, -50%); + transform: translate(110%, -50%); + z-index: 10000; + -webkit-box-shadow: 0px 15px 50px rgba(0, 0, 0, 0.1); + box-shadow: 0px 15px 50px rgba(0, 0, 0, 0.1); + visibility: hidden; + opacity: 0; + -webkit-transition: all 0.1s ease; + transition: all 0.1s ease; +} + +.menu-w.sub-menu-style-flyout .sub-menu-header { + font-size: 1.35rem; + font-weight: 500; + color: #047bf8; + text-align: center; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + padding-bottom: 10px; + margin-bottom: 10px; +} + +.menu-w.sub-menu-style-flyout .sub-menu-icon { + display: none; +} + +.menu-w.sub-menu-style-flyout .sub-menu-i { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.menu-w.sub-menu-style-flyout ul.sub-menu { + display: block; + padding-left: 0px; + border: none; + -webkit-box-flex: 0; + -ms-flex: 0 0 180px; + flex: 0 0 180px; + padding: 0px 5px; +} + +.menu-w.sub-menu-style-flyout ul.sub-menu li { + min-width: 200px; +} + +.menu-w.sub-menu-style-flyout ul.sub-menu li:last-child { + border-bottom: none; +} + +.menu-w.sub-menu-style-flyout ul.sub-menu li a { + color: #3E4B5B; + white-space: nowrap; + font-size: 0.9rem; + padding: 8px 12px; +} + +.menu-w.sub-menu-style-flyout ul.sub-menu li a:before { + opacity: 0; + -webkit-transform: translate(5px, -50%); + transform: translate(5px, -50%); + background-color: #047bf8; +} + +.menu-w.sub-menu-style-flyout ul.sub-menu li a:hover { + color: #047bf8; + -webkit-transform: translateX(5px); + transform: translateX(5px); +} + +.menu-w.sub-menu-style-flyout ul.sub-menu li a:hover:before { + opacity: 1; + -webkit-transform: translate(12px, -50%); + transform: translate(12px, -50%); +} + +.menu-w.sub-menu-style-flyout ul.sub-menu li .badge { + font-size: 0.72rem; + padding: 2px 5px; + margin-left: 5px; +} + +.menu-w.sub-menu-style-flyout ul.sub-menu + ul.sub-menu { + border-left: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-light .sub-menu-w { + background-color: #fff; +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-light .sub-menu-w ul.sub-menu li { + border-bottom-color: rgba(0, 0, 0, 0.03); +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-dark .sub-menu-w, .menu-w.sub-menu-style-flyout.sub-menu-color-bright .sub-menu-w { + background-color: #323c58; + -webkit-box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.15); + box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.15); +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-dark .sub-menu-w .sub-menu-header, .menu-w.sub-menu-style-flyout.sub-menu-color-bright .sub-menu-w .sub-menu-header { + border-bottom-color: rgba(255, 255, 255, 0.05); + color: #fff; +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-dark .sub-menu-w ul.sub-menu li, .menu-w.sub-menu-style-flyout.sub-menu-color-bright .sub-menu-w ul.sub-menu li { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-dark .sub-menu-w ul.sub-menu li a, .menu-w.sub-menu-style-flyout.sub-menu-color-bright .sub-menu-w ul.sub-menu li a { + color: #ccd9e8; +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-dark .sub-menu-w ul.sub-menu li a:before, .menu-w.sub-menu-style-flyout.sub-menu-color-bright .sub-menu-w ul.sub-menu li a:before { + background-color: #fff; + border-color: #fff; +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-dark .sub-menu-w ul.sub-menu li a:hover, .menu-w.sub-menu-style-flyout.sub-menu-color-bright .sub-menu-w ul.sub-menu li a:hover { + color: #fff; +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-dark .sub-menu-w ul.sub-menu + ul.sub-menu, .menu-w.sub-menu-style-flyout.sub-menu-color-bright .sub-menu-w ul.sub-menu + ul.sub-menu { + border-left-color: rgba(255, 255, 255, 0.05); +} + +.menu-w.sub-menu-style-flyout.sub-menu-color-bright .sub-menu-w { + background-color: #1b55e2; +} + +.menu-w.sub-menu-style-over ul.main-menu > li { + position: relative; +} + +.menu-w.sub-menu-style-over ul.main-menu > li > a:hover .icon-w { + -webkit-transform: none; + transform: none; +} + +.menu-w.sub-menu-style-over ul.main-menu > li.active { + border-right-color: #1b55e2; + border-bottom-color: #1b55e2; +} + +.menu-w.sub-menu-style-over ul.main-menu > li.active > a { + background-color: #1b55e2; + color: #fff; +} + +.menu-w.sub-menu-style-over ul.main-menu > li.active > a:before { + color: #fff; + -webkit-transform: translateY(-50%) rotate(-90deg); + transform: translateY(-50%) rotate(-90deg); +} + +.menu-w.sub-menu-style-over ul.main-menu > li.active > a .icon-w { + color: #fff; +} + +.menu-w.sub-menu-style-over ul.main-menu > li.active .sub-menu-w { + visibility: visible; + opacity: 1; + -webkit-transform: translateX(0px) scale(1); + transform: translateX(0px) scale(1); +} + +.menu-w.sub-menu-style-over .sub-menu-w { + z-index: 9999; + visibility: hidden; + opacity: 0; + -webkit-transform: translateX(40px) scale(0.95); + transform: translateX(40px) scale(0.95); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + position: absolute; + background-color: #1b55e2; + color: #fff; + left: 100%; + top: -100px; + overflow: hidden; + text-align: left; + -webkit-box-shadow: 0px 10px 40px 0px rgba(0, 0, 0, 0.2); + box-shadow: 0px 10px 40px 0px rgba(0, 0, 0, 0.2); + padding-bottom: 20px; +} + +.menu-w.sub-menu-style-over .sub-menu-w .sub-menu-header { + font-size: 2.4rem; + color: rgba(255, 255, 255, 0.2); + padding: 5px 45px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + margin-bottom: 15px; + letter-spacing: -0.5px; + white-space: nowrap; + overflow: hidden; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-weight: 500; +} + +.menu-w.sub-menu-style-over .sub-menu-w .sub-menu-icon { + position: absolute; + font-size: 120px; + color: rgba(255, 255, 255, 0.1); + bottom: -50px; + right: -10px; + display: block; +} + +.menu-w.sub-menu-style-over .sub-menu-w .sub-menu-i { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.menu-w.sub-menu-style-over .sub-menu-w .sub-menu-i .sub-menu + .sub-menu { + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.menu-w.sub-menu-style-over .sub-menu-w ul.sub-menu:first-child { + border-top: none; +} + +.menu-w.sub-menu-style-over .sub-menu-w > ul, .menu-w.sub-menu-style-over .sub-menu-w .sub-menu-i > ul { + list-style: none; + padding: 0px; + min-width: 250px; +} + +.menu-w.sub-menu-style-over .sub-menu-w > ul > li, .menu-w.sub-menu-style-over .sub-menu-w .sub-menu-i > ul > li { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.menu-w.sub-menu-style-over .sub-menu-w > ul > li:last-child, .menu-w.sub-menu-style-over .sub-menu-w .sub-menu-i > ul > li:last-child { + border-bottom: none; +} + +.menu-w.sub-menu-style-over .sub-menu-w > ul > li > a, .menu-w.sub-menu-style-over .sub-menu-w .sub-menu-i > ul > li > a { + color: #fff; + display: block; + padding: 10px 50px; + font-size: 0.93rem; + position: relative; + white-space: nowrap; +} + +.menu-w.sub-menu-style-over .sub-menu-w > ul > li > a:before, .menu-w.sub-menu-style-over .sub-menu-w .sub-menu-i > ul > li > a:before { + content: ""; + display: block; + width: 8px; + height: 8px; + border-radius: 10px; + background-color: #FBB463; + border-color: #FBB463; + position: absolute; + left: 28px; + top: 50%; + -webkit-transform: translate(-10px, -50%); + transform: translate(-10px, -50%); + opacity: 0; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-w.sub-menu-style-over .sub-menu-w > ul > li > a:hover:before, .menu-w.sub-menu-style-over .sub-menu-w .sub-menu-i > ul > li > a:hover:before { + opacity: 1; + -webkit-transform: translate(0px, -50%); + transform: translate(0px, -50%); +} + +.menu-w.sub-menu-style-over.sub-menu-color-light .sub-menu-w { + background-color: #fff; + -webkit-box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.15); + box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.15); +} + +.menu-w.sub-menu-style-over.sub-menu-color-light .sub-menu-w .sub-menu-header { + color: rgba(0, 0, 0, 0.1); + border-bottom-color: rgba(0, 0, 0, 0.05); +} + +.menu-w.sub-menu-style-over.sub-menu-color-light .sub-menu-w ul.sub-menu li { + border-bottom-color: rgba(0, 0, 0, 0.03); +} + +.menu-w.sub-menu-style-over.sub-menu-color-light .sub-menu-w ul.sub-menu li a { + color: #3E4B5B; +} + +.menu-w.sub-menu-style-over.sub-menu-color-light .sub-menu-w .sub-menu-i .sub-menu + .sub-menu { + border-left-color: rgba(0, 0, 0, 0.04); +} + +.menu-w.sub-menu-style-over.sub-menu-color-light .sub-menu-w .sub-menu-icon { + color: rgba(0, 0, 0, 0.03); +} + +.menu-w.sub-menu-style-over.sub-menu-color-light ul.main-menu > li.active { + border-right-color: #fff; + border-bottom-color: #fff; +} + +.menu-w.sub-menu-style-over.sub-menu-color-light ul.main-menu > li.active > a { + background-color: #fff; + color: #3E4B5B; +} + +.menu-w.sub-menu-style-over.sub-menu-color-light ul.main-menu > li.active > a .icon-w { + color: #047bf8; +} + +.menu-w.sub-menu-style-over.sub-menu-color-light.color-scheme-light ul.main-menu > li.active > a:before { + color: #3E4B5B; +} + +.menu-w.sub-menu-style-over.sub-menu-color-dark .sub-menu-w { + background-color: #323c58; +} + +.menu-w.sub-menu-style-over.sub-menu-color-dark ul.main-menu > li.active { + border-right-color: #323c58; + border-bottom-color: #323c58; +} + +.menu-w.sub-menu-style-over.sub-menu-color-dark ul.main-menu > li.active > a { + background-color: #323c58; +} + +.menu-w.sub-menu-style-over.sub-menu-color-bright ul.main-menu > li.active > a { + background-color: #1b55e2; +} + +.menu-w.menu-layout-mini { + -webkit-box-flex: 0; + -ms-flex: 0 0 80px; + flex: 0 0 80px; +} + +.menu-w.menu-layout-mini .logged-user-toggler-arrow { + display: none; +} + +.menu-w.menu-layout-mini .logo-w { + padding: 17px 15px; + text-align: center; +} + +.menu-w.menu-layout-mini .logo-w .logo-label { + display: none; +} + +.menu-w.menu-layout-mini ul.main-menu > li span { + display: none; +} + +.menu-w.menu-layout-mini .side-menu-magic { + display: none; +} + +.menu-w.menu-layout-mini ul.main-menu > li .icon-w { + padding: 18px 5px; + font-size: 30px; + width: auto; +} + +.menu-w.menu-layout-mini ul.main-menu { + padding: 20px 0px; +} + +.menu-w.menu-layout-mini ul.main-menu > li > a { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.menu-w.menu-layout-mini .main-menu > li.has-sub-menu > a:before { + display: none; +} + +.menu-w.menu-layout-mini ul.main-menu > li.sub-header { + display: none; +} + +.menu-w.menu-layout-mini .logged-user-w.avatar-inline .logged-user-i > .logged-user-info-w { + display: none; +} + +.menu-w.menu-layout-mini .logged-user-w.avatar-inline .logged-user-i { + padding-left: 0px; +} + +.menu-w.menu-layout-mini .logged-user-w { + text-align: center; +} + +.menu-w.menu-layout-mini .logged-user-w { + padding: 15px; +} + +.menu-w.menu-layout-mini .logged-user-menu { + width: 280px; +} + +.menu-w.menu-layout-mini .logged-user-w .logged-user-i > .avatar-w img { + max-width: 100%; + height: auto; +} + +.menu-w.menu-layout-compact { + -webkit-box-flex: 0; + -ms-flex: 0 0 260px; + flex: 0 0 260px; + +} + +.menu-w.menu-layout-compact .logged-user-w .avatar-w { + padding: 4px; +} + +.menu-w.menu-layout-compact .logged-user-w .avatar-w img { + width: 40px; + height: 40px; +} + +.menu-w.menu-layout-compact .logged-user-w.avatar-inline .logged-user-i .logged-user-info-w { + padding-left: 10px; + font-weight: bold; +} + +.menu-w.menu-layout-compact ul.main-menu { + padding: 1rem 1.5rem; + margin-bottom: 0px; +} + +.menu-w.menu-layout-compact ul.main-menu > li { + border-bottom: none; +} + +.menu-w.menu-layout-compact ul.main-menu > li.has-sub-menu > a:before { + content: "\e91c"; + font-size: 7px; + right: 5px; +} + +.menu-w.menu-layout-compact ul.main-menu > li.sub-header { + text-transform: uppercase; + font-size: 0.72rem; + letter-spacing: 1px; + padding-top: 10px; + padding-bottom: 0px; +} + +.menu-w.menu-layout-compact ul.main-menu > li > a { + font-size: 0.93rem; +} + +.menu-w.menu-layout-compact ul.main-menu > li > a:focus { + text-decoration: none; +} + +@media (min-width: 1025px) { + .menu-w.menu-layout-compact ul.main-menu > li > a:hover .icon-w { + -webkit-transform: translateX(8px); + transform: translateX(8px); + } + + .menu-w.menu-layout-compact ul.main-menu > li > a:hover span { + -webkit-transform: translateX(5px); + transform: translateX(5px); + } +} + +.menu-w.menu-layout-compact ul.main-menu > li .icon-w { + font-size: 18px; + padding: 7px 10px 7px 0px; + width: 40px; +} + +.menu-w.menu-layout-compact ul.main-menu > li span { + padding: 7px; + padding-left: 5px; +} + +.menu-w.menu-layout-compact ul.main-menu > li .icon-w + span { + padding-left: 0px; +} + +.menu-w.menu-layout-compact.sub-menu-style-inside ul.sub-menu { + padding-left: 30px; +} + +.menu-w.menu-layout-compact.sub-menu-style-inside ul.sub-menu:first-child { + padding-top: 10px; +} + +.menu-w.menu-layout-compact.sub-menu-style-inside ul.sub-menu li { + border-bottom: none; +} + +.menu-w.menu-layout-compact.sub-menu-style-inside ul.sub-menu li a { + padding: 4px 0px 4px 10px; +} + +.menu-w.menu-layout-compact.sub-menu-style-inside ul.sub-menu li a .badge { + font-size: 0.72rem; + padding: 2px 3px; + border-radius: 2px; + margin-left: 3px; +} + +.menu-position-side.menu-side-right .top-bar { + border-radius: 6px 0px 0px 0px; +} + +.menu-position-side.menu-side-right .content-w { + border-radius: 6px 0px 0px 6px; +} + +.menu-position-side.menu-w { + border-radius: 6px 0px 0px 6px; +} + +.menu-position-side.menu-w.menu-side-left .logo-w:first-child { + border-radius: 6px 0px 0px 0px; +} + +.menu-position-side.menu-w.menu-side-right { + border-radius: 0px 6px 6px 0px; +} + +.menu-position-side.menu-w.menu-side-right .logo-w:first-child { + border-radius: 0px 6px 0px 0px; +} + +.menu-position-side.menu-w.menu-side-right.sub-menu-style-flyout .sub-menu-w, .menu-position-side.menu-w.menu-side-right.sub-menu-style-over .sub-menu-w { + left: auto; + right: 100%; +} + +.menu-position-side.menu-w.menu-side-right.sub-menu-style-flyout .sub-menu-w { + -webkit-transform: translate(-10%, -50%); + transform: translate(-10%, -50%); +} + +.menu-position-side.menu-w.menu-side-right.sub-menu-style-flyout .main-menu > li.has-sub-menu.active .sub-menu-w { + -webkit-transform: translate(0%, -50%); + transform: translate(0%, -50%); +} + +.menu-position-side.menu-w.menu-side-right.color-style-transparent { + border-right: none; + border-left: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-position-side.menu-w.menu-side-right.color-style-transparent.color-scheme-dark { + border-left-color: rgba(255, 255, 255, 0.05); +} + +.menu-position-side.menu-w .menu-actions { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding: 15px; + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-position-side.menu-w .menu-actions .messages-notifications, .menu-position-side.menu-w .menu-actions .top-icon { + margin: 5px 0px; +} + +.menu-position-side.menu-w .messages-notifications { + margin: 0px 1rem; + position: relative; + font-size: 24px; +} + +.menu-position-side.menu-w .messages-notifications .new-messages-count { + background-color: #e65252; + color: #fff; + border-radius: 6px; + font-weight: 500; + position: absolute; + top: -5px; + right: -12px; + padding: 4px 4px; + vertical-align: middle; + font-size: 0.72rem; + line-height: 1; +} + +.menu-position-side.menu-w .messages-notifications i { + vertical-align: middle; +} + +.menu-position-side.menu-w .top-icon { + margin: 0px 1rem; + font-size: 26px; +} + +.menu-position-side.menu-w .top-icon i { + vertical-align: middle; +} + +.menu-position-side.menu-w .element-search { + position: relative; + margin: 0px 1rem; + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} + +.menu-position-side.menu-w .element-search:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + left: 15px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 16px; + content: "\e92c"; + color: rgba(0, 0, 0, 0.4); +} + +.menu-position-side.menu-w .element-search input { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 30px; + padding: 8px 15px 8px 40px; + display: block; + width: 100%; + outline: none; + border: none; + box-shadow: none; + background-color: rgba(91, 109, 136, 0.1); +} + +.menu-position-side.menu-w .element-search input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.menu-position-side.menu-w .element-search input:-ms-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.menu-position-side.menu-w .element-search input::-ms-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.menu-position-side.menu-w .element-search input::placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.menu-position-side.menu-w.menu-layout-full .menu-actions { + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + padding: 10px 0px; +} + +.menu-position-side.menu-w.menu-layout-full .element-search { + padding: 15px 0px; +} + +.menu-position-side.menu-w.menu-layout-full .element-search, +.menu-position-side.menu-w.menu-layout-full .menu-actions { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-position-side.menu-w.menu-layout-full .element-search + ul.main-menu, +.menu-position-side.menu-w.menu-layout-full .menu-actions + ul.main-menu { + padding-top: 0px; +} + +.menu-position-side.menu-w.menu-layout-full .element-search + ul.main-menu > .sub-header:first-child, +.menu-position-side.menu-w.menu-layout-full .menu-actions + ul.main-menu > .sub-header:first-child { + padding-top: 0px; +} + +.menu-position-side.menu-w.menu-layout-compact .menu-actions { + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + padding: 10px 0px; +} + +.menu-position-side.menu-w.menu-layout-compact .element-search { + padding: 15px 0px; +} + +.menu-position-side.menu-w.menu-layout-compact .element-search, +.menu-position-side.menu-w.menu-layout-compact .menu-actions { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-position-side.menu-w.menu-layout-compact .element-search + ul.main-menu, +.menu-position-side.menu-w.menu-layout-compact .menu-actions + ul.main-menu { + padding-top: 20px; +} + +.menu-position-side.menu-w.menu-layout-compact .element-search + ul.main-menu > .sub-header:first-child, +.menu-position-side.menu-w.menu-layout-compact .menu-actions + ul.main-menu > .sub-header:first-child { + padding-top: 0px; +} + +.menu-position-side.menu-w.menu-layout-mini { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.menu-position-side.menu-w.menu-layout-mini .logo-w { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.menu-position-side.menu-w.menu-layout-mini .menu-actions { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} + +.menu-position-side.menu-w.menu-layout-mini .element-search { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); + padding: 10px 0px; + margin: 0px; + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; +} + +.menu-position-side.menu-w.menu-layout-mini .element-search:before { + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + left: 50%; + font-size: 22px; + color: #fff; +} + +.menu-position-side.menu-w.menu-layout-mini .element-search input { + opacity: 0; + background-color: transparent; + width: 100%; + color: transparent; + cursor: pointer; +} + +.menu-position-side.menu-w.menu-layout-mini .element-search input::-webkit-input-placeholder { + color: transparent; +} + +.menu-position-side.menu-w.menu-layout-mini .element-search input:-ms-input-placeholder { + color: transparent; +} + +.menu-position-side.menu-w.menu-layout-mini .element-search input::-ms-input-placeholder { + color: transparent; +} + +.menu-position-side.menu-w.menu-layout-mini .element-search input::placeholder { + color: transparent; +} + +.menu-position-side.menu-w.menu-layout-mini .menu-actions { + margin: 0px 10px; + border-radius: 50px; + border: none; +} + +.menu-position-side.menu-w.menu-layout-mini .menu-actions + .element-search { + margin-top: 20px; + border-top: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-position-side.menu-w.menu-layout-mini.color-scheme-light .menu-actions { + background-color: rgba(0, 0, 0, 0.03); +} + +.menu-position-side.menu-w.menu-layout-mini.color-scheme-light .menu-actions + .element-search { + border-top-color: rgba(0, 0, 0, 0.05); +} + +.menu-position-side.menu-w.menu-layout-mini.color-scheme-light .element-search:before { + color: #047bf8; +} + +.menu-position-side.menu-w.menu-layout-mini.color-scheme-dark .menu-actions { + background-color: rgba(0, 0, 0, 0.1); +} + +.menu-position-side.menu-w.color-scheme-dark .logo-w { + background-color: #000035; +} + +.menu-position-side.menu-w.color-scheme-dark .element-search:before { + color: rgba(255, 255, 255, 0.4); +} + +.menu-position-side.menu-w.color-scheme-dark .element-search input { + background-color: rgba(0, 0, 0, 0.2); + color: #fff; +} + +.menu-position-side.menu-w.color-scheme-dark .element-search input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +.menu-position-side.menu-w.color-scheme-dark .element-search input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +.menu-position-side.menu-w.color-scheme-dark .element-search input::-ms-input-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +.menu-position-side.menu-w.color-scheme-dark .element-search input::placeholder { + color: rgba(255, 255, 255, 0.4); +} + +.menu-position-side.menu-w.color-scheme-light.menu-layout-full .element-search, +.menu-position-side.menu-w.color-scheme-light.menu-layout-full .menu-actions, .menu-position-side.menu-w.color-scheme-light.menu-layout-mini .element-search, +.menu-position-side.menu-w.color-scheme-light.menu-layout-mini .menu-actions, .menu-position-side.menu-w.color-scheme-light.menu-layout-compact .element-search, +.menu-position-side.menu-w.color-scheme-light.menu-layout-compact .menu-actions { + border-bottom-color: rgba(0, 0, 0, 0.05); +} + +.menu-position-top.menu-w { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + border-radius: 6px 6px 0px 0px; + border-bottom: 0px solid rgba(0, 0, 0, 0.05); + border-right: none; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.menu-position-top.menu-w .logged-user-toggler-arrow { + display: none; +} + +.menu-position-top.menu-w.menu-has-selected-link { + margin-bottom: 50px; +} + +.menu-position-top.menu-w ul.main-menu > li > a:hover .icon-w { + -webkit-transform: translateY(-4px); + transform: translateY(-4px); +} + +.menu-position-top.menu-w .menu-actions { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-right: 20px; +} + +.menu-position-top.menu-w .messages-notifications { + margin: 0px 1rem; + position: relative; + font-size: 24px; + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; +} + +.menu-position-top.menu-w .messages-notifications .new-messages-count { + background-color: #e65252; + color: #fff; + border-radius: 6px; + font-weight: 500; + position: absolute; + top: -5px; + right: -12px; + padding: 4px 4px; + vertical-align: middle; + font-size: 0.72rem; + line-height: 1; +} + +.menu-position-top.menu-w .messages-notifications i { + vertical-align: middle; +} + +.menu-position-top.menu-w .top-icon { + margin: 0px 1rem; + font-size: 26px; + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; +} + +.menu-position-top.menu-w .top-icon i { + vertical-align: middle; +} + +.menu-position-top.menu-w ul.main-menu { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + margin-right: auto; +} + +.menu-position-top.menu-w ul.main-menu > li { + border-bottom: none; +} + +.menu-position-top.menu-w .logged-user-w { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + border-bottom: none; + padding: 5px 15px; +} + +.menu-position-top.menu-w .logged-user-w .avatar-w { + padding: 0px; + border: none; +} + +.menu-position-top.menu-w .logged-user-w .avatar-w img { + width: 35px; +} + +.menu-position-top.menu-w .logged-user-w .logged-user-i .logged-user-menu { + left: auto; + right: 0; + top: -10px; + width: auto; + min-width: 230px; +} + +.menu-position-top.menu-w .logged-user-w .logged-user-i .logged-user-menu ul { + padding: 0px 10px; +} + +.menu-position-top.menu-w .logged-user-w .logged-user-i .logged-user-menu ul a { + white-space: nowrap; +} + +.menu-position-top.menu-w .logged-user-w .logged-user-i .logged-user-menu .logged-user-avatar-info { + padding-bottom: 10px; + margin-bottom: 10px; +} + +.menu-position-top.menu-w .logged-user-w .logged-user-i .logged-user-menu .logged-user-avatar-info .logged-user-info-w { + padding: 5px 5px 5px 20px; +} + +.menu-position-top.menu-w .logged-user-w .logged-user-i:hover .logged-user-menu { + -webkit-transform: translate(0, 0); + transform: translate(0, 0); +} + +.menu-position-top.menu-w .logo-w { + border-bottom: none; +} + +.menu-position-top.menu-w .element-search { + position: relative; + margin: 0px 1rem; + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} + +.menu-position-top.menu-w .element-search:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + left: 15px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 16px; + content: "\e92c"; + color: rgba(0, 0, 0, 0.4); +} + +.menu-position-top.menu-w .element-search input { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + background-color: transparent; + border-radius: 30px; + padding: 8px 15px 8px 40px; + display: block; + width: 220px; + outline: none; + border: none; + box-shadow: none; +} + +.menu-position-top.menu-w .element-search input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.menu-position-top.menu-w .element-search input:-ms-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.menu-position-top.menu-w .element-search input::-ms-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.menu-position-top.menu-w .element-search input::placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.menu-position-top.menu-w.color-scheme-dark .element-search:before { + color: rgba(255, 255, 255, 0.4); +} + +.menu-position-top.menu-w.color-scheme-dark .element-search input { + background: rgba(0, 0, 0, 0.2); + color: #fff; +} + +.menu-position-top.menu-w.color-scheme-dark .element-search input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.menu-position-top.menu-w.color-scheme-dark .element-search input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.menu-position-top.menu-w.color-scheme-dark .element-search input::-ms-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.menu-position-top.menu-w.color-scheme-dark .element-search input::placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.menu-position-top.menu-w.color-scheme-dark .top-icon, +.menu-position-top.menu-w.color-scheme-dark .messages-notifications { + color: rgba(255, 255, 255, 0.8); +} + +.menu-position-top.menu-w.color-style-bright { + background-image: -webkit-gradient(linear, left top, left bottom, from(#1c4cc3), to(#1c4cc3)); + background-image: linear-gradient(to bottom, #1c4cc3 0%, #1c4cc3 100%); + background-repeat: repeat-x; + -webkit-box-shadow: none; + box-shadow: none; +} + +.menu-position-top.menu-w.color-style-transparent { + border-bottom-width: 1px; +} + +.menu-position-top.menu-w.color-scheme-light .element-search input { + background-color: rgba(121, 138, 185, 0.07); +} + +.menu-position-top.menu-w.menu-layout-mini .logo-w { + padding: 10px 15px; + border-right: 1px solid rgba(0, 0, 0, 0.05); + width: 250px; +} + +.menu-position-top.menu-w.menu-layout-mini ul.main-menu { + padding: 0px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.menu-position-top.menu-w.menu-layout-mini ul.main-menu > li { + border-right: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-position-top.menu-w.menu-layout-mini ul.main-menu > li > a { + padding: 15px 20px; +} + +.menu-position-top.menu-w.menu-layout-mini ul.main-menu > li > a .icon-w { + padding: 0px; + font-size: 19px; + font-family: 'NanumSquare', 'sans-serif'; + font-weight: 600; +} + +.menu-position-top.menu-w.menu-layout-full.sub-menu-style-flyout .sub-menu-w { + padding-top: 20px; +} + +.menu-position-top.menu-w.menu-layout-full.sub-menu-style-flyout .sub-menu-header { + display: none; +} + +.menu-position-top.menu-w.menu-layout-full > .logged-user-w > .logged-user-i > .logged-user-info-w { + display: none !important; +} + +.menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-inside ul.main-menu > li.active > a:before, .menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-over ul.main-menu > li.active > a:before, .menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-flyout ul.main-menu > li.active > a:before { + color: #047bf8; +} + +.menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-inside ul.main-menu > li.active, .menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-over ul.main-menu > li.active, .menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-flyout ul.main-menu > li.active { + border-right: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-inside ul.main-menu > li.active span, .menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-over ul.main-menu > li.active span, .menu-position-top.menu-w.menu-layout-full.color-scheme-light.sub-menu-color-light.sub-menu-style-flyout ul.main-menu > li.active span { + color: #047bf8; +} + +.menu-position-top.menu-w.menu-layout-full.color-scheme-dark.sub-menu-color-light.sub-menu-style-inside ul.main-menu > li.active > a:before, .menu-position-top.menu-w.menu-layout-full.color-scheme-dark.sub-menu-color-light.sub-menu-style-over ul.main-menu > li.active > a:before, .menu-position-top.menu-w.menu-layout-full.color-scheme-dark.sub-menu-color-light.sub-menu-style-flyout ul.main-menu > li.active > a:before { + color: #3E4B5B; +} + +.menu-position-top.menu-w.menu-layout-full .side-menu-magic { + display: none; +} + +.menu-position-top.menu-w.menu-layout-full .logo-w { + border-right: 1px solid rgba(255, 255, 255, 0.05); + margin-right: 20px; + padding: 10px 20px; +} + +.menu-position-top.menu-w.menu-layout-full .logo-w .logo { + white-space: nowrap; +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu { + padding: 0px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu .sub-header { + display: none; +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li { + border-right: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li > a { + padding: 15px 20px; +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li > a .icon-w { + display: none; +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li > a span { + font-size: 0.81rem; + font-weight: 500; + text-transform: uppercase; + white-space: nowrap; + letter-spacing: 2px; + padding: 0px; +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li > a:hover:before { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li > a:hover span { + -webkit-transform: translateX(0); + transform: translateX(0); +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li.active > a:before { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li.active > a span { + -webkit-transform: translateX(0); + transform: translateX(0); +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li.has-sub-menu > a { + padding-right: 30px; +} + +.menu-position-top.menu-w.menu-layout-full ul.main-menu > li.has-sub-menu > a:before { + right: 13px; + font-size: 7px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-position-top.menu-w.menu-layout-compact .logged-user-w { + border: none !important; +} + +.menu-position-top.menu-w.menu-layout-compact .logged-user-w .logged-user-info-i > .logged-user-info-w { + display: none !important; +} + +.menu-position-top.menu-w.menu-layout-compact .logged-user-w .avatar-w { + vertical-align: middle; +} + +.menu-position-top.menu-w.menu-layout-compact .logo-w { + padding: 10px; + padding-right: 20px; + min-width: 220px; +} + +.menu-position-top.menu-w.menu-layout-compact .logo-w .logo { + white-space: nowrap; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu { + padding: 0px 10px; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu .sub-header { + display: none; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li { + border-right: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li.has-sub-menu > a { + padding-right: 25px; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li.has-sub-menu > a:before { + right: 15px; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li .sub-menu-w .sub-menu-header { + display: none; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li > a { + padding: 8px 12px; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li > a:hover .icon-w { + -webkit-transform: none; + transform: none; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li > a:hover span { + -webkit-transform: none; + transform: none; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li > a:hover:before { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li.active a:before { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li .icon-w { + width: auto; +} + +.menu-position-top.menu-w.menu-layout-compact ul.main-menu > li span { + white-space: nowrap; +} + +.menu-position-top.menu-w.menu-layout-compact .side-menu-magic { + display: none; +} + +.menu-position-top.menu-w.menu-layout-compact.sub-menu-style-flyout ul.main-menu > li .sub-menu-w, .menu-position-top.menu-w.menu-layout-compact.sub-menu-style-over ul.main-menu > li .sub-menu-w { + padding-top: 20px; +} + +.menu-position-top.menu-w.menu-layout-compact.color-scheme-dark ul.main-menu > li, .menu-position-top.menu-w.menu-layout-compact.color-scheme-bright ul.main-menu > li { + border-right-color: rgba(255, 255, 255, 0.1); +} + +.menu-position-top.menu-w ul.main-menu > li.selected { + position: static; + background-color: #fff; +} + +.menu-position-top.menu-w ul.main-menu > li.selected .icon-w { + color: #047bf8; +} + +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w { + -webkit-transform: none !important; + transform: none !important; + border-radius: 0px !important; + position: absolute; + top: 100%; + left: 0px; + right: 0px; + padding: 0px 10px !important; + visibility: visible; + opacity: 1; + z-index: 1; +} + +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w .sub-menu-header, +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w .sub-menu-icon { + display: none; +} + +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w .sub-menu-i { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + overflow-x: auto; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w .sub-menu-i ul.sub-menu { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin: 0px; + padding: 0px; + min-width: auto; + border: none; +} + +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w .sub-menu-i ul.sub-menu li { + border-bottom: none; + min-width: auto; + border-right: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w .sub-menu-i ul.sub-menu li a { + white-space: nowrap; + padding: 15px 15px; + font-size: 0.9rem; +} + +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w .sub-menu-i ul.sub-menu li a:hover { + -webkit-transform: translateY(-2px); + transform: translateY(-2px); +} + +.menu-position-top.menu-w ul.main-menu > li.selected .sub-menu-w .sub-menu-i ul.sub-menu li a:before { + display: none; +} + +.menu-position-top.menu-w.selected-menu-color-light ul.main-menu > li.selected { + border-right-color: rgba(0, 0, 0, 0.05) !important; + background-color: transparent !important; +} + +.menu-position-top.menu-w.selected-menu-color-light ul.main-menu > li.selected > a { + background-color: #fff; +} + +.menu-position-top.menu-w.selected-menu-color-light ul.main-menu > li.selected > a:before { + color: #3E4B5B; +} + +.menu-position-top.menu-w.selected-menu-color-light ul.main-menu > li.selected > a .icon-w { + color: #047bf8 !important; +} + +.menu-position-top.menu-w.selected-menu-color-light ul.main-menu > li.selected > a span { + color: #3E4B5B; +} + +.menu-position-top.menu-w.selected-menu-color-light ul.main-menu > li.selected .sub-menu-w { + background-color: #fff; + -webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.03); + box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.03); +} + +.menu-position-top.menu-w.selected-menu-color-light ul.main-menu > li.selected .sub-menu-w .sub-menu-i ul.sub-menu li a { + color: #3E4B5B; +} + +.menu-position-top.menu-w.selected-menu-color-light.color-scheme-light .sub-menu-w { + border-top: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-position-top.menu-w.selected-menu-color-dark ul.main-menu > li.selected { + border-right-color: #323c58; +} + +.menu-position-top.menu-w.selected-menu-color-dark ul.main-menu > li.selected > a { + background-color: #323c58; +} + +.menu-position-top.menu-w.selected-menu-color-dark ul.main-menu > li.selected > a .icon-w { + color: #fff !important; +} + +.menu-position-top.menu-w.selected-menu-color-dark ul.main-menu > li.selected > a span { + color: #fff; +} + +.menu-position-top.menu-w.selected-menu-color-dark ul.main-menu > li.selected > a:before { + color: #fff; +} + +.menu-position-top.menu-w.selected-menu-color-dark ul.main-menu > li.selected .sub-menu-w { + background-color: #323c58; + -webkit-box-shadow: none; + box-shadow: none; +} + +.menu-position-top.menu-w.selected-menu-color-dark ul.main-menu > li.selected .sub-menu-w .sub-menu-i ul.sub-menu li a { + color: #fff; +} + +.menu-position-top.menu-w.selected-menu-color-bright ul.main-menu > li.selected { + border-right-color: #1b55e2; +} + +.menu-position-top.menu-w.selected-menu-color-bright ul.main-menu > li.selected > a { + background-color: #1b55e2; +} + +.menu-position-top.menu-w.selected-menu-color-bright ul.main-menu > li.selected > a .icon-w { + color: #fff !important; +} + +.menu-position-top.menu-w.selected-menu-color-bright ul.main-menu > li.selected > a span { + color: #fff; +} + +.menu-position-top.menu-w.selected-menu-color-bright ul.main-menu > li.selected > a:before { + color: #fff; +} + +.menu-position-top.menu-w.selected-menu-color-bright ul.main-menu > li.selected .sub-menu-w { + background-color: #1b55e2; + -webkit-box-shadow: none; + box-shadow: none; +} + +.menu-position-top.menu-w.selected-menu-color-bright ul.main-menu > li.selected .sub-menu-w .sub-menu-i ul.sub-menu li a { + color: #fff; +} + +.menu-position-top.menu-w.sub-menu-style-over .sub-menu-w { + left: 0px; + top: 100%; +} + +.menu-position-top.menu-w.sub-menu-style-over.sub-menu-color-light ul.main-menu > li.active { + border-right-color: #fff; +} + +.menu-position-top.menu-w.sub-menu-style-over.sub-menu-color-dark ul.main-menu > li.active { + border-right-color: #323c58; +} + +.menu-position-top.menu-w.sub-menu-style-over.sub-menu-color-bright ul.main-menu > li.active { + border-right-color: #1b55e2; +} + +.menu-position-top.menu-w.sub-menu-style-inside .sub-menu-w { + position: absolute; + top: 100%; + left: 0px; + right: 0px; + padding: 0px 10px; + visibility: hidden; + opacity: 0; + z-index: 2; +} + +.menu-position-top.menu-w.sub-menu-style-inside .sub-menu-w .sub-menu-i { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + overflow-x: auto; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.menu-position-top.menu-w.sub-menu-style-inside .sub-menu-w .sub-menu-i ul.sub-menu { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin: 0px; + padding: 0px; + border: none; +} + +.menu-position-top.menu-w.sub-menu-style-inside .sub-menu-w .sub-menu-i ul.sub-menu li { + border-bottom: none; +} + +.menu-position-top.menu-w.sub-menu-style-inside .sub-menu-w .sub-menu-i ul.sub-menu li a { + white-space: nowrap; + padding: 15px 15px; + font-size: 0.9rem; +} + +.menu-position-top.menu-w.sub-menu-style-inside .sub-menu-w .sub-menu-i ul.sub-menu li a:hover { + -webkit-transform: translateY(-2px); + transform: translateY(-2px); +} + +.menu-position-top.menu-w.sub-menu-style-inside .sub-menu-w .sub-menu-i ul.sub-menu li a:before { + display: none; +} + +.menu-position-top.menu-w.sub-menu-style-inside ul.main-menu > li.active { + background-color: #fff; +} + +.menu-position-top.menu-w.sub-menu-style-inside ul.main-menu > li.active .icon-w { + color: #047bf8; +} + +.menu-position-top.menu-w.sub-menu-style-inside ul.main-menu > li.active .sub-menu-w { + visibility: visible; + opacity: 1; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-light ul.main-menu > li.active { + background-color: #fff; + border-right-color: #fff; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-light ul.main-menu > li.active .icon-w { + color: #047bf8; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-light ul.main-menu > li.active span { + color: #3E4B5B; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-light .sub-menu-w { + background-color: #fff; + -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.1); +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-light .sub-menu-w ul.sub-menu li { + border-right: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-light .sub-menu-w ul.sub-menu li a { + color: #3E4B5B; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-dark ul.main-menu > li.active { + background-color: #323c58; + border-right-color: #323c58; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-dark ul.main-menu > li.active .icon-w { + color: #fff; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-dark .sub-menu-w { + background-color: #323c58; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-dark .sub-menu-w ul.sub-menu li { + border-right: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-dark .sub-menu-w ul.sub-menu li a { + color: #fff; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-bright ul.main-menu > li.active { + background-color: #1b55e2; + border-right-color: #1b55e2; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-bright ul.main-menu > li.active .icon-w { + color: #fff; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-bright .sub-menu-w { + background-color: #1b55e2; +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-bright .sub-menu-w ul.sub-menu li { + border-right: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-position-top.menu-w.sub-menu-style-inside.sub-menu-color-bright .sub-menu-w ul.sub-menu li a { + color: #fff; +} + +.menu-position-top.menu-w.sub-menu-style-flyout .main-menu > li.has-sub-menu.active .sub-menu-w { + -webkit-transform: translate(50%, 0); + transform: translate(50%, 0); +} + +.menu-position-top.menu-w.sub-menu-style-flyout .sub-menu-w { + right: 50%; + top: 100%; + -webkit-transform: translate(50%, 20%); + transform: translate(50%, 20%); +} + +.menu-position-top.menu-w.menu-with-image { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(21, 32, 70, 0.1)), color-stop(75%, rgba(16, 20, 41, 0.2)), to(rgba(14, 21, 53, 0.65))), url(../images/menu_bg.jpg) !important; + background-image: linear-gradient(to bottom, rgba(21, 32, 70, 0.1) 0%, rgba(16, 20, 41, 0.2) 75%, rgba(14, 21, 53, 0.65) 100%), url(../images/menu_bg.jpg) !important; + background-color: transparent; + background-size: cover; + background-position: center center; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-top: 5px; + border-bottom: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.menu-position-top.menu-w.menu-with-image .top-icon > .os-icon, +.menu-position-top.menu-w.menu-with-image .messages-notifications > .os-icon { + color: #fff; + text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1); +} + +.menu-position-top.menu-w.menu-with-image > .element-search { + margin-left: auto; +} + +.menu-position-top.menu-w.menu-with-image .logo-w { + padding-left: 20px; +} + +.menu-position-top.menu-w.menu-with-image .logged-user-w { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; +} + +.menu-position-top.menu-w.menu-with-image .logged-user-w > .logged-user-i > .avatar-w { + border: 1px solid rgba(255, 255, 255, 0.7); + padding: 4px; +} + +.menu-position-top.menu-w.menu-with-image ul.main-menu { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + margin-top: 20px; + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; +} + +.menu-position-top.menu-w.menu-with-image ul.main-menu .icon-w { + color: #fff; +} + +.menu-position-top.menu-w.menu-with-image .menu-page-header { + display: block; + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + padding: 30px 20px; + margin-bottom: 0px; + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + margin-top: 30px; + color: #fff; + text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2); +} + +.menu-position-top.menu-w.menu-with-image h1.menu-page-header { + font-size: 3.25rem; +} + +.menu-position-top.menu-w.menu-with-image.color-scheme-light { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), color-stop(75%, rgba(255, 255, 255, 0.2)), to(rgba(255, 255, 255, 0.85))), url(../images/menu_bg.jpg) !important; + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.2) 75%, rgba(255, 255, 255, 0.85) 100%), url(../images/menu_bg.jpg) !important; +} + +.menu-position-top.menu-w.menu-with-image.color-scheme-light .top-icon > .os-icon, +.menu-position-top.menu-w.menu-with-image.color-scheme-light .messages-notifications > .os-icon { + color: #047bf8; + text-shadow: none; +} + +.menu-position-top.menu-w.menu-with-image.color-scheme-light .logo-w .logo-label { + color: #fff; +} + +.menu-position-top.menu-w.menu-with-image.color-scheme-light ul.main-menu .icon-w { + color: #047bf8; +} + +/* + #4. Mobile Menu +*/ +.menu-mobile { + background-color: #fff; + -webkit-box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + position: relative; + display: none; + /* Styles for sub menu */ +} + +.menu-mobile .mm-logo-buttons-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem; +} + +.menu-mobile .mm-logo-buttons-w .mm-logo { + vertical-align: middle; + text-align: left; + text-decoration: none; +} + +.menu-mobile .mm-logo-buttons-w .mm-logo img { + height: 25px; + display: inline-block; +} + +.menu-mobile .mm-logo-buttons-w .mm-logo span { + display: inline-block; + margin-left: 0.5rem; +} + +.menu-mobile .mm-logo-buttons-w .mm-logo:hover { + text-decoration: none; +} + +.menu-mobile .mm-logo-buttons-w .mm-buttons { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.menu-mobile .mm-logo-buttons-w .content-panel-open { + display: none; + font-size: 18px; + cursor: pointer; + margin-right: 20px; + padding-right: 20px; + border-right: 1px solid rgba(0, 0, 0, 0.1); + color: #047bf8; +} + +.menu-mobile .mm-logo-buttons-w .mobile-menu-trigger { + vertical-align: middle; + text-align: right; + font-size: 18px; + cursor: pointer; + color: #047bf8; +} + +.menu-mobile .menu-and-user { + display: none; + padding-bottom: 20px; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +.menu-mobile .logged-user-w { + text-align: left; + padding: 1rem; + padding-left: 35px; +} + +.menu-mobile .logged-user-w .avatar-w { + vertical-align: middle; +} + +.menu-mobile .logged-user-w .avatar-w img { + width: 40px; + height: 40px; +} + +.menu-mobile .logged-user-w .logged-user-info-w { + display: inline-block; + vertical-align: middle; + margin-left: 15px; +} + +.menu-mobile .mobile-menu-magic { + background-image: linear-gradient(-154deg, #1643A3 8%, #2E1170 90%); + border-radius: 6px; + padding: 40px; + text-align: center; + margin: 10px 20px; +} + +.menu-mobile .mobile-menu-magic:last-child { + margin-bottom: 0px; +} + +.menu-mobile .mobile-menu-magic h1, .menu-mobile .mobile-menu-magic h2, .menu-mobile .mobile-menu-magic h3, .menu-mobile .mobile-menu-magic h4, .menu-mobile .mobile-menu-magic h5 { + color: #fff; + margin-bottom: 5px; +} + +.menu-mobile .mobile-menu-magic p { + color: rgba(255, 255, 255, 0.6); +} + +.menu-mobile .mobile-menu-magic .btn-w { + margin-top: 15px; +} + +.menu-mobile .mobile-menu-magic .btn-white, .menu-mobile .mobile-menu-magic .all-wrapper .fc-button, .all-wrapper .menu-mobile .mobile-menu-magic .fc-button { + border: none; + -webkit-box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.3); + box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.3); +} + +.menu-mobile ul.main-menu { + list-style: none; + padding: 10px 1rem; + margin-bottom: 0px; +} + +.menu-mobile ul.main-menu > li { + display: block; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-mobile ul.main-menu > li:last-child { + border-bottom: none; +} + +.menu-mobile ul.main-menu > li.has-sub-menu > a:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\e91c"; + font-size: 7px; + color: rgba(0, 0, 0, 0.5); + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + position: absolute; + top: 50%; + right: 10px; +} + +.menu-mobile ul.main-menu > li.has-sub-menu.active .sub-menu { + display: block; +} + +.menu-mobile ul.main-menu > li > a { + color: #3E4B5B; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + position: relative; +} + +.menu-mobile ul.main-menu > li > a:focus { + text-decoration: none; +} + +.menu-mobile ul.main-menu > li > a:hover { + text-decoration: none; +} + +@media (min-width: 1025px) { + .menu-mobile ul.main-menu > li > a:hover .icon-w { + -webkit-transform: translateX(10px); + transform: translateX(10px); + } + + .menu-mobile ul.main-menu > li > a:hover span { + -webkit-transform: translateX(5px); + transform: translateX(5px); + } +} + +.menu-mobile ul.main-menu > li .icon-w { + color: #0073ff; + font-size: 27px; + display: block; + padding: 1rem; + width: 80px; + text-align: center; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-mobile ul.main-menu > li span { + padding: 1rem; + /*display: block;*/ + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.menu-mobile ul.main-menu > li .icon-w + span { + padding-left: 0px; +} + +.menu-mobile ul.sub-menu { + padding: 1rem 0px; + padding-left: 55px; + border-top: 1px solid rgba(0, 0, 0, 0.05); + display: none; +} + +.menu-mobile ul.sub-menu li { + padding: 0.4rem 10px 0.4rem 10px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.menu-mobile ul.sub-menu li:last-child { + border-bottom: none; +} + +.menu-mobile ul.sub-menu li a { + font-size: 0.81rem; +} + +.menu-mobile.color-scheme-dark { + background-image: -webkit-gradient(linear, left top, left bottom, from(#3D4D75), to(#31395B)); + background-image: linear-gradient(to bottom, #3D4D75 0%, #31395B 100%); + background-repeat: repeat-x; + background-image: -webkit-gradient(linear, left top, left bottom, from(#1c4cc3), to(#1c2e7b)); + background-image: linear-gradient(to bottom, #1c4cc3 0%, #1c2e7b 100%); + background-repeat: repeat-x; + color: rgba(255, 255, 255, 0.9); +} + +.menu-mobile.color-scheme-dark .side-menu-magic { + background-image: linear-gradient(-154deg, #6d16a3 8%, #5211e6 90%); +} + +.menu-mobile.color-scheme-dark ul.sub-menu li { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.menu-mobile.color-scheme-dark ul.sub-menu li a { + color: #fff; +} + +.menu-mobile.color-scheme-dark ul.main-menu .icon-w { + color: #babed0; +} + +.menu-mobile.color-scheme-dark ul.main-menu > li { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.menu-mobile.color-scheme-dark ul.main-menu > li > a { + color: #fff; +} + +.menu-mobile.color-scheme-dark ul.main-menu > li > a:before { + color: #fff; +} + +.menu-mobile.color-scheme-dark .sub-menu-w { + -webkit-box-shadow: 0px 2px 40px 0px rgba(0, 0, 0, 0.2); + box-shadow: 0px 2px 40px 0px rgba(0, 0, 0, 0.2); +} + +.menu-mobile.color-scheme-dark .mm-logo-buttons-w { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.menu-mobile.color-scheme-dark .mm-logo-buttons-w span { + color: #fff; +} + +.menu-mobile.color-scheme-dark .mm-logo-buttons-w .content-panel-open { + border-right-color: rgba(255, 255, 255, 0.1); +} + +.menu-mobile.color-scheme-dark .mm-logo-buttons-w .content-panel-open, +.menu-mobile.color-scheme-dark .mm-logo-buttons-w .mobile-menu-trigger { + color: #fff; +} + +.menu-mobile.color-scheme-dark .logged-user-w { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.menu-mobile.color-scheme-dark .logged-user-w .avatar-w { + border-color: #fff; +} + +.menu-mobile.color-scheme-dark .logged-user-w .logged-user-role { + color: rgba(255, 255, 255, 0.4); +} + +.menu-mobile.color-scheme-dark .mobile-menu-magic { + background-image: linear-gradient(-154deg, #6d16a3 8%, #5211e6 90%); +} + +/* 9. Styles for all element blocks */ +/* + + # -- STYLES NAVIGATION: + + #1. Element Wrapper Styles + #2. Tablo Element + #3. Charts & Legends + #4. Profile Tiles + #5. Users list element + #6. Tabs Controls + #7. Activity Boxes + #8. Note box + #9. Steps + #10. Invoice + #11. Error Page + #12. Authorization styles + #13. Timed Activities Element + #14. Progress Bar Element + #15. Balances + + +*/ +/* + #1. Element Wrapper Styles +*/ +.element-wrapper.compact { + padding-bottom: 2rem; +} + +.element-info { + margin-top: 1.5rem; + margin-bottom: 2rem; +} + +.element-info .element-subinfo { + margin-top: 1.5rem; +} + +.element-info h4 { + margin-top: 0.7rem; +} + +.element-info .element-detail { + padding: 1rem; + background-color: #f1f1f1; +} + +.element-wrapper .element-actions { + float: right; + position: relative; + z-index: 2; + margin-top: -0.2rem; +} + +.element-wrapper .element-actions .btn + .btn, .element-wrapper .element-actions .all-wrapper .fc-button + .btn, .all-wrapper .element-wrapper .element-actions .fc-button + .btn, .element-wrapper .element-actions .all-wrapper .btn + .fc-button, .all-wrapper .element-wrapper .element-actions .btn + .fc-button, .element-wrapper .element-actions .all-wrapper .fc-button + .fc-button, .all-wrapper .element-wrapper .element-actions .fc-button + .fc-button { + margin-left: 10px; +} + +.element-header { + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + padding-bottom: 1rem; + margin-bottom: 2rem; + position: relative; + z-index: 1; + font-family: 'NanumSquare', sans-serif; + font-size: 1.5rem; + font-weight: bold; +} + +@media (max-width: 414px) { + .element-header { + font-size: 1.5rem; + } + + .aei-image { + display: none; + } + + .activity-image { + display: none; + } + +} + +.element-header:after { + content: ""; + background-color: #0066ff; + width: 18px; + height: 6px; + border-radius: 2px; + display: block; + position: absolute; + bottom: -3px; + left: 0px; +} + +.element-header button { + vertical-align: middle; + padding: 0.7rem; + margin-left: 2rem; +} + +.element-wrapper .element-inner-header { + margin-bottom: 0.5rem; + margin-top: 0px; + display: block; +} + +.element-wrapper .element-inner-desc { + color: #999; + font-weight: 300; + font-size: 0.81rem; + display: block; +} + +.element-wrapper .element-search { + position: relative; +} + +.element-wrapper .element-search:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + left: 15px; + top: 48%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 20px; + content: "\e92c"; + color: rgba(0, 0, 0, 0.2); +} + +.element-wrapper .element-search input { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + background-color: #f1f1f1; + border-radius: 30px; + padding: 10px 15px 10px 50px; + display: block; + width: 100%; + outline: none; +} + +.element-wrapper .element-search input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.element-wrapper .element-search input:-ms-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.element-wrapper .element-search input::-ms-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.element-wrapper .element-search input::placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.box-style, .user-profile, .element-box, .invoice-w, .big-error-w, .activity-boxes-w .activity-box, .projects-list .project-box { + border-radius: 6px; + background-color: #fff; + -webkit-box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); +} + +.element-box, .invoice-w, .big-error-w { + padding: 1.5rem 2rem; + margin-bottom: 1rem; +} + +.element-box .os-tabs-controls, .invoice-w .os-tabs-controls, .big-error-w .os-tabs-controls { + margin-left: -2rem; + margin-right: -2rem; +} + +.element-box .os-tabs-controls .nav, .invoice-w .os-tabs-controls .nav, .big-error-w .os-tabs-controls .nav { + padding-left: 2rem; + padding-right: 2rem; +} + +.element-box .centered-header, .invoice-w .centered-header, .big-error-w .centered-header { + text-transform: uppercase; + letter-spacing: 2px; + text-align: center; + margin-bottom: 1rem; +} + +.element-box .element-box-header, .invoice-w .element-box-header, .big-error-w .element-box-header { + color: #046fdf; + margin-bottom: 1rem; +} + +.element-box-content + .form-header { + margin-top: 2rem; +} + +.element-box + .element-box, .invoice-w + .element-box, .big-error-w + .element-box, .element-box + .invoice-w, .invoice-w + .invoice-w, .big-error-w + .invoice-w, .element-box + .big-error-w, .invoice-w + .big-error-w, .big-error-w + .big-error-w { + margin-top: 2rem; +} + +.element-box-tp .input-search-w, +.element-box .input-search-w, .invoice-w .input-search-w, .big-error-w .input-search-w { + margin-bottom: 1rem; +} + +/* + #2. Tablo Element +*/ +.el-tablo { + display: block; +} + +.el-tablo:not(.centered) { + padding-right: 5px; +} + +.el-tablo .label { + display: block; + font-size: 0.80rem; + text-transform: uppercase; + color: rgba(0, 0, 0, 0.6); + letter-spacing: -1px; +} + +.el-tablo .value { + font-size: 2.43rem; + font-weight: 600; + font-family: 'NanumSquare', sans-serif; + letter-spacing: -0.08em; + line-height: 1.2; + display: inline-block; + vertical-align: middle; +} + +.el-tablo .value span { + font-size: 1.2rem; + font-weight: 300; + letter-spacing: 0em; + padding-left: 5px; + +} + +.el-tablo .value a:hover { + color: #f4516c; + text-decoration: none !important; +} + +.el-tablo .value2 { + font-size: 1.33rem; + font-weight: 600; + font-family: 'NanumSquare', sans-serif; + line-height: 1.2; + display: inline-block; + vertical-align: middle; + margin-top: 0.5rem; +} + +.el-tablo .trending { + padding: 3px 10px; + border-radius: 30px; + display: inline-block; + font-size: 0.81rem; + vertical-align: middle; + margin-left: 10px; +} + +.el-tablo .trending .os-icon { + margin-left: 2px; + vertical-align: middle; + font-size: 14px; +} + +.el-tablo .trending span { + display: inline-block; + vertical-align: middle; +} + +.el-tablo .trending-up { + color: #fff; + background-color: #5eb314; +} + +.el-tablo .trending-down { + color: #fff; + background-color: #e65252; +} + +.el-tablo .trending-up-basic { + color: #5eb314; + padding: 0px; +} + +.el-tablo .trending-down-basic { + color: #e65252; + padding: 0px; +} + +.el-tablo.trend-in-corner { + position: relative; +} + +.el-tablo.trend-in-corner .trending { + position: absolute; + top: 10px; + right: 10px; +} + +.el-tablo.centered { + text-align: center; + padding-left: 10px; + padding-right: 10px; +} + +.el-tablo.centered.padded { + padding-left: 10px; + padding-right: 10px; +} + +.el-tablo.padded { + padding: 2rem; +} + +.el-tablo.bigger .value { + font-size: 3.33rem; +} + +.el-tablo.bigger .label { + font-size: 0.9rem; +} + +.el-tablo.highlight .value { + color: #047bf8; +} + +.el-tablo.bold-label .label { + text-transform: none; + font-size: 0.85rem; + letter-spacing: 0px; +} + +a.el-tablo { + text-decoration: none; + display: block; + color: #3E4B5B; + -webkit-transition: all 0.25s ease; + transition: all 0.25s ease; +} + +a.el-tablo .value { + -webkit-transition: all 0.25s ease; + transition: all 0.25s ease; +} + +a.el-tablo .label { + -webkit-transition: all 0.25s ease; + transition: all 0.25s ease; +} + +a.el-tablo:hover { + -webkit-transform: translateY(-5px) scale(1.02); + transform: translateY(-5px) scale(1.02); + -webkit-box-shadow: 0px 5px 12px rgba(126, 142, 177, 0.2); + box-shadow: 0px 5px 12px rgba(126, 142, 177, 0.2); +} + +a.el-tablo:hover .value { + -webkit-transform: translateY(-3px); + transform: translateY(-3px); + color: #047bf8; +} + +a.el-tablo:hover .label { + color: #3395fc; +} + +a.el-tablo:hover.centered .value { + -webkit-transform: scale(1.1) translateY(-3px); + transform: scale(1.1) translateY(-3px); +} + +a.el-tablo:hover .label { + -webkit-transform: translateY(-2px); + transform: translateY(-2px); +} + +.el-buttons-list .btn, .el-buttons-list .all-wrapper .fc-button, .all-wrapper .el-buttons-list .fc-button { + margin-bottom: 0.5rem; +} + +.el-buttons-list.full-width .btn, .el-buttons-list.full-width .all-wrapper .fc-button, .all-wrapper .el-buttons-list.full-width .fc-button { + display: block; +} + +.el-tablo + .el-chart-w { + margin-top: 1rem; +} + +/* + #3. Charts & Legend +*/ +.el-chart-w { + position: relative; + text-align: center; +} + +.el-chart-w .inside-donut-chart-label { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + text-align: center; + font-size: 0.63rem; + text-transform: uppercase; + z-index: 1; +} + +.el-chart-w .inside-donut-chart-label strong { + display: block; + font-size: 1.98rem; + line-height: 1.1; +} + +.el-chart-w .inside-donut-chart-label span { + display: block; + color: rgba(0, 0, 0, 0.4); +} + +.el-chart-w canvas { + position: relative; + z-index: 2; + max-width: 100%; +} + +.el-chart-w + .el-legend { + border-top: 1px solid rgba(0, 0, 0, 0.1); + padding-top: 1.5rem; + margin-top: 2rem; +} + +.el-legend .legend-value-w { + margin-bottom: 0.5rem; +} + +.el-legend .legend-pin { + width: 10px; + height: 10px; + border-radius: 6px; + display: inline-block; + vertical-align: middle; + margin-right: 0.7rem; +} + +.el-legend .legend-value { + display: inline-block; + vertical-align: middle; +} + +/* + #4. Profile Tile +*/ +.profile-tile { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-bottom: 1rem; + margin-bottom: 1rem; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.profile-tile .profile-tile-box { + width: 110px; + text-align: center; + border-radius: 6px; + padding: 1.2rem 0.5rem 0.5rem; + background-color: #fff; + -webkit-box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + text-decoration: none; + color: #3E4B5B; + -webkit-transition: all 0.25s ease; + transition: all 0.25s ease; + display: block; +} + +.profile-tile .profile-tile-box:hover { + -webkit-transform: translateY(-5px) scale(1.02); + transform: translateY(-5px) scale(1.02); + -webkit-box-shadow: 0px 5px 12px rgba(126, 142, 177, 0.2); + box-shadow: 0px 5px 12px rgba(126, 142, 177, 0.2); +} + +.profile-tile .pt-avatar-w { + display: inline-block; + border-radius: 50px; + overflow: hidden; +} + +.profile-tile .pt-avatar-w img { + width: 60px; + height: auto; +} + +.profile-tile .pt-user-name { + border-top: 1px solid rgba(0, 0, 0, 0.1); + padding-top: 0.5rem; + margin-top: 0.5rem; + font-size: 0.63rem; + text-transform: uppercase; +} + +.profile-tile .profile-tile-meta { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding-left: 30px; +} + +.profile-tile .profile-tile-meta ul { + list-style: none; + font-size: 0.63rem; + text-transform: uppercase; + color: rgba(0, 0, 0, 0.4); + margin: 0px; + padding: 0px; +} + +.profile-tile .profile-tile-meta ul li { + margin-bottom: 3px; +} + +.profile-tile .profile-tile-meta ul strong { + color: #3E4B5B; + margin-left: 5px; +} + +.profile-tile .profile-tile-meta ul strong a { + color: #3E4B5B; + text-decoration: none; + border-bottom: 1px solid #3E4B5B; +} + +.profile-tile .pt-btn { + margin-top: 10px; +} + +.status-pill { + width: 12px; + height: 12px; + border-radius: 30px; + background-color: #eee; + display: inline-block; + vertical-align: middle; +} + +.status-pill.yellow { + background-color: #f8bc34; +} + +.status-pill.red { + background-color: #c21a1a; +} + +.status-pill.green { + background-color: #27ffe3; +} + +.status-pill.blue { + background-color: #0066ff; +} + +.status-pill.smaller { + width: 8px; + height: 8px; +} + +.status-pill + span { + margin-left: 5px; + display: inline-block; + vertical-align: middle; +} + +/* + #5. Users list element +*/ +.users-list-w .user-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 12px 0px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.users-list-w .user-w .user-avatar-w { + width: 50px; +} + +.users-list-w .user-w .user-avatar-w .user-avatar { + border-radius: 40px; + overflow: hidden; +} + +.users-list-w .user-w .user-avatar-w .user-avatar img { + max-width: 100%; + height: auto; +} + +.users-list-w .user-w.with-status .user-avatar-w { + position: relative; +} + +.users-list-w .user-w.with-status .user-avatar-w:before { + content: ""; + width: 10px; + height: 10px; + position: absolute; + top: 2px; + right: 2px; + border-radius: 10px; + -webkit-box-shadow: 0px 0px 0px 3px #fff; + box-shadow: 0px 0px 0px 3px #fff; +} + +.users-list-w .user-w.with-status.status-green .user-avatar-w:before { + background-color: #5eb314; +} + +.users-list-w .user-w.with-status.status-red .user-avatar-w:before { + background-color: #e65252; +} + +.users-list-w .user-w .user-name { + padding-left: 20px; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.users-list-w .user-w .user-title { + margin-bottom: 4px; +} + +.users-list-w .user-w .user-role { + font-size: 0.63rem; + text-transform: uppercase; + color: rgba(0, 0, 0, 0.4); +} + +.users-list-w .user-w .user-action { + width: 50px; + color: #047bf8; + font-size: 18px; +} + +/* + #6. Tabs Controls +*/ +.os-tabs-controls { + /*margin-bottom: 2rem;*/ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.os-tabs-controls .nav-pills { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-bottom: 1px solid #dee2e6; +} + +.os-tabs-controls .nav-tabs { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +/* + #7. Activity Boxes +*/ +.activity-boxes-w .activity-box-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.8rem 0px; + position: relative; +} + +.activity-boxes-w .activity-box-w:before { + content: ""; + display: block; + width: 3px; + background-color: #c0cadd; + top: 0px; + bottom: 0px; + left: 75px; + position: absolute; +} + +.activity-boxes-w .activity-box-w:after { + content: ""; + display: block; + width: 20px; + background-color: #c0cadd; + top: 50%; + height: 1px; + left: 80px; + position: absolute; + z-index: 1; +} + +.activity-boxes-w .activity-box-w:first-child:before { + top: 50%; +} + +.activity-boxes-w .activity-box-w:last-child:before { + bottom: 50%; +} + +.activity-boxes-w .activity-time { + -webkit-box-flex: 0; + -ms-flex: 0 0 100px; + flex: 0 0 100px; + font-size: 0.63rem; + text-transform: uppercase; + color: rgba(0, 0, 0, 0.4); + text-align: right; + padding-right: 40px; +} + +.activity-boxes-w .activity-box { + padding: 0.8rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + position: relative; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.activity-boxes-w .activity-box:before { + position: absolute; + top: 50%; + left: -30px; + content: ""; + width: 12px; + height: 12px; + border: 2px solid #60769f; + background-color: #f2f4f8; + border-radius: 20px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + z-index: 2; +} + +.activity-boxes-w .activity-avatar { + width: 50px; + border-radius: 50px; + overflow: hidden; + margin-right: 1.1rem; +} + +.activity-boxes-w .activity-avatar img { + max-width: 100%; + height: auto; +} + +.activity-boxes-w .activity-info { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.activity-boxes-w .activity-role { + font-size: 0.63rem; + text-transform: uppercase; + color: rgba(0, 0, 0, 0.4); + margin-bottom: 0.2rem; +} + +.activity-boxes-w .activity-title { + font-size: 0.63rem; + text-transform: uppercase; + display: block; +} + +/* + #8. Note box +*/ +.note-box { + padding: 15%; + background-color: #F8ECC7; + margin-bottom: 2rem; +} + +.note-box .note-header { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding-bottom: 1rem; + margin-bottom: 1rem; +} + +.note-box .note-content { + font-weight: 300; + color: rgba(0, 0, 0, 0.6); + font-size: 0.81rem; +} + +/* + #9. Steps +*/ +.step-contents .step-content { + padding: 0px 5%; + display: none; +} + +.step-contents .step-content.active { + display: block; +} + +.step-triggers { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 2.5rem; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.step-triggers .step-trigger { + padding-bottom: 1rem; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: center; + font-size: 1.08rem; + color: rgba(0, 0, 0, 0.3); + position: relative; + -webkit-transition: all 0.4s ease; + transition: all 0.4s ease; +} + +.step-triggers .step-trigger:focus { + text-decoration: none; +} + +.step-triggers .step-trigger:hover { + text-decoration: none; + color: #3E4B5B; + cursor: pointer; +} + +.step-triggers .step-trigger:before { + position: absolute; + content: ""; + height: 4px; + background-color: #047bf8; + left: 0px; + right: 100%; + bottom: -2px; + -webkit-transition: all 0.4s ease; + transition: all 0.4s ease; +} + +.step-triggers .step-trigger.complete:before { + right: 0px; +} + +.step-triggers .step-trigger.active { + color: #3E4B5B; +} + +.step-triggers .step-trigger.active:before { + right: 0px; +} + +/* + #10. Invoice +*/ +.invoice-w { + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + max-width: 800px; + position: relative; + overflow: hidden; + padding: 100px; + padding-bottom: 20px; +} + +.invoice-w:before { + width: 140%; + height: 450px; + background-color: #faf9f3; + position: absolute; + top: -15%; + left: -24%; + -webkit-transform: rotate(-27deg); + transform: rotate(-27deg); + content: ""; + z-index: 1; +} + +.invoice-w .infos { + position: relative; + z-index: 2; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.invoice-w .infos .info-1 { + font-size: 1.08rem; +} + +.invoice-w .infos .info-1 .company-name { + font-size: 2.25rem; + margin-bottom: 0.5rem; + margin-top: 10px; +} + +.invoice-w .infos .info-1 .company-extra { + font-size: 0.81rem; + color: rgba(0, 0, 0, 0.4); + margin-top: 1rem; +} + +.invoice-w .infos .info-2 { + padding-top: 140px; + text-align: right; +} + +.invoice-w .infos .info-2 .company-name { + margin-bottom: 1rem; + font-size: 1.26rem; +} + +.invoice-w .infos .info-2 .company-address { + color: rgba(0, 0, 0, 0.6); +} + +.invoice-w .terms { + font-size: 0.81rem; + margin-top: 2.5rem; +} + +.invoice-w .terms .terms-header { + font-size: 0.9rem; + margin-bottom: 10px; +} + +.invoice-w .terms .terms-content { + color: rgba(0, 0, 0, 0.4); +} + +.invoice-table thead th { + border-bottom: 2px solid #333; +} + +.invoice-table tbody tr td { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.invoice-table tbody tr:last-child td { + padding-bottom: 40px; +} + +.invoice-table tfoot tr td { + border-top: 3px solid #333; + font-size: 1.26rem; +} + +.invoice-heading { + margin-bottom: 4rem; + margin-top: 7rem; + position: relative; + z-index: 2; +} + +.invoice-heading h3 { + margin-bottom: 0px; +} + +.invoice-footer { + padding-top: 1rem; + padding-bottom: 1rem; + border-top: 1px solid rgba(0, 0, 0, 0.1); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + margin-top: 6rem; +} + +.invoice-footer .invoice-logo img { + vertical-align: middle; + height: 20px; + width: auto; + display: inline-block; +} + +.invoice-footer .invoice-logo span { + vertical-align: middle; + margin-left: 10px; + display: inline-block; +} + +.invoice-footer .invoice-info span { + display: inline-block; +} + +.invoice-footer .invoice-info span + span { + margin-left: 1rem; + padding-left: 1rem; + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.invoice-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.invoice-body .invoice-desc { + -webkit-box-flex: 0; + -ms-flex: 0 1 250px; + flex: 0 1 250px; + font-size: 1.17rem; +} + +/* + #11. Error Page +*/ +.big-error-w { + width: 450px; + text-align: center; + padding: 50px; + margin: 0px auto; + margin-top: 100px; +} + +.big-error-w h1 { + font-size: 4.75rem; + margin-bottom: 0px; +} + +.big-error-w h5 { + color: #047bf8; + margin-bottom: 3rem; +} + +.big-error-w h4 { + margin-bottom: 0px; +} + +.big-error-w form { + border-top: 1px solid rgba(0, 0, 0, 0.1); + padding-top: 1.5rem; + margin-top: 1.5rem; +} + +/* + #12. Authorization styles +*/ +.auth-box-w { + max-width: 450px; + margin: 0px auto; + + margin-top: 5%; +} + +.auth-box-w.wider { + max-width: 500px; +} + +.auth-box-w .logged-user-w { + padding-top: 0px; + padding-bottom: 10px; +} + +.auth-box-w .logo-w { + text-align: center; + padding: 10%; +} + +.auth-box-w .auth-header { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding-bottom: 1rem; + padding-top: 2.5rem; + position: relative; + z-index: 1; + font-weight: bold; + color: #030962; + font-family: 'Roboto'; + font-size: 40px; + line-height: 20px; + text-align: center; +} + +.auth-box-w .auth-header img { + width: 70px; +} + +.auth-box-w form { + padding: 20px 50px; + padding-bottom: 20px; +} + +.auth-box-w form .form-check-inline { + +} + +.auth-box-w form .form-group { + position: relative; +} + +.auth-box-w form .form-group .pre-icon { + position: absolute; + bottom: 5px; + font-size: 24px; + color: #047bf8; + left: -38px; + top: 32px; +} + +.auth-box-w .buttons-w { + padding-top: 1rem; + margin-top: 0.5rem; + border-top: 1px solid rgba(0, 0, 0, 0.05); +} + +.auth-box-w.centered { + text-align: center; +} + +.auth-box-w.centered .auth-header { + padding-left: 0px; +} + +.auth-box-w.centered .auth-header:after { + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + left: 50%; +} + +/* + #13. Timed Activities Element +*/ +.timed-activities { + margin-bottom: 1rem; + max-height: 600px; + overflow-y: auto; +} + +.timed-activity { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 2rem; + font-size: 1.08rem; +} + +.timed-activity .ta-date { + -webkit-box-flex: 0; + -ms-flex: 0 0 130px; + flex: 0 0 130px; + color: rgba(0, 0, 0, 0.4); + position: relative; + text-align: center; +} + +.timed-activity .ta-date span { + position: relative; + display: inline-block; +} + +.timed-activity .ta-date span:after { + content: ""; + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + bottom: -30px; + width: 16px; + height: 16px; + border: 3px solid #C76DC8; + border-radius: 8px; + background-color: #fff; +} + +.timed-activity .ta-date:before { + content: ""; + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + bottom: -20px; + width: 1px; + top: 70px; + background-color: rgba(0, 0, 0, 0.1); +} + +.timed-activity .ta-record-w { + padding-left: 40px; +} + +.timed-activity .ta-record { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 10px; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} + +.timed-activity .ta-timestamp { + position: relative; + padding-right: 40px; + color: rgba(0, 0, 0, 0.4); + width: 110px; + white-space: nowrap; +} + +.timed-activity .ta-timestamp strong { + color: #3E4B5B; +} + +.timed-activity .ta-timestamp:after { + content: '\e910'; + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + color: rgba(0, 0, 0, 0.3); + font-size: 10px; + position: absolute; + top: 50%; + right: 15px; + -webkit-transform: translateY(-40%); + transform: translateY(-40%); + display: block; +} + +.timed-activity .ta-activity a { + display: inline-block; + padding-bottom: 1px; + border-bottom: 1px solid #047bf8; +} + +.timed-activity .ta-activity a:hover { + text-decoration: none; + color: #024994; + border-bottom-color: #024994; +} + +.timed-activities.compact .timed-activity { + display: block; + padding-left: 30px; + position: relative; +} + +.timed-activities.compact .timed-activity:before { + position: absolute; + width: 1px; + background-color: rgba(0, 0, 0, 0.1); + bottom: 0px; + top: 45px; + content: ""; + left: 8px; +} + +.timed-activities.compact .timed-activity .ta-date { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; + text-align: left; + margin-bottom: 1.5rem; +} + +.timed-activities.compact .timed-activity .ta-date:before { + display: none; +} + +.timed-activities.compact .timed-activity .ta-date span:after { + left: -30px; + top: 50%; + bottom: auto; + right: auto; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.timed-activities.compact .timed-activity .ta-record-w { + padding-left: 20px; +} + +.timed-activities.compact .timed-activity .ta-record { + display: block; +} + +.timed-activities.compact .timed-activity .ta-timestamp { + font-size: 0.79rem; + margin-bottom: 5px; +} + +.timed-activities.compact .timed-activity .ta-timestamp:after { + right: auto; + left: -20px; + font-size: 8px; +} + +.timed-activities.compact .timed-activity .ta-activity { + font-size: 0.8rem; + margin-bottom: 10px; + padding-bottom: 15px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +/* + #14. Progress Bar Element +*/ +.os-progress-bar { + margin-bottom: 1rem; +} + +.os-progress-bar .bar-labels { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + margin-bottom: 5px; +} + +.os-progress-bar .bar-labels span { + font-size: 0.72rem; +} + +.os-progress-bar .bar-labels span.bigger { + font-size: 0.99rem; +} + +.os-progress-bar .bar-label-left span { + margin-right: 5px; +} + +.os-progress-bar .bar-label-left span.positive { + color: #619B2E; +} + +.os-progress-bar .bar-label-left span.negative { + color: #D83536; +} + +.os-progress-bar .bar-label-right span { + margin-left: 5px; +} + +.os-progress-bar .bar-label-right span.info { + color: #456CF9; +} + +.os-progress-bar .bar-level-1, +.os-progress-bar .bar-level-2, +.os-progress-bar .bar-level-3 { + border-radius: 12px; + height: 6px; +} + +.os-progress-bar.blue .bar-level-1, .os-progress-bar.primary .bar-level-1 { + background-color: #F2F2F2; +} + +.os-progress-bar.blue .bar-level-2, .os-progress-bar.primary .bar-level-2 { + background-color: #65affd; +} + +.os-progress-bar.blue .bar-level-3, .os-progress-bar.primary .bar-level-3 { + background-color: #0362c6; +} + +.os-progress-bar.warning .bar-level-1 { + background-color: #F2F2F2; +} + +.os-progress-bar.warning .bar-level-2 { + background-color: #fcebb8; +} + +.os-progress-bar.warning .bar-level-3 { + background-color: #f9d66f; +} + +.os-progress-bar.danger .bar-level-1 { + background-color: #F2F2F2; +} + +.os-progress-bar.danger .bar-level-2 { + background-color: #f7acac; +} + +.os-progress-bar.danger .bar-level-3 { + background-color: #f16666; +} + +.os-progress-bar.success .bar-level-1 { + background-color: #F2F2F2; +} + +.os-progress-bar.success .bar-level-2 { + background-color: #c2f2ae; +} + +.os-progress-bar.success .bar-level-3 { + background-color: #90e86c; +} + +.os-progress-bar.info .bar-level-1 { + background-color: #F2F2F2; +} + +.os-progress-bar.info .bar-level-2 { + background-color: #9fd9f7; +} + +.os-progress-bar.info .bar-level-3 { + background-color: #58bef1; +} + +.os-progress-bar.floated { + float: right; + width: 220px; +} + +/* + #15. Balances +*/ +.element-balances { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 20px 0px; + -ms-flex-pack: distribute; + justify-content: space-around; +} + +.element-balances .balance { + padding: 10px 20px; +} + +.element-balances .balance + .balance { + border-left: 1px solid rgba(0, 0, 0, 0.03); +} + +.element-balances .balance-title { + color: rgba(90, 99, 126, 0.49); + font-size: 1.08rem; +} + +.element-balances .balance-value { + font-size: 2.07rem; + font-weight: 500; + color: #303a46; + white-space: nowrap; +} + +.element-balances .balance-value.danger { + color: #b71b1b; +} + +.element-balances .balance-value span { + display: inline-block; + vertical-align: middle; + line-height: 1.1; +} + +.element-balances .balance-value i { + line-height: 1.1; +} + +.element-balances .balance-value .balance-value-success { + color: #5eb314; +} + +.element-balances span.trending { + padding: 3px 10px; + border-radius: 30px; + display: inline-block; + font-size: 0.99rem; + vertical-align: middle; + margin-left: 10px; +} + +.element-balances span.trending .os-icon { + margin-left: 5px; + vertical-align: middle; + font-size: 14px; +} + +.element-balances span.trending span { + display: inline-block; + vertical-align: middle; +} + +.element-balances span.trending-up { + color: #fff; + background-color: #5eb314; +} + +.element-balances span.trending-down { + color: #fff; + background-color: #e65252; +} + +.element-balances span.trending-up-basic { + color: #5eb314; + padding: 0px; +} + +.element-balances span.trending-down-basic { + color: #e65252; + padding: 0px; +} + +/* 10. Helpful little styles */ +.relative { + position: relative; +} + +.padded-v { + padding: 1rem 10px; +} + +.padded-v-big { + padding: 2rem 10px; +} + +.padded { + padding: 1rem 2rem; +} + +.b-l { + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.b-r { + border-right: 1px solid rgba(0, 0, 0, 0.1); +} + +.b-t { + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +.b-b { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.m-t { + margin-top: 1rem; +} + +.m-b { + margin-bottom: 1rem; +} + +@media (min-width: 992px) { + .padded-lg { + padding: 1rem 2rem; + } + + .b-l-lg { + border-left: 1px solid rgba(0, 0, 0, 0.1); + } + + .b-r-lg { + border-right: 1px solid rgba(0, 0, 0, 0.1); + } + + .b-t-lg { + border-top: 1px solid rgba(0, 0, 0, 0.1); + } + + .b-b-lg { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + } +} + +@media (min-width: 1200px) { + .padded-xl { + padding: 1rem 2rem; + } + + .b-l-xl { + border-left: 1px solid rgba(0, 0, 0, 0.1); + } + + .b-r-xl { + border-right: 1px solid rgba(0, 0, 0, 0.1); + } + + .b-t-xl { + border-top: 1px solid rgba(0, 0, 0, 0.1); + } + + .b-b-xl { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + } +} + +.example-column { + padding: 12px 15px; + background: #EEF5FF; + border: 1px solid #AEC8FF; + margin-bottom: 15px; + text-align: center; +} + +.example-column + .example-column { + border-left: none; +} + +.example-content .progress + .progress { + margin-top: 1rem; +} + +.with-avatar { + margin-right: 5px; +} + +.with-avatar img { + display: inline-block; + vertical-align: middle; + border-radius: 50px; + width: 30px; + height: auto; + margin-right: 10px; +} + +.with-avatar span { + display: inline-block; + vertical-align: middle; +} + +a.with-avatar span { + border-bottom: 1px solid #047bf8; +} + +.add-agent-btn i { + margin-right: 15px; + padding-left: 5px; + font-size: 20px; + display: inline-block; + vertical-align: middle; +} + +.add-agent-btn span { + display: inline-block; + vertical-align: middle; + border-bottom: 1px solid #047bf8; +} + +/* 11. Icon Fonts */ +@font-face { + font-family: 'osfont'; + src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype"); + font-weight: normal; + font-style: normal; +} + +.os-icon { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.os-icon-activity:before { + content: "\e985"; +} + +.os-icon-airplay:before { + content: "\e988"; +} + +.os-icon-alert-circle:before { + content: "\e989"; +} + +.os-icon-alert-octagon:before { + content: "\e98a"; +} + +.os-icon-alert-triangle:before { + content: "\e98b"; +} + +.os-icon-align-center:before { + content: "\e98c"; +} + +.os-icon-align-justify:before { + content: "\e98d"; +} + +.os-icon-align-left:before { + content: "\e98e"; +} + +.os-icon-align-right:before { + content: "\e98f"; +} + +.os-icon-anchor:before { + content: "\e990"; +} + +.os-icon-aperture:before { + content: "\e991"; +} + +.os-icon-arrow-down6:before { + content: "\e992"; +} + +.os-icon-arrow-down-circle:before { + content: "\e993"; +} + +.os-icon-arrow-down-left:before { + content: "\e994"; +} + +.os-icon-arrow-down-right:before { + content: "\e995"; +} + +.os-icon-arrow-left6:before { + content: "\e996"; +} + +.os-icon-arrow-left-circle:before { + content: "\e997"; +} + +.os-icon-arrow-right7:before { + content: "\e998"; +} + +.os-icon-arrow-right-circle:before { + content: "\e999"; +} + +.os-icon-arrow-up6:before { + content: "\e99a"; +} + +.os-icon-arrow-up-circle:before { + content: "\e99b"; +} + +.os-icon-arrow-up-left:before { + content: "\e99c"; +} + +.os-icon-arrow-up-right:before { + content: "\e99d"; +} + +.os-icon-at-sign:before { + content: "\e99e"; +} + +.os-icon-award:before { + content: "\e99f"; +} + +.os-icon-bar-chart:before { + content: "\e9a0"; +} + +.os-icon-bar-chart-2:before { + content: "\e9a1"; +} + +.os-icon-battery:before { + content: "\e9a2"; +} + +.os-icon-battery-charging:before { + content: "\e9a3"; +} + +.os-icon-bell:before { + content: "\e9a4"; +} + +.os-icon-bell-off:before { + content: "\e9a5"; +} + +.os-icon-bluetooth:before { + content: "\e9a6"; +} + +.os-icon-bold:before { + content: "\e9a7"; +} + +.os-icon-book:before { + content: "\e9a8"; +} + +.os-icon-book-open:before { + content: "\e9a9"; +} + +.os-icon-bookmark:before { + content: "\e9aa"; +} + +.os-icon-box:before { + content: "\e9ab"; +} + +.os-icon-briefcase:before { + content: "\e9ac"; +} + +.os-icon-calendar:before { + content: "\e9ad"; +} + +.os-icon-camera:before { + content: "\e9ae"; +} + +.os-icon-camera-off:before { + content: "\e9af"; +} + +.os-icon-cast:before { + content: "\e9b0"; +} + +.os-icon-check:before { + content: "\e9b1"; +} + +.os-icon-check-circle:before { + content: "\e9b2"; +} + +.os-icon-check-square:before { + content: "\e9b3"; +} + +.os-icon-chevron-down:before { + content: "\e9b4"; +} + +.os-icon-chevron-left:before { + content: "\e9b5"; +} + +.os-icon-chevron-right:before { + content: "\e9b6"; +} + +.os-icon-chevron-up:before { + content: "\e9b7"; +} + +.os-icon-chevrons-down:before { + content: "\e9b8"; +} + +.os-icon-chevrons-left:before { + content: "\e9b9"; +} + +.os-icon-chevrons-right:before { + content: "\e9ba"; +} + +.os-icon-chevrons-up:before { + content: "\e9bb"; +} + +.os-icon-chrome:before { + content: "\e9bc"; +} + +.os-icon-circle:before { + content: "\e9bd"; +} + +.os-icon-clipboard:before { + content: "\e9be"; +} + +.os-icon-clock:before { + content: "\e9bf"; +} + +.os-icon-cloud:before { + content: "\e9c0"; +} + +.os-icon-cloud-drizzle:before { + content: "\e9c1"; +} + +.os-icon-cloud-lightning:before { + content: "\e9c2"; +} + +.os-icon-cloud-off:before { + content: "\e9c3"; +} + +.os-icon-cloud-rain:before { + content: "\e9c4"; +} + +.os-icon-cloud-snow:before { + content: "\e9c5"; +} + +.os-icon-code:before { + content: "\e9c6"; +} + +.os-icon-codepen:before { + content: "\e9c7"; +} + +.os-icon-command:before { + content: "\e9c8"; +} + +.os-icon-compass:before { + content: "\e9c9"; +} + +.os-icon-copy:before { + content: "\e9ca"; +} + +.os-icon-corner-down-left:before { + content: "\e9cb"; +} + +.os-icon-corner-down-right:before { + content: "\e9cc"; +} + +.os-icon-corner-left-down:before { + content: "\e9cd"; +} + +.os-icon-corner-left-up:before { + content: "\e9ce"; +} + +.os-icon-corner-right-down:before { + content: "\e9cf"; +} + +.os-icon-corner-right-up:before { + content: "\e9d0"; +} + +.os-icon-corner-up-left:before { + content: "\e9d1"; +} + +.os-icon-corner-up-right:before { + content: "\e9d2"; +} + +.os-icon-cpu:before { + content: "\e9d3"; +} + +.os-icon-credit-card:before { + content: "\e9d4"; +} + +.os-icon-crop:before { + content: "\e9d5"; +} + +.os-icon-crosshair:before { + content: "\e9d6"; +} + +.os-icon-database:before { + content: "\e9d7"; +} + +.os-icon-delete:before { + content: "\e9d8"; +} + +.os-icon-disc:before { + content: "\e9d9"; +} + +.os-icon-dollar-sign:before { + content: "\e9da"; +} + +.os-icon-download:before { + content: "\e9db"; +} + +.os-icon-download-cloud:before { + content: "\e9dc"; +} + +.os-icon-droplet:before { + content: "\e9dd"; +} + +.os-icon-edit:before { + content: "\e9de"; +} + +.os-icon-edit-2:before { + content: "\e9df"; +} + +.os-icon-edit-32:before { + content: "\e9e0"; +} + +.os-icon-external-link:before { + content: "\e9e1"; +} + +.os-icon-eye:before { + content: "\e9e2"; +} + +.os-icon-eye-off:before { + content: "\e9e3"; +} + +.os-icon-facebook2:before { + content: "\e9e4"; +} + +.os-icon-fast-forward:before { + content: "\e9e5"; +} + +.os-icon-feather:before { + content: "\e9e6"; +} + +.os-icon-file:before { + content: "\e9e7"; +} + +.os-icon-file-minus:before { + content: "\e9e8"; +} + +.os-icon-file-plus:before { + content: "\e9e9"; +} + +.os-icon-file-text:before { + content: "\e9ea"; +} + +.os-icon-film:before { + content: "\e9eb"; +} + +.os-icon-filter:before { + content: "\e9ec"; +} + +.os-icon-flag:before { + content: "\e9ed"; +} + +.os-icon-folder:before { + content: "\e9ee"; +} + +.os-icon-folder-minus:before { + content: "\e9ef"; +} + +.os-icon-folder-plus:before { + content: "\e9f0"; +} + +.os-icon-git-branch:before { + content: "\e9f1"; +} + +.os-icon-git-commit:before { + content: "\e9f2"; +} + +.os-icon-git-merge:before { + content: "\e9f3"; +} + +.os-icon-git-pull-request:before { + content: "\e9f4"; +} + +.os-icon-github:before { + content: "\e9f5"; +} + +.os-icon-gitlab:before { + content: "\e9f6"; +} + +.os-icon-globe:before { + content: "\e9f7"; +} + +.os-icon-grid:before { + content: "\e9f8"; +} + +.os-icon-hard-drive:before { + content: "\e9f9"; +} + +.os-icon-hash:before { + content: "\e9fa"; +} + +.os-icon-headphones:before { + content: "\e9fb"; +} + +.os-icon-heart:before { + content: "\e9fc"; +} + +.os-icon-help-circle:before { + content: "\e9fd"; +} + +.os-icon-home:before { + content: "\e9fe"; +} + +.os-icon-image:before { + content: "\e9ff"; +} + +.os-icon-inbox:before { + content: "\ea00"; +} + +.os-icon-info:before { + content: "\ea01"; +} + +.os-icon-instagram:before { + content: "\ea02"; +} + +.os-icon-italic:before { + content: "\ea03"; +} + +.os-icon-layers:before { + content: "\ea04"; +} + +.os-icon-layout:before { + content: "\ea05"; +} + +.os-icon-life-buoy:before { + content: "\ea06"; +} + +.os-icon-link:before { + content: "\ea07"; +} + +.os-icon-link-2:before { + content: "\ea08"; +} + +.os-icon-linkedin:before { + content: "\ea09"; +} + +.os-icon-list:before { + content: "\ea0a"; +} + +.os-icon-loader:before { + content: "\ea0b"; +} + +.os-icon-lock:before { + content: "\ea0c"; +} + +.os-icon-log-in:before { + content: "\ea0d"; +} + +.os-icon-log-out:before { + content: "\ea0e"; +} + +.os-icon-mail:before { + content: "\ea0f"; +} + +.os-icon-map:before { + content: "\ea10"; +} + +.os-icon-map-pin:before { + content: "\ea11"; +} + +.os-icon-maximize:before { + content: "\ea12"; +} + +.os-icon-maximize-2:before { + content: "\ea13"; +} + +.os-icon-menu:before { + content: "\ea14"; +} + +.os-icon-message-circle:before { + content: "\ea15"; +} + +.os-icon-message-square:before { + content: "\ea16"; +} + +.os-icon-mic:before { + content: "\ea17"; +} + +.os-icon-mic-off:before { + content: "\ea18"; +} + +.os-icon-minimize:before { + content: "\ea19"; +} + +.os-icon-minimize-2:before { + content: "\ea1a"; +} + +.os-icon-minus2:before { + content: "\ea1b"; +} + +.os-icon-minus-circle:before { + content: "\ea1c"; +} + +.os-icon-minus-square:before { + content: "\ea1d"; +} + +.os-icon-monitor:before { + content: "\ea1e"; +} + +.os-icon-moon:before { + content: "\ea1f"; +} + +.os-icon-more-horizontal:before { + content: "\ea20"; +} + +.os-icon-more-vertical:before { + content: "\ea21"; +} + +.os-icon-move:before { + content: "\ea22"; +} + +.os-icon-music:before { + content: "\ea23"; +} + +.os-icon-navigation:before { + content: "\ea24"; +} + +.os-icon-navigation-2:before { + content: "\ea25"; +} + +.os-icon-octagon:before { + content: "\ea26"; +} + +.os-icon-package:before { + content: "\ea27"; +} + +.os-icon-paperclip:before { + content: "\ea28"; +} + +.os-icon-pause:before { + content: "\ea29"; +} + +.os-icon-pause-circle:before { + content: "\ea2a"; +} + +.os-icon-percent:before { + content: "\ea2b"; +} + +.os-icon-phone:before { + content: "\ea2c"; +} + +.os-icon-phone-call:before { + content: "\ea2d"; +} + +.os-icon-phone-forwarded:before { + content: "\ea2e"; +} + +.os-icon-phone-incoming:before { + content: "\ea2f"; +} + +.os-icon-phone-missed:before { + content: "\ea30"; +} + +.os-icon-phone-off:before { + content: "\ea31"; +} + +.os-icon-phone-outgoing:before { + content: "\ea32"; +} + +.os-icon-pie-chart:before { + content: "\ea33"; +} + +.os-icon-play:before { + content: "\ea34"; +} + +.os-icon-play-circle:before { + content: "\ea35"; +} + +.os-icon-plus:before { + content: "\ea36"; +} + +.os-icon-plus-circle:before { + content: "\ea37"; +} + +.os-icon-plus-square:before { + content: "\ea38"; +} + +.os-icon-pocket:before { + content: "\ea39"; +} + +.os-icon-power:before { + content: "\ea3a"; +} + +.os-icon-printer:before { + content: "\ea3b"; +} + +.os-icon-radio:before { + content: "\ea3c"; +} + +.os-icon-refresh-ccw:before { + content: "\ea3d"; +} + +.os-icon-refresh-cw:before { + content: "\ea3e"; +} + +.os-icon-repeat:before { + content: "\ea3f"; +} + +.os-icon-rewind:before { + content: "\ea40"; +} + +.os-icon-rotate-ccw:before { + content: "\ea41"; +} + +.os-icon-rotate-cw:before { + content: "\ea42"; +} + +.os-icon-rss:before { + content: "\ea43"; +} + +.os-icon-save:before { + content: "\ea44"; +} + +.os-icon-scissors:before { + content: "\ea45"; +} + +.os-icon-search2:before { + content: "\ea46"; +} + +.os-icon-send:before { + content: "\ea47"; +} + +.os-icon-server:before { + content: "\ea48"; +} + +.os-icon-settings:before { + content: "\ea49"; +} + +.os-icon-share:before { + content: "\ea4a"; +} + +.os-icon-share-2:before { + content: "\ea4b"; +} + +.os-icon-shield:before { + content: "\ea4c"; +} + +.os-icon-shield-off:before { + content: "\ea4d"; +} + +.os-icon-shopping-bag:before { + content: "\ea4e"; +} + +.os-icon-shopping-cart:before { + content: "\ea4f"; +} + +.os-icon-shuffle:before { + content: "\ea50"; +} + +.os-icon-sidebar:before { + content: "\ea51"; +} + +.os-icon-skip-back:before { + content: "\ea52"; +} + +.os-icon-skip-forward:before { + content: "\ea53"; +} + +.os-icon-slack:before { + content: "\ea54"; +} + +.os-icon-slash:before { + content: "\ea55"; +} + +.os-icon-sliders:before { + content: "\ea56"; +} + +.os-icon-smartphone:before { + content: "\ea57"; +} + +.os-icon-speaker:before { + content: "\ea58"; +} + +.os-icon-square:before { + content: "\ea59"; +} + +.os-icon-star:before { + content: "\ea5a"; +} + +.os-icon-stop-circle:before { + content: "\ea5b"; +} + +.os-icon-sun:before { + content: "\ea5c"; +} + +.os-icon-sunrise:before { + content: "\ea5d"; +} + +.os-icon-sunset:before { + content: "\ea5e"; +} + +.os-icon-tablet:before { + content: "\ea5f"; +} + +.os-icon-tag:before { + content: "\ea60"; +} + +.os-icon-target:before { + content: "\ea61"; +} + +.os-icon-terminal:before { + content: "\ea62"; +} + +.os-icon-thermometer:before { + content: "\ea63"; +} + +.os-icon-thumbs-down:before { + content: "\ea64"; +} + +.os-icon-thumbs-up:before { + content: "\ea65"; +} + +.os-icon-toggle-left:before { + content: "\ea66"; +} + +.os-icon-toggle-right:before { + content: "\ea67"; +} + +.os-icon-trash:before { + content: "\ea68"; +} + +.os-icon-trash-2:before { + content: "\ea69"; +} + +.os-icon-trending-down:before { + content: "\ea6a"; +} + +.os-icon-trending-up:before { + content: "\ea6b"; +} + +.os-icon-triangle:before { + content: "\ea6c"; +} + +.os-icon-truck:before { + content: "\ea6d"; +} + +.os-icon-tv:before { + content: "\ea6e"; +} + +.os-icon-twitter2:before { + content: "\ea6f"; +} + +.os-icon-type:before { + content: "\ea70"; +} + +.os-icon-umbrella:before { + content: "\ea71"; +} + +.os-icon-underline:before { + content: "\ea72"; +} + +.os-icon-unlock:before { + content: "\ea73"; +} + +.os-icon-upload:before { + content: "\ea74"; +} + +.os-icon-upload-cloud:before { + content: "\ea75"; +} + +.os-icon-user:before { + content: "\ea76"; +} + +.os-icon-user-check:before { + content: "\ea77"; +} + +.os-icon-user-minus:before { + content: "\ea78"; +} + +.os-icon-user-plus:before { + content: "\ea79"; +} + +.os-icon-user-x:before { + content: "\ea7a"; +} + +.os-icon-users:before { + content: "\ea7b"; +} + +.os-icon-video:before { + content: "\ea7c"; +} + +.os-icon-video-off:before { + content: "\ea7d"; +} + +.os-icon-voicemail:before { + content: "\ea7e"; +} + +.os-icon-volume:before { + content: "\ea7f"; +} + +.os-icon-volume-1:before { + content: "\ea80"; +} + +.os-icon-volume-2:before { + content: "\ea81"; +} + +.os-icon-volume-x:before { + content: "\ea82"; +} + +.os-icon-watch:before { + content: "\ea83"; +} + +.os-icon-wifi:before { + content: "\ea84"; +} + +.os-icon-wifi-off:before { + content: "\ea85"; +} + +.os-icon-wind:before { + content: "\ea86"; +} + +.os-icon-x:before { + content: "\ea87"; +} + +.os-icon-x-circle:before { + content: "\ea88"; +} + +.os-icon-x-square:before { + content: "\ea89"; +} + +.os-icon-zap:before { + content: "\ea8a"; +} + +.os-icon-zap-off:before { + content: "\ea8b"; +} + +.os-icon-zoom-in:before { + content: "\ea8c"; +} + +.os-icon-zoom-out:before { + content: "\ea8d"; +} + +.os-icon-star-full:before { + content: "\e970"; +} + +.os-icon-arrow-right6:before { + content: "\e986"; +} + +.os-icon-arrow-left7:before { + content: "\e987"; +} + +.os-icon-arrow-2-right:before { + content: "\e971"; +} + +.os-icon-minus:before { + content: "\e96f"; +} + +.os-icon-arrow-right:before { + content: "\e90e"; +} + +.os-icon-arrow-right2:before { + content: "\e90f"; +} + +.os-icon-arrow-right3:before { + content: "\e910"; +} + +.os-icon-arrow-right4:before { + content: "\e911"; +} + +.os-icon-arrow-right5:before { + content: "\e912"; +} + +.os-icon-arrow-left:before { + content: "\e913"; +} + +.os-icon-arrow-left2:before { + content: "\e914"; +} + +.os-icon-arrow-left3:before { + content: "\e915"; +} + +.os-icon-arrow-left4:before { + content: "\e916"; +} + +.os-icon-arrow-up:before { + content: "\e917"; +} + +.os-icon-arrow-down:before { + content: "\e918"; +} + +.os-icon-arrow-left5:before { + content: "\e919"; +} + +.os-icon-arrow-down2:before { + content: "\e91a"; +} + +.os-icon-arrow-down3:before { + content: "\e91b"; +} + +.os-icon-arrow-down4:before { + content: "\e91c"; +} + +.os-icon-arrow-up2:before { + content: "\e91d"; +} + +.os-icon-arrow-up3:before { + content: "\e91e"; +} + +.os-icon-arrow-down5:before { + content: "\e91f"; +} + +.os-icon-arrow-up4:before { + content: "\e920"; +} + +.os-icon-arrow-up5:before { + content: "\e921"; +} + +.os-icon-search:before { + content: "\e92c"; +} + +.os-icon-ui-34:before { + content: "\e984"; +} + +.os-icon-ui-21:before { + content: "\e983"; +} + +.os-icon-documents-15:before { + content: "\e97f"; +} + +.os-icon-documents-17:before { + content: "\e980"; +} + +.os-icon-documents-11:before { + content: "\e981"; +} + +.os-icon-documents-13:before { + content: "\e982"; +} + +.os-icon-ui-23:before { + content: "\e97e"; +} + +.os-icon-home-11:before { + content: "\e97a"; +} + +.os-icon-ui-09:before { + content: "\e97b"; +} + +.os-icon-old-tv-2:before { + content: "\e97c"; +} + +.os-icon-fire:before { + content: "\e97d"; +} + +.os-icon-home-10:before { + content: "\e976"; +} + +.os-icon-home-09:before { + content: "\e977"; +} + +.os-icon-home-13:before { + content: "\e978"; +} + +.os-icon-home-34:before { + content: "\e979"; +} + +.os-icon-ui-90:before { + content: "\e975"; +} + +.os-icon-ui-03:before { + content: "\e974"; +} + +.os-icon-ui-83:before { + content: "\e972"; +} + +.os-icon-ui-74:before { + content: "\e973"; +} + +.os-icon-pencil-12:before { + content: "\e96e"; +} + +.os-icon-ui-33:before { + content: "\e96c"; +} + +.os-icon-ui-49:before { + content: "\e96d"; +} + +.os-icon-grid-10:before { + content: "\e96b"; +} + +.os-icon-common-03:before { + content: "\e968"; +} + +.os-icon-ui-22:before { + content: "\e969"; +} + +.os-icon-ui-46:before { + content: "\e96a"; +} + +.os-icon-basic-1-138-quotes:before { + content: "\e966"; + color: #474a56; +} + +.os-icon-ui-07:before { + content: "\e962"; +} + +.os-icon-social-09:before { + content: "\e963"; +} + +.os-icon-finance-28:before { + content: "\e964"; +} + +.os-icon-finance-29:before { + content: "\e965"; +} + +.os-icon-checkmark:before { + content: "\e961"; +} + +.os-icon-ui-93:before { + content: "\e95d"; +} + +.os-icon-mail-14:before { + content: "\e95e"; +} + +.os-icon-phone-15:before { + content: "\e95f"; +} + +.os-icon-phone-18:before { + content: "\e960"; +} + +.os-icon-ui-55:before { + content: "\e95c"; +} + +.os-icon-mail-19:before { + content: "\e95a"; +} + +.os-icon-mail-18:before { + content: "\e95b"; +} + +.os-icon-grid-18:before { + content: "\e950"; +} + +.os-icon-ui-02:before { + content: "\e951"; +} + +.os-icon-ui-37:before { + content: "\e952"; +} + +.os-icon-common-07:before { + content: "\e953"; +} + +.os-icon-ui-54:before { + content: "\e954"; +} + +.os-icon-ui-44:before { + content: "\e955"; +} + +.os-icon-ui-15:before { + content: "\e956"; +} + +.os-icon-documents-03:before { + content: "\e957"; +} + +.os-icon-ui-92:before { + content: "\e958"; +} + +.os-icon-phone-21:before { + content: "\e959"; +} + +.os-icon-documents-07:before { + content: "\e94c"; +} + +.os-icon-others-29:before { + content: "\e94d"; +} + +.os-icon-ui-65:before { + content: "\e94e"; +} + +.os-icon-ui-51:before { + content: "\e94f"; +} + +.os-icon-mail-07:before { + content: "\e94b"; +} + +.os-icon-mail-01:before { + content: "\e949"; +} + +.os-icon-others-43:before { + content: "\e94a"; +} + +.os-icon-mail-12:before { + content: "\e967"; +} + +.os-icon-signs-11:before { + content: "\e946"; +} + +.os-icon-coins-4:before { + content: "\e947"; +} + +.os-icon-user-male-circle2:before { + content: "\e948"; +} + +.os-icon-emoticon-smile:before { + content: "\e943"; +} + +.os-icon-robot-2:before { + content: "\e944"; +} + +.os-icon-robot-1:before { + content: "\e945"; +} + +.os-icon-crown:before { + content: "\e942"; +} + +.os-icon-cancel-circle:before { + content: "\e93f"; +} + +.os-icon-cancel-square:before { + content: "\e940"; +} + +.os-icon-close:before { + content: "\e941"; +} + +.os-icon-grid-circles:before { + content: "\e93c"; +} + +.os-icon-grid-squares-22:before { + content: "\e93d"; +} + +.os-icon-grid-squares2:before { + content: "\e93e"; +} + +.os-icon-tasks-checked:before { + content: "\e93a"; +} + +.os-icon-hierarchy-structure-2:before { + content: "\e93b"; +} + +.os-icon-agenda-1:before { + content: "\e935"; +} + +.os-icon-cv-2:before { + content: "\e936"; +} + +.os-icon-grid-squares-2:before { + content: "\e937"; +} + +.os-icon-grid-squares:before { + content: "\e938"; +} + +.os-icon-calendar-time:before { + content: "\e939"; +} + +.os-icon-twitter:before { + content: "\e933"; +} + +.os-icon-facebook:before { + content: "\e934"; +} + +.os-icon-pie-chart-2:before { + content: "\e92d"; +} + +.os-icon-pie-chart-1:before { + content: "\e92e"; +} + +.os-icon-pie-chart-3:before { + content: "\e92f"; +} + +.os-icon-donut-chart-1:before { + content: "\e930"; +} + +.os-icon-bar-chart-up:before { + content: "\e931"; +} + +.os-icon-bar-chart-stats-up:before { + content: "\e932"; +} + +.os-icon-hamburger-menu-2:before { + content: "\e92a"; +} + +.os-icon-hamburger-menu-1:before { + content: "\e92b"; +} + +.os-icon-email-2-at:before { + content: "\e928"; +} + +.os-icon-email-2-at2:before { + content: "\e929"; +} + +.os-icon-fingerprint:before { + content: "\e927"; +} + +.os-icon-basic-2-259-calendar:before { + content: "\e926"; + color: #474a56; +} + +.os-icon-arrow-2-up:before { + content: "\e924"; +} + +.os-icon-arrow-2-down:before { + content: "\e925"; +} + +.os-icon-bar-chart-down:before { + content: "\e922"; +} + +.os-icon-graph-down:before { + content: "\e923"; +} + +.os-icon-pencil-1:before { + content: "\e90b"; +} + +.os-icon-edit-3:before { + content: "\e90c"; +} + +.os-icon-edit-1:before { + content: "\e90d"; +} + +.os-icon-database-remove:before { + content: "\e908"; +} + +.os-icon-pencil-2:before { + content: "\e909"; +} + +.os-icon-link-3:before { + content: "\e90a"; +} + +.os-icon-email-forward:before { + content: "\e907"; +} + +.os-icon-delivery-box-2:before { + content: "\e900"; +} + +.os-icon-wallet-loaded:before { + content: "\e901"; +} + +.os-icon-newspaper:before { + content: "\e902"; +} + +.os-icon-window-content:before { + content: "\e903"; +} + +.os-icon-donut-chart-2:before { + content: "\e904"; +} + +.os-icon-text-input:before { + content: "\e905"; +} + +.os-icon-user-male-circle:before { + content: "\e906"; +} + +/* 12. Chat */ +/* + +Chat Styles + +#1. Popup chat on a side + +*/ +/* +#1. Popup chat on a side +*/ +.floated-chat-btn { + z-index: 999; + position: fixed; + bottom: 10px; + right: 10px; + background: #097CFF; + -webkit-box-shadow: 0 2px 20px 0 rgba(46, 130, 255, 0.75); + box-shadow: 0 2px 20px 0 rgba(46, 130, 255, 0.75); + border-radius: 75px; + color: #fff; + padding: 12px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + vertical-align: middle; + font-size: 1.08rem; + cursor: pointer; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.floated-chat-btn i { + vertical-align: middle; + display: inline-block; + font-size: 24px; +} + +.floated-chat-btn span { + vertical-align: middle; + display: inline-block; + font-weight: 500; +} + +.floated-chat-btn i + span { + margin-left: 15px; +} + +.floated-chat-btn:hover { + -webkit-transform: scale(1.05); + transform: scale(1.05); + background-color: #0064d5; + -webkit-box-shadow: 0 2px 30px 0 rgba(46, 130, 255, 0.8); + box-shadow: 0 2px 30px 0 rgba(46, 130, 255, 0.8); +} + +.floated-chat-w { + z-index: 9999; + position: fixed; + bottom: 70px; + right: 10px; + visibility: hidden; + opacity: 0; + -webkit-transform: translateY(-20px); + transform: translateY(-20px); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.floated-chat-w.active { + visibility: visible; + opacity: 1; + -webkit-transform: translateY(0px); + transform: translateY(0px); +} + +.floated-chat-w .floated-chat-i { + background-color: #fff; + /* Rectangle: */ + -webkit-box-shadow: 0 2px 40px 0 rgba(43, 132, 210, 0.41); + box-shadow: 0 2px 40px 0 rgba(43, 132, 210, 0.41); + border-radius: 10px; + width: 320px; + position: relative; +} + +.floated-chat-w .floated-chat-i .chat-close { + position: absolute; + top: 10px; + right: 10px; + color: rgba(0, 0, 0, 0.8); + font-size: 10px; + cursor: pointer; +} + +.floated-chat-w .chat-head { + padding: 20px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.floated-chat-w .chat-head .user-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.floated-chat-w .chat-head .user-w .user-avatar-w { + width: 50px; +} + +.floated-chat-w .chat-head .user-w .user-avatar-w .user-avatar { + border-radius: 40px; + overflow: hidden; +} + +.floated-chat-w .chat-head .user-w .user-avatar-w .user-avatar img { + max-width: 100%; + height: auto; +} + +.floated-chat-w .chat-head .user-w.with-status .user-avatar-w { + position: relative; +} + +.floated-chat-w .chat-head .user-w.with-status .user-avatar-w:before { + content: ""; + width: 10px; + height: 10px; + position: absolute; + top: 2px; + right: 2px; + border-radius: 10px; + -webkit-box-shadow: 0px 0px 0px 3px #fff; + box-shadow: 0px 0px 0px 3px #fff; +} + +.floated-chat-w .chat-head .user-w.with-status.status-green .user-avatar-w:before { + background-color: #5eb314; +} + +.floated-chat-w .chat-head .user-w.with-status.status-red .user-avatar-w:before { + background-color: #e65252; +} + +.floated-chat-w .chat-head .user-w .user-name { + padding-left: 20px; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.floated-chat-w .chat-head .user-w .user-title { + margin-bottom: 2px; + color: #047bf8; +} + +.floated-chat-w .chat-head .user-w .user-role { + font-weight: 500; + font-size: 0.71rem; +} + +.floated-chat-w .chat-head .user-w .user-action { + width: 50px; + color: #047bf8; + font-size: 18px; +} + +.chat-messages { + /*padding: 20px; + height: 300px; + position: relative; + overflow: hidden;*/ +} + +.chat-messages .message { + margin-bottom: 2px; +} + +.chat-messages .message .message-content { + /*color: #594939; + + background-color: #e2efff; + border-radius: 20px 20px 20px 0px; + + display: inline-block; + text-align: left;*/ + padding: 5px 0px; +} + +.chat-messages .message.self { + text-align: right; +} + +.chat-messages .message.self .message-content { + border-radius: 20px 20px 0px 20px; + background-color: #e2efff; + color: #2A4E7F; +} + +.date-break { + text-align: left; + margin-bottom: 0px; + color: rgba(0, 0, 0, 0.4); + font-size: 0.69rem; +} + +.floated-chat-w .chat-controls { + padding: 10px; + padding-top: 10px; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +.floated-chat-w .chat-controls .message-input { + border: 1px solid transparent; + background-color: #fff; + padding: 10px; + width: 100%; + display: block; + border-radius: 0px; +} + +.floated-chat-w .chat-controls .message-input:focus { + outline: none; + border-bottom: 1px solid #047bf8; +} + +.floated-chat-w .chat-controls .chat-extra { + text-align: left; + padding-left: 0px; + padding-top: 10px; +} + +.floated-chat-w .chat-controls .chat-extra a { + display: inline-block; + margin-left: 10px; + font-size: 16px; + position: relative; +} + +.floated-chat-w .chat-controls .chat-extra a .extra-tooltip { + background-color: rgba(0, 0, 0, 0.9); + color: #fff; + font-weight: 500; + font-size: 0.63rem; + text-transform: uppercase; + display: inline-block; + padding: 2px 7px; + border-radius: 4px; + position: absolute; + top: -20px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + white-space: nowrap; + display: none; +} + +.floated-chat-w .chat-controls .chat-extra a:hover { + text-decoration: none; +} + +.floated-chat-w .chat-controls .chat-extra a:hover .extra-tooltip { + display: block; +} + +/* 13. App - Email */ +/* Email App styles +#1. EMAIL APP WRAPPER +#2. LEFT MENU +#3. MESSAGES LIST +#4. CONTENT BOX +#5. MESSAGE BOX +#6. REPLY +#7. FOLDED STYLES +#8. DARK SCHEME +*/ +/* #1. EMAIL APP WRAPPER */ +.app-email-w a:focus, .app-email-w a:hover { + text-decoration: none; +} + +.app-email-i { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + background-color: #fff; + border-radius: 6px; +} + +/* #2. LEFT MENU */ +.ae-side-menu { + -webkit-box-flex: 0; + -ms-flex: 0 0 170px; + flex: 0 0 170px; + border-right: 1px solid rgba(0, 0, 0, 0.1); + background-color: #ebeef3; +} + +.ae-side-menu .aem-head { + padding: 10px 20px; + height: 50px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + font-size: 10px; +} + +.ae-side-menu .ae-main-menu { + list-style: none; + padding: 0px; + margin: 0px; +} + +.ae-side-menu .ae-main-menu li { + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + position: relative; +} + +.ae-side-menu .ae-main-menu li a { + display: block; + padding: 20px; +} + +.ae-side-menu .ae-main-menu li a i { + font-size: 20px; + display: inline-block; + vertical-align: middle; + color: #047bf8; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.ae-side-menu .ae-main-menu li a span { + margin-left: 20px; + display: inline-block; + vertical-align: middle; + color: #3E4B5B; + font-weight: 500; + text-transform: uppercase; +} + +.ae-side-menu .ae-main-menu li:after { + content: ""; + position: absolute; + right: 0px; + top: -1px; + bottom: -1px; + width: 5px; + opacity: 0; + background-color: #047bf8; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.ae-side-menu .ae-main-menu li:hover a i { + -webkit-transform: translateX(5px); + transform: translateX(5px); +} + +.ae-side-menu .ae-main-menu li:hover:after, .ae-side-menu .ae-main-menu li.active:after { + opacity: 1; +} + +.ae-side-menu .ae-labels { + margin-top: 20px; +} + +.ae-side-menu .ae-labels .ae-labels-header { + padding: 20px; +} + +.ae-side-menu .ae-labels .ae-labels-header i { + color: #047bf8; + font-size: 20px; + vertical-align: middle; + display: inline-block; +} + +.ae-side-menu .ae-labels .ae-labels-header span { + margin-left: 20px; + text-transform: uppercase; + font-weight: 500; + vertical-align: middle; + display: inline-block; +} + +.ae-side-menu .ae-labels .ae-label { + display: block; + padding: 10px; + padding-left: 30px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + position: relative; + color: #3E4B5B; + white-space: nowrap; +} + +.ae-side-menu .ae-labels .ae-label .label-pin { + display: inline-block; + width: 8px; + height: 8px; + border-radius: 10px; + background-color: #047bf8; + vertical-align: middle; +} + +.ae-side-menu .ae-labels .ae-label .label-value { + display: inline-block; + vertical-align: middle; + margin-left: 10px; +} + +.ae-side-menu .ae-labels .ae-label:before { + content: ""; + position: absolute; + left: 10px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.ae-side-menu .ae-labels .ae-label.ae-label-red .label-pin { + background-color: #e65252; +} + +.ae-side-menu .ae-labels .ae-label.ae-label-green .label-pin { + background-color: #5eb314; +} + +.ae-side-menu .ae-labels .ae-label.ae-label-yellow .label-pin { + background-color: #fbe4a0; +} + +/* #3. MESSAGES LIST */ +.ae-list-w { + -webkit-box-flex: 0; + -ms-flex: 0 0 370px; + flex: 0 0 370px; + border-right: 1px solid rgba(0, 0, 0, 0.1); + background-color: #fff; +} + +.ae-list-w .ael-head { + padding: 10px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 50px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.ae-list-w .ael-head a { + display: inline-block; + vertical-align: middle; +} + +.ae-list-w .ael-head a i { + color: #047bf8; + font-size: 20px; +} + +.ae-list-w .ael-head a:hover { + text-decoration: none; +} + +.ae-list-w .ael-head a + a { + margin-left: 15px; +} + +.ae-list-w .ae-list { + height: 1000px; + overflow: hidden; + position: relative; +} + +.ae-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + /*align-items: center;*/ + padding: 20px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + position: relative; + +} + +.ae-item.with-status .user-avatar-w { + position: relative; +} + +.ae-item.with-status .user-avatar-w:before { + content: ""; + width: 10px; + height: 10px; + position: absolute; + top: 2px; + right: 2px; + border-radius: 10px; + -webkit-box-shadow: 0px 0px 0px 3px #fff; + box-shadow: 0px 0px 0px 3px #fff; +} + +.ae-item.with-status.status-green .user-avatar-w:before { + background-color: #5eb314; +} + +.ae-item.with-status.status-red .user-avatar-w:before { + background-color: #e65252; +} + +.ae-item.with-status.status-blue .user-avatar-w:before { + background-color: #047bf8; +} + +.ae-item.with-status.status-yellow .user-avatar-w:before { + background-color: #fbe4a0; +} + +.ae-item.active { + background-color: #047bf8; + color: #fff; +} + +.aei-content { + width: 100%; +} + +.aei-content .aei-title { + color: #000; + font-size: 0.80rem; + font-weight: bold; + width: 100%; +} + +.aei-content .aei-sub-title { + color: #fff; +} + +.aei-content .aei-text { + color: rgba(255, 255, 255, 0.5); +} + +.aei-content .aei-delete { + position: absolute; + top: 0px; + right: -10px; + color: rgba(0, 0, 0, 0.7); + font-size: 0.5rem; + cursor: pointer; +} + +.ae-list-w .ae-list .ae-item.active .aei-timestamp { + color: rgba(255, 255, 255, 0.5); +} + +.ae-list-w .ae-list .ae-item.active .user-avatar-w { + -webkit-box-shadow: 0px 0px 0px 3px #fff; + box-shadow: 0px 0px 0px 3px #fff; + border-radius: 50%; +} + +.ae-list-w .ae-list .ae-item:hover { + background-color: #f9f9f9; +} + +.ae-list-w .ae-list .ae-item:hover.active { + background-color: #047bf8; +} + +.aei-image { + margin-right: 15px; + +} + +.aei-image .user-avatar-w { + width: 40px; +} + +.aei-image .user-avatar-w img { + border-radius: 50px; + display: block; + width: 40px; + height: 40px; +} + +.aei-content { + position: relative; +} + +.aei-content .aei-timestamp { + color: rgba(0, 0, 0, 0.6); + font-size: 0.69rem; + margin-top: 5px; +} + +.aei-content .aei-title { + margin-bottom: 1px !important; + margin-top: 0px; +} + +.aei-content .aei-sub-title { + color: #a7aeb5; + text-transform: uppercase; + font-size: 0.72rem; + font-weight: 500; +} + +.aei-content .aei-text { + color: rgba(0, 0, 0, 0.7); + font-size: 0.9rem; +} + +.ae-list-w .ae-load-more { + display: block; + padding: 10px; + padding-bottom: 15px; + text-align: center; + cursor: pointer; +} + +.ae-list-w .ae-load-more i { + display: inline-block; + vertical-align: middle; + font-size: 12px; + margin-right: 5px; +} + +.ae-list-w .ae-load-more span { + display: inline-block; + vertical-align: middle; + border-bottom: 1px solid #047bf8; +} + +.ae-list-w .ae-load-more:hover span { + border-bottom-color: #0362c6; +} + +/* #4. CONTENT BOX */ +.ae-content-w { + background-color: #f6f7f8; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.ae-content-w .aec-head { + height: 50px; + padding: 10px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + background-color: #fff; +} + +.ae-content-w .aec-head .separate { + border-right: 1px solid rgba(0, 0, 0, 0.1); + padding-right: 15px; + margin-right: 5px; +} + +.ae-content-w .aec-head a { + display: inline-block; + vertical-align: middle; +} + +.ae-content-w .aec-head a i { + color: #047bf8; + font-size: 20px; +} + +.ae-content-w .aec-head a.highlight i { + color: #CB9E48; +} + +.ae-content-w .aec-head a:hover { + text-decoration: none; +} + +.ae-content-w .aec-head a + a { + margin-left: 15px; +} + +.actions-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.ae-content-w .aec-head .actions-right { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.ae-content-w .aec-head .user-avatar { + margin-left: 40px; + padding-left: 10px; + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.ae-content-w .aec-head .user-avatar img { + display: block; + width: 30px; + height: auto; + border-radius: 40px; +} + +.ae-content { + padding: 40px; +} + +/* #5. MESSAGE BOX */ +.aec-full-message-w { + position: relative; + z-index: 2; + margin-bottom: 40px; +} + +.aec-full-message-w .more-messages { + position: absolute; + left: 50%; + top: -55px; + color: rgba(0, 0, 0, 0.4); + font-size: 0.72rem; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + display: inline-block; + border-bottom: 1px solid transparent; + padding-bottom: 1px; +} + +.aec-full-message-w .more-messages:hover { + cursor: pointer; + color: #047bf8; + border-bottom: 1px solid #047bf8; +} + +.aec-full-message-w.show-pack { + margin-top: 40px; +} + +.aec-full-message-w.show-pack:before { + z-index: -1; + content: ""; + position: absolute; + bottom: 30px; + left: 30px; + right: 30px; + top: -30px; + background-color: rgba(255, 255, 255, 0.2); + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1); + border-radius: 4px; +} + +.aec-full-message-w.show-pack:after { + z-index: -1; + content: ""; + position: absolute; + bottom: 15px; + left: 15px; + right: 15px; + top: -15px; + background-color: rgba(255, 255, 255, 0.7); + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1); + border-radius: 4px; +} + +.aec-full-message-w .aec-full-message { + background-color: #fff; + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1); + border-radius: 4px; +} + +.aec-full-message-w .message-head { + padding: 20px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.aec-full-message-w .message-head .user-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.aec-full-message-w .message-head .user-w .user-avatar-w { + width: 50px; +} + +.aec-full-message-w .message-head .user-w .user-avatar-w .user-avatar { + border-radius: 40px; + overflow: hidden; +} + +.aec-full-message-w .message-head .user-w .user-avatar-w .user-avatar img { + max-width: 100%; + height: auto; +} + +.aec-full-message-w .message-head .user-w.with-status .user-avatar-w { + position: relative; +} + +.aec-full-message-w .message-head .user-w.with-status .user-avatar-w:before { + content: ""; + width: 10px; + height: 10px; + position: absolute; + top: 2px; + right: 2px; + border-radius: 10px; + -webkit-box-shadow: 0px 0px 0px 3px #fff; + box-shadow: 0px 0px 0px 3px #fff; +} + +.aec-full-message-w .message-head .user-w.with-status.status-green .user-avatar-w:before { + background-color: #5eb314; +} + +.aec-full-message-w .message-head .user-w.with-status.status-red .user-avatar-w:before { + background-color: #e65252; +} + +.aec-full-message-w .message-head .user-w .user-name { + padding-left: 20px; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.aec-full-message-w .message-head .user-w .user-title { + margin-bottom: 2px; + color: #047bf8; +} + +.aec-full-message-w .message-head .user-w .user-role { + font-weight: 500; + font-size: 0.81rem; +} + +.aec-full-message-w .message-head .user-w .user-role span { + display: inline-block; + margin-left: 5px; + color: rgba(0, 0, 0, 0.4); +} + +.aec-full-message-w .message-head .user-w .user-action { + width: 50px; + color: #047bf8; + font-size: 18px; +} + +.aec-full-message-w .message-head .message-info { + color: rgba(0, 0, 0, 0.3); + font-size: 0.72rem; + text-align: right; +} + +.aec-full-message-w .message-content { + padding: 6% 10% 8% 10%; +} + +.aec-full-message-w .message-attachments { + border-top: 1px solid rgba(0, 0, 0, 0.1); + padding-top: 20px; + margin-top: 20px; +} + +.aec-full-message-w .message-attachments .attachments-heading { + text-transform: uppercase; + font-size: 0.72rem; + color: rgba(0, 0, 0, 0.4); +} + +.aec-full-message-w .message-attachments .attachments-docs { + margin-top: 15px; +} + +.aec-full-message-w .message-attachments .attachments-docs a { + display: inline-block; +} + +.aec-full-message-w .message-attachments .attachments-docs a i { + display: inline-block; + vertical-align: middle; + margin-right: 10px; +} + +.aec-full-message-w .message-attachments .attachments-docs a span { + display: inline-block; + vertical-align: middle; +} + +.aec-full-message-w .message-attachments .attachments-docs a:hover { + text-decoration: none; +} + +.aec-full-message-w .message-attachments .attachments-docs a + a { + padding-left: 15px; + margin-left: 15px; + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.older-pack { + display: none; +} + +/* #6. REPLY */ +.aec-reply { + padding: 40px; + background-color: #fff; + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1); + border-radius: 4px; + overflow: hidden; +} + +.aec-reply .reply-header { + position: relative; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + padding-bottom: 30px; + margin-bottom: 0px; +} + +.aec-reply .reply-header i { + font-size: 130px; + color: rgba(0, 86, 255, 0.05); + position: absolute; + top: -70px; + left: -70px; +} + +.aec-reply .reply-header h5 { + margin: 0px; + font-size: 1.08rem; +} + +.aec-reply .reply-header h5 span { + color: #047bf8; + border-bottom: 1px dotted #047bf8; + display: inline-block; +} + +.aec-reply .buttons-w { + padding-top: 20px; + margin-top: 20px; + border-top: 1px solid rgba(0, 0, 0, 0.1); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.aec-reply .buttons-w .btn, .aec-reply .buttons-w .all-wrapper .fc-button, .all-wrapper .aec-reply .buttons-w .fc-button { + text-transform: uppercase; + padding: 5px 10px; + font-size: 0.7rem; +} + +.aec-reply .buttons-w .btn .os-icon, .aec-reply .buttons-w .all-wrapper .fc-button .os-icon, .all-wrapper .aec-reply .buttons-w .fc-button .os-icon { + margin-right: 10px; +} + +.aec-reply .cke_chrome { + border: none; +} + +.aec-reply .cke_bottom { + border: none; +} + +/* #7. FOLDED STYLES */ +.app-email-w.compact-side-menu .ae-side-menu { + -webkit-box-flex: 0; + -ms-flex: 0 1 60px; + flex: 0 1 60px; + text-align: center; +} + +.app-email-w.compact-side-menu .ae-side-menu .aem-head { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.app-email-w.compact-side-menu .ae-side-menu .ae-main-menu li a span { + display: none; +} + +.app-email-w.compact-side-menu .ae-side-menu .ae-labels .ae-label { + padding-left: 10px; +} + +.app-email-w.compact-side-menu .ae-side-menu .ae-labels .ae-label span.label-value { + display: none; +} + +.app-email-w.compact-side-menu .ae-side-menu .ae-labels-header span { + display: none; +} + +/* #8. DARK SCHEME */ +.color-scheme-dark .ae-side-menu { + background-color: #293148; + border-right-color: #202637; +} + +.color-scheme-dark .ae-side-menu .ae-main-menu li a span { + color: #ccd9e8; +} + +.color-scheme-dark .ae-side-menu .ae-main-menu li { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ae-side-menu .ae-labels .ae-label { + border-bottom-color: rgba(255, 255, 255, 0.05); + color: #ccd9e8; +} + +.color-scheme-dark .aem-head { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ael-head { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ael-head select { + background: #202738; + color: #7f8696; + border-color: #141927; +} + +.color-scheme-dark .ae-content-w { + background-color: #293148; +} + +.color-scheme-dark .ae-content-w .aec-head { + background-color: rgba(0, 0, 0, 0.1); +} + +.color-scheme-dark .ae-content-w .aec-head .separate { + border-right-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ae-content-w .aec-head .user-avatar { + border-left-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ae-content-w .aec-full-message-w .aec-full-message, .color-scheme-dark .ae-content-w .aec-reply { + background-color: #3b4768; + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +.color-scheme-dark .ae-content-w .aec-reply .buttons-w { + border-top-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ae-content-w .aec-reply .reply-header { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ae-content-w .aec-full-message-w.show-pack:after { + background-color: rgba(59, 71, 104, 0.7); +} + +.color-scheme-dark .ae-content-w .aec-full-message-w.show-pack:before { + background-color: rgba(59, 71, 104, 0.4); +} + +.color-scheme-dark .ae-content-w .aec-full-message-w .more-messages { + color: #047bf8; + border-bottom-color: #047bf8; +} + +.color-scheme-dark .ae-content-w .aec-full-message-w .message-attachments .attachments-heading, +.color-scheme-dark .ae-content-w .aec-full-message-w .message-head .message-info, +.color-scheme-dark .ae-content-w .aec-full-message-w .message-head .user-w .user-role span { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .ae-content-w .aec-full-message-w .message-head { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ae-content-w .aec-full-message-w .message-attachments { + border-top-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .ae-list-w { + background-color: #323c58; + border-right-color: #202637; +} + +.color-scheme-dark .ae-list-w .ae-item:hover { + background-color: #047bf8; +} + +.color-scheme-dark .ae-list-w .ae-item:hover .aei-sub-title { + color: #fff; +} + +.color-scheme-dark .ae-list-w .ae-list .aei-content .aei-text { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .ae-list-w .ae-list .aei-content .aei-timestamp { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .ae-list-w .ae-list .ae-item.with-status .user-avatar-w:before { + -webkit-box-shadow: 0px 0px 0px 3px #323c58; + box-shadow: 0px 0px 0px 3px #323c58; +} + +/* 14. App - Projects */ +.projects-list { + margin-bottom: 2rem; +} + +.projects-list .project-head { + padding: 20px 40px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.projects-list .project-head .project-title { + + letter-spacing: 0px; +} + +.projects-list .project-head .project-title h5 { + margin-bottom: 0; +} + +.projects-list .project-head .project-users { + -webkit-box-flex: 0; + -ms-flex: 0 0 220px; + flex: 0 0 220px; + text-align: right; +} + +.projects-list .project-head .project-users .avatar { + width: 35px; + border-radius: 35px; + -webkit-box-shadow: 0px 0px 0px 5px #fff; + box-shadow: 0px 0px 0px 5px #fff; + display: inline-block; + overflow: hidden; + vertical-align: middle; +} + +.projects-list .project-head .project-users .avatar img { + height: auto; + width: 35px; +} + +.projects-list .project-head .project-users .more { + background-color: #047bf8; + display: inline-block; + vertical-align: middle; + position: relative; + left: -10px; + padding: 2px 7px; + border-radius: 12px; + color: #fff; + font-size: 0.63rem; +} + + +.title-select { + border-style: none; +} + +.projects-list .project-info { + padding: 20px 40px; +} + +.projects-list .project-info .os-progress-bar { + margin-bottom: 0px; +} + +.projects-list .project-info .os-progress-bar + .os-progress-bar { + margin-top: 1rem; +} + +.projects-list .project-box + .project-box { + margin-top: 2rem; +} + +/* 15. App - Full Chat */ +.full-chat-w { + /* + #3. Middle Section + */ +} + +.full-chat-w .full-chat-i { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + background-color: #fff; + padding: 0px; +} + +.full-chat-w .full-chat-left { + -webkit-box-flex: 0; + -ms-flex: 0 0 340px; + flex: 0 0 340px; + background-color: #f6f7f8; + padding: 20px 0px; +} + +.full-chat-w .full-chat-left .os-tabs-w .nav { + padding: 0px 20px; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.full-chat-w .full-chat-left .nav-link i { + margin-bottom: 10px; +} + +.full-chat-w .full-chat-left .chat-search { + padding: 20px 20px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.full-chat-w .full-chat-left .element-search { + position: relative; +} + +.full-chat-w .full-chat-left .element-search:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + left: 15px; + top: 48%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 20px; + content: "\e92c"; + color: rgba(0, 0, 0, 0.2); +} + +.full-chat-w .full-chat-left .element-search input { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + background-color: #fff; + border-radius: 30px; + padding: 10px 15px 10px 50px; + display: block; + width: 100%; + outline: none; +} + +.full-chat-w .full-chat-left .element-search input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.full-chat-w .full-chat-left .element-search input:-ms-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.full-chat-w .full-chat-left .element-search input::-ms-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.full-chat-w .full-chat-left .element-search input::placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.full-chat-w .full-chat-left .user-list .user-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 20px 30px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.full-chat-w .full-chat-left .user-list .user-w .avatar { + margin-right: 20px; + -webkit-box-flex: 0; + -ms-flex: 0 0 50px; + flex: 0 0 50px; +} + +.full-chat-w .full-chat-left .user-list .user-w .avatar img { + width: 50px; + height: auto; + border-radius: 50px; + display: block; +} + +.full-chat-w .full-chat-left .user-list .user-w .user-info { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.full-chat-w .full-chat-left .user-list .user-w .user-name { + font-weight: 500; + font-size: 0.99rem; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.full-chat-w .full-chat-left .user-list .user-w .last-message { + color: rgba(0, 0, 0, 0.4); + font-size: 0.81rem; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.full-chat-w .full-chat-left .user-list .user-w .user-date { + float: right; + padding: 2px 7px; + background-color: #fff; + border-radius: 12px; + font-size: 0.72rem; + color: rgba(0, 0, 0, 0.3); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.full-chat-w .full-chat-left .user-list .user-w:hover { + background-color: #047bf8; + cursor: pointer; +} + +.full-chat-w .full-chat-left .user-list .user-w:hover .user-name { + color: #fff; +} + +.full-chat-w .full-chat-left .user-list .user-w:hover .last-message { + color: rgba(255, 255, 255, 0.5); +} + +.full-chat-w .full-chat-left .user-list .user-w:hover .user-date { + background-color: #046fdf; + color: rgba(255, 255, 255, 0.3); +} + +.full-chat-w .full-chat-middle { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + background-color: #fff; +} + +.full-chat-w .full-chat-middle .chat-head { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + padding: 10px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.full-chat-w .full-chat-middle .user-info { + font-size: 1.08rem; +} + +.full-chat-w .full-chat-middle .user-info span { + display: inline-block; + vertical-align: middle; + margin-right: 5px; +} + +.full-chat-w .full-chat-middle .user-info a { + display: inline-block; + vertical-align: middle; + border-bottom: 1px dotted #047bf8; +} + +.full-chat-w .full-chat-middle .user-info a:hover { + text-decoration: none; +} + +.full-chat-w .full-chat-middle .user-actions a { + margin-left: 1rem; + font-size: 24px; + display: inline-block; + vertical-align: middle; +} + +.full-chat-w .chat-content-w { + height: 600px; + overflow-y: scroll; + position: relative; +} + +.full-chat-w .chat-content-w .chat-content { + padding: 50px; + min-height: 600px; +} + +.full-chat-w .chat-content-w .chat-date-separator { + text-align: center; + color: rgba(0, 0, 0, 0.3); + font-size: 0.81rem; + position: relative; + margin: 40px 0px; +} + +.full-chat-w .chat-content-w .chat-date-separator:before { + content: ""; + background-color: rgba(0, 0, 0, 0.1); + height: 1px; + width: 100%; + position: absolute; + top: 50%; + left: 0px; + right: 0px; +} + +.full-chat-w .chat-content-w .chat-date-separator span { + display: inline-block; + background-color: #fff; + padding: 0px 10px; + position: relative; +} + +.full-chat-w .chat-content-w .chat-message { + margin-bottom: 20px; +} + +.full-chat-w .chat-content-w .chat-message .chat-message-content { + padding: 15px 35px; + background-color: #fff9f0; + color: #594939; + max-width: 400px; + display: inline-block; + margin-bottom: -20px; + margin-left: 20px; + border-radius: 20px; + text-align: left; +} + +.full-chat-w .chat-content-w .chat-message .chat-message-avatar { + display: inline-block; + vertical-align: bottom; +} + +.full-chat-w .chat-content-w .chat-message .chat-message-avatar img { + width: 40px; + height: auto; + border-radius: 30px; + display: inline-block; + -webkit-box-shadow: 0px 0px 0px 10px #fff; + box-shadow: 0px 0px 0px 10px #fff; +} + +.full-chat-w .chat-content-w .chat-message .chat-message-date { + display: inline-block; + vertical-align: bottom; + margin-left: 10px; + margin-right: 10px; + font-size: 0.72rem; + color: rgba(0, 0, 0, 0.3); +} + +.full-chat-w .chat-content-w .chat-message.self { + text-align: right; +} + +.full-chat-w .chat-content-w .chat-message.self .chat-message-content { + background-color: #f0f9ff; + color: #2A4E7F; + margin-right: 20px; + margin-left: 0px; +} + +.full-chat-w .chat-controls { + padding: 20px; + padding-top: 0px; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +.full-chat-w .chat-input input[type="text"] { + padding: 20px 20px 20px 0px; + border: none; + display: block; + width: 100%; + outline: none; +} + +.full-chat-w .chat-input-extra { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.full-chat-w .chat-input-extra .chat-extra-actions a { + margin-right: 10px; + display: inline-block; +} + +.full-chat-w .full-chat-right { + -webkit-box-flex: 0; + -ms-flex: 0 0 260px; + flex: 0 0 260px; + background-color: #fff; + border-left: 1px solid rgba(0, 0, 0, 0.1); + padding: 20px; +} + +.full-chat-w .user-intro { + padding: 20px; + + text-align: center; +} + +.full-chat-w .user-intro .avatar { + width: 200px; + height: 200px; + display: inline-block; + position: relative; +} + +.full-chat-w .user-intro .avatar img { + width: 200px; + height: 200px; + border-radius: 99%; + +} + +.full-chat-w .user-intro .user-intro-info { + margin-top: 1rem; +} + +.full-chat-w .user-intro .user-intro-info .user-name { + margin-top: 0px; + margin-bottom: 0px; + color: #047bf8; + font-weight: bold; +} + +.full-chat-w .user-intro .user-intro-info .user-sub { + color: rgba(0, 0, 0, 0.7); + font-size: 0.72rem; + margin-top: 5px; + margin-bottom: 5px; +} + +.full-chat-w .user-intro .user-intro-info .user-social { + margin-top: 1rem; +} + +.full-chat-w .user-intro .user-intro-info .user-social a { + display: inline-block; + margin: 0px 6px; + font-size: 24px; +} + +.full-chat-w .user-intro .user-intro-info .user-social a:hover { + text-decoration: none; +} + +.full-chat-w .user-intro .user-intro-info .user-social i.os-icon.os-icon-twitter { + color: #31a7f3; +} + +.full-chat-w .user-intro .user-intro-info .user-social i.os-icon.os-icon-facebook { + color: #175dc5; +} + +.full-chat-w .chat-info-section { + padding: 20px; +} + +.full-chat-w .chat-info-section .ci-header i { + color: #047bf8; + font-size: 20px; + margin-right: 10px; + display: inline-block; + vertical-align: middle; +} + +.full-chat-w .chat-info-section .ci-header span { + text-transform: uppercase; + color: rgba(0, 0, 0, 0.5); + letter-spacing: 2px; + display: inline-block; + vertical-align: middle; +} + +.full-chat-w .chat-info-section .ci-content { + padding: 20px; +} + +.full-chat-w .chat-info-section .ci-content .ci-file-list ul { + list-style-type: square; + color: #98c9fd; + margin-left: 0px; + margin-bottom: 0px; + padding-left: 10px; +} + +.full-chat-w .chat-info-section .ci-content .ci-file-list ul li { + margin: 5px; +} + +.full-chat-w .chat-info-section .ci-content .ci-file-list ul li a { + font-size: 0.81rem; + border-bottom: 1px solid #047bf8; +} + +.full-chat-w .chat-info-section .ci-content .ci-file-list ul li a:hover { + text-decoration: none; +} + +.full-chat-w .chat-info-section .ci-content .ci-photos-list { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} + +.full-chat-w .chat-info-section .ci-content .ci-photos-list img { + margin: 2%; + border-radius: 6px; + width: 45%; + display: inline-block; + height: auto; +} + +.full-chat-w .chat-info-section + .chat-info-section { + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +/* 16. Pricing Plans */ +/* + +Pricing Plans Styles + +#1. +#2. +#3. +#4. +#5. +#6. + + +*/ +/* + +#1. + +*/ +.pricing-plans { + background-color: #fff; +} + +.pricing-plan + .pricing-plan { + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.pricing-plan { + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + text-align: center; + padding-bottom: 20px; + background-color: #f9f9f9; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.pricing-plan.with-hover-effect:hover, .pricing-plan.highlight { + -webkit-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1); + position: relative; + z-index: 2; + -webkit-box-shadow: 0 2px 30px 0 rgba(54, 88, 206, 0.2); + box-shadow: 0 2px 30px 0 rgba(54, 88, 206, 0.2); +} + +.pricing-plan.with-hover-effect:hover .plan-price-w .price-value, .pricing-plan.highlight .plan-price-w .price-value { + color: #047bf8; +} + +.pricing-plan.with-hover-effect:hover .plan-head, .pricing-plan.highlight .plan-head { + -webkit-box-shadow: inset 0px 5px 0px #047bf8; + box-shadow: inset 0px 5px 0px #047bf8; +} + +.pricing-plan.with-hover-effect:hover .plan-name { + color: #3E4B5B; +} + +.pricing-plan.highlight { + margin-top: -20px; + margin-bottom: -20px; +} + +.pricing-plan .plan-image img { + width: 80px; +} + +.pricing-plan .plan-head { + background-color: #fff; + padding-top: 40px; +} + +.pricing-plan .plan-body { + background-color: #fff; +} + +.pricing-plan .plan-name { + text-transform: uppercase; + letter-spacing: 2px; + font-size: 1.5rem; + color: #047bf8; + font-weight: 500; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + padding-bottom: 40px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.pricing-plan .plan-image + .plan-name { + margin-top: 20px; +} + +.pricing-plan .plan-price-w { + padding-top: 40px; + margin-bottom: 40px; +} + +.pricing-plan .plan-price-w .price-value { + font-size: 3.6rem; + line-height: 1; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.pricing-plan .plan-price-w .price-label { + text-transform: uppercase; + letter-spacing: 2px; + color: rgba(0, 0, 0, 0.3); + padding-top: 5px; + margin-top: 5px; + border-top: 1px solid rgba(0, 0, 0, 0.1); + display: inline-block; +} + +.pricing-plan .plan-btn-w { + padding-bottom: 40px; +} + +.pricing-plan .plan-description { + text-align: left; + padding: 30px 15%; + border-top: 1px solid rgba(0, 0, 0, 0.1); + color: rgba(0, 0, 0, 0.5); +} + +.pricing-plan .plan-description h6 { + text-transform: uppercase; + letter-spacing: 2px; + margin-top: 30px; + font-size: 0.9rem; +} + +.pricing-plan .plan-description ul { + list-style: none; + padding-left: 30px; + margin-top: 20px; +} + +.pricing-plan .plan-description ul li { + position: relative; + margin-bottom: 10px; +} + +.pricing-plan .plan-description ul li:before { + content: '\e961'; + color: #047bf8; + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + left: -30px; + top: 5px; +} + +/* + +#2. + +*/ +/* + +#3. + +*/ +/* + +#4. + +*/ +/* + +#5. + +*/ +/* 17. Pipelines */ +/* Pipeline Styles*/ +.pipeline { + background-color: #fff; + padding: 15px 15px; + margin-bottom: 20px; +} + +.pipeline.blue { + background-color: #fff; + border: 1px solid #0066ff; + /*background-image: -webkit-gradient(linear, left top, left bottom, from(#1D54EF), to(#4327DF)); + background-image: linear-gradient(-180deg, #1D54EF 0%, #4327DF 100%); + -webkit-box-shadow: 0 2px 30px 0 rgba(16, 37, 133, 0.5); + box-shadow: 0 2px 30px 0 rgba(16, 37, 133, 0.5);*/ +} + +.pipeline.teal { + background-color: #07B77F; + background-image: -webkit-gradient(linear, left top, left bottom, from(#07B77F), color-stop(98%, #2767DF)); + background-image: linear-gradient(-180deg, #07B77F 0%, #2767DF 98%); + -webkit-box-shadow: 0 2px 30px 0 rgba(7, 186, 171, 0.5); + box-shadow: 0 2px 30px 0 rgba(7, 186, 171, 0.5); +} + +.pipeline.purple { + background-color: #28428c; + background-image: -webkit-gradient(linear, left top, left bottom, from(#28428c), to(#510d8c)); + background-image: linear-gradient(-180deg, #28428c 0%, #510d8c 100%); + -webkit-box-shadow: 0 2px 30px 0 rgba(42, 16, 133, 0.5); + box-shadow: 0 2px 30px 0 rgba(42, 16, 133, 0.5); +} + +.pipeline.green { + background-color: #7BC10C; + background-image: -webkit-gradient(linear, left top, left bottom, from(#7BC10C), color-stop(95%, #057051)); + background-image: linear-gradient(-180deg, #7BC10C 0%, #057051 95%); + -webkit-box-shadow: 0 2px 30px 0 rgba(31, 219, 78, 0.5); + box-shadow: 0 2px 30px 0 rgba(31, 219, 78, 0.5); +} + +.pipeline.red { + background-color: #960644; + background-image: -webkit-gradient(linear, left top, left bottom, from(#960644), color-stop(95%, #af760b)); + background-image: linear-gradient(-180deg, #960644 0%, #af760b 95%); + -webkit-box-shadow: 0 2px 30px 0 rgba(154, 7, 58, 0.5); + box-shadow: 0 2px 30px 0 rgba(154, 7, 58, 0.5); +} + +.pipeline.pink { + background-color: #a0008f; + background-image: -webkit-gradient(linear, left top, left bottom, from(#a0008f), color-stop(98%, #2767DF)); + background-image: linear-gradient(-180deg, #a0008f 0%, #2767DF 98%); + -webkit-box-shadow: 0 2px 30px 0 rgba(7, 8, 186, 0.5); + box-shadow: 0 2px 30px 0 rgba(7, 8, 186, 0.5); +} + +.pipeline.white { + background-color: #f1f1f1; + border: 1px solid #dadfeb /*-webkit-box-shadow: 0 2px 30px 0 rgba(16, 37, 133, 0.1); + box-shadow: 0 2px 30px 0 rgba(16, 37, 133, 0.1);*/ +} + +.pipeline.white .pipeline-header { + + padding-bottom: 5px; +} + +.pipeline.white .pipeline-header .pipeline-name { + color: #334152; +} + +.pipeline.white .pipeline-header .pipeline-count { + color: rgba(0, 0, 0, 0.5); +} + +.pipeline.white .pipeline-header .pipeline-settings { + color: rgba(0, 0, 0, 0.4); +} + +.pipeline.white .pipeline-header .pipeline-value { + color: #047bf8; +} + +.pipeline.white .pipeline-item, .pipeline.blue .pipeline-item { + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 4px; + margin-bottom: 5px; + border: 1px solid #d1d4e8; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + cursor: move; + padding: 0.45rem; + +} + +.pipeline.white .pipeline-item:last-child { + margin-bottom: 0px; +} + +.pipeline.white .pipeline-item:hover, .pipeline.blue .pipeline-item:hover { + border: 1px solid #0066ff; + -webkit-box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1); + box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1); +} + +.pipeline.white .pipeline-item .pi-foot { + border-radius: 0px 0px 4px 4px; +} + +.pipeline.white.lined-primary { + border-top: 3px solid #047bf8; + +} + +.pipeline.white.lined-success { + border-top: 3px solid #5eb314; + +} + +.pipeline.white.lined-danger { + border-top: 5px solid #e65252; + border-radius: 0px 0px 4px 4px; +} + +.pipeline.white.lined-warning { + border-top: 5px solid #fbe4a0; + border-radius: 0px 0px 4px 4px; +} + +/* Pipeline Header Styles */ +.pipeline-header { + position: relative; + margin-bottom: 20px; +} + +.pipeline-header .pipeline-header-numbers { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.pipeline-name { + margin-bottom: 10px; + line-height: 1; +} + +.pipeline-header .pipeline-value { + color: #FFD038; + letter-spacing: 3px; + font-size: 1.17rem; +} + +.pipeline-header .pipeline-count { + font-size: 0.81rem; + color: rgba(255, 255, 255, 0.7); +} + +.pipeline-header .pipeline-settings { + color: rgba(255, 255, 255, 0.7); + font-size: 12px; + position: absolute; + top: 0px; + right: 0px; +} + +.pipeline-body { + min-height: 100px; +} + +.pipeline-body.empty { + border: 1px dashed rgba(0, 0, 0, 0.2); +} + +/* Pipeline Item Styles */ +.pipeline-item { + background-color: #fff; + margin-bottom: 20px; + border-radius: 4px; + position: relative; + -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.4); + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.4); +} + +.pipeline-item:last-child { + margin-bottom: 0px; +} + +.pipeline-item .pi-controls { + position: absolute; + top: 5px; + right: 10px; + line-height: 1; +} + +.pipeline-item .pi-controls a { + font-size: 16px; + line-height: 14px; + color: #047bf8; + display: inline-block; + vertical-align: middle; +} + +.pipeline-item .pi-controls .pi-settings { + display: inline-block; + color: #047bf8; + vertical-align: middle; +} + +.pipeline-item .pi-controls .pi-settings > i { + font-size: 15px; +} + +.pipeline-item .pi-controls .status { + display: inline-block; + vertical-align: middle; + margin-left: 5px; + width: 11px; + height: 11px; + border-radius: 10px; + cursor: pointer; +} + +.pipeline-item .pi-controls .status.status-green { + background-color: #5eb314; +} + +.pipeline-item .pi-controls .status.status-red { + background-color: #e65252; +} + +.pipeline-item .pi-controls .status.status-yellow { + background-color: #fbe4a0; +} + +.pipeline-item .pi-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 10px 15px; +} + +.pipeline-item .pi-body .avatar { + width: 50px; + margin-right: 15px; + -webkit-box-flex: 0; + -ms-flex: 0 0 50px; + flex: 0 0 50px; +} + +.pipeline-item .pi-body .avatar img { + width: 50px; + height: 50px; + border-radius: 50%; +} + +.pipeline-item .pi-name { + margin-bottom: 0px; + color: #0066ff !important; +} + +.pipeline-item .pi-body .pi-sub { + color: rgba(0, 0, 0, 0.5); + font-size: 0.81rem; +} + +.pipeline-item .pi-foot { + background-color: #F1F4F8; + padding: 10px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-radius: 0px 0px 4px 4px; +} + +.tags { + line-height: 1; +} + +.tags .tag { + line-height: 1.3; + display: inline-block; + border: 0px solid #047bf8; + color: #888; + margin-right: 2px; + font-size: 0.72rem; + border-radius: 4px; + margin-bottom: 2px; + margin-top: 2px; +} + +.tags .number-tag { + line-height: 1.3; + display: inline-block; + border: 0px solid #047bf8; + color: darkblue; + font-weight: 600; + margin-right: 2px; + font-size: 0.72rem; + border-radius: 4px; + margin-bottom: 2px; + margin-top: 2px; +} + +.titlenameSelect { + font-weight: bold; + font-size: 0.93rem; + color: #0066ff; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.titlename { + font-size: 0.93rem; + color: #0066ff; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.extra-infodiv { + margin-top: 0px; +} + +.extra-info { + margin-right: 8px; + white-space: nowrap; + color: rgba(0, 0, 0, 0.6); + font-size: 0.65rem; + font-weight: normal !important; +} + +.extra-info i { + margin-right: 2px; + vertical-align: middle; + color: #888; + display: inline-block; +} + +.extra-info span { + vertical-align: middle; + display: inline-block; + color: #888; +} + +.control-header { + padding-bottom: 10px; + margin-bottom: 25px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.control-header select.form-control { + font-weight: 400; + border-color: rgba(0, 0, 0, 0.5); +} + +.control-header label { + text-transform: uppercase; + font-size: 0.72rem; + letter-spacing: 1px; +} + +.control-header .form-group { + margin-bottom: 0px; +} + +.color-scheme-dark .control-header { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .control-header select { + background: #202738; + color: #7f8696; + border-color: #141927; +} + +.color-scheme-dark .control-header label { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .pipeline.white { + background-color: #323c58; + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +.color-scheme-dark .pipeline.white.lined-warning { + border-top-color: #fbe4a0; +} + +.color-scheme-dark .pipeline.white .pipeline-header .pipeline-name { + color: #fff; +} + +.color-scheme-dark .pipeline.white .pipeline-header .pipeline-settings { + color: #fff; +} + +.color-scheme-dark .pipeline.white .pipeline-header .pipeline-count { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .pipeline.white .pipeline-item { + background-color: #384362; + border-color: #293148; +} + +.color-scheme-dark .pipeline.white .pipeline-item .pi-body .pi-sub { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .pipeline.white .pipeline-item .pi-foot { + background-color: #2c354e; +} + +.color-scheme-dark .pipeline.white .pipeline-item .pi-foot .extra-info { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .pipeline.white .pipeline-item .pi-foot .tags .tag { + color: #fff; + background-color: #422af5; + border-color: #422af5; +} + +/* 18. Dropdowns */ +.os-dropdown-trigger { + position: relative; + cursor: pointer; + display: inline-block; + margin-right: -5px; +} + +.os-dropdown-trigger.over .os-dropdown { + visibility: visible; + opacity: 1; + -webkit-transform: translate3d(100%, 100%, 0); + transform: translate3d(100%, 100%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-center .os-dropdown { + right: 50%; + -webkit-transform: translate3d(50%, 110%, 0); + transform: translate3d(50%, 110%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-center.over .os-dropdown { + -webkit-transform: translate3d(50%, 100%, 0); + transform: translate3d(50%, 100%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-left .os-dropdown { + right: 0px; + -webkit-transform: translate3d(0%, 110%, 0); + transform: translate3d(0%, 110%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-left.over .os-dropdown { + -webkit-transform: translate3d(0%, 100%, 0); + transform: translate3d(0%, 100%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-right .os-dropdown { + right: 100%; + -webkit-transform: translate3d(100%, 110%, 0); + transform: translate3d(100%, 110%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-right.over .os-dropdown { + -webkit-transform: translate3d(100%, 100%, 0); + transform: translate3d(100%, 100%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-right-center .os-dropdown { + right: 0%; + bottom: 50%; + -webkit-transform: translate3d(110%, 50%, 0); + transform: translate3d(110%, 50%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-right-center.over .os-dropdown { + -webkit-transform: translate3d(100%, 50%, 0); + transform: translate3d(100%, 50%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-left-center .os-dropdown { + right: 100%; + bottom: 50%; + -webkit-transform: translate3d(-10%, 50%, 0); + transform: translate3d(-10%, 50%, 0); +} + +.os-dropdown-trigger.os-dropdown-position-left-center.over .os-dropdown { + -webkit-transform: translate3d(0%, 50%, 0); + transform: translate3d(0%, 50%, 0); +} + +.os-dropdown { + background-color: #047bf8; + color: #fff; + padding: 20px 15px; + position: absolute; + z-index: 999; + bottom: 5px; + right: 0px; + visibility: hidden; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + -webkit-transform: translate3d(100%, 110%, 0); + transform: translate3d(100%, 110%, 0); + opacity: 0; + border-radius: 4px; + -webkit-box-shadow: 0px 10px 25px 0px rgba(26, 32, 39, 0.1); + box-shadow: 0px 10px 25px 0px rgba(26, 32, 39, 0.1); + overflow: hidden; + font-size: 0.9rem; + text-align: left; +} + +.os-dropdown > .icon-w { + position: absolute; + top: -30px; + right: -30px; + color: rgba(0, 0, 0, 0.08); + font-size: 100px; +} + +.os-dropdown ul { + list-style: none; + margin: 0px; + padding: 0px; + position: relative; +} + +.os-dropdown ul li { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.os-dropdown ul li:last-child { + border-bottom: none; +} + +.os-dropdown ul li a { + display: block; + white-space: nowrap; + padding: 10px 10px 10px 10px; + line-height: 1; + color: #fff; + font-size: 0.9rem; +} + +.os-dropdown ul li a:hover { + text-decoration: none; +} + +.os-dropdown ul li a i { + color: #fff; + display: inline-block; + vertical-align: middle; + margin-right: 15px; + font-size: 22px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.os-dropdown ul li a span { + display: inline-block; + vertical-align: middle; + color: #fff; + font-size: 0.9rem; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.os-dropdown ul li a i + span { + padding-right: 10px; +} + +.os-dropdown ul li a:hover i { + color: #fff; + -webkit-transform: scale(1.2); + transform: scale(1.2); +} + +.os-dropdown ul li a:hover span { + -webkit-transform: translateX(3px); + transform: translateX(3px); +} + +.os-dropdown.message-list { + padding: 5px 5px; +} + +.os-dropdown.message-list ul { + max-height: 250px; + overflow-y: auto; + +} + +.os-dropdown.message-list li { + border-bottom: 1px solid rgba(255, 255, 255, 0.2); +} + +.os-dropdown.message-list li:last-child { + border-bottom: none; +} + +.os-dropdown.message-list li > a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 10px 5px; +} + +.os-dropdown.message-list li > a:hover { + background-color: rgba(124, 137, 234, 0.07); +} + +.os-dropdown.message-list li > a:hover .user-avatar-w img { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +.os-dropdown.message-list li > a:hover .message-content { + -webkit-transform: translateX(3px); + transform: translateX(3px); +} + +.os-dropdown.message-list li > a .user-avatar-w { + -webkit-box-flex: 0; + -ms-flex: 0 0 40px; + flex: 0 0 40px; + margin-right: 0px; +} + +.os-dropdown.message-list li > a .user-avatar-w img { + width: 30px; + border-radius: 30px; + height: 30px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + display: block; +} + +.os-dropdown.message-list li > a .message-content { + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.os-dropdown.message-list li > a .message-content .message-from { + color: #fff; + margin-bottom: 5px; +} + +.os-dropdown.message-list li > a .message-content .message-title { + color: rgba(255, 255, 255, 0.6); + font-size: 0.54rem; + margin-top: 2px; + margin-bottom: 0px; +} + +.os-dropdown.light { + background-color: #fff; + -webkit-box-shadow: 0px 5px 75px 0px rgba(12, 76, 140, 0.21), 0px 3px 7px 0px rgba(12, 76, 140, 0.14); + box-shadow: 0px 5px 75px 0px rgba(12, 76, 140, 0.21), 0px 3px 7px 0px rgba(12, 76, 140, 0.14); +} + +.os-dropdown.light.message-list > .icon-w { + color: rgba(4, 123, 248, 0.1); +} + +.os-dropdown.light.message-list li { + border-bottom: 1px solid rgba(113, 133, 171, 0.09); +} + +.os-dropdown.light.message-list li:last-child { + border-bottom: none; +} + +.os-dropdown.light.message-list li > a .message-content .message-from { + color: #334152; + font-size: 0.75rem !important; +} + +.os-dropdown.light.message-list li > a .message-content .message-title { + color: #047bf8; +} + +.os-dropdown.light.message-list li > a .message-content2 .message-from { + color: #334152; + font-size: 0.75rem !important; + line-height: 1.5 !important; + letter-spacing: -0.04rem !important; +} + +.os-dropdown.light.message-list li > a .message-content2 .message-from font { + color: #047bf8; +} + +.os-dropdown.light.message-list li > a .message-content2 .message-title { + color: #aaa; + font-size: 0.61rem !important; +} + +/* 19. App - TODO */ +/* + +TODO Application + +#1. Sidebar +#2. Main Content + +*/ +.todo-app-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + /* + #1. Sidebar + */ + /* + #2. Main Content + */ +} + +.todo-app-w .todo-sidebar { + -webkit-box-flex: 0; + -ms-flex: 0 0 350px; + flex: 0 0 350px; + background-color: #F9F9F9; + padding: 40px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 20px; + margin-bottom: 20px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section:first-child { + padding-top: 0px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-header { + color: #047bf8; + position: relative; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-header span { + display: inline-block; + vertical-align: middle; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-header span + .os-icon { + display: inline-block; + vertical-align: middle; + margin-left: 10px; + font-size: 22px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-header span + .os-icon.starred { + color: #E7AD10; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-header span + .os-icon.fire { + color: #ff1b1b; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-contents { + margin-top: 20px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-toggle { + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + left: -30px; + color: #047bf8; + font-size: 16px; + position: absolute; + text-decoration: none; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-toggle:hover { + color: #024994; +} + +.todo-app-w .todo-sidebar ul { + margin-left: 0px; + padding-left: 30px; +} + +.todo-app-w .todo-sidebar ul.projects-list { + list-style: none; + font-size: 0.99rem; + margin-bottom: 0px; +} + +.todo-app-w .todo-sidebar ul.projects-list li { + position: relative; + margin-bottom: 10px; +} + +.todo-app-w .todo-sidebar ul.projects-list li:before { + content: "\e981"; + color: #047bf8; + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: 18px; + position: absolute; + left: -30px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.todo-app-w .todo-sidebar ul.projects-list li a { + color: #3E4B5B; + display: block; +} + +.todo-app-w .todo-sidebar ul.projects-list li.add-new-project { + margin-top: 20px; +} + +.todo-app-w .todo-sidebar ul.projects-list li.add-new-project:before { + content: "\e969"; +} + +.todo-app-w .todo-sidebar ul.projects-list li.add-new-project a { + color: #047bf8; + border-bottom: 1px solid #047bf8; + display: inline-block; + font-size: 0.9rem; +} + +.todo-app-w .todo-sidebar ul.projects-list li.add-new-project a:hover { + text-decoration: none; +} + +.todo-app-w .todo-sidebar ul.tasks-list { + list-style: none; + padding-left: 25px; +} + +.todo-app-w .todo-sidebar ul.tasks-list li { + position: relative; + margin-bottom: 10px; +} + +.todo-app-w .todo-sidebar ul.tasks-list li strong { + color: #3E4B5B; + display: block; +} + +.todo-app-w .todo-sidebar ul.tasks-list li span { + color: rgba(0, 0, 0, 0.4); + font-size: 0.72rem; + display: inline-block; +} + +.todo-app-w .todo-sidebar ul.tasks-list li:before { + content: ""; + width: 10px; + height: 10px; + position: absolute; + left: -25px; + top: 7px; + border-radius: 10px; +} + +.todo-app-w .todo-sidebar ul.tasks-list li a { + color: #3E4B5B; + display: block; +} + +.todo-app-w .todo-sidebar ul.tasks-list li.danger:before { + background-color: #f59595; +} + +.todo-app-w .todo-sidebar ul.tasks-list li.warning:before { + background-color: #fbe4a0; +} + +.todo-app-w .todo-sidebar ul.tasks-list li.success:before { + background-color: #b1ef98; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-sub-section { + padding-left: 30px; + position: relative; + margin-bottom: 15px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-section-toggler { + position: absolute; + z-index: 2; + top: 5px; + right: 0px; + font-size: 14px; + cursor: pointer; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-header { + position: relative; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + padding-bottom: 10px; + padding-top: 10px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-header i.os-icon { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + left: -30px; + font-size: 18px; + color: #047bf8; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-header h6 { + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.72rem; + margin: 0px; + color: #047bf8; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-section-content ul { + list-style: none; + padding: 10px 0px; + margin: 0px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-section-content ul li { + padding: 3px 0px; + margin: 0px; +} + +.todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-section-content ul li a { + color: #3E4B5B; + display: inline-block; + font-size: 0.9rem; + line-height: 1.2; + height: 1.08rem; + overflow: hidden; +} + +.todo-content { + background-color: #fff; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + margin: 1.5rem 0; +} + +.todo-content .todo-content-header { + margin-bottom: 0px; + color: #0066ff; +} + +.todo-content .todo-content-header span { + display: inline-block; + vertical-align: middle; +} + +.todo-content .todo-content-subheader { + margin-bottom: 0px; + border-bottom: 1px solid #ddd; + color: #000; + font-size: 1rem; + line-height: 1.5; + font-weight: 600; +} + +.todo-content .tasks-header-w { + padding: 10px 0px; + position: relative; + margin-top: 20px; +} + +.todo-content .tasks-header-w .tasks-header { + display: inline-block; + margin-bottom: 0px; +} + +.todo-content .tasks-header-w .tasks-sub-header { + display: inline-block; + margin-left: 10px; + color: rgba(0, 0, 0, 0.3); + font-size: 0.81rem; +} + +.todo-content .tasks-header-w .add-task-btn { + float: right; +} + +.todo-content .tasks-header-w .add-task-btn span, .todo-app-w .todo-content .tasks-header-w .add-task-btn i { + display: inline-block; + vertical-align: middle; +} + +.todo-content .tasks-header-w .add-task-btn span { + border-bottom: 1px solid #047bf8; +} + +.todo-content .tasks-header-w .add-task-btn i.os-icon { + margin-right: 5px; + font-size: 20px; +} + +.todo-content .tasks-list-header { + text-transform: uppercase; + color: #047bf8; + letter-spacing: 1px; + font-size: 0.81rem; + font-weight: 500; + margin-bottom: 5px; +} + +.todo-content .tasks-list { + font-size: 0.85rem; + list-style: none; + border-radius: 4px; + padding: 15px; + background-color: #f1f1f1; + margin-top: 1rem; +} + +.todo-content .tasks-list li.draggable-task { + margin: 0px; + padding: 6px 40px; + position: relative; + border: 1px solid transparent; +} + +.todo-content .tasks-list li.draggable-task .todo-task-drag { + color: #111; + position: absolute; + top: 9px; + font-size: 8px; + cursor: move; + display: none; + padding: 5px; +} + +.todo-content .tasks-list li.draggable-task .todo-task-media { + padding-top: 10px; +} + +.todo-content .tasks-list li.draggable-task .todo-task-media img { + display: inline-block; + border-radius: 4px; + height: 30px; + width: auto; + margin-right: 5px; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons { + position: absolute; + right: -10px; + top: 50%; + -webkit-transform: translate(100%, -50%); + transform: translate(100%, -50%); + display: none; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons a { + font-size: 18px; + display: inline-block; + position: relative; + vertical-align: middle; + text-decoration: none; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons a span { + position: absolute; + top: -28px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + white-space: nowrap; + padding: 2px 8px; + border-radius: 4px; + background-color: #111; + color: #fff; + font-weight: 500; + font-size: 0.72rem; + text-transform: uppercase; + letter-spacing: 1px; + visibility: hidden; + opacity: 0; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + display: inline-block; + vertical-align: middle; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons a:hover { + text-decoration: none; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons a:hover span { + -webkit-transform: translate(-50%, 8px); + transform: translate(-50%, 8px); + visibility: visible; + opacity: 1; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons a + a { + margin-left: 8px; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons .task-btn-done { + color: #4d9121; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons .task-btn-edit { + color: #047bf8; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons .task-btn-delete { + color: #e65252; +} + +.todo-content .tasks-list li.draggable-task .todo-task-buttons .task-btn-star { + color: #c89302; +} + +.todo-content .tasks-list li.draggable-task .todo-task { + position: relative; + display: inline-block; +} + +.todo-content .tasks-list li.draggable-task .todo-task span { + outline: none; +} + +.todo-content .tasks-list li.draggable-task:hover .todo-task-drag, .todo-app-w .todo-content .tasks-list li.draggable-task:hover .todo-task-buttons { + display: block; +} + +.todo-content .tasks-list li.draggable-task:before { + content: ""; + width: 8px; + height: 8px; + border-radius: 10px; + background-color: #e1e1e1; + position: absolute; + left: 20px; + top: 15px; +} + +.todo-content .tasks-list li.draggable-task.favorite { + background-color: #fffaea; + border-radius: 6px; +} + +.todo-content .tasks-list li.draggable-task.gu-transit { + opacity: 0.8; + border-radius: 4px; + background-color: rgba(0, 0, 0, 0.05); +} + +.todo-content .tasks-list li.draggable-task.pre-removed { + background-color: #fff5f5; + border-radius: 6px; +} + +.todo-content .tasks-list li.draggable-task.pre-removed .todo-task { + opacity: 0.3; +} + +.todo-content .tasks-list li.draggable-task.pre-removed .task-btn-undelete { + position: absolute; + right: 10px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + background-color: #e65252; + color: #fff; + font-weight: 500; + font-size: 0.72rem; + padding: 1px 10px; + border-radius: 10px; + text-decoration: none; +} + +.todo-content .tasks-list li.draggable-task.pre-removed .task-btn-undelete:hover { + background-color: #111; + text-decoration: none; +} + +.todo-content .tasks-list li.draggable-task.pre-removed .todo-task-drag, .todo-app-w .todo-content .tasks-list li.draggable-task.pre-removed .todo-task-buttons { + display: none !important; +} + +.todo-content .tasks-list li.draggable-task.complete { + color: #999; +} + +.todo-content .tasks-list li.draggable-task.complete .todo-task { + text-decoration: line-through; +} + +.todo-content .tasks-list li.draggable-task.complete:before { + background-color: #e1e1e1 !important; +} + +.todo-content .tasks-list li.draggable-task.danger:before { + background-color: #e65252; +} + +.todo-content .tasks-list li.draggable-task.warning:before { + background-color: #fbe4a0; +} + +.todo-content .tasks-list li.draggable-task.success:before { + background-color: #5eb314; +} + +.draggable-task.gu-mirror { + list-style: none; + padding: 10px 40px; + background-color: #fff; + -webkit-box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1); + box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1); + margin: 0px; + font-size: 1.08rem; + position: relative; + border-radius: 4px; +} + +.draggable-task.gu-mirror .todo-task-drag { + color: #111; + position: absolute; + top: 50%; + left: -10px; + font-size: 8px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + cursor: move; + padding: 5px; +} + +.draggable-task.gu-mirror .todo-task-buttons { + display: none; +} + +.draggable-task.gu-mirror .todo-task-media { + padding-top: 10px; +} + +.draggable-task.gu-mirror .todo-task-media img { + display: inline-block; + border-radius: 4px; + height: 30px; + width: auto; + margin-right: 5px; +} + +.attached-media-w img { + display: inline-block; + border-radius: 4px; + height: 27px; + width: auto; + max-width: 37px; + margin-right: 5px; +} + +.attached-media-w .attach-media-btn { + display: inline-block; + margin-left: 10px; +} + +.attached-media-w .attach-media-btn span, .attached-media-w .attach-media-btn i { + display: inline-block; + vertical-align: middle; +} + +.attached-media-w .attach-media-btn span { + border-bottom: 1px solid #047bf8; +} + +.attached-media-w .attach-media-btn i.os-icon { + margin-right: 5px; + font-size: 18px; +} + +.color-scheme-dark .todo-app-w .todo-sidebar { + background-color: #293145; +} + +.color-scheme-dark .todo-app-w .todo-sidebar ul.tasks-list li strong { + color: #ccd9e8; +} + +.color-scheme-dark .todo-app-w .todo-sidebar ul.tasks-list li span { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .todo-app-w .todo-sidebar .todo-sidebar-section { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .todo-app-w .todo-sidebar ul.projects-list li a { + color: #ccd9e8; +} + +.color-scheme-dark .todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-header { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .todo-app-w .todo-sidebar .todo-sidebar-section-sub-section .todo-sidebar-section-sub-section-content ul li a { + color: #ccd9e8; +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-list li.draggable-task.pre-removed { + background-color: #f59595; + color: #a94442; +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-list li.draggable-task.pre-removed .todo-task { + opacity: 0.7; +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-list li.draggable-task.pre-removed span { + color: #a94442; +} + +.color-scheme-dark .todo-app-w .todo-content { + background-color: #323c58; +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-header-w { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-header-w .tasks-sub-header { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-list li.draggable-task .todo-task-buttons .task-btn-done { + color: #55bf10; +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-list li.draggable-task.favorite { + background-color: #efe67b; + color: #383314; +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-list li.draggable-task .todo-task-drag { + color: #fff; +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-list li.draggable-task.complete { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .todo-app-w .todo-content .tasks-list li.draggable-task.complete:before { + background-color: #445279 !important; +} + +/* 20. Fancy Selector */ +.fancy-selector-wdiv { + display: flex; + align-self: stretch; + align-items: center +} + +.fancy-selector-w { + position: relative; + float: left; +} + +.fancy-selector-w .fancy-selector-current { + position: relative; + z-index: 2; + height: 100%; +} + +@media (max-width: 767px) { + .top-bar .fancy-selector-w { + width: 100%; + } +} + +.fancy-selector-w .fancy-selector-current, .fancy-selector-w .fancy-selector-option { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background-color: #fff; + color: #0066ff; + border-bottom: 1px solid #ddd; + text-align: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + +} + +/*.fancy-selector-w .fancy-selector-current:hover { + background-color: #0d3b96; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + +}*/ + +.fs-main-info a { + width: 200px; + text-overflow: ellipsis; + overflow: hidden; + word-wrap: normal; + white-space: nowrap; + display: block; + text-align: left; +} + +@media (max-width: 767px) { + .fs-main-info a { + width: 170px; + } +} + +/* +@media (max-width: 1350px) { + .fancy-selector-w .fancy-selector-current .fs-main-info {padding-left: 22px;} +} +@media (max-width: 1150px) { + .fancy-selector-w .fancy-selector-current .fs-main-info {padding-left: 18px;} +} +@media (max-width: 767px) { + .fancy-selector-w .fancy-selector-current .fs-main-info {padding-left: 0px; padding-right:0px; width:100%;} + .fancy-selector-w .fancy-selector-current .fs-main-info button { display: block!important; width:100%;} + +}*/ + +.fancy-selector-w .fancy-selector-current .fs-main-info .fs-name, .fancy-selector-w .fancy-selector-option .fs-main-info .fs-name { + font-size: 0.92rem; + font-weight: 500; + +} + +.fs-name2 { + font-size: 0.90rem; + color: #666 !important; + text-align: left; +} + +.fs-main-btn button { + padding: 1.18rem 0.99rem !important; + border-radius: 0 !important; + margin-top: -0.76px; + display: block !important; +} + +.fs-name i { + margin-left: 20px; + vertical-align: middle; +} + +.fancy-selector-w .fancy-selector-current .fs-main-info .fs-sub, .fancy-selector-w .fancy-selector-option .fs-main-info .fs-sub { + color: rgba(255, 255, 255, 0.6); + letter-spacing: 0.5px; + font-size: 0.72rem; +} + +.fancy-selector-w .fancy-selector-current .fs-main-info .fs-sub strong, .fancy-selector-w .fancy-selector-option .fs-main-info .fs-sub strong { + color: #F6DB77; + margin-left: 5px; +} + +.fancy-selector-w .fancy-selector-current .fs-extra-info, .fancy-selector-w .fancy-selector-option .fs-extra-info { + padding: 10px 20px; + border-left: 1px solid rgba(255, 255, 255, 0.05); + text-align: center; + color: rgba(255, 255, 255, 0.6); +} + +.fancy-selector-w .fancy-selector-current .fs-extra-info strong, .fancy-selector-w .fancy-selector-option .fs-extra-info strong { + font-size: 0.99rem; + margin-bottom: 5px; + font-weight: 500; + display: block; + letter-spacing: 1px; + line-height: 1; +} + +.fancy-selector-w .fancy-selector-current .fs-extra-info span, .fancy-selector-w .fancy-selector-option .fs-extra-info span { + text-transform: uppercase; + color: rgba(255, 255, 255, 0.4); + font-size: 0.54rem; + letter-spacing: 2px; + line-height: 1; + display: block; +} + +.fancy-selector-w .fancy-selector-current .fs-selector-trigger, .fancy-selector-w .fancy-selector-option .fs-selector-trigger { + + padding: 10px 10px; + font-size: 16px; + color: #0066ff; + -ms-flex-item-align: stretch; + align-self: stretch; + position: relative; + width: 60px; + cursor: pointer; +} + +.fancy-selector-w .fancy-selector-current .fs-selector-trigger i, .fancy-selector-w .fancy-selector-option .fs-selector-trigger i { + vertical-align: middle; + display: inline-block; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.fancy-selector-w .fancy-selector-current .fs-selector-trigger:hover, .fancy-selector-w .fancy-selector-option .fs-selector-trigger:hover { + + color: #0066ff; +} + +.fancy-selector-w .fancy-selector-current .fs-selector-trigger:hover i, .fancy-selector-w .fancy-selector-option .fs-selector-trigger:hover i { + -webkit-transform: translate(-50%, -40%); + transform: translate(-50%, -40%); +} + +.fancy-selector-w .fancy-selector-options { + background-color: #fff; + position: absolute; + left: 0px; + margin-top: 5px; + min-width: 100%; + /*padding-top: 15px;*/ + z-index: 9998; + border-bottom: 1px solid #ddd; + border-right: 1px solid #ddd; + border-radius: 0px 0px 6px 6px; + visibility: hidden; + -webkit-transform: translateY(-30px) scale(1); + transform: translateY(-30px) scale(1); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + opacity: 0; +} + +.fancy-selector-w .fancy-selector-options .fancy-selector-actions { + padding: 15px 15px 0px 15px; +} + +.fancy-selector-w .fancy-selector-options .fancy-selector-option { + padding: 8px 20px; + border-bottom: 1px solid rgba(255, 255, 255, 0.08); + + position: relative; + background-color: transparent; + cursor: pointer; + border-radius: 0px; +} + +.fancy-selector-w .fancy-selector-options .fancy-selector-option .fs-extra-info { + padding-right: 10px; +} + +.fancy-selector-w .fancy-selector-options .fancy-selector-option .fs-main-info { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.fancy-selector-w .fancy-selector-options .fancy-selector-option.active { + color: white; +} + +.fancy-selector-w .fancy-selector-options .fancy-selector-option.active:before { + content: ""; + width: 8px; + height: 8px; + background-color: #ffb900; + position: absolute; + top: 50%; + left: 15px; + border-radius: 6px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.fancy-selector-w .fancy-selector-options .fancy-selector-option:hover { + background-color: rgba(0, 0, 0, 0.05); + color: #fff; +} + +.fancy-selector-w.opened .fancy-selector-options { + visibility: visible; + -webkit-transform: translateY(-5px) scale(1); + transform: translateY(-5px) scale(1); + opacity: 1; +} + +.fancy-selector-w.opened .fs-selector-trigger i { + -webkit-transform: translate(-50%, -50%) rotate(180deg); + transform: translate(-50%, -50%) rotate(180deg); +} + +.fancy-selector-w.opened .fs-selector-trigger:hover i { + -webkit-transform: translate(-50%, -60%) rotate(180deg); + transform: translate(-50%, -60%) rotate(180deg); +} + +/* 21. App - Rentals */ +.top-bar-rentals { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; +} + +.top-bar-rentals .logo-w { + -webkit-box-flex: 0; + -ms-flex: 0 0 400px; + flex: 0 0 400px; + background-color: #4472fd; + padding: 10px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.top-bar-rentals .logo-w .filters-toggler { + color: rgba(255, 255, 255, 0.7); + font-size: 20px; + line-height: 1; + cursor: pointer; +} + +.top-bar-rentals .logo-w .filters-toggler .os-icon { + display: inline-block; + vertical-align: middle; + line-height: 1; +} + +.top-bar-rentals .logo-w .filters-toggler:hover { + color: #fff; +} + +.top-bar-rentals .logo-w .logo { + display: inline-block; + text-decoration: none; +} + +.top-bar-rentals .logo-w .logo-element { + content: ""; + width: 26px; + height: 26px; + border-radius: 15px; + position: relative; + background-color: #98c9fd; + display: inline-block; + vertical-align: middle; + margin-right: 40px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.top-bar-rentals .logo-w .logo-element:after { + content: ""; + width: 26px; + height: 26px; + background-color: #fff; + border-radius: 15px; + right: -20px; + position: absolute; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.top-bar-rentals .logo-w .logo:hover .logo-element { + -webkit-transform: translateX(5px); + transform: translateX(5px); +} + +.top-bar-rentals .logo-w .logo:hover .logo-element:after { + -webkit-transform: translateX(-10px); + transform: translateX(-10px); +} + +.top-bar-rentals .logo-w .logo:hover .logo-label:after { + width: 100%; + background-color: #fff; +} + +.top-bar-rentals .logo-w .logo-label { + display: inline-block; + vertical-align: middle; + color: #fff; + letter-spacing: 2px; + text-transform: uppercase; + font-weight: 500; + font-size: 1.08rem; + position: relative; +} + +.top-bar-rentals .logo-w .logo-label:after { + height: 2px; + position: absolute; + width: 0%; + left: 0px; + bottom: -5px; + background-color: #fff; + content: ""; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.top-bar-rentals .filters { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + background-color: #24293d; + padding: 0px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.top-bar-rentals .filters .filters-header { + padding-right: 20px; +} + +.top-bar-rentals .filters .filters-header h4 { + color: #fff; + letter-spacing: 2px; + text-transform: uppercase; + font-weight: 500; + font-size: 0.9rem; + margin: 0px; +} + +.filter-w { + padding: 15px 20px; + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.filter-w label { + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: rgba(255, 255, 255, 0.4); + display: inline-block; + margin-right: 10px; +} + +.filter-w input.form-control { + background-color: #040407; + border-color: #040407; + color: #fff; + font-weight: 500; + letter-spacing: 1px; +} + +.filter-w input.form-control.zip-width { + width: 70px; + padding-left: 5px; +} + +.filter-w input.form-control.date-range-picker { + width: 250px; + padding-left: 5px; +} + +.filter-w .input-group-prepend, .top-bar-rentals .filters .filter-w .input-group-text { + background-color: #040407; + border-color: #040407; + color: #4472fd; + font-size: 20px; +} + +.top-bar-rentals .filters .buttons-w .btn, .top-bar-rentals .filters .buttons-w .all-wrapper .fc-button, .all-wrapper .top-bar-rentals .filters .buttons-w .fc-button { + font-size: 0.81rem; +} + +.top-bar-rentals .filters .buttons-w .btn i.os-icon, .top-bar-rentals .filters .buttons-w .all-wrapper .fc-button i.os-icon, .all-wrapper .top-bar-rentals .filters .buttons-w .fc-button i.os-icon { + margin: 0px; +} + +.top-bar-rentals .filters .buttons-w .btn i.os-icon + span, .top-bar-rentals .filters .buttons-w .all-wrapper .fc-button i.os-icon + span, .all-wrapper .top-bar-rentals .filters .buttons-w .fc-button i.os-icon + span { + margin: 0px; + margin-left: 10px; +} + +.top-bar-rentals .filters .buttons-w .btn span + i.os-icon, .top-bar-rentals .filters .buttons-w .all-wrapper .fc-button span + i.os-icon, .all-wrapper .top-bar-rentals .filters .buttons-w .fc-button span + i.os-icon { + margin: 0px; + margin-left: 10px; +} + +.rentals-list-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background-color: #fff; + margin-bottom: 100px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.rentals-list-w .filter-side { + background-color: #f6f6f6; + -webkit-box-flex: 0; + -ms-flex: 0 0 400px; + flex: 0 0 400px; +} + +.rentals-list-w .filter-side .filters-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 16px 20px; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.rentals-list-w .filter-side .filters-header h4 { + text-transform: uppercase; + letter-spacing: 2px; + font-size: 1.08rem; + margin-bottom: 0px; +} + +.rentals-list-w .filter-side .filters-header .reset-filters { + color: #BC8F8F; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.rentals-list-w .filter-side .filters-header .reset-filters i { + display: inline-block; + vertical-align: middle; + margin-right: 10px; + font-size: 10px; +} + +.rentals-list-w .filter-side .filters-header .reset-filters span { + display: inline-block; + vertical-align: middle; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.63rem; +} + +.filter-w { + position: relative; +} + +.filter-w .filter-toggle { + position: absolute; + top: 20px; + right: 20px; + display: inline-block; + padding: 4px 5px; + border-radius: 4px; + background-color: rgba(0, 0, 0, 0.07); + color: rgba(0, 0, 0, 0.4); + font-size: 10px; + line-height: 1; + vertical-align: middle; + cursor: pointer; + z-index: 3; +} + +.filter-w .filter-toggle i { + display: inline-block; + vertical-align: middle; +} + +.filter-w .filter-toggle:hover { + background-color: #111; + color: #fff; +} + +.filter-w iframe { + max-width: 100%; +} + +.filter-w.no-padding .filter-body { + padding-left: 0px; + padding-right: 0px; +} + +.filter-w.collapsed .filter-body { + display: none; +} + +.rentals-list-w .filter-side .filter-header { + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.81rem; + position: relative; + padding: 40px; + padding-bottom: 20px; + padding-top: 20px; + margin: 0px; +} + +.rentals-list-w .filter-side .filter-header:before { + content: ""; + background-color: #047bf8; + width: 7px; + height: 7px; + left: 20px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + position: absolute; +} + +.filter-body { + padding: 10px 40px 30px 40px; +} + +.filter-w + .filter-w { + border-top: 1px solid rgba(0, 0, 0, 0.05); +} + +.select2 { + display: block; + width: 100%; +} + +.select2.select2-container--default .select2-selection--multiple { + background-color: #fff; + border-color: #e2e4ef; + +} + +.select2-selection__choice { + border: 2px solid #0066ff; + border-radius: 16px; + font-size: 0.75rem; + background-color: #0066ff; + font-weight: 500; + padding: 3px 8px; + color: #fff; + margin-right: 7px; + max-width: 250px; + text-overflow: ellipsis; + -o-text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + word-wrap: normal !important; + display: block; +} + +.select2-selection__choice__remove { + color: #fff; +} + +.rentals-list-w .rentals-list { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.rentals-list-w .rentals-list .list-controls { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 10px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.rentals-list-w .rentals-list .list-controls .list-info { + color: rgba(0, 0, 0, 0.4); + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + font-size: 0.72rem; +} + +.rentals-list-w .rentals-list .list-controls .list-order { + margin-left: auto; +} + +.rentals-list-w .rentals-list .list-controls .list-order label { + margin-right: 10px; + color: rgba(0, 0, 0, 0.4); + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + font-size: 0.72rem; + margin-bottom: 0px; +} + +.rentals-list-w .property-items.as-list .property-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.rentals-list-w .property-items.as-list .property-item .item-media-w { + -webkit-box-flex: 0; + -ms-flex: 0 0 40%; + flex: 0 0 40%; +} + +.rentals-list-w .property-items.as-list .property-item .item-media-w .item-media { + height: 100%; +} + +.rentals-list-w .property-items.as-list .property-item .item-info { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.rentals-list-w .property-items.as-grid { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.rentals-list-w .property-items.as-grid .property-item { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding: 20px; +} + +.rentals-list-w .property-items.as-grid .property-item:nth-child(odd) { + border-right: 1px solid rgba(0, 0, 0, 0.1); +} + +.rentals-list-w .property-items.as-grid .property-item .item-media-w .item-media { + padding-bottom: 65%; +} + +.rentals-list-w .property-items.as-grid .property-item .item-info { + padding: 30px 30px; +} + +.rentals-list-w .property-item { + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.rentals-list-w .property-item .item-media-w { + display: block; + position: relative; + overflow: hidden; +} + +.rentals-list-w .property-item .item-media-w .item-media { + background-size: cover; + background-position: center center; + z-index: 2; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; +} + +.rentals-list-w .property-item .item-media-w:after { + content: ""; + background-color: transparent; + position: absolute; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + z-index: 3; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; +} + +.rentals-list-w .property-item .item-media-w:hover .item-media { + -webkit-transform: scale(1.05); + transform: scale(1.05); +} + +.rentals-list-w .property-item .item-media-w:hover:after { + background-color: rgba(0, 0, 0, 0.1); +} + +.rentals-list-w .property-item .item-info { + padding: 60px 50px; +} + +.rentals-list-w .property-item .item-info .item-title a { + color: #334152; + text-decoration: none; +} + +.rentals-list-w .property-item .item-info .item-title a:hover { + color: #1f2833; +} + +.rentals-list-w .property-item .item-price-buttons { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-top: 20px; +} + +.rentals-list-w .property-item .item-reviews { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-top: 15px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.rentals-list-w .property-item .item-reviews .reviews-count { + padding-left: 10px; + margin-left: 10px; + border-left: 1px solid rgba(0, 0, 0, 0.1); + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: rgba(0, 0, 0, 0.4); +} + +.rentals-list-w .property-item .item-price strong { + color: #047bf8; + font-size: 1.8rem; +} + +.rentals-list-w .property-item .item-price span { + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: #999; + margin-left: 5px; +} + +.rentals-list-w .property-item .item-features { + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: #777; + margin: 10px 0px; +} + +.rentals-list-w .property-item .item-features .feature { + margin-right: 17px; + position: relative; + display: inline-block; + vertical-align: middle; +} + +.rentals-list-w .property-item .item-features .feature + .feature:before { + content: ""; + width: 5px; + height: 5px; + border-radius: 10px; + background-color: rgba(0, 0, 0, 0.4); + position: absolute; + left: -15px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.rentals-list-w .property-item .item-buttons { + padding-top: 20px; +} + +.rentals-list-w .property-item .item-buttons .btn, .rentals-list-w .property-item .item-buttons .all-wrapper .fc-button, .all-wrapper .rentals-list-w .property-item .item-buttons .fc-button { + border-width: 2px; + text-transform: uppercase; + font-weight: 500; + padding: 5px 14px; + letter-spacing: 2px; +} + +.rentals-list-w .property-item .item-buttons .btn span, .rentals-list-w .property-item .item-buttons .all-wrapper .fc-button span, .all-wrapper .rentals-list-w .property-item .item-buttons .fc-button span, .rentals-list-w .property-item .item-buttons .btn i, .rentals-list-w .property-item .item-buttons .all-wrapper .fc-button i, .all-wrapper .rentals-list-w .property-item .item-buttons .fc-button i { + display: inline-block; + vertical-align: middle; +} + +.rentals-list-w .property-item .item-buttons .btn span + i, .rentals-list-w .property-item .item-buttons .all-wrapper .fc-button span + i, .all-wrapper .rentals-list-w .property-item .item-buttons .fc-button span + i { + margin-left: 10px; + font-size: 10px; + margin-right: 0px; +} + +.rentals-list-w .property-item .item-buttons .btn + .btn, .rentals-list-w .property-item .item-buttons .all-wrapper .fc-button + .btn, .all-wrapper .rentals-list-w .property-item .item-buttons .fc-button + .btn, .rentals-list-w .property-item .item-buttons .all-wrapper .btn + .fc-button, .all-wrapper .rentals-list-w .property-item .item-buttons .btn + .fc-button, .rentals-list-w .property-item .item-buttons .all-wrapper .fc-button + .fc-button, .all-wrapper .rentals-list-w .property-item .item-buttons .fc-button + .fc-button { + margin-left: 10px; +} + +.rentals-list-w .pagination-w { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 10px 20px; +} + +.rentals-list-w .pagination-w .pagination-info { + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: rgba(0, 0, 0, 0.4); +} + +.rentals-list-w .pagination-w .pagination-links .pagination { + margin-bottom: 0; + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: #047bf8; +} + +.rentals-list-w .pagination-w .pagination-links .pagination .page-link { + border: none; +} + +.rentals-list-w .pagination-w .pagination-links .pagination .disabled .page-link { + color: rgba(0, 0, 0, 0.3); +} + +.rentals-list-w.hide-filters .filter-side { + display: none; +} + +.rentals-list-w.hide-filters .property-items.as-grid .property-item { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3%; + flex: 0 0 33.3%; + border-right: 1px solid rgba(0, 0, 0, 0.1); +} + +.rentals-list-w.hide-filters .property-items.as-grid .property-item:nth-child(3n) { + border-right: none; +} + +.property-single { + background-color: #fff; +} + +.property-single .property-media { + height: 60vh; + position: relative; + background-size: cover; + background-position: center center; +} + +.property-single .property-media .media-buttons { + position: absolute; + left: 40px; + bottom: 40px; +} + +.property-single .property-media .media-buttons a { + background-color: rgba(255, 255, 255, 0.8); + padding: 6px 12px; + border-radius: 4px; + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + display: inline-block; + color: #111; +} + +.property-single .property-media .media-buttons a:hover { + background-color: white; +} + +.property-single .property-media .media-buttons a i.os-icon { + font-size: 20px; + margin-right: 10px; + display: inline-block; + vertical-align: middle; +} + +.property-single .property-media .media-buttons a span { + display: inline-block; + vertical-align: middle; +} + +.property-single .property-media .media-buttons a + a { + margin-left: 20px; +} + +.property-single .property-info-w { + max-width: 1200px; + margin: 0px auto; + padding: 0px 40px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.property-single .property-info-w .property-info-main { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + border-left: 1px solid rgba(0, 0, 0, 0.1); + padding: 60px; + position: relative; +} + +.property-single .property-info-w .property-info-main .property-price { + text-align: center; + padding: 30px 10px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + position: absolute; + width: 400px; + background-color: #fff; + top: 0px; + right: 0px; + -webkit-transform: translate(100%, -100%); + transform: translate(100%, -100%); +} + +.property-single .property-info-w .property-info-main .property-price strong { + color: #047bf8; + font-size: 2.5rem; + display: block; + line-height: 1; +} + +.property-single .property-info-w .property-info-main .property-price span { + display: inline-block; + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: rgba(0, 0, 0, 0.4); + font-size: 0.81rem; + letter-spacing: 1px; +} + +.property-single .property-info-w .property-info-main h1 { + font-size: 3rem; +} + +.property-single .property-info-w .property-info-main .property-features-highlight { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 20px 0px; + margin-top: 30px; +} + +.property-single .property-info-w .property-info-main .property-features-highlight .feature { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + text-align: center; +} + +.property-single .property-info-w .property-info-main .property-features-highlight .feature i { + display: inline-block; + font-size: 30px; + color: #047bf8; +} + +.property-single .property-info-w .property-info-main .property-features-highlight .feature span { + display: block; + margin-top: 10px; + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + font-size: 12px; +} + +.property-single .property-info-w .property-info-main .property-description { + font-size: 0.99rem; + font-weight: 300; + margin: 30px 0px; +} + +.property-single .property-info-w .property-info-main .badge { + border-radius: 0px; + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + padding: 5px 10px; +} + +.property-single .property-info-w .property-info-main .badge.badge-red { + background-color: #F70E2D; + color: #fff; +} + +.property-single .property-info-w .property-info-main .item-reviews { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-top: 15px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.property-single .property-info-w .property-info-main .item-reviews .reviews-count { + padding-left: 10px; + margin-left: 10px; + border-left: 1px solid rgba(0, 0, 0, 0.1); + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: rgba(0, 0, 0, 0.4); +} + +.property-single .property-info-w .property-info-main .item-features { + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: #777; + margin: 10px 0px; + font-size: 0.99rem; + position: relative; +} + +.property-single .property-info-w .property-info-main .item-features:before { + content: ""; + background-color: #047bf8; + width: 7px; + height: 7px; + left: -63px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + position: absolute; +} + +.property-single .property-info-w .property-info-main .item-features .feature { + margin-right: 17px; + position: relative; + display: inline-block; + vertical-align: middle; +} + +.property-single .property-info-w .property-info-main .item-features .feature + .feature:before { + content: ""; + width: 5px; + height: 5px; + border-radius: 10px; + background-color: rgba(0, 0, 0, 0.4); + position: absolute; + left: -15px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.property-single .property-info-w .property-info-side { + -webkit-box-flex: 0; + -ms-flex: 0 0 400px; + flex: 0 0 400px; + background-color: #fff; + padding: 0px; + border-left: 1px solid rgba(0, 0, 0, 0.1); + border-right: 1px solid rgba(0, 0, 0, 0.1); +} + +.property-single .property-info-w .property-info-side .side-action-form { + padding: 30px 40px; +} + +.property-single .property-info-w .property-info-side .side-action-form .input-group { + border: 2px solid rgba(0, 0, 0, 0.2); + border-radius: 4px; +} + +.property-single .property-info-w .property-info-side .side-action-form .input-group .input-group-prepend .input-group-text { + border: none; + background-color: #fff; + color: #111; +} + +.property-single .property-info-w .property-info-side .side-action-form .input-group .form-control { + border: none; + font-weight: 500; +} + +.property-single .property-info-w .property-info-side .side-action-form .form-buttons { + text-align: center; +} + +.property-single .property-info-w .property-info-side .side-action-form .btn, .property-single .property-info-w .property-info-side .side-action-form .all-wrapper .fc-button, .all-wrapper .property-single .property-info-w .property-info-side .side-action-form .fc-button { + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + padding: 12px 20px; +} + +.property-single .property-info-w .property-info-side .side-action-form .btn span, .property-single .property-info-w .property-info-side .side-action-form .all-wrapper .fc-button span, .all-wrapper .property-single .property-info-w .property-info-side .side-action-form .fc-button span { + margin-right: 10px; +} + +.property-single .property-info-w .property-info-side .side-action-form .btn i.os-icon, .property-single .property-info-w .property-info-side .side-action-form .all-wrapper .fc-button i.os-icon, .all-wrapper .property-single .property-info-w .property-info-side .side-action-form .fc-button i.os-icon { + font-size: 10px; + margin-right: 0px; +} + +.property-single .property-info-w .property-info-side .side-magic { + padding: 15% 10%; + position: relative; + color: rgba(255, 255, 255, 0.8); +} + +.property-single .property-info-w .property-info-side .side-magic .fader { + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: rgba(0, 0, 0, 0.5); + content: ""; +} + +.property-single .property-info-w .property-info-side .side-magic .side-magic-title { + color: #fff; + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + font-size: 1.75rem; + position: relative; + margin-bottom: 20px; + text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2); +} + +.property-single .property-info-w .property-info-side .side-magic .side-magic-desc { + position: relative; + font-size: 1.08rem; +} + +.property-single .property-info-w .property-info-side .side-magic .side-magic-btn { + position: relative; + background-color: #fff; + border-radius: 4px; + -webkit-box-shadow: 0px 3px 12px rgba(0, 0, 0, 0.7); + box-shadow: 0px 3px 12px rgba(0, 0, 0, 0.7); + padding: 7px 15px; + color: #111; + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + font-size: 1.08rem; + display: inline-block; + margin-top: 30px; + text-decoration: none; +} + +.property-single .property-info-w .property-info-side .side-section .side-section-header { + padding: 20px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + position: relative; + color: #111; + text-align: center; + font-size: 0.99rem; +} + +.property-single .property-info-w .property-info-side .side-section .side-section-header:before { + content: ""; + background-color: #047bf8; + width: 7px; + height: 7px; + left: 50%; + top: -4px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + position: absolute; +} + +.property-single .property-info-w .property-info-side .side-section .side-section-content { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 20px 0px; +} + +.property-single .property-info-w .property-info-side .property-side-features .feature { + padding: 15px 40px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; +} + +.property-single .property-info-w .property-info-side .property-side-features .feature i, .property-single .property-info-w .property-info-side .property-side-features .feature span, .property-single .property-info-w .property-info-side .property-side-features .feature strong { + display: inline-block; + vertical-align: middle; +} + +.property-single .property-info-w .property-info-side .property-side-features .feature span { + color: rgba(0, 0, 0, 0.6); +} + +.property-single .property-info-w .property-info-side .property-side-features .feature strong { + margin-right: 3px; + color: #111; +} + +.property-single .property-info-w .property-info-side .property-side-features .feature i { + color: #047bf8; + font-size: 30px; + margin-right: 20px; +} + +.property-single .property-info-w .property-info-side .property-side-features .feature:last-child { + border-bottom: none; +} + +.property-single .property-info-w .property-section .property-section-header { + padding: 20px 0px; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + position: relative; + color: #111; + font-size: 0.99rem; +} + +.property-single .property-info-w .property-section .property-section-header:before { + content: ""; + background-color: #047bf8; + width: 7px; + height: 7px; + left: -63px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + position: absolute; +} + +.property-single .property-info-w .property-section .property-section-header .filter-toggle { + position: absolute; + top: 20px; + right: 20px; + display: inline-block; + padding: 4px 5px; + border-radius: 4px; + background-color: rgba(0, 0, 0, 0.07); + color: rgba(0, 0, 0, 0.4); + font-size: 10px; + line-height: 1; + vertical-align: middle; + cursor: pointer; + z-index: 3; +} + +.property-single .property-info-w .property-section .property-section-header .filter-toggle i { + display: inline-block; + vertical-align: middle; +} + +.property-single .property-info-w .property-section .property-section-header .filter-toggle:hover { + background-color: #111; + color: #fff; +} + +.property-single .property-info-w .property-section .property-section-body { + padding: 40px 0px; + font-size: 0.99rem; + font-weight: 300; +} + +.property-single .property-info-w .property-section .property-section-body iframe { + max-width: 100%; +} + +.property-single .property-info-w .property-section .property-section-body ul li { + margin-bottom: 10px; +} + +.property-single .property-info-w .property-section .property-section-body ul li .os-icon { + display: inline-block; + vertical-align: middle; + margin-right: 10px; + font-size: 20px; +} + +.property-single .property-info-w .property-section .property-section-body ul li span { + display: inline-block; + vertical-align: middle; +} + +.property-single .property-info-w .property-section .property-section-body .property-note { + padding: 20px; + background-color: #FBF9F3; + color: #383328; + font-size: 0.81rem; + margin: 20px 0px; +} + +.property-single .property-info-w .property-section .property-section-body .property-note:last-child { + margin-bottom: 0px; +} + +.property-single .property-info-w .property-section .property-section-body .property-note h6 { + font-size: 0.81rem; +} + +.property-single .property-info-w .property-section .property-section-body .property-note p:last-child { + margin-bottom: 0px; +} + +.related-listings-w { + margin-bottom: 100px; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +.related-listings-w .property-section-big-header { + position: relative; + text-align: center; + padding: 30px; + letter-spacing: 3px; + text-transform: uppercase; +} + +.related-listings-w .property-section-big-header:before { + content: ""; + background-color: #047bf8; + width: 7px; + height: 7px; + left: 50%; + top: -4px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + position: absolute; +} + +.related-listings-w .related-listings { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.related-listings-w .property-item { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3%; + flex: 0 0 33.3%; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.related-listings-w .property-item + .property-item { + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.related-listings-w .property-item .item-media-w { + display: block; + position: relative; + overflow: hidden; +} + +.related-listings-w .property-item .item-media-w .item-media { + background-size: cover; + background-position: center center; + z-index: 2; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; + padding-bottom: 65%; +} + +.related-listings-w .property-item .item-media-w:after { + content: ""; + background-color: transparent; + position: absolute; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + z-index: 3; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; +} + +.related-listings-w .property-item .item-media-w:hover .item-media { + -webkit-transform: scale(1.05); + transform: scale(1.05); +} + +.related-listings-w .property-item .item-media-w:hover:after { + background-color: rgba(0, 0, 0, 0.1); +} + +.related-listings-w .property-item .item-info { + padding: 60px 50px; +} + +.related-listings-w .property-item .item-info .item-title a { + color: #334152; + text-decoration: none; +} + +.related-listings-w .property-item .item-info .item-title a:hover { + color: #1f2833; +} + +.related-listings-w .property-item .item-price-buttons { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-top: 20px; +} + +.related-listings-w .property-item .item-reviews { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-top: 15px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.related-listings-w .property-item .item-reviews .reviews-count { + padding-left: 10px; + margin-left: 10px; + border-left: 1px solid rgba(0, 0, 0, 0.1); + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: rgba(0, 0, 0, 0.4); +} + +.related-listings-w .property-item .item-price strong { + color: #047bf8; + font-size: 1.8rem; +} + +.related-listings-w .property-item .item-price span { + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: #999; + margin-left: 5px; +} + +.related-listings-w .property-item .item-features { + font-size: 0.72rem; + text-transform: uppercase; + font-weight: 500; + letter-spacing: 1px; + color: #777; + margin: 10px 0px; +} + +.related-listings-w .property-item .item-features .feature { + margin-right: 17px; + position: relative; + display: inline-block; + vertical-align: middle; +} + +.related-listings-w .property-item .item-features .feature + .feature:before { + content: ""; + width: 5px; + height: 5px; + border-radius: 10px; + background-color: rgba(0, 0, 0, 0.4); + position: absolute; + left: -15px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.related-listings-w .property-item .item-buttons { + padding-top: 20px; +} + +.related-listings-w .property-item .item-buttons .btn, .related-listings-w .property-item .item-buttons .all-wrapper .fc-button, .all-wrapper .related-listings-w .property-item .item-buttons .fc-button { + border-width: 2px; + text-transform: uppercase; + font-weight: 500; + padding: 5px 14px; + letter-spacing: 2px; +} + +.related-listings-w .property-item .item-buttons .btn span, .related-listings-w .property-item .item-buttons .all-wrapper .fc-button span, .all-wrapper .related-listings-w .property-item .item-buttons .fc-button span, .related-listings-w .property-item .item-buttons .btn i, .related-listings-w .property-item .item-buttons .all-wrapper .fc-button i, .all-wrapper .related-listings-w .property-item .item-buttons .fc-button i { + display: inline-block; + vertical-align: middle; +} + +.related-listings-w .property-item .item-buttons .btn span + i, .related-listings-w .property-item .item-buttons .all-wrapper .fc-button span + i, .all-wrapper .related-listings-w .property-item .item-buttons .fc-button span + i { + margin-left: 10px; + font-size: 10px; + margin-right: 0px; +} + +.related-listings-w .property-item .item-buttons .btn + .btn, .related-listings-w .property-item .item-buttons .all-wrapper .fc-button + .btn, .all-wrapper .related-listings-w .property-item .item-buttons .fc-button + .btn, .related-listings-w .property-item .item-buttons .all-wrapper .btn + .fc-button, .all-wrapper .related-listings-w .property-item .item-buttons .btn + .fc-button, .related-listings-w .property-item .item-buttons .all-wrapper .fc-button + .fc-button, .all-wrapper .related-listings-w .property-item .item-buttons .fc-button + .fc-button { + margin-left: 10px; +} + +body.rentals-wrapper .select2-container--default .select2-selection--single, body.rentals-wrapper .select2-container--default .select2-selection--multiple { + cursor: pointer; + border-width: 1px; +} + +body.rentals-wrapper .select2-dropdown { + background-color: #fff; + border: none; + border-radius: 6px; + -webkit-box-shadow: 0 5px 50px rgba(4, 123, 248, 0.3); + box-shadow: 0 5px 50px rgba(4, 123, 248, 0.3); + padding: 10px 15px; +} + +body.rentals-wrapper .select2-dropdown:before { + content: ""; + border-width: 6px; + border-style: solid; + border-color: transparent; + border-bottom-color: #fff; + position: absolute; + top: 0px; + left: 10px; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); +} + +body.rentals-wrapper .select2-results__option { + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + padding: 6px 15px; + margin: 5px 0px; + border-radius: 6px; +} + +body.rentals-wrapper .select2-results__option:last-child { + border-bottom: none; +} + +body.rentals-wrapper .select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: #047bf8; + color: #fff; +} + +body.rentals-wrapper .select2-container--default .select2-results__option[aria-selected=true] { + background-color: #047bf8; + color: #fff; +} + +/* 22. App - Support */ +.support-index { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} + +.support-index .support-tickets { + -webkit-box-flex: 0; + -ms-flex: 0 0 470px; + flex: 0 0 470px; + padding-left: 10px; + padding-right: 10px; + margin-left: 10px; + margin-right: 10px; + /*border-right: 1px solid rgba(0, 0, 0, 0.05);*/ +} + +.support-index .load-more-tickets { + text-align: center; + margin-top: 8px; +} + +.support-index .load-more-tickets a { + display: inline-block; + padding: 10px; + text-decoration: none; +} + +.support-index .load-more-tickets a i { + font-size: 20px; + display: inline-block; + vertical-align: middle; +} + +.support-index .load-more-tickets a span { + display: inline-block; + vertical-align: middle; + border-bottom: 1px solid #047bf8; +} + +.support-index .load-more-tickets a i + span { + margin-left: 10px; +} + +.support-index .support-tickets-header h5 { + margin-bottom: 0px; +} + +.support-index .support-tickets-header .tickets-control { + border-bottom: 1px solid rgba(0, 0, 0, 0.08); + padding-bottom: 10px; + margin-bottom: 10px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.support-index .support-tickets-header .tickets-control .element-search { + position: relative; + margin-left: auto; +} + +.support-index .support-tickets-header .tickets-control .element-search:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + left: 10px; + top: 48%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 16px; + content: "\e92c"; + color: rgba(0, 0, 0, 0.2); +} + +.support-index .support-tickets-header .tickets-control .element-search input { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + background-color: rgba(0, 0, 0, 0.03); + border-radius: 30px; + padding: 4px 10px 4px 40px; + display: block; + width: 100%; + font-size: 0.81rem; + outline: none; +} + +.support-index .support-tickets-header .tickets-control .element-search input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.support-index .support-tickets-header .tickets-control .element-search input:-ms-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.support-index .support-tickets-header .tickets-control .element-search input::-ms-input-placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.support-index .support-tickets-header .tickets-control .element-search input::placeholder { + color: rgba(0, 0, 0, 0.3); +} + +.support-index .support-tickets-header .tickets-filter { + /*margin-bottom: 15px; + border-bottom: 1px solid rgba(0, 0, 0, 0.08);*/ + padding-bottom: 10px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.support-index .support-tickets-header .tickets-filter .form-check { + margin-bottom: 0px; +} + +.support-index .support-tickets-header .tickets-filter .form-check label.form-check-label { + vertical-align: middle; + padding-left: 5px; +} + +.support-index .support-tickets-header .tickets-filter .form-group { + white-space: nowrap; + margin-bottom: 0px; +} + +.support-index .support-tickets-header .tickets-filter .form-group label { + margin-bottom: 0px; +} + +.support-index .support-tickets-header .tickets-filter select.form-control-sm, .support-index .support-tickets-header .tickets-filter .input-group-sm > select.form-control, .support-index .support-tickets-header .tickets-filter +.input-group-sm > .input-group-prepend > select.input-group-text, .support-index .support-tickets-header .tickets-filter +.input-group-sm > .input-group-append > select.input-group-text, .support-index .support-tickets-header .tickets-filter +.input-group-sm > .input-group-prepend > select.btn, .support-index .support-tickets-header .tickets-filter .all-wrapper +.input-group-sm > .input-group-prepend > select.fc-button, .all-wrapper .support-index .support-tickets-header .tickets-filter +.input-group-sm > .input-group-prepend > select.fc-button, .support-index .support-tickets-header .tickets-filter +.input-group-sm > .input-group-append > select.btn, .support-index .support-tickets-header .tickets-filter .all-wrapper +.input-group-sm > .input-group-append > select.fc-button, .all-wrapper .support-index .support-tickets-header .tickets-filter +.input-group-sm > .input-group-append > select.fc-button { + background-color: #fff; +} + +.support-index .support-tickets-header .tickets-filter .stick-right { + margin-left: auto; +} + +.support-index .support-ticket { + background-color: #fff; + border-radius: 6px; + -webkit-box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + position: relative; +} + +.support-index .support-ticket + .support-ticket { + margin-top: 20px; +} + +.support-index .support-ticket:hover, .support-index .support-ticket.active { + -webkit-box-shadow: 0px 5px 12px rgba(126, 142, 177, 0.2), 0px 0px 0px 2px #047bf8; + box-shadow: 0px 5px 12px rgba(126, 142, 177, 0.2), 0px 0px 0px 2px #047bf8; + -webkit-transform: translateY(-3px); + transform: translateY(-3px); + cursor: pointer; +} + +.support-index .support-ticket:hover .ticket-title, .support-index .support-ticket.active .ticket-title { + color: #047bf8; +} + +.support-index .support-ticket.active { + -webkit-transform: none; + transform: none; +} + +.support-index .st-meta { + position: absolute; + top: 5px; + right: 5px; + z-index: 99; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.support-index .st-meta > div { + margin-left: 10px; +} + +.support-index .st-meta > i { + margin-left: 10px; + color: #EAA81D; + font-size: 16px; +} + +.support-index .st-meta .badge { + font-size: 0.72rem; + padding: 2px 5px; +} + +.support-index .st-body { + -webkit-box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.05); + box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.05); + padding: 20px; + border-radius: 6px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.support-index .st-body .avatar { + -webkit-box-flex: 0; + -ms-flex: 0 0 50px; + flex: 0 0 50px; + padding-right: 15px; +} + +.support-index .st-body .avatar img { + width: 50px; + height: auto; + border-radius: 50px; +} + +.support-index .st-body .ticket-content .ticket-title { + margin-bottom: 5px; +} + +.support-index .st-body .ticket-content .ticket-description { + color: #636c72; + font-size: 0.81rem; + font-weight: 300; + height: 1.215rem; + overflow: hidden; +} + +.support-index .st-foot { + padding: 10px 20px; + font-size: 0.81rem; +} + +.support-index .st-foot .label { + color: #636c72; + font-weight: 300; + display: inline-block; + vertical-align: middle; +} + +.support-index .st-foot .value { + vertical-align: middle; + display: inline-block; + color: #047bf8; +} + +.support-index .st-foot a.value span { + border-bottom: 1px solid #047bf8; +} + +.support-index .st-foot a.value.with-avatar img { + width: 25px; +} + +.support-index .st-foot .label + .value { + margin-left: 10px; +} + +.support-index .st-foot .value + .label { + margin-left: 20px; +} + +.support-index .support-ticket-content-w { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + background-color: #fff; + padding: 10px; + -webkit-box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + border-radius: 6px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; +} + +.support-index .support-ticket-content-w .support-ticket-content { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 10px 30px; + position: relative; +} + +.support-index .support-ticket-content-w .support-ticket-content .support-ticket-content-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + + padding: 10px 0px; +} + +.support-index .support-ticket-content-w .support-ticket-content .support-ticket-content-header .show-ticket-info { + right: 10px; + top: 10px; + position: absolute; +} + +.support-index .support-ticket-content-w .support-ticket-content .support-ticket-content-header h3, .support-index .support-ticket-content-w .support-ticket-content .support-ticket-content-header h4 { + margin-bottom: 0px; +} + +.support-index .support-ticket-content-w .support-ticket-content .show-ticket-info, +.support-index .support-ticket-content-w .support-ticket-content .back-to-index { + + text-decoration: none; + white-space: nowrap; +} + +.support-index .support-ticket-content-w .support-ticket-content .show-ticket-info span, +.support-index .support-ticket-content-w .support-ticket-content .back-to-index span { + display: inline-block; + vertical-align: middle; + text-transform: uppercase; + color: #636c72; + letter-spacing: 1px; + font-size: 0.72rem; + font-weight: 500; +} + +.support-index .support-ticket-content-w .support-ticket-content .show-ticket-info i, +.support-index .support-ticket-content-w .support-ticket-content .back-to-index i { + display: inline-block; + vertical-align: middle; + font-size: 19px; +} + +.support-index .support-ticket-content-w .support-ticket-content .show-ticket-info span + i, +.support-index .support-ticket-content-w .support-ticket-content .back-to-index span + i { + margin-left: 7px; +} + +.support-index .support-ticket-content-w .support-ticket-content .show-ticket-info:hover span, +.support-index .support-ticket-content-w .support-ticket-content .back-to-index:hover span { + color: #047bf8; +} + +.support-index .support-ticket-content-w .support-ticket-content .back-to-index i { + font-size: 12px; +} + +.support-index .support-ticket-content-w .support-ticket-content .back-to-index span { + margin-left: 10px; +} + +.support-index .support-ticket-content-w .ticket-header { + margin-bottom: 40px; +} + +.support-index .support-ticket-content-w .ticket-reply { + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + padding-bottom: 20px; +} + +.support-index .support-ticket-content-w .ticket-reply:last-child { + border-bottom: none; +} + +.support-index .support-ticket-content-w .ticket-reply + .ticket-reply { + margin-top: 20px; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info { + padding: 10px 0px; + margin-bottom: 5px; + position: relative; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .badge { + vertical-align: middle; + display: inline-block; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions { + position: absolute; + top: 50%; + right: 0px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 18px; + color: #047bf8; + text-decoration: none; + cursor: pointer; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions > i { + vertical-align: middle; + display: inline-block; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions .actions-list { + position: absolute; + background-color: #0f2338; + color: #fff; + font-size: 0.9rem; + padding: 12px 12px; + border-radius: 6px; + visibility: hidden; + opacity: 0; + -webkit-transform: translateY(10px); + transform: translateY(10px); + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + top: 0px; + right: 0px; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions .actions-list a { + display: block; + padding: 5px 10px; + border-bottom: 1px solid rgba(255, 255, 255, 0.05); + color: #fff; + text-decoration: none; + white-space: nowrap; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions .actions-list a:last-child { + border-bottom: none; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions .actions-list a i { + font-size: 17px; + display: inline-block; + vertical-align: middle; + margin-right: 10px; + color: #fff; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions .actions-list a span { + color: rgba(255, 255, 255, 0.7); + display: inline-block; + vertical-align: middle; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions .actions-list a:hover span { + color: #fff; + -webkit-transform: translateX(-3px); + transform: translateX(-3px); +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions .actions-list a.danger i { + color: #ff5b5b; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions .actions-list a.danger span { + color: #ff5b5b; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions:hover > i { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .actions:hover .actions-list { + visibility: visible; + -webkit-transform: translateY(0px); + transform: translateY(0px); + opacity: 1; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .author { + display: inline-block; + vertical-align: middle; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .info-data { + display: inline-block; + vertical-align: middle; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .info-data .label { + color: #636c72; + display: inline-block; + vertical-align: middle; + margin-right: 5px; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .info-data .value { + display: inline-block; + vertical-align: middle; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-info > span + span { + margin-left: 10px; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-content { + padding: 20px 25px; + margin-left: 15px; + font-size: 0.99rem; + background-color: #f3f3f7; + border-radius: 6px; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-reply-content p:last-child { + margin-bottom: 0px; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-attachments { + text-align: right; + margin-top: 10px; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-attachments .attachment { + display: inline-block; + padding: 5px 10px; + padding-right: 20px; + margin-bottom: 5px; + background-color: #F6F7F8; + color: #047bf8; + border-radius: 6px; + font-size: 0.72rem; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-attachments .attachment i { + display: inline-block; + vertical-align: middle; + font-size: 18px; + margin-right: 10px; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-attachments .attachment span { + display: inline-block; + vertical-align: middle; +} + +.support-index .support-ticket-content-w .ticket-reply .ticket-attachments .attachment + .attachment { + margin-left: 20px; +} + +.support-index .support-ticket-content-w .ticket-reply.highlight .ticket-reply-info { + border-bottom: none; +} + +.support-index .support-ticket-content-w .ticket-reply.highlight .ticket-reply-content { + background-color: #fff6d7; +} + +.support-index .support-ticket-content-w .support-ticket-info { + background-color: #F6F7F9; + background: -webkit-gradient(linear, left top, left bottom, from(#eff1f7), to(#f9fafc)); + background: linear-gradient(to bottom, #eff1f7, #f9fafc); + padding: 30px 20px; + border-radius: 6px; + -webkit-box-flex: 0; + -ms-flex: 0 0 250px; + flex: 0 0 250px; + position: relative; +} + +.support-index .support-ticket-content-w .support-ticket-info .close-ticket-info { + position: absolute; + top: 10px; + right: 15px; + color: #047bf8; + text-decoration: none; + font-size: 20px; +} + +.support-index .support-ticket-content-w .support-ticket-info .info-header { + color: #047bf8; + text-align: center; + margin-bottom: 15px; +} + +.support-index .support-ticket-content-w .support-ticket-info .info-section { + padding: 0px; + margin-bottom: 40px; + padding-bottom: 20px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.support-index .support-ticket-content-w .support-ticket-info .info-section .label { + color: #636c72; + display: block; + margin-bottom: 5px; +} + +.support-index .support-ticket-content-w .support-ticket-info .info-section .value { + display: block; +} + +.support-index .support-ticket-content-w .support-ticket-info .info-section .value + .label { + margin-top: 10px; +} + +.support-index .support-ticket-content-w .support-ticket-info .info-section:last-child { + margin-bottom: 0px; + border-bottom: none; + padding-bottom: 0px; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list { + list-style: none; + padding: 0px; + margin: 0px; + margin-bottom: 20px; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list li { + margin-bottom: 10px; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles { + display: inline-block; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li { + text-align: center; + -webkit-box-flex: 0; + -ms-flex: 0 0 47%; + flex: 0 0 47%; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li a { + display: block; + background-color: #fff; + -webkit-box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + padding: 10px; + border-radius: 6px; + margin: 0px; + text-decoration: none; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li a span { + display: block; + border-bottom: none; + color: #3E4B5B; + font-size: 0.72rem; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li a .avatar { + margin: 0px; + width: 50px; + height: 50px; + margin-bottom: 5px; + background-size: cover; + display: inline-block; + border-radius: 50px; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li a i { + margin-right: 0px; + margin-bottom: 10px; +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li a:hover { + -webkit-box-shadow: 0px 5px 12px rgba(126, 142, 177, 0.2); + box-shadow: 0px 5px 12px rgba(126, 142, 177, 0.2); + -webkit-transform: translateY(-3px); + transform: translateY(-3px); +} + +.support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li a:hover span { + color: #047bf8; +} + +.support-index .support-ticket-content-w .support-ticket-info .customer { + text-align: center; + padding-bottom: 20px; + margin-bottom: 30px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.support-index .support-ticket-content-w .support-ticket-info .customer .avatar { + margin-bottom: 10px; +} + +.support-index .support-ticket-content-w .support-ticket-info .customer .avatar img { + border-radius: 50px; + width: 100px; + height: auto; +} + +.support-index .support-ticket-content-w .support-ticket-info .customer .customer-name { + margin-bottom: 5px; +} + +.support-index .support-ticket-content-w .support-ticket-info .customer .customer-tickets { + color: #636c72; +} + +.support-index .support-ticket-content-w.folded-info .support-ticket-content { + padding-right: 30px; +} + +.support-index .support-ticket-content-w.folded-info .support-ticket-info { + display: none; +} + +.support-index .support-ticket-content-w.folded-info .show-ticket-info { + display: inline-block; +} + +.color-scheme-dark .support-index .st-meta .badge { + border: rgba(0, 0, 0, 0.5) !important; +} + +.color-scheme-dark .support-index .st-body .ticket-content .ticket-description { + color: #ccd9e8; +} + +.color-scheme-dark .support-index .st-foot { + background-color: rgba(0, 0, 0, 0.05); +} + +.color-scheme-dark .support-index .st-foot .label { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-control, .color-scheme-dark .support-index .support-tickets-header .tickets-filter { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .support-index .support-ticket { + background-color: #323c58; + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +.color-scheme-dark .support-index .support-ticket.active, .color-scheme-dark .support-index .support-ticket:hover { + background-color: #047bf8; +} + +.color-scheme-dark .support-index .support-ticket.active .ticket-title, .color-scheme-dark .support-index .support-ticket:hover .ticket-title { + color: #fff; +} + +.color-scheme-dark .support-index .support-ticket.active .st-foot a.value, .color-scheme-dark .support-index .support-ticket.active .st-foot .value, .color-scheme-dark .support-index .support-ticket:hover .st-foot a.value, .color-scheme-dark .support-index .support-ticket:hover .st-foot .value { + color: #fff; +} + +.color-scheme-dark .support-index .support-ticket.active .label, .color-scheme-dark .support-index .support-ticket:hover .label { + color: rgba(255, 255, 255, 0.6); +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-filter label { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-filter select { + background-color: rgba(0, 0, 0, 0.2); + border-color: rgba(0, 0, 0, 0.4); + color: #ccd9e8; +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-control .element-search input { + background-color: rgba(0, 0, 0, 0.1); +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-control .element-search:before { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-control .element-search input::-webkit-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-control .element-search input:-ms-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-control .element-search input::-ms-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-tickets-header .tickets-control .element-search input::placeholder { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-ticket-content-w { + background-color: #323c58; + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +.color-scheme-dark .support-index .support-ticket-content-w .ticket-reply { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .info-data .label { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-ticket-content-w .ticket-reply .ticket-attachments .attachment { + background-color: #293148; +} + +.color-scheme-dark .support-index .support-ticket-content-w .support-ticket-info { + background-image: none; + background-color: #293148; +} + +.color-scheme-dark .support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li a { + background-color: #3b4768; + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +.color-scheme-dark .support-index .support-ticket-content-w .support-ticket-info ul.users-list.as-tiles li a span { + color: #ccd9e8; +} + +.color-scheme-dark .support-index .support-ticket-content-w .support-ticket-info .info-section { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .support-index .support-ticket-content-w .support-ticket-info .info-section .label { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-ticket-content-w .support-ticket-info .customer { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +.color-scheme-dark .support-index .support-ticket-content-w .support-ticket-info .customer .customer-tickets { + color: rgba(218, 226, 243, 0.4); +} + +.color-scheme-dark .support-index .support-ticket-content-w .ticket-reply .ticket-reply-content { + background-color: #3b4768; +} + +/* 23. Onboarding */ +.onboarding-modal .onboarding-media { + padding-top: 20px; + text-align: center; +} + +.onboarding-modal .onboarding-media img { + margin: 0px auto; +} + +.onboarding-modal button.close { + position: absolute; + top: 15px; + right: 20px; + float: none; + z-index: 999; + color: #111; + opacity: 1; + text-shadow: none; +} + +.onboarding-modal button.close .os-icon { + font-size: 12px; +} + +.onboarding-modal button.close span { + display: inline-block; + vertical-align: middle; +} + +.onboarding-modal button.close .close-label { + margin-right: 10px; + color: #C26C6C; + letter-spacing: 1px; + font-weight: 500; + font-size: 0.81rem; +} + +.onboarding-modal .onboarding-content { + padding: 40px 50px; +} + +.onboarding-modal .onboarding-content.with-gradient { + padding: 70px 50px 40px; + background-image: url(../images/onboarding-gradient-hor.png); + background-size: 100% auto; + background-position: top center; + background-repeat: no-repeat; +} + +.onboarding-modal .onboarding-content h1, .onboarding-modal .onboarding-content h2, .onboarding-modal .onboarding-content h3, .onboarding-modal .onboarding-content h4 { + color: #047bf8; + margin-bottom: 1.5rem; +} + +.onboarding-modal .onboarding-content .onboarding-text { + color: rgba(69, 76, 96, 0.49); + font-weight: 300; + font-size: 0.99rem; + margin-bottom: 30px; + padding-left: 20px; + padding-right: 20px; +} + +.onboarding-modal .onboarding-content .onboarding-text:last-child { + margin-bottom: 10px; +} + +.onboarding-modal .onboarding-content .features-list { + text-align: left; + padding-left: 20px; +} + +.onboarding-modal .onboarding-content .features-list li { + margin-bottom: 10px; + list-style: none; + position: relative; +} + +.onboarding-modal .onboarding-content .features-list li:before { + content: "\e961"; + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: 12px; + color: #047bf8; + position: absolute; + left: -20px; + top: 45%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.onboarding-modal .onboarding-side-by-side { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.onboarding-modal .onboarding-side-by-side .onboarding-media { + -webkit-box-flex: 300px; + -ms-flex: 300px 0 0px; + flex: 300px 0 0; + padding: 40px 0px; +} + +.onboarding-modal .onboarding-side-by-side .onboarding-content { + padding: 70px 70px 60px; +} + +.onboarding-modal .onboarding-side-by-side .onboarding-content.with-gradient { + padding: 70px 70px 60px; + background-image: url(../images/onboarding-gradient-ver.png); + background-size: auto 100%; + background-position: center left; + background-repeat: no-repeat; +} + +.onboarding-modal .onboarding-slide .onboarding-side-by-side .onboarding-media { + padding-bottom: 60px; +} + +.onboarding-modal .onboarding-slide .onboarding-side-by-side .onboarding-content { + padding-bottom: 80px; +} + +.onboarding-modal .onboarding-slide .onboarding-side-by-side .onboarding-content.with-gradient { + padding-bottom: 80px; +} + +.onboarding-modal form { + text-align: left; +} + +.onboarding-modal .onboarding-text + form { + margin-top: 30px; +} + +.onboarding-modal .onboarding-slider-w .onboarding-slide { + display: none; +} + +.onboarding-modal .onboarding-slider-w .onboarding-slide:first-child { + display: block; +} + +.onboarding-modal .onboarding-slider-w.slick-initialized .onboarding-slide { + display: block; +} + +.onboarding-modal.animated .onboarding-media { + opacity: 0; + -webkit-transform: translateY(80px) scale(0.8); + transform: translateY(80px) scale(0.8); + -webkit-transition: all 0.5s cubic-bezier(0.25, 1.1, 0.5, 1.35); + transition: all 0.5s cubic-bezier(0.25, 1.1, 0.5, 1.35); + -webkit-transition-delay: 0.3s; + transition-delay: 0.3s; +} + +.onboarding-modal.animated .onboarding-content { + opacity: 0; + -webkit-transition: all 0.4s ease; + transition: all 0.4s ease; + -webkit-transition-delay: 0.1s; + transition-delay: 0.1s; + -webkit-transform: translateY(40px); + transform: translateY(40px); +} + +.onboarding-modal.animated .onboarding-title { + -webkit-transform: translateY(40px); + transform: translateY(40px); + -webkit-transition: all 0.5s cubic-bezier(0.25, 1.1, 0.5, 1.35); + transition: all 0.5s cubic-bezier(0.25, 1.1, 0.5, 1.35); + -webkit-transition-delay: 0.5s; + transition-delay: 0.5s; + opacity: 0; +} + +.onboarding-modal.animated .onboarding-text { + -webkit-transform: translateY(40px); + transform: translateY(40px); + -webkit-transition: all 0.5s cubic-bezier(0.25, 1.1, 0.5, 1.35); + transition: all 0.5s cubic-bezier(0.25, 1.1, 0.5, 1.35); + -webkit-transition-delay: 0.6s; + transition-delay: 0.6s; + opacity: 0; +} + +.onboarding-modal.animated .features-list, .onboarding-modal.animated form { + -webkit-transform: translateY(40px); + transform: translateY(40px); + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; + -webkit-transition-delay: 0.7s; + transition-delay: 0.7s; + opacity: 0; +} + +.onboarding-modal.animated .onboarding-side-by-side .onboarding-content { + -webkit-transform: translateX(0px); + transform: translateX(0px); +} + +.onboarding-modal.show .onboarding-media { + opacity: 1; + -webkit-transform: translateY(0) scale(1); + transform: translateY(0) scale(1); +} + +.onboarding-modal.show .onboarding-content { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); +} + +.onboarding-modal.show .onboarding-title { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); +} + +.onboarding-modal.show .onboarding-text { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); +} + +.onboarding-modal.show .features-list, .onboarding-modal.show form { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); +} + +.onboarding-modal.show .onboarding-side-by-side .onboarding-content { + -webkit-transform: translateX(0px); + transform: translateX(0px); +} + +.onboarding-modal .slick-next, .onboarding-modal .slick-prev { + border: none; + background-color: transparent; + font-weight: 500; + font-size: 0.9rem; + color: #046fdf; + bottom: 25px; + position: absolute; + z-index: 999; + cursor: pointer; + letter-spacing: 1px; +} + +.onboarding-modal .slick-next.slick-disabled, .onboarding-modal .slick-prev.slick-disabled { + opacity: 0; +} + +.onboarding-modal .slick-next:focus, .onboarding-modal .slick-prev:focus { + outline: none; +} + +.onboarding-modal .slick-next:before, .onboarding-modal .slick-prev:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: 15px; + color: #047bf8; + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.onboarding-modal .slick-next { + right: 50px; +} + +.onboarding-modal .slick-next:before { + content: "\e986"; + right: -20px; +} + +.onboarding-modal .slick-prev { + left: 50px; +} + +.onboarding-modal .slick-prev:before { + content: "\e987"; + left: -20px; +} + +.onboarding-modal .slick-dots { + position: absolute; + bottom: 30px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + padding: 0px; + margin: 0px; +} + +.onboarding-modal .slick-dots li { + list-style: none; + display: inline-block; + margin: 0px 5px; +} + +.onboarding-modal .slick-dots li button { + font-size: 0px; + color: transparent; + width: 10px; + height: 10px; + background-color: #047bf8; + opacity: 0.2; + border: none; + -webkit-box-shadow: none; + box-shadow: none; + padding: 0px; + border-radius: 10px; + cursor: pointer; +} + +.onboarding-modal .slick-dots li button:hover { + opacity: 1; +} + +.onboarding-modal .slick-dots li button:focus { + outline: none; +} + +.onboarding-modal .slick-dots li.slick-active button { + background-color: #047bf8; + opacity: 1; +} + +.onboarding-modal .onboarding-slide:focus { + outline: none; +} + +.onboarding-modal .onboarding-slide .onboarding-content { + padding-bottom: 80px; +} + +/* 24. Top Bar styles */ +/* + Top Bar Styles +*/ +.all-wrapper > .top-bar { + border-radius: 6px 6px 0px 0px; +} + +.content-w > .top-bar { + padding-left: 0px; +} + +.top-bar { + background-color: #fff; + -webkit-box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + box-shadow: 0px 2px 4px rgba(126, 142, 177, 0.12); + padding: 0px 20px 0px 0px; + + position: relative; + border-radius: 0px 0px 0px 0px; +} + +.top-bar > ul { + list-style: none; + margin: 0px; + padding: 0px; + text-transform: uppercase; + color: #3E4B5B; + font-weight: 500; + letter-spacing: 2px; + font-size: 0.99rem; +} + +.top-bar > ul li { + display: inline-block; +} + +.top-bar > ul li a { + display: inline-block; + padding: 20px 25px; + color: rgba(0, 0, 0, 0.25); + position: relative; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.top-bar > ul li a:after { + content: ""; + background-color: #047bf8; + position: absolute; + bottom: 0px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + width: 0px; + height: 5px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.top-bar > ul li.active a, .top-bar > ul li:hover a { + color: #3E4B5B; + text-decoration: none; +} + +.top-bar > ul li.active a:after, .top-bar > ul li:hover a:after { + width: 100%; +} + +.top-bar .fancy-selector-w { + margin-right: 0px; + -ms-flex-item-align: stretch; + align-self: stretch; +} + +.top-bar .logo-w.menu-size + .fancy-selector-w { + margin-left: 0px; +} + +.top-bar .logo-w { + text-align: left; +} + +.top-bar .logo-w a { + display: inline-block; +} + +.top-bar .logo-w img { + height: 25px; + width: auto; + display: inline-block; + vertical-align: middle; +} + +.top-bar .logo-w span { + display: inline-block; + vertical-align: middle; +} + +.top-bar .logo-w img + span { + margin-left: 20px; + color: #3E4B5B; + letter-spacing: 2px; + text-transform: uppercase; + font-size: 0.81rem; + font-weight: 500; +} + +.top-bar .logo-w.menu-size { + width: 260px; +} + +.top-bar .top-menu-controls { + display: flex; + justify-content: space-between; + padding-left: 20px; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; + vertical-align: center; +} + +.top-bar .top-menu-controls .top-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.top-bar .top-menu-controls .top-right { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +.top-bar .top-menu-controls .top-right select { + padding-top: 5px; +} + + +.top-bar .top-menu-controls2 { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.top-bar .top-menu-controls .element-search { + position: relative; + margin: 0px 2rem 0px 1rem; +} + +.top-bar .top-menu-controls .element-search:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + left: 15px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 20px; + content: "\e92c"; + color: #047bf8; + cursor: pointer; +} + +.top-bar .top-menu-controls .element-search input { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + background-color: transparent; + border-radius: 30px; + padding: 0px 0px 0px 0px; + display: block; + width: 20px; + outline: none; + border: none; + box-shadow: none; + background: #fff; + cursor: pointer; +} + +.top-bar .top-menu-controls .element-search input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.top-bar .top-menu-controls .element-search input:-ms-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.top-bar .top-menu-controls .element-search input::-ms-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.top-bar .top-menu-controls .element-search input::placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.top-bar .messages-notifications { + margin: 0px 1rem; + position: relative; + font-size: 24px; + color: #047bf8; +} + +.top-bar .messages-notifications .new-messages-count { + background-color: #f4516c; + color: #fff; + border-radius: 90px; + font-weight: 300; + position: absolute; + top: 0px; + right: -11px; + padding: 4px 4px; + vertical-align: middle; + font-size: 0.69rem; + line-height: 1; + min-width: 19px; +} + +.top-bar .messages-notifications .new-messages-push { + background-color: #f4516c; + color: #fff; + border-radius: 90px; + font-weight: 300; + position: absolute; + top: 23px; + right: -4px; + padding: 4px 4px; + vertical-align: middle; + font-size: 0.69rem; + line-height: 1; + min-width: 5px; +} + +.top-bar .messages-notifications i { + /*vertical-align: middle;*/ +} + +.top-bar .top-icon { + margin: 0px 1rem; + color: #047bf8; + font-size: 26px; +} + +.top-bar .top-icon i { + vertical-align: middle; +} + +.top-bar .logged-user-w { + position: relative; + padding: 0px 1rem; + border-bottom: none; +} + +.top-bar .logged-user-w .avatar-w { + padding: 0px; + border: none; + vertical-align: middle; +} + +.top-bar .logged-user-w .avatar-w img { + width: 40px; +} + +.top-bar .logged-user-w .logged-user-i { + display: inline-block; +} + +.top-bar .logged-user-w .logged-user-i:hover { + cursor: pointer; +} + +.top-bar .logged-user-w .logged-user-i:hover .logged-user-menu { + visibility: visible; + opacity: 1; + -webkit-transform: translateY(0px); + transform: translateY(0px); +} + +.top-bar .logged-user-w .logged-user-menu { + background: #1b55e2; + -webkit-box-shadow: 0 10px 30px 0 rgba(27, 30, 35, 0.27); + box-shadow: 0 10px 30px 0 rgba(27, 30, 35, 0.27); + position: absolute; + top: -10px; + right: -20px; + overflow: hidden; + padding: 1rem; + z-index: 999; + visibility: hidden; + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + text-align: left; + border-radius: 6px; +} + +.top-bar .logged-user-w .logged-user-menu .logged-user-avatar-info { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-bottom: 10px; + padding: 0px 30px 10px 13px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.top-bar .logged-user-w .logged-user-menu .avatar-w { + border-color: #fff; + vertical-align: middle; + margin-right: 20px; +} + +.top-bar .logged-user-w .logged-user-menu .logged-user-info-w { + vertical-align: middle; +} + +.top-bar .logged-user-w .logged-user-menu .logged-user-info-w .logged-user-name { + color: #fff; + white-space: nowrap; +} + +.top-bar .logged-user-w .logged-user-menu .logged-user-info-w .logged-user-role { + color: rgba(255, 255, 255, 0.6); + white-space: nowrap; +} + +.top-bar .logged-user-w .logged-user-menu ul { + list-style: none; + text-align: left; + margin: 0px; + padding: 0px; + padding-bottom: 0px; +} + +.top-bar .logged-user-w .logged-user-menu ul li { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.top-bar .logged-user-w .logged-user-menu ul li a { + display: block; + padding: 10px 20px; + color: #fff; +} + +.top-bar .logged-user-w .logged-user-menu ul li a i { + vertical-align: middle; + margin-right: 15px; + font-size: 20px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + display: inline-block; +} + +.top-bar .logged-user-w .logged-user-menu ul li a span { + vertical-align: middle; + font-size: 0.9rem; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + display: inline-block; +} + +.top-bar .logged-user-w .logged-user-menu ul li a:hover { + text-decoration: none; +} + +.top-bar .logged-user-w .logged-user-menu ul li a:hover i { + -webkit-transform: translateX(5px); + transform: translateX(5px); +} + +.top-bar .logged-user-w .logged-user-menu ul li a:hover span { + -webkit-transform: translateX(8px); + transform: translateX(8px); +} + +.top-bar .logged-user-w .logged-user-menu ul li:last-child { + border-bottom: none; +} + +.top-bar .logged-user-w .logged-user-menu .bg-icon { + font-size: 100px; + color: rgba(255, 255, 255, 0.1); + position: absolute; + bottom: -40px; + right: -20px; +} + +.top-bar.color-scheme-transparent { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.top-bar.color-scheme-light .top-menu-controls .element-search input, .top-bar.color-scheme-transparent .top-menu-controls .element-search input { + background-color: #fff; +} + +.top-bar.color-scheme-light .logo-w .logo-label, .top-bar.color-scheme-transparent .logo-w .logo-label { + color: #3E4B5B; +} + +.top-bar.color-scheme-light .logo-w .logo-element, .top-bar.color-scheme-transparent .logo-w .logo-element { + background-color: #0a7cf8; +} + +.top-bar.color-scheme-light .logo-w .logo-element:after, .top-bar.color-scheme-transparent .logo-w .logo-element:after { + background-color: #bfd6f9; +} + +.top-bar.color-scheme-light .logo-w .logo:hover .logo-label, .top-bar.color-scheme-transparent .logo-w .logo:hover .logo-label { + color: #047bf8; +} + +.top-bar.color-scheme-light .logo-w .logo:hover .logo-label:after, .top-bar.color-scheme-transparent .logo-w .logo:hover .logo-label:after { + background-color: #047bf8; +} + +.top-bar.color-scheme-dark .top-menu-controls .element-search input, .top-bar.color-scheme-bright .top-menu-controls .element-search input { + background-color: rgba(0, 0, 0, 0.2); + color: #fff; +} + +.top-bar.color-scheme-dark .top-menu-controls .element-search input::-webkit-input-placeholder, .top-bar.color-scheme-bright .top-menu-controls .element-search input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); +} + +.top-bar.color-scheme-dark .top-menu-controls .element-search input:-ms-input-placeholder, .top-bar.color-scheme-bright .top-menu-controls .element-search input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); +} + +.top-bar.color-scheme-dark .top-menu-controls .element-search input::-ms-input-placeholder, .top-bar.color-scheme-bright .top-menu-controls .element-search input::-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); +} + +.top-bar.color-scheme-dark .top-menu-controls .element-search input::placeholder, .top-bar.color-scheme-bright .top-menu-controls .element-search input::placeholder { + color: rgba(255, 255, 255, 0.3); +} + +.top-bar.color-scheme-dark .top-menu-controls .element-search:before, .top-bar.color-scheme-bright .top-menu-controls .element-search:before { + color: rgba(255, 255, 255, 0.7); +} + +.top-bar.color-scheme-dark .messages-notifications, +.top-bar.color-scheme-dark .top-icon, .top-bar.color-scheme-bright .messages-notifications, +.top-bar.color-scheme-bright .top-icon { + color: #fff; +} + +.top-bar.color-scheme-dark > ul li a, .top-bar.color-scheme-bright > ul li a { + color: rgba(255, 255, 255, 0.4); +} + +.top-bar.color-scheme-dark > ul li a:after, .top-bar.color-scheme-bright > ul li a:after { + background-color: #FBB463; + border-color: #FBB463; +} + +.top-bar.color-scheme-dark > ul li.active a, .top-bar.color-scheme-dark > ul li:hover a, .top-bar.color-scheme-bright > ul li.active a, .top-bar.color-scheme-bright > ul li:hover a { + color: #fff; +} + +.top-bar.color-scheme-dark .logo-w img + span, .top-bar.color-scheme-bright .logo-w img + span { + color: #fff; +} + +.top-bar.color-scheme-dark .fancy-selector-w .fancy-selector-current .fs-selector-trigger, .top-bar.color-scheme-bright .fancy-selector-w .fancy-selector-current .fs-selector-trigger { + background-color: #3572ed; +} + +.top-bar.color-scheme-dark { + background-color: #000035; +} + +.top-bar.color-scheme-bright { + background-color: #1b55e2; +} + +/* 25. Search */ +.search-with-suggestions-w { + display: none; +} + +.search-with-suggestions-w.active { + display: block; +} + +.search-with-suggestions-w .search-with-suggestions-modal { + background-color: #fff; + border-radius: 4px; + -webkit-box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.1); + box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.1); + padding: 15px 15px 2px 15px; + position: relative; +} + +.search-with-suggestions-w .search-with-suggestions-modal .close-search-suggestions { + font-size: 14px; + border-radius: 4px; + position: absolute; + top: 50%; + right: 0px; + cursor: pointer; + padding: 2px; + background-color: #e65252; + color: #fff; + line-height: 0.9; + vertical-align: middle; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.search-with-suggestions-w .search-with-suggestions-modal .close-search-suggestions i { + vertical-align: middle; +} + +.search-with-suggestions-w .search-with-suggestions-modal .close-search-suggestions:hover { + background-color: #b71b1b; + color: #fff; +} + +.search-with-suggestions-w .search-with-suggestions-modal .element-search { + position: relative; + margin: 0px; + margin-bottom: 30px; +} + +.search-with-suggestions-w .search-with-suggestions-modal .element-search:before { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'osfont' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + left: 6px; + top: 48%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 16px; + content: "\e92c"; + color: rgba(0, 0, 0, 0.3); +} + +.search-with-suggestions-w .search-with-suggestions-modal .element-search input { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 0px; + padding: 8px 15px 8px 31px; + display: block; + width: 100%; + outline: none; + border: none; + box-shadow: none; + border-bottom: 1px solid #111; +} + +.search-with-suggestions-w .search-with-suggestions-modal .element-search input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.search-with-suggestions-w .search-with-suggestions-modal .element-search input:-ms-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.search-with-suggestions-w .search-with-suggestions-modal .element-search input::-ms-input-placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.search-with-suggestions-w .search-with-suggestions-modal .element-search input::placeholder { + color: rgba(0, 0, 0, 0.5); +} + +.search-with-suggestions-w .search-suggestions-group + .search-suggestions-group { + margin-top: 20px; +} + +.search-with-suggestions-w .search-suggestions-group:last-child .ssg-items { + margin-bottom: 0px; +} + +.search-with-suggestions-w .search-suggestions-group .ssg-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-bottom: 2px solid rgba(0, 0, 0, 0.07); + margin-bottom: 15px; + padding-bottom: 5px; +} + +.search-with-suggestions-w .search-suggestions-group .ssg-header .ssg-icon { + color: #047bf8; + font-size: 20px; + margin-right: 15px; +} + +.search-with-suggestions-w .search-suggestions-group .ssg-header .ssg-name { + color: #047bf8; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-weight: 500; + font-size: 0.99rem; +} + +.search-with-suggestions-w .search-suggestions-group .ssg-header .ssg-info { + margin-left: auto; + color: rgba(0, 0, 0, 0.4); + font-size: 0.8rem; +} + +.search-with-suggestions-w .ssg-content .ssg-nothing-found { + color: rgba(0, 0, 0, 0.4); + padding: 0px 20px; + text-align: center; + font-size: 0.8rem; + display: none; +} + +.search-with-suggestions-w .ssg-content .ssg-nothing-found .icon-w { + margin-bottom: 10px; + font-size: 20px; + color: rgba(0, 0, 0, 0.2); +} + +.ssg-items { + margin-bottom: 5px; + cursor: pointer; +} + +.ssg-items .ssg-item .item-name span { + background-color: #FFF0B7; +} + +.ssg-items.ssg-items-blocks { + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.ssg-items.ssg-items-blocks .ssg-item { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + padding: 5px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + text-align: center; +} + +.ssg-items.ssg-items-blocks .ssg-item:hover { + text-decoration: none; +} + +.ssg-items.ssg-items-blocks .ssg-item:hover .item-icon, +.ssg-items.ssg-items-blocks .ssg-item:hover .item-media { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); +} + +.ssg-items.ssg-items-blocks .ssg-item:hover .item-name { + -webkit-transform: translateY(-5px); + transform: translateY(-5px); + color: #047bf8; +} + +.ssg-items.ssg-items-blocks .ssg-item:nth-child(even) { + border-left: 1px solid rgba(0, 0, 0, 0.05); +} + +.ssg-items.ssg-items-blocks .ssg-item:last-child, .search-with-suggestions-w .ssg-items.ssg-items-blocks .ssg-item:nth-last-child(2) { + border-bottom: none; +} + +.ssg-items.ssg-items-blocks .ssg-item .item-icon { + font-size: 20px; + margin-bottom: 3px; + color: #047bf8; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.ssg-items.ssg-items-blocks .ssg-item .item-media { + height: 30px; + width: 30px; + margin: 0px auto; + background-size: cover; + margin-bottom: 10px; + border-radius: 50%; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.ssg-items.ssg-items-blocks .ssg-item .item-name { + font-size: 0.8rem; + line-height: 1.2; + text-decoration: none; + color: #3E4B5B; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + max-width: 100px; + max-height: 80px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.ssg-items.ssg-items-list .ssg-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0px 10px 7px 0px; + margin-bottom: 7px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.ssg-items.ssg-items-list .ssg-item:hover { + text-decoration: none; +} + +.ssg-items.ssg-items-list .ssg-item:hover .item-media { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +.ssg-items.ssg-items-list .ssg-item:hover .item-name { + -webkit-transform: translateX(3px); + transform: translateX(3px); + color: #047bf8; +} + +.ssg-items.ssg-items-list .ssg-item:last-child { + border-bottom: none; +} + +.ssg-items.ssg-items-list .ssg-item .item-media { + -webkit-box-flex: 0; + -ms-flex: 0 0 30px; + flex: 0 0 30px; + height: 30px; + background-size: cover; + margin-right: 15px; + border-radius: 50%; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.ssg-items.ssg-items-list .ssg-item .item-name { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: left; + color: #3E4B5B; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.ssg-items.ssg-items-blocks .ssg-item .item-amount { + color: #999 !important; +} + +.ssg-items.ssg-items-boxed .ssg-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 6px 8px; + border: 1px solid #C4D1E1; + -webkit-box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.07); + box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.07); + border-radius: 4px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.ssg-items.ssg-items-boxed .ssg-item:hover { + text-decoration: none; + border: 1px solid #a2b7d0; + -webkit-box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.12); + box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.12); + -webkit-transform: translateY(-2px); + transform: translateY(-2px); +} + +.ssg-items.ssg-items-boxed .ssg-item:hover .item-name { + color: #047bf8; +} + +.ssg-items.ssg-items-boxed .ssg-item + .ssg-item { + margin-top: 8px; +} + +.ssg-items.ssg-items-boxed .ssg-item .item-media { + -webkit-box-flex: 0; + -ms-flex: 0 0 30px; + flex: 0 0 30px; + height: 30px; + background-size: cover; + margin-right: 15px; +} + +.ssg-items.ssg-items-boxed .ssg-item .item-name { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: left; + color: #3E4B5B; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.search-with-suggestions-w.over-search-field { + position: absolute; + /*width: 280px;*/ + z-index: 999; + -webkit-transform: translate(-21px, -5px); + transform: translate(-21px, -5px); +} + +.search-with-suggestions-w.over-search-field .search-with-suggestions-modal { + padding-top: 5px; + -webkit-box-shadow: 0px 30px 60px rgba(0, 0, 0, 0.4); + box-shadow: 0px 30px 60px rgba(0, 0, 0, 0.4); +} + +.search-with-suggestions-w.screen-center { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + overflow-x: hidden; + overflow-y: auto; + background-color: rgba(0, 0, 0, 0.4); +} + +.search-with-suggestions-w.screen-center .search-with-suggestions-modal { + top: 15%; + margin: 0px auto; + width: 350px; + position: relative; + -webkit-box-shadow: 0px 30px 60px rgba(0, 0, 0, 0.4); + box-shadow: 0px 30px 60px rgba(0, 0, 0, 0.4); + margin-bottom: 20px; +} + +/* 26. Customizer */ +.floated-customizer-btn { + z-index: 9999; + background-image: linear-gradient(-154deg, #b237ff 8%, #5211e6 90%); + -webkit-box-shadow: 0px 5px 10px rgba(19, 19, 19, 0.17); + box-shadow: 0px 5px 10px rgba(19, 19, 19, 0.17); + border-radius: 5px; + color: #fff; + padding: 8px 30px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + vertical-align: middle; + font-size: 0.85rem; + cursor: pointer; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + +} + +.floated-customizer-btn.third-floated-btn { + margin-left: 50px; +} + +.floated-customizer-btn > .icon-w { + line-height: 1; + vertical-align: middle; + display: inline-block; +} + +.floated-customizer-btn > .icon-w i { + font-size: 18px; +} + +.floated-customizer-btn > span { + margin-left: 10px; + vertical-align: middle; + display: inline-block; + font-weight: 500; +} + +.floated-customizer-btn > span + span { + margin-left: 5px; +} + +.floated-customizer-btn:hover { + -webkit-transform: scale(1.05); + transform: scale(1.05); + background-color: #0f1115; +} + +@-webkit-keyframes os-rotating { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + color: #f7ff0c; + } + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + color: #fff; + } +} + +@keyframes os-rotating { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + color: #f7ff0c; + } + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + color: #fff; + } +} + +.floated-customizer-panel { + background-color: #fff; + position: fixed; + bottom: 0px; + right: 0px; + width: 320px; + padding: 25px 35px; + -webkit-box-shadow: 0px 15px 125px rgba(0, 0, 0, 0.22); + box-shadow: 0px 15px 125px rgba(0, 0, 0, 0.22); + border-radius: 6px; + color: #3E4B5B; + bottom: 70px; + z-index: 999; + right: 395px; + visibility: hidden; + opacity: 0; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + -webkit-transform: translate3d(20px, 40px, 0) scale(0.9); + transform: translate3d(20px, 40px, 0) scale(0.9); +} + +.floated-customizer-panel.active { + visibility: visible; + opacity: 1; + -webkit-transform: translate3d(0px, 0px, 0) scale(1); + transform: translate3d(0px, 0px, 0) scale(1); +} + +.floated-customizer-panel .close-customizer-btn { + position: absolute; + top: 10px; + right: 15px; + font-size: 14px; + color: #111; + cursor: pointer; + -webkit-transition: all 0.1s ease; + transition: all 0.1s ease; +} + +.floated-customizer-panel .close-customizer-btn:hover { + -webkit-transform: scale(1.2); + transform: scale(1.2); +} + +.floated-customizer-panel .fcp-header { + font-weight: 500; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + padding: 10px 0px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + margin-bottom: 20px; + color: #334152; + font-size: 1.08rem; +} + +.floated-customizer-panel .fcp-header span { + display: inline-block; + vertical-align: middle; +} + +.floated-customizer-panel .fcp-header .icon-w { + display: inline-block; + vertical-align: middle; + color: #047bf8; + font-size: 24px; + margin-right: 10px; +} + +.floated-customizer-panel .fcp-header .icon-w i { + display: inline-block; + vertical-align: middle; +} + +.floated-customizer-panel .fcp-content .fcp-group + .fcp-group { + margin-top: 20px; +} + +.floated-customizer-panel .fcp-content .fcp-group-header { + color: #047bf8; + font-weight: 500; + font-family: "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + letter-spacing: 1px; + text-transform: uppercase; + font-size: 0.8rem; + margin-bottom: 15px; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + padding-bottom: 7px; + margin-bottom: 7px; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field:last-child { + border-bottom: none; + margin-bottom: 0px; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field label { + font-size: 0.9rem; + -webkit-box-flex: 0; + -ms-flex: 0 0 54%; + flex: 0 0 54%; + padding-right: 10px; + margin: 0px; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field select { + margin-left: auto; + border: 2px solid #dde2ec; + font-weight: 400; + padding: 4px 15px; + padding-right: 30px; + background-color: #fff; + line-height: 1.1; + font-size: 0.9rem; + border-radius: 20px; + -webkit-appearance: none; + -moz-appearance: none; + background-position: right 5px top 50%; + background-repeat: no-repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDZFNDEwNjlGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDZFNDEwNkFGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NkU0MTA2N0Y3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NkU0MTA2OEY3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuGsgwQAAAA5SURBVHjaYvz//z8DOYCJgUxAf42MQIzTk0D/M+KzkRGPoQSdykiKJrBGpOhgJFYTWNEIiEeAAAMAzNENEOH+do8AAAAASUVORK5CYII=); + outline: none; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors { + margin-left: auto; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-selector { + display: inline-block; + vertical-align: middle; + height: 14px; + width: 14px; + border-radius: 10px; + margin: 0px 5px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + cursor: pointer; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-selector.selected, .floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-selector:hover { + -webkit-box-shadow: 0px 0px 0px 2px #fff, 0px 0px 0px 4px #88b8ff; + box-shadow: 0px 0px 0px 2px #fff, 0px 0px 0px 4px #88b8ff; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-bright { + background-color: #047bf8; + border: 1px solid #047bf8; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-dark { + background-color: #252a32; + border: 1px solid #252a32; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-light { + background-color: #fff; + border: 1px solid #aaa; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-transparent { + background-color: #fff; + border: 1px solid #aaa; + position: relative; + overflow: hidden; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-transparent:before { + content: ""; + width: 4px; + height: 4px; + position: absolute; + top: 6px; + left: 6px; + background-color: #ccc; +} + +.floated-customizer-panel .fcp-content .fcp-group-contents .fcp-field .fcp-colors .color-transparent:after { + content: ""; + width: 4px; + height: 4px; + position: absolute; + top: 2px; + left: 2px; + background-color: #ccc; +} + +/* ##. Dark Color Scheme */ +.floated-colors-btn { + z-index: 9999; + position: fixed; + bottom: 10px; + right: 10px; + background: #252A32; + border-radius: 75px; + color: #fff; + padding: 12px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + vertical-align: middle; + font-size: 1.08rem; + cursor: pointer; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.floated-colors-btn.second-floated-btn { + right: 200px; +} + +.floated-colors-btn span { + vertical-align: middle; + display: inline-block; + font-weight: 500; +} + +.floated-colors-btn span + span { + margin-left: 5px; +} + +.floated-colors-btn:hover { + -webkit-transform: scale(1.05); + transform: scale(1.05); + background-color: #0f1115; +} + +.box-style-dark, .color-scheme-dark .ae-content-w .aec-full-message-w .aec-full-message, .color-scheme-dark .ae-content-w .aec-reply, body.color-scheme-dark .box-style, body.color-scheme-dark .user-profile, body.color-scheme-dark .element-box, body.color-scheme-dark .invoice-w, body.color-scheme-dark .big-error-w, body.color-scheme-dark .activity-boxes-w .activity-box, .activity-boxes-w body.color-scheme-dark .activity-box, body.color-scheme-dark .projects-list .project-box, .projects-list body.color-scheme-dark .project-box, +body.color-scheme-dark .profile-tile .profile-tile-box { + background-color: #323c58; + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + background-image: -webkit-gradient(linear, left top, left bottom, from(#323c58), to(#303950)); + background-image: linear-gradient(to bottom, #323c58 0%, #303950 100%); + background-repeat: repeat-x; +} + +body.color-scheme-dark { + background-color: #293145; + color: #ccd9e8; +} + +body.color-scheme-dark .floated-colors-btn { + background-color: #fff; + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +body.color-scheme-dark .floated-colors-btn span { + color: #3E4B5B; +} + +body.color-scheme-dark:before { + background: -webkit-gradient(linear, left top, right bottom, from(#633d7d), to(#2867ab)); + background: linear-gradient(to bottom right, #633d7d, #2867ab); +} + +body.color-scheme-dark h1, body.color-scheme-dark h2, body.color-scheme-dark h3, body.color-scheme-dark h4, body.color-scheme-dark h5, body.color-scheme-dark h6, +body.color-scheme-dark .h1, body.color-scheme-dark .h2, body.color-scheme-dark .h3, body.color-scheme-dark .h4, body.color-scheme-dark .h5, body.color-scheme-dark .h6 { + color: #fff; +} + +body.color-scheme-dark .text-muted, body.color-scheme-dark .invoice-body .invoice-desc .desc-value, .invoice-body .invoice-desc body.color-scheme-dark .desc-value, body.color-scheme-dark .invoice-body .invoice-desc .desc-value { + color: rgba(198, 209, 230, 0.4) !important; +} + +body.color-scheme-dark .content-w { + background-color: #293145; + background-image: none; +} + +body.color-scheme-dark .all-wrapper.solid-bg-all { + background-color: #293145; +} + +body.color-scheme-dark code { + color: #7e9fea; + background-color: #1c2738; +} + +body.color-scheme-dark .demo-icons-list li { + border-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .demo-icons-list li a { + color: #b1b8ca; +} + +body.color-scheme-dark .content-panel { + border-left-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .breadcrumb { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .breadcrumb li a { + color: #b3bcde; +} + +body.color-scheme-dark .breadcrumb li span { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .alert { + border-color: transparent; +} + +body.color-scheme-dark .alert h1, body.color-scheme-dark .alert h2, body.color-scheme-dark .alert h3, body.color-scheme-dark .alert h4, body.color-scheme-dark .alert h5 { + color: #3E4B5B; +} + +body.color-scheme-dark .b-r, +body.color-scheme-dark .b-b, +body.color-scheme-dark .b-t, +body.color-scheme-dark .b-l { + border-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .progress { + background-color: #252c3f; +} + +body.color-scheme-dark .popover { + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + color: #3E4B5B; +} + +body.color-scheme-dark .example-column { + background-color: #293145; + border-color: #090d19; +} + +body.color-scheme-dark .top-bar { + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +body.color-scheme-dark .menu-position-top.menu-w.color-style-transparent { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .os-dropdown, +body.color-scheme-dark .top-bar .logged-user-w .logged-user-menu { + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +body.color-scheme-dark .menu-mobile { + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +body.color-scheme-dark .top-bar.color-scheme-transparent { + -webkit-box-shadow: none; + box-shadow: none; + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .top-bar.color-scheme-transparent .logo-w .logo-label { + color: #fff; +} + +body.color-scheme-dark .top-bar.color-scheme-transparent .top-menu-controls .element-search:before { + color: rgba(255, 255, 255, 0.4); +} + +body.color-scheme-dark .top-bar.color-scheme-transparent .top-menu-controls .element-search input { + background-color: rgba(0, 0, 0, 0.2); + color: #fff; +} + +body.color-scheme-dark .top-bar.color-scheme-transparent .top-menu-controls .element-search input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +body.color-scheme-dark .top-bar.color-scheme-transparent .top-menu-controls .element-search input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +body.color-scheme-dark .top-bar.color-scheme-transparent .top-menu-controls .element-search input::-ms-input-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +body.color-scheme-dark .top-bar.color-scheme-transparent .top-menu-controls .element-search input::placeholder { + color: rgba(255, 255, 255, 0.4); +} + +body.color-scheme-dark .modal-content { + -webkit-box-shadow: 0px 20px 60px rgba(0, 0, 0, 0.3); + box-shadow: 0px 20px 60px rgba(0, 0, 0, 0.3); + background-color: #323c58; +} + +body.color-scheme-dark .onboarding-modal button.close { + color: #ccd9e8; +} + +body.color-scheme-dark .onboarding-modal .onboarding-content.with-gradient { + background-image: url(../images/onboarding-gradient-hor-dark.png); +} + +body.color-scheme-dark .onboarding-modal .onboarding-side-by-side .onboarding-content.with-gradient { + background-image: url(../images/onboarding-gradient-ver-dark.png); +} + +body.color-scheme-dark .onboarding-modal .onboarding-content .onboarding-title { + color: #fff; +} + +body.color-scheme-dark .onboarding-modal .onboarding-content .onboarding-text { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .onboarding-modal .slick-dots li button { + background-color: #fff; +} + +body.color-scheme-dark .onboarding-modal .slick-next:before, body.color-scheme-dark .onboarding-modal .slick-prev:before, +body.color-scheme-dark .onboarding-modal .slick-next, body.color-scheme-dark .onboarding-modal .slick-prev { + color: #ccd9e8; +} + +body.color-scheme-dark .invoice-w:before { + background-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .invoice-w .infos .info-2 .company-address { + color: #ccd9e8; +} + +body.color-scheme-dark .invoice-w .terms .terms-content { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .invoice-w .infos .info-1 .company-extra { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .invoice-footer { + border-top-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .invoice-footer .invoice-info span + span { + border-left-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .timed-activities.compact .timed-activity:before { + background-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .timed-activity .ta-date { + color: #ccd9e8; +} + +body.color-scheme-dark .timed-activity .ta-date span:after { + background-color: #293145; +} + +body.color-scheme-dark .timed-activity .ta-date:before { + background-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .timed-activity .ta-timestamp:after { + color: #ccd9e8; +} + +body.color-scheme-dark .timed-activity .ta-timestamp { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .timed-activity .ta-timestamp strong { + color: #ccd9e8; +} + +body.color-scheme-dark .profile-tile { + color: #ccd9e8; + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .profile-tile .profile-tile-box { + color: #fff; +} + +body.color-scheme-dark .profile-tile .pt-user-name { + border-top-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .profile-tile .profile-tile-meta ul { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .profile-tile .profile-tile-meta ul strong { + color: #ccd9e8; +} + +body.color-scheme-dark .user-profile .up-head-w .decor .decor-path { + fill: #333c55; +} + +body.color-scheme-dark .value-pair .label { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .box-style legend span, body.color-scheme-dark .user-profile legend span, body.color-scheme-dark .element-box legend span, body.color-scheme-dark .invoice-w legend span, body.color-scheme-dark .big-error-w legend span, body.color-scheme-dark .activity-boxes-w .activity-box legend span, .activity-boxes-w body.color-scheme-dark .activity-box legend span, body.color-scheme-dark .projects-list .project-box legend span, .projects-list body.color-scheme-dark .project-box legend span, +body.color-scheme-dark .user-profile legend span, +body.color-scheme-dark .element-box legend span, +body.color-scheme-dark .invoice-w legend span, +body.color-scheme-dark .big-error-w legend span, +body.color-scheme-dark .invoice-w legend span, +body.color-scheme-dark .big-error-w legend span, +body.color-scheme-dark .activity-boxes-w .activity-box legend span, +body.color-scheme-dark .projects-list .project-box legend span, +body.color-scheme-dark .profile-tile .profile-tile-box legend span { + background-color: #303950; + color: #fff; +} + +body.color-scheme-dark .box-style legend:before, body.color-scheme-dark .user-profile legend:before, body.color-scheme-dark .element-box legend:before, body.color-scheme-dark .invoice-w legend:before, body.color-scheme-dark .big-error-w legend:before, body.color-scheme-dark .activity-boxes-w .activity-box legend:before, .activity-boxes-w body.color-scheme-dark .activity-box legend:before, body.color-scheme-dark .projects-list .project-box legend:before, .projects-list body.color-scheme-dark .project-box legend:before, +body.color-scheme-dark .user-profile legend:before, +body.color-scheme-dark .element-box legend:before, +body.color-scheme-dark .invoice-w legend:before, +body.color-scheme-dark .big-error-w legend:before, +body.color-scheme-dark .invoice-w legend:before, +body.color-scheme-dark .big-error-w legend:before, +body.color-scheme-dark .activity-boxes-w .activity-box legend:before, +body.color-scheme-dark .projects-list .project-box legend:before, +body.color-scheme-dark .profile-tile .profile-tile-box legend:before { + background-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .element-wrapper .element-inner-desc { + color: #ccd9e8; +} + +body.color-scheme-dark .element-box .element-box-header, body.color-scheme-dark .invoice-w .element-box-header, body.color-scheme-dark .big-error-w .element-box-header, body.color-scheme-dark .invoice-w .element-box-header, body.color-scheme-dark .big-error-w .element-box-header { + color: #6a759c; +} + +body.color-scheme-dark .element-wrapper .element-header { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .users-list-w .user-w .user-role { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .users-list-w .user-w.with-status .user-avatar-w:before { + -webkit-box-shadow: 0px 0px 3px #293145; + box-shadow: 0px 0px 3px #293145; +} + +body.color-scheme-dark .projects-list .project-head .project-users .avatar { + -webkit-box-shadow: 0px 0px 0px 5px #323c58; + box-shadow: 0px 0px 0px 5px #323c58; +} + +body.color-scheme-dark .element-balances .balance-title { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .element-balances .balance-value { + color: #fff; +} + +body.color-scheme-dark .activity-boxes-w .activity-role { + color: #fff; +} + +body.color-scheme-dark .activity-boxes-w .activity-title { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .activity-boxes-w .activity-time { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .activity-boxes-w .activity-box:before { + background-color: #fff; + border-color: #293145; +} + +body.color-scheme-dark .activity-boxes-w .activity-box-w:before { + background-color: #1f62e0; +} + +body.color-scheme-dark .activity-boxes-w .activity-box-w:after { + background-color: #38435f; +} + +body.color-scheme-dark a.el-tablo { + color: #fff; +} + +body.color-scheme-dark a.el-tablo:hover { + -webkit-box-shadow: 0px 15px 25px rgba(22, 22, 35, 0.25); + box-shadow: 0px 15px 25px rgba(22, 22, 35, 0.25); +} + +body.color-scheme-dark .el-tablo .label { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .el-tablo .value { + color: #fff; +} + +body.color-scheme-dark .floated-colors-btn, +body.color-scheme-dark .floated-chat-btn { + -webkit-box-shadow: 0 2px 20px 0 rgba(12, 16, 23, 0.26); + box-shadow: 0 2px 20px 0 rgba(12, 16, 23, 0.26); +} + +body.color-scheme-dark .fc-other-month { + background-color: #293148; +} + +body.color-scheme-dark .fc-event { + -webkit-box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.15); + box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.15); +} + +body.color-scheme-dark .fc-unthemed td.fc-today { + background: #6b385f; +} + +body.color-scheme-dark .fc-day-number { + color: #ccd9e8; +} + +body.color-scheme-dark .fc-day-header { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .fc-unthemed .fc-content, body.color-scheme-dark .fc-unthemed .fc-divider, body.color-scheme-dark .fc-unthemed .fc-list-heading td, body.color-scheme-dark .fc-unthemed .fc-list-view, body.color-scheme-dark .fc-unthemed .fc-popover, body.color-scheme-dark .fc-unthemed .fc-row, body.color-scheme-dark .fc-unthemed tbody, body.color-scheme-dark .fc-unthemed td, body.color-scheme-dark .fc-unthemed th, body.color-scheme-dark .fc-unthemed thead { + border-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .os-progress-bar .bar-label-right span.info { + color: #7281b7; +} + +body.color-scheme-dark .os-progress-bar.blue .bar-level-1, +body.color-scheme-dark .os-progress-bar.primary .bar-level-1, +body.color-scheme-dark .os-progress-bar.warning .bar-level-1, +body.color-scheme-dark .os-progress-bar.info .bar-level-1, +body.color-scheme-dark .os-progress-bar.danger .bar-level-1, +body.color-scheme-dark .os-progress-bar.success .bar-level-1 { + background-color: #293148; +} + +body.color-scheme-dark .os-progress-bar.blue .bar-level-2, body.color-scheme-dark .os-progress-bar.primary .bar-level-2 { + background-color: #3870ef; +} + +body.color-scheme-dark .os-progress-bar.blue .bar-level-3, body.color-scheme-dark .os-progress-bar.primary .bar-level-3 { + background-color: #c5d3ff; +} + +body.color-scheme-dark .el-chart-w .inside-donut-chart-label strong { + color: #fff; +} + +body.color-scheme-dark .el-chart-w .inside-donut-chart-label span { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .el-chart-w + .el-legend { + border-top-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .big-error-w form { + border-top-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .form-control { + background-color: rgba(18, 22, 41, 0.22); + border-color: rgba(18, 22, 41, 0.34); + color: #ccd9e8; +} + +body.color-scheme-dark .form-control::-webkit-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .form-control:-ms-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .form-control::-ms-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .form-control::placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .form-desc { + color: #ccd9e8; + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .input-group-prepend, +body.color-scheme-dark .input-group-text { + background-color: rgba(18, 22, 41, 0.22); + border-color: rgba(18, 22, 41, 0.14); + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .select2-container--default .select2-selection--multiple { + background-color: rgba(18, 22, 41, 0.22); + border-color: rgba(18, 22, 41, 0.11); +} + +body.color-scheme-dark .select2-container--default .select2-selection--multiple .select2-selection__choice { + color: #fff; + background-color: #422af5; + border-color: #422af5; +} + +body.color-scheme-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + color: #fff; +} + +body.color-scheme-dark .form-buttons-w { + border-top-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .step-triggers { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .step-triggers .step-trigger:hover { + color: #fff; +} + +body.color-scheme-dark .step-triggers .step-trigger.active { + color: #fff; +} + +body.color-scheme-dark .step-triggers .step-trigger { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .dropzone { + background-color: #252c3f; + border-color: #030e19; +} + +body.color-scheme-dark .cke .cke_top { + background-color: #323c58; + border-bottom-color: #202637; +} + +body.color-scheme-dark .cke .cke_bottom { + background-color: #323c58; +} + +body.color-scheme-dark .cke iframe .cke_editable { + background-color: #293148; +} + +body.color-scheme-dark .cke .cke_button_icon { + -webkit-filter: invert(1); + filter: invert(1); +} + +body.color-scheme-dark .cke .cke_toolbar_separator, body.color-scheme-dark .cke .cke_toolgroup a.cke_button:last-child::after, body.color-scheme-dark .cke .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child::after { + border-color: rgba(255, 255, 255, 0.05); + background-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .floated-chat-w .floated-chat-i { + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +body.color-scheme-dark .full-chat-w .full-chat-i { + background-color: #293145; +} + +body.color-scheme-dark .full-chat-w .chat-info-section .ci-header span { + color: #ccd9e8; +} + +body.color-scheme-dark .full-chat-w .user-intro { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .full-chat-w .user-intro .user-intro-info .user-sub { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .chat-info-section + .chat-info-section { + border-top-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .full-chat-w .full-chat-middle { + background-color: #333c55; +} + +body.color-scheme-dark .full-chat-w .full-chat-middle .chat-content-w .chat-message .chat-message-avatar img { + -webkit-box-shadow: #333c55 0px 0px 0px 10px; + box-shadow: #333c55 0px 0px 0px 10px; +} + +body.color-scheme-dark .full-chat-w .full-chat-middle .chat-content-w .chat-date-separator:before { + background-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .full-chat-w .full-chat-middle .chat-content-w .chat-date-separator span { + background-color: #333c55; + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .full-chat-middle .chat-content-w .chat-message .chat-message-date { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .chat-content-w .chat-message .chat-message-content { + background-color: #3c4865; + color: #ccd9e8; +} + +body.color-scheme-dark .full-chat-w .chat-content-w .chat-message.self .chat-message-content { + background-color: #293145; +} + +body.color-scheme-dark .full-chat-w .chat-controls { + border-top-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .full-chat-w .chat-input input[type="text"]::-webkit-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .chat-input input[type="text"]:-ms-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .chat-input input[type="text"]::-ms-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .chat-input input[type="text"]::placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .chat-input input[type="text"] { + background-color: #333c55; + color: #ccd9e8; +} + +body.color-scheme-dark .full-chat-w .full-chat-right { + background-color: #252c3f; +} + +body.color-scheme-dark .full-chat-w .full-chat-left { + background-color: #293145; +} + +body.color-scheme-dark .full-chat-w .full-chat-left .nav-link i { + color: #59647b; +} + +body.color-scheme-dark .full-chat-w .full-chat-left .nav-link.active i { + color: #047bf8; +} + +body.color-scheme-dark .full-chat-w .full-chat-left .element-search input { + background-color: rgba(0, 0, 0, 0.2); + border-color: #161a25; +} + +body.color-scheme-dark .full-chat-w .full-chat-left .element-search:before, body.color-scheme-dark .full-chat-w .full-chat-left .element-search input::-webkit-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .full-chat-left .element-search:before, body.color-scheme-dark .full-chat-w .full-chat-left .element-search input:-ms-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .full-chat-left .element-search:before, body.color-scheme-dark .full-chat-w .full-chat-left .element-search input::-ms-input-placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .full-chat-left .element-search:before, body.color-scheme-dark .full-chat-w .full-chat-left .element-search input::placeholder { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .full-chat-left .user-list .user-w .last-message { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .full-chat-left .user-list .user-w .user-date { + background-color: #1f2635; + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .full-chat-w .full-chat-left .user-list .user-w { + border-bottom-color: rgba(0, 0, 0, 0.2); +} + +body.color-scheme-dark .full-chat-w .full-chat-left .user-list .user-w:hover .user-date { + background-color: #0362c6; + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .table-bordered th, body.color-scheme-dark .table-bordered td { + border-color: rgba(159, 172, 199, 0.12); +} + +body.color-scheme-dark .table th, body.color-scheme-dark .table td { + border-color: rgba(159, 172, 199, 0.12); +} + +body.color-scheme-dark .table.table-v2 thead tr th, body.color-scheme-dark .table.table-v2 tfoot tr th { + border-color: rgba(159, 172, 199, 0.12); +} + +body.color-scheme-dark .table.table-v2 tbody tr td { + border-color: rgba(159, 172, 199, 0.12); +} + +body.color-scheme-dark .table .cell-image-list .cell-img-more { + background-color: #2b334b; +} + +body.color-scheme-dark .table thead th { + border-bottom-color: rgba(255, 255, 255, 0.05); + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .table .cell-image-list .cell-img { + -webkit-box-shadow: 3px 2px 10px rgba(25, 38, 66, 0.8); + box-shadow: 3px 2px 10px rgba(25, 38, 66, 0.8); +} + +body.color-scheme-dark .table .row-actions a { + color: #bbc9da; +} + +body.color-scheme-dark .controls-below-table .table-records-info, +body.color-scheme-dark .controls-below-table .table-records-pages ul li a.current { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .table.table-padded tbody td { + background-color: #303950; +} + +body.color-scheme-dark .table.table-padded tbody tr:hover { + -webkit-box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); + box-shadow: 0px 5px 15px rgba(22, 22, 35, 0.1); +} + +body.color-scheme-dark .table .lighter { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(16, 27, 33, 0.05); +} + +body.color-scheme-dark .dataTables_wrapper .row:first-child { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .dataTables_wrapper .row:last-child { + border-top-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark div.dataTables_wrapper div.dataTables_info { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .table.table-editable td:hover { + background-color: #293145; +} + +body.color-scheme-dark .table.table-editable + input { + background-color: #1f2635; + color: #fff; +} + +body.color-scheme-dark .nav-pills .nav-link { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .nav-pills .nav-link.active, body.color-scheme-dark .nav-pills .nav-item.show .nav-link { + color: #fff; +} + +body.color-scheme-dark .nav-tabs, body.color-scheme-dark .nav-pills { + border-bottom-color: rgba(255, 255, 255, 0.05); +} + +body.color-scheme-dark .nav-tabs .nav-link { + color: rgba(218, 226, 243, 0.4); +} + +body.color-scheme-dark .nav-tabs .nav-link.active, body.color-scheme-dark .nav-tabs .nav-item.show .nav-link, body.color-scheme-dark .nav-tabs .nav-link:hover, body.color-scheme-dark .nav-tabs .nav-item:hover .nav-link { + color: #fff; +} + +body.color-scheme-dark .page-link { + background-color: #293145; + border-color: #293145; +} + +body.color-scheme-dark .page-item.disabled .page-link { + background-color: #293145; + border-color: #293145; + color: rgba(218, 226, 243, 0.4); +} + +/* ##. Responsive Styles */ +/* + +Contents: + +#1. Screen size <= 1650px +#2. Screen size <= 1550px +#3. Screen size <= 1400px +#4. Screen size <= 1350px +#5. Screen size between 1100px - 1350px +#6. Screen size <= 1250px +#7. Screen size <= 1150px +#8. Tablets and phones (< 1024px) +#9. Tablets (768px - 1024px) +#10. Phones & Vertical Tablets (<= 768px) +#11. Phones (< 767px) +#12. Screen Height >= 700px + + +*/ +/* #1. Screen size <= 1650px */ +@media (max-width: 1650px) { + body, + body.auth-wrapper .all-wrapper { + /*padding: 40px;*/ + } + + .content-panel { + padding: 2rem; + -webkit-box-flex: 0; + -ms-flex: 0 0 350px; + flex: 0 0 350px; + } + + .content-box { + padding: 2rem; + } + + body.with-content-panel .content-box { + padding-left: 4rem; + } + + .all-wrapper { + max-width: 100%; + } +} + +/* #2. Screen size <= 1550px */ +@media (max-width: 1550px) { + body, + body.auth-wrapper .all-wrapper { + /*padding: 20px;*/ + } + + .menu-side-w ul.main-menu { + padding: 1.5rem 1rem; + } + + .menu-side-w ul.main-menu > li .icon-w { + padding-left: 1rem; + width: 75px; + } + + .menu-side-w ul.sub-menu { + padding-left: 37px; + } + + .menu-side-w { + width: 260px; + } + + .menu-side-w .logged-user-menu ul { + padding-left: 30px; + padding-right: 30px; + } + + .support-index .support-ticket-content-w .ticket-reply .ticket-reply-info .badge { + position: absolute; + top: -10px; + right: 0px; + } +} + +/* #3. Screen size <= 1400px */ +@media (max-width: 1400px) { + .menu-side-w ul.main-menu > li .icon-w { + padding-left: 10px; + width: 65px; + } + + .menu-side-w { + width: 230px; + } + + .menu-side-w .side-menu-magic { + padding: 30px 20px; + } + + .menu-side-w .logged-user-menu ul { + padding-left: 15px; + padding-right: 15px; + } + + .menu-side-w ul.sub-menu { + padding-left: 30px; + } + + .menu-top-image-w ul.main-menu > li .icon-w { + padding-left: 20px; + } + + .menu-top-image-w ul.main-menu > li span { + padding-right: 20px; + } + + .full-chat-w .chat-content-w .chat-message .chat-message-content { + max-width: 320px; + } + + .support-index .support-ticket-content-w .ticket-reply .ticket-reply-content { + margin-left: 0px; + } + + .support-index .support-ticket-content-w .support-ticket-content { + padding-right: 30px; + padding-left: 20px; + } + + .support-index .support-ticket-content-w.folded-info .support-ticket-content { + padding-right: 20px; + } + + .support-index .support-tickets { + -webkit-box-flex: 0; + -ms-flex: 0 0 400px; + flex: 0 0 400px; + } + + .support-index .st-foot { + font-size: 0.72rem; + } + + .support-index .st-foot .value + .label { + margin-left: 10px; + } + + .support-index .support-tickets { + margin-right: 15px; + padding-right: 15px; + } +} + +/* #4. Screen size <= 1350px */ +@media (max-width: 1350px) { + .top-bar .fs-extra-info { + display: none; + } + + .menu-side-w .logo-w { + padding: 1.5rem 1rem; + } + + .menu-top-w .menu-top-i .logo-w { + padding: 0rem 1rem; + width: 50px; + } + + .menu-top-w .menu-top-i ul.main-menu { + padding-left: 0px; + } + + .support-index .support-tickets { + -webkit-box-flex: 0; + -ms-flex: 0 0 390px; + flex: 0 0 390px; + } +} + +/* #5. Screen size between 1100px - 1350px */ +@media (min-width: 1100px) and (max-width: 1350px) { + .content-panel { + -webkit-box-flex: 0; + -ms-flex: 0 0 300px; + flex: 0 0 300px; + padding: 1.5rem; + } + + .padded { + padding: 0.5rem 1rem; + } + + .content-box { + padding: 1.5rem; + } + + body.with-content-panel .content-box { + padding-left: 3rem; + } + + .activity-boxes-w .activity-avatar { + margin-right: 1rem; + width: 40px; + } + + .activity-boxes-w .activity-time { + -webkit-box-flex: 0; + -ms-flex: 0 0 90px; + flex: 0 0 90px; + } + + .activity-boxes-w .activity-box-w:before { + left: 65px; + } + + .activity-boxes-w .activity-box-w:after { + left: 70px; + } + + .profile-tile .profile-tile-box { + width: 95px; + } + + .profile-tile .pt-avatar-w img { + width: 50px; + } + + .profile-tile .profile-tile-meta { + padding-left: 15px; + } +} + +/* #6. Screen size <= 1250px */ +@media (max-width: 1250px) { + .element-box, .invoice-w, .big-error-w, .invoice-w, .big-error-w { + padding: 1rem 1.5rem; + } + + .element-box .os-tabs-controls, .invoice-w .os-tabs-controls, .big-error-w .os-tabs-controls, .invoice-w .os-tabs-controls, .big-error-w .os-tabs-controls { + margin-left: -1.5rem; + margin-right: -1.5rem; + } + + body, + body.auth-wrapper .all-wrapper { + /*padding: 0px;*/ + } + + .content-w, + .menu-side-w, + .all-wrapper { + border-radius: 0px !important; + overflow-y: auto; + overflow-x: hidden; + } + + .menu-side-w .logged-user-menu { + left: 0px; + right: 0px; + } + + .support-index .support-ticket-content-w .support-ticket-info { + position: absolute; + top: 10px; + right: 10px; + width: 250px; + -webkit-box-shadow: 0px 20px 60px rgba(4, 123, 248, 0.3); + box-shadow: 0px 20px 60px rgba(4, 123, 248, 0.3); + background-color: #fff; + background-image: none; + display: none; + } + + .support-index .support-ticket-content-w .support-ticket-content .show-ticket-info { + display: block; + } + + .support-index .support-ticket-content-w.force-show-folded-info .support-ticket-info { + display: block; + } + + .support-index .support-ticket-content-w .support-ticket-content { + padding-right: 20px; + padding-left: 20px; + } + + .support-index .support-ticket-content-w.folded-info .support-ticket-content { + padding: 10px 20px; + } +} + +/* #7. Screen size <= 1150px */ +@media (max-width: 1150px) { + body.with-content-panel .content-box { + padding-left: 1.5rem; + } + + .ae-content { + padding: 0px; + } + + .aec-full-message-w { + margin-bottom: 0px; + } + + .ae-content-w { + background-image: none; + background-color: #fff; + } + + .aec-full-message-w .more-messages { + top: -32px; + background-color: #fff; + padding: 3px 5px; + border-radius: 4px; + color: #047bf8; + } + + .ae-list-w { + -webkit-box-flex: 0; + -ms-flex: 0 0 300px; + flex: 0 0 300px; + } + + .layout-w { + -webkit-transition: all 0.6s ease; + transition: all 0.6s ease; + } + + .content-box:after { + display: block; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + background: rgba(4, 36, 113, 0.6); + content: ""; + z-index: 10; + visibility: hidden; + opacity: 0; + -webkit-transition: all 0.4s ease; + transition: all 0.4s ease; + } + + .content-panel { + position: absolute; + top: 0px; + bottom: 0px; + right: 0px; + background-color: #fff; + background-image: -webkit-gradient(linear, right top, left top, color-stop(8%, #EFF2F9), color-stop(90%, #fff)); + background-image: linear-gradient(-90deg, #EFF2F9 8%, #fff 90%); + z-index: 4; + border: none; + -webkit-transform: translateX(100%); + transform: translateX(100%); + -webkit-transition: all 0.6s ease; + transition: all 0.6s ease; + visibility: hidden; + z-index: 11; + } + + .content-panel .content-panel-close { + display: block; + } + + body.color-scheme-dark .content-panel { + background-color: #293145; + background-image: -webkit-gradient(linear, right top, left top, from(#293145), to(#293145)); + background-image: linear-gradient(-90deg, #293145, #293145); + } + + .content-panel-toggler { + display: block; + } + + .content-i, .with-side-panel .content-i { + display: block; + } + + .content-i .content-box, .with-side-panel .content-i .content-box { + display: block; + } + + .content-panel-active .content-panel { + -webkit-transform: translateX(80px); + transform: translateX(80px); + visibility: visible; + -webkit-box-shadow: 0 2px 80px 0 rgba(0, 0, 0, 0.4); + box-shadow: 0 2px 80px 0 rgba(0, 0, 0, 0.4); + } + + .content-panel-active .layout-w { + -webkit-transform: translateX(-80px); + transform: translateX(-80px); + } + + .content-panel-active .content-box:after { + opacity: 1; + visibility: visible; + } +} + +/* #8. Tablets and phones (< 1024px) */ +@media (max-width: 1024px) { + .invoice-w { + padding: 50px; + } + + .ae-list-w { + -webkit-box-flex: 0; + -ms-flex: 0 0 230px; + flex: 0 0 230px; + } + + .ae-list-w .ae-list .ae-item { + padding: 15px; + } + + .table th, + .table td { + /*padding: 0.7rem 0.5rem;*/ + } + + .content-w { + border-radius: 0px !important; + } + + .menu-w { + display: none; + } +} + +/* #9. Tablets (768px - 1024px) */ +@media (min-width: 768px) and (max-width: 1024px) { + .top-bar .logo-w { + display: none; + } + + .top-bar .fs-extra-info { + display: none; + } + + .element-wrapper { + padding-bottom: 2rem; + } + + .element-balances { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + } + + .full-chat-w .full-chat-right { + display: none; + } + + .full-chat-w .chat-content-w .chat-content { + padding: 30px; + } + + .top-bar { + padding: 0px; + } + + .top-bar > ul { + white-space: nowrap; + } + + .top-bar > ul li a { + padding: 15px 10px; + margin: 0px 10px; + } + + .top-bar.with-overflow { + overflow: visible; + } + + .nav.upper.nav-tabs .nav-link { + margin-right: 0.7rem; + padding-bottom: 10px; + font-size: 0.72rem; + } + + .display-type { + content: "tablet"; + } + + .content-box { + padding: 1.5rem; + } + + .padded { + padding: 0.3rem 0.8rem; + } + + .element-box, .invoice-w, .big-error-w, .invoice-w, .big-error-w { + padding: 1rem 1rem; + } + + .element-box .os-tabs-controls, .invoice-w .os-tabs-controls, .big-error-w .os-tabs-controls, .invoice-w .os-tabs-controls, .big-error-w .os-tabs-controls { + margin-left: -1rem; + margin-right: -1rem; + } + + .layout-w { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + + .menu-mobile { + width: 70px; + display: table-cell; + } + + .menu-mobile .menu-and-user { + display: block; + } + + .menu-mobile ul.sub-menu { + padding: 1rem 1.5rem; + } + + .menu-mobile .mobile-menu-magic { + display: none; + } + + .menu-mobile .logged-user-w { + padding: 1rem; + text-align: center; + } + + .menu-mobile .logged-user-w .avatar-w img { + width: 35px; + height: 35px; + } + + .menu-mobile .logged-user-w .logged-user-info-w { + display: none; + } + + .menu-mobile ul.main-menu { + padding: 1rem 0px; + } + + .menu-mobile ul.main-menu > li.has-sub-menu > a:before { + display: none; + } + + .menu-mobile .mm-logo-buttons-w { + text-align: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + } + + .menu-mobile .mm-logo-buttons-w .mm-buttons { + display: none; + } + + .menu-mobile .mm-logo-buttons-w .mm-logo { + display: block; + text-align: center; + } + + .menu-mobile .mm-logo-buttons-w .mm-logo span { + display: none; + } + + .menu-mobile.color-scheme-dark ul.main-menu > li > a > span { + color: rgba(255, 255, 255, 0.2); + } + + .menu-mobile.color-scheme-dark ul.sub-menu { + background-color: #323c58; + } + + .menu-mobile.color-scheme-dark ul.sub-menu:before { + border-right-color: #203c9b; + } + + .menu-mobile ul.main-menu > li > a > span { + position: absolute; + top: 10px; + left: 90px; + color: rgba(0, 0, 0, 0.2); + font-size: 1.53rem; + font-weight: 500; + display: none; + white-space: nowrap; + z-index: 1000; + padding: 0px; + } + + .menu-mobile ul.main-menu li { + position: relative; + } + + .menu-mobile ul.main-menu > li .icon-w { + padding: 20px 5px; + } + + /*=====================================================================================================================================================*/ + + @media (min-width: 768px) { + .menu-mobile .logged-user-role { + display: none; !important; + } + + .menu-mobile .color-style-bright{ + display: block; !important; + } + + .menu-mobile div.logged-user-info-ws { + position: absolute; + top: 56px; + left: 70px; + background-color: #1b55e2; + min-width: 220px; + z-index: 999; + list-style: none; + padding: 20px 15px; + padding-top: 50px; + -webkit-box-shadow: 0px 5px 30px rgba(0, 0, 0, 0.1); + box-shadow: 0px 5px 30px rgba(0, 0, 0, 0.1); + display: none; + } + + .menu-mobile div.logged-user-role button { + padding: 10px 10px; + } + + .menu-mobile .main-menu div > button:hover > span { + display: block; + } + + .menu-mobile .logged-user-avatar-info { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-bottom: 10px; + padding: 0px 30px 10px 13px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + } + + .menu-mobile .logged-user-menu ul { + list-style: none; + text-align: left; + margin: 0px; + padding: 0px 30px; + padding-bottom: 20px; + } + + .menu-mobile .logged-user-menu .bg-icon { + font-size: 100px; + color: rgba(255, 255, 255, 0.1); + position: absolute; + bottom: -40px; + right: -20px; + } + + .menu-mobile .logged-user-w .logged-user-menu ul li { + border-bottom: 1px solid rgba(255, 255, 255, 0.05); + } + + .menu-mobile .logged-user-menu ul li a i { + vertical-align: middle; + margin-right: 15px; + font-size: 18px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + display: inline-block; + } + + + .menu-mobile .logged-user-menu ul li a span { + vertical-align: middle; + font-size: 0.7rem; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + display: inline-block; + } + + .menu-mobile .logged-user-menu ul li a { + display: block; + padding: 10px; + color: #fff; + } + + } + /*=====================================================================================================================================================*/ + + + .menu-mobile ul.sub-menu { + position: absolute; + top: 0px; + left: 70px; + background-color: #fff; + min-width: 220px; + z-index: 999; + list-style: none; + padding: 20px 15px; + padding-top: 50px; + -webkit-box-shadow: 0px 5px 30px rgba(0, 0, 0, 0.1); + box-shadow: 0px 5px 30px rgba(0, 0, 0, 0.1); + } + + .menu-mobile ul.sub-menu li { + padding: 10px 10px; + } + + .menu-mobile .main-menu li > a:hover > span { + display: block; + } + + .menu-mobile .has-sub-menu.active .icon-w { + color: #3E4B5B; + } + + .menu-mobile .has-sub-menu.active .sub-menu { + display: block; + } + + .user-profile .up-header { + font-size: 2.5rem; + } + + .user-profile .up-sub-header { + font-size: 1rem; + } + + .todo-app-w .todo-sidebar { + padding: 30px; + -webkit-box-flex: 0; + -ms-flex: 0 0 280px; + flex: 0 0 280px; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section { + padding: 10px; + } + + .todo-app-w .todo-content { + padding: 30px; + } +} + +/* #10. Phones & Vertical Tablets (<= 768px) */ +@media (max-width: 768px) { + .todo-app-w .todo-sidebar { + padding: 30px 20px 20px 45px; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section { + padding: 10px 0px; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section-toggle { + left: -22px; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section-header { + font-size: 1.25rem; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section-sub-section, .todo-app-w .todo-sidebar ul.projects-list { + padding-left: 10px; + } + + .todo-app-w .todo-content { + padding: 30px; + } + + .todo-app-w .todo-content .all-tasks-w { + padding-left: 5px; + } + + .todo-app-w .todo-content .tasks-header-w { + padding-left: 20px; + } + + .todo-app-w .todo-content .tasks-header-w .tasks-header-toggler { + left: -5px; + } + + .todo-app-w .todo-content .todo-content-header { + font-size: 1.25rem; + } + + .todo-app-w .todo-content .all-tasks-w { + padding-top: 0px; + padding-right: 0px; + } + + .todo-app-w .todo-content .tasks-list li.draggable-task { + padding-right: 10px; + } + + .support-index .support-tickets { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + margin-right: 0px; + padding-right: 0px; + border-right: 0px; + } + + .support-index .support-tickets { + display: none; + } + + .support-index .support-ticket-content-w { + /*display: none;*/ + } + + .support-index .support-ticket-content-w .support-ticket-content { + padding: 10px 5px; + } + + .support-index .support-ticket-content-w.folded-info .support-ticket-content { + padding: 10px 5px; + } + + .support-index.show-ticket-content { + position: relative; + } + + .support-index.show-ticket-content .support-ticket-content-w { + display: block; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + } + + .support-index.show-ticket-content .support-tickets { + display: none; + } + + .support-index.show-ticket-content .support-ticket-content-w .support-ticket-content .back-to-index { + display: block; + position: absolute; + top: 0px; + left: 10px; + } + + .support-index.show-ticket-content .support-ticket-content-w .support-ticket-content .show-ticket-info { + position: absolute; + top: 0px; + right: 10px; + } + + .support-index .support-ticket-content-w .support-ticket-content .support-ticket-content-header { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-top: 0px; + padding-top: 20px; + } + + .support-index .support-ticket-content-w .support-ticket-content .support-ticket-content-header .show-ticket-info { + padding-top: 0px; + } + + .support-index .support-ticket-content-w .support-ticket-content .support-ticket-content-header .ticket-header { + + } +} + +/* #11. Phones (< 767px) */ +@media (max-width: 767px) { + .layout-w { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + } + + .floated-customizer-btn { + display: none; + } + + .onboarding-modal .onboarding-content.with-gradient { + padding-left: 25px; + padding-right: 25px; + padding-top: 50px; + } + + .onboarding-modal .onboarding-content .onboarding-text { + font-size: 0.9rem; + padding-left: 0px; + padding-right: 0px; + } + + .onboarding-modal .onboarding-slide .onboarding-side-by-side .onboarding-media { + padding-bottom: 0px; + } + + .onboarding-modal .onboarding-slide .onboarding-side-by-side .onboarding-content.with-gradient { + padding-bottom: 70px; + } + + .onboarding-modal .onboarding-side-by-side { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + } + + .onboarding-modal .onboarding-side-by-side .onboarding-media { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding-bottom: 0px; + padding-top: 20px; + } + + .onboarding-modal .onboarding-side-by-side .onboarding-content.with-gradient { + background-image: url(../images/onboarding-gradient-hor.png); + background-position: top center; + padding: 40px 20px; + } + + .hidden-mobile { + display: none !important; + } + + .support-index .st-foot { + padding: 10px 10px; + } + + .support-index .support-ticket + .support-ticket { + margin-top: 15px; + } + + .top-bar .logo-w { + display: none; + } + + .top-bar.with-overflow { + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; + } + + .top-bar.with-overflow .top-menu-controls { + display: none; + } + + .top-bar .fs-extra-info { + display: none; + } + + .element-balances { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + } + + .element-balances .balance { + border: none !important; + } + + .cell-with-media { + text-align: center; + } + + .cell-with-media img { + margin-bottom: 5px; + } + + .cell-with-media img + span { + margin-left: 0px !important; + } + + .element-wrapper .element-actions { + + margin-bottom: 20px; + } + + .todo-app-w { + display: block; + } + + .todo-app-w .todo-sidebar { + padding: 30px 15px 20px 40px; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section { + padding: 10px 0px; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section-toggle { + left: -22px; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section-header { + font-size: 1.25rem; + } + + .todo-app-w .todo-sidebar .todo-sidebar-section-sub-section, .todo-app-w .todo-sidebar ul.projects-list { + padding-left: 10px; + } + + .todo-app-w .todo-content { + padding: 30px 20px; + } + + .todo-app-w .todo-content .todo-content-header { + font-size: 1.25rem; + } + + .todo-app-w .todo-content .all-tasks-w { + padding-top: 0px; + padding-right: 0px; + } + + .todo-app-w .todo-content .tasks-list li.draggable-task { + padding-right: 10px; + } + + .full-chat-w .full-chat-i { + display: block; + } + + .projects-list .project-head { + padding: 20px 30px; + display: block; + text-align: center; + } + + .projects-list .project-head .project-users { + text-align: center; + margin-top: 2rem; + } + + .projects-list .project-info { + padding: 20px 30px; + } + + .el-tablo { + text-align: center; + margin-bottom: 1rem; + } + + .display-type { + content: "phone"; + } + + .ae-list-w { + -webkit-box-flex: 1; + -ms-flex: 1 1 230px; + flex: 1 1 230px; + } + + .ae-content-w { + display: none; + } + + .top-bar { + padding: 0px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + } + + .top-bar > ul { + white-space: nowrap; + } + + .top-bar > ul li a { + padding: 15px 10px; + margin: 0px 10px; + } + + .top-bar.with-overflow { + overflow: visible; + } + + .nav.upper.nav-tabs .nav-link { + margin-right: 0.7rem; + padding-bottom: 10px; + font-size: 0.72rem; + } + + .app-email-w.forse-show-content .ae-content-w { + display: block; + } + + .app-email-w.forse-show-content .ae-list-w { + display: none; + } + + .aec-full-message-w .message-content { + padding: 15px; + } + + .aec-full-message-w .message-attachments { + text-align: center; + } + + .aec-full-message-w .message-head .user-w .user-role span { + margin-left: 0; + } + + .aec-reply { + padding: 15px; + } + + .aec-reply .reply-header { + padding-bottom: 15px; + padding-top: 15px; + text-align: center; + } + + .aec-reply .buttons-w { + display: block; + text-align: center; + } + + .aec-reply .buttons-w .btn, .aec-reply .buttons-w .all-wrapper .fc-button, .all-wrapper .aec-reply .buttons-w .fc-button { + margin-bottom: 10px; + } + + .floated-chat-btn i + span { + display: none; + } + + .floated-chat-btn { + padding: 10px 12px; + } + + .floated-colors-btn { + padding: 10px 12px; + } + + .floated-colors-btn.second-floated-btn { + right: auto; + left: 10px; + } + + .floated-colors-btn span + span { + display: none; + } + + .padded { + padding: 1rem; + } + + .user-profile .up-head-w .up-social { + top: 5px; + right: 10px; + } + + .user-profile .up-head-w .up-social a { + font-size: 24px; + } + + .user-profile .up-main-info { + padding-bottom: 10%; + } + + .user-profile .up-header { + font-size: 1.75rem; + margin-bottom: 5px; + padding-bottom: 5px; + } + + .user-profile .up-sub-header { + font-size: 1rem; + } + + .user-profile .up-controls { + text-align: center; + } + + .user-profile .up-controls .value-pair { + margin-bottom: 1rem; + } + + .user-profile .up-controls .text-right { + text-align: center !important; + } + + .timed-activities { + padding: 0; + } + + .timed-activity { + display: block; + font-size: 0.9rem; + } + + .timed-activity .ta-date { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + margin-bottom: 3rem; + text-align: left; + } + + .timed-activity .ta-date span:after { + -webkit-transform: none; + transform: none; + left: 0px; + } + + .timed-activity .ta-record-w { + padding-left: 0px; + } + + .timed-activity .ta-record { + display: block; + margin-bottom: 1rem; + padding-bottom: 1rem; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + } + + .timed-activity .ta-activity { + font-size: 0.81rem; + } + + .content-panel-toggler { + display: none; + } + + .menu-mobile { + display: block; + } + + .element-info .element-search { + margin-top: 1rem; + } + + .element-box .os-tabs-controls, .invoice-w .os-tabs-controls, .big-error-w .os-tabs-controls, .invoice-w .os-tabs-controls, .big-error-w .os-tabs-controls { + display: block; + margin-left: -1rem; + margin-right: -1rem; + } + + .element-box .os-tabs-controls .nav + .nav, .invoice-w .os-tabs-controls .nav + .nav, .big-error-w .os-tabs-controls .nav + .nav, .invoice-w .os-tabs-controls .nav + .nav, .big-error-w .os-tabs-controls .nav + .nav { + margin-top: 1rem; + } + + .element-box.el-tablo, .el-tablo.invoice-w, .el-tablo.big-error-w { + text-align: center; + } + + .invoice-w .infos { + display: block; + } + + .invoice-w .infos .info-2 { + text-align: left; + padding-top: 30px; + } + + .invoice-heading { + margin-bottom: 2rem; + margin-top: 4rem; + } + + .invoice-body { + display: block; + } + + .invoice-body .invoice-desc { + margin-bottom: 2rem; + } + + .invoice-footer { + display: block; + text-align: center; + } + + .invoice-footer .invoice-logo { + margin-bottom: 1rem; + } + + .controls-above-table .form-control { + /*width: 110px;*/ + display: inline-block; + } + + .controls-above-table .btn, .controls-above-table .all-wrapper .fc-button, .all-wrapper .controls-above-table .fc-button { + margin-bottom: 0.5rem; + } + + .layout-w { + display: block; + } + + .content-w, .menu-side .content-w { + display: block; + } + + .content-i { + display: block; + } + + .content-i .content-box { + display: block; + padding: 15px; + } + + .content-i .content-panel { + padding: 15px; + border-left: none; + display: block; + width: auto; + } + + .big-error-w { + padding: 1rem; + } + + .element-wrapper { + padding-bottom: 1.5rem; + } + + .element-box, .invoice-w, .big-error-w { + padding: 1rem; + } + + canvas { + max-width: 100%; + } + + table { + max-width: 100%; + } + + .invoice-w { + padding: 30px; + } + + .breadcrumb { + margin-bottom: 1rem; + } + + .btn-xlg { + padding: 0.6rem 0.6rem; + } + +} + +/* #12. Screen Height >= 700px */ +@media (min-height: 700px) and (min-width: 768px) { + .modal-dialog.modal-centered { + top: 50%; + -webkit-transform: translate(0, -80%); + transform: translate(0, -80%); + margin: 0px auto; + } + + .modal.show .modal-dialog.modal-centered { + top: 50%; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); + margin: 0px auto; + } +} + +/* +* shinsangeun add +*/ +.issue-close { + width: 30px; + height: 30px; + line-height: 30px; + background-color: #333; + border-radius: 99px; + text-align: center; + color: #fff !important; +} + +.issue-close i { + font-size: 12px !important; +} + +.pointer { + cursor: pointer; +} + +.mb-5 { + margin-bottom: 5px !important; +} + +.mb-10 { + margin-bottom: 10px !important; +} + +.mb-20 { + margin-bottom: 20px !important; +} + +.mb-30 { + margin-bottom: 30px !important; +} + +.mt-5 { + margin-top: 5px !important; +} + +.mt-10 { + margin-top: 10px !important; +} + +.mt-20 { + margin-top: 20px !important; +} + +.mt-30 { + margin-top: 30px !important; +} + +.ml-10 { + margin-left: 10px !important; +} + +.mr-5 { + margin-right: 5px !important; +} + +.mr-10 { + margin-right: 10px !important; +} + +.mr-20 { + margin-right: 20px !important; +} + +.ml-10 { + margin-left: 10px !important; +} + +.m-0 { + margin: 0 auto !important; +} + +.fc-red { + color: #f4516c !important; +} + +.fc-blue { + color: #3598fe !important; +} + +.fc-mint { + color: #3bcde2 !important; +} + +.fc-grey { + color: #999 !important; +} + +.fc-white { + color: #fff !important; +} + +.fc-purple { + color: rgb(102, 95, 255) !important; +} + +.fs-06 { + font-size: 0.25rem !important; +} + +.fs-09 { + font-size: 0.89rem !important; +} + +.fs-12 { + font-size: 1.2rem !important; +} + +.underline { + text-decoration: underline !important; +} + +.bb1 { + border-bottom: 1px solid #eeeeee; + display: block; +} + +.br1 { + border-right: 1px solid #eeeeee; +} + +.bl1 { + border-left: 1px solid #eeeeee; +} + +.box { + background: #f1f1f1; + padding: 15px; +} + +.workflowbox { + min-height: 300px; + padding: 15px; + text-align: center; + border: 1px solid #ddd; +} + + +.cursor { + cursor: pointer !important +} + +.vertical-middle { + vertical-align: middle !important +} + +.vertical-top { + vertical-align: bottom !important +} + +.bar-label-left h5 { + font-family: 'NanumSquare', serif; + font-weight: bold; +} + +.list-avatar { + width: 25px; + height: 25px; + border-radius: 100px; + overflow: hidden; + vertical-align: bottom +} + +.list-avatar img { + width: 25px; + height: 25px; + border-radius: 100px; +} + +.flex { + display: flex; + display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6, BB7 */ + display: -ms-flexbox; /* TWEENER - IE 10 */ + display: -webkit-flex; /* NEW - Safari 6.1+. iOS 7.1+, BB10 */ +} + +.table-dash th, .table-dash td { + padding: 0.5rem !important; +} + +.excel-notice ul { + font-size: 0.75rem; + padding-inline-start: 20px !important; +} + +.excel-notice li { + margin-bottom: 5px; +} + +.excel-notice dl { + margin-bottom: 0px !important; + margin-left: 5px; + font-size: 0.72rem; + color: #666666 +} + +.excel-notice dt { + list-style-type: none; +} + +.excel-notice dt:before { + content: "-"; + margin-left: 0px; +} + +/* The switch - the box around the slider */ +.switch { + position: relative; + display: inline-block; + width: 50px; + height: 25px; + top: 5px; +} + +.switch input { + display: none; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 18px; + width: 18px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #2196F3; +} + +input:focus + .slider { + box-shadow: 0 0 1px #047bf8; +} + +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} + +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +.tab { + position: relative; + margin-top: 20px; + +} + +.tab .tabinput { + position: absolute; + opacity: 0; + z-index: -1; +} + +.tab .tablabel { + position: relative; + display: block; + cursor: pointer; + color: #0066ff; + text-align: center; + margin: 0 auto; + border-top: 1px solid #8fb5f6; + margin-bottom: 20px; + +} + +.tab .tablabel span { + display: inline-block; + color: #0066ff; + text-align: center; + width: 60px; + font-size: 0.84rem; + line-height: 40px; +} + +.tab-content { + /*max-height: 0;*/ + overflow: hidden; + -webkit-transition: max-height .35s; + -o-transition: max-height .35s; + transition: max-height .35s; +} + +/* :checked */ +.tab .tabinput:checked ~ .tab-content { + max-height: 1000em; +} + +/* Icon */ +.tab .tablabel::after { + display: inline-block; + color: #4d8bf5; + background-color:; + width: 30px; + font-size: 0.80rem; + line-height: 40px; + text-align: center; + -webkit-transition: all .35s; + -o-transition: all .35s; + transition: all .35s; +} + +.tab .tabinput[type=checkbox] + label::after { + content: "\25BC"; +} + +.tab .tabinput[type=checkbox]:checked + label::after { + transform: rotate(180deg); +} + +.tabfilter { + border-bottom: 1px solid #dde2ec; + padding: 0.75rem 0.75rem; + margin-bottom: 30px; +} + +.tabfilter div { + font-size: 0.75rem; + color: #000; + margin-bottom: 10px; +} + +.tabfilter p { + background-color: #0066ff; + color: #fff; + border: 1px solid #0066ff; + font-size: 0.75rem; + border-radius: 2px; + padding: 0.375rem 0.75rem; + margin-right: 10px; + display: inline-block; + cursor: pointer; +} + +.tabfilter p span { + color: #fff; + margin-left: 5px; + cursor: pointer; +} + +.filebox .upload-name { + display: inline-block; + padding: .5em .75em; + font-size: inherit; + font-family: inherit; + line-height: normal; + color: #999; + vertical-align: middle; + background-color: #fff; + border: 2px solid #dde2ec; + border-radius: 4px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.filebox label { + display: inline-block; + padding: .5em .75em; + color: #999; + font-size: inherit; + line-height: normal; + vertical-align: middle; + background-color: #fff; + cursor: pointer; + border: 2px solid #dde2ec; + border-left: 0; + border-radius: 4px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin-bottom: 0 !important; +} + +.filebox input[type="file"] { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.pull-left { + float: left !important; + text-align: left !important; +} + +.pull-right { + float: right !important; + text-align: right !important; +} + +.bdl1 { + border-left: 1px solid #ddd; +} + +.number { + color: #888 !important; + font-size: 0.83rem; +} + +.detailview { + position: absolute; + right: -1px; + top: -41px; +} + +.detailview span { + width: 40px; + height: 40px; + display: inline-block; + background-color: #0066ff; + color: #fff; + line-height: 40px; + text-align: center; + cursor: pointer; +} + +.searchdiv { + padding: 20px 20px 20px 20px; + background-color: #e0effc; + border: 1px solid #dadfeb +} + +.width768 { + min-width: 768px; +} + +.width600 { + min-width: 600px; +} + +.dashboard-widget-height { + height: 160px; + overflow-y: auto; +} + +.activity-item { + padding: 15px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + position: relative; +} + +.activity-content { + width: 100%; +} + +.activity-timestamp { + color: rgba(0, 0, 0, 0.6); + font-size: 0.69rem; + padding-left: 10px; + font-weight: normal !important; +} + +.activity-text { + margin-top: 15px; +} + +.activity-text h6 { + font-size: 0.9rem; + margin-bottom: 0px; +} + +.activity-text h6.creat { + color: #fd7e14; + font-weight: bold; +} + +.activity-text h6.creat .dot { + width: 5px; + height: 5px; + background-color: #fd7e14; + border-radius: 50px; + display: inline-block; + margin-right: 5px; + margin-bottom: 4px; +} + +.activity-text h6.change { + color: #0066ff; + font-weight: bold; +} + +.activity-text h6.change .dot { + width: 5px; + height: 5px; + background-color: #0066ff; + border-radius: 50px; + display: inline-block; + margin-right: 5px; + margin-bottom: 4px; +} + +.activity-text h6.delete { + color: #666; + font-weight: bold; +} + +.activity-text h6.delete .dot { + width: 5px; + height: 5px; + background-color: #666; + border-radius: 50px; + display: inline-block; + margin-right: 5px; + margin-bottom: 4px; +} + +.activity-text .activity-list { + list-style: none; + border-radius: 4px; + padding: 10px; + background-color: #f1f1f1; + color: #444; + margin-bottom: 5px; + margin-top: 10px; +} + +.activity-text .activity-list li { + margin-bottom: 5px; +} + +.activity-text .activity-list li:last-child { + margin-bottom: 0px; +} + +.editForm-style { + border: 1px dotted #ccc; + padding: 2px; + display: block; +} + +.editForm-style i { + float: right; + padding-top: 5px; + padding-right: 5px;; + color: #bbb; +} + +.dash-chartdiv { + overflow: hidden; + height: 255px; + background-color: #f1f1f1; + padding: 1rem; +} + +@media (max-width: 420px) { + .topmenu-select { + display: none; + } +} + +.withdraw-acc { + background-color: #445ebf; + padding: 4.5rem; + text-align: center; +} + +.withdraw-acc h3 { + color: #fff; + font-size: 5rem; +} + +.withdraw-acc h4 { + color: #fff; + font-weight: bold; + font-family: 'NanumSquare' +} + +.withdraw-acc h5 { + color: #fff; + font-size: 1rem; +} + +.withdraw-acc img { + width: 130px; + padding-top: 50px; +} + +.form-control-blue { + border: 2px solid #0057da; + background-color: #0066ff; + color: #fff; + padding: 0 20px; + font-size: 0.9rem; +} + +/* ============================================================================================== + login page +================================================================================================= */ +.loginbackdiv { + width: 550px; + height: 700px; +} + +.loginback { + width: 550px; + height: 700px; + text-align: center; + overflow: hidden; + position: relative; +} + +.loginback img { + width: 230px; + top: 30%; + left: 0%; + right: 0%; + margin: 0 auto; + position: absolute; + z-index: 40; +} + +.loginback .bgdiv { + background-image: url(../images/loginbg.png); + background-repeat: no-repeat; + background-size: cover; + width: 100%; + height: 100%; + position: absolute; + top: 0; + z-index: 20; +} + +.loginback .login-circle { + position: absolute; + width: 550px; + height: 400px; + bottom: 0; + padding-top: 155px; + overflow: hidden; + z-index: 30; +} + +.loginback .login-circle .circle1 { + display: block; + width: 50px; + height: 50px; + background: white; + border-radius: 50%; + animation-name: drive; + animation-duration: 8s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + animation-direction: alternate; + animation-delay : 4s; + -webkit-box-shadow: 0 0 15px 0.4rem rgba(255, 255, 255, 0.45); + box-shadow: 0 0 15px 0.4rem rgba(255, 255, 255, 0.45); + +} + +.loginback .login-circle .circle2 { + display: block; + height: 40px; + width: 40px; + border-radius: 50%; + background: white; + animation-name: drive2; + animation-duration: 11s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + animation-direction: alternate-reverse; + animation-delay : 6s; + -webkit-box-shadow: 0 0 15px 0.4rem rgba(255, 255, 255, 0.45); + box-shadow: 0 0 15px 0.4rem rgba(255, 255, 255, 0.45); + +} + +.loginback .login-circle .circle3 { + display: block; + height: 40px; + width: 40px; + margin-top: 100px; + border-radius: 50%; + background: white; + animation-name: drive3; + animation-duration: 5s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + animation-direction: alternate; + animation-delay: 4s; + -webkit-box-shadow: 0 0 15px 0.4rem rgba(255, 255, 255, 0.45); + box-shadow: 0 0 15px 0.4rem rgba(255, 255, 255, 0.45); + +} + +.loginback .login-circle .circle4 { + display: block; + width: 20px; + height: 20px; + margin-top: -20px; + background: white; + border-radius: 50%; + animation-name: drive4; + animation-duration: 8s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + animation-direction: alternate-reverse; + animation-delay : 4s; + -webkit-box-shadow: 0 0 15px 0.4rem rgba(255, 255, 255, 0.45); + box-shadow: 0 0 15px 0.4rem rgba(255, 255, 255, 0.45); + +} + +@keyframes drive { + 0% { + transform: translateX(0); + } + 100% { + transform: translateX(520px); + } + 0% { + transform: translateY(-50px); + } +} + +@keyframes drive2 { + 0% { + transform: translateX(10px); + } + 100% { + transform: translateX(500px); + } + 0% { + transform: translateY(20px); + } +} + +@keyframes drive3 { + 0% { + transform: translateX(-20px); + } + 100% { + transform: translateX(520px); + } + 0% { + transform: translateY(10px); + } +} + +@keyframes drive4 { + 0% { + transform: translateX(20px); + } + 100% { + transform: translateX(550px); + } + 0% { + transform: translateY(-50px); + } +} + +.logincont { + width: 500px; + background-color: #fff; +} + +@media (max-width: 1070px) { + .loginbackdiv { + width: 400px; + overflow: hidden; + } + + .loginback { + width: 400px; + } + + .loginback img { + width: 190px; + top: 20%; + } + + +} + +@media (max-width: 900px) { + .loginbackdiv { + width: 200px; + } + + .loginback { + width: 300px; + } + + .loginback img { + display: none; + } + +} + +@media (max-width: 800px) { + .loginbackdiv { + width: 150px; + } + + .loginback { + width: 150px; + } + +} + +@media (max-width: 767px) { + .loginbackdiv { + display: none; + } + + .logincont { + width: 98%; + + } + + .auth-box-w form { + padding: 20px 20px; + } + + .auth-box-w form .form-group .pre-icon { + display: none; + } + + .auth-box-w .auth-header { + padding-top: 1rem; + } +} + +/* ============================================================================================== + Join page +================================================================================================= */ + +.join-box { + width: 900px; + margin: 0 auto; +} + +.join-box .join-logo { + width: 190px; +} + +.join-box .login-btn { + float: right; + padding-top: 10px; + letter-spacing: -0.06em +} + +.join-box .login-btn span { + color: #666; +} + +.join-box .login-btn a { + color: #0055ff; + font-weight: bold; + padding-left: 10px; + font-size: 16px; + text-decoration: underline; +} + +.join-box .join { + background-color: #fff; + padding: 3rem; + margin-top: 10px; +} + +.join-box .join h4 { + text-align: center; + font-weight: 800; + padding-bottom: 10px; + border-bottom: 1px solid #ddd; + margin-bottom: 30px; + box-sizing: border-box; + font-family: 'NanumSquare', 'sans-serif'; +} + +.join-box .join h4 img { + width: 70px; +} + +.join-box .join .joinbtn { + width: 50%; + margin: 0 auto; + padding: 20px 0px; +} + +@media (max-width: 489px) { + .join-box { + margin-left: 0.5rem; + } + + .join-box .join-logo { + width: 150px; + } + + .join-box .login-btn { + padding-top: 2px; + } + + .join-box .login-btn span { + display: none; + } + + .join-box .join { + padding: 1.5rem; + } +} + + +/* ============================================================================================== +star +================================================================================================= */ + +@keyframes move-twink-back { + from { + background-position: 0 0; + } + to { + background-position: -10000px 5000px; + } +} + +@-webkit-keyframes move-twink-back { + from { + background-position: 0 0; + } + to { + background-position: -10000px 5000px; + } +} + +@-moz-keyframes move-twink-back { + from { + background-position: 0 0; + } + to { + background-position: -10000px 5000px; + } +} + +@-ms-keyframes move-twink-back { + from { + background-position: 0 0; + } + to { + background-position: -10000px 5000px; + } +} + +.loginback .stardiv { + position: absolute; + z-index: 10; + top: 0; + width: 100%; + height: 100%; +} + +.stardiv .stars, .twinkling { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 100%; + height: 100%; + display: block; +} + +.stardiv .stars { + background: #030962 url(../images/stars.png) repeat top center; + z-index: 0; +} + +.stardiv .twinkling { + background: transparent url(../images/twinkling.png) repeat top center; + z-index: 1; + + -moz-animation: move-twink-back 200s linear infinite; + -ms-animation: move-twink-back 200s linear infinite; + -o-animation: move-twink-back 200s linear infinite; + -webkit-animation: move-twink-back 200s linear infinite; + animation: move-twink-back 200s linear infinite; +} + +.btn-google { + background: #fff; + color: #4d4d4d; + margin-bottom: 10px; + border: 1px solid #ddd; + cursor: pointer; + width: 48.5%; + display: inline-block; +} + +.btn-google .icon { + background: url(../images/btn_google.png) white no-repeat; + background-position: center; + background-size: 23px 23px; + display: inline-block; + border-radius: 1px; + vertical-align: middle; + width: 42px; + height: 42px; +} + +.btn-google .label { + display: inline-block; + vertical-align: middle; + color: #4d4d4d; + height: 42px; + line-height: 42px; + margin: 0; + padding: 0px; + font-size: 13px; + letter-spacing: -0.04em; + font-family: 'Roboto', sans-serif; +} + +.btn-naver { + background: #fff; + color: #4d4d4d; + margin-bottom: 10px; + border: 1px solid #ddd; + cursor: pointer; + width: 48.5%; + display: inline-block; +} + +.btn-naver .icon { + background: url(../images/btn_naver.PNG) white no-repeat; + background-position: center; + background-size: 19px 19px; + display: inline-block; + border-radius: 1px; + vertical-align: middle; + width: 42px; + height: 42px; +} + +.btn-naver .label { + display: inline-block; + vertical-align: middle; + height: 42px; + line-height: 42px; + margin: 0; + padding: 0px; + font-size: 13px; + letter-spacing: -0.04em; + font-family: 'Roboto', sans-serif; +} + +.btn-kakao { + background: #fff; + color: #4d4d4d; + margin-bottom: 10px; + border: 1px solid #ddd; + cursor: pointer; + width: 48.5%; + display: inline-block; +} + +.btn-kakao .icon { + background: url(../images/btn_kakao.png) white no-repeat; + background-position: center; + background-size: 23px 23px; + display: inline-block; + border-radius: 1px; + vertical-align: middle; + width: 42px; + height: 42px; +} + +.btn-kakao .label { + display: inline-block; + vertical-align: middle; + height: 42px; + line-height: 42px; + margin: 0; + padding: 0px; + font-size: 13px; + letter-spacing: -0.04em; + font-family: 'Roboto', sans-serif; +} + +.btn-facebook { + background: #fff; + color: #4d4d4d; + margin-bottom: 10px; + border: 1px solid #ddd; + cursor: pointer; + width: 48.5%; + display: inline-block; +} + +.btn-facebook .icon { + background: url(../images/btn_facebook.png) white no-repeat; + background-position: center; + background-size: 23px 23px; + display: inline-block; + border-radius: 1px; + vertical-align: middle; + width: 42px; + height: 42px; +} + +.btn-facebook .label { + display: inline-block; + vertical-align: middle; + height: 42px; + line-height: 42px; + margin: 0; + padding: 0px; + font-size: 13px; + letter-spacing: -0.04em; + font-family: 'Roboto', sans-serif; +} + +@media (max-width: 767px) { + .btn-google, .btn-naver, .btn-kakao, .btn-facebook { + width: 100%; + } +} + +.footer-w { + color: #868686; + font-weight: 300; + z-index: 2; + overflow: hidden; + margin-top: 80px; + } + +.footer-w .logo-element { + text-align: center; +} + +.footer-w .logo-element img { + width: 140px; + text-align: center; + padding-top: 35px; +} + +.footer-w .footer-i { + padding-top: 0px; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +@media (max-width: 1023px) { + .footer-w .footer-i { + text-align: center; + } + + .footer-w .logo-element { + margin-bottom: 20px; + } +} + +.footer-w .footer-i span { + opacity: 0.3; +} + +.footer-w .footer-i .heading-small { + color: #047bf8; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.72rem; + margin-bottom: 20px; +} + +.footer-w .deep-footer { + text-align: center; + padding: 10px; + font-size: 0.69rem; + margin-top: 0px; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +.footer-s { + color: #868686; + font-weight: 300; + overflow: hidden; + margin-top: 30px; + font-size: 0.69rem; +} + +.width-20-p { + width: 20px !important; +} + +.width-30-p { + width: 30px !important; +} + +.width-40-p { + width: 40px !important; +} + +.width-50-p { + width: 50px !important; +} + +.width-60-p { + width: 60px !important; +} + +.width-70-p { + width: 70px !important; +} + +.width-80-p { + width: 80px !important; +} + +.width-90-p { + width: 90px !important; +} + +.width-100-p { + width: 100px !important; +} + +.width-110-p { + width: 110px !important; +} + +.width-120-p { + width: 120px !important; +} + +.width-130-p { + width: 130px !important; +} + +.width-140-p { + width: 140px !important; +} + +.width-150-p { + width: 150px !important; +} + +.width-160-p { + width: 160px !important; +} + +.width-170-p { + width: 170px !important; +} + +.width-180-p { + width: 180px !important; +} + +.width-190-p { + width: 190px !important; +} + +.width-200-p { + width: 200px !important; +} + +.width-220-p { + width: 220px !important; +} + +.width-240-p { + width: 240px !important; +} + +.width-260-p { + width: 260px !important; +} + +.width-280-p { + width: 280px !important; +} + +.width-300-p { + width: 300px !important; +} + +.width-20 { + width: 20% !important; +} + +.width-30 { + width: 30% !important; +} + +.width-40 { + width: 40% !important; +} + +.width-50 { + width: 50% !important; +} + +.width-60 { + width: 60% !important; +} + +.width-70 { + width: 70% !important; +} + +.width-80 { + width: 80% !important; +} + +.width-90 { + width: 90% !important; +} + +.width-100 { + width: 100% !important; +} + +.pdl0 { + padding-left: 0px !important; +} + +.pdl5 { + padding-left: 5px !important; +} + +.pdl10 { + padding-left: 10px !important; +} + +.pdl15 { + padding-left: 15px !important; +} + +.pdl20 { + padding-left: 20px !important; +} + +.pdl25 { + padding-left: 25px !important; +} + +.pdl30 { + padding-left: 30px !important; +} + +.pdr0 { + padding-right: 0px !important; +} + +.pdr5 { + padding-right: 5px !important; +} + +.pdr10 { + padding-right: 10px !important; +} + +.pdr15 { + padding-right: 15px !important; +} + +.pdr20 { + padding-right: 20px !important; +} + +.pdr25 { + padding-right: 25px !important; +} + +.pdr30 { + padding-right: 30px !important; +} + +.pdt0 { + padding-top: 0px !important; +} + +.pdt5 { + padding-top: 5px !important; +} + +.pdt10 { + padding-top: 10px !important; +} + +.pdt15 { + padding-top: 15px !important; +} + +.pdt20 { + padding-top: 20px !important; +} + +.pdt25 { + padding-top: 25px !important; +} + +.pdt30 { + padding-top: 30px !important; +} + +.pdb0 { + padding-bottom: 0px !important; +} + +.pdb5 { + padding-bottom: 5px !important; +} + +.pdb10 { + padding-bottom: 10px !important; +} + +.pdb15 { + padding-bottom: 15px !important; +} + +.pdb20 { + padding-bottom: 20px !important; +} + +.pdb25 { + padding-bottom: 25px !important; +} + +.pdb30 { + padding-bottom: 30px !important; +} + +.pdb35 { + padding-bottom: 35px !important; +} + +.mgb0 { + margin-bottom: 0px !important; +} + +.mgb5 { + margin-bottom: 5px !important; +} + +.mgb10 { + margin-bottom: 10px !important; +} + +.mgb15 { + margin-bottom: 15px !important; +} + +.mgb20 { + margin-bottom: 20px !important; +} + +.mgb25 { + margin-bottom: 25px !important; +} + +.mgb30 { + margin-bottom: 30px !important; +} + +.input-readonly { + background-color: #fff !important; +} + +.not-modify { + cursor: not-allowed; +} + +.ul-not-comma { + list-style: none; + padding: 0; + margin: 0; +} + +.color-picker { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; +} + +.ng-hide { + /* These are just alternative ways of hiding an element */ + display: block !important; + position: absolute; + top: -9999px; + left: -9999px; +} + +.issue-search-label { + position: relative; + display: block; + cursor: pointer; + color: #0066ff; + text-align: center; + margin: 0 auto; + border-top: 1px solid #8fb5f6; + margin-bottom: 20px; +} + +.issue-search-label span { + display: inline-block; + color: #0066ff; + text-align: center; + width: 60px; + font-size: 0.84rem; + line-height: 40px; +} + +.issue-search-label::after { + display: inline-block; + color: #4d8bf5; + width: 30px; + font-size: 0.80rem; + line-height: 40px; + text-align: center; + -webkit-transition: all .35s; + -o-transition: all .35s; + transition: all .35s; + content: "\25BC"; +} + +.icon-reverse::after { + transform: rotate(180deg); +} + +.issue-detail-label { + font-size: 0.71rem; + color: #777 +} + +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.loaderdiv { + text-align: center; + filter: alpha(opacity=80); + position: fixed; + width: 100%; + height: 100%; + left: 0; + top: 0; + bottom: 0; + right: 0; + background: #000; + opacity: 0.8; + z-index: 9999; + display: table; + text-align: center; +} + +.loaderdiv p { + color: #3bcde2; + font-weight: bold; + width: 160px; + padding-top: 60px; + text-align: center; + font-size:12px; + +} +.loader-center{ + width:160px; margin:0 auto; position: relative; +} +.loader { + -webkit-animation: loading-4 1.15s 1; + animation: loading-4 1.15s 1; + animation-fill-mode: forwards; + vertical-align: middle; + text-align: center; + width: 160px; + height: 100px; + position: relative; + display:table-cell; + +} + +.loader .loader-inner { + position: absolute; + -webkit-animation: loading-1 1150ms infinite ease-in-out alternate, loading-3 2300ms infinite ease-in-out; + animation: loading-1 1150ms infinite ease-in-out alternate, loading-3 2300ms infinite ease-in-out; +} + +.loader .box { + width: 35px; + height: 35px; + border-radius: 50%; + background: #98c220; + background-image: url("/assets/images/owl.png"); + background-size: cover; + box-shadow: 0 -6.25px 0 rgba(0, 0, 0, 0.15) inset; + border: 1px solid #000; + transform: scale(0.5); + -webkit-animation: loading-2 1150ms infinite ease-in-out alternate; + animation: loading-2 1150ms infinite ease-in-out alternate; + animation-delay: -575ms; +} + +.loader .box:after { + content: ""; + width: 34px; + height: 6px; + border-radius: 50%; + background: #333; + position: absolute; + top: 44px; + +} + +.loader .loader-inner-2 { + animation-delay: -1150ms; +} + +.loader .loader-inner-3 { + animation-delay: -1725ms; +} + +.loader .loader-inner-4 { + animation-delay: -2875ms; +} + +.loader .box-2 { + background: #3bcde2; + background-image: url("/assets/images/owl.png"); + background-size: cover; + animation-delay: -1725ms; +} + +.loader .box-3 { + background: #e8d324; + background-image: url("/assets/images/owl.png"); + background-size: cover; + animation-delay: -2300ms; +} + +.loader .box-4 { + background: #665fff; + background-image: url("/assets/images/owl.png"); + background-size: cover; + animation-delay: -3450ms; +} + +@-webkit-keyframes loading-1 { + 100% { + -webkit-transform: translateX(97px); + } +} + +@keyframes loading-1 { + 100% { + transform: translateX(97px); + } +} + +@-webkit-keyframes loading-2 { + 100% { + -webkit-transform: scale(1); + } +} + +@keyframes loading-2 { + 100% { + transform: scale(1); + } +} + +@-webkit-keyframes loading-3 { + 25% { + z-index: 1; + } + 75% { + z-index: -1; + } +} + +@keyframes loading-3 { + 25% { + z-index: 1; + } + 75% { + z-index: -1; + } +} + +@-webkit-keyframes loading-4 { + 100% { + opacity: 1; + } +} + +@keyframes loading-4 { + 100% { + opacity: 1; + } +} + +.issue-continue-checkbox { + position: relative; + top: 5px; + right: 5px; +} + +.issue-detail-word-break { + display: inline-block; + overflow-wrap: break-word; + word-wrap: break-word; + line-break: strict; + hyphens: none; + -webkit-hyphens: none; + -moz-hyphens: none; + word-break: break-all; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.my-widget-td { + border-bottom: 1px solid rgba(83, 101, 140, 0.33); +} + +.issue-label { + color: darkblue; + font-weight: 600; +} + +/* datetimepicker �쁽�옱 �떆媛� �몴�떆�븞�릺寃� �븯湲� */ +.xdsoft_today { + display: none; +} + +input[type=text]::-ms-clear { + display: none; +} + +.agree-term { + top: 3px; + position: relative; + cursor: pointer; +} + +.agree-term:focus { + color: #495057; + background-color: #fff; + border-color: #047bf8; + outline: auto; + -webkit-box-shadow: none; + box-shadow: none; +} + +.detail-not-elements { + color: #999 !important; + text-align: center; + padding-top: 20px; +} + +@keyframes move-animation { + 0% { + color: #ff0000; + } + 30% { + color: #ffb300; + } + 60% { + color: #f44336 + } + 100% { + color: #ff0000; + } +} + +.move-star { + animation-name: move-animation; + animation-duration: 1s; + animation-iteration-count: infinite; + animation-timing-function: ease; +} + +.table-word-break-all { + word-break: break-all; + white-space: inherit; + display: inline-block; + overflow-wrap: break-word; + word-wrap: break-word; + line-break: strict; + hyphens: none; + -webkit-hyphens: none; + -moz-hyphens: none; +} + +.login-email-save { + position: relative !important; + top: 2px; +} + +.issue-select-label { + font-weight: 600; +} + +.issue-status-edit { + position: relative; + top: 6px; +} + +.percent { + color: black !important; +} + +.left-menu { + left: -60px !important; +} + +select::-ms-expand{ + display:none; +} + +.workspace-expire-span{ + color:#e65252; + font-size:15px; +} + + +/* kanban board */ + +.pipelines-w { + position: relative; + flex-grow: 1; +} +.project-subject{ + letter-spacing: -0.04em; + font-family: 'Nanum Gothic Bold', "Avenir Next W01", "Proxima Nova W01", "Rubik", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + margin-bottom:20px; +} +.pipeline-blockdiv { + overflow-x: auto; + overflow-y: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + white-space: nowrap; + margin-bottom: 8px; + padding-bottom: 8px; + +} + +.pipeline-block { + width: 300px; + margin-right: 10px; + margin-left: 10px; + + display:inline-block; + height: 100%; + box-sizing: border-box; + vertical-align: top; + white-space: nowrap; +} + +.pipeline-scrolldiv { + max-height: 600px; + overflow-y: auto; + overflow-x: hidden; +} + +.pipeline-scroll { + min-height: 262px; +} + + +.pointer { + cursor: pointer; +} + + +/* 媛꾪듃李⑦듃 start */ +#chart_div { + width: 100% +} + +/* 媛꾪듃李⑦듃 end */ diff --git a/src/main/webapp/assets/styles/main.css.map b/src/main/webapp/assets/styles/main.css.map new file mode 100644 index 0000000..81e9580 --- /dev/null +++ b/src/main/webapp/assets/styles/main.css.map @@ -0,0 +1,114 @@ +{ + "version": 3, + "sources": [ + "../../source/scss/main.scss", + "../../source/scss/bootstrap-override/_bootstrap.scss", + "../../source/bower_components/bootstrap/scss/_root.scss", + "../../source/bower_components/bootstrap/scss/_reboot.scss", + "main.css", + "../../source/scss/_theme-variables.scss", + "../../source/scss/bootstrap-override/_variables.scss", + "../../source/bower_components/bootstrap/scss/mixins/_hover.scss", + "../../source/bower_components/bootstrap/scss/_type.scss", + "../../source/bower_components/bootstrap/scss/mixins/_lists.scss", + "../../source/bower_components/bootstrap/scss/_images.scss", + "../../source/bower_components/bootstrap/scss/mixins/_image.scss", + "../../source/bower_components/bootstrap/scss/mixins/_border-radius.scss", + "../../source/bower_components/bootstrap/scss/_code.scss", + "../../source/bower_components/bootstrap/scss/_grid.scss", + "../../source/bower_components/bootstrap/scss/mixins/_grid.scss", + "../../source/bower_components/bootstrap/scss/mixins/_breakpoints.scss", + "../../source/bower_components/bootstrap/scss/mixins/_grid-framework.scss", + "../../source/bower_components/bootstrap/scss/_tables.scss", + "../../source/bower_components/bootstrap/scss/mixins/_table-row.scss", + "../../source/bower_components/bootstrap/scss/_functions.scss", + "../../source/bower_components/bootstrap/scss/_forms.scss", + "../../source/bower_components/bootstrap/scss/mixins/_transition.scss", + "../../source/bower_components/bootstrap/scss/mixins/_forms.scss", + "../../source/bower_components/bootstrap/scss/mixins/_gradients.scss", + "../../source/bower_components/bootstrap/scss/_buttons.scss", + "../../source/bower_components/bootstrap/scss/mixins/_buttons.scss", + "../../source/bower_components/bootstrap/scss/_dropdown.scss", + "../../source/bower_components/bootstrap/scss/mixins/_caret.scss", + "../../source/bower_components/bootstrap/scss/mixins/_nav-divider.scss", + "../../source/bower_components/bootstrap/scss/_button-group.scss", + "../../source/bower_components/bootstrap/scss/_input-group.scss", + "../../source/bower_components/bootstrap/scss/_custom-forms.scss", + "../../source/bower_components/bootstrap/scss/_nav.scss", + "../../source/bower_components/bootstrap/scss/_breadcrumb.scss", + "../../source/bower_components/bootstrap/scss/_pagination.scss", + "../../source/bower_components/bootstrap/scss/mixins/_pagination.scss", + "../../source/bower_components/bootstrap/scss/_badge.scss", + "../../source/bower_components/bootstrap/scss/mixins/_badge.scss", + "../../source/bower_components/bootstrap/scss/_alert.scss", + "../../source/bower_components/bootstrap/scss/mixins/_alert.scss", + "../../source/bower_components/bootstrap/scss/_progress.scss", + "../../source/bower_components/bootstrap/scss/_close.scss", + "../../source/bower_components/bootstrap/scss/_modal.scss", + "../../source/bower_components/bootstrap/scss/_tooltip.scss", + "../../source/bower_components/bootstrap/scss/mixins/_reset-text.scss", + "../../source/bower_components/bootstrap/scss/_popover.scss", + "../../source/bower_components/bootstrap/scss/_carousel.scss", + "../../source/bower_components/bootstrap/scss/utilities/_align.scss", + "../../source/bower_components/bootstrap/scss/mixins/_background-variant.scss", + "../../source/bower_components/bootstrap/scss/utilities/_background.scss", + "../../source/bower_components/bootstrap/scss/utilities/_borders.scss", + "../../source/bower_components/bootstrap/scss/mixins/_clearfix.scss", + "../../source/bower_components/bootstrap/scss/utilities/_display.scss", + "../../source/bower_components/bootstrap/scss/utilities/_embed.scss", + "../../source/bower_components/bootstrap/scss/utilities/_flex.scss", + "../../source/bower_components/bootstrap/scss/utilities/_float.scss", + "../../source/bower_components/bootstrap/scss/mixins/_float.scss", + "../../source/bower_components/bootstrap/scss/utilities/_position.scss", + "../../source/bower_components/bootstrap/scss/utilities/_screenreaders.scss", + "../../source/bower_components/bootstrap/scss/mixins/_screen-reader.scss", + "../../source/bower_components/bootstrap/scss/utilities/_sizing.scss", + "../../source/bower_components/bootstrap/scss/utilities/_spacing.scss", + "../../source/bower_components/bootstrap/scss/utilities/_text.scss", + "../../source/bower_components/bootstrap/scss/mixins/_text-truncate.scss", + "../../source/bower_components/bootstrap/scss/mixins/_text-emphasis.scss", + "../../source/bower_components/bootstrap/scss/mixins/_text-hide.scss", + "../../source/bower_components/bootstrap/scss/utilities/_visibility.scss", + "../../source/bower_components/bootstrap/scss/mixins/_visibility.scss", + "../../source/bower_components/bootstrap/scss/_print.scss", + "../../source/scss/bootstrap-override/_tables.scss", + "../../source/scss/_theme-mixins.scss", + "../../source/scss/bootstrap-override/_forms.scss", + "../../source/scss/bootstrap-override/_nav.scss", + "../../source/scss/bootstrap-override/_buttons.scss", + "../../source/scss/bootstrap-override/_breadcrumb.scss", + "../../source/scss/bootstrap-override/_type.scss", + "../../source/scss/bootstrap-override/_modal.scss", + "../../source/scss/bootstrap-override/_popover.scss", + "../../source/scss/bootstrap-override/_alert.scss", + "../../source/scss/bootstrap-override/_badge.scss", + "../../source/scss/_plugin-overrides.scss", + "../../source/scss/_animations.scss", + "../../source/scss/_user_profile.scss", + "../../source/scss/_layout.scss", + "../../source/scss/_menu.scss", + "../../source/scss/_elements.scss", + "../../source/scss/_utilities.scss", + "../../source/scss/_osfont.scss", + "../../source/scss/_chat.scss", + "../../source/scss/_app_email.scss", + "../../source/scss/_projects.scss", + "../../source/scss/_full_chat.scss", + "../../source/scss/_pricing_plans.scss", + "../../source/scss/_pipelines.scss", + "../../source/scss/_os_dropdowns.scss", + "../../source/scss/_todo.scss", + "../../source/scss/_fancy_selector.scss", + "../../source/scss/_rentals.scss", + "../../source/scss/_support.scss", + "../../source/scss/_onboarding.scss", + "../../source/scss/_top_bar.scss", + "../../source/scss/_search.scss", + "../../source/scss/_customizer.scss", + "../../source/scss/_scheme_dark.scss", + "../../source/scss/_responsive.scss" + ], + "names": [], + "mappings": "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nB,uBAAmB;YAAnB,oBAAmB;IACnB,yBAAuB;QAAvB,sBAAuB;YAAvB,wBAAuB;GACxB;EAjEL;IAmEM,iBAAgB;GACjB;CjBy8DJ;;AqB7wED;EACE,sBAAqB;EACrB,iBpBwByB;EoBvBzB,mBAAkB;EAClB,oBAAmB;EACnB,uBAAsB;EACtB,0BAAiB;KAAjB,uBAAiB;MAAjB,sBAAiB;UAAjB,kBAAiB;EACjB,8BAA2C;ECsF3C,0BpBqOkC;EoBpOlC,kBpBuIkC;EoBtIlC,iBpBgJ+B;EoB7I7B,mBpB2G6B;EgB9M3B,sJhBuX6I;EgBvX7I,8IhBuX6I;EgBvX7I,sIhBuX6I;EgBvX7I,4KhBuX6I;CmB3UlJ;;AlB/BC;EkBCE,sBAAqB;ClBEtB;;AAFD;EkBKE,WAAU;EACV,yBnBoT8B;UmBpT9B,iBnBoT8B;CmBnT/B;;AApBH;EAyBI,cnBiV6B;CmB/U9B;;AA3BH;EA+BI,gBAAe;CAChB;;AAhCH;EAoCI,uBAAsB;CAMvB;;AAIH;;;;EAEE,qBAAoB;CACrB;;AAQC;ECzDA,YpBKa;EkBLX,0BlB8Ba;EoB5Bf,sBpB4Be;CmB6Bd;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,wDpBaW;UoBbX,gDpBaW;CoBXd;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBKa;EoBJb,sBpBIa;CoBHd;;AAED;;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;;EAKI,wDpBdS;UoBcT,gDpBdS;CoBgBZ;;ADWH;ECzDA,YpBKa;EkBLX,0BlBcc;EoBZhB,sBpBYgB;CmB6Cf;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,uDpBHY;UoBGZ,+CpBHY;CoBKf;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBXc;EoBYd,sBpBZc;CoBaf;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,uDpB9BU;UoB8BV,+CpB9BU;CoBgCb;;ADWH;ECzDA,YpBKa;EkBLX,0BlBqCa;EoBnCf,sBpBmCe;CmBsBd;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,wDpBoBW;UoBpBX,gDpBoBW;CoBlBd;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBYa;EoBXb,sBpBWa;CoBVd;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,wDpBPS;UoBOT,gDpBPS;CoBSZ;;ADWH;ECzDA,epBcgB;EkBdd,0BlBuCa;EoBrCf,sBpBqCe;CmBoBd;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,yDpBsBW;UoBtBX,iDpBsBW;CoBpBd;;AAGD;EAEE,epBVc;EoBWd,0BpBca;EoBbb,sBpBaa;CoBZd;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,yDpBLS;UoBKT,iDpBLS;CoBOZ;;ADWH;ECzDA,epBcgB;EkBdd,0BlBoCa;EoBlCf,sBpBkCe;CmBuBd;;AlBnDD;EmBFE,epBQc;EkBdd,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,0DpBmBW;UoBnBX,kDpBmBW;CoBjBd;;AAGD;EAEE,epBVc;EoBWd,0BpBWa;EoBVb,sBpBUa;CoBTd;;AAED;;EAGE,epBlBc;EoBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,0DpBRS;UoBQT,kDpBRS;CoBUZ;;ADWH;ECzDA,YpBKa;EkBLX,0BlBkCa;EoBhCf,sBpBgCe;CmByBd;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,wDpBiBW;UoBjBX,gDpBiBW;CoBfd;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBSa;EoBRb,sBpBQa;CoBPd;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,wDpBVS;UoBUT,gDpBVS;CoBYZ;;ADWH;ECzDA,epBcgB;EkBdd,0BlBMc;EoBJhB,sBpBIgB;CmBqDf;;AlBnDD;EmBFE,epBQc;EkBdd,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,0DpBXY;UoBWZ,kDpBXY;CoBaf;;AAGD;EAEE,epBVc;EoBWd,0BpBnBc;EoBoBd,sBpBpBc;CoBqBf;;AAED;;EAGE,epBlBc;EoBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,0DpBtCU;UoBsCV,kDpBtCU;CoBwCb;;ADWH;ECzDA,YpBKa;EkBLX,0BlBac;EoBXhB,sBpBWgB;CmB8Cf;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,uDpBJY;UoBIZ,+CpBJY;CoBMf;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBZc;EoBad,sBpBbc;CoBcf;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,uDpB/BU;UoB+BV,+CpB/BU;CoBiCb;;ADiBH;ECZA,epBrBe;EoBsBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBxBe;CmBmCd;;ACTD;EACE,YpBpDW;EoBqDX,0BpB5Ba;EoB6Bb,sBpB7Ba;CoB8Bd;;AAED;EAEE,wDpBlCa;UoBkCb,gDpBlCa;CoBmCd;;AAED;EAEE,epBvCa;EoBwCb,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpB/Ca;EoBgDb,sBpBhDa;CoB0Dd;;AARC;;EAKI,wDpBvDS;UoBuDT,gDpBvDS;CoByDZ;;ADxBH;ECZA,epBrCgB;EoBsChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBxCgB;CmBmDf;;ACTD;EACE,YpBpDW;EoBqDX,0BpB5Cc;EoB6Cd,sBpB7Cc;CoB8Cf;;AAED;EAEE,uDpBlDc;UoBkDd,+CpBlDc;CoBmDf;;AAED;EAEE,epBvDc;EoBwDd,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpB/Dc;EoBgEd,sBpBhEc;CoB0Ef;;AARC;;EAKI,uDpBvEU;UoBuEV,+CpBvEU;CoByEb;;ADxBH;ECZA,epBde;EoBef,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBjBe;CmB4Bd;;ACTD;EACE,YpBpDW;EoBqDX,0BpBrBa;EoBsBb,sBpBtBa;CoBuBd;;AAED;EAEE,wDpB3Ba;UoB2Bb,gDpB3Ba;CoB4Bd;;AAED;EAEE,epBhCa;EoBiCb,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpBxCa;EoByCb,sBpBzCa;CoBmDd;;AARC;;EAKI,wDpBhDS;UoBgDT,gDpBhDS;CoBkDZ;;ADxBH;ECZA,epBZe;EoBaf,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBfe;CmB0Bd;;ACTD;EACE,epB3Cc;EoB4Cd,0BpBnBa;EoBoBb,sBpBpBa;CoBqBd;;AAED;EAEE,yDpBzBa;UoByBb,iDpBzBa;CoB0Bd;;AAED;EAEE,epB9Ba;EoB+Bb,8BAA6B;CAC9B;;AAED;;EAGE,epB9Dc;EoB+Dd,0BpBtCa;EoBuCb,sBpBvCa;CoBiDd;;AARC;;EAKI,yDpB9CS;UoB8CT,iDpB9CS;CoBgDZ;;ADxBH;ECZA,epBfe;EoBgBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBlBe;CmB6Bd;;ACTD;EACE,epB3Cc;EoB4Cd,0BpBtBa;EoBuBb,sBpBvBa;CoBwBd;;AAED;EAEE,0DpB5Ba;UoB4Bb,kDpB5Ba;CoB6Bd;;AAED;EAEE,epBjCa;EoBkCb,8BAA6B;CAC9B;;AAED;;EAGE,epB9Dc;EoB+Dd,0BpBzCa;EoB0Cb,sBpB1Ca;CoBoDd;;AARC;;EAKI,0DpBjDS;UoBiDT,kDpBjDS;CoBmDZ;;ADxBH;ECZA,epBjBe;EoBkBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBpBe;CmB+Bd;;ACTD;EACE,YpBpDW;EoBqDX,0BpBxBa;EoByBb,sBpBzBa;CoB0Bd;;AAED;EAEE,wDpB9Ba;UoB8Bb,gDpB9Ba;CoB+Bd;;AAED;EAEE,epBnCa;EoBoCb,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpB3Ca;EoB4Cb,sBpB5Ca;CoBsDd;;AARC;;EAKI,wDpBnDS;UoBmDT,gDpBnDS;CoBqDZ;;ADxBH;ECZA,epB7CgB;EoB8ChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBhDgB;CmB2Df;;ACTD;EACE,epB3Cc;EoB4Cd,0BpBpDc;EoBqDd,sBpBrDc;CoBsDf;;AAED;EAEE,0DpB1Dc;UoB0Dd,kDpB1Dc;CoB2Df;;AAED;EAEE,epB/Dc;EoBgEd,8BAA6B;CAC9B;;AAED;;EAGE,epB9Dc;EoB+Dd,0BpBvEc;EoBwEd,sBpBxEc;CoBkFf;;AARC;;EAKI,0DpB/EU;UoB+EV,kDpB/EU;CoBiFb;;ADxBH;ECZA,epBtCgB;EoBuChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBzCgB;CmBoDf;;ACTD;EACE,YpBpDW;EoBqDX,0BpB7Cc;EoB8Cd,sBpB9Cc;CoB+Cf;;AAED;EAEE,uDpBnDc;UoBmDd,+CpBnDc;CoBoDf;;AAED;EAEE,epBxDc;EoByDd,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpBhEc;EoBiEd,sBpBjEc;CoB2Ef;;AARC;;EAKI,uDpBxEU;UoBwEV,+CpBxEU;CoB0Eb;;ADbL;EACE,iBpBjDyB;EoBkDzB,enB9Ce;EmB+Cf,8BAA6B;CAsB9B;;AlB3FC;EkBwEE,enBiEgD;EmBhEhD,2BnBiEiC;EmBhEjC,8BAA6B;EAC7B,0BAAyB;ClB3EL;;AkBkExB;EAcI,2BnB0DiC;EmBzDjC,0BAAyB;EACzB,yBAAgB;UAAhB,iBAAgB;CACjB;;AAjBH;EAqBI,enBpFc;CmBqFf;;AAUH;ECbE,qBpBiPgC;EoBhPhC,mBpBwImC;EoBvInC,iBpBwG+B;EoBrG7B,mBpB4G6B;CmBlGhC;;AAED;ECjBE,wBpB6OiC;EoB5OjC,kBpByIiC;EoBxIjC,iBpByG+B;EoBtG7B,mBpB6G6B;CmB/FhC;;AAOD;EACE,eAAc;EACd,YAAW;CAMZ;;AARD;EAMI,mBnBkP+B;CmBjPhC;;AAIH;;;EAII,YAAW;CACZ;;AE5IH;;EAEE,mBAAkB;CACnB;;ACwBG;EACE,sBAAqB;EACrB,SAAQ;EACR,UAAS;EACT,qBAA+B;EAC/B,wBAAkC;EAClC,YAAW;EAjCf,wBAA8B;EAC9B,sCAA4C;EAC5C,iBAAgB;EAChB,qCAA2C;CAsCxC;;AAkBD;EACE,eAAc;CACf;;ADlDL;EACE,mBAAkB;E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ArBH;EAyBI,gBAAe;CAChB;;AAGH;EAGM,eAAc;EvBPhB,4BNoL6B;EMnL7B,+BNmL6B;C6B3K5B;;AALL;EvBlBI,6BNkM6B;EMjM7B,gCNiM6B;C6BtK5B;;AAVL;EAcI,WAAU;EACV,Y7BvCW;E6BwCX,0B7Bfa;E6BgBb,sB7BhBa;C6BiBd;;AAlBH;EAqBI,e7BvCc;E6BwCd,qBAAoB;EAEpB,aAAY;EACZ,uB7BjDW;E6BkDX,sB7B/Cc;C6BgDf;;AC3DD;EACE,wB9BinBsC;E8BhnBtC,mB9BuOiC;E8BtOjC,iB9BuM6B;C8BtM9B;;AAIG;ExBoBF,4BNqL6B;EMpL7B,+BNoL6B;C8BvM1B;;AAGD;ExBCF,6BNmM6B;EMlM7B,gCNkM6B;C8BlM1B;;AAfL;EACE,wB9B+mBqC;E8B9mBrC,kB9BwO+B;E8BvO/B,iB9BwM6B;C8BvM9B;;AAIG;ExBoBF,4BNsL6B;EMrL7B,+BNqL6B;C8BxM1B;;AAGD;ExBCF,6BNoM6B;EMnM7B,gCNmM6B;C8BnM1B;;ACbP;EACE,sBAAqB;EACrB,sB/BgtBsC;E+B/sBtC,e/B4sBqC;E+B3sBrC,iBhCwBuB;EgCvBvB,eAAc;EACd,mBAAkB;EAClB,oBAAmB;EACnB,yBAAwB;EzBTtB,mBN+M6B;C+B/LhC;;AAfD;EAaI,cAAa;CACd;;AAIH;EACE,mBAAkB;EAClB,UAAS;CACV;;AAMD;EACE,qB/ByrBsC;E+BxrBtC,oB/BwrBsC;EMttBpC,qBNytBqC;C+BzrBxC;;AAOC;EC1CA,YhCUa;EgCTb,0BhCkCe;C+BSd;;A9B3BD;E+BZI,YhCKS;EgCJT,sBAAqB;EACrB,0BAAkC;C/BarC;;A8BsBD;EC1CA,YhCUa;EgCTb,0BhCkBgB;C+ByBf;;A9B3BD;E+BZI,YhCKS;EgCJT,sBAAqB;EACrB,0BAAkC;C/BarC;;A8BsBD;EC1CA,YhCUa;EgCTb,0BhCyCe;C+BEd;;A9B3BD;E+BZI,YhCKS;EgCJT,sBAAqB;EACrB,0BAAkC;C/BarC;;A8BsBD;EC1CA,ehCmBgB;EgClBhB,0BhC2Ce;C+BAd;;A9B3BD;E+BZI,ehCcY;EgCbZ,sBAAqB;EACrB,0BAAkC;C/BarC;;A8BsBD;EC1CA,ehCmBgB;EgClBhB,0BhCwCe;C+BGd;;A9B3BD;E+BZI,ehCcY;EgCbZ,sBAAqB;EACrB,0BAAkC;C/BarC;;A8BsBD;EC1CA,YhCUa;EgCTb,0BhCsCe;C+BKd;;A9B3BD;E+BZI,YhCKS;EgCJT,sBAAqB;EACrB,0BAAkC;C/BarC;;A8BsBD;EC1CA,ehCmBgB;EgClBhB,0BhCUgB;C+BiCf;;A9B3BD;E+BZI,ehCcY;EgCbZ,sBAAqB;EACrB,0BAAkC;C/BarC;;A8BsBD;EC1CA,YhCUa;EgCTb,0BhCiBgB;C+B0Bf;;A9B3BD;E+BZI,YhCKS;EgCJT,sBAAqB;EACrB,0BAAkC;C/BarC;;AgCjBH;EACE,mBAAkB;EAClB,yBjC8vByC;EiC7vBzC,oBjC8vBsC;EiC7vBtC,8BAA6C;E3BJ3C,mBNgN6B;CiC1MhC;;AAGD;EAEE,eAAc;CACf;;AAGD;EACE,iBlCauB;CkCZxB;;AAOD;EACE,uBAAwD;CAUzD;;AAXD;EAKI,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,yBjCguBuC;EiC/tBvC,eAAc;CACf;;AASD;EC9CA,epBmFgE;EI9E9D,0BJ8E8D;EoBjFhE,sBpBiFgE;CmBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,epBmFgE;EI9E9D,0BJ8E8D;EoBjFhE,sBpBiFgE;CmBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,aAA0B;CAC3B;;ADoCD;EC9CA,epBmFgE;EI9E9D,0BJ8E8D;EoBjFhE,sBpBiFgE;CmBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,epBmFgE;EI9E9D,0BJ8E8D;EoBjFhE,sBpBiFgE;CmBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,epBmFgE;EI9E9D,0BJ8E8D;EoBjFhE,sBpBiFgE;CmBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,epBmFgE;EI9E9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pEkCa;EoEjCb,8BAA6B;EAC7B,mBrEDsB;EqEEtB,0BAAyB;EACzB,oBAAmB;EACnB,iBrE0BqB;EqEzBrB,mBAAgC;EAChC,iBAAgB;EAChB,0BAAsB;EACtB,gBAAe;CAUhB;;AArBH;EAeM,sBpEqBW;EoEpBX,epEoBW;CoEnBZ;;AAjBL;EAmBM,kBAAiB;CAClB;;AApBL;EAwBM,sCAAkC;EAClC,0BAAsB;EACtB,mBAAgC;CAKjC;;AA/BL;EA4BQ,0BpEQS;EoEPT,YAAW;CACZ;;AjDsFP;ECjBE,wBpB6OiC;EoB5OjC,oBpB0ImC;EoBzInC,iBpBgJ+B;EoB7I7B,mBpB6G6B;CoE9KhC;;AAGD;EhDpCE,epBcgB;EkBdd,uBkDqC0B;EhDnC5B,mBgDmCkC;CACnC;;AnE9BC;EmBFE,epBQc;EkBdd,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,0DgDoB8B;UhDpB9B,kDgDoB8B;ChDlBjC;;AAGD;EAEE,epBVc;EoBWd,uBgDY0B;EhDX1B,mBgDWgC;ChDVjC;;AAED;;;EAGE,epBlBc;EoBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;;EAKI,0DgDP4B;UhDO5B,kDgDP4B;ChDS/B;;AgDNL;EhDxCE,epBcgB;EkBdd,0BkDyC6B;EhDvC/B,sBgDuCwC;CACzC;;AnElCC;EmBFE,epBQc;EkBdd,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,0DgDwBoC;UhDxBpC,kDgDwBoC;ChDtBvC;;AAGD;EAEE,epBVc;EoBWd,0BgDgB6B;EhDf7B,sBgDesC;ChDdvC;;AAED;;EAGE,epBlBc;EoBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,0DgDHkC;UhDGlC,kDgDHkC;ChDKrC;;AgDFL;EhD5CE,epBcgB;EkBdd,uBkD6C0B;EhD3C5B,mBgD2CkC;EAClC,eAAc;CACf;;AnEvCC;EmBFE,epBQc;EkBdd,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,0DgD4B8B;UhD5B9B,kDgD4B8B;ChD1BjC;;AAGD;EAEE,epBVc;EoBWd,uBgDoB0B;EhDnB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B;EAClB,kBAAiB;EACjB,gBAAe;EACf,sBAAqB;EACrB,uBAAsB;CACvB;;AAPH;EASI,sBAAqB;EACrB,uBAAsB;EACtB,iCjFhFa;CiFiFd;;AvF9BH,oBAAoB;AwFvFpB;EACE,sBAAqB;EACrB,i0kIAAg0kI;EACh0kI,oBAAmB;EACnB,mBAAkB;CpF6kcnB;;AoF1kcD;EACE,gFAAgF;EAChF,iCAAgC;EAChC,YAAW;EACX,mBAAkB;EAClB,oBAAmB;EACnB,qBAAoB;EACpB,qBAAoB;EACpB,eAAc;EAEd,uCAAuC;EACvC,oCAAmC;EACnC,mCAAkC;CACnC;;AAED;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;EAChB,eAAc;CACf;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;EAChB,eAAc;CACf;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBAAgB;CACjB;;AACD;EACE,iBA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", + "file": "main.css" +} \ No newline at end of file diff --git a/src/main/webapp/excelTemplate/excelExample_new.mp4 b/src/main/webapp/excelTemplate/excelExample_new.mp4 new file mode 100644 index 0000000..b5b3bd6 --- /dev/null +++ b/src/main/webapp/excelTemplate/excelExample_new.mp4 Binary files differ diff --git a/src/main/webapp/i18n/en/global.json b/src/main/webapp/i18n/en/global.json new file mode 100644 index 0000000..a5912de --- /dev/null +++ b/src/main/webapp/i18n/en/global.json @@ -0,0 +1,710 @@ +{ + "dashboard" : { + "downloadToImage" : " Download To Image", + "downloadToExcel" : " Download To Excel", + "remainedIssue" : "Remained Issue", + "delayedIssue" : "Delayed Issue", + "allocatedIssue" : "Allocated Issue", + "registeredIssue" : "Registered Issue", + "unallocatedIssue" : "Unallocated Issue", + "completionIssue" : "complete Issue", + "processingRate" : "Processing Rate", + "dailyAverage" : "Daily Average", + "inProgressStatusOfProject" : "Status of projects in progress", + "progressProject" : "Progress Project", + "issueAll" : "Issue list", + "projectProgress" : "Project Progress", + "admin" : "Admin", + "progressPercent" : "Progress", + "teamMember" : "Team Member", + "assignedToMeIssue" : "Issues assigned to me", + "assignedTodayIssue" : "Issues assigned today", + "progressingIssue" : "List of pending issues", + "issueName" : "Issue name", + "managementRisk" : "Risk Management", + "updateIssueAndStatusUpdate" : "List of issues that appear to have risks in handling issues, such as frequent staff changes and frequent status changes", + "reversalStatusUpdate" : "Change the status of the reversal", + "reversalAssigneeUpdate" : "Change frequent contacts", + "division" : "Division", + "registeredByMeIssue" : "Status of issues registered by me", + "registeredTodayIssue" : "Issues registered today", + "delayingIssue" : "Pending issue", + "delayDate" : "Delay Date", + "statusOfIssues" : "Issue Count by Status", + "doesNotExistWorkflow" : "Workflow does not exist.", + "progressByMember" : "Progress by Member", + "assignedIssue" : "Assigned Issue", + "delaying" : "Delaying", + "myIssueStatus" : "Current status of my issue", + "complete" : "Complete", + "registration" : "Registration", + "assigned" : "Assigned", + "failedDashboardWidgetLookup" : "Dashboard widget lookup failed", + "failedToTotalIssueHandling" : "Total issue handling status failed", + "notSupportedImageDownload" : "Image download not supported", + "ieNotSupportedImageDownload" : "IE does not support image download.", + "overallIssueHandlingStatusPNG" : "Overall Issue Handling Status.png", + "excludeWorkspaceParticipation" : "Exclude workspace participation", + "failedToListOfPendingIssuesLookup" : "Failed to look up the list of pending issues", + "statusOfIssuesPNG" : "Issue Count by Status.png", + "failedToCheckProgressMember" : "Failed to check progress by member", + "failedToListOfIssueAllocatedLookup" : "Failed to look up the list of issues allocated to me", + "failedToListOfIssueRegisteredLookup" : "Failed to look up the list of issues I have registered", + "failedToRiskManagementIssueLookup" : "Risk management issue lookup failed", + "issueTypeStandIssues" : "Status of issues by issue type", + "workspaceExpire1" : "Your workspace", + "workspaceExpire2" : "period of use", + "workspaceExpire3" : "remain", + "workspaceExpire4" : "usage period of has expired.", + "extensionServicePeriod" : "extension of service period" + }, + + "managementWorkspace" : { + "managementWorkspace" : "Workspace Management", + "myWorkspace" : "My workspace", + "workspaceInformation" : "Workspace Information", + "serviceStatus" : "Service Status", + "numberOfUsers" : "Number of Users", + "pleaseEnterNumberOfUsers" : "Please enter the number of users.", + "inviteUser" : "Invite Users", + "invite" : "invitation", + "emailAddress" : "e-mail address", + "useStorageSize" : "Storage size", + "usageTraffic" : "Usage Traffic", + "duration" : "Duration", + "inUse" : "in Use", + "expiredUse" : "expired Use", + "projectToInvolved" : "Project to be involved", + "daysLeft" : " Days left)", + "daysLeftUnlimited" : "Ulimited", + "pay" : "Pay", + "paymentInformation" : "Payment Information", + "cardNumber" : "CardNumber", + "FirstTwoDigits" : "the first two digits", + "validity" : "Validity", + "dateOfOnesBirth" : "Date of one�셲 birth", + "exampleBirthInput" : "Please enter 6 digits for the date of birth", + "brn" : "(Business license number)", + "agreeMyPersonalInformation" : "I agree to provide my personal information to the payment service.", + "termsAndConditions" : "You need to", + "agreeToMakeThePayment" : "agree to the terms and conditions to make the payment.", + "productInformation" : "Product Information", + "paymentType" : "Payment Type", + "paymentMethod" : "Payment Method", + "paymentDate" : "Payment Date", + "monthly" : "Monthly", + "yearly" : "Yearly", + "creditCard" : "CreditCard", + "paymentAmount" : "Payment Amount", + "includesVAT" : "(Includes VAT)", + "regularPayment" : "Regular Payment", + "regularPaymentInformation" : "Regular Payment Information", + "paymentScheduledAmount" : "Payment scheduled amount", + "priceInformation" : "Price Information", + "1to10People" : "1 to 10 People", + "11orMore" : "11 or More", + "perPerson" : "1 per person", + "cancelRegularPayment" : "Cancel Regular Payment", + "updateRegularPayment" : "Change Regular Payment", + "joinStatus" : "Participation status", + "paymentCompleted" : "Payment Completed.", + + "scheduleUserWaitingToJoin" : "Schedule a user waiting to join", + "schedulePeopleWaitingToParticipate" : "If the number of users paying is reduced, you can pre-schedule people who are waiting to participate.", + "privacyPolicyAndTermsOfUse" : "Privacy Policy and Terms of Use", + "termsOfUse" : "Terms of Use", + "termsOfUse1" : "Article 1 (Objective)<br>The purpose of this Agreement is to stipulate the requirements of the rights, duties and responsibilities between the company and its members, conditions and procedures related to the use of OWL service provided by the company's Wisestone (hereinafter referred to as the \"Company\").<br> <br>Article 2 (Definitions)<br>The terms used in this Agreement are as follows:<br>(1) \"Service\" refers to the OWL service and related services available to \"members\" regardless of the terminal being implemented (including various wired and wireless devices such as PCs and mobile terminals).<br>(2) \"OWL ITS\" means a platform for registering problems with the system and recording progress that arise from working between \"members\" and members.<br>(3) \"member\" refers to a customer who accesses the company's \"service\" and enters into a service contract with the \"company\" under this Agreement and uses the \"service\" provided by the \"company.<br>(4) \"Password\" means a combination of letters or numbers designated by the \"member\" to confirm that the \"member\" is a \"member\" consistent with the e-mail address given to the \"member\" and to ensure confidentiality.<br>(5) \"Members\" refer to persons who use \"OWL ITS\" under \"members\" control, and are classified as \"business space managers\" and \"general members\" according to the authority granted by \"members\" as follows:However, when \"members\" are \"workspaces managers\", \"members\" are categorized as \"regular members.\"<br>(6) \"Workspace manager\" means a \"member\" who can use all management functions for his workspace and cancels the \"OWL ITS\" service contract.<br>(7) \"General member\" means \"members\" who use \"OWL ITS\" without special administrative authority.<br>(8) \"Account\" means an account for a service that is linked to a login \"account\" or other service created on the basis of the \"password\" and the e-mail address required by the \"member\" to use the OWL service.<br>(9) \"Workspace\" refers to a space where cooperation can be made with a service account created to use \"OWL ITS.\" The \"account\" of the \"member\" may belong to a number of work spaces.<br>(10)\"Publishing\" refers to postings, photos, videos, and various files and links in the form of information posted on \"service\" by \"members\" in using \"service.\"<br>(11) \"Product\" means a type of service selected and contracted by \"member\" in accordance with the plan designated by \"Company\" for the smooth use of \"Service\".The \"members\" option may be offered to the members as a free product that does not require payment and as a paid product that requires payment.<br>(12) \"Payment\" means that the member pays the expenses to the \"Company\" in order to use the paid function of \"OWL ITS\".<br>(13) The term \"regular payment\" refers to the method in which the usage fee is \"payed\" on the automatic payment date of each month so that the OWL ITS paid function can be used.<br>(14) \"Immediate payment\" means the \"payment\" method to add \"general members\" immediately in the middle of the payment date.<br> <br>Article 3 (Publishing and revising the terms and conditions)<br>(1) The company shall post the contents of this Agreement in the initial page of the OWL service so that the members can easily understand the contents of this Agreement.<br>(2) If necessary, the company may change this Agreement to the extent that it does not violate the relevant laws.<br>(3) If the company revises this Agreement, it shall specify the date and reason of application and notify the OWL service announcement bulletin board from 15 days before the application date. However, in the event that the terms and conditions are amended to prevent the member from being rejected, the member shall, in addition to the notice, send an e-mail to the address entered at the time of sign - up, or notify the member by electronic means such as a pop-up window or consent window 30 days prior to the application date.<br>(4) If the member did not express his or her intention to express his or her intention to express his or her intention within 30 days while the company notified or notified the member of the revised agreement in accordance with the previous paragraph, the member shall have agreed to the amended agreement.<br>(5) If the member does not agree to the amended agreement, the company shall not apply the contents of the amended agreement, and the member may cancel the service contract. However, the company may terminate the service contract in the event of special circumstances that do not apply the existing terms and conditions.<br> <br>Article 4 (Applications and Conditions and the Rules)<br> Matters not specified in this Agreement shall be interpreted and applied in accordance with the provisions of the Telecommunications Framework Act, the Telecommunications Business Act and other related statutes, the purpose of this Agreement and the general practice of the same industry.<br><br>Article 5 (Confirmation of service contract) <br>(1) The OWL service contract is concluded by the company's consent after the person who intends to become a member agrees to the terms of this Agreement, registers the e-mail address and password, and submits a sign-<br>(2) The email address registered as an account cannot be changed.<br>(3) You can use the service by adding more members and applying/paying for additional service period at any time until the service is explicitly cancelled after signing up.<br>�몺 The functions available after the expiration of the service contract are limited in some ways, and the service use information will be deleted after one month.<br>(4) The company may modify, suspend or change some or all of the services provided for free in accordance with the company's policy and operation needs, and shall not compensate the members separately unless otherwise stipulated in the relevant laws.<br>(5) The company may cancel the service contract after it has failed to accept the application in any of the following subparagraphs:<br>�몺 In case a member whose service contract has been cancelled by the company pursuant to Article 10 paragraph 3 of this Agreement applies for membership registration<br>�몼 In case of using other people's personal information<br>�몾 In case of false information or information provided by the company as required<br>�몿 In case of violation of other relevant laws or the criteria set by the company, such as detailed guidelines<br> <br>(6) The company can defer the creation of an account by the applicant for membership in any of the following subparagraphs:<br>�몺 Where there is no real room for the provision of service facilities<br>�몼 If there is a technical problem with the provision of the service<br>�몾 In case the company acknowledges that it is financially and technically necessary<br> <br>Article 6 (Management of member information)<br>(1) The member shall be responsible for managing the member's account and password and shall not be allowed to use it by a third party.<br>(2) In the event the member's account and password are stolen or recognized as being used by a third party, the member shall immediately notify the company and follow the company's instructions.<br>(3) In the event of a previous protest, the company shall not be held liable for damages caused by the member's failure to comply with the company's instructions even if the member did not notify the company of such fact.<br>(4) The members can access and modify their personal information at any time through the account management function within the OWL service. The company shall not be held liable for any disadvantages caused by the members' failure to properly modify their information.<br> <br>Article 7 (Company obligation)<br>(1) The company strives to faithfully implement measures such as maintenance, inspection, or restoration of OWL service and security-related facilities to comply with continuous and reliable service provision.<br>(2) The company does not send commercial advertising e-mails or notification messages for which the members have not agreed to receive.<br>(3) The company does not leak or distribute the members' personal information that it has learned regarding the provision of OWL services to third parties without their consent. Other matters concerning the protection of the members' personal information shall follow the Information and Communications Network Act and the \"Personal Information Processing Policy\" separately set by the company.<br><br>Article 8 (Mission of Members)<br>(1) The members shall not commit any of the following acts.<br>�몺 Registration of false information when applying for membership or changing member information<br>�몼 for the information of others<br>�몾 Changes to information posted by the company<br>�몿 Send or post information (computer programs, etc.) other than the information specified by the company.<br>�뫀 An act to violate the intellectual property rights of the company and other third parties, including those of the company and other third parties<br>�뫁 An act to defame or disrupt the company and other third parties<br>�뫂 Disclosure or posting of information against obscene or violent messages, burns, sounds and other forms of information to OWL service<br>�뫃 An act to use OWL services for profit without the consent of the company<br>�뫅 An act to collect, use, or provide information of other service users to others without permission<br>�뫆 Copy, modify, distribute, sell, transfer, loan, security or otherwise replicate, disassemble, or otherwise modify OWL services, such as reverse engineer or attempt to extract source code.<br>�뫇 An act to access OWL services using a method other than the company's guidance<br>�뫉 An act to create and preoccupy OWL subdomain that is not related to yourself and thus prevent other people from using OWL service<br>�뫊 An act to transfer or give or mortgage one's rights to use OWL services and other service contract status to another person<br>�뫋 other illegal or unjust conduct<br> <br>(2) If the member fails to comply with the relevant statutes, these terms and conditions or the \"detailed guidelines\", the company may investigate the member's violation, suspend or suspend the member's use of OWL services, or limit the member's re-enrollment. The member shall be responsible for the loss of information caused by such cancellation.<br>(3) If there is no record of the members logging in or accessing the service during the period specified in the related statutes, the company can sell or store your information separately after notification by the member's registered OWL account e-mail address or other valid means. As a result, the service contract may be canceled if there is insufficient information necessary for the use of OWL service.<br>(4) The member shall be obliged to pay the company-set charges in exchange for the use of the paid service, and shall assume all responsibilities to the member other than for the company's negligence or reasons recognized by the company for the failure to pay the fee.<br> <br>Article 9 (Changes and suspensions of services)<br>(1) The company does its best to provide OWL services 24 hours a day, 365 days a week. However, the service provision may be temporarily suspended due to regular or temporary inspection or other significant reasons for maintaining or maintaining the equipment. In such a case, the service supply screen will be notified in advance. If OWL service is interrupted for unforeseen reasons, the company strives to recover the service as soon as possible as it identifies the situation.<br>(2) The company can change all or part of the OWL service according to the operational and technical needs and notify the members of the service by posting it on the OWL service initialization screen or in the notice box before service change or suspension. In addition to the notification, the member sends an e-mail to the registered e-mail address when he or she subscribes to the member, and notifies the member 30 days before the application date through the notification pop-up window or consent window.<br>(3) The company may stop providing OWL services in the following cases:<br>�몺 In case there is a concern that normal service may be disrupted, such as national emergency, service facility failure, and a sudden increase in service use<br>�몼 In case it is virtually impossible for the company to provide services for unavoidable reasons such as natural disasters<br>�몾 In case the primary communication service provider as defined in the Telecommunications Business Act has stopped the telecommunication service<br> <br>Article 10 (transfer of customer data due to system improvement)<br>(1) In the event of an inevitable situation, such as large-scale system improvement, the company can transfer the customer's data stored in the existing system to the new system without the customer's consent or application procedure to provide the service.<br> <br>Article 11 (Service Revocation)<br>(1) Termination of service subscription includes termination by the member's application for service cancellation and termination by the company's authority.<br>(2) The member may apply for a service cancellation using the menu provided in the OWL service at any time, and only in the event of a workspace cancellation is processed according to the following subparagraphs<br>�몺 You can decommission a workspace only by the manager of that workspace.<br>�몼 Regular payment delays will be automatically cancelled when a work space with paid functions is contracted.<br>(2) The company swiftly processes applications for cancellation of the service contract as provided under the relevant laws. However, for regular payments with a monthly payment cycle set, the contract termination is processed according to each of the following. <br>�몺 If it is monthly, the service contract cancellation will be processed on the regular payment date of the month.<br>�몼 If the member's application date for service contract is before the regular settlement date of the month, the member's contract cancellation is processed after the remaining period of use is exhausted. And during the remaining period of use, members can use OWL service normally.<br>(3) A member using paid service shall delete the postings he/she has written in the OWL service before leaving the OWL service. However, all postings will be automatically deleted when the work space opened by the member is canceled.<br>(4) If a member of a general member withdraws from a member without deleting the postings, the postings remain in the OWL service workspace and should be checked carefully before leaving.<br>(5) When the service contract is terminated, all information of the member is deleted except in case the member's specific information is kept in accordance with the relevant statutes and privacy policy.<br>(6) If a member violates Article 8 paragraph 1 of this Agreement, the company may terminate the service contract for the member concerned as a serious violation. In this case, the company will notify the member's OWL account email address by filling in the reason and details of the withdrawal before processing.The member may raise an objection within 30 days of receiving the company's notification, and the company resumes the service contract with the member if the member's objection is recognized as legitimate.<br>Article 12 (Article of data)<br>(1) In principle, the data of a member whose service contract expires shall be kept for one month from the expiration date, and the data will be deleted if the company does not purchase products with a period of one month.<br>(2) The data of the members using the free service are deleted immediately after the service cancellation.<br>(3) In the following cases, the data of a member whose service contract expires or has been canceled may be kept.<br>�몺 In case it is deemed necessary for the company to keep information for a certain period of time in order to verify the history, such as the membership fee for cancellation of subscription<br>(4) Among the data generated by the service use, the job log will be kept for six months and the previous one will be automatically deleted.<br> <br>Article 13 (Transfer of Information)<br>(1) With the consent of the members, the company can send new functions and useful information to the members through e-mail or text message registered by the members.<br>(2) The company may send the necessary forwarding information, such as expiration date of the service period and notice of termination, to the members regardless of the members' consent.<br> <br>Article 14 (Stop using the service)<br>(1) In the event a member violates his or her obligations under this Agreement or interferes with the normal operation of OWL services, the company may request improvement and, if not, stop using the service without prior notice.The company may resume the service if it believes that the reasons attributable to the members have been resolved.<br>(2) OWL service suspension period is included in the OWL service delivery period.<br> <br>Article 15 (Description of the product)<br>(1) The OWL service product is applied to the work space generated by the members for cooperation with other members. The product can be purchased by a member with administrator rights.<br>(2) When a member creates a work area, he or she can join FREE (free experience) and if the conditions of the free product exceed the limit of the number of members and the capacity of the work area, he or she can purchase a paid product to solve the restriction on the service use.<br>(3) Information on the types and prices of products provided by the company is posted on the service-provided Internet site at(www.owlsolution.io)<br> <br>Article 16 (Contracts of Items)<br>(1) The contract for the product is signed when the product is settled using the specified payment method and the product is applied by a \"manager\" among the members of the workspace.<br>(2) The work area can be used from the time the company approves the application for the use of the product. This time means that you have settled a paid product and converted it.<br>(3) The application for a change to a paid product will be made as soon as the payment is completed.<br>(4) You can't change a paid product for free.<br> <br>Article 17 (Calculation of charges)<br>The billing date of the OWL service fee is when the company approves the service application.<br>(1) The calculation of the daily rate will be 1 day from 00:00 to 24:00 and if the start or end of the service is 1 day, this will be considered 1 day.<br>(2) When applying for the paid service function of OWL service, the member may select only the monthly or annual payment method.<br>�몺 Charges will be set according to the number of users when paying for a paid service.<br>�몼 The paid service can be used by activating members within the number of paid users.<br>�몾 Payment can be made by adding a user while using the paid service. You can use the service immediately by paying for the days remaining until the previous regular payment date and the number of additional users requested.Immediate payment is a one-time payment, which automatically reflects the number of users added to the next regular payment after the payment.<br> <br>Article 18 (Cash Refund)<br>(1) OWL services are prepaid and charges are not refundable unless required by law. However, you can apply for and process a refund according to each of the following subparagraphs:<br>�몺 The cancellation will be applied on the day of service subscription when a cancellation request.<br>�몼 When requesting the service cancellation of the annual prepaid rate, 10% of the total used amount (calculated as normal value) will be deducted from the amount corresponding to the remaining number of days after the cancellation date, before refunding.<br>�몾 The refund amount will be paid in cash to the account designated by the member when applying for the refund.<br>�몿 The refund of the cancellation fee shall be paid within 15 days of the cancellation date.<br> <br>Article 19 (Damage Compensation)<br>(1) In the event a member suffers loss of service use due to the company's deliberate or serious negligence in relation to the company's service provision, the member can receive proper compensation and compensation.In the event of a claim for damages, an application shall be made in writing, stating the reason, amount and calculation basis for the claim.<br> <br>Article 20 (Article 20)<br>(1) In case service cannot be provided due to natural disasters, wars and other force majeure<br>(2) In case damages occur due to the main communication service provider's failure to stop or provide telecommunication services normally<br>(3) In case the member's service use is impaired or damaged due to reasons attributable to the member<br>(4) In case damages occur due to inevitable reasons such as repair, replacement, regular inspection, and construction of service facilities<br>(5) The members shall not be held liable for damages caused by transmission, storage or inquiry of obscene materials, indecent contents, defamation due to false facts, illegal copying, and other intellectual property rights infringement, national secrets infringement, harmful media for young people.<br>(6) A facility failure, such as a network, disrupts service use or causes data loss or errors before storage storage is stored.<br>(7) In case of abnormally stored data. However, \"normally stored data\" means that the data is transferred by the member and stored normally in the storage without any increase in capacity or changes in properties.<br>(8) In case a member's mistake or insufficient understanding of the service has resulted in damages to the member<br>(9) The company shall not be held liable for the cancellation of the service contract, modification of the product, or loss of data due to the cancellation of the user's or work space.<br>(10) In case a member discloses his/her ID/password to others or the member's ID/password is exposed due to poor management.<br>(11) In order to provide smooth service, the service can be temporarily suspended after being notified in advance of regular or emergency inspections, and thus the damages caused by failure to use the service are exempted.<br>(12) The company is not obliged to intervene in disputes arising from the intermediation of services between the members, the members' companies concerned, or between third parties, and is not responsible for any damages resulting from such disputes.<br> <br>Article 21 (Compliance Act and Related)<br>(1) The company and the members shall exert their best efforts to resolve disputes arising in connection with the service.<br>(2) Matters not specified in the company's policy or service agreement shall be interpreted in accordance with the provisions of the Telecommunications Business Act, the Act on Promotion of Information and Communication Network Utilization and other related statutes, the purpose of these terms and conditions, and the general practice of the same industry.<br>(3) In the event that the dispute over the use of the service between the company and the members has not been settled amicably, the jurisdiction of the related litigation shall be the court responsible for the location of the company's main office.<br>�� Implementation date: November 9, 2018", + "workspaceUserManagement" : "Workspace User Management", + "numberOfParticipants" : "Number of participants", + "participation" : "Participation", + "waitForParticipation" : "Wait for participation", + "withdrawal" : "Withdrawal", + "canParticipate" : "Can participate", + "installingManagerServerAddress" : "(Manager installation server address)", + "failedToSelectWorkspaceInformation" : "Failed to view the workspace information you manage", + "failedToPaymentInformation" : "Failed to check payment information", + "completedPayment" : "Payment completed", + "failedPayment" : "Payment failed", + "cancelTheRegularPaymentReceive" : "Would you like to cancel the regular payment? \nYou will receive a refund within seven days, excluding usage charges.", + "failedToCancelPayment" : "Failed to cancel payment", + "failedToModifyWorkspaceName" : "Failed to modify workspace name", + "failedToRegularPaymentChange" : "Regular payment change failed", + "failedToParticipationStatusChange" : "Failed to change participation status", + "failedToSelectWorkspaceFullUserList" : "Failed to look up workspace full user list" + }, + + "issue" : { + "issueType" : "Issue Type", + "managementIssue" : "Issue Management", + "createIssue" : "Create Issues", + "issueStatus" : "Issue status", + "issueNumber" : "Issue number", + "issueContent" : "Issue content", + "issueTitle" : "Issue Title", + "requireIssueTitle" : "Please enter an issue title.", + "issueList" : "List of issues", + "summaryIssueActivity" : "Summary of Issue Activity Details", + "modifyIssues" : "Modify Issues", + "continueCreateIssue" : "This screen will continue to generate issues.", + "initializedAssigneeCustomField" : "When you change a project, the value of the person in charge, custom field is initialized.", + "setUpUsersParticipatingInProject" : "Set up the users who are participating in the project.", + "initializedIssueStatus" : "If you change the type, the user-defined field, issue state is initialized.", + "clickToSelectDate" : "Click to select a date.", + "notIssueTypeCustomFields" : "There are no user-defined fields associated with issue type.", + "attachOnlyFiles" : "You can attach only the hwp, jpg, png, txt, pptx, ppt, pdf, xlsx, docx, zip, gif, jpeg, doc, tif, bmp, wmv, avi, mp4, mkv, mov files.", + "registerExcelIssues" : "Register for Excel Issues", + "videoExample" : "Video Example", + "writeWaring" : "the art of writing", + "pleaseEnterIssueName" : "Enter issue name to search.", + "selectProjectAndIssueTypeDownloadExcel" : "Select Project, issue type to download Excel in the corresponding form.", + "settingTableDisplay" : "table display settings", + "deleteIssue" : "Delete Issue", + "wantToDeleteSelectIssue" : "Are you sure you want to delete the selected issue? Deleted issues cannot be recovered.", + "failedToSaveFieldConditions" : "Failed to save search field conditions", + "failedToGetSearchFieldCondition" : "Failed to get search field condition", + "failedIssueLookup" : "Issue lookup failed", + "selectionCheck" : "Check for selection", + "selectIssueToChangeStatus" : "Select an issue to change its status.", + "notHaveDeletePermissionExistsAnIssue" : "An issue exists that does not have delete permission.", + "failedToIssueTypeListLookup" : "Failed to look up issue type list", + "failedToPriorityListLookup" : "Failed to look up priority list", + "failedToCriticalListLookup" : "Failed to lookup criticality list", + "failedToUserDefinedFieldListLookup" : "Failed to lookup user-defined field list", + "failedToIssueTableColumnLookup" : "Issue table column lookup failed", + "capacityExceededImageFile" : "Image file capacity exceeded", + "attachedOnlyImageFiles10mb" : "Only image files under 10 MB can be attached.", + "attachedMultipleImageFiles100mb" : "If you attach multiple images at once, you can attach only up to 100MB or less.", + "limitImageFile" : "Image File Limit", + "canBeUploadedOnlyImageFiles" : "Only image files can be uploaded. - bmp, jpg, jpeg, png, tif", + "previewImage" : "Image Preview", + "nameErrorImageFile" : "Image File Name Error", + "cannotUploadFileNameSpecialCharacters" : "If the file name contains special characters (;), you cannot upload it.", + "errorFileUpload" : "Error uploading file", + "attachmentCapacityExceeded" : "Attachment capacity exceeded", + "canAttachFileUpTo100mb" : "You can attach files up to 100MB or less.", + "limitAttachmentExtensions" : "Limit attachment extensions", + "notAllowedAttachment" : "Attachments are not allowed.", + "nameErrorAttachment" : "Attachment Name Error", + "succeededIssueRegistration" : "Issue registration succeeded", + "failedIssueRegistration" : "Issue registration failed", + "failedIssueModify" : "Failed to correct issue", + "failedToProjectDetails" : "Failed to look up project details", + "failedToUserDefinedFieldListAssociatedLookup" : "Failed to lookup user-defined field list associated with issue type", + "applyTemplate" : "Apply Template", + "issueContentIsWrittenApplyTheTemplate" : "Issue content is written. Do you want to apply the template? Once the template is applied, the already created content disappears.", + "failedIssueStatusCheck" : "Moveable issue status check failed", + "failedToChangeMultipleIssueStatus" : "Failed to change multiple issue state", + "completedSavingIssueTable" : "Completed saving issue table settings", + "saveIssueTableSettingsInformation" : "Issue table settings information has been saved.", + "failedToSaveIssueTableSetting" : "Failed to save issue table settings", + "errorRemovableIssueStatusList" : "Error retrieving removable issue status list", + "errorIssueDetails" : "Error retrieving issue details", + "failedToRegisterComments" : "Failed to register comments", + "deleteComments" : "Delete Comments", + "failedToDeleteComments" : "Failed to delete comments", + "wantToDeleteTheSelectedComments" : "Are you sure you want to delete the selected comments? Deleted comments cannot be recovered.", + "failedToGetCommentListData" : "Failed to get comment list data", + "failedToAttachmentList" : "Failed to look up attachment list", + "setIssueTableDisplay" : "Set issue table display", + "columnName" : "Column name", + "area" : "Area", + "displayed" : "Displayed", + "sequence" : "Sequence", + "cannotChangedIssueTitle" : "Issue title cannot be changed.", + "selectSendIssueMail" : "Select who will send Issue mail", + "sendIssueSelectedUsers" : "Send Issue to the selected users.", + "sendMail" : "Send", + "changedHistory" : "History details of changed issues", + "noChangeHistory" : "No issue change information.", + "changedTime" : "changed Time", + "changedUser" : "changed User", + "issueReservation" : "Issue Reservation", + "issueReservationType" : "Issue Reservation Type", + "issueReservationDescription" : "You can resubmit your issue on a certain date. <br />This can be useful when you have an issue that needs to be repeated.", + "everyDay" : "every day", + "everyWeek" : "every week", + "everyMonth" : "every month", + "everyYear" : "every year", + "scheduledDate" : "Issue scheduled date", + "monday" : "monday", + "tuesday" : "tuesday", + "wednesday" : "wednesday", + "thursday" : "thursday", + "friday" : "friday", + "saturday" : "saturday", + "sunday" : "sunday", + "enterOnlyNumbers" : "Only numbers can be entered.", + "january" : "january", + "february" : "february", + "march" : "march", + "april" : "april", + "may" : "may", + "june" : "june", + "july" : "july", + "august" : "august", + "september" : "september", + "october" : "october", + "november" : "november", + "december" : "december", + "succeededIssueReservation" : "Successfully saved issue reservation", + "failedIssueReservation" : "Failed to save problem reservation", + "failedToIssueReservationDetails" : "Failed to check details for problem occurring schedule", + "succeededIssueMail" : "Issue Mail Shipment Completed", + "sentToTheSelectedUser" : "An email has been sent to the selected user.", + "failedIssueMail" : "Issue Mail Shipment Failed", + "issueVersionLookupFailed" : "Issue version lookup failed" + }, + + "project" : { + "createProject" : "Create Project", + "projectKey" : "Project Key", + "projectStatus" : "Project Status", + "projectType" : "Project type", + "projectAdmin" : "Project Manager", + "projectTeam" : "a project team", + "modifyProject" : "Modify Project", + "settingCustomFields" : "Set custom fields", + "selectCustomField" : "Select a custom field", + "availableFields" : "Available fields", + "inUseField" : "Field in use", + "pleaseEnterProjectName" : "Please enter a project name.", + "deleteProject" : "Delete Project", + "wantToDeleteSelectProject" : "Are you sure you want to delete the selected project? Deleted projects cannot be recovered.", + "notHaveDeletePermissionExistsProject" : "A project does not have delete permission exists.", + "failedToProjectListLookup" : "Project list lookup failed", + "failedProjectCreation" : "Project creation failed", + "saveCompleteFieldManagement" : "Field Management Save Complete", + "saveUserDefinedFieldAndIssueTypeConnection" : "User-defined fields and issue type connection information have been saved.", + "failedToSaveFieldManagement" : "Failed to save field management", + "failedToModifyProject" : "Failed to modify project", + "failedToProjectDetails" : "Failed to look up project details", + "failedToProjectMember" : "Project member lookup failed", + "failedToProjectKeyPattern" : "Invalid project key input value.", + "limitNameToSpecialCharacters" : "The project name cannot contain special characters." + }, + + "managementStatus" : { + "managementStatus" : "Status Management", + "createStatus" : "Create Status", + "issueStatusName" : "Issue status name", + "statusProperties" : "Status Properties", + "createIssueStatus" : "Create Issue State", + "modifyIssueStatus" : "Modify Issue Status", + "useInTheWorkflow" : "The issue status is in use in the workflow. The issue status name changes to all workflow plans that use the issue state when renamed.", + "builtInIssueStatus" : "The issue state cannot be changed.", + "pleaseEnterIssueStatusName" : "Please enter issue status name.", + "updateNotStatusProperties" : "You cannot change the status properties after creation.", + "deleteIssueStatus" : "Delete Issue Status", + "wantToDeleteSelectIssueStatus" : "Are you sure you want to delete the selected issue status? Deleted issue status cannot be restored.", + "failedToCreateIssueStatus" : "Failed to create issue state", + "failedToModifyIssueStatus" : "Failed to modify issue status", + "failedToIssueStatusDetails" : "Failed to look up issue status details", + "limitNameToSpecialCharacters" : "The issue state name cannot be a special character." + }, + + "managementWorkflow" : { + "managementWorkflow" : "Workflow Management", + "workflowName" : "Workflow Name", + "createWorkflow" : "Creating a workflow", + "modifyWorkflow" : "Modify Workflow", + "deleteIssueStatusInTheUse" : "If you delete a state that is in use, the status of the issue that is currently using the workflow changes to the status property 'Standby'.", + "statusList" : "Status list", + "insert" : "insert", + "startPoint" : "Start Point", + "endPoint" : "End Point", + "designNotCompleteWorkflow" : "Workflow design is not complete.", + "onlyOneStatusPropertyWaitIssueStatus" : "Workflow must have only one status property 'wait' issue state.", + "onlyOneStatusPropertyProgressIssueStatus" : "The workflow must have at least one status property 'Progress' issue state.", + "onlyOneStatusPropertyEndIssueStatus" : "The workflow must have at least one status property 'End' issue state.", + "pleaseEnterWorkflowName" : "Please enter a workflow name.", + "connectedIssueType" : "Connected Issue Type", + "notHaveDeletePermissionExistsWorkflow" : "A workflow does not have delete permission exists.", + "deleteWorkflow" : "Delete Workflow", + "wantToDeleteTheSelectedWorkflow" : "Are you sure you want to delete the selected workflow? Deleted workflows cannot be recovered.", + "failedWorkflowListLookup" : "Workflow list lookup failed", + "failedCreateWorkflow" : "Failed to create workflow creation", + "failedToModifyWorkflow" : "Failed to modify workflow", + "failedToWorkflowDetails" : "Failed to look up workflow details", + "failedToPutIssueStatus" : "Failed to put issue status", + "onlyOneInTheWorkflow" : "The property 'atmosphere' status issues must be there only one in the workflow.", + "removeMetastaticLine" : "removal of metastatic lines", + "removeIssueStatus" : "Remove Issue Status", + "limitNameToSpecialCharacters" : "Workflow name cannot contain special characters.", + "excludeWorkflowParticipation " : "Exclude workflow participation", + "imageDownloadNotSupported" : "Image download not supported", + "IEDoesNotSupport" : "IE does not support image download." + }, + + "support" : { + "support" : "Support", + "supportFAQ" : "Frequently Question", + "supportQNA" : "Question / Answer" + }, + + "customField" : { + "createField" : "Create Field", + "customFieldName" : "User-defined field name", + "fieldType" : "Field Type", + "createCustomField" : "Create a custom field", + "createSingleFieldList" : "Create a single selection field list", + "createMultiFieldList" : "Creating a multi-selection field list", + "defaultValue" : "Default Value", + "selectSingleFieldListHashTag" : "You must use a hashtag when you want to select a value from a single selection field list by default. ex) Target value", + "selectMultiFieldListHashTag" : "You must use a hashtag when you want to select a value in the multi-select field list by default. ex) destination #destination", + "modifyCustomFields" : "Modify Custom Fields", + "pleaseEnterUserDefinedFieldName" : "Please enter a user-defined field name.", + "deleteUserDefinedFields" : "Delete User-Defined Fields", + "wantToDeleteSelectUserDefinedFields" : "Are you sure you want to delete the selected custom field? Deleted custom fields cannot be recovered.", + "duplicateInputValue" : "Duplicate Input Value Notification", + "alreadyAddedValue" : "The value entered is already added.", + "failedToCreateUserDefinedFields" : "Failed to create user-defined fields", + "failedToModifyUserDefinedFields" : "Failed to modify user-defined fields", + "failedToDetailUserDefinedFields" : "Failed to lookup user-defined field details", + "limitNameToSpecialCharacters" : "User-defined field names cannot be entered with special characters.", + "emptyInputValue" : "Confirm Input Value Notification", + "emptyAddValue" : "No value entered." + }, + + "managementType" : { + "managementIssueType" : "Issue Type Management", + "createIssueType" : "Create issue type", + "modifyIssueType" : "Modify issue type", + "issueTypeName" : "Issue type name", + "enterIssueTypeName" : "Please enter issue type name.", + "managementType" : "Type Management", + "createType" : "Create Type", + "typeName" : "Type name", + "modifyType" : "Modify Type", + "template" : "Template", + "registerAnIssueTemplate" : "Can be used in the content field when you pre-populate a template to register an issue.", + "updateWorkflowIssueStatusStandby" : "If you change a workflow and the state does not exist in the workflow that you want to change, the status of the issue changes to the status property 'Standby' state.", + "notHaveDeletePermissionExistsIssueType" : "An issue type exists that does not have delete permission.", + "deleteIssueType" : "Delete issue type", + "wantToDeleteSelectIssueType" : "Are you sure you want to delete the selected issue type? Deleted issue types cannot be recovered.", + "failedToIssueTypeList" : "Issue type list lookup failed", + "failedToCreateIssueType" : "Issue Type Creation Failed", + "failedToModifyIssueType" : "Issue type modification failed", + "failedToDetailIssueType" : "Issue type details lookup failed", + "limitNameToSpecialCharacters" : "Issue type name cannot enter special characters." + }, + + "users" : { + "temporaryPassword" : "temporary password", + "guidanceTemporaryPassword" : "Temporary password issue guidance", + "pleaseMakeSureChangeYourPassword" : "We will issue you a temporary password to change your OWL ITS account password.Please make sure to change your password after logging in.", + "phoneNumber" : "Phone Number", + "modifyInformation" : "Update User Information", + "updatePassword" : "Update Password", + "setEmailNotificationTime" : "Set Email Notification Time", + "selectProfileShowOther" : "Please select a profile to show to others.", + "membershipWithdrawal" : "Membership Withdrawal", + "signOutNotRecovered" : "When you sign out, all data in the workspace disappears and cannot be recovered.", + "existingPassword" : "Existing Password", + "newPassword" : "New Password", + "confirmNewPassword" : "Verification New Password", + "checkPassword" : "Check Password", + "join" : "Free Use", + "enable" : "Enable", + "disable" : "Disable", + "withdrawal" : "Withdrawal", + "usedAccount" : "Do you already have an account?", + + "joinOWLITSMembership" : "OWL ITS Sign Up", + "enterAnEmail" : "Please enter an email.", + "enterAnPassword" : "Please enter your PIN number.", + "pleaseSelectFile" : "Please select a file", + "invalidEmailFormat" : "Email format is invalid.", + "enterYourEmailAddress" : "You will be notified by the email you entered. Please enter your e-mail address.", + "least4CharactersPassword" : "Password must be at least 4 characters long.", + "enter4CharactersPassword" : "Please enter a password with at least 4 characters.", + "differentPassword" : "Password is different.", + "contactedEnterPhone" : "Please enter a phone number that can be contacted.", + "enterTheNameInWorkspace" : "Enter the name of the built-in workspace.", + "agreePrivacyPolicy" : "I agree to the privacy policy.", + "privacyPolicy" : "Privacy Policy", + "privacyPolicy1" : "Privacy Policy<br><br>Wisestone (hereinafter �쏞ompany��) takes protecting its customer�셲 personal data very seriously, and abides by the Act on the Promotion of Information and Communication Network Utilization and Information Protection, etc. Through the disclosure of this Privacy Policy, the company shall inform you of the methods by which your personal information is being used and its purpose, as well as the measures that are taken to protect such information. This Privacy Policy may be amended in accordance with the amendment of related laws or the company�셲 internal policy. The company shall notify you through announcements upon update so that you can easily understand the content and reason of amendment.<br>Article 1 (Collection of Personal Information and Purpose of Use)<br>In order to provide the various features of the OWL solution site and OWL-ITS (hereinafter �쏰WL Services��) in accordance with the Terms of Use to which the customers have agreed, Company shall collect and store the following personal information (hereinafter referred to as a whole as �쏱ersonal Information��):<br>(1) Required Fields<br>�몺 Items to be collected when registering for membership: E-mail, Name, Company Name<br>(2) Optional Fields<br>�몺 Picture<br>(3) Information about various transactions and personal tendencies generated and collected during the use of Services or the business process<br>�몺 Records of services use, access log, cookies, IP connection information, payment records, poor usage records<br>(4) Purpose of collection and use<br>�몺 Counseling activities in response to inquiries about services (products)<br>�몼 Membership system service use: Identity confirmation, identity verification, preventing of wrongful and non-approved usage, confirming intention of registration, record keeping for the purpose of dispute resolution, managing petitions such as complaints, and delivering public notices<br>�몾 Settling fees pursuant to service provision and contract implementation in relation to service provision, and providing customized services (billing emails, payment, etc.)<br>�몿 Providing services in accordance with statistics for developing new services (products), specialization, advertising events and offering opportunities to participate, verifying the validity of the services, and understanding statistics on access frequency or use of services by members<br>Article 2 (Personal Information Collection Method)<br>Personal information shall be collected only if Users agree through membership registration, user information modification, telephone, email, seminar/questionnaire/registration to events, inquiry and consultation, affiliate inquiries and other information generating tools.<br>Article 3 (Installation and operation of automatic collection device of personal information and its rejection method)<br>Company may install and operate a device that automatically collects �쐁ookies�� and website usage records (hereinafter �쐓tatistical data��) that store and find customer information whenever customers use the website.<br>(1) What is a cookie?<br>A cookie is a small amount of information that a website sends to a customer�셲 web browser. When a customer accesses a web page, Company�셲 computer may read the contents of the cookies in the customer�셲 browser, and thus offer services without any further input required such as the name of the connection by searching additional information about the customer in the customer�셲 computer. Customers are able to decide whether to share cookies. Customers may select options concerning cookies in �쏷ools��> �쏧nternet Options Tab�� at the top of their web browser; they may choose to enable all cookies, get a notification when cookies are installed, or disable all cookies. However, if all cookies are disabled, customers may have difficulty in using the services or in providing services.<br>(2) What is statistical data?<br>Statistical data is information that is stored in a specific area in a computer or a terminal when using services such as on the web page or on mobile phones, and is periodically transmitted to Company�셲 server. Such information is as follows:<br>�몺 Service usage statistics (Network environment in cases of call connection, call cuts, call failure, download execution errors, connection failures and connection time in cases of wired/wireless Internet, etc.)<br>�몼 Usage pattern information (customer�셲 menu navigation path, mostly used services, service use frequency, records of visits, etc.)<br>(3) Operating Company�셲 cookies and statistical data<br>Company operates cookies and statistical data for the convenience of customers. Company�셲 purpose of use concerning cookies and statistical data is as follows:<br>�몺 Track the traces of contents that customers have looked at with interest and provide personalized services during the next visit<br>�몼 Analyze the frequency and duration of registered users and non-registered users to identify customers�� preferences and areas of interest, and analyze the registered users�� habits to use them as a basis during target marketing in case of service reorganization<br>�몾 Announce usage period while using paid services<br>�몿 Facilitate uploading posts for inquiries and consultation<br>Article 4 (Using Personal Information and Sharing it with a Third Party)<br>(1) Company shall use and share the personal information of its customer within the scope of the �쏯otice of Collection and Use of Personal Information�� in the membership application form, Terms of Use, and Privacy Policy, and shall not use or provide it beyond such scope. In particular, Company shall use and provide personal information with the following cautions:<br>�몺 Affiliate Relationship<br> Company may provide or share its customers�� personal information with its affiliates for better service. In this case, Company shall individually notify the relevant customers in advance concerning the identify of the affiliates, the nature of items of personal information shall be shared or provided, the reason why personal information should be shared or provided, and the method and period of storage and management. Customers shall be notified through electronic means, telephone, written, fax, or mail, and if such customers were to not agree, personal information shall not be shared or provided to the affiliate.<br>(2) In order to implement contracts for the provision of services, Company may collect and use personal information without the consent of its customers if it is difficult for Company to obtain a usual consent for technical or economic reasons.<br>(3) Pursuant to the provisions of relevant laws and regulations, it is possible to share personal information without the consent of users in the following cases:<br>�몺 When necessary for the settlement of fees for the provision of services<br>�몼 When it is processed and provided in manner unrecognizable by a specific individual and required for statistical writing, academic research or market research<br>�몾 When there are special regulations in the law such as in the Act on Real Name Financial Transactions and Confidentiality, Credit Information Use and Protection Act, Framework Act on Telecommunications, Telecommunications Business Act, Local Tax Act, Consumer Protection Act, Bank of Korea Act and Criminal Procedure Act<br>�몿 When there is a request from an investigating agency in accordance with procedures and methods set forth in relevant acts for the purpose of investigation<br>�뫀 If customers agree in advance<br>Article 5 (Entrusting the Personal Information Process)<br>(1) In order to facilitate business, such as providing customer convenience and better services, Company may entrust collection, storage, processing, use, provision, management, and destruction (hereinafter �쐏rocessing��) of customers' personal information to an external professional company.<br>(2) When Company entrusts the processing of customers�� personal information to an external professional company, the details of the entrusted business and the trustee are shown in the following table:<br><Status of Provision and Entrustment of personal information to third party><br>Trustee Nice Information & Telecommunication<br>Entrusted Business Credit card payment<br>Period of Retention and Use Upon membership withdrawal or termination of Entrustment Contract<br>(3) In principle, Company shall not entrust the processing of personal information for purposes other than providing services other than what the customer has agreed to. However, if such need arises, the customer shall be informed of the details of the entrustment services and the trustee, and shall be asked whether he/she gives his/her consent.<br>Article 6 (Use and Storage Period for Personal Information)<br>The personal information that customers agreed to share shall be destroyed without delay once the purpose of collection and usage is reached, provided, however, when it is necessary to preserve it in accordance with laws or internal policies.<br>(1) Membership information may be retained during one (1) year after membership withdrawal in order to minimize damage<br>(2) If the retention period is notified in advance and the consent is obtained, the retention period can be retained.<br>(3) The following table lists the personal information the company keeps pursuant to the statutes and the corresponding statutes.<br>preservation items: records of contracts or contract withdrawal, etc.<br>Evidence Act: Consumer Protection in Electronic Commerce, etc.<br>Retention Period: 5 Years<br>preservation items: records of payment and supply of goods, etc.<br>Evidence Act: Consumer Protection in Electronic Commerce, etc.<br>Retention Period: 5 Years<br>preservation items: records of consumer complaints or dispute handling<br>Evidence Act: Consumer Protection in Electronic Commerce, etc.<br>Retention Period: 3 years<br>preservation items: records of display/advertising<br>Evidence Act: Consumer Protection in Electronic Commerce, etc.<br>Retention Period: 6 Months<br>preservation items: books and vouchers for all transactions specified by the tax law<br>the National Tax Act<br>Retention Period: 5 Years<br>Retention items: records on electronic financial transactions<br>Code of Evidence: Electronic Financial Transactions Act<br>Retention Period: 5 Years<br>Retention items: Service visit history<br>Code of Evidence: Communications Secrets Protection Act<br>Retention Period: 3 Months<br>(4) The company divides the customer's membership account into user accounts and dormant accounts to protect the customer's personal information. If OWL service does not have login or usage details for one year, it is divided into a dormant account to protect the customer's personal information and does not provide the customer's information to its affiliates (partners agreed to by a third party).<br>Article 7 (Putting procedures and methods of destruction of personal information)<br>(1) The customer's personal information is transferred to a separate database (a separate document box in case of paper) for a certain period of time and then destroyed after obtaining consent from the customer.<br>(2) Personal information printed on a piece of paper is destroyed by shredding it with a shredder or incineration, and personal information stored in electronic file forms is deleted using a technical method in which records cannot be reproduced.<br>Article 8 (Customer's rights and methods of exercise)<br>(1) The customer (the legal representative for those under 14 years of age) can access or change the customer's personal information within the OWL service at any time. The customer can request the company to withdraw consent or withdraw from the OWL service for personal information collection and utilization of the customer's personal information under the terms of the service.<br>(2) For customers who wish to access or edit their online subscription information, click \" Member Information\" on the website to view and correct it, or contact the customer center in writing, phone, or e-mail, and we will take action without delay.<br>(3) The company shall confirm the accuracy of the proxy by submitting a letter of attorney, a certificate of personal identification, and an ID card of the proxy, which can verify that the proxy has received the due authorization when the proxy visits and requests confirmation of inspection and certification.<br>(4) If a customer requests correction of a personal information error, the company will not use or provide the personal information until the correction is completed. In addition, the company shall notify the correction result to a third party immediately in case the wrong personal information has been provided to the third party.(5) The customer shall enter the latest personal information accurately and notify the company if any changes are made, and the customer shall be responsible for any changes in customer information that the company does not know because the information is incorrect or has not been notified to the company.<br>(6) In the event a customer enters information that is stolen, violated, or false, the service cancellation and membership qualification may be lost and punished according to the relevant laws, such as the Act.<br>Article 9 (Technical administrative measures for privacy)<br>In order to prevent the loss, theft, leakage, tampering, or damage to customers' personal information, the company is pursuing the following technical and administrative measures:<br>(1) technical measures<br>�몺 We take measures to prevent forgery and forgery of the connection records.<br>�몼 Personal information is managed by applying encryption technology to the level required by the relevant statutes.<br>�몾 We take measures to prevent damage caused by computer viruses by using antivirus software, and we prevent the infringement of personal information by updating the vaccine program periodically and providing the vaccine upon the sudden appearance of the virus.<br>�몿 Security devices (SSL, etc.) that send personal information safely on the network using cryptography are adopted.<br>�뫀 In preparation for external intrusion, such as hacking, POSCO E&C makes the utmost effort to secure each server by using the intrusion prevention system and vulnerability analysis system.<br>(2) administrative measures<br>�몺 The company implements and implements an internal management plan for personal information protection.<br>�몼 The company restricts access to personal information to a minimum number of employees.<br>�몾 The company limits the employees handling personal information to those who are responsible for handling personal information and updates them regularly by giving them a separate password. The company always emphasizes compliance with the company's privacy policy through frequent training to those in charge.<br>�몿 The company is not responsible for what happens due to customer error or the underlying Internet risk. Customers themselves must properly manage their email and password and take responsibility for their own privacy.<br>Article 10 (Contact of the person in charge of personal information protection)<br>The company designates the concerned departments and personal information management managers to protect the customers' personal information and to deal with complaints regarding personal information as follows.<br><Responsible for personal information protection><br>a chief officer: Jeong-Sun Lee Team Leader | an administrative officer: Yu-Jin Kim Assistant Research Engineer<br>department: Testing Solution Center Solution Developer Team<br> jslee1@wisestone.kr<br>If you need to report or consult any other privacy concerns, please contact the following agency:<br>�몺 Personal Information Infringement Reporting Center: tel 118 / email privacy@kisa.or.kr / http://privacy.kisa.or.kr<br>�몼 Accreditation Council for Information Protection Marks: tel 02-580-0533~4 / http://www.eprivacy.or.kr<br>�몾 Supreme Public Prosecutors' Office Cyber Crime Investigation Team: tel 02-3480-3571 / email cybercid@spo.go.kr / http://www.spo.go.kr<br>�몿 National Police Agency Cyber Terror Response Center: tel 1566-0112 / http://cyber.go.kr<br>Article 11 (Duty of Notice)<br>The company can modify its Privacy Policy for the purpose of reflecting changes in laws or services. If the privacy policy is changed, the company will post the change, and the changed privacy policy will take effect seven days after the date of posting. However, if there are any significant changes to your rights, we will notify you 30 days in advance of the changes.<br>�� Implementation date: November 9, 2018<br><br>", + "login" : "Login", + "logout" : "Logout", + "logInSocialAccount" : "Login as a social account", + "rememberMe" : "Keep Login in", + "findPassword" : "Find Password", + "loginFailed" : "Login failed.", + "createAccountNow" : "Create an account now!", + "forgetYourPassword" : "Lost your password?", + "incorrectEmailFormat" : "Email format is invalid.", + "sendingYouTemporaryPassword" : "We will send you a <strong class=\"text-primary\">temporary password</strong> in your e-mail.", + "pleaseEnterPassword4Characters" : "Please enter a password with at least 4 characters.", + "failedInviteMail" : "Invite mail sent failed", + "successInviteMail" : "Invite mail sent successfully", + "welcomeKakTalkMembership" : "Welcome to Kakao Talk membership", + "signUpMembershipKakTalk" : "To sign up for membership through Kakao Talk, you must choose to provide e-mail information. If you don't agree, please subscribe to another social service.", + "failedToCreateUser" : "Failed to create user", + "failedToModifyUser" : "Failed to modify user", + "failedToRetrieveIssueHistory" : "Failed to retrieve issue history information", + "proceedWithMembershipWithdrawal" : "Would you like to proceed with membership withdrawal? When you leave the membership, all data in the workspace disappears and cannot be recovered.", + "successWithdrawalFromMembership" : "Success in withdrawal from membership", + "failedMemberWithdrawal" : "Member withdrawal failed", + "completedWithdrawalFromOwlITS" : "Your withdrawal from OWL ITS has been completed.", + "failedToSelectUserDetail" : "Failed to query user details", + "notExistUserSession" : "User session does not exist", + "completedPasswordChange" : "Password change completed", + "failedPasswordChange" : "Password change failed", + "temporaryPasswordIssue" : "temporary password issue", + "failedRequestFindPassword" : "Request to find password failed", + "duplicateEmail" : "Duplicate email", + "duplicateEmailEntered" : "Duplicate email entered.", + "confirmEmailInput" : "Confirm email input.", + "emailEnteredIncorrectly" : "Email entered incorrectly.", + "noEmailEntered" : "No email entered." + }, + "notice" : { + "notice" : "Notice", + "registerNotice" : "Notice Registration", + "modifyNotice" : "Modify Notice", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedNoticeRegistration" : "Failed to register notice.", + "failedToLookupNotificationList" : "Failed to look up notification list", + "failedToModifyNotice" : "Failed to modify notice", + "failedToLookupNotificationDetails" : "Failed to look up notification details" + }, + "manageUser" : { + "manageUser" : "User Permission Management", + "manageIssueSystemPerm" : "Issue System", + "manageUserPerm" : "User", + "manageNoticePerm" : "Notice", + "manageFAQPerm" : "FAQ", + "manageQnAPerm" : "QnA", + "manageEventPerm" : "Event", + "manageGuidePerm" : "Guide" + }, + "FAQ" : { + "FAQ" : "FAQ", + "manageFAQ" : "FAQ Management", + "registerFAQ" : "FAQ Registration", + "modifyFAQ" : "Modify FAQ", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedFAQRegistration" : "Failed to register FAQ.", + "failedToLookupFAQList" : "Failed to look up FAQ list", + "failedToModifyFAQ" : "Failed to modify FAQ", + "failedToLookupFAQDetails" : "Failed to look up FAQ details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "QNA" : { + "QNA" : "QnA", + "manageQNA" : "QnA Management", + "registerQNA" : "Question Registration", + "modifyQNA" : "Modify QnA", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedQNARegistration" : "Failed to register QnA.", + "failedToLookupQNAList" : "Failed to look up QnA list", + "failedToModifyQNA" : "Failed to modify QnA", + "failedToLookupQNADetails" : "Failed to look up QnA details" + }, + "event" : { + "event" : "Event", + "manageEvent" : "Event Management", + "registerEvent" : "Event Registration", + "modifyEvent" : "Modify Event", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedEventRegistration" : "Failed to register Event.", + "failedToLookupEventList" : "Failed to look up Event list", + "failedToModifyEvent" : "Failed to modify Event", + "failedToLookupEventDetails" : "Failed to look up Event details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "guide" : { + "guide" : "Guide", + "manageGuide" : "Guide Management", + "registerGuide" : "Guide Registration", + "modifyGuide" : "Modify Guide", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedGuideRegistration" : "Failed to register Guide.", + "failedToLookupGuideList" : "Failed to look up Guide list", + "failedToModifyGuide" : "Failed to modify Guide", + "failedToLookupGuideDetails" : "Failed to look up Guide details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "inquiry" : { + "toInquiry" : "Inquiry", + "inquiryToOWL" : "Inquiry to OWL ITS", + "asap" : "I'll answer you as soon as possible.", + "inquiryGreeting" : "What can I do for you?", + "contactCompleted" : "Contact completed.", + "failedToReceiveEnquiry" : "Failed to receive enquiry." + }, + "common" : { + "urgent" : "Urgent", + "high" : "High", + "medium" : "Medium", + "low" : "Low", + "critical" : "Critical", + "major" : "Major", + "minor" : "Minor", + "trivial" : "Trivial", + "save" : "Save", + "saved" : "Saved", + "close" : "Close", + "search" : "Search", + "reset" : "Reset", + "uploadExcel" : "Upload Excel", + "create" : "Create", + "cancel" : "Cancel", + "submit" : "Submit", + "modify" : "Modify", + "dashboard" : "Dashboard", + "workspace" : "Workspace", + "project" : "Project", + "issue" : "Issue", + "setting" : "Setting", + "user" : "User", + "workflow" : "Workflow", + "updateIssueStatus" : "Change Issue Status", + "changeReason" : "Reason for change", + "failedToIssueStatusListLookup" : "Failed to look up issue status list", + "customField" : "Custom fields", + "select" : "Select", + "checkAll" : "Select All", + "unCheckAll" : "Clear All", + "send": "Send", + "selected" : "Selected", + "selectable" : "Selectable", + "password" : "Password", + "information" : "Information", + "noData" : "No Data Available", + "name" : "Name", + "status" : "Status", + "email" : "E-mail", + "few" : " a few", + "userNum" : " Count", + "selectedSearchCriteria" : "Selected search criteria", + "detailedSearch" : "Detailed search", + "type" : "Type", + "priority" : "Priority", + "importance" : "Severity", + "assignee" : "Assignee", + "register" : "Register", + "startDate" : "Start Date", + "endDate" : "End Date", + "english" : "English", + "korean" : "Korean", + "japaneseLanguage" : "Japanese", + "vietnamese" : "Vietnamese", + "add" : "Add", + "addFunction" : "Additional functions", + "downloadExcel" : "Download Excel", + "importExcel" : "Excel Import", + "registerExcelUploadIssue" : "Register Excel upload issue", + "delete" : "Delete", + "checkPurgingTargets" : "Check for purging targets", + "selectDestinationDeletion" : "Please select a destination for deletion.", + "deleteFailed" : "Delete failed", + "deleteSucceeded" : "Delete succeeded", + "content" : "Content", + "selectTarget" : "Select Target", + "period" : "Period", + "attachFiles" : "Attach Files", + "selectFile" : "Select File", + "changeDate" : "Change date", + "lastChangeDate" : "Recent Change Date", + "registrationDate" : "Registration Date", + "fullView" : "Full view", + "comments" : "Comments", + "record" : "Record", + + "noAssignee" : "No one is in charge.", + "noContent" : "No content.", + "noRecord" : "No record.", + "noComments" : "There are no comments.", + "noAttachedFile" : "There is no attached file.", + "noValueEntered" : "No value entered.", + "noValueSelected" : "No value selected.", + "writeWaring2" : "<li>The Subject column can contain up to 300 characters.</li><li>The Content column can contain up to 5000 characters.</li><li>The Project column must enter a project key.<dl><dt>The project keys can be found in the list of projects.</dt></dl></li><li>The project keys can be found in the list of projects.<dl><dt>The type name can be found in the Type list.</dt></dl></li><li>Only one of the Priority columns must be entered: Low, Normal, or High.</li><li>You must enter only one of the following columns: Low, Normal, or Critical.</li><li>The person in charge can be designated as an email.<dl><dt>To specify multiple contacts, you can register separated by #.</dt><dt>ex) wisestoneowl@gmail.com#support@wisestone.kr </dt><dt>The appropriate person should be involved in the project for the issue you are registering.</dt></dl></li><li>The start date must be in the following format:<dl><dt>Date Input Value Result 2018-11-22 10:30:00 AM O </dt></dl></li><li>Starting with J column, this is a custom field. You must enter the desired field value.<dl><dt>You can enter up to 100 characters if the custom field is a string input field.</dt><dt>If that custom field is a multi-select field, you can enter multiple values using #.</dt><dt>ex) If the option is a cat, dog, or rabbit, to determine the price of a cat and a rabbit <span class=\"fc-blue\">Cat#Rabbit</span>Must be entered as shown in. </dt></dl></li>", + "color" : "Color", + "activityLogs" : "Activity details", + "updatableStatus" : "Changeable State", + "testCase" : "Test Case", + "updateStatus" : "Change Status", + "tcmProject" : "Test Case Management Project", + "btsProject" : "Issue Management Project", + "projectName" : "Project Name", + "setParticipatingInProject" : "Set up the users who are participating in the project.", + "noUpdatedStatus" : "No status can be changed.", + "wait" : "Wait", + "progress" : "Progress", + "end" : "End", + "choose" : "Select.", + "stringField" : "String field", + "multipleSelectionField" : "Multiple Selection Fields", + "singleSelectionField" : "Single Selection Field", + "detailInformation" : "Detail Information", + "beginEnglishTheProject" : "The project key must begin with English.", + "least3Characters" : "You must enter at least 3 characters.", + "upTo10Characters" : "You can enter up to 10 characters.", + "upTo20Characters" : "You can enter up to 20 characters.", + "upTo15Characters" : "You can enter up to 15 characters.", + "upTo50Characters" : "You can enter up to 50 characters.", + "upTo100Characters" : "You can enter up to 100 characters.", + "profile" : "Profile", + "profilePicture" : "Profile photo", + "thisWeek" : "this Week", + "lastWeek" : "last Week", + "last7Days" : "last 7Days", + "thisMonth" : "this Month", + "lastMonth" : "last Month", + "last30Days" : "last 30Days", + "directInput" : "Direct input", + "pleaseEnterComments" : "Please enter comments...", + "overallIssueHandlingStatus" : "Overall issue handling status", + "emailCannotBeChanged" : "Email cannot be changed.", + "companyInformation" : "WISESTONE Co., Ltd.<br/>BRN : 220-87-50221 <span>|</span> CEO : Young-Seok Lee <br/>H.Q : 6F Namgang Bldg, 291 Gangnamdaero, Seochogu Seoul, Korea", + "companyInformation2" : "WISESTONE Co., Ltd. <span>|</span> BRN : 220-87-50221 <span>|</span> CEO Young-Seok Lee<br/>H.Q : 6F Namgang Bldg, 291 Gangnamdaero, Seochogu Seoul, Korea <!--<span>|</span> --><span>|</span> E-mail: <a href=\"mailto:supportowl@wisestone.kr\">supportowl@wisestone.kr </a><br/><small>CopyRight WISESTONE All rights reserved.</small>", + "noImage" : "There are no attached images", + "failedLanguageChange" : "Language change failed", + "notSelectedLanguage" : "Language not selected.", + "exceedsMaximumUsersWorkspace" : "Workspace Exceeds Maximum Users", + "deleteParticipatingWorkspaceReminder" : "Reminder to delete participating workplace", + "failedToUpdateParticipatingSessions" : "Failed to update participating sessions", + "disableParticipationWorkspace" : "Participation Workspace Disable Notification", + "disableParticipationWorkspaceMessage" : "You have been excluded from the workspace you are currently using.", + "alertsAboutSystem" : "About System Alerts", + "newAlert" : "We have a new alert.", + "pleaseWait" : "Please wait...", + "createIssue" : "Creating an Issue", + "updateIssue" : "Change the issue", + "deleteIssue" : "Delete Issue", + "updateTitle" : "Title has changed.", + "updateContent" : "The contents have been changed.", + "updateProject" : "The project has been changed.", + "updateSeverity" : "Severity has changed.", + "updatePriority" : "The priority has been changed.", + "updateHasStatus" : "The status has changed.", + "updateHasStatusReservation" : "The status has changed because the issue has been scheduled to occur.", + "updateWorkflowNotExist" : "The status of the issue has changed because the changed workflow does not exist.", + "updateIssueType" : "Issue type has been changed.", + "updatePeriod" : "The period has changed.", + "unspecified" : "Unspecified", + "updateAssignee" : "The representative has been changed.", + "none" : "None", + "updateAttachment" : "Attachment has been changed.", + "deleteAttachment" : "Attachments have been deleted", + "registerAttachment" : "Attachments have been registered.", + "updateCustomField" : "Custom fields have been changed.", + "updateIssueCustomField" : "Custom field option values have changed for the issue.", + "updateIssueCustomFieldType" : "The custom field type has changed the value of the custom field for the issue.", + "continue" : "To continue", + "failedToUserListLookUp" : "Failed to look up user list", + "failedToProjectListLookUp" : "Project list lookup failed", + "failedToWorkflowListLookUp" : "Workflow list lookup failed", + "title" : "Title", + "number" : "Number", + "m" : "M", + "d" : "D", + "emptyUser" : "No person is available for selection", + "emptyProject" : "No projects are available for selection." + } + + +} diff --git a/src/main/webapp/i18n/ja/global.json b/src/main/webapp/i18n/ja/global.json new file mode 100644 index 0000000..50f4972 --- /dev/null +++ b/src/main/webapp/i18n/ja/global.json @@ -0,0 +1,712 @@ +{ + "dashboard" : { + "downloadToImage" : " �궎�깳�꺖�궦�겎���궑�꺍�꺆�꺖�깋", + "downloadToExcel" : " �궓�궚�궩�꺂쨌���궑�꺍�꺆�꺖�깋", + "remainedIssue" : "餘뗣굤 �궎�궥�깷�꺖", + "delayedIssue" : "�걛兩뜰걮�걼 �궎�궥�깷�꺖", + "allocatedIssue" : "�돯�굤壤볝겍�굢�굦�걼 �궎�궥�깷�꺖", + "registeredIssue" : "�쇉�뙯�걮�걼 �궎�궥�깷�꺖", + "unallocatedIssue" : "�깱�깗�꺂���꺍 �궎�궥�깷�꺖", + "completionIssue" : "若뚥틙 �궎�궥�깷�꺖", + "processingRate" : "�눇�릤�럤", + "dailyAverage" : "1�뿥亮녑쓦", + "inProgressStatusOfProject" : "�꿱죱訝��겗�깤�꺆�궦�궒�궚�깉�겗�뤎�듁", + "progressProject" : "�꿱죱�깤�꺆�궦�궒�궚�깉", + "issueAll" : "�뀲鵝볝궎�궥�깷�꺖", + "projectProgress" : "�깤�꺆�궦�궒�궚�깉�꿱죱�럤", + "admin" : "嶸←릤��", + "progressPercent" : "�꿱죱�럤", + "teamMember" : "�긽�꺖�깲�깳�꺍�깘�꺖", + "assignedToMeIssue" : "燁곥겓�돯�굤壤볝겍�굢�굦�걼�궎�궥�깷�꺖", + "assignedTodayIssue" : "餓딀뿥�돯�굤壤볝겍�굢�굦�걼�궎�궥�깷�꺖", + "progressingIssue" : "�꿱죱訝��겗�븦窈뚣겗訝�誤�", + "issueName" : "�궎�궥�깷�꺖�릫", + "managementRisk" : "�뜳�쇇嶸←릤", + "updateIssueAndStatusUpdate" : "�졎濚곥겒�땯壤볢�끹겗鸚됪쎍�굜�졎濚곥겒�듁�뀑�겗鸚됪쎍�겒�겑, �븦窈뚣겗�눇�릤�겓�뜳�쇇誤곭킔�걣�걗�굥�겏誤뗣굢�굦�굥�궎�궥�깷�꺖�꺁�궧�깉", + "reversalStatusUpdate" : "誤녽씊鸚됪쎍", + "reversalAssigneeUpdate" : "�졎濚곥겒�땯壤볢�끹겗鸚됪쎍", + "division" : "餓뺝늽�걨", + "registeredByMeIssue" : "燁곥걣�쇉�뙯�걮�걼�븦窈뚨뤎力�", + "registeredTodayIssue" : "餓딀뿥�쇉�뙯�걮�걼�궎�궥�깷�꺖", + "delayingIssue" : "�걛兩뜸릎�겗�궎�궥�깷�꺖", + "delayDate" : "�걛兩뜻뿥", + "statusOfIssues" : "�듁�뀑�닪�궎�궥�깷�꺖�뤎力�", + "doesNotExistWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖�걣�걗�굤�겲�걵�굯��", + "progressByMember" : "�깳�꺍�깘�꺖�닪�꿱죱�럤", + "assignedIssue" : "�땯壤볝궎�궥�깷�꺖", + "delaying" : "�걛兩뜸릎", + "myIssueStatus" : "燁곥겗�궎�궥�깷�꺖�뤎力�", + "complete" : "若뚥틙", + "registration" : "�쇉�뙯", + "assigned" : "�땯壤�", + "failedDashboardWidgetLookup" : "���긿�궥�깷�깭�꺖�깋�겗�궑�궍�궦�궒�긿�깉�뀱鴉싥겓鸚길븮", + "failedToTotalIssueHandling" : "�븦窈뚦눇�릤�겎鸚길븮", + "notSupportedImageDownload" : "�궎�깳�꺖�궦���궑�꺍�꺆�꺖�깋�겘訝띷뵱�뤃", + "ieNotSupportedImageDownload" : "IE �겎�겘,�궎�깳�꺖�궦���궑�꺍�꺆�꺖�깋�겘�궢�깮�꺖�깉�걮�겲�걵�굯��", + "overallIssueHandlingStatusPNG" : "�뀲�븦窈뚦눇�릤�겗�뤎力�.png", + "excludeWorkspaceParticipation" : "璵��떃令븅뼋�겦�겗�뢿�뒥�겘�솮鸚�", + "failedToListOfPendingIssuesLookup" : "�걛兩뜸릎�겗�궎�궥�깷�꺖�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "statusOfIssuesPNG" : "�듁�뀑�닪�궎�궥�깷�꺖�뤎力�.png", + "failedToCheckProgressMember" : "�깳�꺍�깘�꺖�닪�겗�꿱죱�럤�뀱鴉싥겓鸚길븮", + "failedToListOfIssueAllocatedLookup" : "�눎�늽�겓�돯�굤壤볝겍�굢�굦�걼�븦窈뚣꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToListOfIssueRegisteredLookup" : "燁곥걣�쇉�뙯�걮�걼�궎�궥�깷�꺖�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToRiskManagementIssueLookup" : "�뜳�쇇嶸←릤�궎�궥�깷�꺖�뀱鴉싥겓鸚길븮", + "issueTypeStandIssues" : "�궎�궥�깷�꺖쨌�궭�궎�깤�닪�궎�궥�깷�꺖�뤎力�", + "workspaceExpire1" : "�걫鵝욜뵪�겗璵��떃令븅뼋", + "workspaceExpire2" : "鵝욜뵪�쐿�뼋�걣", + "workspaceExpire3" : "�뿥餘뗣굤�겲�걮�걼��", + "workspaceExpire4" : "�겗鵝욜뵪�쐿�뼋�걣繹�雅녴걮�겲�걮�걼��", + "extensionServicePeriod" : "鵝욜뵪�쐿�뼋�겗兩띌빓" + }, + + "managementWorkspace" : { + "managementWorkspace" : "�꺈�꺖�궚�궧�깪�꺖�궧 嶸←릤", + "myWorkspace" : "燁곥겗璵��떃令븅뼋", + "workspaceInformation" : "璵��떃令븅뼋�깄�젿", + "serviceStatus" : "�궢�꺖�깛�궧�듁�뀑", + "numberOfUsers" : "�깺�꺖�궣�꺖�빊", + "pleaseEnterNumberOfUsers" : "�깺�꺖�궣�빊�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "inviteUser" : "鵝욜뵪�끾떅孃�", + "invite" : "�떅孃�", + "emailAddress" : "E�깳�꺖�꺂�궋�깋�꺃�궧", + "useStorageSize" : "鵝욜뵪若백뇧", + "usageTraffic" : "鵝욜뵪�깉�꺀�깢�궍�긿�궚", + "duration" : "鵝욜뵪�쐿�뼋", + "inUse" : "鵝욜뵪訝�", + "expiredUse" : "鵝욜뵪繹�雅�", + "projectToInvolved" : "�뢿�뒥�걬�걵�굥�깤�꺆�궦�궒�궚�깉", + "daysLeft" : " 訝�鵝�)", + "daysLeftUnlimited" : "�꽒�댍�솏", + "pay" : "黎뷸툑", + "paymentInformation" : "黎뷸툑�깄�젿", + "cardNumber" : "�궖�꺖�깋�빁�뤇", + "FirstTwoDigits" : "�뎺2鵝�", + "validity" : "�쐣�듅�쐿�뼋", + "dateOfOnesBirth" : "�뵟亮닸쐢�뿥", + "exampleBirthInput" : "�뵟亮닸쐢�뿥�겘6躍��겎�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "brn" : "(雅뗦���끿빁�뤇)", + "agreeMyPersonalInformation" : "�쑍雅뷩겗�뗤볶�깄�젿�굮黎뷸툑�궢�꺖�깛�궧鴉싩ㅎ�겓�룓堊쎼걲�굥�걪�겏�겓�릪�꼷�걮�겲�걲��", + "termsAndConditions" : "榮꾣Ь", + "agreeToMakeThePayment" : "�겓�릪�꼷�걬�굦�겍�걪�걹黎뷸툑�걣�룾�꺗�겎�걲��", + "productInformation" : "�븚�뱚�깄�젿", + "paymentType" : "黎뷸툑�깙�궭�꺖�꺍", + "paymentMethod" : "黎뷸툑�뎸餘�", + "paymentDate" : "黎뷸툑�뿥", + "monthly" : "驪롦쐢", + "yearly" : "驪롥뭅", + "creditCard" : "�궚�꺃�궦�긿�깉�궖�꺖�깋", + "paymentAmount" : "黎뷸툑�뇫窈�", + "includesVAT" : "(餓섇뒥榮계깯嶸�)", + "regularPayment" : "若싨쐿黎뷸툑", + "regularPaymentInformation" : "若싨쐿黎뷸툑�깄�젿", + "paymentScheduledAmount" : "黎뷸툑雅덂츣�뇫窈�", + "priceInformation" : "堊→졏�깄�젿", + "1to10People" : "1~10雅�", + "11orMore" : "11雅뷰빳訝� ~", + "perPerson" : "訝�雅뷴퐪�걼�굤", + "cancelRegularPayment" : "若싨쐿黎뷸툑�겗�룚�굤易덀걮", + "updateRegularPayment" : "若싨쐿黎뷸툑鸚됪쎍", + "joinStatus" : "�뢿�뒥�듁�뀑", + "paymentCompleted" : "黎뷸툑�걣若뚥틙�걮�겲�걮�걼��", + + "scheduleUserWaitingToJoin" : "�뢿�뒥孃끾찣�끹겗雅덄큵", + "schedulePeopleWaitingToParticipate" : "黎뷸툑�걲�굥�깺�꺖�궣�꺖�빊�걣歷쎼굥�졃�릦,�뢿�뒥孃끾찣�듁�뀑�겓�겒�굥�깺�꺖�궣�꺖�굮�뎺�굚�겂�겍雅덄큵�걲�굥�걪�겏�걣�겎�걤�겲�걲", + "privacyPolicyAndTermsOfUse" : "�뗤볶�깄�젿�겗�눇�릤�뼶�뇺�룋�겞�닶�뵪榮꾣Ь", + "termsOfUse" : "�닶�뵪誤뤹큵", + "termsOfUse1" : "寧�1�씉(�쎅�쉪)<br>�쑍榮꾣Ь�겘�젶凉뤶폏鹽얇꺈�궎�궨�궧�깉�꺖�꺍(餓δ툔\"鴉싩ㅎ\"�겏�걚�걚�겲�걲)�걣�룓堊쎼걲�굥OWL�궢�꺖�깛�궧(OWL solution�궢�궎�깉�걡�굠�겞OWL ITS餓δ툔\"OWL�궢�꺖�깛�궧\")�겗�닶�뵪�뼟�c겎,鴉싩ㅎ�겏鴉싧뱻�겏�겗與⒴닶,獰⒴떃�걡�굠�겞縕т뻣雅뗩쟿,�닶�뵪�씉餓뜰걡�굠�겞�뎸泳싥걤�겒�겑�겗恙낁쫨雅뗩쟿�굮誤뤷츣�걲�굥�걪�겏�굮�쎅�쉪�겏�걮�겲�걲��<br> <br>寧�2�씉(若싩쑴)<br>�걪�겗榮꾣Ь�겎鵝욜뵪�걲�굥�뵪沃욁겗若싩쑴�겘轝▲겗�겏�걡�굤�겎�걲��<br>(1) \"�궢�꺖�깛�궧\"�겏�겘,若잒즳�걬�굦�굥塋��쑌(�깙�궫�궠�꺍,�맳躍��엹塋��쑌艅잏춬�겗�릢葉��쐣�꽒渶싪즳營��굮�맜��)�겓�뼟�굩�굢�걳,\"鴉싧뱻\"�걣�닶�뵪�겎�걤�굥OWL�궢�꺖�깛�궧�겏�뼟�c걲�굥獄멥궢�꺖�깛�궧�굮�꼷�뫑�걮�겲�걲��<br>(2) \"OWL ITS\"�겏�겘,\"鴉싧뱻\"�겏礪뗦닇�뱻�뼋�겎璵��떃�굮�꿔굙�겒�걣�굢�쇇�뵟�걲�굥礪섅�끹겒�븦窈뚣굮�궥�궧�깇�깲�겓�쇉�뙯�걮,�꿱죱�듁力곥굮鼇섌뙯�걲�굥�깤�꺀�긿�깉�깢�궔�꺖�깲�굮�꼷�뫑�걮�겲�걲��<br>(3) \"鴉싧뱻\"�겏�겘,鴉싩ㅎ�겗\"�궢�꺖�깛�궧\"�겓�렏泳싥걮,�걪�겗榮꾣Ь�겓�읃�겈�걤\"鴉싩ㅎ\"�겏�닶�뵪也묊큵�굮渶좂탳�걮,\"鴉싩ㅎ\"�걣�룓堊쎼걲�굥\"�궢�꺖�깛�궧\"�굮�닶�뵪�걲�굥窈㎩�㏂겗�걪�겏�굮鼇��걚�겲�걲��<br>(4) \"�슅鼇쇘빁�뤇\"�겏�겘,\"鴉싧뱻\"�걣餓섆툗�걬�굦�걼�깳�꺖�꺂�궋�깋�꺃�궧�겏訝��눜�걲�굥\"鴉싧뱻\"�겎�걗�굥�걪�겏�굮閻븃첀�걮,燁섇칳岳앲�룔겗�걼�굙\"鴉싧뱻\"�눎翁ャ걣若싥굙�걼�뻼耶쀣겲�걼�겘�빊耶쀣겗永꾠겳�릦�굩�걵�굮�꼷�뫑�걮�겲�걲��<br>(5) \"礪뗦닇�뱻\"�겏�겘,\"鴉싧뱻\"�걢�굢\"OWL ITS\"�겗�닶�뵪與⑶솏�굮餓섆툗�걬�굦,\"鴉싧뱻\"�겗嶸←릤�겗訝�,\"OWL ITS\"�굮�닶�뵪�걲�굥�끹굮�꼷�뫑�걮,\"鴉싧뱻\"�걢�굢餓섆툗�걬�굦�걼與⑶솏�겓�굠�굤,轝▲겗�겏�걡�굤\"璵��떃令븅뼋嶸←릤��\"�걡�굠�겞\"訝��닾礪뗦닇�뱻\"�겓�뙷�늽�걬�굦�겲�걲�귙걼�걽�걮,\"鴉싧뱻\"�걣\"璵��떃令븅뼋嶸←릤��\"�겗�졃�릦\"礪뗦닇�뱻\"�겘\"訝��닾礪뗦닇�뱻\"�겓�뙷�늽�걬�굦�겲�걲��<br>(6) \"璵��떃令븅뼋嶸←릤��\"�겏�겘,\"OWL ITS\"�겗�눎�굢�겗璵��떃令븅뼋�겓�겇�걚�겍�뀲�겍�겗嶸←릤艅잒꺗�굮�닶�뵪�겎�걤,\"OWL ITS\"�겗�닶�뵪也묊큵�굮鰲g큵�겎�걤�굥\"鴉싧뱻\"�겗�쑍雅뷩굮�꼷�뫑�걮�겲�걲��<br>(7) \"訝��닾礪뗦닇�뱻\"�겏�겘,�돶�겓嶸←릤與⑶솏�굮�똻�걼�겒�걚�겲�겲,\"OWL ITS\"�굮�닶�뵪�걲�굥\"礪뗦닇�뱻\"�굮�꼷�뫑�걮�겲�걲��<br>(8) \"�궋�궖�궑�꺍�깉\"�겏�겘,\"鴉싧뱻\"�걣OWL�궢�꺖�깛�궧�굮�닶�뵪�걲�굥�걼�굙�겓恙낁쫨�겒�쎔耶먦깳�꺖�꺂�궋�깋�꺃�궧�걡�굠�겞\"�슅鼇쇘빁�뤇\"�굮�읃鹽롢겏�걮�겍�뵟�닇�걬�굦�걼�꺆�궛�궎�꺍\"�궋�궖�궑�꺍�깉\"�굜餓뽧겗�궢�꺖�깛�궧�겏�e땿�걬�굦�굥�궢�꺖�깛�궧�겗�궋�궖�궑�꺍�깉�굮�꼷�뫑�걮�겲�걲��<br>(9) \"璵��떃令븅뼋\"�겏�겘,\"OWL ITS\"�굮�닶�뵪�걲�굥�걼�굙�겓�뵟�닇�걬�굦�걼�궢�꺖�깛�궧�궋�궖�궑�꺍�깉�겎�뜑璵��걣�룾�꺗�겒令븅뼋�굮�꼷�뫑�걮�겲�걲�� \"鴉싧뱻\"�겗\"�궋�궖�궑�꺍�깉\"�겘礪섅�끹겒璵��떃令븅뼋�겓掠욁걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(10) \"�렡鹽븀돥\"�겏�겘,\"鴉싧뱻\"�걣\"�궢�꺖�깛�궧\"�굮�닶�뵪�걲�굥�겓�걗�걼�굤,\"�궢�꺖�깛�궧\"訝듽겓�렡鹽뷩걮�걼寧��뤇쨌�뻼耶쀂룟땿�뵽�겒�겑�겗�깄�젿壤€뀑�겗�뻼塋�,�넍�쐿,�땿�뵽�걡�굠�겞�릢葉��깢�궊�궎�꺂�겏�꺁�꺍�궚�굮�꼷�뫑�걮�겲�걲��<br>(11) \"�븚�뱚\"�겏�겘,\"鴉싧뱻\"�걣\"�궢�꺖�깛�궧\"�겗�냶譯묆겒�닶�뵪�겗�걼�굙,\"鴉싩ㅎ\"�걣�뙁若싥걮�걼�뼑�뇫�댍�겓�굠�굤,\"鴉싧뱻\"�걣�겦�뒢�걮,也묊큵�걮�걼�궢�꺖�깛�궧訝�葉�窈욁굮�꼷�뫑�걮�겲�걲��\"鴉싧뱻\"�겓�겦�겧�굥\"�븚�뱚\"�겘�뼑�뇫�뵱�돂�걚�걣恙낁쫨�겒�걚�꽒�뼑�븚�뱚�겏�닶�뵪�뼑�뇫�굮�뵱�돂�걝�쐣�뼑�븚�뱚�겎,鴉싧뱻礪섅겓�룓堊쎼겎�걤�겲�걲��<br>(12) \"黎뷸툑\"�겏�겘,\"鴉싧뱻\"�걣\"OWL ITS\"�겗�쐣�뼑艅잒꺗�굮�닶�뵪�걲�굥�걼�굙�겓縕사뵪�굮\"鴉싩ㅎ\"�겓�뵱永╉걲�굥�걪�겏�굮�꼷�뫑�걮�겲�걲��<br>(13) \"若싨쐿黎뷸툑\"�겏�겘,驪롦쐢,�눎�땿黎뷸툑�뿥�겓�닶�뵪�뼑�뇫�걣\"黎뷸툑\"�걬�굦,OWL ITS �쐣�뼑艅잒꺗�굮�닶�뵪�겎�걤�굥�뼶力뺛겗�걪�겏�겎�걲��<br>(14) \"�뜵�셽黎뷸툑\"�겏�겘,訝��걥�㎯겗\"黎뷸툑\"�겓�굠�굤,黎뷸툑�뿥�겗�뼋�겓\"訝��닾礪뗦닇�뱻\"�굮�쎍�걾�겓瓦썲뒥�걲�굥�걼�굙�겗\"黎뷸툑\"�뼶凉뤵굮�꼷�뫑�걮�겲�걲��<br> <br>寧�3�씉(榮꾣Ь�렡鹽뷩겏�뵻閭�)<br>(1) 鴉싩ㅎ�겘,�쑍榮꾣Ь�겗�냵若밤굮鴉싧뱻礪섅걣�늽�걢�굤�굜�걲�걚�굠�걝,OWL�궢�꺖�깛�궧�겗�닜�쐿�뵽�씊�겓�렡鹽뷩걮�겲�걲��<br>(2) 鴉싩ㅎ�겘恙낁쫨�겒�졃�릦,�뼟�f퀡餓ㅳ겓�걬�룏�걮�겒�걚影꾢쎊�냵�겎�쑍榮꾣Ь�굮鸚됪쎍�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(3) 鴉싩ㅎ�걣�쑍榮꾣Ь�굮�뵻閭c걲�굥�졃�릦�겓�겘,�겑�뵪�뿥�걡�굠�겞�뵻閭d틟�뵳�굮�삇鹽뷩걮,�뤎烏뚣겗榮꾣Ь�겏�뀻�겓OWL�궢�꺖�깛�궧�겗�몜�윥雅뗩쟿�겗�렡鹽뷸씮�겓�겑�뵪�뿥餓�15�뿥�뎺�걢�굢�겑�뵪�뿥餓섅겗�뎺�뿥�겲�겎�뀶鹽뷩걮�겲�걲�� 鵝녴걮,�굜���굮孃쀣걳鴉싧뱻礪섅겓訝띶닶�겒�냵若밤겓榮꾣Ь�걣�뵻閭c걬�굦�굥�졃�릦�겓�겘,�몜�윥�겗餓뽧겓鴉싧뱻�걣鴉싧뱻�뒥�뀯�셽�겓鼇섋펹�걮�걼�깳�꺖�꺂�궋�깋�꺃�궧�겓�쎔耶먦깳�꺖�꺂�쇇��,�꺆�궛�궎�꺍�셽�겗�걡�윥�굢�걵,�깮�긿�깤�궋�긿�깤 �궑�궍�꺍�깋�궑�겒�겑�겗�쎔耶먪쉪�뎸餘듐겓�굠�겂�겍�겑�뵪�뿥餓�30�뿥�뎺�겓�닪��,�삇閻뷩겓�싩윥�걮�겲�걲��<br>(4) 鴉싩ㅎ�걣�뎺�쟿�겓�굠�겂�겍�뵻閭g큵轝얇굮�뀶�윥�겲�걼�겘�싩윥�걮�겒�걣�굢,鴉싧뱻�겓30�뿥餓ε냵�겓�꼷�앲〃鹽뷩굮�걮�겒�걨�굦�겙,�꼷�앲〃鹽뷩걣烏ⓩ삇�걬�굦�걼�굚�겗�겏�겳�겒�걲�겏�걚�걝�꼷�뫑�굮�삇閻뷩겓�뀶�윥�겲�걼�겘�싩윥�걮�걼�겓�굚�걢�걢�굩�굢�걳,鴉싧뱻�걣�삇鹽븀쉪�겓�땼�맔�겗�꼷�앲〃鹽뷩굮�걮�겒�걚�졃�릦,鴉싧뱻�걣�뵻閭g큵轝얇겓�릪�꼷�걮�걼�굚�겗�겏�껁걟�겲�걲��<br>(5) 鴉싧뱻礪섅걣�뵻閭g큵轝얇겓�릪�꼷�걮�겒�걚�졃�릦,鴉싩ㅎ�겘�뵻閭g큵轝얇겗�냵若밤굮�겑�뵪�걲�굥�걪�겏�걣�겎�걤�걳,�걹�겗�졃�릦鴉싧뱻�겘�닶�뵪也묊큵�굮鰲g큵�걲�굥�걪�겏�걣�겎�걤�겲�걲�� 鵝녴걮,�뿢耶섅겗榮꾣Ь�굮�겑�뵪�겎�걤�겒�걚�돶�닪�겒雅뗦깄�걣�걗�굥�졃�릦,鴉싩ㅎ�겘�닶�뵪也묊큵�굮鰲i솮�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br> <br>寧�4�씉(榮꾣Ь鸚뽪틬�뎴)<br> �쑍榮꾣Ь�겓�삇鹽뷩걬�굦�겍�걚�겒�걚雅뗩쟿�겘,�쎔麗쀩�싦에�읃�쑍力�,�쎔麗쀩�싦에雅뗦��力뺝룋�겞�걹�겗餓뽧겗�뼟�f퀡餓ㅳ겗誤뤷츣,�쑍榮꾣Ь�겗擁f뿨�룋�겞�릪葉�璵��븣�겗訝��닾�쉪�겒�뀭烏뚣겓孃볝겂�겍鰲i뇠�걮�겑�뵪�걮�겲�걲��<br><br>寧�5�씉(�닶�뵪也묊큵渶좂탳)<br>(1) OWL�궢�꺖�깛�궧�겗�닶�뵪也묊큵�겘,鴉싧뱻�겓�겒�굧�걝�겏�걲�굥�끹걣�쑍榮꾣Ь�겗�냵若밤겓�릪�꼷�걮,�깳�꺖�꺂�궋�깋�꺃�궧�겏�깙�궧�꺈�꺖�깋�굮�쇉�뙯�걮�걼孃�,鴉싧뱻�뒥�뀯�뵵獄뗣굮�걲�굦�겙鴉싩ㅎ�걣�깳�꺖�꺂�궋�깋�꺃�궧�쐣�듅沃띹㉫孃뚣겓�돽獄얇걲�굥�걪�겏�겎渶좂탳�걬�굦�겲�걲��<br>(2) �궋�궖�궑�꺍�깉�겓�쇉�뙯�걬�굦�걼�깳�꺖�꺂�궋�깋�꺃�궧�겘鸚됪쎍�겎�걤�겲�걵�굯��<br>(3) �뒥�뀯孃�,�삇鹽븀쉪�겓�궢�꺖�깛�궧�굮鰲g큵�걲�굥�겲�겎�겘�걚�겇�겎�굚礪뗦닇�뱻�겗瓦썲뒥�걡�굠�겞�궢�꺖�깛�궧�닶�뵪�쐿�뼋瓦썲뒥�뵵獄�/黎뷸툑�걮,�궢�꺖�깛�궧�굮�닶�뵪�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>�몺 �닶�뵪也묊큵繹�雅녶풄�겓�닶�뵪�겎�걤�굥艅잒꺗�겘訝��깿�댍�솏�쉪�겎�걗�굤,1�꺐�쐢永뚪걥孃뚣겓�궢�꺖�깛�궧�닶�뵪�깄�젿�걣�뎷�솮�걬�굦�겲�걲��<br>(4) 鴉싩ㅎ�겘�꽒�뼑�겎�룓堊쎼걬�굦�굥�궢�꺖�깛�궧�겗訝��깿�겲�걼�겘�뀲�깿�굮鴉싩ㅎ�겗�붃嶺뽧걡�굠�겞�걢�뼳�겗恙낁쫨�㎯걢�굢岳�閭�,訝��뼪,鸚됪쎍�걲�굥�걪�겏�걣�겎�걤,�걪�굦�겓�겇�걚�겍�뼟�f퀡�겓�돶�닪�겒誤뤷츣�걣�겒�걚�솏�굤鴉싧뱻�겓�닪�붵겗獒쒎꽏�굮�걮�겲�걵�굯��<br>(5) 鴉싩ㅎ�겘轝▲겗�릢�뤇�겓�렡�걩�굥�뵵渦쇈겓�겇�걚�겍�겘�돽獄얇굮烏뚣굩�겒�걢�겂�걼�굤,雅뗥풄�겓�닶�뵪也묊큵�굮鰲i솮�걮�걼�굤�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>�몺 �쑍榮꾣Ь寧�10�씉寧�3�쟿�겓�굠�굤鴉싩ㅎ�걣�닶�뵪也묊큵�굮�걮�겍�쑑訝뗣걽�겂�걼鴉싧뱻�걣�냽�겞鴉싧뱻�뒥�뀯�뵵獄뗣굮�걲�굥�졃�릦<br>�몼 餓뽨볶�겗�뗤볶�깄�젿�굮�닶�뵪�걮�걼�졃�릦<br>�몾 �겱�굤�겗�깄�젿�굮鼇섋펹�걮�걼�굤,鴉싩ㅎ�걣恙낂젅雅뗩쟿�겏�걮�겍�룓鹽뷩걮�걼�깄�젿�굮鼇섋펹�걮�겒�걚�졃�릦��<br>�몿 �걹�겗餓뽧겗�뼟�f퀡餓ㅳ겓�룏�걮�걼�굤榮곈깿�뙁�뇺�겒�겑鴉싩ㅎ�걣若싥굙�걼�읃繹뽧겓�룏�걲�굥�졃�릦<br> <br>(6) 鴉싩ㅎ�겘餓δ툔�겗�릢�뤇�겗�졃�릦�겓�겘鴉싧뱻�뒥�뀯�뵵獄뗨�끹겗�궋�궖�궑�꺍�깉�뵟�닇�굮�븰岳앫걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>�몺 �룓堊쎼궢�꺖�깛�궧�겗鼇��굺若백뇧�겓�뤎若잏쉪�겒鵝숃짆�걣�겒�걚�졃�릦<br>�몼 �궢�꺖�깛�궧�룓堊쎼겗�걼�굙�겗��烏볡쉪�겒�깿�늽�겓�븦窈뚣걣�걗�굥�겏�닩�뼪�걬�굦�굥�졃�릦<br>�몾 �걹�겗餓뽧겗鴉싩ㅎ�걣縕→붃�쉪�걢�겇��烏볡쉪�겓恙낁쫨�겎�걗�굥�겏沃띲굙�굥�졃�릦<br> <br>寧�6�씉(鴉싧뱻�깄�젿�겗嶸←릤)<br>(1) 쨌鴉싧뱻�겗�궋�궖�궑�꺍�깉,�깙�궧�꺈�꺖�깋�겓野얇걲�굥嶸←릤縕т뻣�겘鴉싧뱻礪섅겓�걗�굤,�걪�굦�굮寧т툒�끹걣�닶�뵪�걲�굥�걪�겏�굮鼇김ゾ�걲�굥�걪�겏�겘�겎�걤�겲�걵�굯��<br>(2) 鴉싧뱻礪섅겘�궋�궖�궑�꺍�깉�걡�굠�겞�깙�궧�꺈�꺖�깋�걣�썤�뵪�걬�굦�걼�굤,寧т툒�끹걣鵝욜뵪�걮�겍�걚�굥�걪�겏�굮沃띸윥�걮�걼�졃�릦�겓�겘,�쎍�걾�겓鴉싩ㅎ�겓�싩윥�걮,鴉싩ㅎ�겗旅덂냵�겓孃볝굩�겒�걨�굦�겙�겒�굤�겲�걵�굯��<br>(3) �뎺�쟿�겗�졃�릦�겓�겘,壤볢㈁鴉싧뱻�걣鴉싩ㅎ�겓屋꿨퐪雅뗥츪�굮�싩윥�걮�겒�걢�겂�걼�굤�싩윥�걮�걼�졃�릦�겎�굚,鴉싩ㅎ�겗旅덂냵�겓孃볝굩�겒�걢�겂�걼�굤�걮�걼�걼�굙�쇇�뵟�걮�걼�릫若녈겓野얇걮�겍鴉싩ㅎ�겘縕т뻣�굮縕졼걚�겲�걵�굯��<br>(4) 鴉싧뱻礪섅겘OWL�궢�꺖�깛�궧�냵�겗�궋�궖�궑�꺍�깉嶸←릤艅잒꺗�굮�싥걯�겍,�걚�겇�겎�굚�뗤볶�깄�젿�굮�뼯誤�,岳�閭c걲�굥�걪�겏�걣�겎�걤�겲�걲�� 鴉싧뱻礪섅걣�쑍雅뷩겗�깄�젿�굮�겑�늾�겓岳�閭c걮�겍�걚�겒�걚�걼�굙�겓�쇇�뵟�걲�굥訝띶닶�썗�겓野얇걮�겍鴉싩ㅎ�겘縕т뻣�굮縕졿땯�걮�겲�걵�굯��<br> <br>寧�7�씉(鴉싩ㅎ�겗獰⒴떃)<br>(1) 鴉싩ㅎ�겘OWL�궢�꺖�깛�궧�겗�룓堊쎾룋�겞�궩�궘�깷�꺁�깇�궍�겓�뼟�c걲�굥鼇��굺�굮�똻泳싩쉪�걢�겇若됧츣�쉪�겒�궢�꺖�깛�궧�룓堊쎼겓�겑�걲�굥�굠�걝泳��똻,�궧濾쒌겲�걼�겘孃⒵뿧�겒�겑�겗�렕營��굮沃졾츪�겓掠θ죱�걲�굥�걼�굙�겓�뒱�굙�겲�걲��<br>(2) 鴉싩ㅎ�겘鴉싧뱻礪섅걣�룛岳▼릪�꼷�굮烏뚣겂�겍�걚�겒�걚�뼳�닶�쎅�쉪�겗佯껃몜�㏝쎔耶먦깳�꺖�꺂,�걡�윥�굢�걵�깳�긿�궩�꺖�궦�겒�겑�굮�쇇�곥걮�겲�걵�굯<br>(3) 鴉싩ㅎ�겘OWL�궢�꺖�깛�궧�겗�룓堊쎼겏�뼟�c걮�겍�윥�굤�릦�겂�걼鴉싧뱻礪섅겗�뗤볶�깄�젿�굮�쑍雅뷩겗�돽獄얇겒�걦寧�3�끹겓轢뤵걟�걚,�뀓躍껁걵�걳�겓�걪�굦�굮岳앲�룔걲�굥�걼�굙�겓�뒱�굙�겲�걲�� 쨌鴉싧뱻�겗�뗤볶�깄�젿岳앲�룔겓�뼟�걲�굥�걹�겗餓뽧겗雅뗩쟿�겘,�깄�젿�싦에泳꿩퀡�룋�겞鴉싩ㅎ�걣�닪�붷츣�굙�걼\"�뗤볶�깄�젿�눇�릤�뼶�뇺\"�겓孃볝걚�겲�걲��<br><br>寧�8�씉(鴉싧뱻�겗獰⒴떃)<br>(1) 鴉싧뱻�겘訝뗣겗�릢�뤇�겗烏뚨궨�굮�걮�겍�겘�걚�걨�겲�걵�굯��<br>�몺 鴉싧뱻�뒥�뀯�뵵獄뗣겲�걼�겘鴉싧뱻�깄�젿鸚됪쎍�셽�솞�겱�냵若밤겗�쇉�뙯<br>�몼 餓뽨볶�겗�깄�젿�썤�뵪<br>�몾 鴉싩ㅎ�겗�렡鹽뷩걬�굦�걼�깄�젿�겗鸚됪쎍<br>�몿 鴉싩ㅎ�걣若싥굙�걼�깄�젿餓ε쨼�겗�깄�젿(�궠�꺍�깞�깷�꺖�궭�깤�꺆�궛�꺀�깲嶺�)�겒�겑�겗�곦에�겲�걼�겘�렡鹽뷩��<br>�뫀 鴉싩ㅎ�겏�걹�겗餓뽧겗寧т툒�끹겗�몭鵝쒏Ł嶺됬윥�쉪縕←뵣與⒲굮堊드�녈걲�굥烏뚨궨<br>�뫁 鴉싩ㅎ�걡�굠�겞�걹�겗餓뽫К3�끹겗�릫沃됥굮�궥�겇�걨�걼�굤,璵��떃�굮倻ⓨ�녈걲�굥烏뚨궨<br>�뫂 �뙠筽삠겲�걼�겘�슫�뒟�쉪�겒�깳�긿�궩�꺖�궦,�뵽�깗,�윹鶯�,�걹�겗餓뽧겗�뀶佯뤺돬岳쀣겓�룏�걲�굥�깄�젿�굮OWL�궢�꺖�깛�궧�겓�뀶�뼀�겲�걼�겘�렡鹽뷩걲�굥烏뚨궨<br>�뫃 鴉싩ㅎ�겗�릪�꼷�겒�걮�겓�뼳�닶�굮�쎅�쉪�겓OWL�궢�꺖�깛�궧�굮�닶�뵪�걲�굥烏뚨궨<br>�뫅 餓뽧겗�궢�꺖�깛�궧�닶�뵪�끹겗�깄�젿�굮�꽒�뼪�겎�룑�썓,�닶�뵪,�겲�걼�겘餓뽨볶�겓�룓堊쎼걲�굥�걪�겏<br>�뫆 鴉싩ㅎ�겗�릪�꼷�겒�걮�겓OWL�궢�꺖�깛�궧�겲�걼�겘�걪�굦�겓�맜�겲�굦�굥�궫�깢�깉�궑�궒�궋�겗訝��깿�굮�궠�깞�꺖,岳�閭�,�뀓躍�,縕⒴2,鈺꿩륫,縕멧툗,�땯岳앮룓堊�,�겲�걼�겘餓뽨볶�겓�걹�겗�닶�뵪�굮鼇긱걲烏뚨궨�겏,�궫�깢�깉�궑�궒�궋�굮�녻Þ鼇덀걮�걼�굤,�궫�꺖�궧�궠�꺖�깋�겗�듊�눣�굮屋╉겳�굥�겒�겑,OWL�궢�꺖�깛�궧�굮�궠�깞�꺖,�늽鰲c겲�걼�겘與▼�c걮�걼�굤,�걹�겗餓뽩쨯�쎍�걮�걼�굤�걲�굥烏뚨궨<br>�뫇 鴉싩ㅎ�걣旅덂냵�걲�굥�뼶力뺜빳鸚뽧겗餓뽧겗�뼶力뺛굮鵝욍겂�겍OWL�궢�꺖�깛�궧�겓�궋�궚�궩�궧�걲�굥烏뚨궨<br>�뫉 �쑍雅뷩겏�뼟�c겗�겒�걚OWL�궢�깣�깋�깳�궎�꺍�굮�뵟�닇쨌�뀍�룚�굤�걮�겍餓뽨볶�겗OWL�궢�꺖�깛�궧鵝욜뵪�굮倻ⓨ�녈걲�굥烏뚨궨<br>�뫊 �눎�굢�겗OWL�궢�꺖�깛�궧�닶�뵪與⑶솏�걹�겗餓뽧겗�닶�뵪也묊큵訝듽겗�쑑鵝띲굮餓뽬�끹겓鈺꿩륫쨌兀덁툗�걮�걼�굤�땯岳앫겓�룓堊쎼걲�굥烏뚨궨<br>�뫋 �걹�겗餓뽨툖力뺛겎�걗�겂�걼�굤訝띶퐪�겒烏뚨궨<br> <br>(2) 鴉싧뱻礪섅걣�뼟�c걲�굥力뺜빱,�쑍榮꾣Ь,�겲�걼�겘\"榮곈깿�뙁�뇺\"�굮�겣若덀걮�겒�걚�졃�릦,鴉싩ㅎ�겘鴉싧뱻礪섅겗�걬�룏烏뚨궨�겒�겑�굮沃욘읅�걮�걼�굤,鴉싧뱻礪섅겗OWL�궢�꺖�깛�궧�겗�닶�뵪�굮訝��셽�겲�걼�겘泳숂텥�걮�겍訝��뼪�걮�걼�굤,�냽�뒥�뀯�겓�댍�솏�굮營��걦�걪�겏�굚�겎�걤�겲�걲�� �걪�굦�겓�굠�굥鰲g큵孃뚨쇇�뵟�걮�걼�깄�젿�릫鸚긱겓野얇걲�굥縕т뻣�겘鴉싧뱻礪섅겓�걗�굤�겲�걲��<br>(3) 鴉싩ㅎ�겘�뼟�f퀡餓ㅳ겎若싥굙�굥�쐿�뼋訝��겓鴉싧뱻�걣�궢�꺖�깛�궧�굮�닶�뵪�걲�굥�걼�굙�겓�꺆�궛�궎�꺍�겲�걼�겘�렏泳싥걮�걼鼇섌뙯�걣�겒�걚�졃�릦,鴉싧뱻�걣�쇉�뙯�걮�걼OWL�궋�궖�궑�꺍�깉�깳�꺖�꺂�궋�깋�꺃�궧�겒�겑,�걹�겗餓뽧겗�쐣�듅�겒�뎸餘듐겎�싩윥孃�,�쉮礪섅겗�깄�젿�굮�졃汝꾠겲�걼�겘�늽�썴岳앯�▲걲�굥�걪�겏�걣�겎�걤,�걪�겗�걼�굙OWL�궢�꺖�깛�궧�닶�뵪�겗�걼�굙�겗恙낂젅�쉪�겒�깄�젿�걣訝띹떨�걲�굥�졃�릦,�닶�뵪也묊큵�걣鰲g큵�걬�굦�굥�걪�겏�굚�걗�굤�겲�걲��<br>(4) 鴉싧뱻礪섅겘�쐣�뼑�궢�꺖�깛�궧�닶�뵪�겗誤뗨퓭�굤�겏�걮�겍,�쑍榮꾣Ь�겓�읃�겈�걤鴉싩ㅎ�걣若싥굙�걼�뼑�뇫�굮榮띴퍡�걲�굥獰⒴떃�걣�걗�굤,�뼑�뇫�쑋榮띲겓�굠�겂�겍�쇇�뵟�걲�굥�븦窈뚣겓野얇걮�겍鴉싩ㅎ�겗�걥鸚긱굜鴉싩ㅎ�걣沃띲굙�걼雅뗧뵳�겓�굠�굥�졃�릦�굮�솮�걚�겍�뀲�겍�겗縕т뻣�겘鴉싧뱻礪섅겓�걗�굤�겲�걲��<br> <br>寧�9�씉(�궢�꺖�깛�궧�겗鸚됪쎍�룋�겞訝��뼪)<br>(1) 鴉싩ㅎ�겘OWL�궢�꺖�깛�궧�굮365�뿥,24�셽�뼋鴉묆겲�걳�겓�룓堊쎼걲�굥�걼�굙�겓���뻹�굮弱썬걦�걮�겲�걲�� �걼�걽�걮,獒끻굺�겗泳��똻쨌岳앭츍�겗�걼�굙�겗若싨쐿�겲�걼�겘�눊�셽�궧濾쒌겲�걼�겘餓뽧겗�쎑壤볝겒�릤�뵳�겎�궢�꺖�깛�궧�겗�룓堊쎼걣訝��셽訝��뼪�걬�굦�굥�걪�겏�걣�걗�굤,�걪�겗�졃�릦,�걗�굢�걢�걯�굙�궢�꺖�깛�궧�룓堊쏁뵽�씊�겓�뀶鹽뷩걮�겲�걲�� �굚�걮,鴉싩ㅎ�겏�걮�겍�굚雅덃릍�겎�걤�겒�걚�릤�뵳�겎OWL�궢�꺖�깛�궧�걣訝��뼪�걬�굦�걼�겏�걤�겓�겘,鴉싩ㅎ�걣�듁力곥굮�뒍�룪�걲�굥�겏�릪�셽�겓,��鸚㏝솏�뿩�쐿�겓�궢�꺖�깛�궧�굮孃⒵뿧�걲�굥�굠�걝�겓�뒱�굙�겲�걲��<br>(2) 鴉싩ㅎ�겘�걢�뼳訝�,��烏볞툓�겗恙낁쫨�겓�굠�겂�겍OWL�궢�꺖�깛�궧�겗�뀲�깿�겲�걼�겘訝��깿�냵若밤굮鸚됪쎍�겲�걼�겘訝��뼪�걲�굥�걪�겏�걣�겎�걤,�궢�꺖�깛�궧�겗鸚됪쎍�겲�걼�겘訝��뼪�뎺�겓OWL�궢�꺖�깛�궧�겗�닜�쐿�뵽�씊�겲�걼�겘�몜�윥雅뗩쟿轝꾠겓�렡鹽뷩걮�겍鴉싧뱻�겓�뀶鹽뷩걮�겲�걲�� 鴉싧뱻礪섅겓�뇥鸚㎯겒壤깁읉�굮�룋�겮�걲�궢�꺖�깛�궧�겗鸚됪쎍雅뗩쟿�굜訝��뼪�겘,�뀶�윥�겗餓뽧겓鴉싧뱻�걣鴉싧뱻�뒥�뀯�겗�슋�겓�쇉�뙯�걮�걼�깳�꺖�꺂�궋�깋�꺃�궧�겓�쎔耶먦깳�꺖�꺂�쇇��,�꺆�궛�궎�꺍�겗�슋,�걡�윥�굢�걵,�깮�긿�깤�궋�긿�깤,�겲�걼�겘�릪�꼷�궑�궍�꺍�깋�궑�겒�겑�겗�쎔耶먪쉪�뎸餘듐굮�싥걯�겍�겑�뵪�뿥30�뿥�뎺�겓�닪��,�삇閻뷩겓�싩윥�걮�겲�걲��<br>(3) 鴉싩ㅎ�겘轝▲겗�졃�릦�겓�겘OWL�궢�꺖�깛�궧�겗�룓堊쎼굮訝�閭㏂걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>�몺 �쎖若띌씆躍며듁�뀑,�궢�꺖�깛�궧鼇��굺�겗�슌若�,�궢�꺖�깛�궧�닶�뵪�겗雍삭설�겒�겑閭e만�겒�궢�꺖�깛�궧�겓�뵱�슌�굮�씎�걼�걲�걡�걹�굦�걣�걗�굥�졃�릦<br>�몼 鸚⑴겱�쑑鸚됥겒�겑鴉싩ㅎ�걣�겳�걨�굢�굦�겒�걚�릤�뵳�겎�궢�꺖�깛�궧�겗�룓堊쎼걣雅뗥츪訝듾툖�룾�꺗�겒�졃�릦<br>�몾 �쎔麗쀩�싦에雅뗦��力뺛겓誤뤷츣�걬�굦�걼�읃亮백�싦에雅뗦���끹걣�쎔麗쀩�싦에�궢�꺖�깛�궧�굮訝�閭㏂걮�걼�졃�릦<br> 寧�10�씉(�궥�궧�깇�깲�뵻�뻹�겓�굠�굥窈㎩�㏂깈�꺖�궭燁삭빪)<br><br>(1) 鴉싩ㅎ�겘鸚㎬쫸與▲궥�궧�깇�깲�겗�뵻�뻹�겒�겑訝띶룾�겳�겗�졃�릦,窈㎩�㏂겗�릪�꼷�굜�뵵獄뗦뎸泳싥걤�겒�걮�겓�뿢耶섅겗�궥�궧�깇�깲�겓岳앭춼�걬�굦�걼窈㎩�㏂겗�깈�꺖�궭�굮�뼭誤뤵궥�궧�깇�깲�겓燁삭빪�걮,�궢�꺖�깛�궧�굮�룓堊쎼걲�굥�걪�겏�걣�겎�걤�겲�걲��<br> <br>寧�11�씉(�궢�꺖�깛�궧鰲g큵)<br>(1) �궢�꺖�깛�궧�뒥�뀯鰲g큵�겓�겘鴉싧뱻�겗�궢�꺖�깛�궧鰲g큵�뵵獄뗣겓�굠�굥鰲g큵�겏鴉싩ㅎ�겗�쎍與⒲겓�굠�굥鰲g큵�걣�걗�굤�겲�걲��<br>(2) 鴉싧뱻�겘,�걚�겇�겎�굚OWL�궢�꺖�깛�궧�냵�겓�룓堊쎼걬�굦�굥�깳�깑�깷�꺖�굮�닶�뵪�걮�겍�궢�꺖�깛�궧鰲g큵�굮�뵵�걮渦쇈��걪�겏�걣�겎�걤,璵��떃令븅뼋�겗鰲g큵�셽�겓�겗�겳,訝뗨쮼�겓�릢�뤇�겓孃볝겂�겍�눇�릤�걬�굦�겲�걲��<br>�몺 璵��떃令븅뼋�겗�궢�꺖�깛�궧鰲g큵�겘,壤볢㈁璵��떃令븅뼋�겗嶸←릤�끹겗�겳�룾�꺗�겎�걲��<br>�몼 �쐣�뼑艅잒꺗�걣�맜�겲�굦�걼璵��떃令븅뼋也묊큵鰲i솮�겗�슋�겘,�눎�땿�쉪�겓若싨쐿黎뷸툑�겗�e땿�걣�룚�굤易덀걬�굦�겲�걲��<br>(2) 鴉싩ㅎ�겘�뼟�f퀡餓ㅳ걣若싥굙�굥�겏�걪�굧�겓�굠�굤,�닶�뵪也묊큵�겗鰲g큵�뵵獄뗣굮瓦낂�잆겓�눇�릤�걮�겲�걲�� 鵝녴걮,黎뷸툑�뫅�쐿�걣�쐢�뜕鵝띲겎鼇�若싥걬�굦�걼若싨쐿黎뷸툑�겗�졃�릦�겘餓δ툔�겗�릢�뤇�겓�굠�굤也묊큵鰲i솮�걣�눇�릤�걬�굦�겲�걲��<br>�몺 �쐢�뜕鵝띲겗�졃�릦�겘,壤볠쐢�겗若싨쐿黎뷸툑�뿥�겓�궢�꺖�깛�궧也묊큵�겗鰲g큵�걣�눇�릤�걬�굦�겲�걲��<br>�몼 鴉싧뱻礪섅걣�궢�꺖�깛�궧也묊큵�겗鰲g큵�굮�뵵�걮渦쇈굯�걽�뿥�걣壤볠쐢�겗若싨쐿黎뷸툑�뿥�겗�댆�씎�뎺�겎�걗�굦�겙,餘뗣굤�겗鵝욜뵪�쐿�뼋�걣�걲�겧�겍易덂갹�걮�겍�걢�굢也묊큵�겗鰲g큵�걣�눇�릤�걬�굦�겲�걲�� �걹�걮�겍,�걹�겗餘뗣겂�걼鵝욜뵪�쐿�뼋�겗�뼋,鴉싧뱻�겘OWL�궢�꺖�깛�궧�굮閭e만�겓�닶�뵪�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(3) �쐣�뼑�궢�꺖�깛�궧�굮�닶�뵪�걮�겍�걚�굥鴉싧뱻�겘,OWL�궢�꺖�깛�궧�겗鴉싧뱻�썴�꽦�겗�뎺�겓,OWL�궢�꺖�깛�궧�냵�겎�쑍雅뷩걣鵝쒏닇�걮�걼�렡鹽븀돥�굮�쎍�렏�뎷�솮�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯�� 鵝녴걮,鴉싧뱻�쑍雅뷩걣�뼀鼇��걮�걼璵��떃令븅뼋�걣�궢�꺖�깛�궧鰲i솮�겓�겒�겂�걼�졃�릦�겓�겘,�렡鹽븀돥�뀲�깿�겗�눎�땿�뎷�솮�걬�굦�겲�걲��<br>(4) 訝��닾礪뗦닇�뱻�겗鴉싧뱻�걣�렡鹽븀돥�굮�뎷�솮�걵�걳�겓鴉싧뱻�꽦���굮�걲�굥�졃�릦,OWL�궢�꺖�깛�궧�겗璵��떃令븅뼋�냵�겓�렡鹽븀돥�겘�뎷�솮�걬�굦�걳餘뗣겂�겍�걚�굥�걪�겏�겓�겒�굥�겗�겎,�꽦���뎺�겓力ⓩ꼷曆긱걦閻븃첀�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��<br>(5) �닶�뵪也묊큵�걣鰲g큵�걬�굦�걼�졃�릦,鴉싧뱻�걣�뎷�솮�걮�겒�걢�겂�걼�렡鹽븀돥�걡�굠�겞�뼟�f퀡餓ㅳ걡�굠�겞�뗤볶�깄�젿�겗�눇�릤�뼶�뇺�겓孃볝겂�겍鴉싧뱻�겗訝�若싥겗�깄�젿�굮岳앮쐣�걲�굥�졃�릦�굮�솮�걚�겍�겘鴉싧뱻�겗�깄�젿�겘�걲�겧�겍�뎷�솮�걬�굦�겲�걲��<br>(6) 鴉싧뱻礪섅걣�쑍榮꾣Ь寧�8�씉寧�1�쟿�겓�걬�룏�걮�걼�졃�릦,�뇥鸚㎯겒�걬�룏�겓�굠�굤鴉싩ㅎ�겘屋꿨퐪鴉싧뱻�겓野얇걮�겍�닶�뵪也묊큵�굮鰲i솮�걲�굥�걪�겏�걣�겎�걤�겲�걲�� �걪�겗�졃�릦,鴉싩ㅎ�겘�꽦���눇�릤�뎺�겓�눇�릤雅뗧뵳�걡�굠�겞屋녕눗�굮鼇섋펹�걮,鴉싧뱻礪섅겗OWL�궋�궖�궑�꺍�깉�깳�꺖�꺂�궋�깋�꺃�궧�겓�쎔耶먦깳�꺖�꺂�굮�쇇�곥걮,�싩윥�걮�겲�걲�귚폏�뱻礪섅겘鴉싩ㅎ�겗�싩윥�굮�룛�걨�걼�뿥�걢�굢30�뿥餓ε냵�겓�빊鈺겹굮�뵵�걮塋뗣겍�굥�걪�겏�걣�겎�걤,鴉싩ㅎ�겘鴉싧뱻�겗�빊鈺겹걣閭e퐪�겎�걗�굥�겏沃띲굙�걼�졃�릦,鴉싧뱻�겏�겗�궢�꺖�깛�궧�닶�뵪也묊큵�굮�냽�뼀�걮�겲�걲��<br>寧�12�씉(蘊뉑뼑�겗岳앯��)<br>(1) �닶�뵪也묊큵�쐿�뼋�걣繹�雅녴걮�걼鴉싧뱻�겗蘊뉑뼑�겘,�쐿�뼋繹�雅녷뿥�걢�굢1�꺐�쐢岳앯�▲굮�렅�뎴�겏�걮,1�꺐�쐢餓ε냵�겓�쐿�뼋兩띌빓�븚�뱚�굮蘊쇔뀯�걮�겒�걚�졃�릦,�깈�꺖�궭�걣�뎷�솮�걬�굦�겲�걲��<br>(2) �꽒�뼑�궢�꺖�깛�궧�굮�닶�뵪�걮�겍�걚�굥鴉싧뱻礪섅겗蘊뉑뼑�겘,�궢�꺖�깛�궧�겗鰲g큵孃�,�쎍�걾�겓�뎷�솮�걮�겲�걲��<br>(3) 轝▲겗�졃�릦,�닶�뵪也묊큵�쐿�뼋�겗繹�雅녴겲�걼�겘�뒥�뀯鰲g큵�걬�굦�걼鴉싧뱻�겗蘊뉑뼑�굮泳숂텥�걮�겍岳앯�▲걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>�몺 鴉싩ㅎ�걣�뒥�뀯鰲g큵�뵵獄뗤폏�뱻�겗�뼑�뇫�겒�겑掠ζ�당▶沃띲겗�걼�굙訝�若싨쐿�뼋�깄�젿�룓堊쎼걣恙낁쫨�겏�닩�뼪�걬�굦�굥�졃�릦<br>(4) �궢�꺖�깛�궧�닶�뵪�겎�쇇�뵟�걮�걼蘊뉑뼑�겗�걝�걾,鵝쒏���꺆�궛�겘6�궖�쐢�뼋岳앯�▲걬�굦,餓ε뎺�겗鵝쒏���꺆�궛�겘�눎�땿�쉪�겓�뎷�솮�걬�굦�겲�걲��<br> <br>寧�13�씉(�깄�젿�겗鴉앶걫)<br>(1) 鴉싩ㅎ�겘鴉싧뱻礪섅겗�릪�꼷�겗�굚�겏,�궢�꺖�깛�궧�겗�뼭誤뤸찣�꺗�걡�굠�겞�릢葉��쐣�뵪�겒�깄�젿�굮鴉싧뱻�걣�쇉�뙯�걮�걼�쎔耶먦깳�꺖�꺂�겲�걼�겘�뻼耶쀣깳�긿�궩�꺖�궦�굮�싥걯�겍鴉싧뱻礪섅겓�곦에�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(2) 鴉싩ㅎ�겘�궢�꺖�깛�궧�겗�닶�뵪�쐿�뼋�겗繹�雅녷셽�궧,鰲g큵旅덂냵�겗�굠�걝�겒恙낂젅�겗鴉앶걫�깄�젿�굮鴉싧뱻�겗�릪�꼷�겏�겘�뼟岳귙겒�걦鴉싧뱻�겓�곦에�겎�걤�겲�걲��<br> <br>寧�14�씉(�궢�꺖�깛�궧�닶�뵪�겗�걶閭�)<br>(1) 鴉싩ㅎ�겘鴉싧뱻礪섅걣�쑍榮꾣Ь訝�,獰⒴떃�겓�룏�걮�걼�굤,OWL�궢�꺖�깛�궧�겗閭e만�쉪�겒�걢�뼳�굮倻ⓨ�녈걮�걼�굤�걮�걼�졃�릦�겓�겘,�걪�굦�겓野얇걲�굥�뵻�뻹�굮誤곫콆�겎�걤,�뵻�뻹�걬�굦�겒�걚�졃�릦�겘雅뗥뎺�겗�싩윥�겒�걦�궢�꺖�깛�궧�겗�닶�뵪�굮�걶閭㏂걬�걵�굥�걪�겏�걣�겎�걤�겲�걲�귚폏鹽얇겘鴉싧뱻礪섅겗躍계껄雅뗧뵳�걣鰲f텋�걬�굦�걼�겏�닩�뼪�걬�굦�걼�졃�릦,�궢�꺖�깛�궧�굮�냽�뼀�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(2) OWL�궢�꺖�깛�궧�닶�뵪�걶閭€쐿�뼋�겘OWL�궢�꺖�깛�궧�룓堊쎿쐿�뼋�겓�맜�겲�굦�겲�걲��<br> <br>寧�15�씉(�븚�뱚�겗沃ф삇)<br>(1) OWL�궢�꺖�깛�궧�븚�뱚�겘,鴉싧뱻�걣餓뽧겗鴉싧뱻�겏�겗�뜑璵��겗�걼�굙�겓�뵟�닇�걲�굥璵��떃令븅뼋�겓�겑�뵪�걬�굦,嶸←릤�끾Ł�솏�굮�똻�겇礪뗦닇�뱻�겓�굠�겂�겍�븚�뱚�굮蘊쇠껭�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(2) 鴉싧뱻礪섅걣璵��떃令븅뼋�굮�뵟�닇�걮�걼�졃�릦,�꽒�뼑�븚�뱚�겎�걗�굥FREE(�꽒�뼑鵝볣쮶)�겓�뒥�뀯�걮,�꽒�뼑�븚�뱚�겗�씉餓뜰겎�걗�굥璵��떃令븅뼋�겗若백뇧�굜礪뗦닇�뱻�겗�빊�겒�겑�겗�댍榮꾠굮擁끹걟�굥�졃�릦,�쐣�뼑�븚�뱚�굮蘊쇔뀯�걮,�궢�꺖�깛�궧�닶�뵪�겓野얇걲�굥�댍榮꾠굮鰲f군�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(3) 鴉싩ㅎ�걣�룓堊쎼걲�굥�븚�뱚�겗葉�窈욁겏堊→졏�겒�겑�겗旅덂냵�겘�궢�꺖�깛�궧�겗�룓堊� �궎�꺍�궭�꺖�깓�긿�깉�궢�궎�깉 (www.owlsolution.io) �겓�몜鹽뷸렡雍됥걮�겲�걲��<br> <br>寧�16�씉(�븚�뱚�겗也묊큵)<br>(1) �븚�뱚�겗也묊큵�겘,璵��떃令븅뼋礪뗦닇�뱻�겗訝��걢�굢嶸←릤�끾Ł�솏�굮�똻�겇嶸←릤'�끹걣鴉싩ㅎ�걣�룓鹽뷩걲�굥�븚�뱚�굮�뵵獄뗣걮,�뙁若싥걬�굦�걼黎뷸툑�뎸餘듐굮�닶�뵪�걮�겍黎뷸툑�걣若뚥틙�걲�굦�겙,也묊큵�걣渶좂탳�걬�굦�겲�걲��<br>(2) 璵��떃令븅뼋�겘鴉싩ㅎ�걣�븚�뱚�닶�뵪�뵵獄뗣굮�돽獄얇걮�걼�셽�궧�걢�굢�븚�뱚�겓屋꿨퐪�걲�굥鵝욜뵪�뇧�굮�닶�뵪�걲�굥�걪�겏�걣�겎�걤�겲�걲�� �걪�겗�셽�궧�겘�쐣�뼑�븚�뱚�굮黎뷸툑�걮�겍�븚�뱚�굮鸚됥걟�걼孃뚣굮�꼷�뫑�걮�겲�걲��<br>(3) �쐣�뼑�븚�뱚�겦�겗鸚됪쎍�뵵獄뗣겘�닶�뵪餓i뇫�겗黎뷸툑若뚥틙�겏�릪�셽�겓烏뚣굩�굦�겲�걲��<br>(4) �쐣�뼑�븚�뱚�굮�꽒�뼑�븚�뱚�겓鸚됪쎍�걲�굥�걪�겏�겘訝띶룾�꺗�겎�걲��<br> <br>寧�17�씉(�뼑�뇫�겗鼇덄츞)<br>OWL�궢�꺖�깛�궧�겗�닶�뵪�뼑�겗沃꿴뇫�뼀冶뗦뿥�겘鴉싩ㅎ�걣�궢�꺖�깛�궧�겗�뵵獄뗣굮�돽獄얇걮�걼�셽�궧�걢�굢�겎�걲��<br>(1) 1�뿥�뼑�뇫�겗鼇덄츞�겘00�셽00�늽�걢�굢24�셽00�늽�겲�겎�굮1�뿥�겏�걮,�궢�꺖�깛�궧�룓堊쎼겗�뼀冶뗦셽�뼋�겲�걼�겘永귚틙�셽�뼋�걣1�뿥�겗訝��붵겗�졃�릦�겓�겘,�걪�굦�굮1�뿥�겏�겳�겒�걮�겲�걲��<br>(2) 쨌鴉싧뱻礪섅겘,OWL�궢�꺖�깛�궧�겗�쐣�뼑�궢�꺖�깛�궧艅잒꺗�굮�뵵獄뗣걲�굥�슋,�쐢�겲�걼�겘亮닷뜕鵝띲겗若싨쐿黎뷸툑�뼶凉뤵겗�겳�겦�뒢�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>�몺 �쐣�뼑�궢�꺖�깛�궧黎뷸툑�겗�슋,�깺�꺖�궣�꺖�빊�겓恙쒌걯�겍�뼑�뇫�걣若싥굙�굢�굦�겲�걲��<br>�몼 �쐣�뼑�궢�꺖�깛�궧�겘黎뷸툑�걮�걼�깺�꺖�궣�꺖�빊餓ε냵�겗鴉싧뱻�굮域삥�㎩뙑�걮�겍鵝욜뵪�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>�몾 �쐣�뼑�궢�꺖�깛�궧鵝욜뵪訝�,�깺�꺖�궣�꺖瓦썲뒥�겓�굠�굥黎뷸툑�걣�룾�꺗�겎�걲�� �뿢耶섅겗若싨쐿黎뷸툑�뿥�겲�겎,餘뗣걬�굦�걼�뿥�빊�겏瓦썲뒥�뵵獄뗣걮�걼�닶�뵪�끾빊�겓野얇걲�굥�뼑�뇫�굮�뜵黎뷩걮,�궢�꺖�깛�궧�겗�닶�뵪�걣�쎍�걾�겓�겎�걤�겲�걲�귛뜵�댗黎뷸툑�겘1 �썮�겗黎뷸툑�겎�걗�굤,黎뷸툑孃뚣겗�눎�땿�겎轝▲겗若싨쐿黎뷸툑�겓瓦썲뒥�걬�굦�걼�깺�꺖�궣�꺖�빊�걣�룏�삝�걬�굦�겲�걲��<br> <br>寧�18�씉(�뼑�뇫�돂�걚�댗�걮)<br>(1) OWL�궢�꺖�깛�궧�겘�뀍�돂�걚�뵱永��뼶凉뤵겎,�뼑�뇫�겘力뺝풃訝듿퓚誤곥겒�졃�릦�굮�솮�걤�돂�걚�댗�걬�굦�겲�걵�굯�� 鵝녴걮,訝뗨쮼�겗�릢�뤇�겓屋꿨퐪�걲�굥�졃�릦�겘,�걹�굦�겓�릦�겂�걼�돂�댗�뇫�겗�뵵獄뗣걡�굠�겞�눇�릤�걣�룾�꺗�겎�걲��<br>�몺 �궢�꺖�깛�궧�겗�뒥�뀯壤볠뿥�겓�궘�깵�꺍�궩�꺂誤곮쳦�겗�슋�겓黎뷸툑�룚�굤易덀걮�굮�겑�뵪�걮�겲�걲��<br>�몼 亮닷뎺�돂�뼑�뇫�겗�궢�꺖�깛�궧鰲g큵誤곮쳦�셽,鰲g큵�뿥�썗�뿥�걢�굢餘뗤퐰�뿥�빊�겲�겎�겓�쎑壤볝걲�굥�뇫窈띲걢�굢渶뤷닶�뵪�뇫窈�(若싦쐴�겎鼇덄츞)�겗10%(鰲g큵�뎸�빊�뼑)�굮�렒�솮孃뚧돂�걚�댗�걮�걮�겲�걲��<br>�몾 �돂�걚�댗�걮�뇫窈띲겘鴉싧뱻�걣�돂�걚�댗�걮�뵵獄뗦셽�겓�뙁若싥걮�걼�룭佯㎯겓�뤎�뇫�겎�뀯�뇫�걬�굦�겲�걲��<br>�몿 鰲g큵�뼑�뇫�겗�돂�걚�댗�걮�셽�쐿�겘,�뒥�뀯鰲g큵�뿥�읃繹뽧겎15�뿥餓ε냵�뵱�돂�걝�굚�겗�겏�걮�겲�걲��<br> <br>寧�19�씉(�릫若녘퀬�꽏)<br>(1) 鴉싩ㅎ�겗�궢�꺖�깛�궧�룓堊쎼겏�뼟�c걮�겍鴉싩ㅎ�겗�븙�꼷�겲�걼�겘�뇥�걥鸚긱겓�굠�굤鴉싧뱻�걣�궢�꺖�깛�궧�닶�뵪�겓�릫若녈굮熬ャ겂�걼�졃�릦,�겑�늾�겒獒쒎꽏�굮�룛�걨�굥�걪�겏�걣�겎�걤�겲�걲�귝릫若녘퀬�꽏�굮獄뗦콆�걮�걼�걚�졃�릦�겘,�걪�굦�겓野얇걲�굥雅뗧뵳,獄뗦콆窈띲걡�굠�겞嶸쀥눣�졊�떊�굮鼇섋펹�걮�겍�쎑�씊�겎�뵵獄뗣걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��<br> <br>寧�20�씉(�뀓縕ф씉�쟿)<br>(1) 鸚⑴겱�쑑鸚�,�닰雅됧룋�겞�걹�겗餓뽧걪�굦�겓繹뽧걳�굥訝띶룾�뒚�뒟�겓�굠�굤�궢�꺖�깛�궧�굮�룓堊쎼겎�걤�겒�걚�졃�릦<br>(2) �읃亮백�싦에雅뗦���끹걣�쎔麗쀩�싦에�궢�꺖�깛�궧�굮�걶閭㏂걮�걼�굤,閭e만�겓�룓堊쎼걵�걳�릫若녈걣�쇇�뵟�걮�걼�졃�릦<br>(3) 쨌鴉싧뱻�겗躍계껄雅뗧뵳�겓�굠�굥�궢�꺖�깛�궧�닶�뵪�겗�슌若녑룉�겘�릫若녈걣�쇇�뵟�걮�걼�졃�릦<br>(4) �궢�꺖�깛�궧�뵪鼇��굺�겗獒쒍엶,�룚�쎘�걟,若싨쐿�궧濾�,藥δ틟�겒�겑�굜���굮�걟�겒�걚�릤�뵳�겎�릫若녈걣�쇇�뵟�걮�걼�졃�릦<br>(5) �쎔麗쀩�싦에雅뗦��力뺝룋�겞�뼺烏뚥빱誤뤷츣�겓�굠�굤,�궢�꺖�깛�궧�굮�닶�뵪�걮�겍曆ヤ묽�돥�굜訝띸찋�겒�냵若�,�솞�겱�겗雅뗥츪�겓�굠�굥�릫沃됪��릫,訝띷퀡�궠�깞�꺖�겒�겑�윥�쉪縕←뵣與⒲겗堊드��,�쎖若뜻찣野녵쓸若�,�쓵弱묈뭅�쐣若녑첅鵝볡돥�겒�겑�굮鴉앶��,岳앭춼,�뀱鴉싥걲�굥�걪�겏�겓�굠�굤�쇇�뵟�걲�굥�겏�걚�걝鴉싧뱻�겗�릫若녈겓力뺟쉪�겒縕т뻣�굮縕졼걚�겲�걵�굯��<br>(6) �궧�깉�꺃�꺖�궦�굮岳앭춼�걲�굥�뎺�겓�깓�긿�깉�꺈�꺖�궚嶺됥겗�뼺鼇��슌若녈겎�궢�꺖�깛�궧�닶�뵪�걣訝��뼪�걬�굦�걼�굤,�깈�꺖�궭�릫鸚�,�궓�꺀�꺖�겒�겑�걣�쇇�뵟�걮�걼�졃�릦<br>(7) �씆閭e만�겓岳앭춼�걬�굦�걼蘊뉑뼑�겗�졃�릦�� 鵝녴걮,\"閭e만�겓岳앭춼�걬�굦�걼蘊뉑뼑\"�겏�겘,鴉싧뱻�걣蘊뉑뼑�굮邕��곥걮�걼孃�,若백뇧罌쀦툤�굜獄멱닾掠욄�㎯겗鸚됪쎍�겒�걮�겓閭e만�겓�궧�깉�꺃�꺖�궦�겓岳앭춼�걬�굦�굥�걪�겏�굮�꼷�뫑�걮�겲�걲��<br>(8) 鴉싧뱻礪섅겗�깱�궧�굜�궢�꺖�깛�궧�겓野얇걲�굥訝띶뛻�늽�겒�릤鰲c겓�굠�겂�겍鴉싧뱻礪섅겓�릫若녈걣�뵟�걯�걼�졃�릦<br>(9) 鴉싩ㅎ�겘鴉싧뱻礪섅걣�닶�뵪也묊큵�굮鰲g큵�걮�걼�굤,�븚�뱚�겗鸚됪쎍,鵝욜뵪�끹굜璵��떃令븅뼋�겗鰲g큵�겓�굠�굥�깈�꺖�궭易덂ㅁ�겒�겑�겓野얇걮�겍�겘縕т뻣�굮縕졼걚�겲�걵�굯��<br>(10) 鴉싧뱻礪섅걣�눎�늽�겗ID/�깙�궧�꺈�꺖�깋�굮餓뽨볶�겓�뀶�뼀�걮�걼�굤,嶸←릤�걣烏뚣걤掠듽걚�겍�걚�겒�걚�걼�굙ID/�깙�궧�꺈�꺖�깋�걣�쑓�눣�걮,鴉싧뱻�겓鵝뺛굢�걢�겗�릫若녈걣�쇇�뵟�걮�걼�졃�릦<br>(11) �냶譯묆겒�궢�꺖�깛�궧�룓堊쎼겗�걼�굙,若싨쐿�궧濾쒌굜渶딀�η궧濾쒌겗�뼺烏뚧셽,雅뗥뎺�몜�윥孃뚥��셽�쉪�겓�궢�꺖�깛�궧�굮�걶閭㏂걲�굥�걪�겏�걣�겎�걤,�걪�굦�겓�굠�굤�궢�꺖�깛�궧�굮�닶�뵪�겎�걤�겒�걚�걪�겏�겓�굠�굤�뵟�걯�걼�릫若녈겗�졃�릦,縕т뻣�걣�뀓縕с걬�굦�겲�걲��<br>(12) 鴉싩ㅎ�겘鴉싧뱻�쎑雅믧뼋,鴉싧뱻�겗�뼟岳귚폏鹽�,�겲�걼�겘寧т툒�끹겗�쎑雅믧뼋�겓�궢�꺖�깛�궧�굮餓뗣걮�겍�뵟�걯�걼榮쎽틝�겓野얇걮�겍�겘餓뗥뀯�걲�굥獰⒴떃�걣�겒�걦,�걪�굦�겓�굠�굥�릫若녈굮蘊졾꽏�걲�굥縕т뻣�걣�걗�굤�겲�걵�굯��<br> <br>寧�21�씉(繹뽪떊力뺝룋�겞�겓�뼟�걲�굥)<br>(1) 鴉싩ㅎ�겏鴉싧뱻�겘�궢�꺖�깛�궧�겓�뼟�걮�겍,�쇇�뵟�걮�걼榮쎽틝�굮�냶繹��겓鰲f군�걲�굥�걼�굙�겓,�쎑雅믧뼋�겗���뻹�겗�뒱�뒟�굮�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��<br>(2) 鴉싩ㅎ�걣若싥굙�굥�붃嶺뽩룉�겘�닶�뵪榮꾣Ь�겓�삇鹽뷩걬�굦�겍�걚�겒�걚雅뗩쟿�겓�겇�걚�겍�겘,�쎔麗쀩�싦에雅뗦��力�,�깄�젿�싦에泳꿨닶�뵪岳껈�꿰춬�겓�뼟�걲�굥力뺝풃�룋�겞�걹�겗餓뽭뼟�f퀡餓ㅳ겗誤뤷츣,�쑍榮꾣Ь�겗擁f뿨�룋�겞�릪葉�璵��븣�겗訝��닾�쉪�겒�뀭烏뚣겓�굠�굤鰲i뇠�겑�뵪�걬�굦�겲�걲��<br>(3) 鴉싩ㅎ�겏鴉싧뱻�뼋�겗�궢�꺖�깛�궧�겗�닶�뵪�겓�뼟�걮�겍�쇇�뵟�걮�걼榮쎽틝�걣�냶繹��겓鰲f군�걮�겒�걚�졃�릦,�뼟�h㉣鼇잆겗嶸↑퐚�겘鴉싩ㅎ�쑍佯쀣겗���쑉�쑑�굮嶸↑퐚�걲�굥獒곩닩���겏�걮�겲�걲��<br>�� �뼺烏뚧뿥:2018亮�11�쐢09�뿥", + + "workspaceUserManagement" : "璵��떃令븅뼋�깺�꺖�궣�꺖嶸←릤", + "numberOfParticipants" : "�뢿�뒥�룾�꺗雅뷴뱻", + "participation" : "�뢿�뒥", + "waitForParticipation" : "�뢿�뒥孃끾찣", + "withdrawal" : "Withdrawal", + "canParticipate" : "�뢿�뒥�룾�꺗", + "installingManagerServerAddress" : "(�깯�깓�궦�깵�꺖鼇�營��궢�꺖�깘�꺖�궋�깋�꺃�궧)", + "failedToSelectWorkspaceInformation" : "�눎�늽�걣嶸←릤�걲�굥璵��떃令븅뼋�깄�젿�겗�뀱鴉싥겓鸚길븮", + "failedToPaymentInformation" : "黎뷸툑�깄�젿�겗�뀱鴉싥겓鸚길븮", + "completedPayment" : "黎뷸툑若뚥틙", + "failedPayment" : "黎뷸툑鸚길븮", + "cancelTheRegularPaymentReceive" : "若싨쐿黎뷸툑�굮�룚�굤易덀걮�겲�걲�걢�� \n鵝욜뵪�뼑�뇫�굮�솮�걚�걼�뇫窈띲걣7�뿥餓ε냵�겓�돂�걚�댗�걬�굦�겲�걲��", + "failedToCancelPayment" : "黎뷸툑�룚�굤易덀걮鸚길븮", + "failedToModifyWorkspaceName" : "璵��떃令븅뼋�릫岳�閭eㅁ�븮", + "failedToRegularPaymentChange" : "若싨쐿黎뷸툑鸚됪쎍�겗鸚길븮", + "failedToParticipationStatusChange" : "�뢿�뒥�듁�뀑�겗鸚됪쎍鸚길븮", + "failedToSelectWorkspaceFullUserList" : "璵��떃令븅뼋�뀲鵝볝겗�깺�꺖�궣�꺖�꺁�궧�깉�뀱鴉싥겓鸚길븮" + }, + + "issue" : { + "issueType" : "�궎�궥�깷�꺖쨌�궭�궎�깤", + "managementIssue" : "�궎�궥�깷�꺖嶸←릤", + "createIssue" : "�궎�궥�깷�꺖鵝쒌굤", + "issueStatus" : "雅됬궧�듁�뀑", + "issueNumber" : "�궎�궥�깷�꺖�빁�뤇", + "issueContent" : "雅됬궧�냵若�", + "issueTitle" : "�궎�궥�깷�꺖窈뚨쎅", + "requireIssueTitle" : "�궎�궥�깷�꺖�겗�궭�궎�깉�꺂�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "issueList" : "�궎�궥�깷�꺖쨌�꺁�궧�깉", + "summaryIssueActivity" : "�궎�궥�깷�꺖域삣땿�겗�냵鼇녈굮誤곭큵", + "modifyIssues" : "�궎�궥�깷�꺖岳�閭�", + "continueCreateIssue" : "�걪�겗�뵽�씊�겎�궎�궥�깷�꺖�굮�뵟�닇�걮泳싥걨�겲�걲��", + "initializedAssigneeCustomField" : "�깤�꺆�궦�궒�궚�깉�굮鸚됪쎍�걲�굥�겏,�땯壤볢��,�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�ㅳ걣�닜�쐿�뙑�걬�굦�겲�걲��", + "setUpUsersParticipatingInProject" : "�깤�꺆�궦�궒�궚�깉�겓�뢿�뒥�걲�굥�깺�꺖�궣�굮鼇�若싥걮�겲�걲��", + "initializedIssueStatus" : "�궭�궎�깤�굮鸚됪쎍�걲�굥�졃�릦,�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋,�궎�궥�깷�꺖�듁�뀑�걣�닜�쐿�뙑�걬�굦�겲�걲��", + "clickToSelectDate" : "�궚�꺁�긿�궚�걲�굥�겏�뿥餓섅굮�겦�뒢�걲�굥�걪�겏�걣�겎�걤�겲�걲��", + "notIssueTypeCustomFields" : "�궎�궥�깷�꺖�궭�궎�깤�겓濚뗣걣�겂�겍�걚�굥�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�겘�걗�굤�겲�걵�굯��", + "attachOnlyFiles" : "hwp, jpg, png, txt, pptx, pdf, xlsx, xls, docx, zip, gif, jpeg, doc, tif, bmp, wmv, avi, mp4, mkv, mov, mov�깢�궊�궎�꺂�걽�걨�굮曆삡퍡�걲�굥�걪�겏�걣�겎�걤�겲�걲��", + + + "registerExcelIssues" : "�궓�궚�궩�꺆�븦窈뚨쇉�뙯", + "videoExample" : "�땿�뵽堊뗩죱", + "writeWaring" : "鵝쒏닇誤곲젞", + "pleaseEnterIssueName" : "濾쒐뇨�걲�굥�궎�궥�깷�꺖�릫�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "selectProjectAndIssueTypeDownloadExcel" : "�깤�꺆�궦�궒�궚�깉,�궎�궥�깷�꺖�궭�궎�깤�굮�겦�뒢�걲�굥�겏,屋꿨퐪�걲�굥礪섇폀�겗�궓�궚�궩�꺂�굮���궑�꺍�꺆�꺖�깋�걲�굥�걪�겏�걣�겎�걤�겲�걲��", + "settingTableDisplay" : "�깇�꺖�깣�꺂烏①ㅊ鼇�若�", + "deleteIssue" : "�궎�궥�깷�꺖�뎷�솮", + "wantToDeleteSelectIssue" : "�겦�뒢�걮�걼�궎�궥�깷�꺖�굮�뎷�솮�걮�겲�걲�걢�� �뎷�솮�걬�굦�걼�븦窈뚣겘孃⒵뿧�겎�걤�겲�걵�굯��", + "failedToSaveFieldConditions" : "濾쒐뇨�깢�궍�꺖�꺂�깋�겗�씉餓뜸퓷耶섅겓鸚길븮", + "failedToGetSearchFieldCondition" : "濾쒐뇨�깢�궍�꺖�꺂�깋�겗�씉餓뜸퍡�걢�겒�걚鸚길븮", + "failedIssueLookup" : "�궎�궥�깷�꺖�뀱鴉싧ㅁ�븮", + "selectionCheck" : "�겦�뒢野얕괌閻븃첀", + "selectIssueToChangeStatus" : "�듁�뀑�굮鸚됪쎍�걲�굥�궎�궥�깷�꺖�굮�겦�굯�겎�걦�걽�걬�걚��", + "notHaveDeletePermissionExistsAnIssue" : "�뎷�솮與⑶솏�겗�겒�걚�궎�궥�깷�꺖�걣耶섇쑉�걮�겲�걲��", + "failedToIssueTypeListLookup" : "雅됬궧窈욃엹�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToPriorityListLookup" : "�꽛�뀍�젂鵝띲꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToCriticalListLookup" : "�뇥誤곩벧�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToUserDefinedFieldListLookup" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToIssueTableColumnLookup" : "�궎�궥�깷�꺖�깇�꺖�깣�꺂�궠�꺀�깲�뀱鴉싥겓鸚길븮", + "capacityExceededImageFile" : "�궎�깳�꺖�궦�깢�궊�궎�꺂若백뇧擁낂걥", + "attachedOnlyImageFiles10mb" : "10MB餓δ툔�겗�궎�깳�꺖�궦�깢�궊�궎�꺂�겗�겳曆삡퍡�룾�꺗�겎�걲��", + "attachedMultipleImageFiles100mb" : "筽뉑빊�겗�궎�깳�꺖�궦�굮訝�佯╉겓曆삡퍡�걲�굥�졃�릦,100MB餓δ툔�겲�겎�겗�겳曆삡퍡�걣�룾�꺗�겎�걲��", + "limitImageFile" : "�궎�깳�꺖�궦�깢�궊�궎�꺂�댍�솏", + "canBeUploadedOnlyImageFiles" : "�궎�깳�꺖�궦�깢�궊�궎�꺂�겗�겳�궋�긿�깤�꺆�꺖�깋�룾�꺗�겎�걲�� - bmp, jpg, jpeg, png, tif", + "previewImage" : "�궎�깳�꺖�궦�겗�뎺鰲╉굦", + "nameErrorImageFile" : "�궎�깳�꺖�궦�깢�궊�궎�꺂�릫�궓�꺀�꺖", + "cannotUploadFileNameSpecialCharacters" : "�깢�궊�궎�꺂�릫�겓�돶餘딀뻼耶쀣걣�뀯�굥�겏�궋�긿�깤�꺆�꺖�깋�겎�걤�겲�걵�굯��", + "errorFileUpload" : "�깢�궊�궎�꺂�궋�긿�깤�꺆�꺖�깋�궓�꺀�꺖", + "attachmentCapacityExceeded" : "曆삡퍡�깢�궊�궎�꺂若백뇧擁낂걥", + "canAttachFileUpTo100mb" : "100MB餓δ툔�겲�겎�겗�겳�깢�궊�궎�꺂曆삡퍡�걣�룾�꺗�겎�걲��", + "limitAttachmentExtensions" : "曆삡퍡�깢�궊�궎�꺂�떋凉드춴�댍�솏", + "notAllowedAttachment" : "曆삡퍡�걣鼇긱걬�굦�겒�걚�깢�궊�궎�꺂�겎�걲��", + "nameErrorAttachment" : "曆삡퍡�깢�궊�궎�꺂�릫�궓�꺀�꺖", + "succeededIssueRegistration" : "�븦窈뚨쇉�뙯�겗�닇�뒣", + "failedIssueRegistration" : "�븦窈뚨쇉�뙯鸚길븮", + "failedIssueModify" : "�궎�궥�깷�꺖岳�閭eㅁ�븮", + "failedToProjectDetails" : "�깤�꺆�궦�궒�궚�깉屋녕눗�깄�젿�겗�뀱鴉싥겓鸚길븮", + "failedToUserDefinedFieldListAssociatedLookup" : "�븦窈뚣궭�궎�깤�겓�겇�겒�걣�굥�깺�꺖�궣�꺖若싩쑴�깢�궍�꺖�꺂�깋�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "applyTemplate" : "�깇�꺍�깤�꺃�꺖�깉�겑�뵪", + "issueContentIsWrittenApplyTheTemplate" : "�궎�궥�깷�꺖�냵若밤걣鵝쒏닇�걬�굦�겍�걚�겲�걲�� �깇�꺍�깤�꺃�꺖�깉�굮�겑�뵪�걮�겲�걲�걢�� �깇�꺍�깤�꺃�꺖�깉�걣�겑�뵪�걬�굦�굥�겏�뿢�겓鵝쒏닇�걬�굦�걼�냵若밤걣易덀걟�겲�걲��", + "failedIssueStatusCheck" : "燁삣땿�룾�꺗�겒�궎�궥�깷�꺖�듁�뀑�뀱鴉싥겓鸚길븮", + "failedToChangeMultipleIssueStatus" : "鸚싮뇥�궎�궥�깷�꺖�듁�뀑鸚됪쎍鸚길븮", + "completedSavingIssueTable" : "�궎�궥�깷�꺖�깇�꺖�깣�꺂鼇�若싦퓷耶섇츑雅�", + "saveIssueTableSettingsInformation" : "�궎�궥�깷�꺖�깇�꺖�깣�꺂�겗鼇�若싨깄�젿�걣岳앭춼�걬�굦�겲�걮�걼��", + "failedToSaveIssueTableSetting" : "�궎�궥�깷�꺖�깇�꺖�깣�꺂�겗鼇�若싦퓷耶섅겓鸚길븮", + "errorRemovableIssueStatusList" : "燁삣땿�룾�꺗�겒�궎�궥�깷�꺖�듁�뀑,�꺁�궧�깉�뀱鴉싥궓�꺀�꺖", + "errorIssueDetails" : "�븦窈뚩㈂榮경깄�젿�뀱鴉싥겓�깱�궧", + "failedToRegisterComments" : "�쎑�걤渦쇈겳�쇉�뙯�겗鸚길븮", + "deleteComments" : "�궠�깳�꺍�깉�뎷�솮", + "failedToDeleteComments" : "�쎑�걤渦쇈겳�뎷�솮鸚길븮", + "wantToDeleteTheSelectedComments" : "�겦�뒢�걮�걼�궠�깳�꺍�깉�굮�뎷�솮�걮�겲�걲�걢�� �뎷�솮�걬�굦�걼�쎑�걤渦쇈겳�겘孃⒵뿧�겎�걤�겲�걵�굯��", + "failedToGetCommentListData" : "�꺁�깤�꺀�궎�꺁�궧�깉,�깈�꺖�궭�걣�뎸�겓�뀯�굢�걳", + "failedToAttachmentList" : "曆삡퍡�깢�궊�궎�꺂�겗�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "setIssueTableDisplay" : "�궎�궥�깷�꺖�깇�꺖�깣�꺂烏①ㅊ鼇�若�", + "columnName" : "�궠�꺀�깲�릫", + "area" : "佯껁걬", + "displayed" : "烏①ㅊ�룾�맔", + "sequence" : "�젂佯�", + "cannotChangedIssueTitle" : "�궎�궥�깷�꺖�겗�궭�궎�깉�꺂�겘鸚됪쎍�겎�걤�겲�걵�굯��", + "selectSendIssueMail" : "�깳�꺖�꺂�쇇�곩�얕괌�낂겦若�", + "sendIssueSelectedUsers" : "�겦�뒢�걮�걼�깺�꺖�궣�꺖�겓�궎�궥�깷�꺖�깄�젿�굮�곥겂�겍�걗�걩�겲�걲��", + "sendMail" : "�깳�꺖�꺂�쇇��", + "changedHistory" : "�궎�궥�깷�꺖鸚됪쎍掠ζ�담겗屋녕눗", + "noChangeHistory" : "�궎�궥�깷�꺖鸚됪쎍�깄�젿�겒�걮��", + "changedTime" : "鸚됪쎍�걬�굦�걼�셽�뼋", + "changedUser" : "鸚됪쎍�걬�굦�걼�깺�꺖�궣�꺖", + "issueReservation" : "�궎�궥�깷�꺖�쇇�뵟雅덄큵", + "issueReservationType" : "�궎�궥�깷�꺖�쇇�뵟雅덄큵�엹", + "issueReservationDescription" : "�궎�궥�깷�꺖�굮�돶若싨뿥�겓�냽�겞�쇇�뵟�걬�걵�굥�걪�겏�걣�겎�걤�겲�걲�� <br />濚겹굤瓦붵걮烏뚣걝�겧�걤�궎�궥�깷�꺖�걣�걗�굥�겏�걤�겓�쐣�듅�겓鵝욍걝�걪�겏�걣�겎�걤�겲�걲��", + "everyDay" : "驪롦뿥", + "everyWeek" : "驪롩��", + "everyMonth" : "驪롦쐢", + "everyYear" : "驪롥뭅", + "scheduledDate" : "�궎�궥�깷�꺖�쇇�뵟雅덂츣�뿥", + "monday" : "�쐢�썫�뿥", + "tuesday" : "�겓�썫�뿥", + "wednesday" : "麗닸썫�뿥", + "thursday" : "�쑉�썫�뿥", + "friday" : "�뇫�썫�뿥", + "saturday" : "�쐿�썫�뿥", + "sunday" : "�뿥�썫�뿥", + "enterOnlyNumbers" : "�빊耶쀣겗�겳�뀯�뒟�겎�걤�겲�걲��", + "january" : "1", + "february" : "2", + "march" : "3", + "april" : "4", + "may" : "5", + "june" : "6", + "july" : "7", + "august" : "8", + "september" : "9", + "october" : "10", + "november" : "11", + "december" : "12", + "succeededIssueReservation" : "�궎�궥�깷�꺖�쇇�뵟雅덄큵縕��뵷�닇�뒣", + "failedIssueReservation" : "�궎�궥�깷�꺖�쇇�뵟�겗雅덄큵岳앭춼鸚길븮", + "failedToIssueReservationDetails" : "�궎�궥�깷�꺖�쇇�뵟�겗雅덄큵屋녕눗�뀱鴉싥겓鸚길븮", + "succeededIssueMail" : "�궎�궥�깷�꺖�깳�꺖�꺂�쇇�곩츑雅�", + "sentToTheSelectedUser" : "�겦�뒢�걮�걼�깺�꺖�궣�꺖�겓E�깳�꺖�꺂�걣�쇇�곥걬�굦�겲�걮�걼��", + "failedIssueMail" : "�궎�궥�깷�꺖�깳�꺖�꺂�겗�쇇�곩ㅁ�븮", + "issueVersionLookupFailed" : "�궎�궥�깷�꺖�깘�꺖�궦�깾�꺍�겗�뀱鴉싥겓鸚길븮" + }, + + "project" : { + "createProject" : "�깤�꺆�궦�궒�궚�깉鵝쒌굤", + "projectKey" : "�깤�꺆�궦�궒�궚�깉쨌�궘�꺖", + "projectStatus" : "�깤�꺆�궦�궒�궚�깉�듁�뀑", + "projectType" : "�깤�꺆�궦�궒�궚�깉쨌�궭�궎�깤", + "projectAdmin" : "�깤�꺆�궦�궒�궚�깉�깯�깓�꺖�궦�깵", + "projectTeam" : "�깤�꺆�궦�궒�궚�깉�긽�꺖�깲�뱻", + "modifyProject" : "�깤�꺆�궦�궒�궚�깉岳�閭�", + "settingCustomFields" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋鼇�若�", + "selectCustomField" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋�겦�뒢", + "availableFields" : "鵝욜뵪�룾�꺗�겒�깢�궍�꺖�꺂�깋", + "inUseField" : "鵝욜뵪訝��겗�깢�궍�꺖�꺂�깋", + "pleaseEnterProjectName" : "�깤�꺆�궦�궒�궚�깉�릫�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "deleteProject" : "�깤�꺆�궦�궒�궚�깉�뎷�솮", + "wantToDeleteSelectProject" : "�겦�뒢�걮�걼�깤�꺆�궦�궒�궚�깉�굮�뎷�솮�걮�겲�걲�걢�� �뎷�솮�걬�굦�걼�깤�꺆�궦�궒�궚�깉�겘孃⒵뿧�겎�걤�겲�걵�굯��", + "notHaveDeletePermissionExistsProject" : "�뎷�솮與⑶솏�겗�겒�걚�깤�꺆�궦�궒�궚�깉�걣耶섇쑉�걮�겲�걲��", + "failedToProjectListLookup" : "�깤�꺆�궦�궒�궚�깉�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedProjectCreation" : "�깤�꺆�궦�궒�궚�깉�뵟�닇鸚길븮", + "saveCompleteFieldManagement" : "�깢�궍�꺖�꺂�깋嶸←릤岳앭춼若뚥틙", + "saveUserDefinedFieldAndIssueTypeConnection" : "�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�겏�궎�궥�깷�꺖�궭�궎�깤�g탳�깄�젿�걣岳앭춼�걬�굦�겲�걮�걼��", + "failedToSaveFieldManagement" : "�깢�궍�꺖�꺂�깋嶸←릤岳앭춼�겓鸚길븮", + "failedToModifyProject" : "�깤�꺆�궦�궒�궚�깉岳�閭eㅁ�븮", + "failedToProjectDetails" : "�깤�꺆�궦�궒�궚�깉屋녕눗�깄�젿�겗�뀱鴉싥겓鸚길븮", + "failedToProjectMember" : "�깤�꺆�궦�궒�궚�깉�깳�꺍�깘�꺖�겗�뀱鴉싥겓鸚길븮", + "failedToProjectKeyPattern" : "�깤�꺆�궦�궒�궚�깉�궘�꺖�겗�뀯�뒟�ㅳ걣�뼋�걬�겂�겍�걚�겲�걲��", + "limitNameToSpecialCharacters" : "�깤�꺆�궦�궒�궚�깉�릫�겘�돶餘딀뻼耶쀣굮�뀯�뒟�겎�걤�겲�걵�굯��" + }, + + "managementStatus" : { + "managementStatus" : "�듁�뀑嶸←릤", + "createStatus" : "�듁�뀑鵝쒌굤", + "issueStatusName" : "�궎�궥�깷�꺖�듁�뀑�릫", + "statusProperties" : "�듁�뀑掠욄��", + "createIssueStatus" : "�궎�궥�깷�꺖�듁�뀑鵝쒌굤", + "modifyIssueStatus" : "�궎�궥�깷�꺖�듁�뀑岳�閭�", + "useInTheWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖�겎�궎�궥�깷�꺖�듁�뀑�걣鵝욜뵪訝��겎�걲�� �릫�뎺�겗鸚됪쎍�셽,�궎�궥�깷�꺖�듁�뀑�굮鵝욜뵪�걲�굥�뀲�겍�겗�꺈�꺖�궚�깢�꺆�꺖鼇덄뵽�겓�궎�궥�깷�꺖�듁�뀑�릫�걣鸚됪쎍�걬�굦�겲�걲��", + "builtInIssueStatus" : "�읃�쑍�쉪�겓�룓堊쎼걬�굦�굥�궎�궥�깷�꺖�듁�뀑�겘掠욄�㎯굮鸚됪쎍�걲�굥�걪�겏�겘�겎�걤�겲�걵�굯��", + "pleaseEnterIssueStatusName" : "�궎�궥�깷�꺖�듁�뀑�릫�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "updateNotStatusProperties" : "�뵟�닇孃뚣겘�듁�뀑掠욄�㎯굮鸚됪쎍�걲�굥�걪�겏�겘�겎�걤�겲�걵�굯��", + "deleteIssueStatus" : "�궎�궥�깷�꺖�듁�뀑�뎷�솮", + "wantToDeleteSelectIssueStatus" : "�겦�뒢�걮�걼�궎�궥�깷�꺖�듁�뀑�굮�뎷�솮�걮�겲�걲�걢�� �뎷�솮�걬�굦�걼�궎�궥�깷�꺖�듁�뀑�겘孃⒵뿧�겎�걤�겲�걵�굯��", + "failedToCreateIssueStatus" : "�궎�궥�깷�꺖�듁�뀑�뵟�닇鸚길븮", + "failedToModifyIssueStatus" : "�궎�궥�깷�꺖�듁�뀑�겗岳�閭eㅁ�븮", + "failedToIssueStatusDetails" : "�븦窈뚨듁�뀑屋녕눗�깄�젿�뀱鴉싥겓鸚길븮", + "limitNameToSpecialCharacters" : "�궎�궥�깷�꺖�듁�뀑�릫�겘�돶餘딀뻼耶쀣굮�뀯�뒟�겎�걤�겲�걵�굯��" + }, + + "managementWorkflow" : { + "managementWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖嶸←릤", + "workflowName" : "�꺈�꺖�궚�깢�꺆�꺖�릫", + "createWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖鵝쒌굤", + "modifyWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖岳�閭�", + "deleteIssueStatusInTheUse" : "鵝욜뵪�걬�굦�겍�걚�굥�듁�뀑�굮�뎷�솮�걮�걼�졃�릦,�뤎�쑉�꺈�꺖�궚�깢�꺆�꺖�굮鵝욜뵪�걮�겍�걚�굥誤곫콆雅뗩쟿/�깇�궧�깉�궞�꺖�궧/�궎�궥�깷�꺖�듁�뀑�걣�듁�뀑掠욄��\"孃끾찣\"�겗�듁�뀑�겓鸚됪쎍�걬�굦�겲�걲", + "statusList" : "�듁�뀑�꺁�궧�깉", + "insert" : "�뀯�굦", + "startPoint" : "屋⒳퐳", + "endPoint" : "永귞궧", + "designNotCompleteWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖�겗�깈�궣�궎�꺍�걣若뚥틙�걮�겍�걚�겲�걵�굯��", + "onlyOneStatusPropertyWaitIssueStatus" : "�꺈�꺖�궚�깢�꺆�꺖�겓�겘�듁�뀑掠욄��\"孃끾찣\"�겒�궎�궥�깷�꺖�듁�뀑�걣1�겇�걽�걨耶섇쑉�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��", + "onlyOneStatusPropertyProgressIssueStatus" : "�꺈�꺖�궚�깢�꺆�꺖�겓�겘�듁�뀑掠욄�㎯겗\"�꿱죱\"�겎�걗�굥�궎�궥�깷�꺖�듁�뀑�걣1�겇餓δ툓耶섇쑉�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��", + "onlyOneStatusPropertyEndIssueStatus" : "�꺈�꺖�궚�깢�꺆�꺖�겓�겘�듁�뀑掠욄�㎯겗\"永귚틙\"�겎�걗�굥�궎�궥�깷�꺖�듁�뀑�걣1�겇餓δ툓耶섇쑉�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��", + "pleaseEnterWorkflowName" : "�꺈�꺖�궚�깢�꺆�꺖�릫�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "connectedIssueType" : "�g탳�걲�굥�궎�궥�깷�꺖�궭�궎�깤", + "notHaveDeletePermissionExistsWorkflow" : "�뎷�솮與⑶솏�겗�겒�걚�꺈�꺖�궚�깢�꺆�꺖�걣耶섇쑉�걮�겲�걲��", + "deleteWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖�뎷�솮", + "wantToDeleteTheSelectedWorkflow" : "�겦�뒢�걮�걼�꺈�꺖�궚�깢�꺆�꺖�굮�뎷�솮�걮�겲�걲�걢�� �뎷�솮�걬�굦�걼�꺈�꺖�궚�깢�꺆�꺖�겘孃⒵뿧�겎�걤�겲�걵�굯��", + "failedWorkflowListLookup" : "�꺈�꺖�궚�깢�꺆�꺖�꺁�궧�깉�겗�뀱鴉싥겓鸚길븮", + "failedCreateWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖�뵟�닇鸚길븮", + "failedToModifyWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖岳�閭eㅁ�븮", + "failedToWorkflowDetails" : "�꺈�꺖�궚�깢�꺆�꺖�겗屋녕눗�깄�젿�뀱鴉싥겓鸚길븮", + "failedToPutIssueStatus" : "�궎�궥�깷�꺖�듁�뀑�겗永꾠겳渦쇈겳鸚길븮", + "onlyOneInTheWorkflow" : "�꺈�꺖�궚�깢�꺆�꺖�겓�겘�듁�뀑掠욄��'鸚㎪컱'�겒�븦窈뚣겘1�겇�걽�걨耶섇쑉�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��", + "removeMetastaticLine" : "�겥燁사퇉�솮�렮", + "removeIssueStatus" : "�궎�궥�깷�꺖�듁�뀑�솮�렮", + "limitNameToSpecialCharacters" : "�꺈�꺖�궚�깢�꺆�꺖�릫�겘�돶餘딀뻼耶쀣굮�뀯�뒟�겎�걤�겲�걵�굯��", + "excludeWorkflowParticipation " : "璵��떃令븅뼋�겦�겗�뢿�뒥�겘�솮鸚�", + "imageDownloadNotSupported" : "�궎�깳�꺖�궦���궑�꺍�꺆�꺖�깋�걣�궢�깮�꺖�깉�걬�굦�겒�걚��", + "IEDoesNotSupport" : "IE �겎�겘�궎�깳�꺖�궦���궑�꺍�꺆�꺖�깋�굮�궢�깮�꺖�깉�걮�겒�걚��" + }, + + "support" : { + "support" : "Support", + "supportFAQ" : "Frequently Question", + "supportQNA" : "Question / Answer" + }, + + "customField" : { + "createField" : "�깢�궍�꺖�꺂�깋鵝쒌굤", + "customFieldName" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋�릫", + "fieldType" : "�깢�궍�꺖�꺂�깋�궭�궎�깤", + "createCustomField" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋鵝쒌굤", + "createSingleFieldList" : "�뜕訝��겦�뒢�깢�궍�꺖�꺂�깋�꺁�궧�깉�겈�걦�굤", + "createMultiFieldList" : "鸚싮뇥�겦�뒢�깢�궍�꺖�꺂�깋�꺁�궧�깉�겈�걦�굤", + "defaultValue" : "�읃�쑍��", + "selectSingleFieldListHashTag" : "�뜕訝��겗�겦�뒢�깢�궍�꺖�꺂�깋�꺁�궧�깉�겓�걗�굥�ㅳ굮�깈�깢�궔�꺂�깉�겎�겦�뒢�걮�걼�걚�겏�걤�겘,�깗�긿�궥�깷�궭�궛�굮鵝욜뵪�걲�굥恙낁쫨�걣�걗�굤�겲�걲�� 野얕괌��", + "selectMultiFieldListHashTag" : "鸚싮뇥�겦�뒢�깢�궍�꺖�꺂�깋�꺁�궧�깉�겓�걗�굥�ㅳ굮�깈�깢�궔�꺂�깉�겎�겦�뒢�걮�걼�걚�겏�걤�겘,�깗�긿�궥�깷�궭�궛�굮鵝욜뵪�걲�굥恙낁쫨�걣�걗�굤�겲�걲�� #野얕괌��", + "modifyCustomFields" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋岳�閭�", + "pleaseEnterUserDefinedFieldName" : "�깺�꺖�궣�꺖若싩쑴�깢�궍�꺖�꺂�깋�릫�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "deleteUserDefinedFields" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋�뎷�솮", + "wantToDeleteSelectUserDefinedFields" : "�겦�뒢�걮�걼�깺�꺖�궣�꺖若싩쑴�깢�궍�꺖�꺂�깋�굮�뎷�솮�걮�겲�걲�걢�� �뎷�솮�걬�굦�걼�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�겘孃⒵뿧�겎�걤�겲�걵�굯��", + "duplicateInputValue" : "�뀯�뒟�ㅹ뇥筽�", + "alreadyAddedValue" : "�뀯�뒟�걮�걼�ㅳ걣�뿢�겓瓦썲뒥�걬�굦�겍�걚�겲�걲��", + "failedToCreateUserDefinedFields" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋�뵟�닇鸚길븮", + "failedToModifyUserDefinedFields" : "鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋岳�閭eㅁ�븮", + "failedToDetailUserDefinedFields" : "�깺�꺖�궣�꺖若싩쑴�깢�궍�꺖�꺂�깋屋녕눗�깄�젿�뀱鴉싥겓鸚길븮", + "limitNameToSpecialCharacters" : "�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�릫�겘,�돶餘딀뻼耶쀣굮�뀯�뒟�걲�굥�걪�겏�겘�겎�걤�겲�걵�굯��", + "emptyInputValue" : "�뀯�뒟�ㅷ▶沃띲걡�윥�굢�걵", + "emptyAddValue" : "�뀯�뒟�걮�걼�ㅳ걣�걗�굤�겲�걵�굯��" + }, + + "managementType" : { + "managementIssueType" : "�궎�궥�깷�꺖쨌�궭�궎�깤嶸←릤", + "createIssueType" : "�궎�궥�깷�꺖쨌�궭�궎�깤", + "modifyIssueType" : "�궎�궥�깷�꺖�궭�궎�깤岳�閭�", + "issueTypeName" : "�궎�궥�깷�꺖쨌�궭�궎�깤�릫", + "enterIssueTypeName" : "�궎�궥�깷�꺖�궭�궎�깤�릫�굮�뀯�뒟�걮�겍�걦�걽�걬�걚", + "managementType" : "窈욃엹嶸←릤", + "createType" : "窈욃엹�겈�걦�굤", + "typeName" : "�쐣壤℡릫", + "modifyType" : "窈욃엹岳�閭�", + "template" : "�깇�꺍�깤�꺃�꺖�깉", + "registerAnIssueTemplate" : "�깇�꺍�깤�꺃�꺖�깉�굮�걗�굢�걢�걯�굙鵝쒏닇�걮�겍�궎�궥�깷�꺖�굮�쇉�뙯�걲�굥�슋,�냵若밤깢�궍�꺖�꺂�깋�겓鵝욜뵪�걲�굥�걪�겏�걣�겎�걤�겲�걲��", + "updateWorkflowIssueStatusStandby" : "�꺈�꺖�궚�깢�꺆�꺖�굮鸚됪쎍�걲�굥�졃�릦�겓鸚됪쎍�걮�굠�걝�겏�걲�굥�꺈�꺖�궚�깢�꺆�꺖�겓�듁�뀑�걣耶섇쑉�걮�겒�걨�굦�겙,�궎�궥�깷�꺖�겗�듁�뀑�걣�듁�뀑掠욄��\"孃끾찣\"�겗�듁�뀑�겓鸚됪쎍�걬�굦�겲�걲��", + "notHaveDeletePermissionExistsIssueType" : "�뎷�솮與⑶솏�겗�겒�걚�궎�궥�깷�꺖窈욃엹�걣耶섇쑉�걮�겲�걲��", + "deleteIssueType" : "�궎�궥�깷�꺖�엹�뎷�솮", + "wantToDeleteSelectIssueType" : "�겦�뒢�걮�걼�궎�궥�깷�꺖窈욃엹�굮�뎷�솮�걮�겲�걲�걢�� �뎷�솮�걬�굦�걼�궎�궥�깷�꺖窈욃엹�겘孃⒵뿧�겎�걤�겲�걵�굯��", + "failedToIssueTypeList" : "�궎�궥�깷�꺖�궭�궎�깤�꺁�궧�깉�겗�뀱鴉싥겓鸚길븮", + "failedToCreateIssueType" : "�궎�궥�깷�꺖�궭�궎�깤�뵟�닇鸚길븮", + "failedToModifyIssueType" : "�궎�궥�깷�꺖�궭�궎�깤岳�閭eㅁ�븮", + "failedToDetailIssueType" : "�궎�궥�깷�꺖�궭�궎�깤�겗屋녕눗�깄�젿�뀱鴉싥겓鸚길븮", + "limitNameToSpecialCharacters" : "�궎�궥�깷�꺖�궭�궎�깤�릫�겘�돶餘딀뻼耶쀣굮�뀯�뒟�겎�걤�겲�걵�굯��" + }, + + "users" : { + "temporaryPassword" : "�눊�셽�슅鼇쇘빁�뤇", + "guidanceTemporaryPassword" : "�눊�셽�겗�슅鼇쇘빁�뤇�쇇永�旅덂냵", + "pleaseMakeSureChangeYourPassword" : "�걡若€쭣�겗OWL ITS �궋�궖�궑�꺍�깉�깙�궧�꺈�꺖�깋鸚됪쎍�겗�걼�굙,�눊�셽�겗�깙�궧�꺈�꺖�깋�굮�쇇永╉걚�걼�걮�겲�걲�귙꺆�궛�궎�꺍孃�,恙끹걳�깙�궧�꺈�꺖�깋�굮鸚됪쎍�걮�겍�걦�걽�걬�걚��", + "phoneNumber" : "�g덧�뀍", + "modifyInformation" : "�깄�젿岳�閭�", + "updatePassword" : "�깙�궧�꺈�꺖�깋鸚됪쎍", + "setEmailNotificationTime" : "�쎔耶먦깳�꺖�꺂�걡�윥�굢�걵�셽�뼋鼇�若�", + "selectProfileShowOther" : "餓뽧겗�깺�꺖�궣�꺖�겓誤뗣걵�굥�깤�꺆�깢�궍�꺖�꺂�굮�겦�굯�겎�걦�걽�걬�걚��", + "membershipWithdrawal" : "鴉싧뱻�꽦鴉�", + "signOutNotRecovered" : "鴉싧뱻��鴉싨셽,璵��떃令븅뼋�겗�걲�겧�겍�겗�깈�꺖�궭�걣易덀걟�겍孃⒵뿧�겎�걤�겲�걵�굯��", + "existingPassword" : "�뿢耶섅겗�슅鼇쇘빁�뤇", + "newPassword" : "�뼭�걮�걚�깙�궧�꺈�꺖�깋", + "confirmNewPassword" : "�뼭�걮�걚�깙�궧�꺈�꺖�깋閻븃첀", + "checkPassword" : "�깙�궧�꺈�꺖�깋閻븃첀", + "join" : "�꽒�뼑�겎鵝욍걝", + "enable" : "域삥��", + "disable" : "�씆域삥��", + "withdrawal" : "�꽦��", + "usedAccount" : "�굚�걝�떂若싥걣�걗�굥�굯�겎�걮�굟�걝�걢?", + + "joinOWLITSMembership" : "OWL ITS �쇉�뙯", + "enterAnEmail" : "E�깳�꺖�꺂�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "enterAnPassword" : "�슅鼇쇘빁�뤇�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "pleaseSelectFile" : "�깢�궊�궎�꺂�굮�겦�뒢�걮�겍�걦�걽�걬�걚��", + "invalidEmailFormat" : "E�깳�꺖�꺂壤℡폀�걣�릦�걚�겲�걵�굯��", + "enterYourEmailAddress" : "�뀯�뒟�걮�걼E�깳�꺖�꺂�겎�걡�윥�굢�걵�걣�쇇�곥걬�굦�겲�걲�� 恙끹걳�걡鵝욍걚�겓�겒�굥E�깳�꺖�꺂�겎�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "least4CharactersPassword" : "�깙�궧�꺈�꺖�깋�겘��鵝�4�뻼耶쀤빳訝듿뀯�뒟�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��", + "enter4CharactersPassword" : "�깙�궧�꺈�꺖�깋�겘4�뻼耶쀤빳訝듽겎�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "differentPassword" : "�슅鼇쇘빁�뤇�걣�걬�걚�겲�걲��", + "contactedEnterPhone" : "�g덧�룾�꺗�겒�맳躍��빁�뤇�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "enterTheNameInWorkspace" : "�깈�깢�궔�꺂�깉�겏�걮�겍�뵟�닇�걬�굦�굥璵��떃令븅뼋�겗�릫�뎺�굮�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "agreePrivacyPolicy" : "�뗤볶�깄�젿�눇�릤�뼶�뇺�겓�릪�꼷�걮�겲�걲��", + "privacyPolicy" : "�뗤볶�깄�젿�눇�릤�뼶�뇺", + "privacyPolicy1" : "�뗤볶�깄�젿�눇�릤�뼶�뇺<br><br>WISESTONE Co., Ltd.(餓δ툔�곥�뚦퐪鹽얇�띲겏�걚�걝��)�겘�곥걡若€쭣�겗�뗤볶�깄�젿岳앲�룔굮鸚㎩쨯�뇥誤뽧걮�겍�걡�굤�곫깄�젿�싦에泳꿔겗�닶�뵪岳껈�꿨룋�겞�깄�젿岳앲�룔겓�뼟�걲�굥力뺝풃�굮�겣若덀걮�겍�걚�겲�걲�귛퐪鹽얇겘�곩�뗤볶�깄�젿�눇�릤�뼶�뇺�겗�뀶�뼀�굮�싥걮�겍�걡若€쭣�겗�뗤볶�깄�젿�걣�겑�겗�굠�걝�겒�쎅�쉪�겏�뼶凉뤵겎�닶�뵪�걬�굦�겍�걡�굤�곩�뗤볶�깄�젿岳앲�룔겗�걼�굙�걚�걢�겒�굥�렕營��굮�뼺�걮�겍�걚�굥�겗�걢�굮�삇鹽뷩걚�걼�걮�겲�걲�귝쑍�뗤볶�깄�젿�눇�릤�뼶�뇺�겘�곲뼟�f퀡餓ㅳ겗�뵻閭c굜壤볡ㅎ�겗�냵�깿�뼶�뇺�겓�굠�겂�겍鸚됪쎍�걬�굦�굥�걪�겏�걣�걗�굤�겲�걲�귛쨯�쎍�겗�슋�겓�겘�곥걚�겇�겎�굚�걹�겗�냵若밤겏�릤�뵳�굮怜▼뜕�겓�윥�굥�걪�겏�걣�겎�걤�굥�굠�걝�곥걡�윥�굢�걵雅뗩쟿�굮�싥걯�겍�걡若€쭣�겓鴉앶걫�걚�걼�걮�겲�걲�귛�뗤볶�깄�젿�눇�릤�뼶�뇺�겘�윋�쎖力뺝풃�겓�읃�겈�걚�겍鵝쒏닇�걬�굦�겍�걚�겲�걲��<br>寧�1�씉 (�뗤볶�깄�젿�겗�룑�썓�쟿�쎅�룋�겞�닶�뵪�쎅�쉪)<br>�걡若€쭣�걣�릪�꼷�걮�걼�닶�뵪誤뤹큵�겓孃볝겂�겍OWL�궢�꺖�깛�궧(OWL solution�궢�궎�깉�룋�겞OWL-ITS�곦빳訝뗣�똎WL�궢�꺖�깛�궧�띲겏�걚�걝��)�겗礪섅�끹겒艅잒꺗�굮�룓堊쎼걲�굥�걼�굙�곩퐪鹽얇겘�걡若€쭣�걢�굢餓δ툔�겗�싥굤�겗�뗤볶�깄�젿(�똿�떖�걮�겍餓δ툔�곥�뚦�뗤볶�깄�젿�띲겏�걚�걝��)�굮�룑�썓�꺕岳앯�▲걮�겍�걚�겲�걲��<br>(1) 恙낂젅�뀯�뒟雅뗩쟿<br>�몺 鴉싧뱻�쇉�뙯�셽�겗�룑�썓�쟿�쎅: E�깳�꺖�꺂�곩릫�뎺<br>(2) �겦�뒢�뀯�뒟�쟿�쎅<br>�몺 �넍�쐿<br>(3) �궢�꺖�깛�궧�겗�닶�뵪�겲�걼�겘雅뗦���눇�릤�걥葉뗣겓�걡�걚�겍鵝쒏닇�꺕�룑�썓�걬�굦�굥�릢葉��룚凉뺝룋�겞�뗤볶�겗�㎩릲�겓�뼟�걲�굥�깄�젿<br>�몺 �궢�꺖�깛�궧�닶�뵪掠ζ�담�곥궋�궚�궩�궧�꺆�궛�곥궚�긿�궘�꺖�곥궋�궚�궩�궧IP�깄�젿�곫군歷덂괘閭담�곦툖�돬�닶�뵪掠ζ��<br>(4) �룑�썓�꺕�닶�뵪�쎅�쉪<br>�몺 �궢�꺖�깛�궧(獒썲뱚)�겗�걡�븦�걚�릦�굩�걵�겒�겑�겓野얇걲�굥�쎑獄뉎굜恙쒎�얇겗�걼�굙�겗域삣땿<br>�몼 鴉싧뱻�댍�궢�꺖�깛�궧�닶�뵪�겓�굠�굥�쑍雅븀▶沃띲�곩�뗤볶鈺섇닪�곦툖�돬鴉싧뱻�겗訝띷�e닶�뵪�삻閭㏂�곦툖沃띶룾鵝욜뵪�삻閭㏂�곭쇉�뙯�꼷恙쀣겗閻븃첀�곭킏雅됭た�빐�겗�걼�굙�겗鼇섌뙯岳앭춼�곦툖繹��눇�릤�겒�겑�겗�걡�븦�걚�릦�굩�걵�눇�릤�곥걡�윥�굢�걵雅뗩쟿�겗鴉앶걫<br>�몾 �궢�꺖�깛�궧�룓堊쎼겓�뼟�걲�굥也묊큵掠θ죱�곥궢�꺖�깛�궧�룓堊쎼겓�굠�굥�뼑�뇫暎양츞�곭돶若싥겗�궖�궧�궭�깯�궎�궨�궢�꺖�깛�궧�룓堊�(獄뗦콆�쎑�겒�겑�곦에�곫뼑�뇫�겗黎뷸툑)<br>�몿 �뼭誤뤵궢�꺖�깛�궧(獒썲뱚)�뼀�쇇�겗永김쮫耶��쉪�돶�㎯겓�굠�굥�궢�꺖�깛�궧�룓堊쎼�곭돶�뙑�곥궎�깧�꺍�깉�겒�겑佯껃몜�깄�젿�겗鴉앶걫�룋�겞�뢿�뒥艅잋폏�겗�룓堊쎼�곥궢�꺖�깛�궧�쐣�듅�㎯겗閻븃첀�곥궋�궚�궩�궧�졎佯╉겗�뒍�룪�곦폏�뱻�겗�궢�꺖�깛�궧�닶�뵪�겓野얇걲�굥永김쮫<br>寧�2�씉 (�뗤볶�깄�젿�겗�룑�썓�뼶力�)<br>�깫�꺖�깲�깪�꺖�궦�겓�걡�걨�굥鴉싧뱻�쇉�뙯�곦폏�뱻�깄�젿岳�閭c�곲쎔屋긱�곥깳�꺖�꺂�궋�깋�꺃�궧�곥궩�깱�깏�꺖/�궋�꺍�궞�꺖�깉/�궎�깧�꺍�깉�뵵�걮渦쇈겳�곥걡�븦�걚�릦�굩�걵�룋�겞�쎑獄뉎�곫룓�맳�걡�븦�걚�릦�굩�걵�곦퐳�닇�깄�젿�룑�썓�깂�꺖�꺂�겒�겑�굮�싥걮�겍�릪�꼷�걮�걼�졃�릦�겓�솏�굤�뗤볶�깄�젿�굮�룑�썓�걮�겲�걲��<br>寧�3�씉 (�뗤볶�깄�젿�눎�땿�룑�썓獒끿쉰�겗鼇�營��꺕�걢�뼳�룋�겞�땼�맔�뼶力�)<br>壤볡ㅎ�겘�곥걡若€쭣�걣�깫�꺖�깲�깪�꺖�궦�굮�닶�뵪訝��겓�걡若€쭣�겗�깄�젿�굮�쉹�셽岳앭춼�걮�겍濾쒐뇨�걲�굥�뚣궚�긿�궘�꺖(cookie)�띲겏�깫�꺖�깲�깪�꺖�궦�닶�뵪掠ζ��(餓δ툔�곥�뚨뎠鼇덀깈�꺖�궭�띲겏�걚�걝��)�굮�눎�땿�쉪�겓�룑�썓�걲�굥獒끿쉰�굮鼇�營��꺕�걢�뼳�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(1) �궚�긿�궘�꺖(cookie)�겏�겘竊�<br>�궚�긿�궘�꺖�겏�겘�곥깫�꺖�깲�깪�꺖�궦�걣�걡若€쭣�겗�궑�궒�깣�깣�꺀�궑�궣�겓�곦에�걲�굥弱묌뇧�겗�깄�젿�겎�걲�귙걡若€쭣�걣�깫�꺖�깲�깪�꺖�궦�겓�궋�궚�궩�궧�걲�굥�겏�곩퐪鹽얇궠�꺍�깞�깷�꺖�궭�겘�걡若€쭣�겗�깣�꺀�궑�궣�겓�걗�굥�궚�긿�궘�꺖�겗�냵若밤굮沃��겳渦쇈겳�곥걡若€쭣�겗瓦썲뒥�깄�젿�굮�걡若€쭣�겗�궠�꺍�깞�깷�꺖�궭�걢�굢�렋�걮�눣�걮�겍�궋�궚�궩�궧�겓�굠�굥�릫�뎺�겒�겑�겗瓦썲뒥�뀯�뒟�겒�걮�겓�궢�꺖�깛�궧�굮�룓堊쎼걲�굥�걪�겏�걣�겎�걤�겲�걲�귙겲�걼�곥걡若€쭣�겘�궚�긿�궘�꺖�겓野얇걲�굥�겦�뒢與⒲걣�걗�굤�겲�걲�귙궑�궒�깣�깣�꺀�궑�궣訝딀�듐겗�뚣깂�꺖�꺂>�궎�꺍�궭�꺖�깓�긿�깉�궕�깤�궥�깾�꺍�띲궭�깣�겎�뀲�겍�겗�궚�긿�궘�꺖�굮�룛�걨�뀯�굦�굥�걢�곥궚�긿�궘�꺖鼇�營��셽�겓�윥�굢�걵�굥�굠�걝鼇�若싥걲�굥�걢�곥겲�걼�겘�뀲�겍�겗�궚�긿�궘�꺖�굮�땼�맔�겎�걤�굥�걢�굮�겦�뒢�걲�굥�겦�뒢與⒲굮�쐣�걮�겍�걚�겲�걲�귙걼�걽�걮�곥걡若€쭣�걣�궚�긿�궘�꺖鼇�營��굮�땼�맔�걮�걼�졃�릦�겘�곥궢�꺖�깛�궧�닶�뵪�겓�걡�걨�굥訝띴씩�굜�궢�꺖�깛�궧�룓堊쎼겓�걡�걚�겍�쎇�썵�굮鴉담걝�걪�겏�굚�걗�굤�겲�걲��<br>(2) 永김쮫�깈�꺖�궭�겏�겘竊�<br>�깫�꺖�깲�깪�꺖�궦�곫맳躍��쎔屋긱겒�겑�겗�궢�꺖�깛�궧�닶�뵪�셽�겓�궠�꺍�깞�깷�꺖�궭�굜�깈�깘�궎�궧�겗�돶若싮젞�윜�겓岳앭춼�걮�겍�곩뫅�쐿�쉪�겓壤볡ㅎ�궢�꺖�깘�꺖�겓鴉앶걫�걲�굥餓δ툔�겗�굠�걝�겒�깄�젿�겎�걲��<br>�몺 �궢�꺖�깛�궧�겗鵝욜뵪永김쮫(�뫜�렏泳싥�곩뫜鴉앶걫�곩뫜鸚길븮�셽�겗�깓�긿�깉�꺈�꺖�궚�뮥罌껁�곥��궑�꺍�꺆�꺖�깋若잒죱�궓�꺀�꺖�곫쐣渶싥꺕�꽒渶싥궎�꺍�궭�꺖�깓�긿�깉�렏泳싧ㅁ�븮�룋�겞�렏泳싨셽�뼋�겒�겑)<br>�몼 鵝욜뵪�깙�궭�꺖�꺍�깄�젿(�걡若€쭣�깳�깑�깷�꺖�겗燁삣땿�깙�궧�곦말�겓�닶�뵪�걲�굥�궢�꺖�깛�궧�곥궢�꺖�깛�궧�닶�뵪�썮�빊�곮Ø�븦掠ζ�담겒�겑)<br>(3) 壤볡ㅎ�겗�궚�긿�궘�꺖�곭뎠鼇덀깈�꺖�궭�걢�뼳<br>壤볡ㅎ�겘�곥걡若€쭣�겗�닶堊욘�㎩릲訝듽겗�걼�굙�궚�긿�궘�꺖�곭뎠鼇덀깈�꺖�궭�굮�걢�뼳�걮�겍�걚�겲�걲�귛퐪鹽얇겗�궚�긿�궘�꺖�룋�겞永김쮫�깈�꺖�궭�겗鵝욜뵪�쎅�쉪�겘�곦빳訝뗣겗�겏�걡�굤�겎�걲��<br>�몺 �뼟恙껁걣�걗�굥�뼯誤㎩냵若밤겓野얇걲�굥掠ζ�담굮瓦썼래�걮�겍�곫А�겗�궋�궚�궩�궧�겗�슋�겓�뗤볶�궖�궧�궭�깯�궎�궨�엹�궢�꺖�깛�궧�굮�룓堊�<br>�몼 鴉싧뱻�겏�씆鴉싧뱻�겗�궋�궚�궩�궧�졎佯╉겲�걼�겘�닶�뵪�셽�뼋�겒�겑�굮�늽�옄�걮�겍�곥걡若€쭣�겗擁e릲�겏�뼟恙껃늽�뇦�굮�뒍�룪�걮�곦폏�뱻�겗玲믤뀭�굮�늽�옄�걮�겍�궢�꺖�깛�궧�뵻渶ⓩ셽�굮�읃繹뽧겓�닶�뵪�궭�꺖�궟�긿�깉�깯�꺖�궞�깇�궍�꺍�궛�겓域사뵪<br>�몾 �쐣�뼑�궢�꺖�깛�궧�걫�닶�뵪�겗�슋�겓�닶�뵪�쐿�뼋�굮旅덂냵<br>�몿 �걡�븦�걚�릦�굩�걵�룋�겞�쎑獄뉑뻼�겗�쇉�뙯�겓�걡�걨�굥�닶堊욘�㎪룓堊�<br>寧�4�씉 (�뗤볶�깄�젿�겗�닶�뵪�룋�겞寧т툒�끹겦�겗�룓堊�)<br>(1) 鹽얇겘�곥걡若€쭣�겗�뗤볶�깄�젿�굮�쇉�뙯�뵵獄뗦쎑�곩닶�뵪誤뤹큵�곩�뗤볶�깄�젿�눇�릤�뼶�뇺�겗�뚦�뗤볶�깄�젿�겗�룑�썓�룋�겞�닶�뵪�쎅�쉪�띲겓�겍�뀶鹽뷩걮�걼影꾢쎊�냵�겎�닶�뵪�걡�굠�겞�룓堊쎼걮�겍�걡�굤�곥걹�겗影꾢쎊�굮擁끹걟�겍�닶�뵪�걲�굥�걪�겏�겘�겎�걤�겲�걵�굯�귞돶�겓�곦빳訝뗣겗�졃�릦�겘力ⓩ꼷�굮�궬�걨�겍�뗤볶�깄�젿�굮�닶�뵪�걡�굠�겞�룓堊쎼걚�걼�걮�겲�걲��<br>�몺 �룓�맳�뼟岳�<br> �굠�굤訝딂나�겒�궢�꺖�깛�궧�룓堊쎼겗�걼�굙�곥걡若€쭣�겗�뗤볶�깄�젿�굮�룓�맳鴉싩ㅎ�겏�뀻�쐣�겲�걼�겘�룓堊쎼걲�굥�걪�겏�걣�걗�굤�겲�걲�귙걪�겗�졃�릦�곦틛�굙�걡若€쭣�겓�룓�맳鴉싩ㅎ�겗�깄�젿�곩뀻�쐣�겲�걼�겘�룓堊쎼걬�굦�굥�뗤볶�깄�젿�겗�쟿�쎅�곥겑�겗�굠�걝�겒�쎅�쉪�겎�뗤볶�깄�젿�걣�뀻�쐣�겲�걼�겘�룓堊쎼걬�굦�굥�걢�곥걚�겇�겲�겎岳앯�▲꺕嶸←릤�걬�굦�굥�걢�겓�뼟�걮�겍�뗥닪�겓�쎔耶먪쉪�뼶力뺛굜�쎔屋긱�곫쎑�씊�갌AX�곲꺏堊욍겒�겑�굮�싥걮�겍�뀶鹽뷩걮�겍�릪�꼷�굮黎귙굙�굥�뎸泳싥걤�굮甕뤵겳�겲�걲�귙걡若€쭣�걣�릪�꼷�걮�겒�걚�졃�릦�겘�곫룓�맳鴉싩ㅎ�겏�뀻�쐣�꺕�룓堊쎼걲�굥�걪�겏�겘�걗�굤�걵�굯��<br>(2) 壤볡ㅎ�겘�곥궢�꺖�깛�궧�겗�룓堊쎼겓�뼟�걲�굥也묊큵�굮掠θ죱�걲�굥�걼�굙�겓恙낁쫨�겒�뗤볶�깄�젿�겓�겇�걚�겍�곫�烏볡쉪�꺕永뚧툑�쉪�겒雅뗧뵳�겓�굠�겂�겍�싧만�겑�걡�굤�겗�릪�꼷�굮�룛�걨�굥�걪�겏�걣�삇閻뷩겓�쎇�썵�겎�걗�굥�겏�닩�뼪�걮�걼�졃�릦�겘�곥걡若€쭣�겗�릪�꼷�겒�걦�걮�겍�굚�뗤볶�깄�젿�굮�룑�썓�꺕�닶�뵪�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(3) 餓δ툔�겗�졃�릦�겘�곲뼟�f퀡餓ㅳ겗誤뤷츣�겓�읃�겈�걤�곦폏�뱻�겗�릪�꼷�겒�걦�걮�겍�뗤볶�깄�젿�굮�룓堊쎼걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>�몺 �궢�꺖�깛�궧�룓堊쎼겓�굠�굥�뼑�뇫暎양츞�걣恙낁쫨�겒�졃�릦<br>�몼 永김쮫鵝쒏닇�곩��烏볡젘令뜰�곥겲�걼�겘躍귛졃沃욘읅�겗�걼�굙�겓恙낁쫨�겒�졃�릦�겎�곭돶若싧�뗤볶�굮�돯�굤�눣�걵�겒�걚壤€뀑�겎�뒥藥γ걮�겍�룓堊쎼걲�굥�졃�릦<br>�몾 �뇫�엻若잌릫�룚凉뺝룋�겞燁섇칳岳앶슌�겓�뼟�걲�굥力뺝풃�곦에�뵪�깄�젿�겗�닶�뵪�룋�겞岳앲�룔겓�뼟�걲�굥力뺝풃�곲쎔麗쀩�싦에�읃�쑍力뺛�곲쎔麗쀩�싦에雅뗦��力뺛�곩쑑�뼶葉롦퀡�곫텋縕삭�끺퓷鈺룡퀡�곲윋�쎖��烏뚧퀡�곩닊雅뗨㉣鼇잍퀡�겒�겑力뺝풃�겓�돶�닪�겒誤뤷츣�걣�걗�굥�졃�릦<br>�몿 �뜙�읅�쎅�쉪�겎力뺜빱�겓�굠�겂�겍若싥굙�굢�굦�걼�뎸泳싥걤�겏�뼶力뺛겓�읃�겈�걚�걼�뜙�읅艅잓뼟�겗誤곫콆�굮�룛�걨�걼�졃�릦<br>�뫀 �걡若€쭣�걣雅뗥뎺�겓�릪�꼷�걮�걼�졃�릦<br>寧�5�씉 (�뗤볶�깄�젿�겗�눇�릤冶붻쮻)<br>(1) 壤볡ㅎ�겘�곥걡若€쭣�겗�닶堊욘�㎯굮�쎋�굤�곥굠�굤訝딂나�겒�궢�꺖�깛�궧�룓堊쎼겒�겑璵��떃�굮�냶譯묆겓�걗烏뚣걲�굥�걼�굙�곩쨼�깿�겗弱귡�鴉곫���겓�걡若€쭣�겗�뗤볶�깄�젿�겓野얇걲�굥�룑�썓�꺕岳앯�▲꺕�눇�릤�꺕�닶�뵪�꺕�룓堊쎼꺕嶸←릤�꺕�졃汝꾠겒�겑(餓δ툔�곥�뚦눇�릤�띲겏�걚�걝��)�굮冶붻쮻�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(2) 壤볡ㅎ�걣鸚뽭깿�겗弱귡�鴉곫���겓�걡若€쭣�겗�뗤볶�깄�젿�굮�눇�릤冶붻쮻�걲�굥�졃�릦�곩쭟鼇쀦���떃�겗�냵若밤�곩룛鼇쀨�끹겘餓δ툔�겗烏ⓦ겗�싥굤�겎�걲��<br><�뗤볶�깄�젿�겗寧т툒�끾룓堊쎾룋�겞冶붻쮻�뤎力�><br>�룛鼇쀤펯璵� NICE Co., Ltd.<br>冶붻쮻璵��떃�냵若� �궚�꺃�궦�긿�깉�궖�꺖�깋黎뷸툑<br>岳앮쐣�룋�겞�닶�뵪�쐿�뼋 ��鴉싨셽�겲�걼�겘冶붻쮻也묊큵永귚틙�셽�겲�겎<br>(3) 壤볡ㅎ�겘�곥걡若€쭣�겗�릪�꼷�겒�걦�걮�겍�궢�꺖�깛�궧�룓堊쎽빳鸚뽧겗�쎅�쉪�겎�뗤볶�깄�젿�굮�눇�릤冶붻쮻�걮�겒�걚�걪�겏�굮�렅�뎴�겏�걮�겲�걲�귙걼�걽�걮�곩퓚誤곥걽�겏�닩�뼪�걮�걼�졃�릦�겘�곩쭟鼇쀦���떃�겗�냵若밤겏�룛鼇쀨�끹굮�걡若€쭣�겓�뀶鹽뷩걮�겍�곥걡若€쭣�겗�릪�꼷�굮黎귙굙�겲�걲��<br>寧�6�씉 (�뗤볶�깄�젿�겗�닶�뵪�꺕岳앯�→쐿�뼋)<br>�걡若€쭣�겗�뗤볶�깄�젿�겘�곩릪�꼷�굮孃쀣걼�뗤볶�깄�젿�겗�룑�썓�룋�겞�닶�뵪�쎅�쉪�굮�걫�닇�걮�걼孃뚣겘�곫퀡餓ㅳ겲�걼�겘�냵�깿�뼶�뇺�겓孃볝겂�겍岳앭춼�걲�굥恙낁쫨�걣�걗�굥�졃�릦�굮�솮�걤�곲걛譯욁겒�걦�졃汝꾠걬�굦�겲�걲��<br>(1) �꽒�늽�닪�겒��鴉싥겏�냽�쇉�뙯�겓�굠�굥熬ュ�녈겗��弱뤷뙑�곲��鴉싧풄�겗恙껃쨯�굩�굤�겓�굠�굥獄뗩줁�겒�겑�굮�눇�릤�걲�굥�걼�굙�곲��鴉싧풄1亮닻뼋�겘鴉싧뱻�깄�젿�굮岳앮쐣�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(2) 岳앮쐣�쐿�뼋�굮雅덀굙�뀶鹽뷩걮�겍�닪�붵겗�릪�꼷�굮孃쀣걼�졃�릦�겘�곩퐪屋꿜퓷�쐣�쐿�뼋�겲�겎岳앮쐣�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(3) 壤볡ㅎ�걣力뺜빱�겓孃볝겂�겍岳앯�▲걲�굥�뗤볶�깄�젿�룋�겞屋꿨퐪�걲�굥力뺜빱�겘�곦빳訝뗣겗烏ⓦ겗�싥굤�겎�걲��<br>岳앭춼�쟿�쎅竊싧쪗榮꾠겲�걼�겘獄뗧큵�뮘�썮�겒�겑�겓�뼟�걲�굥鼇섌뙯<br>�졊�떊力뺜빱竊싮윋�쎖�쎔耶먨븚�룚凉뺟춬�겓�걡�걨�굥易덅꼇�끺퓷鈺룔겓�뼟�걲�굥力뺝풃<br>岳앭춼�쐿�뼋竊�5亮�<br>岳앭춼�쟿�쎅竊싦빰�뇫黎뷸툑�룋�겞縕↑꺼�겒�겑�겗堊쏁덱�겓�뼟�걲�굥鼇섌뙯<br>�졊�떊力뺜빱竊싮윋�쎖�쎔耶먨븚�룚凉뺟춬�겓�걡�걨�굥易덅꼇�끺퓷鈺룔겓�뼟�걲�굥力뺝풃<br>岳앭춼�쐿�뼋竊�5亮�<br>岳앭춼�쟿�쎅竊싨텋縕삭�끹겗訝띷��겲�걼�겘榮쎽틝�눇�릤�겓�뼟�걲�굥鼇섌뙯<br>�졊�떊力뺜빱竊싮윋�쎖�쎔耶먨븚�룚凉뺟춬�겓�걡�걨�굥易덅꼇�끺퓷鈺룔겓�뼟�걲�굥力뺝풃<br>岳앭춼�쐿�뼋竊�3亮�<br>岳앭춼�쟿�쎅竊싪〃鹽�/佯껃몜�겓�뼟�걲�굥鼇섌뙯<br>�졊�떊力뺜빱竊싮윋�쎖�쎔耶먨븚�룚凉뺟춬�겓�걡�걨�굥易덅꼇�끺퓷鈺룔겓�뼟�걲�굥力뺝풃<br>岳앭춼�쐿�뼋竊�6�걢�쐢<br>岳앭춼�쟿�쎅竊싮윋�쎖葉롦퀡�걣誤뤷츣�걲�굥�뀲�겍�겗�룚凉뺛겓�뼟�걲�굥躍녕걀�룋�겞鼇쇗넁�쎑窈�<br>�졊�떊力뺜빱竊싮윋�쎖�쎖葉롥읃�쑍力�<br>岳앭춼�쐿�뼋竊�5亮�<br>岳앭춼�쟿�쎅竊싮윋�쎖�쎔耶먬뇫�엻�룚凉뺛겓�뼟�걲�굥鼇섌뙯<br>�졊�떊力뺜빱竊싮윋�쎖�쎔耶먬뇫�엻�룚凉뺞퀡<br>岳앭춼�쐿�뼋竊�5亮�<br>岳앭춼�쟿�쎅竊싥궢�꺖�깛�궧鼇ゅ븦鼇섌뙯<br>�졊�떊力뺜빱竊싮윋�쎖�싦에燁섇칳岳앲�룡퀡<br>岳앭춼�쐿�뼋竊�3�걢�쐢<br>(4) 壤볡ㅎ�겘�곥걡若€쭣�겗�뗤볶�깄�젿岳앲�룔겗�걼�굙�곥걡若€쭣�겗鴉싧뱻�쇉�뙯�궋�궖�궑�꺍�깉�굮鵝욜뵪�궋�궖�궑�꺍�깉�겏鴉묊쑀�궋�궖�궑�꺍�깉�겓�뙷�늽�걮�겍嶸←릤�걮�겲�걲�괥WL�궢�꺖�깛�궧�굮1亮닻뼋�꺆�궛�궎�꺍�겲�걼�겘�닶�뵪掠ζ�담걣�겒�걚�졃�릦�겘�곥걡若€쭣�겗�뗤볶�깄�젿岳앲�룔겗�걼�굙鴉묊쑀�궋�궖�궑�꺍�깉�겓�뙷�늽�걮�겍�곥걡若€쭣�겗�뗤볶�깄�젿�겗域사뵪�룋�겞�룓�맳鴉싩ㅎ(寧т툒�끹겏�걮�겍�릪�꼷�걮�걼�룓�맳鴉싩ㅎ)�겓�걡若€쭣�겗�깄�젿�굮�룓堊쎼걮�겲�걵�굯��<br>寧�7�씉 (�뗤볶�깄�젿�겗�졃汝꾣뎸泳싥걤�룋�겞�뼶力�)<br>(1) �걡若€쭣�겗�뗤볶�깄�젿�겘�곥걡若€쭣�걢�굢�릪�꼷�굮孃쀣걼�룑�썓�룋�겞�닶�뵪�쎅�쉪�겗�걫�닇�걮�걼孃뚣겘�곩닪�붵겗DB�겓燁삠걬�굦(榮쇻겗�쎑�씊�겗�졃�릦�겘�닪�붵겗�쎑窈욅��)�곲뼟岳귝퀡�겓�굠�겂�겍若싥굙�굢�굦�걼訝�若싨쐿�뼋岳앯�▲걬�굦�걼孃뚣겓�졃汝꾠걬�굦�겲�걲��<br>(2) 榮쇻겗�쎑�씊�겓�눣�뒟�걬�굦�걼�뗤볶�깄�젿�겘�곥궥�깷�꺃�긿���꺖�굜�꽱�뜶�굮�싥걮�겍�졃汝꾠걬�굦�곲쎔耶먦깢�궊�궎�꺂壤€뀑�겎岳앭춼�걬�굦�걼�뗤볶�깄�젿�겘�곮쮼�뙯�굮�냽�뵟�겎�걤�겒�걚��烏볡쉪�뼶力뺛굮�뵪�걚�겍�뎷�솮�걬�굦�겲�걲��<br>寧�8�씉 (�걡若€쭣�겗與⒴닶�겏�걹�겗烏뚥슴�뼶力�)<br>(1) �걡若€쭣(繹�14閭녔쑋繹��겗�졃�릦�겘力뺝츣餓g릤雅�)�겘�곥걚�겇�겎�굚OWL�궢�꺖�깛�궧�냵�겓�걡�걨�굥�걡若€쭣�겗�뗤볶�깄�젿�굮�뼯誤㎯꺕鸚됪쎍�겎�걤�갣WL�궢�꺖�깛�궧�겗�닶�뵪誤뤹큵�겓孃볝겂�겍�걡若€쭣�겗�뗤볶�깄�젿�룑�썓�룋�겞�닶�뵪�겓野얇걮�겍壤볡ㅎ�겓�릪�꼷�겗�뮘�썮�겲�걼�겘OWL�궢�꺖�깛�궧�걢�굢�겗��鴉싥굮誤곫콆�걲�굥�걪�겏�걣�겎�걤�겲�걲��<br>(2) �궕�꺍�꺀�궎�꺍�쇉�뙯�깄�젿�겗�뼯誤㎯꺕鼇귝�c굮躍뚧쐹�걲�굥�걡若€쭣�겗�졃�릦�곥깫�꺖�깲�깪�꺖�궦�겗�뚥폏�뱻�깄�젿�띲굮�궚�꺁�긿�궚�걮�겍�쎍�렏�뼯誤㎯걡�굠�겞鼇귝�c굮烏뚣걝�걢�곥겲�걼�겘�걡若€쭣�궩�꺍�궭�꺖�겦�쎑�씊�곲쎔屋긱�곥깳�꺖�꺂�겓�굠�굤�걫�g덧�걚�걼�걽�걨�굦�겙�걛譯욁겒�걦�렕營��걚�걼�걮�겲�걲��<br>(3) 壤볡ㅎ�겘�곦빰�릤雅뷩걣鼇ゅ븦�걮�겍�뼯誤㎯꺕鼇쇗삇�굮誤곫콆�걲�굥�졃�릦�겘�곲겑力뺛겒冶붶뻣�굮�룛�걨�걼�걢�굮閻븃첀�걲�굥�걪�겏�걣�겎�걤�굥冶붶뻣�듁�걡�굠�겞�쑍雅뷩겗�뜲�몣鼇쇗삇�쎑�곦빰�릤雅뷩겗翁ュ늽鼇쇗삇�쎑�겒�겑�겗�룓�눣�굮�룛�걨�곦빰�릤雅뷩겗閭g▶�㎯굮閻븃첀�걮�겲�걲��<br>(4) �걡若€쭣�걣�뗤볶�깄�젿�겗�궓�꺀�꺖�겓野얇걲�굥鼇귝�c굮誤곮쳦�걮�걼�졃�릦�겘�곩퐪鹽얇겘鼇귝�c굮若뚥틙�걲�굥�겲�겎壤볢㈁�뗤볶�깄�젿�굮�닶�뵪�겲�걼�겘�룓堊쎼걮�겲�걵�굯�귙겲�걼�곩퐪鹽얇걣沃ㅳ겂�걼�뗤볶�깄�젿�굮�뿢�겓寧т툒�끹겓�룓堊쎼걮�걼�졃�릦�겘�곥걹�겗鼇귝�e눇�릤永먩옖�굮寧т툒�끹겓�걛譯욁겒�걦�싩윥�걮�겍鼇귝�c걮�겲�걲��(5) �걡若€쭣�겘�곩�뗤볶�깄�젿�굮���뼭�깄�젿�겎閭g▶�겓�뀯�뒟�걮�곩쨯�땿雅뗩쟿�걣�걗�굥�졃�릦�겘�걪�굦�굮壤볡ㅎ�겓�싧젿�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯�귙걡若€쭣�눎翁ャ걣訝띷�g▶�겒�깄�젿�굮�뀯�뒟�걮�겒�걢�겂�걼�곥겲�걼�겘壤볡ㅎ�겓�싧젿�걮�겒�걢�겂�걼�걼�굙壤볡ㅎ�걣�윥�굤孃쀣겒�걢�겂�걼�걡若€쭣�겗�깄�젿�겗鸚됧땿�겓�굠�겂�겍�쇇�뵟�걮�걼�깉�꺀�깣�꺂�겓野얇걲�굥縕т뻣�겘�곥걡若€쭣�눎翁ャ겓躍겼콪�걬�굦�겲�걲��<br>(6) �걡若€쭣�걣餓뽨볶�겗�깄�젿�겗�썤�뵪�룋�겞堊드�녈�곮솞�겱�겗�깄�젿�굮�뀯�뒟�걮�걼�졃�릦�겘�곥궢�꺖�깛�궧鰲g큵�룋�겞鴉싧뱻蘊뉑졏�뼧鸚긱겏�겒�굥�걪�겏�걣�걗�굤�곫퀡�겒�겑�겗�뼟�f퀡餓ㅳ겓�읃�겈�걤�눇營겹굮�룛�걨�굥�걪�겏�걣�걗�굤�겲�걲��<br>寧�9�씉 (�뗤볶�깄�젿岳앲�룔겗�걼�굙�겗��烏볡쉪�꺕嶸←릤�쉪野양춺)<br>壤볡ㅎ�겘�곥걡若€쭣�겗�뗤볶�깄�젿�걣榮쎾ㅁ�곭썤�썵�곫탛�눣�곩쨯�졼�곫��릫�걬�굦�겒�걚�굠�걝�곦빳訝뗣겗�싥굤�겗��烏볡쉪�꺕嶸←릤�쉪野양춺�굮玉쎼걯�겍�걚�겲�걲��<br>(1) ��烏볡쉪野양춺<br>�몺 �궋�궚�궩�궧掠ζ�담겗�겱�졼꺕鸚됮�좈삻閭€렕營��굮玉쎼걯�겍�걚�겲�걲��<br>�몼 �뗤볶�깄�젿�겘�곥걹�겗葉�窈욁겓�굠�겂�겍�뼟�f퀡餓ㅳ걣誤곫콆�걲�굥麗닸틬�겗�슅�뤇�뙑岳앭춼�겲�걼�겘�곦에�셽�겗�슅�뤇�뙑��烏볝굮�겑�뵪�걮�겍嶸←릤�걮�겍�걚�겲�걲��<br>�몾 �궑�궎�꺂�궧野양춺�깤�꺆�궛�꺀�깲�굮�닶�뵪�걮�겍�궠�꺍�깞�깷�꺖�궭�궑�궎�꺂�궧�겓�굠�굥熬ュ�녈굮�삻閭㏂걲�굥�걼�굙�겗�렕營��굮玉쎼걯�겍�걡�굤�곥궑�궎�꺂�궧野양춺�깤�꺆�궛�꺀�깲�겘�뫅�쐿�쉪�겓�궋�긿�깤�꺆�꺖�깋�걮�겍�곭챳�꽫�겗�궑�궎�꺂�궧�눣�뤎�셽�겓�겘�궑�궎�꺂�궧�걣�쇇�뵟�걮�걼�겏�릪�셽�겓�걪�굦�굮�룓堊쎼걲�굥�걪�겏�겎�뗤볶�깄�젿堊드�녈굮�삻閭㏂걮�겍�걚�겲�걲��<br>�몿 �슅�뤇�궋�꺂�궡�꺁�궨�깲�굮�닶�뵪�걮�겍�곥깓�긿�깉�꺈�꺖�궚訝듽겗�뗤볶�깄�젿�굮若됧뀲�겓�곦에�걲�굥�궩�궘�깷�꺁�깇�궍獒끿쉰(SSL�겒�겑)�굮�렊�뒢�걮�겍�걚�겲�걲��<br>�뫀 �깗�긿�궘�꺍�궛�겒�겑�겗鸚뽭깿�걢�굢�겗堊드뀯�겓�굺�걟�겍�곩릢�궢�꺖�깘�꺖�겓�꿨뀯�겗�뼪�궥�궧�깇�깲�겏�꼩凉긺궧�늽�옄�궥�궧�깇�깲�굮�뵪�걚�겍�궩�궘�깷�꺁�깇�궍�겓���뻹�굮弱썬걦�걮�겍�걚�겲�걲��<br>(2) 嶸←릤�쉪野양춺<br>�몺 壤볡ㅎ�겘�곩�뗤볶�깄�젿岳앲�룔겓�뼟�걲�굥�냵�깿嶸←릤鼇덄뵽�굮與밭쳦�걮�곫뼺烏뚣걮�겍�걚�겲�걲��<br>�몼 壤볡ㅎ�겘�곩�뗤볶�깄�젿�겓野얇걲�굥�궋�궚�궩�궧鼇긷룾�굮恙낁쫨��弱뤻솏�겗雅뷸빊�겓�댍�솏�걮�겍�걚�겲�걲��<br>�몾 壤볡ㅎ�겘�곩�뗤볶�깄�젿�굮�룚�굤�돮�걝�겥�뱻�굮�땯壤볢�끹겓�솏若싥걬�걵�곩닪�붵겗�깙�궧�꺈�꺖�깋�굮餓섆툗�걮�겍若싨쐿�쉪�겓�쎍�뼭�걮�곫땯壤볢�끹겓野얇걮�겍�겘�쉹�셽�븰�궟�굮烏뚣겂�겍�곩퐪鹽얇겗�뗤볶�깄�젿�눇�릤�뼶�뇺�겗�겣若덀굮躍멥겓凉룩た�걮�겍�걚�겲�걲��<br>�몿 壤볡ㅎ�겘�곥걡若€쭣�겗�뱧鵝쒌깱�궧�굜�읃�쑍�쉪�겒�궎�꺍�궭�꺖�깓�긿�깉�겗�꺁�궧�궚�겓�굠�겂�겍�쇇�뵟�걲�굥�깉�꺀�깣�꺂�겓野얇걮�겍�겘縕т뻣�굮縕졼걚�걢�겖�겲�걲�귙걡若€쭣�겘�곩�뗤볶�깄�젿�굮岳앲�룔걲�굥�걼�굙�깳�꺖�꺂�굜�깙�궧�꺈�꺖�깋�굮�겑�늾�겓嶸←릤�걮�겍�곥걡若€쭣�눎�굢縕т뻣�굮縕졼굩�겒�걨�굦�겙�겒�굤�겲�걵�굯<br>寧�10�씉 (�뗤볶�깄�젿岳앲�룩껄餓삭�끻룋�겞�땯壤볢�끹겗�g덧�뀍)<br>壤볡ㅎ�겘�곥걡若€쭣�겗�뗤볶�깄�젿�굮岳앲�룔걮�겍�뗤볶�깄�젿�겓�뼟�걲�굥訝띷��굮�눇�릤�걲�굥�걼�굙�곦빳訝뗣겗�겏�걡�굤�겗�뼟�i깿營꿨룋�겞�뗤볶�깄�젿嶸←릤縕т뻣�끹굮�뙁若싥걮�겍�걚�겲�걲�귛퐪鹽얇겘�걡若€쭣�겗�걡鶯겹겓�녈굮�궬�걨�겍�곮퓚�잆걢�겇�뀉�늽�겒�썮嶺붵굮藥��걮訝듽걩�굥�걼�굙���뻹�굮弱썬걦�걮�겲�걲��<br><�뗤볶�깄�젿岳앲�룩껄餓삭��><br>嶸←릤縕т뻣��: �궎쨌�궦�깾�꺍�궫�꺍쨌�긽�꺖�깲�빓 | �땯壤볣깿營�: �뇫�깺�궦�꺍訝삡뻣�젘令뜹뱻<br>�땯壤볣깿營�: �깇�궧�깇�궍�꺍�궛�궫�꺁�깷�꺖�궥�깾�꺍�궩�꺍�궭�꺖�궫�꺁�깷�꺖�궥�깾�꺍�뼀�쇇�긽�꺖�깲<br>jslee1@wisestone.kr<br>�걹�겗餓�,�뗤볶�깄�젿堊드�녈겗掠듿눣�굜�쎑獄뉎걣恙낁쫨�겒�졃�릦�겘,訝뗨쮼�겗艅잓뼟�겓�걡�븦�걚�릦�굩�걵�걦�걽�걬�걚��<br>�몺 �뗤볶�깄�젿堊드�녕뵵�몜�궩�꺍�궭�꺖: �쎔屋� 118 / E�깳�꺖�꺂 privacy@kisa.or.kr / http://privacy.kisa.or.kr<br>�몼 �깄�젿�궩�궘�깷�꺁�깇�궍�깯�꺖�궚沃띹㉫冶붷뱻鴉�: �쎔屋� 02-580-0533~4 / http://www.eprivacy.or.kr<br>�몾 ��遙섉쩂野잌틒�궢�궎�깘�꺖�뒸營ゆ뜙�읅�썵: �쎔屋� 02-3480-3571 / E�깳�꺖�꺂 cybercid@spo.go.kr / http://www.spo.go.kr<br>�몿 鈺�野잌틒�궢�궎�깘�꺖�깇�꺆野얍퓶�궩�꺍�궭�꺖: �쎔屋� 1566-0112 / http://cyber.go.kr<br>寧�11�씉(�몜�윥�겗獰⒴떃)<br> 鴉싩ㅎ�겘力뺝풃�굜�궢�꺖�깛�궧�겗鸚됪쎍雅뗩쟿�굮�룏�삝�걲�굥�걼�굙�겗�쎅�쉪�겒�겑,�뗤볶�깄�젿�겗�눇�릤�뼶�뇺�굮岳�閭c걲�굥�걪�겏�걣�겎�걤�겲�걲�귛�뗤볶�깄�젿�눇�릤�뼶�뇺�걣鸚됪쎍�걬�굦�걼�졃�릦,鴉싩ㅎ�겘鸚됪쎍雅뗩쟿�굮�렡鹽뷩걮,鸚됪쎍�걬�굦�걼�뗤볶�깄�젿�눇�릤�뼶�뇺�겘,�렡鹽뷸뿥�걢�굢7�뿥孃뚣걢�굢�듅�뒟�걣�쇇�뵟�걮�겲�걲�� �걮�걢�걮,�굜���굮孃쀣걳�쉮礪섅겗與⒴닶�겓�뇥誤곥겒鸚됪쎍�걣�걗�굥�졃�릦,鸚됪쎍�걬�굦�굥�냵若밤굮30�뿥�뎺�겓雅덀굙�걡�윥�굢�걵�걮�겲�걲��<br>�� �뼺烏뚧뿥:2018亮�11�쐢09�뿥<br><br>", + "login" : "�꺆�궛�궎�꺍", + "logout" : "�꺆�궛�궋�궑�깉", + "logInSocialAccount" : "�궫�꺖�궥�깵�꺂�궋�궖�궑�꺍�깉�겎�꺆�궛�궎�꺍", + "rememberMe" : "�꺆�궛�궎�꺍�듁�뀑亦�", + "findPassword" : "�깙�궧�꺈�꺖�깋�굮�렋�걲", + "loginFailed" : "�꺆�궛�궎�꺍�겓鸚길븮�걮�겲�걮�걼��", + "createAccountNow" : "餓듽궋�궖�궑�꺍�깉�굮鵝쒌겂�겍�겳�겍�걦�걽�걬�걚!", + "forgetYourPassword" : "�슅鼇쇘빁�뤇�굮�걡恙섅굦�겓�겒�굤�겲�걮�걼�걢?", + "incorrectEmailFormat" : "E�깳�꺖�꺂壤℡폀�걣�릦�걚�겲�걵�굯��", + "sendingYouTemporaryPassword" : "�걫�뒥�뀯�겗E�깳�꺖�꺂�겎 <strong class=\"text-primary\">�눊�셽�슅鼇쇘빁�뤇</strong>�굮�걡�곥굤�걮�겲�걲��", + "pleaseEnterPassword4Characters" : "�깙�궧�꺈�꺖�깋�겘4�뻼耶쀤빳訝듽겎�뀯�뒟�걮�겍�걦�걽�걬�걚��", + "failedInviteMail" : "�닜餓c깳�꺖�꺂�쇇�곩ㅁ�븮", + "successInviteMail" : "�닜餓c깳�꺖�꺂�쇇�곫닇�뒣", + "welcomeKakTalkMembership" : "�궖�궖�궕�깉�꺖�궚鴉싧뱻�뒥�뀯旅덂냵", + "signUpMembershipKakTalk" : "�궖�궖�궕�깉�꺖�궚�겎鴉싧뱻�뒥�뀯�굮�걲�굥�걼�굙�겓�겘,�쎔耶먦깳�꺖�꺂�깄�젿�겗�룓堊쎼굮�겦�뒢�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯�� �걪�굦�겓�릪�꼷�걮�겒�걚�졃�릦�겓�겘餓뽧겗�궫�꺖�궥�깵�꺂�겎�뒥�뀯�걮�겍�걦�걽�걬�걚��", + "failedToCreateUser" : "鵝욜뵪�끿뵟�닇鸚길븮", + "failedToModifyUser" : "�깺�꺖�궣�꺖岳�閭eㅁ�븮", + "failedToRetrieveIssueHistory" : "�븦窈뚩쮼�뙯�깄�젿�겗�뀱鴉싥겓鸚길븮", + "proceedWithMembershipWithdrawal" : "鴉싧뱻�꽦���굮�꿔굙�겲�걲�걢�� 鴉싧뱻��鴉싥걲�굥�겏璵��떃令븅뼋�겗�걲�겧�겍�겗�깈�꺖�궭�걣易덀걟�겍孃⒵뿧�겎�걤�겲�걵�굯��", + "successWithdrawalFromMembership" : "鴉싧뱻�꽦���겗�닇�뒣", + "failedMemberWithdrawal" : "鴉싧뱻��鴉싧ㅁ�븮", + "completedWithdrawalFromOwlITS" : "OWL ITS �겎�꽦���걣若뚥틙�걮�겲�걮�걼��", + "failedToSelectUserDetail" : "�깺�꺖�궣�꺖�겗屋녕눗�깄�젿�뀱鴉싥겓鸚길븮", + "notExistUserSession" : "�깺�꺖�궣�궩�긿�궥�깾�꺍�걣耶섇쑉�걮�겲�걵�굯��", + "completedPasswordChange" : "�깙�궧�꺈�꺖�깋鸚됪쎍若뚥틙", + "failedPasswordChange" : "�슅鼇쇘빁�뤇鸚됪쎍�겓鸚길븮", + "temporaryPasswordIssue" : "�눊�셽�슅鼇쇘빁�뤇�쇇永�", + "failedRequestFindPassword" : "�슅鼇쇘빁�뤇�렋�걮�겗誤곮쳦�겓鸚길븮", + "duplicateEmail" : "E�깳�꺖�꺂�뇥筽�", + "duplicateEmailEntered" : "�뇥筽뉎걮�걼�쎔耶먦깳�꺖�꺂�걣�뀯�뒟�걬�굦�겲�걮�걼��", + "confirmEmailInput" : "E�깳�꺖�꺂�뀯�뒟閻븃첀", + "emailEnteredIncorrectly" : "E�깳�꺖�꺂�걣�뼋�걬�걟�겍�뀯�뒟�걬�굦�겲�걮�걼��", + "noEmailEntered" : "E�깳�꺖�꺂�걣�뀯�뒟�걬�굦�겍�걚�겲�걵�굯��" + }, + "notice" : { + "notice" : "�뀶�윥雅뗩쟿", + "registerNotice" : "�뀶�윥雅뗩쟿�쇉�뙯", + "modifyNotice" : "�뀶�윥雅뗩쟿岳�閭�", + "enterSpecialCharacters" : "�궭�궎�깉�꺂�겓�겘�돶餘딀뻼耶쀣굮�뀯�뒟�겎�걤�겲�걵�굯��", + "failedNoticeRegistration" : "�뀶鹽뷰틟�쟿�겗�쇉�뙯鸚길븮", + "failedToLookupNotificationList" : "�뀶鹽뷰틟�쟿�겗�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToModifyNotice" : "�뀶�윥雅뗩쟿�겗岳�閭eㅁ�븮", + "failedToLookupNotificationDetails" : "�뀶鹽뷰틟�쟿屋녕눗�깄�젿�뀱鴉싥겓鸚길븮" + }, + "manageUser" : { + "manageUser" : "User Permission Management", + "manageIssueSystemPerm" : "Issue System", + "manageUserPerm" : "User", + "manageNoticePerm" : "Notice", + "manageFAQPerm" : "FAQ", + "manageQnAPerm" : "QnA", + "manageEventPerm" : "Event", + "manageGuidePerm" : "Guide" + }, + "FAQ" : { + "FAQ" : "FAQ", + "manageFAQ" : "FAQ Management", + "registerFAQ" : "FAQ Registration", + "modifyFAQ" : "Modify FAQ", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedFAQRegistration" : "Failed to register FAQ.", + "failedToLookupFAQList" : "Failed to look up FAQ list", + "failedToModifyFAQ" : "Failed to modify FAQ", + "failedToLookupFAQDetails" : "Failed to look up FAQ details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "QNA" : { + "QNA" : "QnA", + "manageQNA" : "QnA Management", + "registerQNA" : "Question Registration", + "modifyQNA" : "Modify QnA", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedQNARegistration" : "Failed to register QnA.", + "failedToLookupQNAList" : "Failed to look up QnA list", + "failedToModifyQNA" : "Failed to modify QnA", + "failedToLookupQNADetails" : "Failed to look up QnA details" + }, + "event" : { + "event" : "Event", + "manageEvent" : "Event Management", + "registerEvent" : "Event Registration", + "modifyEvent" : "Modify Event", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedEventRegistration" : "Failed to register Event.", + "failedToLookupEventList" : "Failed to look up Event list", + "failedToModifyEvent" : "Failed to modify Event", + "failedToLookupEventDetails" : "Failed to look up Event details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "guide" : { + "guide" : "Guide", + "manageGuide" : "Guide Management", + "registerGuide" : "Guide Registration", + "modifyGuide" : "Modify Guide", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedGuideRegistration" : "Failed to register Guide.", + "failedToLookupGuideList" : "Failed to look up Guide list", + "failedToModifyGuide" : "Failed to modify Guide", + "failedToLookupGuideDetails" : "Failed to look up Guide details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "inquiry" : { + "toInquiry" : "�걡�븦�걚�릦�굩�걵", + "inquiryToOWL" : "OWL ITS �겓�걡�븦�걚�릦�굩�걵", + "asap" : "��鸚㏝솏�뿩�걚�셽�뼋餓ε냵�겓瓦붶틟�걬�걵�겍�걚�걼�걽�걤�겲�걲��", + "inquiryGreeting" : "鵝뺛굮�걡�뎸鴉앫걚�걲�굦�겙�걚�걚�겎�걲�걢��", + "contactCompleted" : "�븦�걚�릦�굩�걵�겗�룛餓섇츑雅�", + "failedToReceiveEnquiry" : "�븦�걚�릦�굩�걵�겗�룛�걨餓섅걨鸚길븮" + }, + "common" : { + "urgent" : "渶딀��", + "high" : "遙�", + "medium" : "�솹��", + "low" : "鵝롢걬", + "critical" : "曆긷댗", + "major" : "遙�", + "minor" : "�솹��", + "trivial" : "鵝롢걬", + "save" : "縕��뵷", + "saved" : "縕��뵷�솳", + "close" : "�뻾閭�", + "search" : "濾쒐뇨", + "reset" : "�닜�쐿�뙑", + "uploadExcel" : "�궓�궚�궩�꺂쨌�궋�긿�깤�꺆�꺖�깋", + "create" : "�뵟�닇", + "cancel" : "�궘�깵�꺍�궩�꺂", + "submit" : "邕���", + "modify" : "岳��빐", + "dashboard" : "���긿�궥�깷�깭�꺖�깋", + "workspace" : "�꺈�꺖�궚�궧�깪�꺖�궧", + "project" : "�깤�꺆�궦�궒�궚�깉", + "issue" : "�궎�궥�깷�꺖", + "setting" : "鼇�若�", + "user" : "鵝욜뵪��", + "workflow" : "�꺈�꺖�궚�깢�꺆�꺖", + "updateIssueStatus" : "�궎�궥�깷�꺖�듁�뀑鸚됪쎍", + "changeReason" : "鸚됪쎍雅뗧뵳", + "failedToIssueStatusListLookup" : "�궎�궥�깷�꺖�듁�뀑�겗�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "customField" : "�깺�꺖�궣�꺖若싩쑴�깢�궍�꺖�꺂�깋", + "select" : "�겦�뒢", + "checkAll" : "�뀲鵝볣겦�뒢", + "unCheckAll" : "�뀲鵝볢㎗�솮", + "send": "�곦에", + "selected" : "�겦�겙�굦�굥", + "selectable" : "�겦�뒢�룾�꺗", + "password" : "�깙�궧�꺈�꺖�깋", + "information" : "�깄�젿", + "noData" : "�깈�꺖�궭�걣�걗�굤�겲�걵�굯��", + "name" : "�릫�뎺", + "status" : "�궧�깇�꺖�궭�궧", + "email" : "�깳�꺖�꺂", + "few" : " 餓�", + "userNum" : " 雅�", + "selectedSearchCriteria" : "�겦�뒢�걮�걼濾쒐뇨�씉餓�", + "detailedSearch" : "屋녕눗濾쒐뇨", + "type" : "役곩닊", + "priority" : "�꽛�뀍�젂鵝�", + "importance" : "�뇥誤곩벧", + "assignee" : "�땯壤볢��", + "register" : "�쇉�뙯��", + "startDate" : "�뼀冶뗦뿥", + "endDate" : "永귚틙�뿥", + "english" : "�떛沃�", + "korean" : "�윋�쎖沃�", + "japaneseLanguage" : "�뿥�쑍沃�", + "vietnamese" : "�깧�깉�깏�깲沃�", + "add" : "瓦썲뒥", + "addFunction" : "瓦썲뒥艅잒꺗", + "downloadExcel" : "�궓�궚�궩�꺂���궑�꺍�꺆�꺖�깋", + "importExcel" : "Excel Import", + "registerExcelUploadIssue" : "�궓�궚�궩�꺂�궋�긿�깤�꺆�꺖�깋�궎�궥�깷�꺖�쇉�뙯", + "delete" : "�뎷�솮", + "checkPurgingTargets" : "�뎷�솮野얕괌閻븃첀", + "selectDestinationDeletion" : "�뎷�솮野얕괌�굮�겦�굯�겎�걦�걽�걬�걚��", + "deleteFailed" : "�뎷�솮鸚길븮", + "deleteSucceeded" : "�뎷�솮�닇�뒣", + "content" : "�냵若�", + "selectTarget" : "野얕괌�겦�뒢", + "period" : "�쐿�뼋", + "attachFiles" : "�깢�궊�궎�꺂曆삡퍡", + "selectFile" : "�깢�궊�궎�꺂�겦�뒢", + "changeDate" : "鸚됪쎍�뿥", + "lastChangeDate" : "瓦묌쟽鸚됪쎍�뿥", + "registrationDate" : "�쇉�뙯�뿥", + "fullView" : "�걲�겧�겍誤뗣굥", + "comments" : "�궠�깳�꺍�깉", + "record" : "鼇섌뙯", + "noAssignee" : "�땯壤볢�끹걣�걚�겲�걵�굯��", + "noContent" : "�냵若밤걣�걗�굤�겲�걵�굯��", + "noRecord" : "鼇섌뙯�걣�걗�굤�겲�걵�굯��", + "noComments" : "�궠�깳�꺍�깉�걣�걗�굤�겲�걵�굯��", + "noAttachedFile" : "曆삡퍡�걬�굦�걼�깢�궊�궎�꺂�걣�걗�굤�겲�걵�굯��", + "noValueEntered" : "�뀯�뒟�걮�걼�ㅳ걣�걗�굤�겲�걵�굯��", + "noValueSelected" : "�겦�뒢�걮�걼�ㅳ걣�걗�굤�겲�걵�굯��", + "writeWaring2" : "<li>�궭�궎�깉�꺂�겗�궠�꺀�깲�겘��鸚�300�뻼耶쀣겲�겎�뀯�뒟�걲�굥�걪�겏�걣�겎�걤�겲�걲��</li><li>�냵若밤궠�꺀�깲�겘��鸚�5000�뻼耶쀣겲�겎�뀯�뒟�걲�굥�걪�겏�걣�겎�걤�겲�걲��</li><li>�깤�꺆�궦�궒�궚�깉�궠�꺀�깲�겘�깤�꺆�궦�궒�궚�깉�궘�꺖�굮�뀯�뒟�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��<dl><dt>�깤�꺆�궦�궒�궚�깉�궘�꺖�겘�깤�꺆�궦�궒�궚�깉�꺁�궧�깉�겎閻븃첀�겎�걤�겲�걲��</dt></dl></li><li>�궭�궎�깤�궠�꺀�깲�겘�궎�궥�깷�꺖�궠�꺀�깲�릫�굮�뀯�뒟�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��<dl><dt>�궭�궎�깤�릫�겘�궭�궎�깤�꺁�궧�깉�겎閻븃첀�겎�걤�겲�걲��</dt></dl></li><li>�꽛�뀍�젂鵝띲겗�궠�꺀�깲�겘,鵝롢걚,�솹��,遙섅걚�걢�굢訝��겇�걽�걨�뀯�뒟�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��</li><li>�뇥誤곩벧�궠�꺀�깲�겘鵝롢걚,�솹��,曆긷댗�겗訝��겎訝��겇�걽�걨�뀯�뒟�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��</li><li>�땯壤볢�끹겘�쎔耶먦깳�꺖�꺂�겎�뙁若싥겎�걤�겲�걲��<dl><dt>筽뉑빊�겗�땯壤볢�끹굮�뙁若싥걲�굥�겓�겘,#�겓�뙷�늽�걮�겍�쇉�뙯�걲�굥�걪�겏�걣�겎�걤�겲�걲��</dt><dt>ex) wisestoneowl@gmail.com#support@wisestone.kr </dt><dt>壤볢㈁�땯壤볢�끹걣�쇉�뙯�걮�굠�걝�겏�걲�굥�궎�궥�깷�꺖�겗�깤�꺆�궦�궒�궚�깉�겓�뢿�뒥�걮�겍�걚�겒�걨�굦�겙�겒�굤�겲�걵�굯��</dt></dl></li><li>�뼀冶뗦뿥�겘,轝▲겗�굠�걝�겒壤℡폀�겎�뀯�뒟�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��<dl><dt>�뿥餓섇뀯�뒟�ㅷ탳�옖 2018-11-22 10:30:00 AM O </dt></dl></li><li>J �궠�꺀�깲�걢�굢�겘�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�겎�걲�� �걫躍뚧쐹�겗�깢�궍�꺖�꺂�깋�ㅳ굮�뀯�뒟�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��<dl><dt>壤볢㈁�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�걣�뻼耶쀥닓�뀯�뒟�깢�궍�꺖�꺂�깋�겗�졃�릦,��鸚�100 �뻼耶쀣겲�겎�뀯�뒟�걲�굥�걪�겏�걣�겎�걤�겲�걲��</dt><dt>壤볢㈁�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�걣鸚싮뇥�겦�뒢�깢�궍�꺖�꺂�깋�겒�굢,#�굮鵝욜뵪�걮�겍礪섅�끹겒�ㅳ굮�뀯�뒟�걲�굥�걪�겏�걣�겎�걤�겲�걲��</dt><dt>ex) �궕�깤�궥�깾�꺍�ㅳ걣�뙧,耶먪뒳,�궑�궢�궙�겗�졃�릦�뙧�겏�궑�궢�궙�굮�ㅳ겓�걲�굥�걼�굙�겓�겘 <span class=\"fc-blue\">�뙧#�궑�궢�궙</span>�뙧#�궑�궢�궙 </dt></dl></li>", + "color" : "�돯�쎑", + "activityLogs" : "域삣땿�냵鼇�", + "updatableStatus" : "鸚됪쎍�룾�꺗�겒�듁�뀑", + "testCase" : "�깇�궧�깉�궞�꺖�궧", + "updateStatus" : "�듁�뀑鸚됪쎍", + "tcmProject" : "�깇�궧�깉�궞�꺖�궧嶸←릤�깤�꺆�궦�궒�궚�깉", + "btsProject" : "�궎�궥�깷�꺖嶸←릤�깤�꺆�궦�궒�궚�깉", + "projectName" : "�깤�꺆�궦�궒�궚�깉�릫", + "setParticipatingInProject" : "�깤�꺆�궦�궒�궚�깉�겓�뢿�뒥�걲�굥�깺�꺖�궣�굮鼇�若싥걮�겍�걦�걽�걬�걚��", + "noUpdatedStatus" : "鸚됪쎍�겎�걤�굥�듁�뀑�겘�걗�굤�겲�걵�굯��", + "wait" : "孃끹걾", + "progress" : "�꿱죱", + "end" : "永귚틙", + "choose" : "�겦�굯�겎�걦�걽�걬�걚��", + "stringField" : "�뻼耶쀥닓�깢�궍�꺖�꺂�깋", + "multipleSelectionField" : "鸚싮뇥�겦�뒢�깢�궍�꺖�꺂�깋", + "singleSelectionField" : "�뜕訝��겦�뒢�깢�궍�꺖�꺂�깋", + "detailInformation" : "屋녕눗�깄�젿", + "beginEnglishTheProject" : "�깤�꺆�궦�궒�궚�깉�궘�꺖�겘�떛�뻼�겎冶뗣굙�겒�걨�굦�겙�겒�굤�겲�걵�굯��", + "least3Characters" : "��弱�3�뻼耶쀤빳訝듿뀯�뒟�걮�겒�걨�굦�겙�겒�굤�겲�걵�굯��", + "upTo10Characters" : "��鸚�10�뻼耶쀣겲�겎�뀯�뒟�겎�걤�겲�걲��", + "upTo20Characters" : "��鸚�20�뻼耶쀣겲�겎�뀯�뒟�겎�걤�겲�걲��", + "upTo15Characters" : "��鸚�15�뻼耶쀣겲�겎�뀯�뒟�겎�걤�겲�걲��", + "upTo50Characters" : "��鸚�50�뻼耶쀣겲�겎�뀯�뒟�겎�걤�겲�걲��", + "upTo100Characters" : "��鸚�100�뻼耶쀣겲�겎�뀯�뒟�겎�걤�겲�걲��", + "profile" : "�깤�꺆�깢�궍�꺖�꺂", + "profilePicture" : "�깤�꺆�깢�궍�꺖�꺂�넍�쐿", + "thisWeek" : "餓딃��", + "lastWeek" : "�뀍��", + "last7Days" : "��瓦묆겗 7�뿥", + "thisMonth" : "餓딀쐢", + "lastMonth" : "�뀍�쐢(1�뿥~�쑌�뿥)", + "last30Days" : "閭ㅳ겗葉뗤툒�뛻�뿥", + "directInput" : "�쎍�렏�뀯�뒟", + "pleaseEnterComments" : "�궠�깳�꺍�깉�굮�뀯�뒟�걮�겍�걦�걽�걬�걚", + "overallIssueHandlingStatus" : "�뀲�븦窈뚦눇�릤�겗�뤎力�", + "emailCannotBeChanged" : "�깳�꺖�꺂�겘鸚됪쎍�겎�걤�겲�걵�굯��", + "companyInformation" : "WISESTONE Co., Ltd<br/>雅뗦���끿쇉�뙯�빁�뤇 : 220-87-50221 <span>|</span> 餓h〃�룚渶졾슝 : �궎쨌�깿�꺍�궫�궚 <br/>�쑍鹽� : �궫�궑�꺂�돶�닪躍귞몶�뜆�뙷黎잌뜔鸚㎬러291�뜔黎잆깛�꺂6�쉸", + "companyInformation2" : "WISESTONE Co., Ltd <span>|</span> 雅뗦���끿쇉�뙯�빁�뤇: 220-87-50221 <span>|</span> 餓h〃�룚渶졾슝 �궎쨌�깿�꺍�궫�궚<br/>�쑍鹽� : �궫�궑�꺂�돶�닪躍귞몶�뜆�뙷黎잌뜔鸚㎬러291�뜔黎잆깛�꺂6�쉸 <!--<span>|</span> 餓h〃�쎔屋� 02-6257-5958 --><span>|</span> E-mail: <a href=\"mailto:supportowl@wisestone.kr\">supportowl@wisestone.kr </a><br/><small>CopyRight WISESTONE All rights reserved.</small>", + "noImage" : "曆삡퍡�걬�굦�걼�궎�깳�꺖�궦�걣�걗�굤�겲�걵�굯��", + "failedLanguageChange" : "鼇�沃욃쨯�쎍�겗鸚길븮", + "notSelectedLanguage" : "鼇�沃욁겗�겦�뒢�겓�겒�굤�겲�걵�굯�겎�걮�걼��", + "exceedsMaximumUsersWorkspace" : "璵��떃令븅뼋��鸚㎯깺�꺖�궣�꺖擁낂걥", + "deleteParticipatingWorkspaceReminder" : "�뢿�뒥璵��떃令븅뼋�뎷�솮�굮�윥�굢�걵�굥", + "failedToUpdateParticipatingSessions" : "�뢿�뒥�궩�긿�궥�깾�꺍�겗�궋�긿�깤�깈�꺖�깉鸚길븮", + "disableParticipationWorkspace" : "�뢿�뒥璵��떃,令븅뼋訝띷뉵�㎩뙑�굮�윥�굢�걵�굥", + "disableParticipationWorkspaceMessage" : "�뤎�쑉�닶�뵪�걮�겍�걚�굥璵��떃令븅뼋�걢�굢�솮鸚뽧걬�굦�겲�걮�걼��", + "alertsAboutSystem" : "�궥�궧�깇�깲�깄�젿", + "newAlert" : "�뼭�걮�걚�걡�윥�굢�걵�걣�씎�겲�걮�걼��", + "pleaseWait" : "弱묆�끹걡孃끹걾�걦�걽�걬�걚��", + "createIssue" : "�궎�궥�깷�꺖�뵟�닇", + "updateIssue" : "雅됬궧鸚됪쎍", + "deleteIssue" : "�궎�궥�깷�꺖�뎷�솮", + "updateTitle" : "�궭�궎�깉�꺂�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateContent" : "�냵若밤걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateProject" : "�깤�꺆�궦�궒�궚�깉�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateSeverity" : "�뇥誤곩벧�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updatePriority" : "�꽛�뀍�젂鵝띲걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateHasStatus" : "�듁�뀑�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateHasStatusReservation" : "�궎�궥�깷�꺖�쇇�뵟�겗雅덄큵�뿥�겏�겒�굤,�듁�뀑�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateWorkflowNotExist" : "鸚됪쎍�걬�굦�걼�꺈�꺖�궚�깢�꺆�꺖�겓�듁�뀑�걣耶섇쑉�걵�걳,�궎�궥�깷�꺖�겗�듁�뀑�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateIssueType" : "�궎�궥�깷�꺖�궭�궎�깤�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updatePeriod" : "�쐿�뼋�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "unspecified" : "�쑋�뙁若�", + "updateAssignee" : "�땯壤볢�끹걣鸚됪쎍�걬�굦�겲�걮�걼��", + "none" : "�꽒�걮", + "updateAttachment" : "曆삡퍡�깢�궊�궎�꺂�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "deleteAttachment" : "曆삡퍡�깢�궊�궎�꺂�걣�뎷�솮�걬�굦�겲�걮�걼��", + "registerAttachment" : "曆삡퍡�깢�궊�궎�꺂�걣�쇉�뙯�걬�굦�겲�걮�걼��", + "updateCustomField" : "�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateIssueCustomField" : "�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�궕�깤�궥�깾�꺍�ㅳ걣鸚됪쎍�걬�굦,�궎�궥�깷�꺖�겗�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋�ㅳ걣鸚됪쎍�걬�굦�겲�걮�걼��", + "updateIssueCustomFieldType" : "�깺�꺖�궣若싩쑴�깢�궍�꺖�꺂�깋窈욃엹�걣鸚됪쎍�걬�굦,�궎�궥�깷�꺖�겗鵝욜뵪�끻츣獰⒲깢�궍�꺖�꺂�깋�ㅳ걣鸚됪쎍�걬�굦�겲�걮�걼��", + "continue" : "泳숂텥", + "failedToUserListLookUp" : "�깺�꺖�궣�꺖�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToProjectListLookUp" : "�깤�꺆�궦�궒�궚�깉�꺁�궧�깉�뀱鴉싥겓鸚길븮", + "failedToWorkflowListLookUp" : "�꺈�꺖�궚�깢�꺆�꺖�꺁�궧�깉�겗�뀱鴉싥겓鸚길븮", + "title" : "窈뚨쎅", + "number" : "�빁�뤇", + "m" : "�쐢", + "d" : "�뿥", + "emptyUser" : "�겦�뒢�겎�걤�굥�땯壤볢�끹걣�걚�겲�걵�굯��", + "emptyProject" : "�겦�뒢�겎�걤�굥�깤�꺆�궦�궒�궚�깉�걣�걗�굤�겲�걵�굯��" + } + + +} diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json new file mode 100644 index 0000000..fbf9907 --- /dev/null +++ b/src/main/webapp/i18n/ko/global.json @@ -0,0 +1,745 @@ +{ + "dashboard": { + "dashboardTotal" : "�쟾泥�", + "dashboardProject" : "�봽濡쒖젥�듃", + "downloadToImage": " �씠誘몄�濡� �떎�슫濡쒕뱶", + "downloadToExcel": " �뿊��濡� �떎�슫濡쒕뱶", + "remainedIssue": "�옍�뿬 �씪媛�", + "delayedIssue": "吏��뿰�맂 �씪媛�", + "allocatedIssue": "�븷�떦�맂 �씪媛�", + "registeredIssue": "�벑濡앺븳 �씪媛�", + "unallocatedIssue": "誘명븷�떦 �씪媛�", + "completionIssue": "�셿猷� �씪媛�", + "processingRate": "泥섎━�쑉", + "dailyAverage": "�씪 �룊洹�", + "inProgressStatusOfProject": "吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴", + "progressProject": "吏꾪뻾 �봽濡쒖젥�듃", + "issueAll": "�쟾泥� �씪媛�", + "projectProgress": "�봽濡쒖젥�듃 吏꾪뻾瑜�", + "admin": "愿�由ъ옄", + "progressPercent": "吏꾪뻾瑜�", + "teamMember": "���썝", + "assignedToMeIssue": "�굹�뿉寃� �븷�떦�맂 �씪媛�", + "assignedTodayIssue": "�삤�뒛 �븷�떦�맂 �씪媛�", + "progressingIssue": "吏꾪뻾以묒씤 �씪媛� 紐⑸줉", + "issueName": "�씪媛먯씠由�", + "managementRisk": "�쐞�뿕 愿�由�", + "updateIssueAndStatusUpdate": "鍮덈쾲�븳 �떞�떦�옄 蹂�寃�, �옦�� �긽�깭 蹂�寃� �벑 �씪媛� 泥섎━�뿉 �쐞�뿕 �슂�냼媛� �엳�떎怨� 蹂댁뿬吏��뒗 �씪媛� 紐⑸줉", + "reversalStatusUpdate": "踰덈났�릺�뒗 �긽�깭 蹂�寃�", + "reversalAssigneeUpdate": "鍮덈쾲�븳 �떞�떦�옄 蹂�寃�", + "division": "援щ텇", + "registeredByMeIssue": "�궡媛� �벑濡앺븳 �씪媛� �쁽�솴", + "registeredTodayIssue": "�삤�뒛 �벑濡앺븳 �씪媛�", + "delayingIssue": "吏��뿰 以묒씤 �씪媛�", + "delayDate": "吏��뿰�씪", + "statusOfIssues": "�긽�깭蹂� �씪媛� �쁽�솴", + "doesNotExistWorkflow": "�썙�겕�뵆濡쒖슦媛� �뾾�뒿�땲�떎.", + "progressByMember": "硫ㅻ쾭蹂� 吏꾪뻾瑜�", + "assignedIssue": "�떞�떦 �씪媛�", + "delaying": "吏��뿰以�", + "myIssueStatus": "�굹�쓽 �씪媛� �쁽�솴", + "complete": "�셿猷�", + "registration": "�벑濡�", + "assigned": "�떞�떦", + "failedDashboardWidgetLookup": "���떆蹂대뱶 �쐞�젽 議고쉶 �떎�뙣", + "failedToTotalIssueHandling": "�쟾泥� �씪媛� 泥섎━�쁽�솴 �떎�뙣", + "notSupportedImageDownload": "�씠誘몄� �떎�슫濡쒕뱶 誘몄��썝", + "ieNotSupportedImageDownload": "IE �뿉�꽌�뒗 �씠誘몄� �떎�슫濡쒕뱶瑜� 吏��썝�븯吏� �븡�뒿�땲�떎.", + "overallIssueHandlingStatusPNG": "�쟾泥� �씪媛� 泥섎━ �쁽�솴.png", + "excludeWorkspaceParticipation": "�뾽臾� 怨듦컙 李몄뿬 �젣�쇅", + "failedToListOfPendingIssuesLookup": "吏��뿰以묒씤 �씪媛� 紐⑸줉 議고쉶 �떎�뙣", + "statusOfIssuesPNG": "�긽�깭蹂� �씠�뒋 �쁽�솴.png", + "failedToCheckProgressMember": "硫ㅻ쾭蹂� 吏꾪뻾瑜� 議고쉶 �떎�뙣", + "failedToListOfIssueAllocatedLookup": "�굹�뿉寃� �븷�떦�맂 �씪媛� 紐⑸줉 議고쉶 �떎�뙣", + "failedToListOfIssueRegisteredLookup": "�궡媛� �벑濡앺븳 �씪媛� 紐⑸줉 議고쉶 �떎�뙣", + "failedToRiskManagementIssueLookup": "�쐞�뿕 愿�由� �씪媛� 議고쉶 �떎�뙣", + "issueTypeStandIssues": "�씪媛� �쑀�삎 蹂� �씪媛� �쁽�솴", + "workspaceExpire1": "�궗�슜�븯�떆�뒗 �뾽臾� 怨듦컙", + "workspaceExpire2": "�쓽 �궗�슜 湲곌컙�씠", + "workspaceExpire3": "�씪 �궓�븯�뒿�땲�떎.", + "workspaceExpire4": "�쓽 �궗�슜 湲곌컙�씠 留뚮즺�릺�뿀�뒿�땲�떎.", + "extensionServicePeriod": "�궗�슜湲곌컙 �뿰�옣" + }, + "managementWorkspace": { + "managementWorkspace": "�뾽臾� 怨듦컙 愿�由�", + "workspaceUserLevelManagement" : "�궗�슜�옄 �벑湲� 愿�由�", + "departmentManagement" : "遺��꽌 愿�由�", + "myWorkspace": "OWL �젙蹂�", + "workspaceInformation": "湲곕낯 �젙蹂�", + "serviceStatus": "�꽌鍮꾩뒪 �긽�깭", + "numberOfUsers": "�궗�슜�옄 �닔", + "pleaseEnterNumberOfUsers": "�궗�슜�옄 �닔瑜� �엯�젰�븯�꽭�슂.", + "inviteUser": "�궗�슜�옄 珥덈�", + "invite": "珥덈�", + "emailAddress": "�씠硫붿씪 二쇱냼", + "useStorageSize": "�궗�슜 �슜�웾", + "usageTraffic": "�궗�슜 �듃�옒�뵿", + "duration": "�궗�슜 湲곌컙", + "inUse": "�궗�슜以�", + "expiredUse": "�궗�슜 留뚮즺", + "projectToInvolved": "李몄뿬�떆�궗 �봽濡쒖젥�듃", + "daysLeft": " �씪 �궓�쓬)", + "daysLeftUnlimited": "�젣�븳�뾾�쓬", + "pay": "寃곗젣�븯湲�", + "paymentInformation": "寃곗젣 �젙蹂�", + "cardNumber": "移대뱶踰덊샇", + "FirstTwoDigits": "�븵2�옄由�", + "validity": "�쑀�슚湲곌컙", + "dateOfOnesBirth": "�깮�뀈�썡�씪", + "exampleBirthInput": "�깮�뀈�썡�씪�� 6�옄由щ줈 �엯�젰�빐二쇱꽭�슂.", + "brn": "(�궗�뾽�옄踰덊샇)", + "agreeMyPersonalInformation": "蹂몄씤�쓽 媛쒖씤�젙蹂대�� 寃곗젣 �꽌鍮꾩뒪�뾽泥댁뿉 �젣怨듯븿�뿉 �룞�쓽�빀�땲�떎.", + "termsAndConditions": "�빟愿�", + "agreeToMakeThePayment": "�뿉 �룞�쓽�븯�뀛�빞 寃곗젣媛� 媛��뒫�빀�땲�떎.", + "productInformation": "�긽�뭹 �젙蹂�", + "paymentType": "寃곗젣 �쑀�삎", + "paymentMethod": "寃곗젣 �닔�떒", + "paymentDate": "寃곗젣�씪", + "monthly": "留ㅼ썡", + "yearly": "留ㅻ뀈", + "creditCard": "�떊�슜移대뱶", + "paymentAmount": "寃곗젣 湲덉븸", + "includesVAT": "(遺�媛��꽭�룷�븿)", + "regularPayment": "�젙湲� 寃곗젣�븯湲�", + "regularPaymentInformation": "�젙湲� 寃곗젣 �젙蹂�", + "paymentScheduledAmount": "寃곗젣 �삁�젙湲덉븸", + "priceInformation": "媛�寃� �젙蹂�", + "1to10People": "1 ~ 10 �씤", + "11orMore": "11�씤 �씠�긽 ~", + "perPerson": "1�씤�떦", + "cancelRegularPayment": "�젙湲� 寃곗젣 �빐吏�", + "updateRegularPayment": "�젙湲� 寃곗젣 蹂�寃�", + "joinStatus": "李몄뿬 �긽�깭", + "paymentCompleted": "寃곗젣媛� �셿猷뚮릺�뿀�뒿�땲�떎.", + "scheduleUserWaitingToJoin": "李몄뿬 ��湲� �궗�슜�옄 �삁�빟", + "schedulePeopleWaitingToParticipate": "寃곗젣�븯�뒗 �궗�슜�옄 �닔媛� 以꾩뼱�뱾 寃쎌슦 李몄뿬 ��湲� �긽�깭媛� �릺�뒗 �궗�슜�옄瑜� 誘몃━ �삁�빟�븷 �닔 �엳�뒿�땲�떎.", + "privacyPolicyAndTermsOfUse": "媛쒖씤 �젙蹂� 泥섎━ 諛⑹묠 諛� �씠�슜�빟愿�", + "termsOfUse": "�씠�슜�빟愿�", + "termsOfUse1": "�젣 1議� (紐⑹쟻)<br>�씠 �빟愿��� 二쇱떇�쉶�궗 ���씠利덉뒪�넠(�씠�븯 '�쉶�궗'�씪 �빀�땲�떎)�씠 �젣怨듯븯�뒗 OWL �꽌鍮꾩뒪(OWL solution �궗�씠�듃 諛� OWL ITS �씠�븯 �쏰WL �꽌鍮꾩뒪��)�쓽 �씠�슜 愿��젴�븯�뿬 �쉶�궗�� �쉶�썝 媛꾩쓽 沅뚮━, �쓽臾� 諛� 梨낆엫�궗�빆, �씠�슜議곌굔 諛� �젅李� �벑 �븘�슂�궗�빆�쓣 洹쒖젙�븿�쓣 紐⑹쟻�쑝濡� �빀�땲�떎.<br><br>�젣 2議� (�젙�쓽)<br>�씠 �빟愿��뿉�꽌 �궗�슜�븯�뒗 �슜�뼱�쓽 �젙�쓽�뒗 �떎�쓬怨� 媛숈뒿�땲�떎.<br>(1) \"�꽌鍮꾩뒪\"�씪 �븿�� 援ы쁽�릺�뒗 �떒留먭린(PC, �쑕���삎�떒留먭린 �벑�쓽 媛곸쥌 �쑀臾댁꽑 �옣移섎�� �룷�븿)�� �긽愿��뾾�씠 \"�쉶�썝\"�씠 �씠�슜�븷 �닔 �엳�뒗 OWL �꽌鍮꾩뒪�� 愿��젴 �젣諛� �꽌鍮꾩뒪瑜� �쓽誘명빀�땲�떎.<br>(2) �쏰WL ITS�앸씪 �븿�� �쒗쉶�썝�앷낵 援ъ꽦�썝�뱾 媛꾩뿉 �뾽臾대�� 吏꾪뻾�븯硫댁꽌 諛쒖깮�븯�뒗 �뿬�윭 臾몄젣瑜� �떆�뒪�뀥�뿉 �벑濡앺븯怨� 吏꾪뻾 �긽�솴�쓣 湲곕줉�븯�뒗 �뵆�옯�뤌�쓣 �쓽誘명빀�땲�떎.<br>(3) \"�쉶�썝\"�씠�씪 �븿�� �쉶�궗�쓽 \"�꽌鍮꾩뒪\"�뿉 �젒�냽�븯�뿬 �씠 �빟愿��뿉 �뵲�씪 \"�쉶�궗\"�� �씠�슜怨꾩빟�쓣 泥닿껐�븯怨� \"�쉶�궗\"媛� �젣怨듯븯�뒗 \"�꽌鍮꾩뒪\"瑜� �씠�슜�븯�뒗 怨좉컼�쓣 留먰빀�땲�떎.<br>(4) \"鍮꾨�踰덊샇\"�씪 �븿�� \"�쉶�썝\"�씠 遺��뿬諛쏆� �씠硫붿씪 二쇱냼�� �씪移섎릺�뒗 \"�쉶�썝\"�엫�쓣 �솗�씤�븯怨� 鍮꾨�蹂댄샇瑜� �쐞�빐 \"�쉶�썝\" �옄�떊�씠 �젙�븳 臾몄옄 �삉�뒗 �닽�옄�쓽 議고빀�쓣 �쓽誘명빀�땲�떎.<br>(5) �쒓뎄�꽦�썝�앹씠�씪 �븿�� �쒗쉶�썝�앹쑝濡쒕��꽣 �쏰WL ITS�� �씠�슜沅뚰븳�쓣 遺��뿬諛쏆븘 �쒗쉶�썝�� 愿�由ы븯�뿉 �쏰WL ITS�앸�� �씠�슜�븯�뒗 �옄瑜� �쓽誘명븯�뿬, �쒗쉶�썝�앹쑝濡쒕��꽣 遺��뿬諛쏆� 沅뚰븳�뿉 �뵲�씪 �떎�쓬怨� 媛숈씠 �쒖뾽臾� 怨듦컙愿�由ъ옄�� 諛� �쒖씪諛� 援ъ꽦�썝�앹쑝濡� 援щ텇�맗�땲�떎.�떎留� �쒗쉶�썝�앹씠 �쒖뾽臾� 怨듦컙 愿�由ъ옄�앹씤 寃쎌슦�쒓뎄�꽦�썝�앹� �쒖씪諛� 援ъ꽦�썝�앹쑝濡� 援щ텇�맗�땲�떎.<br>(6) \"�뾽臾� 怨듦컙 愿�由ъ옄\"�씪 �븿�� \"OWL ITS\"�쓽 �옄�떊�쓽 �뾽臾� 怨듦컙�뿉 ���빐 紐⑤뱺 愿�由� 湲곕뒫�쓣 �씠�슜�븷 �닔 �엳怨�, \"OWL ITS\" �씠�슜怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒗 \"�쉶�썝\" 蹂몄씤�쓣 �쓽誘명빀�땲�떎.<br>(7) \"�씪諛� 援ъ꽦�썝\"�씠�씪 �븿�� 蹂꾨떎瑜� 愿�由� 沅뚰븳 �뾾�씠 \"OWL ITS\"�쓣 �씠�슜�븯�뒗 \"援ъ꽦�썝\"�쓣 �쓽誘명빀�땲�떎.<br>(8) �쒓퀎�젙�앹씠�씪 �븿�� �쒗쉶�썝�앹씠 OWL �꽌鍮꾩뒪瑜� �씠�슜�븯湲� �쐞�븯�뿬 �븘�슂�븳 �씠硫붿씪 二쇱냼 諛� �쒕퉬諛�踰덊샇�앸�� 湲곗큹濡� �븯�뿬 �깮�꽦�맂 濡쒓렇�씤 �쒓퀎�젙�앹씠�굹 �떎瑜� �꽌鍮꾩뒪�� �뿰�룞�릺�뒗 �꽌鍮꾩뒪�쓽 怨꾩젙�쓣 �쓽誘명빀�땲�떎.<br>(9) �쒖뾽臾� 怨듦컙�앹씠�씪 �븿�� �쏰WL ITS�앸�� �씠�슜�븯湲� �쐞�븯�뿬 �깮�꽦�맂 �꽌鍮꾩뒪 怨꾩젙�쑝濡� �삊�뾽�씠 媛��뒫�븳 怨듦컙�쓣 �쓽誘명빀�땲�떎. �쒗쉶�썝�앹쓽 �쒓퀎�젙�앹� �뿬�윭 �뾽臾닿났媛꾩뿉 �냽�븷 �닔 �엳�뒿�땲�떎.<br>(10)�쒓쾶�떆臾쇄�앹씠�씪 �븿�� �쒗쉶�썝�앹씠 �쒖꽌鍮꾩뒪�앸�� �씠�슜�븿�뿉 �엳�뼱 �쒖꽌鍮꾩뒪�앹긽�뿉 寃뚯떆�븳 遺��샇��臾몄옄���룞�쁺�긽 �벑�쓽 �젙蹂� �삎�깭�쓽 湲�, �궗吏�, �룞�쁺�긽 諛� 媛곸쥌 �뙆�씪怨� 留곹겕 �벑�쓣 �쓽誘명빀�땲�떎.<br>(11) �쒖긽�뭹�앹씠�씪 �븿�� �쒗쉶�썝�앹씠 �쒖꽌鍮꾩뒪�앹쓽 �썝�솢�븳 �씠�슜�쓣 �쐞�빐 �쒗쉶�궗�앷� 吏��젙�븳 �슂湲덉젣�뿉 �뵲�씪 �쒗쉶�썝�앹씠 �꽑�깮�븯怨� 怨꾩빟�븳 �꽌鍮꾩뒪 �븳 醫낅쪟瑜� �쓽誘명빀�땲�떎.�쒗쉶�썝�� �꽑�깮�븷 �닔 �엳�뒗 �쒖긽�뭹�앹� �슂湲� 吏�遺덉씠 �븘�슂 �뾾�뒗 臾대즺�긽�뭹怨� �씠�슜�슂湲덉쓣 吏�遺덊빐�빞 �븯�뒗 �쑀猷뚯긽�뭹�쑝濡� �쉶�썝�뿉寃� �젣怨듬맆 �닔 �엳�뒿�땲�떎.<br>(14) \"寃곗젣\"�씪 �븿�� \"�쉶�썝\"�씠 \"OWL ITS\"�쓽 �쑀猷� 湲곕뒫�쓣 �씠�슜�븯湲� �쐞�븯�뿬 鍮꾩슜�쓣 \"�쉶�궗\"�뿉 吏�湲됲븯�뒗 寃껋쓣 �쓽誘명빀�땲�떎.<br>(15) \"�젙湲곌껐�젣\"�씪 �븿�� 留ㅻ떖 �옄�룞寃곗젣�씪�뿉 �씠�슜�슂湲덉씠 \"寃곗젣\"�릺�뼱 OWL ITS �쑀猷� 湲곕뒫�쓣 �씠�슜�븷 �닔 �엳�뒗 諛⑹떇�쓣 留먰빀�땲�떎.<br> <br>�젣 3議� (�빟愿� 寃뚯떆�� 媛쒖젙)<br>(1) �쉶�궗�뒗 蹂� �빟愿��쓽 �궡�슜�쓣 �쉶�썝�씠 �돺寃� �븣 �닔 �엳�룄濡� OWL �꽌鍮꾩뒪 寃곗젣 �솕硫댁뿉 �빟愿��쑝濡� 寃뚯떆�빀�땲�떎.<br>(2) �쉶�궗�뒗 �븘�슂�븳 寃쎌슦 愿��젴 踰뺣졊�쓣 �쐞諛고븯吏� �븡�뒗 踰붿쐞 �궡�뿉�꽌 蹂� �빟愿��쓣 蹂�寃쏀븷 �닔 �엳�뒿�땲�떎.<br>(3) �쉶�궗媛� 蹂� �빟愿��쓣 媛쒖젙�븯�뒗 寃쎌슦�뿉�뒗 �쟻�슜 �씪�옄 諛� 媛쒖젙�궗�쑀瑜� 紐낆떆�븯�뿬 �쁽�뻾 �빟愿�怨� �븿猿� OWL �꽌鍮꾩뒪 怨듭��궗�빆 寃뚯떆�뙋�뿉 �쟻�슜 �씪�옄 15�씪 �쟾遺��꽣 �쟻�슜 �씪�옄 �쟾�씪源뚯� 怨듭��빀�땲�떎. �떒, �뵾移� 紐삵븯寃� �쉶�썝�뿉寃뚮텋由ы븳 �궡�슜�쑝濡� �빟愿��씠 媛쒖젙�릺�뒗 寃쎌슦�뿉�뒗 怨듭� �쇅�뿉 �쉶�썝�씠 �쉶�썝媛��엯 �떆 湲곗옱�븳 �씠硫붿씪 二쇱냼濡� �씠硫붿씪 諛쒖넚, 濡쒓렇�씤 �떆 �븣由� �뙘�뾽李� �삉�뒗 �룞�쓽李� �벑�쓽 �쟾�옄�쟻 �닔�떒�쓣 �넻�빐 �쟻�슜 �씪�옄 30�씪 �쟾�뿉 �뵲濡� 紐낇솗�엳 �넻吏��빀�땲�떎.<br>(4) �쉶�궗媛� �쟾�빆�뿉 �뵲�씪 媛쒖젙�빟愿��쓣 怨듭� �삉�뒗 �넻吏��븯硫댁꽌 �쉶�썝�뿉寃� 30�씪 湲곌컙 �궡�뿉 �쓽�궗�몴�떆瑜� �븯吏� �븡�쑝硫� �쓽�궗�몴�떆媛� �몴紐낅맂 寃껋쑝濡� 蹂몃떎�뒗 �쑜�쓣 紐낇솗�븯寃� 怨듭� �삉�뒗 �넻吏��븯���쓬�뿉�룄 �쉶�썝�씠 紐낆떆�쟻�쑝濡� 嫄곕��쓽 �쓽�궗�몴�떆瑜� �븯吏� �븘�땲�븳 寃쎌슦 �쉶�썝�씠 媛쒖젙�빟愿��뿉 �룞�쓽�븳 寃껋쑝濡� 遊낅땲�떎.<br>(5) �쉶�썝�씠 媛쒖젙�빟愿��뿉 �룞�쓽�븯吏� �븡�쓣 寃쎌슦 �쉶�궗�뒗 媛쒖젙 �빟愿��쓽 �궡�슜�쓣 �쟻�슜�븷 �닔 �뾾�쑝硫�, �씠 寃쎌슦 �쉶�썝�� �씠�슜怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒿�땲�떎. �떎留�, 湲곗〈 �빟愿��쓣 �쟻�슜�븷 �닔 �뾾�뒗 �듅蹂꾪븳 �궗�젙�씠 �엳�뒗 寃쎌슦 �쉶�궗�뒗 �씠�슜怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒿�땲�떎.<br> <br>�젣 4議� (�빟愿� �쇅 以�移�)<br> 蹂� �빟愿��뿉 紐낆떆�릺吏� �븡�� �궗�빆�� �쟾湲고넻�떊 湲곕낯踰�, �쟾湲고넻�떊 �궗�뾽踰� 諛� 湲고� 愿��젴 踰뺣졊�쓽 洹쒖젙, 蹂� �빟愿��쓽 痍⑥� 諛� �룞醫� �뾽怨꾩쓽 �씪諛섏쟻�씤 愿��뻾�뿉 �뵲�씪�꽌 �빐�꽍�븯�뿬 �쟻�슜�빀�땲�떎.<br><br>�젣 5議� (�씠�슜怨꾩빟 泥닿껐)<br>(1) OWL �꽌鍮꾩뒪 �씠�슜怨꾩빟�� �쉶�썝�씠 �릺怨좎옄 �븯�뒗 �옄媛� 蹂� �빟愿� �궡�슜�뿉 �룞�쓽�븯怨� �씠硫붿씪 二쇱냼�� 鍮꾨�踰덊샇瑜� �벑濡앺븳 �썑 �쉶�썝媛��엯�떊泥��쓣 �븯硫� �쉶�궗媛� �씠硫붿씪 二쇱냼 �쑀�슚 �씤利� �썑 �듅�굺�븿�쑝濡쒖뜥 泥닿껐�맗�땲�떎.<br>(2) 怨꾩젙�쑝濡� �벑濡앸맂 �씠硫붿씪 二쇱냼�뒗 蹂�寃쎌씠 遺덇��뒫�빀�땲�떎.<br>(3) 媛��엯 �씠�썑 紐낆떆�쟻�쑝濡� �꽌鍮꾩뒪瑜� �빐吏��븯湲� �쟾源뚯��뒗 �뼵�젣�뱺吏� 援ъ꽦�썝 異붽� 諛� �꽌鍮꾩뒪 �씠�슜 湲곌컙 異붽� �떊泥�/寃곗젣�븯�뿬 �꽌鍮꾩뒪瑜� �씠�슜�븷 �닔 �엳�뒿�땲�떎.<br>�몺 �씠�슜 怨꾩빟 留뚮즺 �썑 �씠�슜�븷 �닔 �엳�뒗 湲곕뒫�� �씪遺� �젣�븳�쟻�씠硫� 6媛쒖썡 寃쎄낵 �썑 �꽌鍮꾩뒪 �씠�슜�젙蹂닿� �궘�젣�맗�땲�떎.<br>(4) �쉶�궗�뒗 臾대즺濡� �젣怨듬릺�뒗 �꽌鍮꾩뒪�쓽 �씪遺� �삉�뒗 �쟾遺�瑜� �쉶�궗�쓽 �젙梨� 諛� �슫�쁺�쓽 �븘�슂 �긽 �닔�젙, 以묐떒, 蹂�寃쏀븷 �닔 �엳�쑝硫�, �씠�뿉 ���븯�뿬 愿��젴踰뺤뿉 �듅蹂꾪븳 洹쒖젙�씠 �뾾�뒗 �븳 �쉶�썝�뿉寃� 蹂꾨룄�쓽 蹂댁긽�쓣 �븯吏� �븡�뒿�땲�떎.<br>(5) �쉶�궗�뒗 �떎�쓬 媛� �샇�뿉 �빐�떦�븯�뒗 �떊泥��뿉 ���빐�꽌�뒗 �듅�굺�쓣 �븯吏� �븡嫄곕굹 �궗�썑�뿉 �씠�슜 怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒿�땲�떎.<br>�몺 蹂� �빟愿� �젣 10議� �젣 3�빆�뿉 �쓽�븯�뿬 �쉶�궗媛� �씠�슜怨꾩빟�쓣 �빐吏��븯���뜕 �쉶�썝�씠 �떎�떆 �쉶�썝媛��엯 �떊泥��쓣 �븯�뒗 寃쎌슦<br>�몼 ���씤�쓽 媛쒖씤�젙蹂대�� �씠�슜�븳 寃쎌슦<br>�몾 �뿀�쐞�쓽 �젙蹂대�� 湲곗옱�븯嫄곕굹 �쉶�궗媛� �븘�닔�궗�빆�쑝濡� �젣�떆�븳 �젙蹂대�� 湲곗옱�븯吏� �븡�뒗 寃쎌슦<br>�몿 湲고� 愿��젴 踰뺣졊�뿉 �쐞諛곕릺嫄곕굹 �꽭遺�吏�移� �벑 �쉶�궗媛� �젙�븳 湲곗��뿉 諛섑븯�뒗 寃쎌슦<br> (6) �쉶�궗�뒗 �븘�옒 媛� �샇�쓽 寃쎌슦�뿉�뒗 �쉶�썝媛��엯 �떊泥��옄�쓽 怨꾩젙 �깮�꽦�쓣 �쑀蹂댄븷 �닔 �엳�뒿�땲�떎.<br>�몺 �젣怨� �꽌鍮꾩뒪 �꽕鍮� �슜�웾�뿉 �쁽�떎�쟻�씤 �뿬�쑀媛� �뾾�뒗 寃쎌슦<br>�몼 �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�븳 湲곗닠�쟻�씤 遺�遺꾩뿉 臾몄젣媛� �엳�떎怨� �뙋�떒�릺�뒗 寃쎌슦<br>�몾 湲고� �쉶�궗媛� �옱�젙�쟻, 湲곗닠�쟻�쑝濡� �븘�슂�븯�떎怨� �씤�젙�븯�뒗 寃쎌슦<br> <br>�젣 6議� (�쉶�썝�젙蹂댁쓽 愿�由�)<br>(1) �쉶�썝�쓽 怨꾩젙, 鍮꾨�踰덊샇�뿉 ���븳 愿�由ъ콉�엫�� �쉶�썝�뿉寃� �엳�쑝硫�, �씠瑜� �젣 3 �옄媛� �씠�슜�븯�룄濡� �뿀�씫�븷 �닔 �뾾�뒿�땲�떎.<br>(2) �쉶�썝�� 怨꾩젙 諛� 鍮꾨�踰덊샇媛� �룄�슜�릺嫄곕굹 �젣 3 �옄媛� �궗�슜�븯怨� �엳�쓬�쓣 �씤吏��븳 寃쎌슦�뿉�뒗 �씠瑜� 利됱떆 �쉶�궗�뿉寃� �넻吏��븯怨� �쉶�궗�쓽 �븞�궡�뿉 �뵲�씪�빞 �빀�땲�떎.<br>(3) �쟾 �빆�쓽 寃쎌슦�뿉 �빐�떦 �쉶�썝�씠 �쉶�궗�뿉 �빐�떦 �궗�떎�쓣 �넻吏��븯吏� �븡嫄곕굹 �넻吏��븳 寃쎌슦�뿉�룄 �쉶�궗�쓽 �븞�궡�뿉 �뵲瑜댁� �븡�븘 諛쒖깮�븳 �넀�빐�뿉 ���븯�뿬 �쉶�궗�뒗 梨낆엫吏�吏� �븡�뒿�땲�떎.<br>(4) �쉶�썝�� OWL �꽌鍮꾩뒪 �궡 怨꾩젙 愿�由� 湲곕뒫�쓣 �넻�븯�뿬 �뼵�젣�뱺吏� 蹂몄씤�쓽 媛쒖씤�젙蹂대�� �뿴�엺�븯怨� �닔�젙�븷 �닔 �엳�뒿�땲�떎. �쉶�썝�씠 蹂몄씤�쓽 �젙蹂대�� �쟻�젅�븯寃� �닔�젙�븯吏� �븡�븘 諛쒖깮�븯�뒗 遺덉씠�씡�뿉 ���븯�뿬 �쉶�궗�뒗 梨낆엫�쓣 遺��떞�븯吏� �븡�뒿�땲�떎.<br>(5)�쉶�썝�씠 �쉶�궗�뿉寃� 蹂꾨룄濡� 媛쒖씤�젙蹂댁쓽 �뙆湲� 諛� 蹂닿��쓣 �슂泥��븯�뒗 寃쎌슦, 媛쒖씤�젙蹂대낫�샇 �떆�뻾�졊�뿉 �뵲�씪 �쉶�궗�� �뿖�쓽 �븯�뿬 寃곗젙�맂 諛⑸쾿 (�꽌硫�, �쑀�꽑�긽 �벑)�쑝濡� �떊泥��븯�뿬�빞 �븯硫� �쉶�썝�쓽 �슂援ъ궗�빆�뿉 �뵲�씪 蹂꾨룄�쓽 鍮꾩슜�씠 諛쒖깮�븷 �닔 �엳�뒿�땲�떎.<br> <br>�젣 7議� (�쉶�궗�쓽 �쓽臾�)<br>(1) �쉶�궗�뒗 OWL �꽌鍮꾩뒪 �젣怨� 諛� 蹂댁븞怨� 愿��젴�맂 �꽕鍮꾨�� 吏��냽�쟻�씠怨� �븞�젙�쟻�씤 �꽌鍮꾩뒪 �젣怨듭뿉 �쟻�빀�븯�룄濡� �쑀吏�, �젏寃� �삉�뒗 蹂듦뎄 �벑�쓽 議곗튂瑜� �꽦�떎�엳 �씠�뻾�븯湲� �쐞�빐 �끂�젰�빀�땲�떎.<br>(2) �쉶�궗�뒗 �쉶�썝�씠 �닔�떊 �룞�쓽瑜� �븯吏� �븡�� �쁺由� 紐⑹쟻�쓽 愿묎퀬�꽦 �씠硫붿씪, �븣由� 硫붿떆吏� �벑�쓣 諛쒖넚�븯吏� �븘�땲�빀�땲�떎.<br>(3) �쉶�궗�뒗 OWL �꽌鍮꾩뒪�쓽 �젣怨듦낵 愿��젴�븯�뿬 �븣寃� �맂 �쉶�썝�쓽 媛쒖씤�젙蹂대�� 蹂몄씤�쓽 �듅�굺 �뾾�씠 �젣 3 �옄�뿉寃� �늻�꽕, 諛고룷�븯吏� �븡怨�, �씠瑜� 蹂댄샇�븯湲� �쐞�븯�뿬 �끂�젰�빀�땲�떎. �쉶�썝�쓽 媛쒖씤�젙蹂대낫�샇�뿉 愿��븳 湲고��쓽 �궗�빆�� �젙蹂댄넻�떊留앸쾿 諛� �쉶�궗媛� 蹂꾨룄濡� �젙�븳 \"媛쒖씤�젙蹂� 泥섎━諛⑹묠\"�뿉 �뵲由낅땲�떎.<br><br>�젣 8議� (�쉶�썝�쓽 �쓽臾�)<br>(1) �쉶�썝�� �븘�옒 媛� �샇�쓽 �뻾�쐞瑜� �븯�뿬�꽌�뒗 �븞 �맗�땲�떎.<br>�몺 �쉶�썝媛��엯 �떊泥� �삉�뒗 �쉶�썝�젙蹂� 蹂�寃� �떆 �뿀�쐞 �궡�슜�쓽 �벑濡�<br>�몼 ���씤�쓽 �젙蹂대룄�슜<br>�몾 �쉶�궗媛� 寃뚯떆�븳 �젙蹂댁쓽 蹂�寃�<br>�몿 �쉶�궗媛� �젙�븳 �젙蹂� �씠�쇅�쓽 �젙蹂�(而댄벂�꽣 �봽濡쒓렇�옩 �벑) �벑�쓽 �넚�떊 �삉�뒗 寃뚯떆<br>�뫀 �쉶�궗�� 湲고� �젣3�옄�쓽 ���옉沅� �벑 吏��쟻 �옱�궛沅뚯쓣 移⑦빐�븯�뒗 �뻾�쐞<br>�뫁 �쉶�궗 諛� 湲고� �젣3�옄�쓽 紐낆삁瑜� �쎕�넀�븯嫄곕굹 �뾽臾대�� 諛⑺빐�븯�뒗 �뻾�쐞<br>�뫂 �쇅�꽕 �삉�뒗 �룺�젰�쟻�씤 硫붿떆吏�, �솕�긽, �쓬�꽦, 湲고� 怨듭꽌�뼇�냽�뿉 諛섑븯�뒗 �젙蹂대�� OWL �꽌鍮꾩뒪�뿉 怨듦컻 �삉�뒗 寃뚯떆�븯�뒗 �뻾�쐞<br>�뫃 �쉶�궗�쓽 �룞�쓽 �뾾�씠 �쁺由щ�� 紐⑹쟻�쑝濡� OWL �꽌鍮꾩뒪瑜� �씠�슜�븯�뒗 �뻾�쐞<br>�뫅 �떎瑜� �꽌鍮꾩뒪 �씠�슜�옄�쓽 �젙蹂대�� 臾대떒�쑝濡� �닔吏�, �씠�슜�븯嫄곕굹 �떎瑜� �궗�엺�뱾�뿉寃� �젣怨듯븯�뒗 �뻾�쐞<br>�뫆 �쉶�궗�쓽 �룞�쓽 �뾾�씠 OWL �꽌鍮꾩뒪 �삉�뒗 �씠�뿉 �룷�븿�맂 �냼�봽�듃�썾�뼱 �씪遺�瑜� 蹂듭궗, �닔�젙, 諛고룷, �뙋留�, �뼇�룄, ���뿬, �떞蹂� �젣怨듯븯嫄곕굹 ���씤�뿉寃� 洹� �씠�슜�쓣 �뿀�씫�븯�뒗 �뻾�쐞�� �냼�봽�듃�썾�뼱瑜� �뿭�꽕怨꾪븯嫄곕굹 �냼�뒪 肄붾뱶�쓽 異붿텧�쓣 �떆�룄�븯�뒗 �벑 OWL �꽌鍮꾩뒪瑜� 蹂듭젣, 遺꾪빐 �삉�뒗 紐⑤갑�븯嫄곕굹 湲고� 蹂��삎�븯�뒗 �뻾�쐞<br>�뫇 �쉶�궗媛� �븞�궡�븯�뒗 諛⑸쾿 �씠�쇅�쓽 �떎瑜� 諛⑸쾿�쓣 �궗�슜�븯�뿬 OWL �꽌鍮꾩뒪�뿉 �젒洹쇳븯�뒗 �뻾�쐞<br>�뫉 蹂몄씤怨� 愿��젴 �뾾�뒗 OWL �꽌釉뚮룄硫붿씤�쓣 �깮�꽦 �꽑�젏�븯�뿬 ���씤�쓽 OWL �꽌鍮꾩뒪 �궗�슜�쓣 諛⑺빐�븯�뒗 �뻾�쐞<br>�뫊 �옄�떊�쓽 OWL �꽌鍮꾩뒪 �씠�슜沅뚰븳, 湲고� �씠�슜 怨꾩빟�긽 吏��쐞瑜� ���씤�뿉寃� �뼇�룄쨌利앹뿬�븯嫄곕굹 �떞蹂대줈 �젣怨듯븯�뒗 �뻾�쐞<br>�뫋 湲고� 遺덈쾿�쟻�씠嫄곕굹 遺��떦�븳 �뻾�쐞<br> (2) �쉶�썝�씠 愿��젴 踰뺣졊, 蹂� �빟愿� �삉�뒗 �섏꽭遺�吏�移ⓥ�숈쓣 以��닔�븯吏� �븡�뒗 寃쎌슦 �쉶�궗�뒗 �쉶�썝�쓽 �쐞諛섑뻾�쐞 �벑�쓣 議곗궗�븯嫄곕굹 �쉶�썝�쓽 OWL �꽌鍮꾩뒪 �씠�슜�쓣 �씪�떆 �삉�뒗 怨꾩냽�븯�뿬 以묐떒�븯嫄곕굹, �옱媛��엯�뿉 �젣�븳�쓣 �몮 �닔�룄�엳�뒿�땲�떎. �씠濡� �씤�븳 �빐吏� �썑 諛쒖깮�맂 �젙蹂� �넀�떎�뿉 ���븳 梨낆엫�� �쉶�썝�뿉寃� �엳�뒿�땲�떎.<br>(3) �쉶�궗�뒗 愿��젴 踰뺣졊�뿉�꽌 �젙�븯�뒗 湲곌컙 �룞�븞 �쉶�썝�씠 �꽌鍮꾩뒪瑜� �씠�슜�븯湲� �쐞�빐 濡쒓렇�씤 �샊�� �젒�냽�븳 湲곕줉�씠 �뾾�뒗 寃쎌슦 �쉶�썝�씠 �벑濡앺븳 OWL 怨꾩젙 �씠硫붿씪 二쇱냼 �벑 湲고� �쑀�슚�븳 �닔�떒�쑝濡� �넻吏� �썑 �뿬�윭遺꾩쓽 �젙蹂대�쇳뙆湲고븯嫄곕굹 遺꾨━ 蹂닿��븷 �닔 �엳�쑝硫�, �씠濡� �씤�빐 OWL �꽌鍮꾩뒪 �씠�슜�쓣 �쐞�븳 �븘�닔�쟻�씤 �젙蹂닿� 遺�議깊븷 寃쎌슦 �씠�슜怨꾩빟�씠 �빐吏��맆 �닔�룄 �엳�뒿�땲�떎.<br>(4) �쉶�썝�� �쑀猷� �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 ��媛�濡� 蹂� �빟愿��쓣 洹쇨굅濡� �쉶�궗媛� �젙�븳 �슂湲덉쓣 �궔遺��븷 �쓽臾닿� �엳�쑝硫�, �슂湲� 誘몃궔�쑝濡� �씤�빐 諛쒖깮�븯�뒗 臾몄젣�뿉 ���븯�뿬 �쉶�궗�쓽 怨쇱떎�씠�굹 �쉶�궗媛� �씤�젙�븳 �궗�쑀�뿉 �쓽�븳 寃쎌슦瑜� �젣�쇅�븯怨좊え�뱺 梨낆엫�� �쉶�썝�뿉寃� �엳�뒿�땲�떎.<br> <br>�젣 9議� (�꽌鍮꾩뒪�쓽 蹂�寃� 諛� 以묐떒)<br>(1) �쉶�궗�뒗 OWL �꽌鍮꾩뒪瑜� 365�씪, 24�떆媛� �돩吏� �븡怨� �젣怨듯븯湲� �쐞�븯�뿬 理쒖꽑�쓽 �끂�젰�쓣 �떎�빀�땲�떎. �떎留�, �옣鍮꾩쓽 �쑀吏�쨌蹂댁닔瑜� �쐞�븳 �젙湲� �삉�뒗 �엫�떆 �젏寃� �삉�뒗 �떎瑜� �긽�떦�븳 �씠�쑀濡� �꽌鍮꾩뒪�쓽 �젣怨듭씠 �씪�떆以묐떒�맆 �닔 �엳�쑝硫�, �씠 寃쎌슦 誘몃━ �꽌鍮꾩뒪 �젣怨� �솕硫댁뿉 怨듭��빀�땲�떎. 留뚯빟, �쉶�궗濡쒖꽌�룄 �삁痢≫븷 �닔 �뾾�뒗 �씠�쑀濡� OWL �꽌鍮꾩뒪媛� 以묐떒�맂 �븣�뿉�뒗 �쉶�궗媛� �긽�솴�쓣 �뙆�븙�븯�뒗 利됱떆 理쒕��븳 鍮좊Ⅸ �떆�씪 �궡�뿉 �꽌鍮꾩뒪瑜� 蹂듦뎄�븯�룄濡� �끂�젰�빀�땲�떎.<br>(2) �쉶�궗�뒗 �슫�쁺�긽, 湲곗닠�긽�쓽 �븘�슂�뿉 �뵲�씪 OWL �꽌鍮꾩뒪�쓽 �쟾遺� �삉�뒗 �씪遺� �궡�슜�쓣 蹂�寃� �삉�뒗 以묐떒�븷 �닔 �엳�쑝硫�, �꽌鍮꾩뒪 蹂�寃� �삉�뒗 以묐떒 �쟾�뿉 OWL �꽌鍮꾩뒪 珥덇린�솕硫� �삉�뒗 怨듭��궗�빆���뿉 寃뚯떆�븯�뿬 �쉶�썝�뿉寃� 怨듭��빀�땲�떎. �쉶�썝�뿉寃� 以묐��븳 �쁺�뼢�쓣 誘몄튂�뒗 �꽌鍮꾩뒪 蹂�寃� �궗�빆�씠�굹 以묐떒�� 怨듭� �쇅�뿉 �쉶�썝�씠 �쉶�썝媛��엯 �떆 �벑濡앺븳 �씠硫붿씪 二쇱냼濡� �씠硫붿씪 諛쒖넚, 濡쒓렇�씤 �떆 �븣由� �뙘�뾽李� �삉�뒗 �룞�쓽李� �벑�쓽 �쟾�옄�쟻 �닔�떒�쓣 �넻�빐 �쟻�슜 �씪�옄30�씪 �쟾�뿉 �뵲濡� 紐낇솗�엳 �넻吏��빀�땲�떎.<br>(3) �쉶�궗�뒗 �떎�쓬�쓽 寃쎌슦�뿉�뒗 OWL �꽌鍮꾩뒪 �젣怨듭쓣 以묒��븷 �닔 �엳�뒿�땲�떎.<br>�몺 援�媛�鍮꾩긽�긽�깭, �꽌鍮꾩뒪 �꽕鍮꾩쓽 �옣�븷, �꽌鍮꾩뒪 �씠�슜�쓽 �룺二� �벑 �젙�긽�쟻 �꽌鍮꾩뒪�뿉 吏��옣�씠 諛쒖깮�븷 �슦�젮媛� �엳�쓣 寃쎌슦<br>�몼 泥쒖옱吏�蹂� �벑 �쉶�궗媛� �뵾�븷 �닔 �뾾�뒗 �궗�쑀濡� �꽌鍮꾩뒪 �젣怨듭씠 �궗�떎�긽 遺덇��뒫�븳 寃쎌슦<br>�몾 �쟾湲고넻�떊�궗�뾽踰뺤뿉 洹쒖젙�맂 湲곌컙�넻�떊 �궗�뾽�옄媛� �쟾湲고넻�떊 �꽌鍮꾩뒪瑜� 以묒��뻽�쓣 寃쎌슦<br>�몿 �꽌鍮꾩뒪瑜� �젣怨듯븯�뒗 �떆�뒪�뀥�쓽 媛묒옉�뒪�윴 �옣�븷濡� �씤�븯�뿬 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �뾾�뒗 寃쎌슦<br> �뫀 湲고� �씠�뿉 以��븯�뒗 �궗�쑀濡� �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �뾾�뒗 寃쎌슦<br>�뫁 �쟾�빆 �몺 ~�뫀�쓽 �꽌鍮꾩뒪 以묒��뿉 ���븯�뿬 �쉶�썝�� 蹂� �씠�슜�빟愿� �젣19議곗쓽 �넀�빐諛곗긽 �씠�쇅�쓽 �뵾�빐 �벑 吏곴컙�젒�쟻�씤 諛곗긽�씠�굹 蹂댁긽�쓣 �슂援ы븷 �닔 �뾾�뒿�땲�떎. <br>(4) �쉶�궗�뒗 �떎�쓬怨� 媛숈씠 OWL�쓽 �꽌鍮꾩뒪 �궡�슜�쓣 蹂�寃쏀븷 �닔 �엳�뒿�땲�떎.<br>�몺 �쉶�궗�뒗 蹂꾨룄濡� 怨듭��븳 臾대즺�궗�슜湲곌컙 �씠�썑 �꽌鍮꾩뒪瑜� �쑀猷뚰솕 �븷 �닔 �엳�쑝硫� 臾대즺�궗�슜 湲곌컙�뿉�룄 蹂��룞�씠 �엳�쓣 �닔 �엳�뒿�땲�떎.<br>�몼 �꽌鍮꾩뒪 �씠�썑 �쑀猷� �궗�슜�떆 寃곗젣 鍮꾩슜�씠�굹 湲곌컙�씠 蹂�寃쎈맆 �닔 �엳�뒿�땲�떎. <br>�몾 �꽌鍮꾩뒪�뿉�꽌 �젣怨듯븯�뒗 �슜�웾, 諛깆뾽湲곌컙, �젣怨� �듃�옒�뵿 �벑�씠 蹂�寃쎈맆 �닔 �엳�뒿�땲�떎.<br>�몿 �쉶�궗�뒗 �쐞 3媛� �빆�쓽 寃쎌슦 蹂��룞 諛쒖깮�씪 30�씪 �쟾�뿉, �궗�슜�옄媛� 媛��엯�븳 E-mail 怨� 怨듭��궗�빆�쑝濡� �궗�쟾 �넻吏��빀�땲�떎.<br>�뫀 留뚯씪 �쐞�뿉 �룞�쓽�븯吏� �븡�뒗 寃쎌슦 �궗�슜�옄�뒗 �깉�눜�븷 �닔 �엳�뒿�땲�떎. �떒, �씠寃쎌슦 �뜲�씠�꽣媛� �쑀�떎�맆 �닔 �엳�쑝硫� 梨낆엫�� �궗�슜�옄�뿉寃� �엳�뒿�땲�떎.<br> <br>�젣 10議� (�떆�뒪�뀥 媛쒖꽑�뿉 �뵲瑜� 怨좉컼 �뜲�씠�꽣 �씠�쟾)<br>(1) �쉶�궗�뒗 ��洹쒕え �떆�뒪�뀥 媛쒖꽑 �벑 遺덇��뵾�븳 寃쎌슦 怨좉컼�쓽 �룞�쓽�굹 �떊泥��젅李� �뾾�씠 湲곗〈 �떆�뒪�뀥�뿉 ���옣�맂 怨좉컼�쓽 �뜲�씠�꽣瑜� �떊洹쒖떆�뒪�뀥�쑝濡� �씠�쟾�븯�뿬 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �엳�뒿�땲�떎.<br> <br>�젣 11議� (�꽌鍮꾩뒪 �빐吏�)<br>(1) �꽌鍮꾩뒪 媛��엯 �빐吏��뿉�뒗 �쉶�썝�쓽 �꽌鍮꾩뒪 �빐吏� �떊泥��뿉 �쓽�븳 �빐吏��� �쉶�궗�쓽 吏곴텒�뿉 �쓽�븳 �빐吏�媛� �엳�뒿�땲�떎.<br>(2) �쉶�썝�� �뼵�젣�뱺吏� OWL �꽌鍮꾩뒪 �궡 �젣怨듬릺�뒗 硫붾돱瑜� �씠�슜�븯�뿬 �꽌鍮꾩뒪 �빐吏� �떊泥��쓣 �븷 �닔 �엳�쑝硫�, �뾽臾� 怨듦컙 �빐吏� �떆�뿉留� �븘�옒�뿉 媛� �샇�뿉 �뵲�씪 泥섎━�맗�땲�떎.<br>�몺 �뾽臾� 怨듦컙�쓽 �꽌鍮꾩뒪 �빐吏��뒗 �빐�떦 �뾽臾� 怨듦컙�쓽 愿�由ъ옄留뚯씠 媛��뒫�빀�땲�떎.<br>�몼 �쑀猷� 湲곕뒫�씠 �룷�븿�맂 �뾽臾� 怨듦컙 怨꾩빟�빐吏� �떆�뿉�뒗 �옄�룞�쑝濡� �젙湲� 寃곗젣 �뿰�룞�씠 痍⑥냼�맗�땲�떎.<br>(2) �쉶�궗�뒗 愿��젴 踰뺣졊�씠 �젙�븯�뒗 諛붿뿉 �뵲�씪 �씠�슜怨꾩빟 �빐吏� �떊泥��쓣 �떊�냽�엳 泥섎━�빀�땲�떎. �떒, 寃곗젣 二쇨린媛� �썡 �떒�쐞濡� �꽕�젙�맂 �젙湲� 寃곗젣�쓽 寃쎌슦�뒗 �븘�옒�쓽 媛� �샇�뿉 �뵲�씪 怨꾩빟�빐吏�媛� 泥섎━�맗�땲�떎.<br>�몺 �꽌鍮꾩뒪 怨꾩빟 �빐吏��뒗 �꽌鍮꾩뒪 �빐吏��븳 �떎�쓬�궇遺��꽣 �꽌鍮꾩뒪 怨꾩빟�빐吏�媛� 泥섎━�맗�땲�떎.<br>�몼 �쉶�썝�씠 �꽌鍮꾩뒪 怨꾩빟�빐吏� �떊泥��븳 �씪�옄源뚯� �궗�슜 �슂湲덉씠 �냼吏꾨맂 �씠�썑�뿉 怨꾩빟�빐吏�媛� 泥섎━�맗�땲�떎. <br>(3) �쑀猷� �꽌鍮꾩뒪瑜� �씠�슜 以묒씤 �쉶�썝�� OWL �꽌鍮꾩뒪 �쉶�썝�깉�눜 �쟾�뿉 OWL �꽌鍮꾩뒪 �궡�뿉�꽌 蹂몄씤�씠 �옉�꽦�븳 寃뚯떆臾쇱쓣 吏곸젒 �궘�젣�븯�뿬�빞 �빀�땲�떎. �떒, �쉶�썝 蹂몄씤�씠 媛쒖꽕�븳 �뾽臾� 怨듦컙�씠 �꽌鍮꾩뒪 �빐吏��맂 寃쎌슦�뿉�뒗 寃뚯떆臾쇰룄 �쟾遺� �옄�룞�궘�젣 �맗�땲�떎.<br>(4) �씪諛� 援ъ꽦�썝�씤 �쉶�썝�씠 寃뚯떆臾쇱쓣 �궘�젣�븯吏� �븡怨� �쉶�썝 �깉�눜瑜� �븯�뒗 寃쎌슦 OWL �꽌鍮꾩뒪 �뾽臾� 怨듦컙 �궡�뿉 寃뚯떆臾쇱� �궘�젣�릺吏� �븡怨� �궓�븘�엳寃� �릺誘�濡� �깉�눜 �씠�쟾�뿉 二쇱쓽 源딄쾶 �솗�씤�븯�뿬�빞 �빀�땲�떎.<br>(5) �씠�슜怨꾩빟�씠 �빐吏��릺硫� �쉶�썝�씠 �궘�젣�븯吏� �븡�� 寃뚯떆臾� 諛� 愿��젴 踰뺣졊 諛� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�뿉 �뵲�씪 �쉶�썝�쓽 �씪�젙�븳 �젙蹂대�� 蹂댁쑀�븯�뒗 寃쎌슦瑜� �젣�쇅�븯怨좊뒗 �쉶�썝�쓽 �젙蹂대뒗 紐⑤몢 �궘�젣�맗�땲�떎.<br>(6) �쉶�썝�씠 蹂� �빟愿� �젣 8議� �젣 1�빆�쓣 �쐞諛섑븳 寃쎌슦 以묐��븳 �쐞諛섏쑝濡� 蹂댁븘 �쉶�궗�뒗 �빐�떦 �쉶�썝�뿉 ���븯�뿬 �씠�슜怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒿�땲�떎. �씠 寃쎌슦 �쉶�궗�뒗 �깉�눜 泥섎━ �쟾�뿉 泥섎━�궗�쑀 諛� �꽭遺� �궡�슜�쓣 湲곗옱�븯�뿬 �쉶�썝�쓽 OWL 怨꾩젙 �씠硫붿씪 二쇱냼濡� �씠硫붿씪�쓣 諛쒖넚�븯�뿬 �넻吏��빀�땲�떎.�쉶�썝�� �쉶�궗�쓽 �넻吏�瑜� 諛쏆� �궇濡쒕��꽣 30 �씪 �씠�궡�뿉 �씠�쓽瑜� �젣湲고븷 �닔 �엳�쑝硫�, �쉶�궗�뒗 �쉶�썝�쓽 �씠�쓽媛� �젙�떦�븯�떎怨� �씤�젙�븯�뒗 寃쎌슦 �쉶�썝怨쇱쓽 �꽌鍮꾩뒪 �씠�슜怨꾩빟�쓣 �옱媛쒗빀�땲�떎.<br><br>�젣 12議� (�옄猷뚯쓽 蹂닿�)<br>(1) �씠�슜怨꾩빟 湲곌컙�씠 留뚮즺�맂 �쉶�썝�쓽 �옄猷뚮뒗 湲곌컙 留뚮즺�씪濡쒕��꽣 1媛쒖썡 蹂닿��쓣 �썝移숈쑝濡� �븯硫�, 1媛쒖썡 �씠�궡�뿉 湲곌컙�뿰�옣 �긽�뭹�쓣 援щℓ �삉�뒗 濡쒓렇�씤 湲곕줉�씠 �뾾�쓣 寃쎌슦 �뜲�씠�꽣媛� �궘�젣�맆 �닔 �엳�뒿�땲�떎.<br>(2) 臾대즺 �꽌鍮꾩뒪瑜� �씠�슜 以묒씤 �쉶�썝�쓽 �옄猷뚮뒗 �꽌鍮꾩뒪 �빐吏� �썑 利됱떆 �궘�젣�맆 �닔 �엳�뒿�땲�떎.<br>(3) �떎�쓬�쓽 寃쎌슦 �씠�슜怨꾩빟湲곌컙 留뚮즺 �삉�뒗 媛��엯 �빐吏��맂 �쉶�썝�쓽 �옄猷뚮�� 怨꾩냽 蹂닿��븷 �닔 �엳�뒿�땲�떎.<br>�몺 �쉶�궗媛� 媛��엯 �빐吏� �떊泥� �쉶�썝�쓽 �슂湲� �벑 �씠�젰�솗�씤�쓣 �쐞�븯�뿬 �씪�젙 湲곌컙 �룞�븞 �젙蹂� 蹂닿��씠 �븘�슂�븯�떎怨� �뙋�떒�릺�뒗 寃쎌슦<br>(4) �꽌鍮꾩뒪 �씠�슜�쑝濡� 諛쒖깮�븳 �옄猷� 以� �옉�뾽 濡쒓렇�뒗 6媛쒖썡媛� 蹂닿��릺硫� �씠�쟾 �옉�뾽 濡쒓렇�뒗 �옄�룞 �궘�젣�맗�땲�떎.<br> <br>�젣 13議� (�젙蹂댁쓽 �쟾�떖)<br>(1) �쉶�궗�뒗 �쉶�썝�쓽 �룞�쓽 �븯�뿉 �꽌鍮꾩뒪�쓽 �떊洹� 湲곕뒫 諛� 媛곸쥌 �쑀�슜�븳 �젙蹂대�� �쉶�썝�씠 �벑濡앺븳 �씠硫붿씪 �삉�뒗 臾몄옄硫붿떆吏�瑜� �넻�븯�뿬 �쉶�썝�뿉寃� �쟾�넚�븷 �닔 �엳�뒿�땲�떎.<br>(2) �쉶�궗�뒗 �꽌鍮꾩뒪 �씠�슜 湲곌컙�쓽 留뚮즺 �떆�젏, �빐吏� �븞�궡�� 媛숈� �븘�닔�쟾�떖 �젙蹂대�� �쉶�썝�쓽 �룞�쓽�� 臾닿��븯寃� �쉶�썝�뿉寃� �쟾�넚�븷 �닔 �엳�뒿�땲�떎.<br> <br>�젣 14議� (�꽌鍮꾩뒪 �씠�슜�쓽 �젙吏�)<br>(1) �쉶�궗�뒗 �쉶�썝�씠 蹂� �빟愿��긽 �옄�떊�쓽 �쓽臾대�� �쐞諛섑븯嫄곕굹 OWL �꽌鍮꾩뒪�쓽 �젙�긽�쟻�씤 �슫�쁺�쓣 諛⑺빐�븳 寃쎌슦�뿉�뒗, �씠�뿉 ���븳 媛쒖꽑�쓣 �슂援ы븷 �닔 �엳�쑝硫� 媛쒖꽑�릺吏� �븡�쓣 寃쎌슦�뿉�뒗 �궗�쟾 �넻吏� �뾾�씠 �꽌鍮꾩뒪 �씠�슜�쓣 �젙吏��떆�궗 �닔 �엳�뒿�땲�떎.�쉶�궗�뒗 �쉶�썝�쓽 洹�梨낆궗�쑀媛� �빐�냼�릺�뿀�떎怨� �뙋�떒�릺�뿀�쓣 寃쎌슦�뿉�뒗 �꽌鍮꾩뒪瑜� �옱媛쒗븷 �닔 �엳�뒿�땲�떎.<br>(2) OWL �꽌鍮꾩뒪 �씠�슜 �젙吏� 湲곌컙�� OWL �꽌鍮꾩뒪 �젣怨� 湲곌컙�뿉 �룷�븿�맗�땲�떎.<br> <br>�젣 15議� (�긽�뭹�쓽 �꽕紐�)<br>(1) OWL �꽌鍮꾩뒪 �긽�뭹�� �쉶�썝�씠 �떎瑜� �쉶�썝怨쇱쓽 �삊�뾽�쓣 �쐞�빐 �깮�꽦�븯�뒗 �뾽臾닿났媛꾩뿉 �쟻�슜�릺硫�, 愿�由ъ옄 沅뚰븳�쓣 媛�吏� 援ъ꽦�썝�뿉 �쓽�빐 �긽�뭹�쓣 援щℓ�븷 �닔 �엳�뒿�땲�떎.<br>(2) �쉶�썝�씠 �뾽臾� 怨듦컙�쓣 �깮�꽦�븳 寃쎌슦 臾대즺�긽�뭹�씤 FREE(臾대즺泥댄뿕)�뿉 媛��엯�릺硫�, 臾대즺�긽�뭹�쓽 議곌굔�씤 �뾽臾� 怨듦컙�쓽 �슜�웾怨� 援ъ꽦�썝�쓽 �닔 �벑�쓽 �젣�빟�쓣 珥덇낵�븯�뒗 寃쎌슦 �쑀猷뚯긽�뭹�쓣 援щℓ�븯�뿬 �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 �젣�빟�쓣 �빐寃고븷 �닔 �엳�뒿�땲�떎.<br>(3) �쉶�궗媛� �젣怨듯븯�뒗 �긽�뭹�쓽 醫낅쪟�� 媛�寃� �벑�쓽 �븞�궡�뒗 �꽌鍮꾩뒪 �젣怨� �씤�꽣�꽬 �궗�씠�듃(owlsolution.co.kr)�뿉 怨좎떆 寃뚯옱�빀�땲�떎.<br> <br>�젣 16議� (�긽�뭹�쓽 怨꾩빟)<br>(1) �긽�뭹�쓽 怨꾩빟�� �뾽臾닿났媛� 援ъ꽦�썝 以묒뿉�꽌 愿�由ъ옄 沅뚰븳�쓣 媛�吏� 愿�由ъ옄媛� �쉶�궗媛� �젣�떆�븯�뒗 �긽�뭹�쓣 �떊泥��븯怨�, 吏��젙�맂 寃곗젣�닔�떒�쓣 �씠�슜�븯�뿬 寃곗젣媛� �셿猷뚮릺硫� 怨꾩빟�씠 泥닿껐�맗�땲�떎.<br>(2) �뾽臾닿났媛꾩� �쉶�궗媛� �긽�뭹 �씠�슜 �떊泥��쓣 �듅�굺�븳 �떆�젏遺��꽣 �긽�뭹�뿉 �빐�떦�븯�뒗 �궗�슜�웾�쓣 �씠�슜�븷 �닔 �엳�뒿�땲�떎. �씠 �떆�젏�� �쑀猷뚯긽�뭹�쓣 寃곗젣�븯�뿬 �긽�뭹�쓣 �쟾�솚�븳 �썑瑜� �쓽誘명빀�땲�떎.<br>(3) �쑀猷뚯긽�뭹�쑝濡쒖쓽 蹂�寃� �떊泥��� �씠�슜��湲� 寃곗젣 �셿猷뚯� �룞�떆�뿉 �씠猷⑥뼱吏묐땲�떎.<br>(4) �쑀猷뚯긽�뭹�쓣 臾대즺�긽�뭹�쑝濡� 蹂�寃쎌� 遺덇��뒫�빀�땲�떎.<br>(5) 臾대즺 �궗�슜 湲곌컙�뿉 �쑀猷� �긽�뭹�쓣 援ъ엯 �썑 痍⑥냼�븯硫� 臾대즺 �궗�슜 湲곌컙�� 紐⑤몢 �궗�씪吏묐땲�떎.<br> <br>�젣 17議� (�슂湲덉쓽 怨꾩궛)<br>OWL �꽌鍮꾩뒪 �씠�슜猷뚯쓽 怨쇨툑媛쒖떆�씪�� �쉶�궗媛� �꽌鍮꾩뒪 �떊泥��쓣 �듅�굺�븳 �떆�젏遺��꽣 �엯�땲�떎.<br>(1) �씪�씪 �슂湲덉쓽 怨꾩궛�� 00�떆 00遺꾨��꽣 24�떆 00遺꾧퉴吏�瑜� 1�씪濡� �븯硫�, �꽌鍮꾩뒪 �젣怨듭쓽 媛쒖떆 �떆媛� �삉�뒗 醫낅즺 �떆媛꾩씠 1�씪�쓽 以묐룄�씤 寃쎌슦�뿉�뒗 �씠瑜� 1�씪濡� 媛꾩<�빀�땲�떎.<br>(2) �쉶�썝�� OWL �꽌鍮꾩뒪�쓽 �쑀猷� �꽌鍮꾩뒪 湲곕뒫�쓣 �떊泥��븷 �븣, �썡 �떒�쐞�쓽 �젙湲곌껐�젣 諛⑹떇留� �꽑�깮�븯�떎 �닔 �엳�뒿�땲�떎.<br>�몺 �쑀猷� �꽌鍮꾩뒪 寃곗젣 �떆 �궗�슜�옄 �닔�뿉 �뵲�씪 �슂湲덉씠 �젙�빐吏묐땲�떎.<br>�몼 �쑀猷� �꽌鍮꾩뒪�뒗 寃곗젣�븳 �궗�슜�옄 �닔 �씠�궡�쓽 �쉶�썝�쓣 �솢�꽦�솕�븯�뿬 �궗�슜�븷 �닔 �엳�뒿�땲�떎.<br>�몾 �쑀猷� �꽌鍮꾩뒪 �궗�슜 以� �궗�슜�옄 異붽��뿉 �뵲瑜� 寃곗젣媛� 媛��뒫�빀�땲�떎. �궗�슜�옄 異붽� 寃곗젣瑜� 吏꾪뻾�븯硫� �떎�쓬�떖 �젙湲� 寃곗젣 湲덉븸�씠 蹂��룞�맗�땲�떎.<br> <br>�젣 18議� (�슂湲� �솚遺�)<br>(1) OWL �꽌鍮꾩뒪�뒗 �꽑遺� 吏�湲됰갑�떇�쑝濡� �슂湲덉� 踰뺣쪧�긽 �븘�슂�븳 寃쎌슦瑜� �젣�쇅�븯怨� �솚遺덈릺吏� �븡�뒿�땲�떎. �떒, �븘�옒 媛� �샇�뿉 �빐�떦�븯�뒗 寃쎌슦�뿉�뒗 洹몄뿉 留욌뒗 �솚遺� �떊泥� 諛� 泥섎━媛� 媛��뒫�빀�땲�떎.<br>�몺 �솚遺덉� �꽌鍮꾩뒪 媛��엯 �떦�씪�뿉 痍⑥냼 �슂泥� �떆�뿉留� 寃곗젣 痍⑥냼瑜� �쟻�슜�빀�땲�떎. <br>�몼 �솚遺� 湲덉븸�� �쉶�썝�씠 �솚遺� �떊泥� �떆 寃곗젣�븳 移대뱶濡� �솚遺덈맗�땲�떎.<br>�몾 �빐吏� �슂湲� �솚遺� �떆湲곕뒗 �빐吏� �슂泥��씪 湲곗� 15�씪 �씠�궡 吏�湲됲븯�뒗 寃껋쑝濡� �빀�땲�떎.<br> <br>�젣 19議� (�넀�빐諛곗긽)<br>(1) �쉶�궗�뒗 臾대즺 �꽌鍮꾩뒪�쓽 �씠�슜怨� 愿��젴�븯�뿬 �쉶�썝�뿉寃� 諛쒖깮�븳 �넀�빐�뿉 ���빐 �뼱�뼚�븳 梨낆엫�룄 吏�吏� �븡�뒿�땲�떎.<br> (2) �쉶�궗�쓽 �쑀猷� �꽌鍮꾩뒪 �젣怨듦낵 愿��젴�븯�뿬 �쉶�궗�쓽 怨좎쓽 �삉�뒗 以묎낵�떎濡� �씤�븯�뿬 �쉶�썝�씠 �꽌鍮꾩뒪 �씠�슜�뿉 �넀�빐瑜� �엯�� 寃쎌슦 �빀�떦�븯怨� �쟻�젅�븳 蹂댁긽�쓣 諛쏆쓣 �닔 �엳�뒿�땲�떎. �넀�빐諛곗긽�쓣 泥�援ы븯怨좎옄 �븯�뒗 寃쎌슦 �씠�뿉 ���븳 �궗�쑀, 泥�援ъ븸 諛� �궛異쒓렐嫄곕�� 湲곗옱�븯�뿬 �꽌硫댁쑝濡� �떊泥��븯�뿬�빞 �빀�땲�떎.<br>(3) �넀�빐諛곗긽�쓽 議곌굔�� �븘�옒�� 媛숈뒿�땲�떎.<br>�몺 �쉶�궗�쓽 洹�梨낆궗�쑀濡� �씤�빐 �쉶�썝�씠 12 �떆媛� �씠�긽 �꽌鍮꾩뒪瑜� �씠�슜�븯吏� 紐삵븯�뒗 寃쎌슦<br>�몼 �썡 �옣�븷 �늻�쟻 �떆媛꾩씠 24 �떆媛꾩쓣 珥덇낵�븯�뿬 �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br>�몾 �넀�빐諛곗긽�븸 = �썡�젙�븸/30�씪 * (以묒��떆媛�/24�떆媛�) *3<br>�몿 �쟾�빆 �몺 ~ �몾 濡� �궛�젙�맂 �넀�빐 諛곗긽�븸�씠 �썡 �꽌鍮꾩뒪 �씠�슜�슂湲덉쓣 珥덇낵�븷 寃쎌슦 1媛쒖썡�쓽 �꽌鍮꾩뒪 �씠�슜�슂湲덉쑝濡� �젣�븳�빀�땲�떎. <br><br>�젣 20議� (硫댁콉議고빆)<br>(1) 泥쒖옱吏�蹂�, �쟾�웳 諛� 湲고� �씠�뿉 以��븯�뒗 遺덇��빆�젰�쑝濡� �씤�븯�뿬 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �뾾�뒗 寃쎌슦<br>(2) 湲곌컙�넻�떊 �궗�뾽�옄媛� �쟾湲고넻�떊 �꽌鍮꾩뒪瑜� 以묒��븯嫄곕굹 �젙�긽�쟻�쑝濡� �젣怨듯븯吏� �븘�땲�븯�뿬 �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br>(3) �쉶�썝�쓽 洹�梨낆궗�쑀濡� �씤�븳 �꽌鍮꾩뒪 �씠�슜�쓽 �옣�븷 �삉�뒗 �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br>(4) �꽌鍮꾩뒪�슜 �꽕鍮꾩쓽 蹂댁닔, 援먯껜, �젙湲곗젏寃�, 怨듭궗 �벑 遺��뱷�씠�븳 �궗�쑀濡� �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br>(5) �쟾湲고넻�떊�궗�뾽踰� 諛� �떆�뻾�졊 洹쒖젙�뿉 �쓽�븯�뿬 �꽌鍮꾩뒪瑜� �씠�슜�븯�뿬 �쓬��臾쇱씠�굹 遺덉삩�븳 �궡�슜, �뿀�쐞�궗�떎�뿉 �쓽�븳 紐낆삁�쎕�넀, 遺덈쾿蹂듭젣 �벑 吏��쟻 �옱�궛沅� 移⑦빐, 援�媛�湲곕� 移⑦빐, 泥��냼�뀈 �쑀�빐 留ㅼ껜臾� �벑�쓣 �쟾�넚, ���옣,議고쉶�븿�쑝濡쒖뜥諛쒖깮�븯�뒗 �쉶�썝�쓽 �넀�빐�뿉 踰뺤쟻�씤 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎.<br>(6) �뒪�넗由ъ� ���옣 �씠�쟾�뿉 �꽕�듃�썙�겕 �벑�쓽 �떆�꽕 �옣�븷濡� �꽌鍮꾩뒪 �씠�슜�씠 以묐떒�릺嫄곕굹 �뜲�씠�꽣 �넀�떎, �뿉�윭 �벑�씠 諛쒖깮�븳 寃쎌슦<br>(7) 鍮꾩젙�긽�쟻�쑝濡� ���옣�맂 �옄猷뚯씤 寃쎌슦. �떒, \"�젙�긽�쟻�쑝濡� ���옣�맂 �옄猷�\"�씪 �븿�� �쉶�썝�씠 �옄猷뚮�� �쟾�넚�븳 �썑 �슜�웾 利앷컧�씠�굹 �젣諛� �냽�꽦蹂�寃� �뾾�씠 �젙�긽�쟻�쑝濡� �뒪�넗由ъ��뿉 ���옣�맖�쓣 �쓽誘명빀�땲�떎.<br>(8) �쉶�썝�쓽 �떎�닔�굹 �꽌鍮꾩뒪�뿉 ���븳 遺덉땐遺꾪븳 �씠�빐濡� �씤�빐 �쉶�썝�뿉寃� �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br>(9) �쉶�궗�뒗 �쉶�썝�씠 �씠�슜怨꾩빟�쓣 �빐吏��븯嫄곕굹, �긽�뭹�쓽 蹂�寃�, �궗�슜�옄�굹 �뾽臾� 怨듦컙�쓽 �빐吏�濡� �씤�븳 �뜲�씠�꽣 �냼�떎 �벑�뿉 ���빐�꽌�뒗 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎.<br>(10) �쉶�썝�씠 �옄�떊�쓽 �븘�씠�뵒/鍮꾨�踰덊샇瑜� ���씤�뿉寃� 怨듦컻�븯嫄곕굹, 愿�由� �냼��濡� �븘�씠�뵒/鍮꾨�踰덊샇媛� �끂異쒕릺�뼱 �쉶�썝�뿉寃� �뼱�뼚�븳 �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br>(11) �썝�솢�븳 �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�빐 �젙湲곗젏寃��씠�굹 湲닿툒�젏寃� �떆�뻾 �떆 �궗�쟾怨듭� �썑 �씪�떆�쟻�쑝濡� �꽌鍮꾩뒪瑜� 以묒��븷 �닔 �엳�쑝硫� �씠�뿉 �뵲�씪 �꽌鍮꾩뒪瑜� �씠�슜�븯吏� 紐삵븿�쑝濡� �씤�빐 諛쒖깮�븳 �넀�빐�쓽 寃쎌슦 梨낆엫�씠 硫댁콉�맗�땲�떎.<br>(12) �쉶�궗�뒗 �쉶�썝 �긽�샇 媛�, �쉶�썝�쓽 愿�怨� �쉶�궗 �삉�뒗 �젣 3�옄 �긽�샇 媛꾩뿉 �꽌鍮꾩뒪瑜� 留ㅺ컻濡� 諛쒖깮�븳 遺꾩웳�뿉 ���빐�꽌�뒗 媛쒖엯�븷 �쓽臾닿� �뾾�쑝硫�, �씠濡� �씤�븳 �넀�빐瑜� 諛곗긽�븷 梨낆엫�씠 �뾾�뒿�땲�떎.<br> (13) �쉶�궗�뒗 �뜲�씠�꽣踰좎씠�뒪 �옣�븷瑜� ��鍮꾪빐 24�떆媛� 二쇨린濡� �뜲�씠�꽣踰좎씠�뒪瑜� 諛깆뾽�븯硫� �뜲�씠�꽣 �넀�떎�씠 諛쒖깮�븷 寃쎌슦 諛깆뾽�맂 �뜲�씠�꽣濡� 蹂듭썝�븯�뒗 寃껋쑝濡� 梨낆엫�쓣 �떎�빀�땲�떎.<br><br>�젣 21議� (以�嫄곕쾿 諛� 愿��븳)<br>(1) �쉶�궗�� �쉶�썝�� �꽌鍮꾩뒪�� 愿��젴�븯�뿬 諛쒖깮�븳 遺꾩웳�쓣 �썝留뚰븯寃� �빐寃고븯湲� �쐞�븯�뿬 �긽�샇 媛꾩쓽 理쒖꽑�쓽 �끂�젰�쓣 �빐�빞 �빀�땲�떎.<br>(2) �쉶�궗媛� �젙�븯�뒗 �젙梨� �삉�뒗 �씠�슜�빟愿��뿉 紐낆떆�릺吏� �븘�땲�븳 �궗�빆�뿉 ���빐�꽌�뒗 �쟾湲고넻�떊�궗�뾽踰�, �젙蹂댄넻�떊留� �씠�슜珥됱쭊 �벑�뿉 愿��븳 踰뺣쪧 諛� 湲고� 愿��젴 踰뺣졊�쓽 洹쒖젙, 蹂� �빟愿��쓽 痍⑥� 諛� �룞醫� �뾽怨꾩쓽 �씪諛섏쟻�씤 愿��뻾�뿉 �뵲�씪 �빐�꽍 �쟻�슜�맗�땲�떎.<br>(3) �쉶�궗�� �쉶�썝 媛� �꽌鍮꾩뒪 �씠�슜�뿉 愿��빐 諛쒖깮�븳 遺꾩웳�씠 �썝留뚰븯寃� �빐寃곕릺吏� �븘�땲�븳 寃쎌슦 愿��젴 �냼�넚�쓽 愿��븷�� �쉶�궗 蹂몄젏 �냼�옱吏�瑜� 愿��븷�븯�뒗 踰뺤썝�쑝濡� �빀�땲�떎.<br>�� �떆�뻾 �씪�옄 : 2019�뀈04�썡 01�씪", + "workspaceUserManagement": "�궗�슜�옄 愿�由�", + "numberOfParticipants": "李몄뿬 媛��뒫 �씤�썝", + "participation": "李몄뿬", + "waitForParticipation": "李몄뿬 ��湲�", + "withdrawal": "�깉�눜", + "canParticipate": "李몄뿬 媛��뒫", + "installingManagerServerAddress": "(留ㅻ땲�� �꽕移� �꽌踰� 二쇱냼)", + "failedToSelectWorkspaceInformation": "�옄�떊�씠 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂� 議고쉶 �떎�뙣", + "failedToPaymentInformation": "寃곗젣 �젙蹂� 議고쉶 �떎�뙣", + "completedPayment": "寃곗젣 �셿猷�", + "failedPayment": "寃곗젣 �떎�뙣", + "cancelTheRegularPaymentReceive": "�젙湲� 寃곗젣瑜� �빐吏��븯寃좎뒿�땲源�? \n�슂湲덉� �솚遺덈릺吏� �븡�쑝硫�, \n�젙湲� 寃곗젣媛� �빐吏��맗�땲�떎.", + "failedToCancelPayment": "寃곗젣 痍⑥냼 �떎�뙣", + "failedToModifyWorkspaceName": "�뾽臾� 怨듦컙 紐� �닔�젙 �떎�뙣", + "failedToRegularPaymentChange": "�젙湲� 寃곗젣 蹂�寃� �떎�뙣", + "failedToParticipationStatusChange": "李몄뿬 �긽�깭 蹂�寃� �떎�뙣", + "failedToSelectWorkspaceFullUserList": "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" + }, + "issue": { + "issueType": "�씪媛� �쑀�삎", + "managementIssue": "�씪媛� 愿�由�", + "createIssue": "�씪媛� 留뚮뱾湲�", + "issueStatus": "�씪媛� �긽�깭", + "issueNumber": "�씪媛� 踰덊샇", + "issueContent": "�씪媛� �궡�슜", + "issueTitle": "�씪媛� �젣紐�", + "relationIssue": "�뿰愿� �씪媛�", + "addRelationIssue": "�뿰愿� �씪媛� 異붽�", + "relationIssueTitle": "�뿰愿� �씪媛� �젣紐�", + "relationIssueType": "�뿰愿� �씪媛� 援щ텇", + "relationIssueSelect": "�뿰愿� �씪媛� �꽑�깮", + "relationIssueDelete" : "�궘�젣", + "relationIssueRemove" : "�뿰愿� �씪媛� �궘�젣", + "relationIssueRemoveHistory" : "�뿰愿� �씪媛먯씠 �궘�젣�릺�뿀�뒿�땲�떎.", + "relationIssueAddHistory" : "�뿰愿� �씪媛먯씠 異붽��릺�뿀�뒿�땲�떎.", + "requireIssueTitle": "�씪媛� �젣紐⑹쓣 �엯�젰�븯�꽭�슂.", + "issueList": "�씪媛� 紐⑸줉", + "summaryIssueActivity": "�씪媛� �솢�룞 �궡�뿭 �슂�빟", + "modifyIssues": "�씪媛� �닔�젙", + "continueCreateIssue": "�씠 �솕硫댁뿉�꽌 �씪媛먯쓣 怨꾩냽 �깮�꽦�빀�땲�떎.", + "initializedAssigneeCustomField": "�봽濡쒖젥�듃瑜� 蹂�寃쏀븯硫� �떞�떦�옄, �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪씠 珥덇린�솕 �맗�땲�떎.", + "setUpUsersParticipatingInProject": "�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �궗�슜�옄瑜� �꽕�젙�빀�땲�떎.", + "initializedIssueStatus": "�씪媛� �쑀�삎�쓣 蹂�寃쏀븷 寃쎌슦 �궗�슜�옄 �젙�쓽 �븘�뱶, �씪媛� �긽�깭媛� 珥덇린�솕 �맗�땲�떎.", + "clickToSelectDate": "�겢由��븯硫� �궇吏쒕�� �꽑�깮�븷 �닔 �엳�뒿�땲�떎.", + "notIssueTypeCustomFields": "�씪媛� �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �뾾�뒿�땲�떎.", + "attachOnlyFiles": "hwp, jpg, png, txt, pptx, ppt, pdf, xlsx, xls, docx, zip, gif, jpeg, doc, tif, bmp, wmv, avi, mp4, mkv, mov �뙆�씪留� 泥⑤��븷 �닔 �엳�뒿�땲�떎.", + "registerExcelIssues": "�뿊��濡� �씪媛� �벑濡앺븯湲�", + "videoExample": "�룞�쁺�긽 �삁�젣", + "writeWaring": "�옉�꽦 �슂�졊", + "pleaseEnterIssueName": "寃��깋�븷 �씪媛� �씠由꾩쓣 �엯�젰�븯�꽭�슂.", + "selectProjectAndIssueTypeDownloadExcel": "�봽濡쒖젥�듃, �씪媛� �쑀�삎�쓣 �꽑�깮�븯硫� �빐�떦 �븯�뒗 �뼇�떇�쓽 �뿊���쓣 �떎�슫濡쒕뱶 �븷 �닔 �엳�뒿�땲�떎.", + "settingTableDisplay": "�뀒�씠釉� �몴�떆 �꽕�젙", + "deleteIssue": "�씪媛� �궘�젣", + "wantToDeleteSelectIssue": "�꽑�깮�븳 �씪媛먯쓣 �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �씪媛먯� �뼱�뼚�븳 寃쎌슦�뿉�룄 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", + "wantToDeleteSelectRelationIssue": "�꽑�깮�븳 �뿰愿� �씪媛먯쓣 �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �뿰愿� �씪媛먯� 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", + "failedToSaveFieldConditions": "寃��깋 �븘�뱶 議곌굔 ���옣 �떎�뙣", + "failedToGetSearchFieldCondition": "寃��깋 �븘�뱶 議곌굔 媛��졇�삤湲� �떎�뙣", + "failedIssueLookup": "�씪媛� 議고쉶 �떎�뙣", + "selectionCheck": "�꽑�깮 ���긽 �솗�씤", + "selectIssueToChangeStatus": "�긽�깭 蹂�寃쏀븷 �씪媛먯쓣 �꽑�깮�븯�꽭�슂.", + "notHaveDeletePermissionExistsAnIssue": "�궘�젣 沅뚰븳�씠 �뾾�뒗 �씪媛먯씠 議댁옱�빀�땲�떎.", + "failedToIssueTypeListLookup": "�씪媛� �쑀�삎 紐⑸줉 議고쉶 �떎�뙣", + "failedToPriorityListLookup": "�슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣", + "failedToCriticalListLookup": "以묒슂�룄 紐⑸줉 議고쉶 �떎�뙣", + "failedToUserDefinedFieldListLookup": "�궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣", + "failedToIssueTableColumnLookup": "�씪媛� �뀒�씠釉� 而щ읆 議고쉶 �떎�뙣", + "failedToIssueAddIssueRelation": "�뿰愿� �씪媛� 異붽� �떎�뙣", + "failedToIssueDeleteIssueRelation": "�뿰愿� �씪媛� �궘�젣 �떎�뙣", + "errorSelectRelationIssue" : "�뿰愿� �씪媛먯씠 �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.", + "capacityExceededImageFile": "�씠誘몄� �뙆�씪 �슜�웾 珥덇낵", + "attachedOnlyImageFiles10mb": "30MB �씠�븯�쓽 �씠誘몄� �뙆�씪留� 泥⑤�媛� 媛��뒫�빀�땲�떎.", + "attachedMultipleImageFiles100mb": "�뿬�윭 嫄댁쓽 �씠誘몄�瑜� �븳踰덉뿉 泥⑤��븷 寃쎌슦 300MB �씠�븯源뚯�留� 泥⑤�媛� 媛��뒫�빀�땲�떎.", + "limitImageFile": "�씠誘몄� �뙆�씪 �젣�븳", + "canBeUploadedOnlyImageFiles": "�씠誘몄� �뙆�씪留� �뾽濡쒕뱶 媛��뒫�빀�땲�떎. - bmp, jpg, jpeg, png, tif", + "previewImage": "�씠誘몄� 誘몃━ 蹂닿린", + "nameErrorImageFile": "�씠誘몄� �뙆�씪紐� �삤瑜�", + "cannotUploadFileNameSpecialCharacters": "�뙆�씪紐낆뿉 �듅�닔 臾몄옄(;)媛� �뱾�뼱媛�硫� �뾽濡쒕뱶 �븷 �닔 �뾾�뒿�땲�떎.", + "errorFileUpload": "�뙆�씪 �뾽濡쒕뱶 �삤瑜�", + "attachmentCapacityExceeded": "泥⑤� �뙆�씪 �슜�웾 珥덇낵", + "canAttachFileUpTo100mb": "300MB �씠�븯源뚯�留� �뙆�씪 泥⑤�媛� 媛��뒫�빀�땲�떎.", + "limitAttachmentExtensions": "泥⑤� �뙆�씪 �솗�옣�옄 �젣�븳", + "notAllowedAttachment": "泥⑤�媛� �뿀�슜�릺吏� �븡�뒗 �뙆�씪�엯�땲�떎.", + "nameErrorAttachment": "泥⑤� �뙆�씪紐� �삤瑜�", + "succeededIssueRegistration": "�씪媛� �벑濡� �꽦怨�", + "failedIssueRegistration": "�씪媛� �벑濡� �떎�뙣", + "failedIssueModify": "�씪媛� �닔�젙 �떎�뙣", + "failedToProjectDetails": "�봽濡쒖젥�듃 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "failedToUserDefinedFieldListAssociatedLookup": "�씪媛� �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣", + "applyTemplate": "�뀥�뵆由� �쟻�슜�븯湲�", + "issueContentIsWrittenApplyTheTemplate": "�씪媛� �궡�슜�씠 �옉�꽦�릺�뼱 �엳�뒿�땲�떎. �뀥�뵆由우쓣 �쟻�슜�븯寃좎뒿�땲源�? �뀥�뵆由우씠 �쟻�슜�릺硫� �씠誘� �옉�꽦�맂 �궡�슜�씠 �궗�씪吏묐땲�떎.", + "failedIssueStatusCheck": "�씠�룞 媛��뒫�븳 �씪媛� �긽�깭 議고쉶 �떎�뙣", + "failedToChangeMultipleIssueStatus": "�떎以� �씪媛� �긽�깭 蹂�寃� �떎�뙣", + "completedSavingIssueTable": "�씪媛� �뀒�씠釉� �꽕�젙 ���옣 �셿猷�", + "saveIssueTableSettingsInformation": "�씪媛� �뀒�씠釉� �꽕�젙 �젙蹂닿� ���옣�릺�뿀�뒿�땲�떎.", + "failedToSaveIssueTableSetting": "�씪媛� �뀒�씠釉� �꽕�젙 ���옣 �떎�뙣", + "errorRemovableIssueStatusList": "�씠�룞 媛��뒫�븳 �씪媛� �긽�깭 紐⑸줉 議고쉶 �삤瑜�", + "errorIssueDetails": "�씪媛� �긽�꽭 �젙蹂� 議고쉶 �삤瑜�", + "failedToRegisterComments": "�뙎湲� �벑濡� �떎�뙣", + "deleteComments": "�뙎湲� �궘�젣", + "failedToDeleteComments": "�뙎湲� �궘�젣 �떎�뙣", + "wantToDeleteTheSelectedComments": "�꽑�깮�븳 �뙎湲��쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �뙎湲��� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + "failedToGetCommentListData": "�뙎湲� 紐⑸줉 �뜲�씠�꽣 媛��졇�삤湲� �떎�뙣", + "failedToAttachmentList": "泥⑤� �뙆�씪 紐⑸줉 議고쉶 �떎�뙣", + "setIssueTableDisplay": "�씪媛� �뀒�씠釉� �몴�떆 �꽕�젙", + "columnName": "而щ읆紐�", + "area": "�꼻�씠", + "displayed": "�몴�떆 �뿬遺�", + "sequence": "�닚�꽌", + "cannotChangedIssueTitle": "�씪媛� �젣紐⑹� 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.", + "selectSendIssueMail": "�씪媛� 硫붿씪 諛쒖넚 ���긽�옄 �꽑�깮", + "sendIssueSelectedUsers": "�봽濡쒖젥�듃�뿉 李몄뿬�븯怨� �엳�뒗 �떎瑜� �궗�슜�옄�뿉寃� �씪媛� �젙蹂대�� 蹂대깄�땲�떎.", + "sendMail": "�씠硫붿씪 諛쒖넚", + "changedHistory": "�씪媛� 蹂�寃� �씠�젰 �긽�꽭�젙蹂�", + "noChangeHistory": "�씪媛� 蹂�寃� �젙蹂닿� �뾾�뒿�땲�떎.", + "changedTime": "蹂�寃� �떆媛�", + "changedUser": "蹂�寃� �궗�슜�옄", + "issueReservation": "�씪媛� 諛쒖깮 �삁�빟", + "issueReservationType": "�씪媛� 諛쒖깮 �쑀�삎", + "issueReservationDescription": "�씪媛먯쓣 �듅�젙�씪�뿉 �떎�떆 諛쒖깮�떆�궗 �닔 �엳�뒿�땲�떎. <br />諛섎났�쟻�쑝濡� �닔�뻾�빐�빞 �븷 �씪媛먯씠 �엳�쓣 �븣 �쑀�슜�븯寃� �궗�슜�븷 �닔 �엳�뒿�땲�떎.", + "everyDay": "留ㅼ씪", + "everyWeek": "留ㅼ<", + "everyMonth": "留ㅼ썡", + "everyYear": "留ㅻ뀈", + "scheduledDate": "�씪媛� 諛쒖깮 �삁�젙�씪", + "monday": "�썡", + "tuesday": "�솕", + "wednesday": "�닔", + "thursday": "紐�", + "friday": "湲�", + "saturday": "�넗", + "sunday": "�씪", + "enterOnlyNumbers": "�닽�옄留� �엯�젰 媛��뒫 �빀�땲�떎.", + "january": "1", + "february": "2", + "march": "3", + "april": "4", + "may": "5", + "june": "6", + "july": "7", + "august": "8", + "september": "9", + "october": "10", + "november": "11", + "december": "12", + "succeededIssueReservation": "�씪媛� 諛쒖깮 �삁�빟 ���옣 �꽦怨�", + "failedIssueReservation": "�씪媛� 諛쒖깮 �삁�빟 ���옣 �떎�뙣", + "failedToIssueReservationDetails": "�씪媛� 諛쒖깮 �삁�빟 �긽�꽭 議고쉶 �떎�뙣", + "succeededIssueMail": "�씪媛� 硫붿씪 諛쒖넚 �셿猷�", + "sentToTheSelectedUser": "�꽑�깮�븳 �궗�슜�옄�뿉寃� �씠硫붿씪�씠 諛쒖넚�릺�뿀�뒿�땲�떎.", + "failedIssueMail": "�씪媛� 硫붿씪 諛쒖넚 �떎�뙣", + "issueVersionLookupFailed": "�씪媛� 踰꾩쟾 議고쉶 �떎�뙣", + "relationIssueType1" : "�떎�쓬 �씪媛먭낵 愿��젴�맖", + "relationIssueType2" : "�떎�쓬 �씪媛먯뿉 以묐났�맖", + "relationIssueType3" : "�떎�쓬 �씪媛먯쓽 �빐寃곗쓣 留됯퀬 �엳�쓬", + "relationIssueType4" : "�떎�쓬 �씪媛먯뿉寃� 留됲��엳�쓬", + "relationIssueType5" : "�떎�쓬�뿉 吏꾪뻾�븷 �씪媛�", + "relationIssueType6" : "�떎�쓬 �씪媛먯쓣 �슦�꽑 吏꾪뻾", + "updateIssueUser" : "�씪媛� �떞�떦�옄 蹂�寃�", + "normalList" : "�씪媛� 紐⑸줉", + "timeLine" : "���엫 �씪�씤" + }, + "project": { + "createProject": "�봽濡쒖젥�듃 留뚮뱾湲�", + "projectKey": "�봽濡쒖젥�듃 �궎", + "projectStatus": "�봽濡쒖젥�듃 �긽�깭", + "projectType": "�봽濡쒖젥�듃 ���엯", + "projectAdmin": "�봽濡쒖젥�듃 愿�由ъ옄", + "projectTeam": "�봽濡쒖젥�듃 ���썝", + "modifyProject": "�봽濡쒖젥�듃 �닔�젙", + "settingCustomFields": "�궗�슜�옄 �젙�쓽 �븘�뱶 �꽕�젙", + "selectCustomField": "�궗�슜�옄 �젙�쓽 �븘�뱶 �꽑�깮", + "availableFields": "�궗�슜媛��뒫�븳 �븘�뱶", + "inUseField": "�궗�슜以묒씤 �븘�뱶", + "pleaseEnterProjectName": "�봽濡쒖젥�듃 紐낆쓣 �엯�젰�븯�꽭�슂.", + "deleteProject": "�봽濡쒖젥�듃 �궘�젣", + "wantToDeleteSelectProject": "�꽑�깮�븳 �봽濡쒖젥�듃瑜� �궘�젣�븯寃좎뒿�땲源�?\n �궘�젣�맂 �봽濡쒖젥�듃�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + "notHaveDeletePermissionExistsProject": "�궘�젣 沅뚰븳�씠 �뾾�뒗 �봽濡쒖젥�듃媛� 議댁옱�빀�땲�떎.", + "failedToProjectListLookup": "�봽濡쒖젥�듃 紐⑸줉 議고쉶 �떎�뙣", + "failedProjectCreation": "�봽濡쒖젥�듃 �깮�꽦 �떎�뙣", + "saveCompleteFieldManagement": "�븘�뱶 愿�由� ���옣 �셿猷�", + "saveUserDefinedFieldAndIssueTypeConnection": "�궗�슜�옄 �젙�쓽 �븘�뱶�� �씪媛� �쑀�삎 �뿰寃� �젙蹂닿� ���옣�릺�뿀�뒿�땲�떎.", + "failedToSaveFieldManagement": "�븘�뱶 愿�由� ���옣 �떎�뙣", + "failedToModifyProject": "�봽濡쒖젥�듃 �닔�젙 �떎�뙣", + "failedToProjectDetails": "�봽濡쒖젥�듃 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "failedToProjectMember": "�봽濡쒖젥�듃 硫ㅻ쾭 議고쉶 �떎�뙣", + "failedToProjectKeyPattern": "�봽濡쒖젥�듃 �궎 �엯�젰 媛믪씠 �옒紐삳릺�뿀�뒿�땲�떎.", + "limitNameToSpecialCharacters": "�봽濡쒖젥�듃 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.", + "viewSub": "�븯�쐞 �봽濡쒖젥�듃 蹂닿린", + "normalList" : "�봽濡쒖젥�듃 紐⑸줉", + "timeLine" : "���엫 �씪�씤" + }, + "managementStatus": { + "managementStatus": "�긽�깭", + "createStatus": "�긽�깭 留뚮뱾湲�", + "issueStatusName": "�씪媛� �긽�깭 紐�", + "statusProperties": "�긽�깭 �냽�꽦", + "createIssueStatus": "�씪媛� �긽�깭 留뚮뱾湲�", + "modifyIssueStatus": "�씪媛� �긽�깭 �닔�젙", + "useInTheWorkflow": "�썙�겕�뵆濡쒖슦�뿉�꽌 �씪媛� �긽�깭媛� �궗�슜以묒엯�땲�떎. �씠由� 蹂�寃쎌떆 �씪媛� �긽�깭瑜� �궗�슜�븯�뒗 紐⑤뱺 �썙�겕�뵆濡쒖슦 怨꾪쉷�뿉 �씪媛� �긽�깭 紐낆씠 蹂�寃쎈맗�땲�떎.", + "builtInIssueStatus": "�씪媛� �긽�깭�뒗 �냽�꽦�쓣 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.", + "pleaseEnterIssueStatusName": "�씪媛� �긽�깭 紐낆쓣 �엯�젰�븯�꽭�슂.", + "updateNotStatusProperties": "�깮�꽦 �썑�뿉�뒗 �긽�깭 �냽�꽦�쓣 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.", + "deleteIssueStatus": "�씪媛� �긽�깭 �궘�젣", + "wantToDeleteSelectIssueStatus": "�꽑�깮�븳 �씪媛� �긽�깭瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씪媛� �긽�깭�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + "failedToCreateIssueStatus": "�씪媛� �긽�깭 �깮�꽦 �떎�뙣", + "failedToModifyIssueStatus": "�씪媛� �긽�깭 �닔�젙 �떎�뙣", + "failedToIssueStatusDetails": "�씪媛� �긽�깭 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "limitNameToSpecialCharacters": "�씪媛� �긽�깭 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎." + }, + "managementWorkflow": { + "managementWorkflow": "�썙�겕�뵆濡쒖슦", + "workflowName": "�썙�겕�뵆濡쒖슦 紐�", + "createWorkflow": "�썙�겕�뵆濡쒖슦 留뚮뱾湲�", + "modifyWorkflow": "�썙�겕�뵆濡쒖슦 �닔�젙", + "deleteIssueStatusInTheUse": "�궗�슜�릺怨� �엳�뒗 �씪媛� �긽�깭瑜� �궘�젣�븷 寃쎌슦 �쁽�옱 �썙�겕�뵆濡쒖슦瑜� �궗�슜�븯怨� �엳�뒗 �씪媛먯쓽 �긽�깭媛� �긽�깭 �냽�꽦 '��湲�'�씤 �씪媛� �긽�깭濡� 蹂�寃쎈맗�땲�떎.", + "statusList": "�긽�깭 紐⑸줉", + "insert": "�꽔湲�", + "startPoint": "�떆�옉�젏", + "endPoint": "醫낆젏", + "designNotCompleteWorkflow": "�썙�겕�뵆濡쒖슦 �뵒�옄�씤�씠 �셿猷뚮릺吏� �븡�븯�뒿�땲�떎.", + "onlyOneStatusPropertyWaitIssueStatus": "�썙�겕�뵆濡쒖슦�뿉�뒗 �긽�깭 �냽�꽦 '��湲�' �씤 �씪媛� �긽�깭媛� 1媛쒕쭔 議댁옱�빐�빞 �빀�땲�떎.", + "onlyOneStatusPropertyProgressIssueStatus": "�썙�겕�뵆濡쒖슦�뿉�뒗 �긽�깭 �냽�꽦 '吏꾪뻾' �씤 �씪媛� �긽�깭媛� 1媛� �씠�긽 議댁옱�빐�빞 �빀�땲�떎.", + "onlyOneStatusPropertyEndIssueStatus": "�썙�겕�뵆濡쒖슦�뿉�뒗 �긽�깭 �냽�꽦 '醫낅즺' �씤 �씪媛� �긽�깭媛� 1媛� �씠�긽 議댁옱�빐�빞 �빀�땲�떎.", + "pleaseEnterWorkflowName": "�썙�겕�뵆濡쒖슦 紐낆쓣 �엯�젰�븯�꽭�슂.", + "connectedIssueType": "�뿰寃곕맂 �씪媛� �쑀�삎", + "notHaveDeletePermissionExistsWorkflow": "�궘�젣 沅뚰븳�씠 �뾾�뒗 �썙�겕�뵆濡쒖슦媛� 議댁옱�빀�땲�떎.", + "deleteWorkflow": "�썙�겕�뵆濡쒖슦 �궘�젣", + "wantToDeleteTheSelectedWorkflow": "�꽑�깮�븳 �썙�겕�뵆濡쒖슦瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �썙�겕�뵆濡쒖슦�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + "failedWorkflowListLookup": "�썙�겕�뵆濡쒖슦 紐⑸줉 議고쉶 �떎�뙣", + "failedCreateWorkflow": "�썙�겕�뵆濡쒖슦 �깮�꽦 �떎�뙣", + "failedToModifyWorkflow": "�썙�겕�뵆濡쒖슦 �닔�젙 �떎�뙣", + "failedToWorkflowDetails": "�썙�겕�뵆濡쒖슦 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "failedToPutIssueStatus": "�씪媛� �긽�깭 �꽔湲� �떎�뙣", + "onlyOneInTheWorkflow": "�썙�겕�뵆濡쒖슦�뿉�뒗 �긽�깭 �냽�꽦 '��湲�'�씤 �씪媛먯� 1媛쒕쭔 議댁옱�빐�빞 �빀�땲�떎.", + "removeMetastaticLine": "�쟾�씠�꽑 �젣嫄�", + "removeIssueStatus": "�씪媛� �긽�깭 �젣嫄�", + "limitNameToSpecialCharacters": "�썙�겕�뵆濡쒖슦 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.", + "excludeWorkflowParticipation ": "�뾽臾� 怨듦컙 李몄뿬 �젣�쇅", + "imageDownloadNotSupported": "�씠誘몄� �떎�슫濡쒕뱶 誘몄��썝", + "IEDoesNotSupport": "IE �뿉�꽌�뒗 �씠誘몄� �떎�슫濡쒕뱶瑜� 吏��썝�븯吏� �븡�뒿�땲�떎." + }, + "support": { + "support": "Support", + "supportFAQ": "�옄二� 臾삳뒗 吏덈Ц", + "supportQNA": "吏덈Ц / �떟蹂�" + }, + "customField": { + "createField": "�븘�뱶 留뚮뱾湲�", + "customFieldName": "�궗�슜�옄 �젙�쓽 �븘�뱶 紐�", + "fieldType": "�븘�뱶 �쑀�삎", + "createCustomField": "�궗�슜�옄 �젙�쓽 �븘�뱶 留뚮뱾湲�", + "createSingleFieldList": "�떒�씪 �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�", + "createMultiFieldList": "�떎以� �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�", + "defaultValue": "湲곕낯媛�", + "selectSingleFieldListHashTag": "�떒�씪 �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떦 媛믪쓣 �엯�젰�빐�빞�빀�땲�떎. ex) ���긽媛�", + "selectMultiFieldListHashTag": "�떎以� �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛� 以� �뿬�윭 媛쒖쓽 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) ���긽媛�#���긽媛�", + "modifyCustomFields": "�궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙", + "pleaseEnterUserDefinedFieldName": "�궗�슜�옄 �젙�쓽 �븘�뱶 紐낆쓣 �엯�젰�븯�꽭�슂.", + "deleteUserDefinedFields": "�궗�슜�옄 �젙�쓽 �븘�뱶 �궘�젣", + "wantToDeleteSelectUserDefinedFields": "�꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + "duplicateInputValue": "�엯�젰 媛� 以묐났 �븣由�", + "alreadyAddedValue": "�엯�젰�븳 媛믪씠 �씠誘� 異붽��릺�뼱 �엳�뒿�땲�떎.", + "failedToCreateUserDefinedFields": "�궗�슜�옄 �젙�쓽 �븘�뱶 �깮�꽦 �떎�뙣", + "failedToModifyUserDefinedFields": "�궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙 �떎�뙣", + "failedToDetailUserDefinedFields": "�궗�슜�옄 �젙�쓽 �븘�뱶 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "limitNameToSpecialCharacters": "�궗�슜�옄 �젙�쓽 �븘�뱶 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.", + "emptyInputValue": "�엯�젰 媛� �솗�씤 �븣由�", + "emptyAddValue": "�엯�젰�븳 媛믪씠 �뾾�뒿�땲�떎." + }, + "managementType": { + "managementIssueType": "�씪媛� �쑀�삎", + "createIssueType": "�씪媛� �쑀�삎 留뚮뱾湲�", + "modifyIssueType": "�씪媛� �쑀�삎 �닔�젙", + "issueTypeName": "�씪媛� �쑀�삎 �씠由�", + "enterIssueTypeName": "�씪媛� �쑀�삎 �씠由꾩쓣 �엯�젰�븯�꽭�슂.", + "managementType": "�쑀�삎 愿�由�", + "createType": "�쑀�삎 留뚮뱾湲�", + "typeName": "�쑀�삎 �씠由�", + "modifyType": "�쑀�삎 �닔�젙", + "template": "�뀥�뵆由�", + "registerAnIssueTemplate": "�뀥�뵆由우쓣 誘몃━ �옉�꽦�븯�뿬 �씪媛먯쓣 �벑濡앺븷 �븣 �궡�슜 �븘�뱶�뿉 �궗�슜�븷 �닔 �엳�뒿�땲�떎.", + "updateWorkflowIssueStatusStandby": "�썙�겕�뵆濡쒖슦瑜� 蹂�寃쏀븷 寃쎌슦 蹂�寃쏀븯�젮�뒗 �썙�겕�뵆濡쒖슦�뿉 �긽�깭媛� 議댁옱�븯吏� �븡�쑝硫� �씪媛먯쓽 �긽�깭媛� �긽�깭 �냽�꽦 '��湲�' �씤 �긽�깭濡� 蹂�寃쎈맗�땲�떎.", + "notHaveDeletePermissionExistsIssueType": "�궘�젣 沅뚰븳�씠 �뾾�뒗 �씪媛� �쑀�삎�씠 議댁옱�빀�땲�떎.", + "deleteIssueType": "�씪媛� �쑀�삎 �궘�젣", + "wantToDeleteSelectIssueType": "�꽑�깮�븳 �씪媛� �쑀�삎�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씪媛� �쑀�삎�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + "failedToIssueTypeList": "�씪媛� �쑀�삎 紐⑸줉 議고쉶 �떎�뙣", + "failedToCreateIssueType": "�씪媛� �쑀�삎 �깮�꽦 �떎�뙣", + "failedToModifyIssueType": "�씪媛� �쑀�삎 �닔�젙 �떎�뙣", + "failedToDetailIssueType": "�씪媛� �쑀�삎 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "limitNameToSpecialCharacters": "�씪媛� �쑀�삎 �씠由꾩� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎." + }, + "users": { + "temporaryPassword": "�엫�떆 鍮꾨�踰덊샇", + "guidanceTemporaryPassword": "�엫�떆 鍮꾨�踰덊샇 諛쒓툒 �븞�궡", + "pleaseMakeSureChangeYourPassword": "怨좉컼�떂�쓽 OWL ITS 怨꾩젙 鍮꾨�踰덊샇 蹂�寃쎌쓣 �쐞�빐 �엫�떆 鍮꾨�踰덊샇瑜� 諛쒓툒�빐 �뱶由쎈땲�떎.濡쒓렇�씤 �썑 瑗� 鍮꾨�踰덊샇瑜� 蹂�寃쏀븯�떆湲� 諛붾엻�땲�떎.", + "phoneNumber": "�뿰�씫泥�", + "modifyInformation": "�젙蹂� �닔�젙", + "updatePassword": "鍮꾨�踰덊샇 蹂�寃�", + "setEmailNotificationTime": "�씠硫붿씪 �븣由� �떆媛� �꽕�젙", + "selectProfileShowOther": "�떎瑜� �궗�슜�옄�뱾�뿉寃� 蹂댁뿬以� �봽濡쒗븘�쓣 �꽑�깮�븯�꽭�슂.", + "membershipWithdrawal": "�쉶�썝�깉�눜", + "signOutNotRecovered": "�쉶�썝 �깉�눜 �떆 �뾽臾� 怨듦컙�쓽 紐⑤뱺 �뜲�씠�꽣媛� �궗�씪吏�怨� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + "existingPassword": "湲곗〈 鍮꾨�踰덊샇", + "newPassword": "�떊洹� 鍮꾨�踰덊샇", + "confirmNewPassword": "�떊洹� 鍮꾨�踰덊샇 �솗�씤", + "checkPassword": "鍮꾨�踰덊샇 �솗�씤", + "join": "�쉶�썝媛��엯", + "workspaceJoin": " ", + "superJoin": "�꽕�젙 �셿猷�", + "enable": "�솢�꽦", + "disable": "鍮꾪솢�꽦", + "withdrawal": "�깉�눜", + "usedAccount": "�씠誘� 怨꾩젙�씠 �엳�쑝�떊媛��슂?", + "joinOWLITSMembership": "OWL ITS 媛��엯", + "setupOWLITSMembership": "OWL ITS 愿�由ъ옄 �꽕�젙", + "enterAnEmail": "�씠硫붿씪�쓣 �엯�젰�븯�꽭�슂.", + "enterAnPassword": "鍮꾨�踰덊샇瑜� �엯�젰�븯�꽭�슂.", + "pleaseSelectFile": "�뙆�씪�쓣 �꽑�깮�븯�꽭�슂", + "invalidEmailFormat": "�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.", + "enterYourEmailAddress": "�엯�젰�븳 �씠硫붿씪濡� �븣由쇱씠 諛쒖넚�맗�땲�떎. 瑗� �궗�슜�븯�떆�뒗 �씠硫붿씪濡� �엯�젰�븯�꽭�슂.", + "least4CharactersPassword": "鍮꾨�踰덊샇�뒗 理쒖냼 4�옄 �씠�긽 �엯�젰�빐�빞 �빀�땲�떎.", + "enter4CharactersPassword": "鍮꾨�踰덊샇�뒗 4�옄 �씠�긽�쑝濡� �엯�젰�븯�꽭�슂.", + "differentPassword": "鍮꾨�踰덊샇媛� �떎由낅땲�떎.", + "contactedEnterPhone": "�뿰�씫媛��뒫�븳 �빖�뱶�룿 踰덊샇瑜� �엯�젰�븯�꽭�슂.", + "enterTheNameInWorkspace": "�궗�슜�븯怨� �떢�� �뾽臾닿났媛꾩쓽 �씠由꾩쓣 �엯�젰�븯�꽭�슂.", + "agreePrivacyPolicy": "媛쒖씤�젙蹂� 泥섎━諛⑹묠�뿉 �룞�쓽�빀�땲�떎.", + "privacyPolicy": "媛쒖씤�젙蹂� 泥섎━諛⑹묠", + "privacyPolicy1": "二쇱떇�쉶�궗 ���씠利덉뒪�넠(�씠�븯 �쒗쉶�궗��)�� 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� 留ㅼ슦 以묒슂�떆�븯硫�, �젙蹂댄넻�떊留� �씠�슜珥됱쭊 諛� �젙蹂대낫�샇�뿉 愿��븳 踰뺣쪧�쓣 以��닔�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 媛쒖씤�젙蹂� 泥섎━ 諛⑹묠�쓽 怨듦컻瑜� �넻�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂닿� �뼱�뼚�븳 紐⑹쟻怨� 諛⑹떇�쑝濡� �씠�슜�릺怨� �엳�쑝硫� 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 �뼱�뼚�븳 議곗튂媛� 痍⑦빐吏�怨� �엳�뒗吏�瑜� �븣�젮 �뱶由쎈땲�떎. 蹂� 媛쒖씤�젙蹂� 泥섎━ 諛⑹묠�� 愿��젴 踰뺣졊�쓽 媛쒖젙�씠�굹 �쉶�궗 �궡遺� 諛⑹묠�뿉 �쓽�빐 蹂�寃쎈맆 �닔 �엳�뒿�땲�떎. 蹂�寃쎈맆 �떆�뿉�뒗 �뼵�젣�뱺吏� 洹� �궡�슜怨� �씠�쑀瑜� �돺寃� �븣 �닔 �엳�룄濡� 怨듭��궗�빆�쓣 �넻�븯�뿬 �븣�젮�뱶由ш쿋�뒿�땲�떎.<br><br>�젣 1議� (媛쒖씤�젙蹂댁쓽 �닔吏묓빆紐� 諛� �씠�슜紐⑹쟻)<br>怨좉컼�씠 �룞�쓽�븳 �씠�슜�빟愿��뿉 �뵲�씪 OWL �꽌鍮꾩뒪(OWL solution �궗�씠�듃 諛� OWL ITS �씠�븯 �쏰WL �꽌鍮꾩뒪��)�쓽 �떎�뼇�븳 湲곕뒫�쓣 �젣怨듯븯湲� �쐞�빐�꽌, �쉶�궗�뒗 怨좉컼�떂�쑝濡쒕��꽣 �떎�쓬怨� 媛숈� 媛쒖씤�젙蹂�(�룷愿꾪븯�뿬 �씠�븯 �쒓컻�씤�젙蹂닳��)瑜� �닔吏�, 蹂닿��븯怨� �엳�뒿�땲�떎.<br>(1) �븘�닔�엯�젰�궗�빆<br>�몺 �쉶�썝媛��엯 �떆 �닔吏묓빆紐�: �씠硫붿씪, �씠由�<br>(2) �꽑�깮�엯�젰�빆紐�<br>�몺 �궗吏�<br>(3) �꽌鍮꾩뒪 �씠�슜 �삉�뒗 �궗�뾽泥섎━ 怨쇱젙�뿉�꽌 �깮�꽦 �닔吏묐릺�뒗 媛곸쥌 嫄곕옒 諛� 媛쒖씤 �꽦�뼢 �젙蹂�<br>�몺 �꽌鍮꾩뒪 �씠�슜湲곕줉, �젒�냽 濡쒓렇, 荑좏궎, �젒�냽 IP �젙蹂�, 寃곗젣湲곕줉, 遺덈웾�씠�슜湲곕줉<br>(4) �닔吏묅���씠�슜紐⑹쟻<br>�몺 �꽌鍮꾩뒪(�젣�뭹) 臾몄쓽 �벑�뿉 ���븳 �긽�떞�씠�굹 �쓳��瑜� �쐞�븳 �솢�룞<br>�몼 �쉶�썝�젣 �꽌鍮꾩뒪 �씠�슜�뿉 �뵲瑜� 蹂몄씤�솗�씤, 媛쒖씤�떇蹂�, 遺덈웾�쉶�썝�쓽 遺��젙 �씠�슜諛⑹��� 鍮꾩씤媛� �궗�슜諛⑹�, 媛��엯 �쓽�궗 �솗�씤, 遺꾩웳議곗젙�쓣 �쐞�븳 湲곕줉蹂댁〈, 遺덈쭔泥섎━ �벑 誘쇱썝泥섎━, 怨좎��궗�빆 �쟾�떖<br>�몾 �꽌鍮꾩뒪 �젣怨듭뿉 愿��븳 怨꾩빟�씠�뻾 諛� �꽌鍮꾩뒪 �젣怨듭뿉 �뵲瑜� �슂湲� �젙�궛 諛� �듅�젙 留욎땄�꽌鍮꾩뒪 �젣怨�(泥�援ъ꽌 �벑 諛쒖넚, �슂湲덇껐�젣)<br>�몿 �떊洹� �꽌鍮꾩뒪(�젣�뭹) 媛쒕컻 �넻怨꾪븰�쟻 �듅�꽦�뿉 �뵲瑜� �꽌鍮꾩뒪 �젣怨�, �듅�솕, �씠踰ㅽ듃 �벑 愿묎퀬�꽦 �젙蹂댁쟾�떖 諛� 李몄뿬湲고쉶 �젣怨�, �꽌鍮꾩뒪�쓽 �쑀�슚�꽦 �솗�씤, �젒�냽 鍮덈룄 �뙆�븙 �삉�뒗 �쉶�썝�쓽 �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 �넻怨�<br><br>�젣 2議� (媛쒖씤�젙蹂댁쓽 �닔吏묐갑踰�)<br>�솃�럹�씠吏� �쉶�썝媛��엯, �쉶�썝�젙蹂댁닔�젙, �쟾�솕, �씠硫붿씪, �꽭誘몃굹/�꽕臾�/�씠踰ㅽ듃 �떊泥�, 臾몄쓽 諛� �긽�떞, �젣�쑕臾몄쓽, �깮�꽦�젙蹂� �닔吏� �댋 �벑�쓣 �넻�븯�뿬 �룞�쓽�븳 寃쎌슦�뿉留� 媛쒖씤�젙蹂대�� �닔吏묓빀�땲�떎.<br><br>�젣 3議� (媛쒖씤�젙蹂� �옄�룞�닔吏묒옣移섏쓽 �꽕移� �슫�쁺 諛� 洹� 嫄곕�諛⑸쾿)<br>�쉶�궗�뒗 怨좉컼�씠 �솃�럹�씠吏�瑜� �씠�슜�븯�뒗 寃쎌슦 怨좉컼�쓽 �젙蹂대�� �닔�떆濡� ���옣�븯怨� 李얠븘�궡�뒗 '荑좏궎(cookie)'�� �솃�럹�씠吏� �궗�슜湲곕줉(�씠�븯 '�넻怨꾨뜲�씠�꽣')�쓣 �옄�룞�쑝濡� �닔吏묓븯�뒗 �옣移섎�� �꽕移섃���슫�쁺�븷 �닔 �엳�뒿�땲�떎.<br>(1) 荑좏궎(cookie)��?<br>荑좏궎�뒗 �솃�럹�씠吏�媛� 怨좉컼�쓽 �쎒 釉뚮씪�슦��濡� �쟾�넚�븯�뒗 �냼�웾�쓽 �젙蹂댁엯�땲�떎. 怨좉컼�씠 �솃�럹�씠吏��뿉 �젒�냽�븯硫� �쉶�궗�쓽 而댄벂�꽣�뒗 怨좉컼�쓽 釉뚮씪�슦���뿉 �엳�뒗 荑좏궎�쓽 �궡�슜�쓣 �씫怨�, 怨좉컼�쓽 異붽��젙蹂대�� 怨좉컼�쓽 而댄벂�꽣�뿉�꽌 李얠븘 �젒�냽�뿉 �뵲瑜� �꽦紐� �벑�쓽 異붽� �엯�젰 �뾾�씠 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �엳�뒿�땲�떎. �삉�븳, 怨좉컼�� 荑좏궎�뿉 ���븳 �꽑�깮沅뚯씠 �엳�뒿�땲�떎. �쎒 釉뚮씪�슦�� �긽�떒�쓽 '�룄援� > �씤�꽣�꽬 �샃�뀡' �꺆�뿉�꽌 紐⑤뱺 荑좏궎瑜� �떎 諛쏆븘�뱾�씠嫄곕굹, 荑좏궎媛� �꽕移섎맆 �븣 �넻吏�瑜� 蹂대궡�룄濡� �븯嫄곕굹, �븘�땲硫� 紐⑤뱺 荑좏궎瑜� 嫄곕��븷 �닔 �엳�뒗 �꽑�깮沅뚯쓣 媛�吏� �닔 �엳�뒿�땲�떎. �떒, 怨좉컼�뿉寃뚯꽌 荑좏궎�꽕移섎�� 嫄곕��븯���쓣 寃쎌슦 �꽌鍮꾩뒪 �씠�슜�뿉 遺덊렪�씠 �엳嫄곕굹, �꽌鍮꾩뒪 �젣怨듭뿉 �뼱�젮���씠 �엳�쓣 �닔 �엳�뒿�땲�떎<br>(2) �넻怨꾨뜲�씠�꽣��?<br>�솃�럹�씠吏�, �씠�룞�쟾�솕 �벑�쓽 �꽌鍮꾩뒪 �씠�슜 �떆 而댄벂�꽣 諛� �떒留먭린�쓽 �듅�젙 �쁺�뿭�뿉 ���옣�릺怨�, 二쇨린�쟻�쑝濡� �쉶�궗�쓽 �꽌踰꾨줈 �쟾�떖�릺�뒗 �븘�옒�� 媛숈� �젙蹂댁엯�땲�떎.<br>�몺 �꽌鍮꾩뒪 �궗�슜�넻怨�(�샇�젒�냽, �샇�젅�떒, �샇�떎�뙣 �떆 留� �솚寃�, �떎�슫濡쒕뱶 �떎�뻾�삤瑜�, �쑀/臾� �씤�꽣�꽬 �젒�냽�떎�뙣 諛� �젒�냽�떆媛� �벑)<br>�몼 �궗�슜 �뙣�꽩 �젙蹂�(怨좉컼�쓽 硫붾돱 �씠�룞 寃쎈줈, 二쇰줈 �씠�슜�븯�뒗 �꽌鍮꾩뒪, �꽌鍮꾩뒪 �씠�슜�슏�닔, 諛⑸Ц湲곕줉 �벑)<br>(3) �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �슫�쁺<br>�쉶�궗�뒗 怨좉컼�쓽 �렪�쓽瑜� �쐞�븯�뿬 荑좏궎, �넻怨꾨뜲�씠�꽣瑜� �슫�쁺�빀�땲�떎. �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �궗�슜 紐⑹쟻�� �떎�쓬怨� 媛숈뒿�땲�떎.<br>�몺 愿��떖 �엳寃� �몮�윭蹂� �궡�슜�뱾�뿉 ���븳 �옄痍⑤�� 異붿쟻�븯�뿬 �떎�쓬 �젒�냽 �븣 媛쒖씤 留욎땄 �꽌鍮꾩뒪瑜� �젣怨�<br>�몼 �쉶�썝怨� 鍮꾪쉶�썝�쓽 �젒�냽鍮덈룄 �삉�뒗 癒몃Ц �떆媛� �벑�쓣 遺꾩꽍�븯�뿬 怨좉컼�쓽 痍⑦뼢怨� 愿��떖 遺꾩빞瑜� �뙆�븙�븯怨� �쉶�썝�뱾�쓽 �뒿愿��쓣 遺꾩꽍�븯�뿬 �꽌鍮꾩뒪 媛쒗렪 �떆 湲곗��쑝濡� �씠�슜 ��源�(target) 留덉��똿�뿉 �솢�슜<br>�몾 �쑀猷뚯꽌鍮꾩뒪 �씠�슜 �떆 �씠�슜 湲곌컙 �븞�궡<br>�몿 臾몄쓽 諛� �긽�떞 湲� �벑濡� �렪�쓽�꽦 �젣怨�<br><br>�젣 4議� (媛쒖씤�젙蹂댁쓽 �씠�슜 諛� �젣3�옄 �젣怨�)<br>(1) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 媛��엯�떊泥��꽌, �씠�슜�빟愿�, 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 \"媛쒖씤�젙蹂� �닔吏묅���씠�슜 紐⑹쟻�긽 怨좎��븳 踰붿쐞 �궡�뿉�꽌 �씠�슜 諛� �젣怨듯븯硫�, 洹� 踰붿쐞瑜� �꽆�뼱�꽌 �씠�슜�븯嫄곕굹 �젣怨듯븯吏� �븡�뒿�땲�떎. �듅�엳, �떎�쓬�쓽 寃쎌슦�뒗 二쇱쓽瑜� 湲곗슱�뿬 媛쒖씤�젙蹂대�� �씠�슜 諛� �젣怨듯븷 寃껋엯�땲�떎.<br>�몺 �젣�쑕愿�怨�<br>蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂대�� �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨듯븷 �닔 �엳�뒿�땲�떎. �씠 寃쎌슦 �궗�쟾�뿉 怨좉컼�뿉寃� �젣�쑕�궗媛� �늻援ъ씤吏�, 怨듭쑀 �삉�뒗 �젣怨듬릺�뒗 媛쒖씤�젙蹂댁쓽 �빆紐⑹씠 臾댁뾿�씤吏�, �뼱�뼚�븳 �씠�쑀�뿉�꽌 媛쒖씤�젙蹂닿� 怨듭쑀�릺嫄곕굹 �젣怨듬릺�뼱�빞 �븯�뒗吏�, 洹몃━怨� �뼱�뼸寃� �뼵�젣源뚯� 蹂닿���愿�由щ릺�뒗吏��뿉 愿��븯�뿬 媛쒕퀎�쟻�쑝濡� �쟾�옄�쟻 諛⑸쾿�씠�굹, �쟾�솕, �꽌硫�, �뙥�뒪, �슦�렪 �벑�쓣 �넻�빐 怨좎��븯�뿬 �룞�쓽瑜� 援ы븯�뒗 �젅李⑤�� 嫄곗튂寃� �릺硫�, 怨좉컼�씠 �룞�쓽�븯吏� �븡�뒗 寃쎌슦�뿉�뒗 �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨듬릺吏� �븡�뒿�땲�떎.<br>(2) �쉶�궗�뒗 �꽌鍮꾩뒪�쓽 �젣怨듭뿉 愿��븳 怨꾩빟�쓣 �씠�뻾�븯湲� �쐞�븯�뿬 �븘�슂�븳 媛쒖씤�젙蹂대줈�꽌 湲곗닠�쟻��寃쎌젣�쟻�씤 �궗�쑀濡� �넻�긽�쟻�씤 �룞�쓽瑜� 諛쏅뒗 寃껋씠 �슌�졆�븯寃� 怨ㅻ��븳 寃쎌슦�뿉�뒗 怨좉컼�쓽 �룞�쓽媛� �뾾�뜑�씪�룄 媛쒖씤�젙蹂대�� �닔吏묅���씠�슜�븷 �닔 �엳�뒿�땲�떎.<br>(3) �떎�쓬�쓽 寃쎌슦�뿉�뒗 愿��젴 踰뺣졊�쓽 洹쒖젙�뿉 �쓽�븯�뿬 �쉶�썝�쓽 �룞�쓽 �뾾�씠 媛쒖씤�젙蹂대�� �젣怨듯븯�뒗 寃껋씠 媛��뒫�빀�땲�떎.<br>�몺 �꽌鍮꾩뒪�젣怨듭뿉 �뵲瑜� �슂湲� �젙�궛�쓣 �쐞�븯�뿬 �븘�슂�븳 寃쎌슦<br>�몼 �넻怨꾩옉�꽦���븰�닠�뿰援� �삉�뒗 �떆�옣議곗궗瑜� �쐞�븯�뿬 �븘�슂�븳 寃쎌슦濡쒖꽌 �듅�젙 媛쒖씤�쓣 �븣�븘蹂� �닔 �뾾�뒗 �삎�깭濡� 媛�怨듯븯�뿬 �젣怨듯븯�뒗 寃쎌슦<br>�몾 湲덉쑖 �떎紐� 嫄곕옒 諛� 鍮꾨�蹂댁옣�뿉 愿��븳 踰뺣쪧, �떊�슜�젙蹂댁쓽 �씠�슜 諛� 蹂댄샇�뿉 愿��븳 踰뺣쪧, �쟾湲고넻�떊 湲곕낯踰�, �쟾湲고넻�떊 �궗�뾽踰�, 吏�諛⑹꽭踰�, �냼鍮꾩옄蹂댄샇踰�, �븳援����뻾踰�, �삎�궗�냼�넚踰� �벑 踰뺣쪧�뿉 �듅蹂꾪븳 洹쒖젙�씠 �엳�뒗 寃쎌슦<br>�몿 �닔�궗 紐⑹쟻�쑝濡� 踰뺣졊�뿉 �젙�빐吏� �젅李⑥� 諛⑸쾿�뿉 �뵲�씪 �닔�궗湲곌��쓽 �슂援ш� �엳�뒗 寃쎌슦<br>�뫀 怨좉컼�씠 �궗�쟾�뿉 �룞�쓽�븳 寃쎌슦<br><br>�젣 5議� (媛쒖씤�젙蹂댁쓽 泥섎━�쐞�긽)<br>(1) �쉶�궗�뒗 怨좉컼 �렪�쓽 �젣怨듦낵 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨� �벑 �뾽臾� �닔�뻾�쓣 �썝�솢�븯寃� �븯湲� �쐞�븯�뿬 �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂댁뿉 ���븳 �닔吏묅��蹂닿���泥섎━���씠�슜���젣怨듈��愿�由р���뙆湲� �벑(�씠�븯 �쒖쿂由р��)�쓣 �쐞�긽�븷 �닔 �엳�뒿�땲�떎.<br>(2) �쉶�궗媛� �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯�뒗 寃쎌슦 洹� �쐞�긽�뾽臾댁쓽 �궡�슜, �닔�긽�옄�뒗 �떎�쓬 �몴�� 媛숈뒿�땲�떎.<br><媛쒖씤�젙蹂� �젣3�옄 �젣怨� 諛� �쐞�긽�쁽�솴><br>�닔�닔�긽�뾽泥� �굹�씠�뒪�젙蹂댄넻�떊�닚 怨� 洹� �옄�쉶�궗�씤 NICE�럹�씠癒쇱툩(二�) �쐞�긽�뾽臾대궡�슜 �떊�슜移대뱶 寃곗젣 蹂댁쑀 諛� �씠�슜湲곌컙 �쉶�썝 �깉�눜 �떆 �샊�� �쐞�긽怨꾩빟 醫낅즺 �떆源뚯�<br>(3) �쉶�궗�뒗 怨좉컼�쓽 �룞�쓽 �뾾�씠 �꽌鍮꾩뒪 �젣怨� �씠�쇅�쓽 紐⑹쟻�쑝濡� 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯吏� �븡�뒗 寃껋쓣 �썝移숈쑝濡� �빀�땲�떎. �떎留�, 洹몃윭�븳 �븘�슂媛� �깮湲곕뒗 寃쎌슦 �쐞�긽�뾽臾댁쓽 �궡�슜怨� �닔�긽�옄瑜� 怨좉컼�뿉寃� 怨좎��븯怨� �룞�쓽瑜� 諛쏆뒿�땲�떎.<br><br>�젣 6議� (媛쒖씤�젙蹂댁쓽 �씠�슜��蹂닿� 湲곌컙)<br>怨좉컼�쓽 媛쒖씤�젙蹂대뒗 �룞�쓽瑜� 諛쏆� 媛쒖씤�젙蹂댁쓽 �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�릺硫� 踰뺣졊 �삉�뒗 �궡遺�諛⑹묠�뿉 �쓽�빐 蹂댁〈�븷 �븘�슂媛� �엳�뒗 寃쎌슦瑜� �젣�쇅�븯怨좊뒗 吏�泥� �뾾�씠 �뙆湲곕맗�땲�떎.<br>(1) 臾대텇蹂꾪븳 �쉶�썝�깉�눜�� �옱媛��엯�쑝濡� �씤�븳 �뵾�빐 理쒖냼�솕, �쉶�썝�깉�눜 �썑 蹂��떖�뿉 �쓽�븳 誘쇱썝泥섎━ �벑�쓣 泥섎━�븯湲� �쐞�븯�뿬 �쉶�썝�깉�눜 �썑 1�뀈媛� �쉶�썝�젙蹂대�� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br>(2) 蹂댁쑀 湲곌컙�쓣 誘몃━ 怨좎��븯怨� 蹂꾨룄�쓽 �룞�쓽瑜� 諛쏆� 寃쎌슦 �빐�떦 蹂댁쑀 湲곌컙源뚯� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br>(3) �쉶�궗媛� 踰뺣졊�뿉 �뵲�씪 蹂닿��븯�뒗 媛쒖씤�젙蹂� 諛� �빐�떦 踰뺣졊�� �븘�옒 �몴�� 媛숈뒿�땲�떎.<br>蹂댁〈 �빆紐�: 怨꾩빟 �삉�뒗 泥��빟泥좏쉶 �벑�뿉 愿��븳 湲곕줉<br>洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br>蹂댁〈 湲곌컙: 5�뀈<br>蹂댁〈 �빆紐�: ��湲덇껐�젣 諛� �옱�솕 �벑�쓽 怨듦툒�뿉 愿��븳 湲곕줉<br>洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br>蹂댁〈 湲곌컙: 5�뀈<br>蹂댁〈 �빆紐�: �냼鍮꾩옄�쓽 遺덈쭔 �삉�뒗 遺꾩웳泥섎━�뿉 愿��븳 湲곕줉<br>洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br>蹂댁〈 湲곌컙: 3�뀈<br>蹂댁〈 �빆紐�: �몴�떆/愿묎퀬�뿉 愿��븳 湲곕줉<br>洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br>蹂댁〈 湲곌컙: 6媛쒖썡<br>蹂댁〈 �빆紐�: �꽭踰뺤씠 洹쒖젙�븯�뒗 紐⑤뱺 嫄곕옒�뿉 愿��븳 �옣遺� 諛� 利앸튃�꽌瑜�<br>洹쇨굅 踰뺣졊: 援��꽭湲곕낯踰�<br>蹂댁〈 湲곌컙: 5�뀈<br>蹂댁〈 �빆紐�: �쟾�옄湲덉쑖 嫄곕옒�뿉 愿��븳 湲곕줉<br>洹쇨굅 踰뺣졊: �쟾�옄湲덉쑖嫄곕옒踰�<br>蹂댁〈 湲곌컙: 5�뀈<br>蹂댁〈 �빆紐�: �꽌鍮꾩뒪 諛⑸Ц湲곕줉<br>洹쇨굅 踰뺣졊: �넻�떊鍮꾨� 蹂댄샇踰�<br>蹂댁〈 湲곌컙: 3媛쒖썡<br>(4) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 怨좉컼�쓽 �쉶�썝媛��엯 怨꾩젙�쓣 �궗�슜怨꾩젙怨� �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯�뿬 愿�由ы빀�땲�떎. OWL �꽌鍮꾩뒪瑜� 1�뀈 �룞�븞 濡쒓렇�씤 �삉�뒗 �씠�슜�궡�뿭�씠 �뾾�쓣 寃쎌슦 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� �쐞�빐 �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯怨� 怨좉컼 媛쒖씤�젙蹂댁쓽 �솢�슜 諛� �젣�쑕�궗 (�젣3�옄 �룞�쓽�븳 �젣�쑕�궗)�뿉 怨좉컼�쓽 �젙蹂대�� �젣怨듯븯吏� �븡�뒿�땲�떎.<br><br>�젣 7議� (媛쒖씤�젙蹂댁쓽 �뙆湲곗젅李� 諛� 諛⑸쾿)<br>(1) 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 怨좉컼�쑝濡쒕��꽣 �룞�쓽瑜� 諛쏆� �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�맂 �븣�뿉�뒗 蹂꾨룄�쓽 DB濡� �삷寃⑥졇(醫낆씠�쓽 寃쎌슦 蹂꾨룄�쓽 �꽌瑜섑븿) 愿�怨� 踰뺣졊�뿉�꽌 �젙�븳 �씪�젙�븳 湲곌컙 �룞�븞 蹂닿��븳 �떎�쓬 �뙆湲고빀�땲�떎.<br>(2) 醫낆씠�뿉 異쒕젰�맂 媛쒖씤�젙蹂대뒗 遺꾩뇙湲곕줈 遺꾩뇙�븯嫄곕굹 �냼媛곸쓣 �넻�븯�뿬 �뙆湲고븯怨�, �쟾�옄�쟻 �뙆�씪 �삎�깭濡� ���옣�맂 媛쒖씤�젙蹂대뒗 湲곕줉�쓣 �옱�깮�븷 �닔 �뾾�뒗 湲곗닠�쟻 諛⑸쾿�쓣 �궗�슜�븯�뿬 �궘�젣�빀�땲�떎.<br>(3) �쉶�썝�씠 �쉶�궗�뿉寃� 蹂꾨룄濡� 媛쒖씤�젙蹂댁쓽 �뙆湲� 諛� 蹂닿��쓣 �슂泥��븯�뒗 寃쎌슦, 媛쒖씤�젙蹂대낫�샇 �떆�뻾�졊�뿉 �뵲�씪 �쉶�궗�� �삊�쓽 �븯�뿬 寃곗젙�맂 諛⑸쾿 (�꽌硫�, �쑀�꽑�긽 �벑 )�쑝濡� �떊泥��븯�뿬�빞 �븯硫� �쉶�썝�쓽 �슂援ъ궗�빆�뿉 �뵲�씪 蹂꾨룄�쓽 鍮꾩슜�씠 諛쒖깮�븷 �닔 �엳�뒿�땲�떎. <br><br>�젣 8議� (怨좉컼�쓽 沅뚮━�� 洹� �뻾�궗諛⑸쾿)<br>(1) 怨좉컼(留� 14�꽭 誘몃쭔�씤 寃쎌슦 踰뺤젙 ��由ъ씤)�� �뼵�젣�뱺吏� OWL �꽌鍮꾩뒪 �궡�뿉�꽌 怨좉컼�쓽 媛쒖씤�젙蹂대�� �뿴�엺 �삉�뒗 蹂�寃쏀븷 �닔 �엳�쑝硫�, 怨좉컼�� �븘�슱 �꽌鍮꾩뒪�쓽 �씠�슜�빟愿��뿉 �뵲�씪 怨좉컼�쓽 媛쒖씤�젙蹂� �닔吏� 諛� �씠�슜�뿉 ���븯�뿬 �쉶�궗�뿉 �룞�쓽 泥좏쉶瑜� �슂援ы븯嫄곕굹 OWL �꽌鍮꾩뒪�뿉�꽌 �깉�눜�떆耳� 以� 寃껋쓣 �슂援ы븷 �닔 �엳�뒿�땲�떎<br>(2) �삩�씪�씤 媛��엯�젙蹂댁쓽 �뿴�엺 諛� �젙�젙�쓣 �븯怨좎옄 �븯�뒗 怨좉컼�쓽 寃쎌슦�뿉�뒗 �솃�럹�씠吏� �궡�쓽 \"�쉶�썝�젙蹂�\"瑜� �겢由��븯�뿬 吏곸젒 �뿴�엺 諛� �젙�젙�쓣 �븯嫄곕굹, 怨좉컼�꽱�꽣瑜� �넻�빐 �꽌硫�, �쟾�솕 �삉�뒗 �씠硫붿씪濡� �뿰�씫�븯�떆硫� 吏�泥� �뾾�씠 議곗튂�븯寃좎뒿�땲�떎.<br>(3) �쉶�궗�뒗 ��由ъ씤�씠 諛⑸Ц�븯�뿬 �뿴�엺��利앸챸�쓣 �슂援ы븯�뒗 寃쎌슦�뿉�뒗 �쟻踰뺥븳 �쐞�엫�쓣 諛쏆븯�뒗吏� �솗�씤�븷 �닔 �엳�뒗 �쐞�엫�옣 諛� 蹂몄씤�쓽 �씤媛먯쬆紐낆꽌�� ��由ъ씤�쓽 �떊遺꾩쬆 �벑�쓣 �젣異� 諛쏆븘 �젙�솗�엳 ��由ъ씤 �뿬遺�瑜� �솗�씤�빀�땲�떎<br>(4) 怨좉컼�씠 媛쒖씤�젙蹂댁쓽 �삤瑜섏뿉 ���븳 �젙�젙�쓣 �슂泥��븯�떊 寃쎌슦 �쉶�궗�뒗 �젙�젙�쓣 �셿猷뚰븯湲� �쟾源뚯� �빐�떦 媛쒖씤�젙蹂대�� �씠�슜 �삉�뒗 �젣怨듯븯吏� �븡�뒿�땲�떎. �삉�븳 �쉶�궗�뒗 �옒紐삳맂 媛쒖씤�젙蹂대�� �씠誘� �젣3�옄�뿉寃� �젣怨듯븳 寃쎌슦 洹� �젙�젙泥섎━寃곌낵瑜� �젣3�옄�뿉寃� 吏�泥� �뾾�씠 �넻吏��븯�뿬 �젙�젙�븯�룄濡� �빀�땲�떎.<br>(5) 怨좉컼�� 媛쒖씤�젙蹂대�� 理쒖떊�쓽 �긽�깭濡� �젙�솗�븯寃� �엯�젰�븯怨� 蹂��룞 �궗�빆�씠 �엳�뒗 寃쎌슦, �씠瑜� �쉶�궗�뿉 �넻蹂댄븯�뿬�빞 �븯硫�, �뒪�뒪濡� 遺��젙�솗�븳 �젙蹂대�� �엯�젰�븯嫄곕굹, �쉶�궗�뿉 �넻蹂댄븯吏� �븡�븘�꽌 �쉶�궗媛� �븣 �닔 �뾾�뒗 怨좉컼�젙蹂댁쓽 蹂��룞�쑝濡� �씤�븳 梨낆엫�� 怨좉컼 �옄�떊�뿉寃� 洹��냽�맗�땲�떎.<br>(6) 怨좉컼�씠 ���씤 �젙蹂댁쓽 �룄�슜�씠�굹 移⑦빐, �뿀�쐞�젙蹂대�� �엯�젰�븯�뒗 寃쎌슦 �꽌鍮꾩뒪 �빐吏� 諛� �쉶�썝�옄寃⑹씠 �긽�떎�맆 �닔 �엳�쑝硫� 踰� �벑 愿��젴 踰뺣졊�뿉 �뵲�씪 泥섎쾶諛쏆쓣 �닔 �엳�뒿�땲�떎.<br><br>�젣 9議� (媛쒖씤�젙蹂대낫�샇瑜� �쐞�븳 湲곗닠�쟻 愿�由ъ쟻 ��梨�)<br>�쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂닿� 遺꾩떎, �룄�궃, �늻異�, 蹂�議� �삉�뒗 �쎕�넀�릺吏� �븡�룄濡� �븯湲� �쐞�빐�꽌 �떎�쓬怨� 媛숈� 湲곗닠�쟻/愿�由ъ쟻 ��梨낆쓣 媛뺢뎄�븯怨� �엳�뒿�땲�떎.<br>(1) 湲곗닠�쟻 ��梨�<br>�몺 �젒�냽湲곕줉�쓽 �쐞��蹂�議� 諛⑹� 議곗튂瑜� 痍⑦븯怨� �엳�뒿�땲�떎.<br>�몼 媛쒖씤�젙蹂대뒗 洹� 醫낅쪟�뿉 �뵲�씪 愿��젴 踰뺣졊�씠 �슂援ы븯�뒗 �닔以��쓽 �븫�샇�솕 ���옣 �삉�뒗 �쟾�넚 �떆 �븫�샇�솕 湲곗닠�쓽 �쟻�슜�븯�뿬 愿�由ы빀�땲�떎.<br>�몾 諛깆떊�봽濡쒓렇�옩�쓣 �씠�슜�븯�뿬 而댄벂�꽣 諛붿씠�윭�뒪�뿉 �쓽�븳 �뵾�빐瑜� 諛⑹��븯湲� �쐞�븳 議곗튂瑜� 痍⑦븯怨� �엳�쑝硫�, 諛깆떊�봽濡쒓렇�옩�쓣 二쇨린�쟻�쑝濡� �뾽�뜲�씠�듃�븯怨� 媛묒옉�뒪�윭�슫 諛붿씠�윭�뒪 異쒗쁽 �떆�뿉 諛깆떊�씠 �굹�삤�뒗 利됱떆 �씠瑜� �젣怨듯븿�쑝濡쒖뜥 媛쒖씤�젙蹂닿� 移⑦빐�릺�뒗 寃껋쓣 諛⑹��븯怨� �엳�뒿�땲�떎.<br>�몿 �븫�샇�븣怨좊━利섏쓣 �씠�슜�븯�뿬 �꽕�듃�썙�겕�긽 媛쒖씤�젙蹂대�� �븞�쟾�븯寃� �쟾�넚�븯�뒗 蹂댁븞�옣移�(SSL �벑)瑜� 梨꾪깮�븯怨� �엳�뒿�땲�떎.<br>�뫀 �빐�궧 �벑 �쇅遺� 移⑥엯�뿉 ��鍮꾪븯�뿬 媛� �꽌踰꾨쭏�떎 移⑥엯李⑤떒�떆�뒪�뀥�쓣 �씠�슜�븯�뿬 蹂댁븞�뿉 理쒖꽑�쓣 �떎�븯怨� �엳�뒿�땲�떎.<br>(2) 愿�由ъ쟻 ��梨�<br>�몺 �쉶�궗�뒗 媛쒖씤�젙蹂� 蹂댄샇�뿉 愿��븳 �궡遺�愿�由ш퀎�쉷�쓣 �닔由�, �떆�뻾�븯怨� �엳�뒿�땲�떎.<br>�몼 �쉶�궗�뒗 媛쒖씤�젙蹂댁뿉 ���븳 �젒洹쇨텒�븳�쓣 �븘�슂��理쒖냼�븳�쓽 �씤�썝�쑝濡� �젣�븳�븯怨� �엳�뒿�땲�떎.<br>�몾 �쉶�궗�뒗 媛쒖씤�젙蹂닿��젴 痍④툒 吏곸썝�� �떞�떦�옄�뿉寃� �븳�젙�떆�궎怨� �엳怨� �씠瑜� 蹂꾨룄�쓽 鍮꾨�踰덊샇瑜� 遺��뿬�븯�뿬 �젙湲곗쟻�쑝濡� 媛깆떊�븯怨� �엳�쑝硫�, �떞�떦�옄�뿉 ���븳 �닔�떆 援먯쑁�쓣 �넻�븯�뿬 �쉶�궗 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 以��닔瑜� �빆�긽 媛뺤“�븯怨� �엳�뒿�땲�떎.<br>�몿 �쉶�궗�뒗 怨좉컼�쓽 �떎�닔�굹 湲곕낯�쟻�씤 �씤�꽣�꽬�쓽 �쐞�뿕�꽦 �븣臾몄뿉 �씪�뼱�굹�뒗 �씪�뱾�뿉 ���빐 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎. 怨좉컼 �뒪�뒪濡쒓� 蹂몄씤�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯湲� �쐞�빐�꽌 �옄�떊�쓽 �씠硫붿씪怨� 鍮꾨�踰덊샇瑜� �쟻�젅�븯寃� 愿�由ы븯怨� �뒪�뒪濡� 梨낆엫�쓣 �졇�빞 �빀�땲�떎.<br><br>�젣 10議� (媛쒖씤�젙蹂� 蹂댄샇梨낆엫�옄 諛� �떞�떦�옄�쓽 �뿰�씫泥�)<br>�쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯怨� 媛쒖씤�젙蹂댁� 愿��젴�븳 遺덈쭔�쓣 泥섎━�븯湲� �쐞�븯�뿬 �븘�옒�� 媛숈씠 愿��젴 遺��꽌 諛� 媛쒖씤�젙蹂닿�由ъ콉�엫�옄瑜� 吏��젙�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 怨좉컼�쓽 紐⑹냼由ъ뿉 洹� 湲곗슱�씠怨� �떊�냽�븯怨� 異⑸텇�븳 �떟蹂��쓣 �뱶由� �닔 �엳�룄濡� 理쒖꽑�쓣 �떎�븯寃좎뒿�땲�떎.<br><媛쒖씤�젙蹂대낫�샇 梨낆엫�옄><br>愿�由� 梨낆엫�옄: 怨좏깭�슦 �씠�궗 | 愿�由� �떞�떦�옄: �씠�젙�꽑 ���옣<br>�떞�떦 遺��꽌: �뀒�뒪�똿 �넄猷⑥뀡�꽱�꽣 �넄猷⑥뀡 媛쒕컻��<br>�뿰�씫泥�: 02-6257-5958 / supportowl@wisestone.kr<br>湲고� 媛쒖씤�젙蹂댁묠�빐�뿉 ���븳 �떊怨좊굹 �긽�떞�씠 �븘�슂�븯�떊 寃쎌슦�뿉�뒗 �븘�옒 湲곌��뿉 臾몄쓽�븯�떆湲� 諛붾엻�땲�떎.<br>�몺 媛쒖씤�젙蹂댁묠�빐�떊怨좎꽱�꽣: �쟾�솕 118 / �씠硫붿씪 privacy@kisa.or.kr / http://privacy.kisa.or.kr<br>�몼 �젙蹂대낫�샇留덊겕 �씤利앹쐞�썝�쉶: �쟾�솕 02-580-0533~4 / http://www.eprivacy.or.kr<br>�몾 ��寃�李곗껌 �궗�씠踰꾨쾾二꾩닔�궗�떒: �쟾�솕 02-3480-3571 / �씠硫붿씪 cybercid@spo.go.kr / http://www.spo.go.kr<br>�몿 寃쎌같泥� �궗�씠踰꾪뀒�윭 ���쓳�꽱�꽣: �쟾�솕 1566-0112 / http://cyber.go.kr<br>�젣 11議� (怨좎��쓽 �쓽臾�)<br>�쉶�궗�뒗 踰뺣쪧�씠�굹 �꽌鍮꾩뒪�쓽 蹂�寃쎌궗�빆�쓣 諛섏쁺�븯湲� �쐞�븳 紐⑹쟻 �벑�쑝濡� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓣 �닔�젙�븷 �닔 �엳�뒿�땲�떎. 媛쒖씤�젙蹂� 泥섎━諛⑹묠�씠 蹂�寃쎈릺�뒗 寃쎌슦 �쉶�궗�뒗 蹂�寃� �궗�빆�쓣 寃뚯떆�븯硫�, 蹂�寃쎈맂 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 寃뚯떆�븳 �궇濡쒕��꽣 7�씪 �썑遺��꽣 �슚�젰�씠 諛쒖깮�빀�땲�떎. �븯吏�留�, �뵾移� 紐삵븯寃� �뿬�윭遺꾩쓽 沅뚮━�뿉 以묒슂�븳 蹂�寃쎌씠 �엳�쓣 寃쎌슦 蹂�寃쎈맆 �궡�슜�쓣 30�씪 �쟾�뿉 誘몃━ �븣�젮�뱶由ш쿋�뒿�땲�떎.<br>�� �떆�뻾 �씪�옄 : 2019�뀈 04�썡 01�씪<br><br>", + "login": "濡쒓렇�씤", + "logout": "濡쒓렇�븘�썐", + "logInSocialAccount": "�냼�뀥 怨꾩젙�쑝濡� 濡쒓렇�씤.", + "rememberMe": "濡쒓렇�씤 �긽�깭 �쑀吏�", + "findPassword": "鍮꾨�踰덊샇 李얘린", + "loginFailed": "濡쒓렇�씤�뿉 �떎�뙣�븯���뒿�땲�떎.", + "createAccountNow": "吏�湲� 怨꾩젙�쓣 留뚮뱾�뼱 蹂댁꽭�슂!", + "forgetYourPassword": "鍮꾨�踰덊샇瑜� �엸�쑝�뀲�굹�슂?", + "incorrectEmailFormat": "�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.", + "sendingYouTemporaryPassword": "媛��엯�븯�떊 �씠硫붿씪濡� <strong class=\"text-primary\">�엫�떆 鍮꾨�踰덊샇</strong>瑜� 蹂대궡�뱶由쎈땲�떎.", + "pleaseEnterPassword4Characters": "鍮꾨�踰덊샇�뒗 4�옄 �씠�긽�쑝濡� �엯�젰�븯�꽭�슂.", + "failedInviteMail": "珥덈� 硫붿씪 諛쒖넚 �떎�뙣", + "successInviteMail": "珥덈� 硫붿씪 諛쒖넚 �꽦怨�", + "welcomeKakTalkMembership": "移댁뭅�삤�넚 �쉶�썝 媛��엯 �븞�궡", + "signUpMembershipKakTalk": "移댁뭅�삤�넚�쑝濡� �쉶�썝 媛��엯�쓣 �븯湲� �쐞�빐�꽌�뒗 �씠硫붿씪 �젙蹂� �젣怨듭쓣 �꽑�깮�빐�빞�빀�땲�떎. �씠�뿉 �룞�쓽�븯吏� �븡�쑝�떎 寃쎌슦�뿉�뒗 �떎瑜� �냼�뀥濡� 媛��엯�빐二쇱꽭�슂.", + "failedToCreateUser": "�궗�슜�옄 �깮�꽦 �떎�뙣", + "failedToModifyUser": "�궗�슜�옄 �닔�젙 �떎�뙣", + "failedToRetrieveIssueHistory": "�씪媛� 湲곕줉 �젙蹂� 議고쉶 �떎�뙣", + "proceedWithMembershipWithdrawal": "�쉶�썝 �깉�눜瑜� 吏꾪뻾�븯寃좎뒿�땲源�? �궓�� 湲곌컙�뿉 ���븳 �솚遺덉� 遺덇��뒫�븯硫� �룞�씪�븳 �씠硫붿씪 怨꾩젙�쑝濡� �쉶�썝媛��엯�씠 遺덇��뒫 �븯硫� �뾽臾� 怨듦컙�쓽 紐⑤뱺 �뜲�씠�꽣媛� �궗�씪吏�怨� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + "successWithdrawalFromMembership": "�쉶�썝 �깉�눜 �꽦怨�", + "failedMemberWithdrawal": "�쉶�썝 �깉�눜 �떎�뙣", + "completedWithdrawalFromOwlITS": "OWL ITS �뿉�꽌 �깉�눜媛� �셿猷뚮릺�뿀�뒿�땲�떎.", + "failedToSelectUserDetail": "�궗�슜�옄 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "notExistUserSession": "�궗�슜�옄 �꽭�뀡�씠 議댁옱�븯吏� �븡�뒿�땲�떎.", + "completedPasswordChange": "鍮꾨�踰덊샇 蹂�寃� �셿猷�", + "failedPasswordChange": "鍮꾨�踰덊샇 蹂�寃� �떎�뙣", + "temporaryPasswordIssue": "�엫�떆 鍮꾨�踰덊샇 諛쒓툒", + "failedRequestFindPassword": "鍮꾨�踰덊샇 李얘린 �슂泥� �떎�뙣", + "duplicateEmail": "�씠硫붿씪 以묐났", + "duplicateEmailEntered": "以묐났�맂 �씠硫붿씪�씠 �엯�젰�릺�뿀�뒿�땲�떎.", + "confirmEmailInput": "�씠硫붿씪 �엯�젰 �솗�씤", + "emailEnteredIncorrectly": "�씠硫붿씪�씠 �옒紐� �엯�젰�릺�뿀�뒿�땲�떎.", + "noEmailEntered": "�씠硫붿씪�씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎." + }, + "notice": { + "notice": "怨듭��궗�빆", + "registerNotice": "怨듭��궗�빆 �벑濡�", + "modifyNotice": "怨듭��궗�빆 �닔�젙", + "enterSpecialCharacters": "�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.", + "failedNoticeRegistration": "怨듭��궗�빆 �벑濡� �떎�뙣", + "failedToLookupNotificationList": "怨듭� �궗�빆 紐⑸줉 議고쉶 �떎�뙣", + "failedToModifyNotice": "怨듭� �궗�빆 �닔�젙 �떎�뙣", + "failedToLookupNotificationDetails": "怨듭��궗�빆 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣" + }, + "manageUser": { + "manageUser": "�궗�슜�옄 沅뚰븳 愿�由�", + "manageProjectPerm": "�봽濡쒖젥�듃 愿�由�", + "manageIssueSystemPerm": "�씪媛� �떆�뒪�뀥", + "manageUserPerm": "�궗�슜�옄", + "manageNoticePerm": "怨듭��궗�빆", + "manageFAQPerm": "FAQ", + "manageQnAPerm": "QnA", + "manageEventPerm": "�씠踰ㅽ듃", + "manageGuidePerm": "媛��씠�뱶" + }, + "FAQ": { + "FAQ": "FAQ", + "manageFAQ": "FAQ 愿�由�", + "registerFAQ": "FAQ �벑濡�", + "modifyFAQ": "FAQ �닔�젙", + "enterSpecialCharacters": "�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.", + "failedFAQRegistration": "FAQ �벑濡� �떎�뙣.", + "failedToLookupFAQList": "FAQ 紐⑸줉 議고쉶 �떎�뙣", + "failedToModifyFAQ": "FAQ �닔�젙 �떎�뙣", + "failedToLookupFAQDetails": "FAQ �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "failedToActivation": "FAQ �솢�꽦 �떎�뙣", + "activation": "�솢�꽦�솕" + }, + "QNA": { + "QNA": "QnA", + "manageQNA": "QnA 愿�由�", + "registerQNA": "吏덈Ц �벑濡�", + "modifyQNA": "QnA �닔�젙", + "enterSpecialCharacters": "�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.", + "failedQNARegistration": "QnA �벑濡� �떎�뙣.", + "failedToLookupQNAList": "QnA 紐⑸줉 議고쉶 �떎�뙣", + "failedToModifyQNA": "QnA �닔�젙 �떎�뙣", + "failedToLookupQNADetails": "QnA �긽�꽭 �젙蹂� 議고쉶 �떎�뙣" + }, + "event": { + "event": "�씠踰ㅽ듃", + "manageEvent": "�씠踰ㅽ듃 愿�由�", + "registerEvent": "�씠踰ㅽ듃 �벑濡�", + "modifyEvent": "�씠踰ㅽ듃 �닔�젙", + "enterSpecialCharacters": "�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.", + "failedEventRegistration": "�씠踰ㅽ듃 �벑濡� �떎�뙣.", + "failedToLookupEventList": "�씠踰ㅽ듃 紐⑸줉 議고쉶 �떎�뙣", + "failedToModifyEvent": "�씠踰ㅽ듃 �닔�젙 �떎�뙣", + "failedToLookupEventDetails": "�씠踰ㅽ듃 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "failedToActivation": "�씠踰ㅽ듃 �솢�꽦 �떎�뙣", + "activation": "�솢�꽦�솕" + }, + "guide": { + "guide": "媛��씠�뱶", + "manageGuide": "媛��씠�뱶 愿�由�", + "registerGuide": "媛��씠�뱶 �벑濡�", + "modifyGuide": "媛��씠�뱶 �닔�젙", + "enterSpecialCharacters": "�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.", + "failedGuideRegistration": "媛��씠�뱶 �벑濡� �떎�뙣.", + "failedToLookupGuideList": "媛��씠�뱶 紐⑸줉 議고쉶 �떎�뙣", + "failedToModifyGuide": "媛��씠�뱶 �닔�젙 �떎�뙣", + "failedToLookupGuideDetails": "媛��씠�뱶 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", + "failedToActivation": "媛��씠�뱶 �솢�꽕 �떎�뙣", + "activation": "�솢�꽦�솕" + }, + "inquiry": { + "toInquiry": "臾몄쓽�븯湲�", + "inquiryToOWL": "OWL ITS�뿉 臾몄쓽�븯湲�", + "asap": "理쒕��븳 鍮좊Ⅸ �떆媛꾩븞�뿉 �떟蹂��뱶由ш쿋�뒿�땲�떎.", + "inquiryGreeting": "臾댁뾿�쓣 �룄���뱶由닿퉴�슂?", + "contactCompleted": "臾몄쓽 �젒�닔 �셿猷�", + "failedToReceiveEnquiry": "臾몄쓽 �젒�닔 �떎�뙣" + }, + "common": { + "urgent": "湲닿툒", + "high": "�넂�쓬", + "medium": "蹂댄넻", + "low": "�궙�쓬", + "critical": "�떖媛�", + "major": "�넂�쓬", + "minor": "蹂댄넻", + "trivial": "�궙�쓬", + "save": "���옣", + "saved": "���옣�븯湲�", + "close": "�떕湲�", + "search": "寃��깋", + "reset": "珥덇린�솕", + "uploadExcel": "�뿊�� �뾽濡쒕뱶", + "create": "�깮�꽦", + "cancel": "痍⑥냼", + "submit": "�쟾�넚", + "modify": "�닔�젙", + "dashboard": "���떆蹂대뱶", + "workspace": "�뾽臾닿났媛�", + "project": "�봽濡쒖젥�듃", + "issue": "�씪媛�", + "setting": "�꽕�젙", + "user": "�궗�슜�옄", + "workflow": "�썙�겕�뵆濡쒖슦", + "updateIssueStatus": "�씪媛� �긽�깭 蹂�寃�", + "changeReason": "蹂�寃� �궗�쑀", + "failedToIssueStatusListLookup": "�씪媛� �긽�깭 紐⑸줉 議고쉶 �떎�뙣", + "customField": "�궗�슜�옄 �젙�쓽 �븘�뱶", + "select": "�꽑�깮", + "checkAll": "�쟾泥� �꽑�깮", + "unCheckAll": "�쟾泥� �빐�젣", + "send": "蹂대궡湲�", + "selected": "�꽑�깮�맖", + "selectable": "�꽑�깮 媛��뒫", + "password": "鍮꾨�踰덊샇", + "information": "�젙蹂�", + "noData": "�뜲�씠�꽣媛� �뾾�뒿�땲�떎.", + "name": "�씠由�", + "status": "�긽�깭", + "email": "�씠硫붿씪", + "few": " 嫄�", + "userNum": " 紐�", + "selectedSearchCriteria": "�꽑�깮�븳 寃��깋 議곌굔", + "detailedSearch": "�긽�꽭寃��깋", + "type": "�쑀�삎", + "priority": "�슦�꽑 �닚�쐞", + "importance": "以묒슂�룄", + "assignee": "�떞�떦�옄", + "register": "�벑濡앹옄", + "startDate": "�떆�옉�씪", + "endDate": "醫낅즺�씪", + "english": "�쁺�뼱", + "korean": "�븳援��뼱", + "japaneseLanguage": "�씪蹂몄뼱", + "vietnamese": "踰좏듃�궓�뼱", + "add": "異붽�", + "addFunction": "異붽�湲곕뒫", + "downloadExcel": "�뿊�� �떎�슫濡쒕뱶", + "importExcel": "Excel Import", + "registerExcelUploadIssue": "�뿊�� �뾽濡쒕뱶 �씪媛� �벑濡�", + "delete": "�궘�젣", + "checkPurgingTargets": "�궘�젣 ���긽 �솗�씤", + "selectDestinationDeletion": "�궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂.", + "deleteFailed": "�궘�젣 �떎�뙣", + "deleteSucceeded": "�궘�젣 �꽦怨�", + "content": "�궡�슜", + "selectTarget": "���긽 �꽑�깮", + "period": "湲곌컙", + "attachFiles": "�뙆�씪 泥⑤�", + "selectFile": "�뙆�씪�꽑�깮", + "changeDate": "蹂�寃쎌씪", + "lastChangeDate": "理쒓렐 蹂�寃쎌씪", + "registrationDate": "�벑濡앹씪", + "fullView": "�쟾泥대낫湲�", + "comments": "�뙎湲�", + "record": "湲곕줉", + "noAssignee": "�떞�떦�옄媛� �뾾�뒿�땲�떎.", + "noContent": "�궡�슜�씠 �뾾�뒿�땲�떎.", + "noRecord": "湲곕줉�씠 �뾾�뒿�땲�떎.", + "noComments": "�뙎湲��씠 �뾾�뒿�땲�떎.", + "noAttachedFile": "泥⑤��맂 �뙆�씪�씠 �뾾�뒿�땲�떎.", + "noValueEntered": "�엯�젰�븳 媛믪씠 �뾾�뒿�땲�떎.", + "noValueSelected": "�꽑�깮�븳 媛믪씠 �뾾�뒿�땲�떎.", + "writeWaring2": "<li>�젣紐� 而щ읆�� 理쒕� 300湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.</li><li>�궡�슜 而щ읆�� 理쒕� 5000湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.</li><li>�봽濡쒖젥�듃 而щ읆�� �봽濡쒖젥�듃 �궎瑜� �엯�젰�빐�빞 �빀�땲�떎.<dl><dt>�봽濡쒖젥�듃 �궎�뒗 �봽濡쒖젥�듃 紐⑸줉�뿉�꽌 �솗�씤�븷 �닔 �엳�뒿�땲�떎.</dt></dl></li><li>�쑀�삎 而щ읆�� �씪媛� 而щ읆 紐낆쓣 �엯�젰�빐�빞 �빀�땲�떎.<dl><dt>�쑀�삎 紐낆� �쑀�삎 紐⑸줉�뿉�꽌 �솗�씤�븷 �닔 �엳�뒿�땲�떎.</dt></dl></li><li>�슦�꽑�닚�쐞 而щ읆�� �궙�쓬, 蹂댄넻, �넂�쓬 以묒뿉�꽌 1媛쒕쭔 �엯�젰�빐�빞 �빀�땲�떎.</li><li>以묒슂�룄 而щ읆�� �궙�쓬, 蹂댄넻, �떖媛� 以묒뿉�꽌 1媛쒕쭔 �엯�젰�빐�빞 �빀�땲�떎.</li><li>�떞�떦�옄�뒗 �씠硫붿씪濡� 吏��젙�븷 �닔 �엳�뒿�땲�떎.<dl><dt>�뿬�윭 �떞�떦�옄瑜� 吏��젙�븯�젮硫� #�쑝濡� 援щ텇�븯�뿬 �벑濡앺븷 �닔 �엳�뒿�땲�떎.</dt><dt>ex) wisestoneowl@gmail.com#support@wisestone.kr </dt><dt>�빐�떦 �떞�떦�옄媛� �벑濡앺븯�젮�뒗 �씪媛먯쓽 �봽濡쒖젥�듃�뿉 李몄뿬�븯怨� �엳�뼱�빞 �빀�땲�떎.</dt></dl></li><li>�떆�옉�씪�� �떎�쓬怨� 媛숈� �삎�떇�쑝濡� �엯�젰�빐�빞 �빀�땲�떎.<dl><dt>�궇吏� �엯�젰 媛� 寃곌낵 2018-11-22 10:30:00 AM O </dt></dl></li><li>J 而щ읆遺��꽣�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶 �엯�땲�떎. �썝�븯�뒗 �븘�뱶 媛믪쓣 �엯�젰�빐�빞 �빀�땲�떎.<dl><dt>�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶媛� 臾몄옄�뿴 �엯�젰 �븘�뱶�씪 寃쎌슦 理쒕� 100湲��옄源뚯� �엯�젰 媛��뒫�빀�땲�떎.</dt><dt>�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �떎以� �꽑�깮 �븘�뱶硫� #瑜� �궗�슜�븯�뿬 �뿬�윭 媛믪쓣 �엯�젰�븷 �닔 �엳�뒿�땲�떎.</dt><dt>ex) �샃�뀡 媛믪씠 怨좎뼇�씠, 媛뺤븘吏�, �넗�겮�씪 寃쎌슦 怨좎뼇�씠�� �넗�겮瑜� 媛믪쑝濡� �젙�븯湲� �쐞�빐�꽌�뒗 <span class=\"fc-blue\">怨좎뼇�씠#�넗�겮</span>�� 媛숈씠 �엯�젰�빐�빞 �빀�땲�떎. </dt></dl></li>", + "color": "�깋�긽", + "activityLogs": "�솢�룞 �궡�뿭", + "updatableStatus": "蹂�寃� 媛��뒫�븳 �긽�깭", + "testCase": "�뀒�뒪�듃 耳��씠�뒪", + "updateStatus": "�긽�깭 蹂�寃�", + "tcmProject": "�뀒�뒪�듃 耳��씠�뒪 愿�由� �봽濡쒖젥�듃", + "btsProject": "�씪媛� 愿�由� �봽濡쒖젥�듃", + "projectName": "�봽濡쒖젥�듃紐�", + "projectNone": "�봽濡쒖젥�듃�뾾�쓬", + "totalProject": "�쟾泥� �봽濡쒖젥�듃", + "parentProject": "�긽�쐞 �봽濡쒖젥�듃", + "setParticipatingInProject": "�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �궗�슜�옄瑜� �꽕�젙�븯�떗�떆�삤.", + "noUpdatedStatus": "蹂�寃쏀븷 �닔 �엳�뒗 �긽�깭媛� �뾾�뒿�땲�떎.", + "wait": "��湲�", + "progress": "吏꾪뻾", + "end": "醫낅즺", + "choose": "�꽑�깮�븯�꽭�슂.", + "stringField": "臾몄옄�뿴 �븘�뱶", + "multipleSelectionField": "�떎以� �꽑�깮 �븘�뱶", + "singleSelectionField": "�떒�씪 �꽑�깮 �븘�뱶", + "detailInformation": "�긽�꽭 �젙蹂�", + "beginEnglishTheProject": "�봽濡쒖젥�듃 �궎�뒗 �쁺臾몄쑝濡� �떆�옉�빐�빞�빀�땲�떎.", + "least3Characters": "理쒖냼 3湲��옄�씠�긽 �엯�젰�빐�빞 �빀�땲�떎.", + "upTo10Characters": "理쒕� 10湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.", + "upTo20Characters": "理쒕� 20湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.", + "upTo15Characters": "理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.", + "upTo50Characters": "理쒕� 50湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.", + "upTo100Characters": "理쒕� 100湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.", + "profile": "�봽濡쒗븘", + "profilePicture": "�봽濡쒗븘 �궗吏�", + "thisWeek": "�씠踰� 二�", + "lastWeek": "吏��궃 二�", + "last7Days": "理쒓렐 7�씪", + "thisMonth": "�씠踰� �떖", + "lastMonth": "吏��궃 �떖(1�씪~留먯씪)", + "last30Days": "理쒓렐 30�씪", + "directInput": "吏곸젒�엯�젰", + "pleaseEnterComments": "�뙎湲��쓣 �엯�젰�븯�꽭�슂...", + "overallIssueHandlingStatus": "�쟾泥� �씪媛� 泥섎━�쁽�솴", + "emailCannotBeChanged": "�씠硫붿씪�� 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.", + "companyInformation": "(二�)���씠利덉뒪�넠<br/>�궗�뾽�옄 �벑濡앸쾲�샇 : 220-87-50221 <span>|</span> �넻�떊 �뙋留� 踰덊샇 : 2017-�꽌�슱�꽌珥�-0418 <span>|</span> ���몴�씠�궗 : �씠�쁺�꽍 <br/>蹂몄궗 : �꽌�슱�듅蹂꾩떆 �꽌珥덇뎄 媛뺣궓��濡� 291 �궓媛뺣퉴�뵫 6痢�", + "companyInformation2": "(二�)���씠利덉뒪�넠 <span>|</span> �궗�뾽�옄 �벑濡앸쾲�샇: 220-87-50221 <span>|</span> �넻�떊 �뙋留� 踰덊샇 : 2017-�꽌�슱�꽌珥�-0418 <span>|</span> ���몴�씠�궗 �씠�쁺�꽍<br/>蹂몄궗 : �꽌�슱�듅蹂꾩떆 �꽌珥덇뎄 媛뺣궓��濡� 291 �궓媛뺣퉴�뵫 6痢� <!--<span>|</span> ���몴�쟾�솕 02-6257-5958 --><span>|</span> E-mail: <a href=\"mailto:supportowl@wisestone.kr\">supportowl@wisestone.kr </a><br/><small>CopyRight WISESTONE All rights reserved.</small>", + "noImage": "泥⑤��맂 �씠誘몄�媛� �뾾�뒿�땲�떎.", + "failedLanguageChange": "�뼵�뼱 蹂�寃� �떎�뙣", + "notSelectedLanguage": "�뼵�뼱 �꽑�깮�씠 �릺吏� �븡�븯�뒿�땲�떎.", + "exceedsMaximumUsersWorkspace": "�뾽臾� 怨듦컙 理쒕� �궗�슜�옄 珥덇낵", + "deleteParticipatingWorkspaceReminder": "李몄뿬 �뾽臾� 怨듦컙 �궘�젣 �븣由�", + "failedToUpdateParticipatingSessions": "李몄뿬 �꽭�뀡 �뾽�뜲�씠�듃 �떎�뙣", + "disableParticipationWorkspace": "李몄뿬 �뾽臾� 怨듦컙 鍮꾪솢�꽦�솕 �븣由�", + "disableParticipationWorkspaceMessage": "�쁽�옱 �씠�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�뿉�꽌 �젣�쇅�릺�뿀�뒿�땲�떎.", + "alertsAboutSystem": "�떆�뒪�뀥 �븣由� �젙蹂�", + "newAlert": "�깉濡쒖슫 �븣由쇱씠 �솕�뒿�땲�떎.", + "pleaseWait": "�옞�떆留� 湲곕떎�젮二쇱꽭�슂...", + "createIssue": "�씪媛� �깮�꽦", + "updateIssue": "�씪媛� 蹂�寃�", + "deleteIssue": "�씪媛� �궘�젣", + "updateTitle": "�젣紐⑹씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateContent": "�궡�슜�씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateProject": "�봽濡쒖젥�듃媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateSeverity": "以묒슂�룄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updatePriority": "�슦�꽑�닚�쐞媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateHasStatus": "�긽�깭媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateHasStatusReservation": "�씪媛� 諛쒖깮 �삁�빟�씪�씠 �릺�뼱 �긽�깭媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateWorkflowNotExist": "蹂�寃쎈맂 �썙�겕�뵆濡쒖슦�뿉�꽌 �긽�깭媛� 議댁옱�븯吏� �븡�븘 �씪媛먯쓽 �긽�깭媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateIssueType": "�씪媛� �쑀�삎�씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updatePeriod": "湲곌컙�씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "unspecified": "誘몄��젙", + "updateAssignee": "�떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "none": "�뾾�쓬", + "updateAttachment": "泥⑤� �뙆�씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "deleteAttachment": "泥⑤� �뙆�씪�씠 �궘�젣�릺�뿀�뒿�땲�떎.", + "registerAttachment": "泥⑤� �뙆�씪�씠 �벑濡앸릺�뿀�뒿�땲�떎.", + "updateCustomField": "�궗�슜�옄 �젙�쓽 �븘�뱶媛� 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateIssueCustomField": "�궗�슜�옄 �젙�쓽 �븘�뱶 �샃�뀡 媛믪씠 蹂�寃쎈릺�뼱 �씪媛먯쓽 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "updateIssueCustomFieldType": "�궗�슜�옄 �젙�쓽 �븘�뱶 �쑀�삎�씠 蹂�寃쎈릺�뼱 �씪媛먯쓽 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", + "continue": "怨꾩냽�븯湲�", + "failedToUserListLookUp": "�궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣", + "failedToProjectListLookUp": "�봽濡쒖젥�듃 紐⑸줉 議고쉶 �떎�뙣", + "failedToWorkflowListLookUp": "�썙�겕�뵆濡쒖슦 紐⑸줉 議고쉶 �떎�뙣", + "failedToIssueListLookUp": "�씪媛� 紐⑸줉 議고쉶 �떎�뙣", + "title": "�젣紐�", + "number": "踰덊샇", + "m": "�썡", + "d": "�씪", + "emptyUser": "�꽑�깮�븷 �닔 �엳�뒗 �궗�슜�옄媛� �뾾�뒿�땲�떎.", + "emptyProject": "�꽑�깮�븷 �닔 �엳�뒗 �봽濡쒖젥�듃媛� �뾾�뒿�땲�떎.", + "emptyIssue": "�꽑�깮�븷 �닔 �엳�뒗 �씠�뒋媛� �뾾�뒿�땲�떎.", + "department" : "遺��꽌", + "level" : "�궗�슜�옄 �벑湲�" + }, + "tasks": { + "agileBoardTitle": "移몃컲 蹂대뱶" + }, + "gantt": { + "chartTitle": "���엫�씪�씤" + }, + "calendar": { + "calendarTitle": "罹섎┛�뜑" + } +} \ No newline at end of file diff --git a/src/main/webapp/i18n/vi/global.json b/src/main/webapp/i18n/vi/global.json new file mode 100644 index 0000000..30ec46c --- /dev/null +++ b/src/main/webapp/i18n/vi/global.json @@ -0,0 +1,711 @@ +{ + "dashboard" : { + "downloadToImage" : " download h챙nh 梳즢h v沼�", + "downloadToExcel" : " t沼� t梳즜 v沼�", + "remainedIssue" : "v梳쩸 휃沼� c챵n t沼뱊 l梳죍", + "delayedIssue" : "v梳쩸 휃沼� c챵n t沼뱊 t梳죍 ch梳춎 tr沼�", + "allocatedIssue" : "v梳쩸 휃沼� 휃튼沼즓 chia ra", + "registeredIssue" : "v梳쩸 휃沼� 휃찾 휃훱ng k첵", + "unallocatedIssue" : "v梳쩸 휃沼� Nam M沼�", + "completionIssue" : "v梳쩸 휃沼� ho횪n th횪nh", + "processingRate" : "t沼� l沼� x沼� l첵", + "dailyAverage" : "b챙nh qu창n m沼뾦 ng횪y", + "inProgressStatusOfProject" : "T챙nh h챙nh d沼� 찼n 휃ang 휃튼沼즓 ti梳퓆 h횪nh", + "progressProject" : "D沼� 찼n s沼� ti梳퓆 h횪nh", + "issueAll" : "v梳쩸 휃沼� t沼븂g th沼�", + "projectProgress" : "t沼� l沼� th沼켧 hi沼뇆 d沼� 찼n", + "admin" : "Qu梳즢 tr沼� vi챗n", + "progressPercent" : "t沼� l沼� th沼켧 hi沼뇆", + "teamMember" : "th횪nh vi챗n trong nh처m", + "assignedToMeIssue" : "M沼셳 v梳쩸 휃沼� sanh l沼즜 v沼쌻 t척i", + "assignedTodayIssue" : "M沼셳 tin t沼쯢 휃튼沼즓 chia ra h척m nay", + "progressingIssue" : "M沼셳 trong nh沼칗g v梳쩸 휃沼� 휃ang 휃튼沼즓 ti梳퓆 h횪nh", + "issueName" : "T챗n v梳쩸 휃沼�", + "managementRisk" : "Qu梳즢 l첵 r沼쬲 ro", + "updateIssueAndStatusUpdate" : "M沼셳 danh s찼ch c찼c v梳쩸 휃沼� d튼沼쓓g nh튼 c처 r沼쬲 ro trong vi沼놻 thay 휃沼뷼 c찼c v梳쩸 휃沼�, ch梳쿻g h梳죒 nh튼 thay 휃沼뷼 c찼c staff th튼沼쓓g xuy챗n.", + "reversalStatusUpdate" : "thay 휃沼뷼 tr梳죒g th찼i", + "reversalAssigneeUpdate" : "hay thay 휃沼뷼 ng튼沼쓎 ph沼� tr찼ch", + "division" : "s沼� ph창n chia", + "registeredByMeIssue" : "T챙nh h챙nh l횪 v梳쩸 휃沼� m횪 t척i 휃찾 휃훱ng k첵,", + "registeredTodayIssue" : "C창u chuy沼뇆 휃찾 휃훱ng k챠 h척m nay", + "delayingIssue" : "v梳쩸 휃沼� 휃ang ch沼� 휃沼즜", + "delayDate" : "ng횪y h沼셢", + "statusOfIssues" : "hi沼뇆 t梳죍 v梳쩸 휃沼� theo t沼쳌g tr梳죒g th찼i", + "doesNotExistWorkflow" : "kh척ng c처 Quy tr챙nh l횪m vi沼놻.", + "progressByMember" : "t沼멵 휃沼� theo t沼쳌g th횪nh vi챗n", + "assignedIssue" : "V梳쩸 휃沼� ph沼� tr찼ch", + "delaying" : "휃ang tr챙 ho찾n", + "myIssueStatus" : "Hi沼뇆 tr梳죒g V梳쩸 휃沼� c沼쬪 t척i", + "complete" : "Ho횪n th횪nh", + "registration" : "휂훱ng k첵", + "assigned" : "ph沼� tr찼ch", + "failedDashboardWidgetLookup" : "L튼沼즨 t챙m ki梳퓅 tr챗n v찼n tr튼沼즨 th梳쩿 b梳죍", + "failedToTotalIssueHandling" : "T챙nh h챙nh x沼� l첵 v梳쩸 휃沼� to횪n di沼뇆 c크ng th梳쩿 b梳죍", + "notSupportedImageDownload" : "V梳쳌 ch튼a t梳즜 梳즢h v沼�", + "ieNotSupportedImageDownload" : "Trong AI, kh척ng h沼� tr沼� t梳즜 h챙nh 梳즢h.", + "overallIssueHandlingStatusPNG" : "T챙nh h챙nh x沼� l첵 to횪n b沼� v梳쩸 휃沼�.png", + "excludeWorkspaceParticipation" : "Ngo梳죍 tr沼� kh척ng gian l횪m vi沼놻", + "failedToListOfPendingIssuesLookup" : "Danh s찼ch l튼沼즨 truy c梳춑 v梳쩸 휃沼� 휃ang b沼� tr챙 ho찾n th梳쩿 b梳죍", + "statusOfIssuesPNG" : "hi沼뇆 t梳죍 v梳쩸 휃沼� theo t沼쳌g tr梳죒g th찼i.png", + "failedToCheckProgressMember" : "l튼沼즨 view cho t沼쳌g th횪nh vi챗n th梳쩿 b梳죍", + "failedToListOfIssueAllocatedLookup" : "Th梳쩿 b梳죍 trong danh s찼ch l튼沼즨 view cho m챙nh", + "failedToListOfIssueRegisteredLookup" : "Danh s찼ch c찼c v梳쩸 휃沼� m횪 t척i 휃찾 휃훱ng k첵 th梳쩿 b梳죍", + "failedToRiskManagementIssueLookup" : "Th梳쩿 b梳죍 trong vi沼놻 t챙m ki梳퓅 c찼c v梳쩸 휃沼� li챗n quan 휃梳퓆 qu梳즢 l첵 r沼쬲 ro", + "issueTypeStandIssues" : "T챙nh h챙nh hi沼뇆 t梳죍 c沼쬪 m沼뾦 v梳쩸 휃沼�", + "workspaceExpire1" : "N퉤i l횪m vi沼놻 휃튼沼즓 s沼� d沼쩸g", + "workspaceExpire2" : "th沼쓎 gian s沼� d沼쩸g c沼쬪", + "workspaceExpire3" : "C챵n c척ng vi沼놻.", + "workspaceExpire4" : "Th沼쓎 gian s沼� d沼쩸g c沼쬪", + "extensionServicePeriod" : "gia h梳죒 th沼쓎 gian s沼� d沼쩸g" + }, + + "managementWorkspace" : { + "managementWorkspace" : "Qu梳즢 l첵 Kh척ng gian l횪m vi沼놻", + "myWorkspace" : "Qu梳즢 l첵 Kh척ng gian l횪m vi沼놻", + "workspaceInformation" : "Th척ng tin Kh척ng gian l횪m vi沼놻", + "serviceStatus" : "Tr梳죒g th찼i d沼땉h v沼�.", + "numberOfUsers" : "S沼� l튼沼즢g ng튼沼쓎 s沼� d沼쩸g", + "pleaseEnterNumberOfUsers" : "H찾y nh梳춑 s沼� ng튼沼쓎 d첫ng.", + "inviteUser" : "M沼쓎 ng튼沼쓎 s沼� d沼쩸g", + "invite" : "M沼쓎", + "emailAddress" : "휂沼땇 ch沼� Email", + "useStorageSize" : "dung l튼沼즢g s沼� d沼쩸g", + "usageTraffic" : "l튼u l튼沼즢g s沼� d沼쩸g", + "duration" : "Th沼쓎 h梳죒 s沼� d沼쩸g", + "inUse" : "휂ang s沼� d沼쩸g", + "expiredUse" : "s沼� m찾n h梳죒 s沼� d沼쩸g", + "projectToInvolved" : "D沼� 찼n gi첬p tham gia", + "daysLeft" : " 창m b梳춗)", + "pay" : "thanh to찼n", + "paymentInformation" : "th척ng tin thanh to찼n", + "cardNumber" : "m찾 s沼� th梳�", + "FirstTwoDigits" : "gh梳� tr튼沼쌵", + "validity" : "th沼쓎 gian hi沼뇎 l沼켧", + "dateOfOnesBirth" : "ng횪y sinh", + "exampleBirthInput" : "H찾y nh梳춑 ng횪y th찼ng n훱m sinh v횪o 6 ch沼�.", + "brn" : "(M찾 s沼� 휃훱ng k첵 kinh doanh)", + "agreeMyPersonalInformation" : "T척i 휃沼뱊g 첵 cung c梳쩺 th척ng tin c찼 nh창n cho doanh nghi沼뇈 d沼땉h v沼� thanh to찼n.", + "termsAndConditions" : "B梳죒 ph梳즜", + "agreeToMakeThePayment" : "휃沼뱊g 첵 v沼쌻 휃i沼걏 kho梳즢 s沼� d沼쩸g th챙 m沼쌻 thanh to찼n 휃튼沼즓.", + "productInformation" : "th척ng tin h횪ng h처a", + "paymentType" : "lo梳죍 thanh to찼n", + "paymentMethod" : "ph튼퉤ng ti沼뇆 thanh to찼n", + "paymentDate" : "Ng횪y thanh to찼n", + "monthly" : "H횪ng th찼ng", + "yearly" : "H횪ng n훱m", + "creditCard" : "th梳� t챠n d沼쩸g", + "paymentAmount" : "s沼� ti沼걆 thanh to찼n", + "includesVAT" : "(bao h횪m VAT)", + "regularPayment" : "Tr梳� ti沼걆 휃沼땙h k沼�", + "regularPaymentInformation" : "th척ng tin thanh to찼n 휃沼땙h k沼�", + "paymentScheduledAmount" : "kho梳즢 ti沼걆 d沼� 휃沼땙h thanh to찼n", + "priceInformation" : "Th척ng tin Gi찼 c梳�", + "1to10People" : "1 ~ 10 ng튼沼쓎", + "11orMore" : "V튼沼즨 qu찼 11 ng튼沼쓎~", + "perPerson" : "1ng튼沼쓎 훱n", + "cancelRegularPayment" : "h沼쭃 b沼� thanh to찼n 휃沼땙h k沼�", + "updateRegularPayment" : "thay 휃沼뷼 thanh to찼n 휃沼땙h k沼�", + "joinStatus" : "tr梳죒g th찼i tham gia", + "paymentCompleted" : "Thanh to찼n xong r沼밿.", + "scheduleUserWaitingToJoin" : "s沼� 휃梳톞 ch沼� cho ng튼沼쓎 s沼� d沼쩸g ch沼� 휃沼즜", + "schedulePeopleWaitingToParticipate" : "Trong tr튼沼쓓g h沼즤 s沼� ng튼沼쓎 d첫ng thanh to찼n gi梳즡, b梳죒 c처 th沼� 휃梳톞 tr튼沼쌵 nh沼칗g ng튼沼쓎 s沼� d沼쩸g trong tr梳죒g th찼i ch沼� 휃沼즜.", + "privacyPolicyAndTermsOfUse" : "ph튼퉤ng ch창m x沼� l첵 th척ng tin c찼 nh창n v횪 휃i沼걏 kho梳즢 s沼� d沼쩸g", + "termsOfUse" : "휂i沼걏 kho梳즢 s沼� d沼쩸g", + "termsOfUse1" : "휂i沼걏 1 (M沼쩭 휃챠ch)<br>휂i沼걏 kho梳즢 n횪y li챗n quan 휃梳퓆 s沼� d沼쩸g d沼땉h v沼� c沼쬪 OWL (Trang gi梳즜 ph찼p OWL v횪 OWL-ITS d튼沼쌻 휃창y g沼뛦 chung l횪 �쏡沼땉h v沼� OWL ��), 휃튼沼즓 cung c梳쩺 b沼웙 C척ng ty Wisestone (g沼뛦 t梳칣 l횪 �쏞척ng ty��); v沼쌻 m沼쩭 휃챠ch quy 휃沼땙h c찼c h梳죒g m沼쩭 c梳쬷 thi梳퓍 nh튼 th沼� t沼쩭 v횪 휃i沼걏 ki沼뇆 s沼� d沼쩸g, ngh칫a v沼� v횪 tr찼ch nhi沼뇅 gi沼칊 ng튼沼쓎 d첫ng v횪 C척ng ty. <br> <br>휂i沼걏 2 (휂沼땙h ngh칫a)<br>휂沼땙h ngh칫a v횪 thu梳춗 ng沼� s沼� d沼쩸g trong 휂i沼걏 kho梳즢 n횪y nh튼 sau. <br>(1) \"D沼땉h v沼�\" l횪 to횪n b沼� D沼땉h v沼� li챗n quan 휃梳퓆 D沼땉h v沼� OWL m횪 ng튼沼쓎 d첫ng c처 th沼� s沼� d沼쩸g, kh척ng li챗n quan 휃梳퓆 thi梳퓍 b沼� 휃梳쬾 cu沼멼 (bao g沼뱈 c梳� PC, c찼c thi梳퓍 b沼� c처 d창y v횪 kh척ng d창y nh튼 di d沼셬g v.v). <br>(2) �쏰WL-ITS�� l횪 n沼걆 t梳즢g m횪 ng튼沼쓎 d첫ng c처 th沼� chia s梳� v횪 qu梳즢 l첵 t횪i li沼뇎 휃沼� qu梳즢 l첵 c척ng vi沼놻 t沼몋 h퉤n.<br>(3) \"Ng튼沼쓎 d첫ng\" l횪 kh찼ch h횪ng truy c梳춑 v횪o �쏡沼땉h v沼β�� c沼쬪 C척ng ty v횪 휃沼뱊g 첵 v沼쌻 휂i沼걏 kho梳즢 휃沼� s沼� d沼쩸g �쏡沼땉h v沼β�� 휃튼沼즓 cung c梳쩺 b沼웙 �쏞척ng ty�� . <br>(4) \"M梳춗 kh梳쯷\" l횪 s沼� k梳퓍 h沼즤 c찼c k첵 t沼� v횪 s沼� do ng튼沼쓎 d첫ng ch沼뛫 v沼쌻 m沼쩭 휃챠ch 휃梳즡 b梳즣 t챠nh b梳즣 m梳춗 v횪 x찼c nh梳춏 r梳켷g 휃처 l횪 ng튼沼쓎 d첫ng, kh沼썂 v沼쌻 휃沼땇 ch沼� E-mail do ng튼沼쓎 d첫ng cung c梳쩺.<br>(5) �쏷h횪nh vi챗n�� l횪 ng튼沼쓎 휃찾 휃튼沼즓 x챕t duy沼뇍 휃沼� s沼� d沼쩸g OWL-ITS b沼웙 m沼셳 th횪nh vi챗n kh찼c ho梳톍 s沼� d沼쩸g OWL-ITS d튼沼쌻 s沼� qu梳즢 l첵 c沼쬪 m沼셳 th횪nh vi챗n n횪o 휃처. T첫y v횪o 휃i沼걏 ki沼뇆 휃훱ng k챠 m횪 th횪nh vi챗n 휃튼沼즓 ph창n chia th횪nh Qu梳즢 tr沼� vi챗n hay ng沼テ죍 d첫ng th척ng th튼沼쓓g. Trong tr튼沼쓓g h沼즤 n梳퓎 b沼� qu梳즢 l첵 b沼웙 ng튼沼쓎 kh찼c (qu梳즢 tr沼� vi챗n) th챙 khi 휃처 th횪nh vi챗n s梳� 휃처ng vai tr챵 l횪 ng튼沼쓎 d첫ng th척ng th튼沼쓓g. <br>(6) \"Qu梳즢 tr沼� vi챗n\" l횪 ng튼沼쓎 thay m梳톞 cho t梳쩿 c梳� th횪nh vi챗n s沼� d沼쩸g h沼� th沼몁g c처 th沼� h沼쭃 b沼� c찼c 휃i沼걏 kho梳즢 s沼� d沼쩸g c沼쬪 OWL-ITS, v횪 c크ng l횪 ng튼沼쓎 c처 quy沼걆 thao t찼c t梳쩿 c梳� c찼c t챠nh n훱ng qu梳즢 tr沼� c沼쬪 OWL-ITS.<br>(7) \"Th횪nh vi챗n th튼沼쓓g\" l횪 ng튼沼쓎 s沼� d沼쩸g th척ng th튼沼쓓g v횪 kh척ng c처 c찼c quy沼걆 qu梳즢 tr沼� h沼� th沼몁g. <br>(8) �쏷횪i kho梳즢�� 휃튼沼즓 t梳죓 t沼� 휃沼땇 ch沼� Email v횪 m梳춗 kh梳쯷 l횪 b梳칣 bu沼셛 휃沼멼 v沼쌻 ng튼沼쓎 d첫ng OWL-ITS, ho梳톍 l횪 t횪i kho梳즢 c沼쬪 c찼c d沼땉h v沼� kh찼c 휃튼沼즓 li챗n k梳퓍 휃梳퓆 휃沼� s沼� d沼쩸g d沼땉h v沼� c沼쬪 OWL-ITS.<br>(9) \"Kh척ng gian l횪m vi沼놻\" ngh칫a l횪 n퉤i 휃沼� li챗n k梳퓍 v沼쌻 T횪i kho梳즢 d沼땉h v沼� 휃튼沼즓 t梳죓 휃沼� s沼� d沼쩸g \"OWL-ITS\". \"T횪i kho梳즢\" c沼쬪 \"Th횪nh vi챗n\" c처 th沼� thu沼셛 nhi沼걏 kh척ng gian l횪m vi沼놻.. <br>(10) �쏝횪i vi梳퓍�� 휃튼沼즓 ng튼沼쓎 d첫ng s沼� d沼쩸g trong �쏡沼땉h v沼β��, l횪 d梳죒g v훱n b梳즢 Th척ng tin nh튼 video, k첵 t沼�, k챠 hi沼뇎; h챙nh 梳즢h; c찼c lo梳죍 t횪i li沼뇎 v횪 c찼c li챗n k梳퓍.<br>(11) �쏶梳즢 ph梳쯯�� l횪 lo梳죍 d沼땉h v沼� m횪 ng튼沼쓎 d첫ng l沼켥 ch沼뛫 d沼켥 tr챗n c찼c 휃i沼걏 kho梳즢 휃찾 k챠 k梳퓍 c沼� th沼� v沼쌻 C척ng ty. S梳즢 ph梳쯯 l沼켥 ch沼뛫 c처 th沼� l횪 c찼c phi챗n b梳즢 mi沼꿳 ph챠 m횪 ng튼沼쓎 d첫ng kh척ng c梳쬷 ph梳즜 tr梳� b梳쩿 k챙 m沼셳 kho梳즢 ph챠 n횪o ho梳톍 l횪 c찼c phi챗n b梳즢 m梳쩿 ph챠 휃챵i h沼뢩 ng튼沼쓎 d첫ng ph梳즜 b沼� ti沼걆 mua.<br>(14) �쏷hanh to찼n�� l횪 vi沼놻 ng튼沼쓎 s沼� d沼쩸g s梳� ph梳즜 tr梳� m沼셳 kho梳즢 ti沼걆 cho C척ng ty 휃沼� s沼� d沼쩸g g처i OWL-ITS C�� B梳줟.<br>(15) \"Thanh to찼n 휃沼땙h k沼�\" c처 ngh칫a l횪 ph튼퉤ng th沼쯢 thanh to찼n 휃튼沼즓 th沼켧 hi沼뇆 t沼� 휃沼셬g v횪o m沼셳 ng횪y c沼� 휃沼땙h 휃찾 휃튼沼즓 梳쩸 휃沼땙h 휃沼� s沼� d沼쩸g g처i C�� B梳줟. <br>(16) �쏷hanh to찼n ngay l梳춑 t沼쯢�� l횪 ph튼퉤ng th沼쯢 thanh to찼n m沼셳 l梳쬷 휃沼� thanh to찼n ngay cho t횪i kho梳즢 ng튼沼쓎 d첫ng m沼쌻 휃튼沼즓 th챗m v횪o.<br> <br>휂i沼걏 3 (C척ng b沼� v횪 ch沼뎝h s沼춁 휃i沼걏 kho梳즢)<br>(1) C척ng ty cung c梳쩺 c찼c b횪i vi梳퓍 li챗n quan 휃梳퓆 c찼c 휂i沼걏 kho梳즢 s沼� d沼쩸g 沼� m횪n h챙nh 휃梳쬾 ti챗n c沼쬪 d沼땉h v沼� OWL 휃沼� ng튼沼쓎 d첫ng c처 th沼� d沼� d횪ng tham kh梳즣. <br>(2) C척ng ty s梳� c梳춑 nh梳춗 c찼c 휂i沼걏 kho梳즢 s沼� d沼쩸g ph첫 h沼즤 v沼쌻 c찼c lu梳춗 ban h횪nh n梳퓎 c梳쬷 thi梳퓍. <br>(3) Trong tr튼沼쓓g h沼즤 c찼c 휂i沼걏 kho梳즢 s沼� d沼쩸g 휃튼沼즓 ch沼뎝h s沼춁, C척ng ty s梳� ghi r천 l챠 do s沼춁 휃沼뷼 v횪 ng횪y 찼p d沼쩸g, th척ng b찼o tr튼沼쌵 15 ng횪y tr튼沼쌵 ng횪y 찼p d沼쩸g tr챗n b梳즢g th척ng b찼o d沼땉h v沼� OWL c첫ng v沼쌻 휃i沼걏 kho梳즢 hi沼뇆 t梳죍. V沼쌻 tr튼沼쓓g h沼즤 휃i沼걏 kho梳즢 s沼춁 휃沼뷼 c처 n沼셢 dung g창y b梳쩿 l沼즜 cho ng튼沼쓎 d첫ng, c척ng ty ph梳즜 th척ng b찼o r천 r횪ng 휃梳퓆 ng튼沼쓎 s沼� d沼쩸g tr튼沼쌵 30 ng횪y b梳켷g c찼c h챙nh th沼쯢 휃i沼뇆 t沼� nh튼 g沼춊 email 휃梳퓆 휃沼땇 ch沼� email 휃찾 휃훱ng k챠, th척ng b찼o tr챗n c沼춁 s沼� b梳춗 l챗n khi 휃훱ng nh梳춑.<br>(4) Khi C척ng ty th척ng b찼o 휃i沼걏 kho梳즢 s沼춁 휃沼뷼 nh튼 沼� tr챗n, trong v챵ng 30 ng횪y n梳퓎 ng튼沼쓎 d첫ng kh척ng c처 첵 ki梳퓆 g챙 th챙 s梳� 휃튼沼즓 xem nh튼 휃찾 휃沼뛠 th척ng b찼o v횪 휃沼뱊g 첵 v沼쌻 휃i沼걏 kho梳즢 s沼춁 휃沼뷼.<br>(5) N梳퓎 Th횪nh vi챗n kh척ng 휃沼뱊g 첵 v沼쌻 c찼c 휃i沼걏 kho梳즢 s沼춁 휃沼뷼, C척ng ty kh척ng th沼� 찼p d沼쩸g c찼c 휃i沼걏 kho梳즢 v횪 휃i沼걏 ki沼뇆 휃찾 휃튼沼즓 s沼춁 휃沼뷼, trong tr튼沼쓓g h沼즤 휃처 th횪nh vi챗n c처 th沼� ch梳쩷 d沼쯶 h沼즤 휃沼뱊g. Tuy nhi챗n, n梳퓎 c처 b梳쩿 k沼� tr튼沼쓓g h沼즤 휃梳톍 bi沼뇍 n횪o m횪 c찼c 휃i沼걏 kho梳즢 hi沼뇆 t梳죍 kh척ng th沼� 휃튼沼즓 찼p d沼쩸g, C척ng ty c처 th沼� h沼쭃 h沼즤 휃沼뱊g s沼� d沼쩸g.<br> <br>휂i沼걏 4 (C찼c quy 휃沼땙h kh찼c)<br> C찼c v梳쩸 휃沼� kh척ng 휃튼沼즓 quy 휃沼땙h trong c찼c 휂i沼걏 kho梳즢 s沼� d沼쩸g n횪y 휃튼沼즓 hi沼긳 v횪 di沼꿳 gi梳즜 theo c찼c quy 휃沼땙h c沼쬪 Lu梳춗 khung v沼� Vi沼꿳 th척ng, Lu梳춗 kinh doanh vi沼꿳 th척ng v횪 c찼c lu梳춗 v횪 quy 휃沼땙h kh찼c c처 li챗n quan c沼쬪 c찼c doanh nghi沼뇈 t튼퉤ng t沼�.<br><br>휂i沼걏 5 (K첵 k梳퓍 휂i沼걏 kho梳즢 s沼� d沼쩸g)<br>(1) 휂i沼걏 kho梳즢 s沼� d沼쩸g d沼땉h v沼� OWL 휃튼沼즓 k첵 k梳퓍 v沼쌻 s沼� 휃沼뱊g thu梳춏 c沼쬪 hai b챗n, sau khi ng튼沼쓎 s沼� d沼쩸g mong mu沼몁 tr沼� th횪nh th횪nh vi챗n v횪 휃沼뱊g 첵 v沼쌻 n沼셢 dung c찼c 휃i沼걏 kho梳즢, 휃훱ng k첵 휃沼땇 ch沼� email v횪 m梳춗 kh梳쯷, v횪 c척ng ty ch梳쩺 thu梳춏 b梳켷g vi沼놻 x찼c nh梳춏 s沼� 휃훱ng 휃처 qua 휃沼땇 ch沼� Email. <br>(2) 휂沼땇 ch沼� email 휃찾 d첫ng 휃훱ng k첵 T횪i kho梳즢 kh척ng th沼� C梳춑 nh梳춗.<br>(3) Sau khi 휃훱ng k첵, cho 휃梳퓆 tr튼沼쌵 khi h沼쭃 s沼� d沼쩸g D沼땉h v沼�, b梳쩿 c沼� l첬c n횪o b梳죒 c크ng c처 th沼� 휃훱ng k첵 th챗m th횪nh vi챗n ho梳톍 gia h梳죒 th챗m th沼쓎 gian s沼� d沼쩸g D沼땉h v沼�. <br>�몺 Sau khi 휂i沼걏 kho梳즢 s沼� d沼쩸g h梳퓍 h梳죒, t챠nh n훱ng s沼� d沼쩸g s梳� b沼� h梳죒 ch梳� m沼셳 ph梳쬷. Sau 3 th찼ng, th척ng tin s沼� d沼쩸g D沼땉h v沼� s梳� x처a ho횪n to횪n. <br>(4) C척ng ty c처 th沼� c梳춑 nh梳춗, ng沼쳌g cung c梳쩺, s沼춁 휃沼뷼 to횪n b沼� ho梳톍 m沼셳 ph梳쬷 D沼땉h v沼� 휃튼沼즓 cung c梳쩺 mi沼꿳 ph챠 d沼켥 tr챗n y梳퓎 t沼� c梳쬷 thi梳퓍 cho 휃i沼걏 h횪nh v횪 ch챠nh s찼ch c沼쬪 C척ng ty. Ch첬ng t척i s梳� kh척ng b沼밿 th튼沼쓓g ri챗ng bi沼뇍 cho b梳쩿 k沼� th횪nh vi챗n n횪o khi kh척ng c처 quy 휃沼땙h 휃梳톍 bi沼뇍 trong Lu梳춗 li챗n quan. <br>(5) C척ng ty c처 th沼� kh척ng ch梳쩺 thu梳춏 휃훱ng k첵 cho c찼c tr튼沼쓓g h沼즤 sau ho梳톍 h沼쭃 휂i沼걏 kho梳즢 s沼� d沼쩸g.<br>�몺 Tr튼沼쓓g h沼즤 휃훱ng k첵 th횪nh vi챗n c沼쬪 th횪nh vi챗n 휃찾 t沼쳌g b沼� C척ng ty h沼쭃 휂i沼걏 kho梳즢 s沼� d沼쩸g theo Kho梳즢 3 휂i沼걏 10 trong 휂i沼걏 kho梳즢 n횪y <br>�몼 Tr튼沼쓓g h沼즤 s沼� d沼쩸g Th척ng tin c찼 nh창n c沼쬪 ng튼沼쓎 kh찼c<br>�몾 Tr튼沼쓓g h沼즤 kh척ng 휃i沼걆 Th척ng tin c沼� th沼� trong c찼c h梳죒g m沼쩭 b梳칣 bu沼셛 hay 휃i沼걆 Th척ng tin sai l沼놻h<br>�몿 Tr튼沼쓓g h沼즤 vi ph梳죑 c찼c quy 휃沼땙h C척ng ty 휃沼� ra nh튼 H튼沼썀g d梳쳌 chi ti梳퓍 hay vi ph梳죑 Lu梳춗 li챗n quan<br> <br>(6) C척ng ty c처 th沼� b梳즣 l튼u T횪i kho梳즢 c沼쬪 ng튼沼쓎 휃훱ng k첵 th횪nh vi챗n v沼쌻 c찼c tr튼沼쓓g h沼즤 sau.<br>�몺 Tr튼沼쓓g h沼즤 dung l튼沼즢g D沼땉h v沼� th沼켧 t梳� kh척ng c챵n<br>�몼 Tr튼沼쓓g h沼즤 c처 v梳쩸 휃沼� v沼� k沼� thu梳춗 khi cung c梳쩺 D沼땉h v沼�<br>�몾 Tr튼沼쓓g h沼즤 kh찼c, C척ng ty nh梳춏 휃沼땙h c梳쬷 th챗m y챗u c梳쬾 mang t챠nh t횪i ch챠nh, k沼� thu梳춗<br> <br>휂i沼걏 6 (Qu梳즢 l첵 Th척ng tin th횪nh vi챗n)<br>(1) Th횪nh vi챗n ph梳즜 c처 tr찼ch nhi沼뇅 qu梳즢 l첵 T횪i kho梳즢, M梳춗 kh梳쯷 c沼쬪 m챙nh, kh척ng 휃튼沼즓 cho ng튼沼쓎 th沼� 3 s沼� d沼쩸g. <br>(2) Tr튼沼쓓g h沼즤 th횪nh vi챗n nh梳춏 th梳쪅 T횪i kho梳즢 v횪 M梳춗 kh梳쯷 b沼� 휃찼nh c梳칛 hay ng튼沼쓎 th沼� 3 휃ang s沼� d沼쩸g, ph梳즜 th척ng b찼o ngay 휃梳퓆 C척ng ty v횪 l횪m theo h튼沼썀g d梳쳌 c沼쬪 C척ng ty.<br>(3) V沼쌻 tr튼沼쓓g h沼즤 tr챗n, n梳퓎 th횪nh vi챗n kh척ng th척ng b찼o s沼� th梳춗 휃梳퓆 C척ng ty, hay c처 th척ng b찼o nh튼ng kh척ng l횪m theo h튼沼썀g d梳쳌 c沼쬪 C척ng ty th챙 C척ng ty s梳� kh척ng ch沼땥 tr찼ch nhi沼뇅 v沼쌻 c찼c v梳쩸 휃沼� x梳즭 ra.<br>(4) V沼쌻 t챠nh n훱ng Qu梳즢 l첵 t횪i kho梳즢 trong d沼땉h v沼� OWL, th횪nh vi챗n c처 th沼� xem Th척ng tin c찼 nh창n c沼쬪 m챙nh b梳쩿 c沼� l첬c n횪o v횪 c처 th沼� s沼춁 휃沼뷼. C척ng ty kh척ng ch沼땥 tr찼ch nhi沼뇅 v沼� nh沼칗g b梳쩿 l沼즜 ph찼t sinh do th횪nh vi챗n kh척ng s沼춁 휃沼뷼 Th척ng tin c沼쬪 m챙nh m沼셳 c찼ch ch챠nh x찼c.<br> <br>휂i沼걏 7 (Ngh칫a v沼� c沼쬪 C척ng ty) <br>(1) C척ng ty s梳� n沼� l沼켧 th沼켧 hi沼뇆 c찼c bi沼뇆 ph찼p nh튼 b梳즣 tr챙, ki沼긩 tra v횪 ph沼쩭 h沼밿 c찼c c퉤 s沼� li챗n quan 휃梳퓆 vi沼놻 cung c梳쩺 v횪 b梳즣 m梳춗 c찼c D沼땉h v沼� c沼쬪 OWL 휃沼� 휃梳즡 b梳즣 cung c梳쩺 d沼땉h v沼� li챗n t沼쩭 v횪 沼븂 휃沼땙h <br>(2) 척ng ty kh척ng 휃튼沼즓 ph챕p g沼춊 tin nh梳칗, th척ng b찼o, email mang m沼쩭 휃챠ch qu梳즢g c찼o c처 l沼즜 nhu梳춏 khi ch튼a nh梳춏 휃튼沼즓 s沼� 휃沼뱊g 첵 c沼쬪 th횪nh vi챗n.<br>(3) C척ng ty c沼� g梳칗g b梳즣 v沼� th척ng tin c찼 nh창n c沼쬪 th횪nh vi챗n 휃튼沼즓 thu th梳춑 qua D沼땉h v沼� OWL, kh척ng 휃튼沼즓 ti梳퓍 l沼� ho梳톍 chia s梳� cho b챗n th沼� ba m횪 kh척ng c처 s沼� 휃沼뱊g 첵 tr튼沼쌵 c沼쬪 th횪nh vi챗n. C찼c v梳쩸 휃沼� kh찼c li챗n quan 휃梳퓆 vi沼놻 b梳즣 v沼� th척ng tin c찼 nh창n c沼쬪 th횪nh vi챗n ph梳즜 tu창n theo �쏞h챠nh s찼ch b梳즣 m梳춗 th척ng tin�� 휃찾 휃튼沼즓 Lu梳춗 th척ng tin M梳죒g v횪 c척ng ty ban h횪nh.<br><br>휂i沼걏 8 (Ngh칫a v沼� c沼쬪 Th횪nh vi챗n)<br>(1) Th횪nh vi챗n kh척ng 휃튼沼즓 ph챕p th沼켧 hi沼뇆 c찼c h횪nh vi sau.<br>�몺 휂훱ng k첵 sai th척ng tin khi 휃훱ng k첵 th횪nh vi챗n hay c梳춑 nh梳춗 Th척ng tin th횪nh vi챗n<br>�몼 휂찼nh c梳칛 Th척ng tin c沼쬪 ng튼沼쓎 kh찼c<br>�몾 Ch沼뎝h s沼춁 Th척ng tin do C척ng ty 휃훱ng t梳즜<br>�몿 휂훱ng t梳즜 hay g沼춊 c찼c Th척ng tin n梳켶 ngo횪i Th척ng tin m횪 C척ng ty quy 휃沼땙h (nh튼 ch튼퉤ng tr챙nh m찼y t챠nh v.v)<br>�뫀 H횪nh vi vi ph梳죑 b梳즢 quy沼걆, Quy沼걆 s沼� h沼칤 tr챠 tu沼� c沼쬪 C척ng ty v횪 b챗n th沼� 3<br>�뫁 H횪nh vi g창y tr沼� ng梳죍 휃梳퓆 c척ng vi沼놻 hay t沼븂 h梳죍 휃梳퓆 thanh danh c沼쬪 C척ng ty v횪 b챗n th沼� 3<br>�뫂 H횪nh vi 휃훱ng t梳즜, chia s梳� l챗n d沼땉h v沼� OWL th척ng tin c처 tin nh梳칗, h챙nh 梳즢h, 창m thanh khi챗u d창m, b梳죓 l沼켧 hay vi ph梳죑 an ninh v횪 thu梳쬷 phong m沼� t沼쩭 <br>�뫃 H횪nh vi s沼� d沼쩸g d沼땉h v沼� OWL v沼쌻 m沼쩭 휃챠ch l沼즜 nhu梳춏 m횪 kh척ng c처 s沼� 휃沼뱊g 첵 c沼쬪 C척ng ty <br>�뫅 H횪nh vi s沼� d沼쩸g, thu th梳춑 v횪 chia s梳� th척ng tin c沼쬪 ng튼沼쓎 s沼� d沼쩸g D沼땉h v沼� kh찼c m횪 kh척ng c처 s沼� cho ph챕p<br>�뫆 H횪nh vi 휃沼뱊g 첵 cho ng튼沼쓎 kh찼c s沼� d沼쩸g hay cung c梳쩺 th梳� ch梳쩺, cho thu챗, chuy沼긪 nh튼沼즢g, b찼n l梳죍, ph창n ph沼멼, s沼춁 휃沼뷼, sao ch챕p m沼셳 ph梳쬷 c찼c ph梳쬷 m沼걅 trong d沼땉h v沼� OWL m횪 kh척ng c처 s沼� 휃沼뱊g 첵 c沼쬪 C척ng ty. H횪nh vi m척 ph沼뢮g, ph창n t챠ch, ph沼쩭 ch梳� v횪 bi梳퓆 휃沼뷼 kh찼c 휃沼멼 v沼쌻 d沼땉h v沼� OWL nh튼 th沼� nghi沼뇅 m찾 ngu沼뱊 hay thi梳퓍 k梳� ng튼沼즓 c찼c ph梳쬷 m沼걅 <br>�뫇 H횪nh vi s沼� d沼쩸g ph튼퉤ng ph찼p kh찼c ngo횪i H튼沼썀g d梳쳌 c沼쬪 C척ng ty v횪 truy c梳춑 v횪o d沼땉h v沼� OWL<br>�뫉 H횪nh vi chi梳퓅 h沼칤 t챗n mi沼걆 ph沼� OWL kh척ng li챗n quan 휃梳퓆 b梳즢 th창n v횪 l횪m c梳즢 tr沼� s沼� d沼쩸g d沼땉h v沼� OWL c沼쬪 ng튼沼쓎 kh찼c<br>�뫊 H횪nh vi cung c梳쩺 휃沼� th梳� ch梳쩺, th沼첺 k梳�, chuy沼긪 nh튼沼즢g cho ng튼沼쓎 kh찼c quy沼걆 s沼� d沼쩸g 휂i沼걏 kho梳즢 s沼� d沼쩸g, gi梳쩺 ph챕p s沼� d沼쩸g d沼땉h v沼� OWL c沼쬪 m챙nh<br>�뫋 H횪nh vi b梳쩿 ch챠nh hay vi ph梳죑 ph찼p lu梳춗 kh찼c <br> <br>(2) Tr튼沼쓓g h沼즤 th횪nh vi챗n kh척ng tu창n th沼� lu梳춗 hi沼뇆 h횪nh, nh沼칗g 휂i沼걏 kho梳즢 s沼� d沼쩸g n횪y ho梳톍 c찼c h튼沼썀g d梳쳌 chi ti梳퓍, C척ng ty c처 quy沼걆 휃i沼걏 tra h횪nh vi vi ph梳죑 c沼쬪 th횪nh vi챗n, 휃챙nh ch沼� v칫nh vi沼꿳 ho梳톍 t梳죑 th沼쓎 vi沼놻 s沼� d沼쩸g d沼땉h v沼� OWL c沼쬪 th횪nh vi챗n ho梳톍 h梳죒 ch梳� 휃훱ng k첵 l梳죍 th횪nh vi챗n 휃처. Th횪nh vi챗n s梳� ch沼땥 tr찼ch nhi沼뇅 v沼� b梳쩿 k沼� t沼븂 th梳쩿 th척ng tin do vi沼놻 ch梳쩷 d沼쯶 휃처.<br>(3) N梳퓎 th횪nh vi챗n kh척ng truy c梳춑 ho梳톍 휃훱ng nh梳춑 휃沼� s沼� d沼쩸g D沼땉h v沼� trong kho梳즢g th沼쓎 gian 휃튼沼즓 quy 휃沼땙h trong c찼c lu梳춗 li챗n quan, C척ng ty c처 th沼� h沼쭃 b沼� Th척ng tin th횪nh vi챗n ho梳톍 l튼u tr沼� ri챗ng th척ng tin 휃처 sau khi 휃찾 th척ng b찼o cho th횪nh vi챗n c처 li챗n quan th척ng qua c찼c ph튼퉤ng ti沼뇆 nh튼 email 휃훱ng k챠 v沼쌻 OWL. 휂i沼걏 n횪y c처 th沼� d梳쳌 휃梳퓆 vi沼놻 ch梳쩷 d沼쯶 Th沼뢠 thu梳춏 s沼� d沼쩸g n梳퓎 thi梳퓎 th척ng tin c梳쬷 thi梳퓍 휃沼� s沼� d沼쩸g D沼땉h v沼� OWL. <br>(4) Ng튼沼쓎 d첫ng c처 ngh칫a v沼� thanh to찼n c찼c kho梳즢 ph챠 do C척ng ty 휃梳톞 ra d沼켥 tr챗n c찼c 휂i沼걏 kho梳즢 s沼� d沼쩸g n횪y cho c찼c D沼땉h v沼� m梳쩿 ph챠, th횪nh vi챗n ph梳즜 ch沼땥 m沼뛦 tr찼ch nhi沼뇅 휃沼멼 v沼쌻 b梳쩿 k沼� v梳쩸 휃沼� ph찼t sinh t沼� vi沼놻 kh척ng thanh to찼n ph챠 k沼� c梳� c찼c kho梳즢 n沼� li챗n quan 휃梳퓆 vi沼놻 kh척ng thanh to찼n ph챠 n횪y c沼쬪 c척ng ty .<br> <br>휂i沼걏 9 (C梳춑 nh梳춗 v횪 ng沼쳌g D沼땉h v沼�)<br>(1) C척ng ty kh척ng ng沼쳌g n沼� l沼켧 cung c梳쩺 d沼땉h v沼� OWL 365 ng횪y v횪 24 gi沼�. Tuy nhi챗n s梳� ng沼쳌g cung c梳쩺 D沼땉h v沼� t梳죑 th沼쓎 v沼쌻 l챠 do ki沼긩 tra t梳죑 th沼쓎 hay 휃沼땙h k沼� 휃沼� b梳즣 tr챙, tu s沼춁 thi梳퓍 b沼� hay l챠 do t튼퉤ng t沼� kh찼c. V沼쌻 tr튼沼쓓g h沼즤 d沼땉h v沼� OWL Service b沼� ng沼쳌g b沼웙 l챠 do C척ng ty kh척ng d沼� 휃o찼n 휃튼沼즓 tr튼沼쌵, C척ng ty s梳� nhanh ch처ng x찼c 휃沼땙h t챙nh h챙nh ngay l梳춑 t沼쯢 v횪 ph沼쩭 h沼밿 D沼땉h v沼� trong th沼쓎 gian s沼쌿 nh梳쩿. <br>(2) C척ng ty c처 th沼� ng沼쳌g c梳춑 nh梳춗 m沼셳 ph梳쬷 hay to횪n b沼� n沼셢 dung d沼땉h v沼� OWL khi ph찼t sinh nhu c梳쬾 휃i沼걏 ch沼뎝h k沼� thu梳춗 v횪 v梳춏 h횪nh. Tr튼沼쌵 khi ng沼쳌g hay c梳춑 nh梳춗 D沼땉h v沼�, C척ng ty s梳� th척ng b찼o t沼쌻 th횪nh vi챗n 沼� ngay m횪n h챙nh ch챠nh ho梳톍 tr챗n b梳즢g th척ng b찼o d沼땉h v沼� OWL. V沼쌻 c찼c h梳죒g m沼쩭 c梳춑 nh梳춗 hay ng沼쳌g D沼땉h v沼� c처 梳즢h h튼沼웢g quan tr沼뛫g 휃梳퓆 th횪nh vi챗n, ngo횪i th척ng b찼o, C척ng ty ph梳즜 th척ng b찼o r천 r횪ng tr튼沼쌵 30 ng횪y 찼p d沼쩸g b梳켷g c찼c h챙nh th沼쯢 nh튼 Email m횪 th횪nh vi챗n 휃찾 휃훱ng k챠 ho梳톍 沼� c沼춁 s沼� b梳춗 l챗n khi 휃훱ng nh梳춑. <br>(3) C척ng ty c처 th沼� ng沼쳌g cung c梳쩺 OWL Service v沼쌻 c찼c tr튼沼쓓g h沼즤 sau.<br>�몺 Tr튼沼쓓g h沼즤 r沼쬲 ro c梳즢 tr沼� 휃梳퓆 ho梳죜 휃沼셬g c沼쬪 d沼땉h v沼� nh튼 c처 s沼� c沼� kh梳쯰 c梳쩺 t沼� qu沼멵 gia, s沼� c沼� c沼쬪 thi梳퓍 b沼� d沼땉h v沼�, ho梳톍 t梳칌 ngh梳퐊 s沼� d沼쩸g d沼땉h v沼�.<br>�몼 N梳퓎 nh튼 kh척ng th沼� cung c梳쩺 d沼땉h v沼� v沼쌻 l첵 do c척ng ty kh척ng th沼� tr찼nh kh沼뢩<br>�몾 N梳퓎 m沼셳 c척ng ty vi沼꿳 th척ng 휃찾 ng沼쳌g cung c梳쩺 d沼땉h v沼� vi沼꿳 th척ng<br> <br>휂i沼걏 10 (tr튼沼쌵 휃창y) 휃沼� c梳즜 thi沼뇆 h沼� th沼몁g<br>(1) N梳퓎 kh척ng th沼� tr찼nh kh沼뢩 vi沼놻 c梳즜 ti梳퓆 h沼� th沼몁g quy m척 l沼썀, c척ng ty c처 th沼� chuy沼긪 d沼� li沼뇎 c沼쬪 kh찼ch h횪ng l튼u tr沼� trong h沼� th沼몁g hi沼뇆 t梳죍 sang h沼� th沼몁g m沼쌻 m횪 kh척ng c처 s沼� 휃沼뱊g 첵 ho梳톍 th沼� t沼쩭 휃훱ng k첵.<br> <br>휂i沼걏 11 (d沼땉h v沼� k梳퓍 th첬c)<br>(1) Trong gi梳즜 th沼� gia nh梳춑 d沼땉h v沼� c처 m沼셳 gi梳즜 th沼� d沼켥 v횪o quy沼걆 c沼쬪 c척ng ty v횪 s沼� l沼뢮g l梳팷 c沼쬪 c찼c th횪nh vi챗n.<br>(2) Th횪nh vi챗n c처 th沼� s沼� d沼쩸g th沼켧 휃퉤n 휃튼沼즓 cung c梳쩺 b챗n trong d沼땉h v沼� OW b梳쩿 c沼� l첬c n횪o v횪 c처 th沼� xin gi梳즜 th沼� d沼땉h v沼�, v횪 ch沼� khi gi梳즜 th沼� kh척ng gian c척ng vi沼놻 휃튼沼즓 x沼� l첵 theo c찼c s沼� sau.<br>�몺 Ch沼� nh沼칗g ng튼沼쓎 qu梳즢 l첵 c처 th沼� cung c梳쩺 c찼c d沼땉h v沼� trong kh척ng gian l횪m vi沼놻 t튼퉤ng 沼쯰g.<br>�몼 Khi h沼즤 휃沼뱊g trong kh척ng gian l횪m vi沼놻 bao g沼뱈 c梳� t챠nh n훱ng tr梳� ph챠, s梳� t沼� 휃沼셬g h沼쭃 b沼� n훱m thanh to찼n.<br>(2) C척ng ty x沼� l첵 nhanh ch처ng 휃沼� ngh沼� gi梳즜 th沼� h沼즤 휃沼뱊g s沼� d沼쩸g theo quy 휃沼땙h c沼쬪 lu梳춗 li챗n quan. Tuy nhi챗n, trong tr튼沼쓓g h沼즤 thanh to찼n 휃沼땙h k沼� do chu k沼� thanh to찼n 휃튼沼즓 휃梳톞 theo 휃퉤n v沼� th찼ng, vi沼놻 k첵 h沼즤 휃沼뱊g s梳� 휃튼沼즓 x沼� l첵 theo t沼쳌g s沼� sau.<br>�몺 N梳퓎 l횪 휃퉤n v沼� th찼ng th챙 v횪o ng횪y thanh to찼n 휃沼땙h k沼� c沼쬪 th찼ng s梳� x沼� l첵 ph챠 h沼즤 휃沼뱊g d沼땉h v沼�<br>�몼 N梳퓎 m沼셳 ng횪y tr튼沼쌵 khi c찼c th횪nh vi챗n 휃훱ng k첵 h沼즤 휃沼뱊g d沼땉h v沼� 휃梳퓆 phi챗n quy梳퓍 휃沼땙h k沼� h梳죒 v횪o th찼ng th챙 h沼즤 휃沼뱊g s梳� 휃튼沼즓 x沼� l첵 sau th沼쓎 gian s沼� d沼쩸g c챵n l梳죍. V횪 trong th沼쓎 gian s沼� d沼쩸g c챵n l梳죍, c찼c th횪nh vi챗n c처 th沼� s沼� d沼쩸g d沼땉h v沼� OW m沼셳 c찼ch b챙nh th튼沼쓓g.<br>(3) Th횪nh vi챗n 휃ang s沼� d沼쩸g d沼땉h v沼� m梳쩿 ph챠 ph梳즜 tr沼켧 ti梳퓈 x처a c찼c b梳즢g tin m횪 m챙nh vi梳퓍 trong d沼땉h v沼� OWL tr튼沼쌵 khi t沼� b沼� th횪nh vi챗n d沼땉h v沼� OW. Tuy nhi챗n, n梳퓎 kh척ng gian c척ng vi沼놻 do ch챠nh th횪nh vi챗n t沼� ch沼쯢 b沼� h沼쭃 b沼� th챙 ph梳쬷 th沼� th찼ch 휃훱ng k첵 s梳� t沼� 휃沼셬g x처a.<br>(4) Tr튼沼쓓g h沼즤 th횪nh vi챗n kh척ng x처a c찼c b횪i 휃훱ng m횪 l횪 th횪nh vi챗n trong nh처m kh척ng x처a v횪 r첬t kh沼뢩 h沼셢 vi챗n, v챙 v梳춞 c찼c b횪i 휃훱ng s梳� kh척ng b沼� x처a b沼� trong kh척ng gian l횪m vi沼놻 d沼땉h v沼� WW n챗n c梳쬷 ph梳즜 ki沼긩 tra c梳쯰 th梳춏 tr튼沼쌵 khi r첬t kh沼뢩.<br>(5) Khi h沼즤 휃沼뱊g s沼� d沼쩸g b沼� ch梳쩷 d沼쯶, ngo梳죍 tr沼� tr튼沼쓓g h沼즤 c찼c th횪nh vi챗n s沼� h沼칤 th척ng tin nh梳쩿 휃沼땙h c沼쬪 c찼c th횪nh vi챗n theo c찼c b梳즢 tin kh척ng b沼� x처a, ph찼p l沼뇆h x沼� l첵 th척ng tin c찼 nh창n v횪 ph튼퉤ng ph찼p x沼� l첵 th척ng tin c찼 nh창n, t梳쩿 c梳� c찼c th척ng tin c沼쬪 h沼� s梳� b沼� x처a.<br>(6) Tr튼沼쓓g h沼즤 th횪nh vi챗n vi ph梳죑 휃i沼걏 8 휃i沼걏 kho梳즢 th챙 c척ng ty c처 th沼� h沼쭃 b沼� h沼즤 휃沼뱊g s沼� d沼쩸g cho c찼c th횪nh vi챗n t튼퉤ng 沼쯰g Tr튼沼쓓g h沼즤 n횪y, c척ng ty s梳� so梳죒 th梳즣 n沼셢 dung x沼� l첵 v횪 th척ng b찼o tr튼沼쌵 khi r첬t kh沼뢩 ph챵ng 휃沼� g沼춊 e-mail t沼쌻 휃沼땇 ch沼� email c沼쬪 c찼c th횪nh vi챗n.Th횪nh vi챗n c처 th沼� 휃튼a ra 첵 ki梳퓆 ph梳즢 휃沼멼 trong v챵ng 30 ng횪y k沼� t沼� ng횪y nh梳춏 휃튼沼즓 th척ng b찼o c沼쬪 c척ng ty, v횪 c척ng ty s梳� m沼� l梳죍 h沼즤 휃沼뱊g s沼� d沼쩸g d沼땉h v沼� v沼쌻 c찼c th횪nh vi챗n n梳퓎 h沼� th沼첺 nh梳춏 m챙nh th챠ch.<br>휂i沼걏 12 (b梳즣 qu梳즢 t횪i li沼뇎)<br>(1) T횪i li沼뇎 c沼쬪 c찼c th횪nh vi챗n h梳퓍 h梳죒 th沼쓎 h梳죒 h沼즤 휃沼뱊g s梳� 휃튼沼즓 l튼u gi沼� 1 th찼ng t沼� ng횪y h梳퓍 h梳죒 v횪 d沼� li沼뇎 s梳� b沼� x처a n梳퓎 b梳죒 kh척ng mua s梳즢 ph梳쯯 gia h梳죒 trong v챵ng 1 th찼ng.<br>(2) T횪i li沼뇎 c沼쬪 c찼c th횪nh vi챗n 휃ang s沼� d沼쩸g d沼땉h v沼� mi沼꿳 ph챠 s梳� b沼� x처a ngay sau khi gi梳즜 th沼� d沼땉h v沼�.<br>(3) Trong c찼c tr튼沼쓓g h沼즤 sau 휃창y, b梳죒 c처 th沼� ti梳퓈 t沼쩭 l튼u tr沼� t횪i li沼뇎 v沼� c찼c th횪nh vi챗n 휃찾 h沼쭃 휃훱ng k첵 ho梳톍 h梳퓍 th沼쓎 gian h沼즤 휃沼뱊g s沼� d沼쩸g.<br>�몺 N梳퓎 c척ng ty ngh칫 r梳켷g c梳쬷 ph梳즜 c처 b梳즣 휃梳즡 th척ng tin trong m沼셳 kho梳즢g th沼쓎 gian nh梳쩿 휃沼땙h 휃沼� x찼c nh梳춏 h沼� s퉤 nh튼 l횪 ph챠 c沼쬪 c찼c th횪nh vi챗n 휃훱ng k첵 h沼쭃 휃훱ng k첵.<br>(4) Trong s沼� c찼c t횪i li沼뇎 l횪m vi沼놻 휃튼沼즓 s沼� d沼쩸g d沼땉h v沼� 휃튼沼즓 l튼u tr沼� trong v챵ng 6 th찼ng v횪 b梳즢 tin thao t찼c tr튼沼쌵 휃튼沼즓 t沼� 휃沼셬g x처a.<br> <br>휂i沼걏 13 (th척ng b찼o tin)<br>(1) C척ng ty c처 th沼� chuy沼긪 cho c찼c th횪nh vi챗n th척ng qua email ho梳톍 tin nh梳칗 v훱n b梳즢 m횪 c찼c th횪nh vi챗n 휃훱ng k첵 ch沼쯢 n훱ng m沼쌻 c沼쬪 d沼땉h v沼� v횪 c찼c th척ng tin h沼칤 챠ch kh찼c nhau theo s沼� 휃沼뱊g 첵 c沼쬪 h沼�.<br>(2) C척ng ty c처 th沼� g沼춊 c찼c th척ng tin truy沼걆 t梳즜 c梳쬷 thi梳퓍 nh튼 h튼沼썀g d梳쳌 gi梳즜 th沼� cho c찼c th횪nh vi챗n kh척ng li챗n quan 휃梳퓆 s沼� 휃沼뱊g 첵 c沼쬪 c찼c th횪nh vi챗n trong th沼쓎 gian h梳퓍 h梳죒 s沼� d沼쩸g d沼땉h v沼�.<br> <br>휂i沼걏 14 (s沼� d沼쩸g d沼땉h v沼�)<br>(1) N梳퓎 m沼셳 th횪nh vi챗n vi ph梳죑 nhi沼뇅 v沼� c沼쬪 m챙nh ho梳톍 c梳즢 tr沼� ho梳죜 휃沼셬g b챙nh th튼沼쓓g c沼쬪 d沼땉h v沼� OW b梳켷g 휃i沼걏 kho梳즢 n횪y, c척ng ty c처 th沼� d沼쳌g vi沼놻 s沼� d沼쩸g d沼땉h v沼� tr튼沼쌵 m횪 kh척ng 휃튼沼즓 c梳즜 thi沼뇆.C척ng ty c처 th沼� t찼i thi梳퓍 l梳춑 d沼땉h v沼� n梳퓎 l沼즜 nhu梳춏 c沼쬪 c찼c th횪nh vi챗n 휃튼沼즓 cho l횪 휃찾 휃튼沼즓 gi梳즜 quy梳퓍.<br>(2) Th沼쓎 gian ng沼쳌g s沼� d沼쩸g d沼땉h v沼� OWL bao g沼뱈 trong th沼쓎 gian cung c梳쩺 d沼땉h v沼� OWL.<br> <br>휂i沼걏 15 (gi梳즜 th챠ch h횪ng h처a)<br>(1) S梳즢 ph梳쯯 d沼땉h v沼� WW 휃튼沼즓 찼p d沼쩸g cho c찼 nh창n c척ng vi沼놻 휃튼沼즓 t梳죓 ra cho c찼c th횪nh vi챗n kh찼c v횪 c찼c th횪nh vi챗n c처 quy沼걆 qu梳즢 l첵 mua s梳즢 ph梳쯯.<br>(2) N梳퓎 m沼셳 th횪nh vi챗n t梳죓 kh척ng gian l횪m vi沼놻, b梳죒 s梳� gia nh梳춑 FERC l횪 s梳즢 ph梳쯯 mi沼꿳 ph챠 (th沼� nghi沼뇅 v척 ph챠) v횪 c처 th沼� mua h횪ng mi沼꿳 ph챠 n梳퓎 n처 v튼沼즨 qu찼 gi沼쌻 h梳죒 dung l튼沼즢g v횪 s沼� l튼沼즢g th횪nh vi챗n c沼쬪 kh척ng gian.<br>(3) Mong l횪 c찼c b梳죒 s梳� bi梳퓍 Trang web Internet (www.owlsolution.io) T척i 휃훱ng th척ng b찼o l챗n b梳즢g th척ng b찼o.<br> <br>휂i沼걏 16) h沼즤 휃沼뱊g h횪ng h처a<br>(1) H沼즤 휃沼뱊g s梳즢 ph梳쯯 s梳� 휃튼沼즓 k첵 k梳퓍 sau khi ho횪n th횪nh h沼즤 휃沼뱊g b梳켷g c찼ch s沼� d沼쩸g ph튼퉤ng th沼쯢 thanh to찼n 휃튼沼즓 ch沼� 휃沼땙h b沼웙 c척ng ty qu梳즢 l첵, trong s沼� c찼c th횪nh vi챗n kh척ng gian c척ng vi沼놻.<br>(2) Kh척ng gian l횪m vi沼놻 c처 th沼� s沼� d沼쩸g s梳즢 ph梳쯯 t튼퉤ng 沼쯰g t沼� th沼쓎 휃i沼긩 c척ng ty 휃훱ng k첵 s沼� d沼쩸g s梳즢 ph梳쯯. Th沼쓎 휃i沼긩 n횪y c처 ngh칫a l횪 sau khi thanh to찼n c찼c m梳톞 h횪ng c처 thu ph챠 v횪 chuy沼긪 휃沼뷼 s梳즢 ph梳쯯.<br>(3) C찼c 휃퉤n xin thay 휃沼뷼 sang s梳즢 ph梳쯯 m梳쩿 ph챠 휃튼沼즓 th沼켧 hi沼뇆 휃沼뱊g th沼쓎 v沼쌻 ho횪n th횪nh thanh to찼n ti沼걆 s沼� d沼쩸g.<br>(4) Kh척ng th沼� 휃沼뷼 sang s梳즢 ph梳쯯 mi沼꿳 ph챠.<br> <br>휂i沼걏 17) Thanh to찼n<br>Ng횪y khai tr튼퉤ng ph챠 s沼� d沼쩸g d沼땉h v沼� OWL l횪 t沼� th沼쓎 휃i沼긩 c척ng ty 휃훱ng k첵 d沼땉h v沼�.<br>(1) Thanh to찼n chi ph챠 h횪ng ng횪y l횪 1 ng횪y t沼� 00 gi沼� 휃梳퓆 00 gi沼�, th沼쓎 gian b梳칣 휃梳쬾 ho梳톍 th沼쓎 gian kh沼웙 휃沼셬g c沼쬪 cung c梳쩺 d沼땉h v沼� 휃튼沼즓 coi l횪 1 ng횪y<br>(2) Th횪nh vi챗n khi 휃훱ng k첵 ch沼쯢 n훱ng d沼땉h v沼� thanh to찼n c沼쬪 d沼땉h v沼� OWL ch沼� c처 th沼� l沼켥 ch沼뛫 ph튼퉤ng th沼쯢 thanh to찼n 휃沼땙h k沼� h횪ng th찼ng ho梳톍 h횪ng n훱m. <br>�몺 Khi thanh to찼n d沼땉h v沼� m梳쩿 ph챠, t첫y thu沼셛 v횪o s沼� l튼沼즢g ng튼沼쓎 d첫ng s梳� quy梳퓍 휃沼땙h.<br>�몼 D沼땉h v沼� m梳쩿 ph챠 c처 th沼� d첫ng b梳켷g c찼ch k챠ch ho梳죜 c찼c h沼셢 vi챗n trong v챵ng s沼� ng튼沼쓎 d첫ng b沼� h梳죒 ch梳�.<br>�몾 C처 th沼� thanh to찼n theo y챗u c梳쬾 b沼� sung c沼쬪 ng튼沼쓎 d첫ng trong l첬c s沼� d沼쩸g d沼땉h v沼� thanh to찼n. B梳죒 c처 th沼� ngay l梳춑 t沼쯢 thanh to찼n c튼沼쌵 ph챠 cho s沼� ng튼沼쓎 d첫ng 휃찾 휃훱ng k첵 th챗m v횪 s沼� d沼쩸g d沼땉h v沼� ngay l梳춑 t沼쯢.Thanh to찼n t沼쯢 th챙 l횪 thanh to찼n 1 l梳쬷, sau khi thanh to찼n t沼� 휃沼셬g ph梳즢 찼nh s沼� ng튼沼쓎 d첫ng 휃찾 thanh to찼n 휃沼땙h k沼� ti梳퓈 theo.<br> <br>휂i沼걏 18 ( ho횪n tr梳� ti沼걆 m梳톞)<br>(1) D沼땉h v沼� WW th챙 kh척ng ho횪n tr梳� chi ph챠 theo ph튼퉤ng th沼쯢 thanh to찼n tr튼沼쌵, ngo梳죍 tr沼� tr튼沼쓓g h沼즤 c梳쬷 theo ph찼p lu梳춗. Tuy nhi챗n, n梳퓎 t튼퉤ng 沼쯰g v沼쌻 t沼쳌g s沼� d튼沼쌻 휃창y, c처 th沼� 휃훱ng k첵 ho횪n tr梳� v횪 x沼� l첵 ph첫 h沼즤 v沼쌻 n처.<br>�몺 횁p d沼쩸g h沼쭃 b沼� thanh to찼n khi y챗u c梳쬾 h沼쭃 b沼� v횪o ng횪y 휃훱ng k첵 d沼땉h v沼�.<br>�몼 Khi gi梳즜 th沼� c찼c kho梳즢 ph챠 tr梳� tr튼沼쌵, sau khi kh梳쪀 tr沼� 10% t沼븂g s沼� ti沼걆 s沼� d沼쩸g (gi찼 tr沼�) t튼퉤ng 沼쯰g t沼� s沼� ti沼걆 c챵n l梳죍 k沼� t沼� ng횪y k梳퓍 th첬c d沼땉h v沼�.<br>�몾 S沼� ti沼걆 ho횪n tr梳� s梳� 휃튼沼즓 g沼춊 v횪o t횪i kho梳즢 휃튼沼즓 ch沼� 휃沼땙h khi 휃훱ng k첵 ho횪n l梳죍.<br>�몿 Th沼쓎 gian ho횪n tr梳� c튼沼쌵 ph챠 gi梳즜 th沼� s梳� 휃튼沼즓 thanh to찼n trong v챵ng 15 ng횪y k沼� t沼� ng횪y ch梳쩷 d沼쯶 gia nh梳춑.<br> <br>휂i沼걏 19 (Gi梳즜 th튼沼웢g thi沼뇍 h梳죍)<br>(1) Li챗n quan 휃梳퓆 vi沼놻 cung c梳쩺 d沼땉h v沼� c沼쬪 c척ng ty, n梳퓎 th횪nh vi챗n b沼� t沼븂 th梳쩿 khi s沼� d沼쩸g d沼땉h v沼� do c沼� 첵 ho梳톍 do s沼� l횪m trung gian, th챙 c처 th沼� 휃튼沼즓 nh梳춏 b沼밿 th튼沼쓓g h沼즤 l첵 v횪 th챠ch h沼즤.Tr튼沼쓓g h沼즤 mu沼몁 y챗u c梳쬾 b沼밿 th튼沼쓓g thi沼뇍 h梳죍 th챙 ph梳즜 ghi l첵 do, ti沼걆 y챗u c梳쬾 v횪 chi ph챠 s梳즢 sinh ra b梳켷g v훱n b梳즢 r沼밿 n沼셮 휃퉤n.<br> <br>휂i沼걏 hai m튼퉤i<br>(1) Tr튼沼쓓g h沼즤 kh척ng th沼� cung c梳쩺 d沼땉h v沼� do s沼� bi梳퓆 휃沼셬g c沼쬪 thi챗n tai, chi梳퓆 tranh v횪 b梳쩿 kh梳� kh찼ng kh찼c<br>(2) Trong tr튼沼쓓g h沼즤 doanh nghi沼뇈 kinh doanh vi沼꿳 th척ng ph梳즜 ng沼쳌g cung c梳쩺 d沼땉h v沼� vi沼꿳 th척ng ho梳톍 b沼� th튼퉤ng<br>(3) Tr튼沼쓓g h沼즤 t沼븂 th梳쩿 ho梳톍 s沼� d沼쩸g d沼땉h v沼� do l沼뾦 c沼쬪 th횪nh vi챗n<br>(4) Tr튼沼쓓g h沼즤 ph찼t sinh thi沼뇍 h梳죍 do l첵 do b梳쩿 kh梳� kh찼ng nh튼 s沼춁 ch沼칊, thay th梳�, ki沼긩 tra 휃沼땙h k沼�<br>(5) S沼� d沼쩸g d沼땉h v沼� theo lu梳춗 d沼� 찼n th척ng tin 휃i沼뇆 t沼� v횪 quy 휃沼땙h thi h횪nh, nh沼칗g n沼셢 dung b梳쩿 沼븂 휃沼땙h, thi沼뇍 h梳죍 danh d沼� do s沼� m梳쩿 m찼t, x창m h梳죍 quy沼걆 s沼� h沼칤 tr챠 tu沼� qu沼멵 gia, x창m ph梳죑 b梳쩿 h沼즤 ph찼p<br>(6) Tr튼沼쌵 khi l튼u tr沼�, s沼� d沼쩸g c찼c d沼땉h v沼� do tr沼� ng梳죍 trong c찼c thi梳퓍 b沼� nh튼 m梳죒g l튼沼쌻, ho梳톍 x梳즭 ra m梳쩿 d沼� li沼뇎, l沼뾦,<br>(7) Trong tr튼沼쓓g h沼즤 l횪 t횪i li沼뇎 l튼u tr沼� b梳쩿 th튼沼쓓g. Tuy nhi챗n, \"t횪i li沼뇎 l튼u tr沼� th척ng th튼沼쓓g\" c처 ngh칫a l횪 sau khi c찼c th횪nh vi챗n truy沼걆 d沼� li沼뇎, n처 휃튼沼즓 l튼u tr沼� v횪o b沼� nh沼� m沼셳 c찼ch b챙nh th튼沼쓓g m횪 kh척ng c처 s沼� thay 휃沼뷼 ho梳톍 thay 휃沼뷼 thu沼셛 t챠nh to횪n b沼�.<br>(8) N梳퓎 ph찼t sinh thi沼뇍 h梳죍 cho c찼c th횪nh vi챗n do l沼뾦 c沼쬪 th횪nh vi챗n ho梳톍 s沼� hi沼긳 l梳쬶 kh척ng 휃梳쭃 휃沼� c沼쬪 d沼땉h v沼�<br>(9) C척ng ty kh척ng ch沼땥 tr찼ch nhi沼뇅 v沼� vi沼놻 c찼c th횪nh vi챗n gi梳즜 th沼� h沼즤 휃沼뱊g s沼� d沼쩸g, thay 휃沼뷼 s梳즢 ph梳쯯, h沼쭃 b沼� d沼� li沼뇎 do ng튼沼쓎 s沼� d沼쩸g ho梳톍 kh척ng gian l횪m vi沼놻.<br>(10) N梳퓎 m沼셳 th횪nh vi챗n c척ng khai ID / m梳춗 kh梳쯷 c沼쬪 m챙nh cho ng튼沼쓎 kh찼c ho梳톍 do l퉤 l횪 qu梳즢 l첵 m횪 ID / b챠 m梳춗 b沼� l沼� ra v횪 g창y ra b梳쩿 k沼� thi沼뇍 h梳죍 n횪o cho c찼c th횪nh vi챗n.<br>(11) Trong tr튼沼쓓g h沼즤 thi沼뇍 h梳죍 ph찼t sinh do kh척ng th沼� s沼� d沼쩸g d沼땉h v沼� th챙 ph梳즜 t梳죑 th沼쓎 d沼쳌g d沼땉h v沼� khi ti梳퓆 h횪nh ki沼긩 tra 휃沼땙h k沼� ho梳톍 ki沼긩 tra kh梳쯰 c梳쩺 휃沼� cung c梳쩺 d沼땉h v沼�.<br>(12) C척ng ty kh척ng c처 ngh칫a v沼� can thi沼뇈 v횪o tranh ch梳쩺 ph찼t sinh trong vi沼놻 mua b찼n d沼땉h v沼� gi沼칊 c찼c c척ng ty li챗n quan, ho梳톍 b챗n th沼� 3 v횪 kh척ng c처 tr찼ch nhi沼뇅 b沼밿 th튼沼쓓g thi沼뇍 h梳죍 do 휃i沼걏 n횪y.<br> <br>휂i沼걏 21) li챗n quan 휃梳퓆 lu梳춗 ti챗u chu梳쯰<br>(1) C척ng ty v횪 c찼c th횪nh vi챗n ph梳즜 n沼� l沼켧 h梳퓍 m챙nh 휃沼� gi梳즜 quy梳퓍 ph창n tranh ph찼t sinh li챗n quan 휃梳퓆 d沼땉h v沼�<br>(2) 휂沼멼 v沼쌻 nh沼칗g 휃i沼걏 kho梳즢 kh척ng ghi r천 trong ch챠nh s찼ch c척ng ty quy 휃沼땙h, lu梳춗 d沼� 찼n th척ng tin 휃i沼뇆 t沼�, x첬c ti梳퓆 s沼� d沼쩸g m梳죒g th척ng tin truy沼걆 th척ng v횪 첵 ch챠 c沼쬪 ph찼p l沼뇆h li챗n quan kh찼c,<br>횁p d沼쩸g ph창n t챠ch theo c찼c th척ng l沼� chung.<br>(3) N梳퓎 kh척ng c처 s沼� tranh ch梳쩺 ph찼t sinh li챗n quan 휃梳퓆 vi沼놻 s沼� d沼쩸g d沼땉h v沼� gi沼칊 c척ng ty v횪 th횪nh vi챗n th챙 quy沼걆 h梳죒 c沼쬪 c찼c t沼� t沼쩸g li챗n quan s梳� l횪 t챵a 찼n c처 th梳쯯 quy沼걆 휃沼땇 휃i沼긩 c沼쬪 c척ng ty.<br>�� Ng횪y thi: Ng횪y 9 th찼ng 11 n훱m 2018", + + "workspaceUserManagement" : "Qu梳즢 l첵 Ng튼沼쓎 s沼� d沼쩸g Kh척ng gian l횪m vi沼놻", + "numberOfParticipants" : "s沼� ng튼沼쓎 tham gia", + "participation" : "s沼� tham d沼�", + "waitForParticipation" : "ch沼� 휃沼즜", + "withdrawal" : "Withdrawal", + "canParticipate" : "c처 th沼� tham gia", + "installingManagerServerAddress" : "(휃沼땇 ch沼� server c횪i 휃梳톞)", + "failedToSelectWorkspaceInformation" : "Kh척ng gian l횪m vi沼놻 m횪 b梳즢 th창n qu梳즢 l첵 휃찾 th梳쩿 b梳죍", + "failedToPaymentInformation" : "Th梳쩿 b梳죍 khi xem th척ng tin thanh to찼n", + "completedPayment" : "thanh to찼n xong", + "failedPayment" : "thanh to찼n th梳쩿 b梳죍", + "cancelTheRegularPaymentReceive" : "B梳죒 c처 h沼쭃 thanh to찼n 휃沼땙h k沼� kh척ng? \nS沼� ti沼걆 kh척ng t챠nh ph챠 s沼� d沼쩸g s梳� 휃튼沼즓 ho횪n tr梳� trong v챵ng 7 ng횪y.", + "failedToCancelPayment" : "Th梳쩿 b梳죍", + "failedToModifyWorkspaceName" : "S沼춁 휃沼뷼 kh척ng gian l횪m vi沼놻", + "failedToRegularPaymentChange" : "Th梳쩿 b梳죍 trong vi沼놻 thay 휃沼뷼 thanh to찼n 휃沼땙h k沼�", + "failedToParticipationStatusChange" : "Th梳쩿 b梳죍 khi thay 휃沼뷼 tr梳죒g th찼i tham gia", + "failedToSelectWorkspaceFullUserList" : "Kh척ng gian l횪m vi沼놻, danh s찼ch ng튼沼쓎 d첫ng th梳쩿 b梳죍" + }, + + "issue" : { + "issueType" : "lo梳죍 V梳쩸 휃沼�", + "managementIssue" : "Qu梳즢 l첵 V梳쩸 휃沼�", + "createIssue" : "T梳죓 ra m沼셳 v梳쩸 휃沼�", + "issueStatus" : "t챙nh tr梳죒g c沼쬪 v梳쩸 휃沼�", + "issueNumber" : "con s沼� v梳쩸 휃沼�", + "issueContent" : "N沼셢 dung v梳쩸 휃沼�", + "issueTitle" : "휂沼� m沼쩭 V梳쩸 휃沼�", + "requireIssueTitle" : "H찾y nh梳춑 ti챗u 휃沼� 휃i", + "issueList" : "danh m沼쩭 v梳쩸 휃沼�", + "summaryIssueActivity" : "t처m t梳칣 n沼셢 dung ho梳죜 휃沼셬g v梳쩸 휃沼�", + "modifyIssues" : "th沼� tinh v梳쩸 휃沼�", + "continueCreateIssue" : "T척i 휃ang li챗n t沼쩭 t梳죓 ra c찼c v梳쩸 휃沼� li챗n quan 휃梳퓆 ch튼퉤ng tr챙nh n횪y.", + "initializedAssigneeCustomField" : "N梳퓎 thay 휃沼뷼 d沼� 찼n th챙 gi찼 tr沼� c梳쬷 thi梳퓍 c沼쬪 ng튼沼쓎 ph沼� tr찼ch, ng튼沼쓎 s沼� d沼쩸g s梳� b沼� kh沼웙 t梳죓.", + "setUpUsersParticipatingInProject" : "C횪i 휃梳톞 ng튼沼쓎 d첫ng tham gia v횪o d沼� 찼n.", + "initializedIssueStatus" : "Tr튼沼쓓g h沼즤 thay 휃沼뷼 lo梳죍 h챙nh th챙 s梳� do y챗u c梳쬾 c沼쬪 ng튼沼쓎 s沼� d沼쩸g, v梳쩸 휃沼� l횪 kh沼웙 t梳죓 l梳죍.", + "clickToSelectDate" : "N梳퓎 click v횪o th챙 c처 th沼� ch沼뛫 ng횪y.", + "notIssueTypeCustomFields" : "Ng튼沼쓎 d첫ng li챗n k梳퓍 v沼쌻 nhau v沼� v梳쩸 휃沼� n횪y th챙 s梳� kh척ng c梳쬷 휃梳퓆 t챠nh ch챠nh ngh칫a c沼쬪 ng튼沼쓎 d첫ng..", + "attachOnlyFiles" : "B梳죒 ch沼� c처 th沼� 휃챠nh k챔m t沼뇈 v횪o hwp, jpg, png, txt, pptx, ppt, pdf, xlsx, xls, docx, zip, gif, jpeg, doc, tif, bmp, wmv, avi, mp4, mkv, Mov.", + + "registerExcelIssues" : "휂훱ng k첵 c찼c v梳쩸 휃沼� v沼쌻 Excel", + "videoExample" : "v챠 d沼� v沼� video", + "writeWaring" : "휃i沼긩 c沼몋 l천i 휃沼� vi梳퓍", + "pleaseEnterIssueName" : "H찾y nh梳춑 t챗n c沼쬪 b梳죒 휃沼� t챙m ki梳퓅.", + "selectProjectAndIssueTypeDownloadExcel" : "N梳퓎 b梳죒 ch沼뛫 m沼셳 lo梳죍 d沼� 찼n, v梳쩸 휃沼�, b梳죒 c처 th沼� t梳즜 v沼� c찼ch t튼퉤ng 沼쯰g.", + "settingTableDisplay" : "c횪i 휃梳톞 bi沼긳 th沼� tr챗n b횪n", + "deleteIssue" : "x처a b沼� v梳쩸 휃沼�", + "wantToDeleteSelectIssue" : "S梳� x처a b沼� nh沼칗g v梳쩸 휃沼� 휃찾 ch沼뛫 ch沼�? Kh척ng th沼� kh척i ph沼쩭 l梳죍 v梳쩸 휃沼� 휃찾 b沼� x처a.", + "failedToSaveFieldConditions" : "Th梳쩿 b梳죍 trong vi沼놻 l튼u l梳죍 휃i沼걏 ki沼뇆 t챙m ki梳퓅", + "failedToGetSearchFieldCondition" : "Th梳쩿 b梳죍 trong vi沼놻 mang 휃i沼걏 ki沼뇆 t챙m ki梳퓅", + "failedIssueLookup" : "V梳쩸 휃沼� l횪 l튼沼즨 view th梳쩿 b梳죍", + "selectionCheck" : "Ki沼긩 tra 휃沼멼 t튼沼즢g 휃튼沼즓 ch沼뛫", + "selectIssueToChangeStatus" : "H찾y ch沼뛫 v梳쩸 휃沼� thay 휃沼뷼 tr梳죒g th찼i.", + "notHaveDeletePermissionExistsAnIssue" : "C처 v梳쩸 휃沼� kh척ng c처 quy沼걆 x처a.", + "failedToIssueTypeListLookup" : "Th梳쩿 b梳죍 trong danh s찼ch c찼c m척n n沼뷼 ti梳퓆g", + "failedToPriorityListLookup" : "L튼沼즨 truy c梳춑 th沼� t沼� 튼u ti챗n th梳쩿 b梳죍", + "failedToCriticalListLookup" : "Danh s찼ch l튼沼즨 truy c梳춑 c크ng th梳쩿 b梳죍", + "failedToUserDefinedFieldListLookup" : "S沼� l튼沼즨 truy c梳춑 theo 휃沼땙h ngh칫a ng튼沼쓎 d첫ng th梳쩿 b梳죍", + "failedToIssueTableColumnLookup" : "Kh척ng bi梳퓍 l튼沼즨 xem c처 b沼� r沼썇 kh척ng", + "capacityExceededImageFile" : "Dung l튼沼즢g h챙nh 梳즢h v튼沼즨 qu찼", + "attachedOnlyImageFiles10mb" : "Ch沼� c처 th沼� 휃챠nh k챔m file h챙nh 梳즢h d튼沼쌻 10MB.", + "attachedMultipleImageFiles100mb" : "Tr튼沼쓓g h沼즤 휃챠nh k챔m m沼셳 l첬c nhi沼걏 h챙nh 梳즢h th챙 c처 th沼� 휃챠nh k챔m 휃梳퓆 d튼沼쌻 100MB.", + "limitImageFile" : "h梳죒 ch梳� t梳춑 tin h챙nh 梳즢h", + "canBeUploadedOnlyImageFiles" : "Ch沼� c처 th沼� t梳즜 l챗n t梳춑 tin h챙nh 梳즢h. -B,P, jp, h沼뱊g, s", + "previewImage" : "Xem h챙nh 梳즢h tr튼沼쌵 n횪o", + "nameErrorImageFile" : "T챗n t梳춑 tin h챙nh 梳즢h", + "cannotUploadFileNameSpecialCharacters" : "K첵 t沼� 휃梳톍 bi沼뇍 (e) trong t챗n t沼뇈 kh척ng th沼� t梳즜 l챗n.", + "errorFileUpload" : "l沼뾦 upload file", + "attachmentCapacityExceeded" : "V튼沼즨 qu찼 dung l튼沼즢g file 휃챠nh k챔m", + "canAttachFileUpTo100mb" : "C처 th沼� 휃챠nh k챔m file 휃梳퓆 m沼쯢 d튼沼쌻 100MB.", + "limitAttachmentExtensions" : "h梳죒 ch梳� ng튼沼쓎 m沼� r沼셬g t沼뇈 휃챠nh k챔m", + "notAllowedAttachment" : "휂처 l횪 t梳춑 tin kh척ng 휃튼沼즓 cho ph챕p.", + "nameErrorAttachment" : "l沼뾦 v沼� t챗n t梳춑 tin 휃챠nh k챔m", + "succeededIssueRegistration" : "휃훱ng k첵 th횪nh c척ng v梳쩸 휃沼�", + "failedIssueRegistration" : "휃훱ng k첵 th梳쩿 b梳죍 v梳쩸 휃沼�", + "failedIssueModify" : "S沼춁 휃沼뷼 v梳쩸 휃沼�", + "failedToProjectDetails" : "Th梳쩿 b梳죍 trong vi沼놻 xem th척ng tin chi ti梳퓍 v沼� d沼� 찼n", + "failedToUserDefinedFieldListAssociatedLookup" : "K梳퓍 n沼멼 lo梳죍 h챙nh v梳쩸 휃沼�, l튼沼즨 truy c梳춑 v횪o danh s찼ch nh沼칗g ng튼沼쓎 d첫ng theo 휃沼땙h ngh칫a, th梳쩿 b梳죍", + "applyTemplate" : "찼p d沼쩸g m梳쳕", + "issueContentIsWrittenApplyTheTemplate" : "N沼셢 dung c沼쬪 n처 휃찾 휃튼沼즓 so梳죒 th梳즣. Anh (ch沼�) c처 찼p d沼쩸g m梳쳕 m찾 kh척ng? N梳퓎 m梳쳕 휃튼沼즓 찼p d沼쩸g th챙 n沼셢 dung 휃찾 so梳죒 th梳즣 s梳� bi梳퓆 m梳쩿..", + "failedIssueStatusCheck" : "Th梳쩿 b梳죍 trong vi沼놻 t챙m ki梳퓅 m沼셳 s沼� v梳쩸 휃沼� c처 th沼� di chuy沼긪", + "failedToChangeMultipleIssueStatus" : "Th梳쩿 b梳죍 trong vi沼놻 thay 휃沼뷼 tr梳죒g th찼i nhi沼걏 v梳쩸 휃沼�", + "completedSavingIssueTable" : "Ho횪n th횪nh vi沼놻 l튼u l梳죍 c찼c v梳쩸 휃沼�", + "saveIssueTableSettingsInformation" : "Th척ng tin thi梳퓍 l梳춑 b梳즢g v梳쩸 휃沼� 휃찾 휃튼沼즓 l튼u tr沼�.", + "failedToSaveIssueTableSetting" : "Th梳쩿 b梳죍 trong vi沼놻 l튼u l梳죍 c찼c v梳쩸 휃沼�", + "errorRemovableIssueStatusList" : "M沼셳 l沼뾦 v沼� m沼셳 m沼쩭 l沼쩭 nh沼칗g v梳쩸 휃沼� c처 th沼� di chuy沼긪 휃튼沼즓", + "errorIssueDetails" : "C처 l沼뾦 v沼� th척ng tin chi ti梳퓍", + "failedToRegisterComments" : "휂훱ng k첵 b챙nh lu梳춏 th梳쩿 b梳죍", + "deleteComments" : "X처a b챙nh lu梳춏", + "failedToDeleteComments" : "X처a b챙nh lu梳춏 th梳쩿 b梳죍", + "wantToDeleteTheSelectedComments" : "C처 x처a b챙nh lu梳춏 휃찾 ch沼뛫 kh척ng 梳�? Kh척ng th沼� kh척i ph沼쩭 l梳죍 nh沼칗g b챙nh lu梳춏 휃찾 b沼� x처a.", + "failedToGetCommentListData" : "C梳춙 梳쪅 kh척ng th沼� l梳쪅 d沼� li沼뇎 t沼� danh s찼ch c찼c b챙nh lu梳춏", + "failedToAttachmentList" : "L튼沼즨 truy c梳춑 file 휃챠nh k챔m th梳쩿 b梳죍", + "setIssueTableDisplay" : "휂찾 thi梳퓍 l梳춑 m沼셳 b梳즢g bi沼긳 th沼� v梳쩸 휃沼�", + "columnName" : "t챗n tu沼뷼 b沼� u沼몁 cong", + "area" : "chi沼걏 r沼셬g", + "displayed" : "s沼� b횪y t沼� hay kh척ng", + "sequence" : "Th沼� t沼�", + "cannotChangedIssueTitle" : "Kh척ng th沼� thay 휃沼뷼 ti챗u 휃沼�.", + "selectSendIssueMail" : "L沼켥 ch沼뛫 ng튼沼쓎 g沼춊 mail", + "sendIssueSelectedUsers" : "T척i g沼춊 th척ng tin v沼� v梳쩸 휃沼� n횪y 휃梳퓆 ng튼沼쓎 d첫ng 휃튼沼즓 l沼켥 ch沼뛫.", + "sendMail" : "g沼춊 th튼 휃i沼뇆 t沼�", + "changedHistory" : "th척ng tin chi ti梳퓍 thay 휃沼뷼", + "noChangeHistory" : "Kh척ng c처 th척ng tin 휃찾 휃튼沼즓 thay 휃沼뷼.", + "changedTime" : "th沼쓎 gian 휃沼뷼", + "changedUser" : "Ng튼沼쓎 s沼� d沼쩸g 휃찾 휃沼뷼", + "issueReservation" : "휃梳톞 ph챵ng v梳쩸 휃沼�", + "issueReservationType" : "lo梳죍 휃梳톞 ph챵ng v梳쩸 휃沼�", + "issueReservationDescription" : "B梳죒 c처 th沼� t찼i t梳죓 v梳쩸 휃沼� v횪o m沼셳 ng횪y c沼� th沼�. <br />N처 c처 th沼� h沼칤 챠ch khi c처 v梳쩸 휃沼� c梳쬷 휃튼沼즓 th沼켧 hi沼뇆 l梳톚 휃i l梳톚 l梳죍.", + "everyDay" : "m沼뾦 ng횪y", + "everyWeek" : "m沼뾦 ng횪y", + "everyMonth" : "m沼뾦 th찼ng", + "everyYear" : "m沼뾦 th찼ng", + "scheduledDate" : "ng횪y ph찼t h횪nh v梳쩸 휃沼�", + "monday" : "Th沼� hai", + "tuesday" : "Th沼� ba", + "wednesday" : "Th沼� t튼", + "thursday" : "Th沼� n훱m", + "friday" : "Th沼� s찼u", + "saturday" : "Th沼� s찼u", + "sunday" : "Ch沼� nh梳춗", + "enterOnlyNumbers" : "B梳죒 ch沼� c처 th沼� nh梳춑 s沼�.", + "january" : "Th찼ng 1", + "february" : "Th찼ng 2", + "march" : "Th찼ng 3", + "april" : "Th찼ng 4", + "may" : "Th찼ng 5", + "june" : "Th찼ng 6", + "july" : "Th찼ng 7", + "august" : "Th찼ng 8", + "september" : "Th찼ng 9", + "october" : "Th찼ng 10", + "november" : "Th찼ng 11", + "december" : "Th찼ng 12", + "succeededIssueReservation" : "Th횪nh c척ng 휃梳톞 ph챵ng v梳쩸", + "failedIssueReservation" : "Th梳쩿 b梳죍 휃梳톞 ph챵ng v梳쩸", + "failedToIssueReservationDetails" : "Th梳쩿 b梳죍 s沼� 휃i沼걏 tra th척ng tin booking", + "succeededIssueMail" : "Vi沼놻 휃梳톞 ch沼� 휃찾 휃튼沼즓 g沼춊 qua email.", + "sentToTheSelectedUser" : "휂찾 g沼춊 email cho ng튼沼쓎 d첫ng 휃튼沼즓 ch沼뛫.", + "failedIssueMail" : "G沼춊 email th梳쩿 b梳죍", + "issueVersionLookupFailed" : "L튼沼즨 truy c梳춑 th梳쩿 b梳죍" + + }, + + "project" : { + "createProject" : "L횪m d沼� 찼n", + "projectKey" : "Ch챙a kh처a d沼� 찼n", + "projectStatus" : "Tr梳죒g th찼i d沼� 찼n", + "projectType" : "Ki沼긳 d沼� 찼n", + "projectAdmin" : "Ng튼沼쓎 qu梳즢 l첵 d沼� 찼n", + "projectTeam" : "Th횪nh vi챗n d沼� 찼n", + "modifyProject" : "s沼춁 휃沼뷼 d沼� 찼n", + "settingCustomFields" : "thi梳퓍 l梳춑 t챠nh ch챠nh ngh칫a ng튼沼쓎 d첫ng", + "selectCustomField" : "nhu c梳쬾 gi梳� 휃沼땙h ng튼沼쓎 d첫ng", + "availableFields" : "b沼� nh沼� c처 th沼� s沼� d沼쩸g 휃튼沼즓", + "inUseField" : "n챕t ch沼� 휃ang d첫ng", + "pleaseEnterProjectName" : "H찾y nh梳춑 t챗n d沼� 찼n.", + "deleteProject" : "x처a 휃i d沼� 찼n", + "wantToDeleteSelectProject" : "B梳죒 c처 x처a d沼� 찼n 휃찾 ch沼뛫 kh척ng? Kh척ng th沼� ph沼쩭 h沼밿 d沼� 찼n 휃찾 b沼� x처a.", + "notHaveDeletePermissionExistsProject" : "C처 m沼셳 d沼� 찼n kh척ng c처 quy沼걆 h梳죒 x처a.", + "failedToProjectListLookup" : "Danh s찼ch d沼� 찼n th梳쩿 b梳죍", + "failedProjectCreation" : "Th梳쩿 b梳죍 khi t梳죓 d沼� 찼n", + "saveCompleteFieldManagement" : "Qu梳즢 l첵 l칫nh v沼켧 휃찾 l튼u", + "saveUserDefinedFieldAndIssueTypeConnection" : "Th척ng tin k梳퓍 n沼멼 lo梳죍 v梳쩸 휃沼� v횪 m沼쩭 휃챠ch s沼� d沼쩸g 휃찾 휃튼沼즓 l튼u tr沼�.", + "failedToSaveFieldManagement" : "Kh척ng th沼� l튼u qu梳즢 l첵 tr튼沼쓓g", + "failedToModifyProject" : "S沼춁 휃沼뷼 d沼� 찼n th횪nh c척ng", + "failedToProjectDetails" : "Th梳쩿 b梳죍 trong vi沼놻 xem th척ng tin chi ti梳퓍 v沼� d沼� 찼n", + "failedToProjectMember" : "L튼沼즨 truy c梳춑 c찼c th횪nh vi챗n d沼� 찼n th梳쩿 b梳죍", + "failedToProjectKeyPattern" : "Gi찼 tr沼� 휃梳쬾 v횪o d沼� 찼n 휃찾 b沼� sai.", + "limitNameToSpecialCharacters" : "T챗n d沼� 찼n kh척ng th沼� nh梳춑 b梳쩿 k沼� k첵 t沼� 휃梳톍 bi沼뇍 n횪o." + }, + + "managementStatus" : { + "managementStatus" : "Qu梳즢 l첵 Tr梳죒g th찼i", + "createStatus" : "T梳죓 tr梳죒g th찼i", + "issueStatusName" : "t챗n tr梳죒g th찼i v梳쩸 휃沼�", + "statusProperties" : "휃횪o t梳죓 tr梳죒g th찼i", + "createIssueStatus" : "T梳죓 n챗n m沼셳 v梳쩸 휃沼�", + "modifyIssueStatus" : "s沼춁 ch沼칊 tr梳죒g th찼i c처 v梳쩸 휃沼�", + "useInTheWorkflow" : "V梳쩸 휃沼� 휃ang 휃튼沼즓 s沼� d沼쩸g trong workshop. Khi thay 휃沼뷼 t챗n, t챙nh tr梳죒g c沼쬪 v梳쩸 휃沼� s梳� b沼� thay 휃沼뷼.", + "builtInIssueStatus" : "Kh척ng th沼� thay 휃沼뷼 휃梳톍 t챠nh c沼쬪 c찼c v梳쩸 휃沼� c퉤 b梳즢 휃튼沼즓 cung c梳쩺.", + "pleaseEnterIssueStatusName" : "H찾y nh梳춑 t챗n tr梳죒g th찼i c沼쬪 v梳쩸 휃沼�.", + "updateNotStatusProperties" : "Kh척ng th沼� thay 휃沼뷼 thu沼셛 t챠nh tr梳죒g th찼i sau khi t梳죓.", + "deleteIssueStatus" : "X처a 휃i t챙nh tr梳죒g hi沼뇆 t梳죍", + "wantToDeleteSelectIssueStatus" : "S梳� x처a b沼� 휃튼沼즓 tr梳죒g th찼i v梳쩸 휃沼� 휃찾 ch沼뛫 ch沼�? Kh척ng th沼� kh척i ph沼쩭 l梳죍 tr梳죒g th찼i v梳쩸 휃沼� 휃찾 b沼� x처a.", + "failedToCreateIssueStatus" : "th梳쩿 b梳죍 t챙nh tr梳죒g c沼쬪 v梳쩸 휃沼�", + "failedToModifyIssueStatus" : "Th梳쩿 b梳죍 trong vi沼놻 ch沼뎝h s沼춁 t챙nh h챙nh", + "failedToIssueStatusDetails" : "L튼沼즨 truy c梳춑 th척ng tin c沼� th沼� v沼� v梳쩸 휃沼�", + "limitNameToSpecialCharacters" : "T챙nh tr梳죒g c沼쬪 v梳쩸 휃沼� kh척ng th沼� nh梳춑 b梳쩿 k沼� k첵 t沼� 휃梳톍 bi沼뇍 n횪o." + }, + + "managementWorkflow" : { + "managementWorkflow" : "Qu梳즢 l첵 quy tr챙nh l횪m vi沼놻", + "workflowName" : "t챗n Quy tr챙nh l횪m vi沼놻", + "createWorkflow" : "L횪m Quy tr챙nh l횪m vi沼놻", + "modifyWorkflow" : "s沼춁 휃沼뷼 Quy tr챙nh l횪m vi沼놻", + "deleteIssueStatusInTheUse" : "Tr튼沼쓓g h沼즤 x처a b沼� tr梳죒g th찼i 휃ang s沼� d沼쩸g, s梳� thay 휃沼뷼 tr梳죒g th찼i \"Ch沼�\" b梳켷g tr梳죒g th찼i thu沼셛 t챠nh tr梳죒g th찼i c沼쬪 v梳쩸 휃沼� ki沼긩 tra/ h梳죒g m沼쩭 y챗u c梳쬾 휃ang s沼� d沼쩸g Quy tr챙nh l횪m vi沼놻", + "statusList" : "m沼쩭 l沼쩭 휃i沼걏 ki沼뇆", + "insert" : "H沼셮 휃沼켷g n튼沼쌵", + "startPoint" : "휃i沼긩 b梳칣 휃梳쬾", + "endPoint" : "b梳퓆 cu沼멼 c첫ng", + "designNotCompleteWorkflow" : "Thi梳퓍 k梳� Quy tr챙nh l횪m vi沼놻 ch튼a 휃튼沼즓 ho횪n th횪nh.", + "onlyOneStatusPropertyWaitIssueStatus" : "Trong workbook ch沼� t沼뱊 t梳죍 m沼셳 v梳쩸 휃沼� v沼� tr梳죒g th찼i \"Ch沼�\"", + "onlyOneStatusPropertyProgressIssueStatus" : "Quy tr챙nh l횪m vi沼놻 c처 h퉤n 1 v梳쩸 휃沼� ch챠nh l횪 ti梳퓆 휃沼�", + "onlyOneStatusPropertyEndIssueStatus" : "Quy tr챙nh l횪m vi沼놻 c처 h퉤n 1 v梳쩸 휃沼� li챗n quan 휃梳퓆 t챠nh ch梳쩿 tr梳죒g th찼i \"chu척ng kh찼t khao\".", + "pleaseEnterWorkflowName" : "H찾y nh梳춑 t챗n Quy tr챙nh l횪m vi沼놻", + "connectedIssueType" : "Nh沼칗g v梳쩸 휃沼� 휃찾 휃튼沼즓 li챗n k梳퓍", + "notHaveDeletePermissionExistsWorkflow" : "C처 workbook kh척ng c처 quy沼걆 x처a.", + "deleteWorkflow" : "Xo찼 휃i", + "wantToDeleteTheSelectedWorkflow" : "Anh (ch沼�) s梳� x처a workbook ch沼뛫 ch沼�? Kh척ng th沼� ph沼쩭 h沼밿 t沼� workbook 휃찾 b沼� x처a.", + "failedWorkflowListLookup" : "L튼沼즨 t챙m vi沼놻 trong danh s찼ch workbook th梳쩿 b梳죍", + "failedCreateWorkflow" : "L횪m workbook th梳쩿 b梳죍", + "failedToModifyWorkflow" : "Ngh칫 l梳죍 b횪i workbook th梳쩿 b梳죍", + "failedToWorkflowDetails" : "L튼沼즨 th척ng tin chi ti梳퓍 휃찾 th梳쩿 b梳죍", + "failedToPutIssueStatus" : "Th梳쩿 b梳죍 t챙nh tr梳죒g c沼쬪 v梳쩸 휃沼�", + "onlyOneInTheWorkflow" : "kh沼멼 l튼沼즢g c척ng vi沼놻 Flow trong tr梳죒g th찼i 휃梳톍 t챠nh ch沼� , \" V梳쩸 휃沼� quan 1 c찼i th척i ph梳즜 t沼뱊 t梳죍 .", + "removeMetastaticLine" : "lo梳죍 b沼� tuy梳퓆 di chuy沼긪", + "removeIssueStatus" : "lo梳죍 b沼� tr梳죒g th찼i c처 v梳쩸 휃沼�", + "limitNameToSpecialCharacters" : "T챗n workbook kh척ng bao g沼뱈 ch沼� 휃梳톍 bi沼뇍.", + "excludeWorkflowParticipation " : "X처a kh沼뢩 kh척ng gian l횪m vi沼놻", + "imageDownloadNotSupported" : "V梳쳌 ch튼a t梳즜 梳즢h v沼�", + "IEDoesNotSupport" : "Trong IE, kh척ng h沼� tr沼� t梳즜 h챙nh 梳즢h." + + }, + + "support" : { + "support" : "Support", + "supportFAQ" : "Frequently Question", + "supportQNA" : "Question / Answer" + }, + + "customField" : { + "createField" : "tr튼沼쓓g 휃沼땙h ngh칫a ng튼沼쓎 d첫ng", + "customFieldName" : "T챗n tr튼沼쓓g 휃沼땙h ngh칫a ng튼沼쓎 d첫ng", + "fieldType" : "Lo梳죍 tr튼沼쓓g", + "createCustomField" : "L횪m tr튼沼쓓g 휃沼땙h ngh칫a ng튼沼쓎 d첫ng", + "createSingleFieldList" : "L횪m Ch沼� vi梳퓍 t梳칣 c沼쬪 m沼셳 ng튼沼쓎", + "createMultiFieldList" : "L횪m c梳쬷 nhi沼걏 l沼켥 ch沼뛫", + "defaultValue" : "gi찼 g沼멵", + "selectSingleFieldListHashTag" : "Ph梳즜 s沼� d沼쩸g hashtag khi b梳죒 mu沼몁 ch沼뛫 gi찼 tr沼� trong danh s찼ch l沼켥 ch沼뛫 휃퉤n nh梳쩿. ex) ti沼걆 th튼沼웢g", + "selectMultiFieldListHashTag" : "Khi b梳죒 mu沼몁 ch沼뛫 m沼셳 gi찼 tr沼� trong danh s찼ch nhi沼걏 ng튼沼쓎 ch沼뛫, b梳죒 c梳쬷 ph梳즜 s沼� d沼쩸g hashtag. ex) ti沼걆 th튼沼웢g#ti沼걆 th튼沼웢g", + "modifyCustomFields" : "s沼� d沼쩸g tr튼沼쓓g 휃沼땙h ngh칫a ng튼沼쓎 d첫ng", + "pleaseEnterUserDefinedFieldName" : "H찾y nh梳춑 휃沼땙h ngh칫a ng튼沼쓎 d첫ng.", + "deleteUserDefinedFields" : "ch沼� vi梳퓍 ch챠nh ngh칫a ng튼沼쓎 d첫ng", + "wantToDeleteSelectUserDefinedFields" : "B梳죒 c처 ch梳칌 mu沼몁 x처a m沼쩭 휃챠ch ch챠nh ngh칫a ng튼沼쓎 d첫ng 휃찾 l沼켥 ch沼뛫 kh척ng? Ch沼� 휃沼땙h ngh칫a ng튼沼쓎 d첫ng 휃찾 b沼� x처a kh척ng th沼� ph沼쩭 h沼밿 휃튼沼즓", + "duplicateInputValue" : "th척ng b찼o tr첫ng gi찼 nh梳춑", + "alreadyAddedValue" : "Gi찼 tr沼� nh梳춑 휃찾 휃튼沼즓 b沼� sung.", + "failedToCreateUserDefinedFields" : "Th梳쩿 b梳죍 trong vi沼놻 t梳죓 n챗n k沼땉h b梳즢 ch챠nh ngh칫a cho ng튼沼쓎 d첫ng", + "failedToModifyUserDefinedFields" : "S沼춁 휃沼뷼 ho횪n to횪n t튼 t튼沼웢g ng튼沼쓎 d첫ng th횪nh c척ng", + "failedToDetailUserDefinedFields" : "L튼沼즨 truy c梳춑 th척ng tin c沼� th沼� theo 휃沼땙h ngh칫a ng튼沼쓎 d첫ng th梳쩿 b梳죍", + "limitNameToSpecialCharacters" : "Kh척ng th沼� nh梳춑 t챗n vi梳퓍 t梳칣 c沼쬪 휃沼땙h ngh칫a ng튼沼쓎 d첫ng b梳켷g ch沼� 휃梳톍 bi沼뇍.", + "emptyInputValue" : "x찼c nh梳춏 gi찼 tr沼� nh梳춑 th척ng b찼o", + "emptyAddValue" : "Ch튼a nh梳춑 gi찼." + }, + + "managementType" : { + "managementIssueType" : "qu梳즢 l첵 lo梳죍 v梳쩸 휃沼�", + "createIssueType" : "L횪m ki沼긳 v梳쩸 휃沼�", + "modifyIssueType" : "s沼춁 ki沼긳 v梳쩸 휃沼�", + "issueTypeName" : "ti梳퓆g ki沼긳 v梳쩸 휃沼�", + "enterIssueTypeName" : "H찾y nh梳춑 t챗n theo t沼쳌g lo梳죍 v梳쩸 휃沼�.", + "managementType" : "Qu梳즢 l첵 lo梳죍", + "createType" : "L횪m lo梳죍", + "typeName" : "t챗n lo梳죍", + "modifyType" : "Ch沼뎝h s沼춁 lo梳죍", + "template" : "m梳쳕", + "registerAnIssueTemplate" : "B梳죒 c처 th沼� s沼� d沼쩸g m沼셳 ph梳쬷 n沼셢 dung khi t梳죓 m梳쳕 tr튼沼쌵 r沼밿 휃훱ng k첵 m沼셳 v梳쩸 휃沼�.", + "updateWorkflowIssueStatusStandby" : "Tr튼沼쓓g h沼즤 thay 휃沼뷼 workbook, n梳퓎 kh척ng t沼뱊 t梳죍 tr梳죒g th찼i c沼쬪 v梳쩸 휃沼�, s梳� 휃튼沼즓 thay 휃沼뷼 th횪nh tr梳죒g th찼i \"Ch沼�\" tr梳죒g th찼i c처 v梳쩸 휃沼�.", + "notHaveDeletePermissionExistsIssueType" : "C처 lo梳죍 h챙nh v梳쩸 휃沼� kh척ng c처 quy沼걆 x처a.", + "deleteIssueType" : "Lo梳죍 h챙nh v梳쩸 휃沼�", + "wantToDeleteSelectIssueType" : "S梳� x처a b沼� lo梳죍 h챙nh v梳쩸 휃沼� b梳죒 휃찾 ch沼뛫 ch沼�? Kh척ng th沼� kh척i ph沼쩭 lo梳죍 h챙nh v梳쩸 휃沼� 휃찾 b沼� x처a.", + "failedToIssueTypeList" : "Ch沼� c처 m沼쩭 ti챗u l횪 l튼沼즨 truy c梳춑 th梳쩿 b梳죍", + "failedToCreateIssueType" : "Th梳쩿 b梳죍 v챙 t梳죓 ra m沼셳 ki沼긳 ch沼� 휃沼�", + "failedToModifyIssueType" : "Thay 휃沼뷼 ki沼긳 t처c l횪 th梳쩿 b梳죍", + "failedToDetailIssueType" : "N沼셢 dung tin t沼쯢 chi ti梳퓍 th梳쩿 b梳죍", + "limitNameToSpecialCharacters" : "M척 h챙nh v梳쩸 휃沼� kh척ng th沼� nh梳춑 b梳쩿 k沼� k첵 t沼� 휃梳톍 bi沼뇍 n횪o." + }, + + "users" : { + "temporaryPassword" : "m梳춗 kh梳쯷 t梳죑 th沼쓎", + "guidanceTemporaryPassword" : "H튼沼썀g d梳쳌 vi챗n 휃튼沼즓 c梳쩺 m梳춗 kh梳쯷 t梳죑 th沼쓎", + "pleaseMakeSureChangeYourPassword" : "Ch첬ng t척i s梳� c梳쩺 m沼셳 m梳춗 kh梳쯷 t梳죑 th沼쓎 휃沼� thay 휃沼뷼 m梳춗 kh梳쯷 t횪i kho梳즢 OWL ITS c沼쬪 qu챠 kh찼ch.Sau khi 휃훱ng nh梳춑, vui l챵ng thay 휃沼뷼 m梳춗 kh梳쯷.", + "phoneNumber" : "Li챗n l梳죅", + "modifyInformation" : "Ch沼뎝h s沼춁 th척ng tin", + "updatePassword" : "Thay 휃沼뷼 M梳춗 kh梳쯷", + "setEmailNotificationTime" : "C횪i 휃梳톞 Th沼쓎 gian Th척ng b찼o Email", + "selectProfileShowOther" : "H찾y ch沼뛫 h沼� s퉤 휃沼� ng튼沼쓎 d첫ng kh찼c xem.", + "membershipWithdrawal" : "H沼쭃 t튼 c찼ch th횪nh vi챗n", + "signOutNotRecovered" : "Khi r첬t kh沼뢩 h沼셢 vi챗n, t梳쩿 c梳� d沼� li沼뇎 trong kh척ng gian l횪m vi沼놻 s梳� bi梳퓆 m梳쩿 v횪 kh척ng th沼� ph沼쩭 h沼밿 휃튼沼즓.", + "existingPassword" : "M梳춗 kh梳쯷 hi沼뇆 t梳죍", + "newPassword" : "M梳춗 kh梳쯷 m沼쌻", + "confirmNewPassword" : "X찼c nh梳춏 M梳춗 kh梳쯷 m沼쌻", + "checkPassword" : "X찼c nh梳춏 m梳춗 kh梳쯷", + "join" : "s沼� d沼쩸g mi沼꿳 ph챠", + "enable" : "ho梳죜 t챠nh", + "disable" : "t챠nh kh척ng ho梳죜 휃沼셬g", + "withdrawal" : "s沼� r첬t lui", + "usedAccount" : "B梳죒 c처 t횪i kho梳즢 s梳탇 kh척ng?", + + "joinOWLITSMembership" : "휂훱ng k첵 th횪nh vi챗n OWL-ITS", + "enterAnEmail" : "H찾y nh梳춑 email.", + "enterAnPassword" : "H찾y nh梳춑 m梳춗 kh梳쯷.", + "pleaseSelectFile" : "C찼c b梳죒 h찾y ch沼뛫 t沼뇈 휃i 梳�!", + "invalidEmailFormat" : "H챙nh th沼쯢 email kh척ng ph첫 h沼즤.", + "enterYourEmailAddress" : "Th척ng b찼o s梳� 휃튼沼즓 g沼춊 휃梳퓆 email 휃찾 nh梳춑. H찾y nh梳춑 email m횪 b梳죒 nh梳쩿 휃沼땙h s沼� d沼쩸g.", + "least4CharactersPassword" : "M梳춗 kh梳쯷 ph梳즜 휃튼沼즓 nh梳춑 tr챗n 챠t nh梳쩿 4 k첵 t沼�.", + "enter4CharactersPassword" : "H찾y nh梳춑 m梳춗 kh梳쯷 tr챗n 4 k첵 t沼�.", + "differentPassword" : "M梳춗 kh梳쯷 kh찼c nhau.", + "contactedEnterPhone" : "H찾y nh梳춑 s沼� 휃i沼뇆 tho梳죍 c처 kh梳� n훱ng li챗n l梳죅.", + "enterTheNameInWorkspace" : "H찾y nh梳춑 t챗n kh척ng gian l횪m vi沼놻 휃튼沼즓 t梳죓 ra t沼� c퉤 b梳즢.", + "agreePrivacyPolicy" : "휂沼뱊g 첵 ng훱n ch梳톘 x沼� l첵 th척ng tin c찼 nh창n.", + "privacyPolicy" : "Ch챠nh s찼ch b梳즣 m梳춗 th척ng tin c찼 nh창n", + "privacyPolicy1" : "Ch챠nh s찼ch b梳즣 m梳춗 th척ng tin c찼 nh창n<br><br>Wisestone (sau 휃창y g沼뛦 l횪 �쏞척ng ty��) r梳쩿 coi tr沼뛫g vi沼놻 b梳즣 v沼� d沼� li沼뇎 c찼 nh창n c沼쬪 kh찼ch h횪ng v횪 tu창n theo Lu梳춗 v沼� Th첬c 휃梳쯻 S沼� d沼쩸g Th척ng tin, Truy沼걆 th척ng v횪 B梳즣 v沼� Th척ng tin, vv. B梳켷g vi沼놻 c척ng khai Ch챠nh s찼ch B梳즣 m梳춗 n횪y, C척ng ty s梳� th척ng b찼o 휃梳퓆 kh찼ch h횪ng Th척ng tin c찼 nh창n c沼쬪 qu첵 kh찼ch 휃ang 휃튼沼즓 s沼� d沼쩸g v沼쌻 m沼쩭 휃챠ch v횪 b梳켷g c찼ch th沼쯢 n횪o, c크ng nh튼 c찼c bi沼뇆 ph찼p 휃튼沼즓 th沼켧 hi沼뇆 휃沼� b梳즣 v沼� th척ng tin 휃처. Ch챠nh s찼ch b梳즣 m梳춗 n횪y c처 th沼� 휃튼沼즓 s沼춁 휃沼뷼 theo s沼� s沼춁 휃沼뷼 c沼쬪 c찼c lu梳춗 li챗n quan ho梳톍 ch챠nh s찼ch n沼셢 b沼� c沼쬪 c척ng ty. Khi c梳춑 nh梳춗, ch첬ng t척i lu척n th척ng b찼o n沼셢 dung v횪 l챠 do 휃梳퓆 kh찼ch h횪ng b梳켷g c찼ch d沼� hi沼긳 nh梳쩿.<br>휂i沼걏 1 (M沼쩭 휃챠ch s沼� d沼쩸g v횪 h梳죒g m沼쩭 thu th梳춑 Th척ng tin c찼 nh창n)<br>휂沼� cung c梳쩺 c찼c t챠nh n훱ng kh찼c nhau c沼쬪 trang web gi梳즜 ph찼p OWL v횪 OWL-ITS (g沼뛦 t梳칣 l횪 \"D沼땉h v沼� OWL\") theo 휂i沼걏 kho梳즢 s沼� d沼쩸g m횪 kh찼ch h횪ng 휃찾 휃沼뱊g 첵, C척ng ty s梳� thu th梳춑 v횪 l튼u tr沼� th척ng tin c찼 nh창n (g沼뛦 t梳칣 l횪 \"Th척ng tin c찼 nh창n\") chi ti梳퓍 nh튼 sau:<br>(1) H梳죒g m沼쩭 b梳칣 bu沼셛 ph梳즜 nh梳춑<br>�몺 �몺 휂沼멼 t튼沼즢g 휃튼沼즓 thu th梳춑 khi 휃훱ng k첵 th횪nh vi챗n: Email, t챗n, t챗n c척ng ty<br>(2) H梳죒g m沼쩭 kh척ng b梳칣 bu沼셛 khi nh梳춑<br>�몺 H챙nh 梳즢h<br>(3) Th척ng tin c찼 nh창n v횪 giao d沼땉h 휃튼沼즓 thu th梳춑 trong qu찼 tr챙nh s沼� d沼쩸g D沼땉h v沼� hay x沼� l첵 c척ng vi沼놻<br>�몺 L沼땉h s沼� s沼� d沼쩸g D沼땉h v沼�, l沼땉h s沼� truy c梳춑, Cookie, th척ng tin IP truy c梳춑, l沼땉h s沼� thanh to찼n, l沼땉h s沼� s沼� d沼쩸g b沼� l沼뾦 <br>(4) M沼쩭 휃챠ch s沼� d沼쩸g v횪 thu th梳춑<br>�몺 Ho梳죜 휃沼셬g t튼 v梳쩸 휃찼p 沼쯰g c찼c y챗u c梳쬾 v沼� d沼땉h v沼� (s梳즢 ph梳쯯)<br>�몼 S沼� d沼쩸g d沼땉h v沼� h沼� th沼몁g th횪nh vi챗n: X찼c nh梳춏 danh t챠nh, x찼c minh danh t챠nh, ng훱n ng沼첺 vi沼놻 s沼� d沼쩸g sai v횪 tr찼i ph챕p, x찼c nh梳춏 첵 휃沼땙h 휃훱ng k첵, l튼u gi沼� h沼� s퉤 nh梳켶 m沼쩭 휃챠ch gi梳즜 quy梳퓍 tranh ch梳쩺, qu梳즢 l첵 ki梳퓆 ngh沼� nh튼 khi梳퓎 n梳죍 v횪 th척ng b찼o c척ng khai.<br>�몾 Thanh to찼n ph챠 theo quy 휃沼땙h v沼� cung c梳쩺 d沼땉h v沼� v횪 th沼켧 hi沼뇆 h沼즤 휃沼뱊g li챗n quan 휃梳퓆 cung c梳쩺 d沼땉h v沼� v횪 cung c梳쩺 d沼땉h v沼� t첫y ch沼뎝h (G沼춊 h처a 휃퉤n, thanh to찼n chi ph챠)<br>�몿 L梳쪅 s沼� li沼뇎 th沼몁g k챗 휃沼� ph찼t tri沼긪 c찼c d沼땉h v沼� (s梳즢 ph梳쯯), chuy챗n m척n m沼쌻, th척ng b찼o s沼� ki沼뇆 qu梳즢g c찼o v횪 cung c梳쩺 c퉤 h沼셢 tham gia cho kh찼ch h횪ng, x찼c minh t챠nh h沼즤 l沼� c沼쬪 d沼땉h v沼� v횪 l梳쪅 s沼� li沼뇎 th沼몁g k챗 v沼� t梳쬷 su梳쩿 truy c梳춑 ho梳톍 s沼� d沼쩸g d沼땉h v沼� c沼쬪 th횪nh vi챗n<br>휂i沼걏 2 (Ph튼퉤ng th沼쯢 thu th梳춑 th척ng tin c찼 nh창n)<br>Th척ng tin c찼 nh창n ch沼� 휃튼沼즓 thu th梳춑 n梳퓎 ng튼沼쓎 d첫ng 휃沼뱊g 첵 th척ng qua 휃훱ng k첵 th횪nh vi챗n: th척ng tin ng튼沼쓎 d첫ng c梳춑 nh梳춗, 휃i沼뇆 tho梳죍, email, 휃훱ng k첵 h沼셢 th梳즣/kh梳즣 s찼t /s沼� ki沼뇆, y챗u c梳쬾 v횪 t튼 v梳쩸, y챗u c梳쬾 li챗n k梳퓍 v횪 c찼c c척ng c沼� t梳죓 th척ng tin kh찼c.<br>휂i沼걏 3 (C횪i 휃梳톞 v횪 v梳춏 h횪nh thi梳퓍 b沼� thu th梳춑 th척ng tin c찼 nh창n t沼� 휃沼셬g v횪 ph튼퉤ng th沼쯢 t沼� ch沼멼)<br>C척ng ty c처 th沼� c횪i 휃梳톞 v횪 v梳춏 h횪nh thi梳퓍 b沼� thu th梳춑 t沼� 휃沼셬g nh튼 �쐁ookie�� v횪 l沼땉h s沼� d沼� d沼쩸g web (g沼뛦 l횪 �쐂沼� li沼뇎 th沼몁g k챗��) v횪 t챙m th척ng tin kh찼ch h횪ng b梳쩿 c沼� khi n횪o kh찼ch h횪ng s沼� d沼쩸g trang web.<br>(1) Cookie l횪 g챙?<br>Cookie l횪 m沼셳 l튼沼즢g nh沼� th척ng tin m횪 m沼셳 trang web g沼춊 t沼쌻 tr챙nh duy沼뇍 web c沼쬪 kh찼ch h횪ng. Khi kh찼ch h횪ng truy c梳춑 trang web, m찼y t챠nh c沼쬪 C척ng ty c처 th沼� 휃沼뛠 n沼셢 dung cookie trong tr챙nh duy沼뇍 c沼쬪 kh찼ch h횪ng v횪 do 휃처 c처 th沼� thu th梳춑 th척ng tin m횪 kh척ng c梳쬷 th챗m b梳쩿 k沼� th척ng tin 휃梳쬾 v횪o n횪o nh튼 t챗n c沼쬪 k梳퓍 n沼멼 b梳켷g c찼ch t챙m ki梳퓅 th척ng tin b沼� sung v沼� kh찼ch h횪ng trong m찼y t챠nh c沼쬪 kh찼ch h횪ng. Kh찼ch h횪ng c처 th沼� quy梳퓍 휃沼땙h c처 n챗n chia s梳� cookie hay kh척ng. Kh찼ch h횪ng c처 th沼� ch沼뛫 c찼c t첫y ch沼뛫 li챗n quan 휃梳퓆 cookie trong m沼쩭 �쏞척ng c沼β��> �쏷h梳� t첫y ch沼뛫 Internet�� 沼� 휃梳쬾 tr챙nh duy沼뇍 web; kh찼ch h횪ng c처 th沼� ch沼뛫 b梳춗 t梳쩿 c梳� cookie, nh梳춏 th척ng b찼o khi cookie 휃튼沼즓 c횪i 휃梳톞 ho梳톍 c크ng c처 th沼� t沼� ch沼멼 cookie. Tuy nhi챗n, n梳퓎 t梳쩿 c梳� cookie b沼� t沼� ch沼멼, kh찼ch h횪ng c처 th沼� g梳톚 kh처 kh훱n trong vi沼놻 s沼� d沼쩸g d沼땉h v沼� ho梳톍 trong vi沼놻 cung c梳쩺 d沼땉h v沼�.<br>(2) D沼� li沼뇎 th沼몁g k챗 l횪 g챙?<br>D沼� li沼뇎 th沼몁g k챗 l횪 th척ng tin 휃튼沼즓 l튼u tr沼� trong m沼셳 khu v沼켧 c沼� th沼� trong m찼y t챠nh ho梳톍 thi梳퓍 b沼� 휃梳쬾 cu沼멼 khi s沼� d沼쩸g c찼c d沼땉h v沼� tr챗n trang web ho梳톍 tr챗n 휃i沼뇆 tho梳죍 di 휃沼셬g v횪 휃튼沼즓 chuy沼긪 휃沼땙h k沼� 휃梳퓆 m찼y ch沼� c沼쬪 C척ng ty. Th척ng tin nh튼 sau:<br>�몺 Th沼몁g k챗 s沼� d沼쩸g d沼땉h v沼� (M척i tr튼沼쓓g m梳죒g trong tr튼沼쓓g h沼즤 k梳퓍 n沼멼 cu沼셛 g沼뛦, c梳칣 cu沼셛 g沼뛦, l沼뾦 cu沼셛 g沼뛦, l沼뾦 th沼켧 thi t梳즜 xu沼몁g, l沼뾦 k梳퓍 n沼멼 v횪 th沼쓎 gian k梳퓍 n沼멼 trong tr튼沼쓓g h沼즤 Internet c처 d창y / kh척ng d창y, v.v.)<br>�몼 Th척ng tin m梳쳕 s沼� d沼쩸g (휃튼沼쓓g d梳쳌 휃i沼걏 h튼沼썀g danh m沼쩭 c沼쬪 kh찼ch h횪ng, c찼c d沼땉h v沼� ch沼� y梳퓎 휃튼沼즓 s沼� d沼쩸g, t梳쬷 su梳쩿 s沼� d沼쩸g d沼땉h v沼�, h沼� s퉤 l튼沼즨 truy c梳춑, v.v.)<br>(3) V梳춏 h횪nh d沼� li沼뇎 th沼몁g k챗 v횪 Cookie c沼쬪 C척ng ty:<br>C척ng ty v梳춏 h횪nh d沼� li沼뇎 th沼몁g k챗 v횪 Cookie v챙 s沼� ti沼뇆 l沼즜 cho kh찼ch h횪ng. M沼쩭 휃챠ch s沼� d沼쩸g d沼� li沼뇎 th沼몁g k챗, Cookie c沼쬪 c척ng ty nh튼 sau:<br>�몺 heo d천i th척ng tin v沼� n沼셢 dung m횪 kh찼ch h횪ng quan t창m 휃沼� cung c梳쩺 D沼땉h v沼� ph첫 h沼즤 v沼쌻 c찼 nh창n khi truy c梳춑 v횪o l梳쬷 sau.<br>�몼 Ph창n t챠ch t梳쬷 su梳쩿 v횪 th沼쓎 l튼沼즢g c沼쬪 ng튼沼쓎 d첫ng 휃찾 휃훱ng k첵 v횪 ng튼沼쓎 d첫ng ch튼a 휃훱ng k첵 휃沼� x찼c 휃沼땙h l칫nh v沼켧 quan t창m v횪 xu h튼沼썀g c沼쬪 kh찼ch h횪ng, ph창n t챠ch th처i quen c沼쬪 ng튼沼쓎 d첫ng 휃찾 휃훱ng k첵 휃沼� s沼� d沼쩸g ch첬ng l횪m c퉤 s沼� trong khi ti梳퓈 th沼� m沼쩭 ti챗u trong tr튼沼쓓g h沼즤 t沼� ch沼쯢 l梳죍 d沼땉h v沼�.<br>�몾 Th척ng b찼o th沼쓎 h梳죒 s沼� d沼쩸g khi s沼� d沼쩸g D沼땉h v沼� t챠nh ph챠.<br>�몿 Cung c梳쩺 th척ng tin ti沼뇆 l沼즜 khi s沼� d沼쩸g H沼뢩 휃찼p v횪 T튼 v梳쩸.<br>휂i沼걏 4 (S沼� d沼쩸g Th척ng tin c찼 nh창n v횪 cung c梳쩺 cho b챗n th沼� 3) <br>(1) C척ng ty s梳� s沼� d沼쩸g v횪 chia s梳� th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng trong ph梳죑 vi \"Th척ng b찼o thu th梳춑 v횪 s沼� d沼쩸g th척ng tin c찼 nh창n\" trong m梳쳕 휃퉤n 휃훱ng k첵 th횪nh vi챗n, 휂i沼걏 kho梳즢 s沼� d沼쩸g v횪 Ch챠nh s찼ch b梳즣 m梳춗 v횪 s梳� kh척ng s沼� d沼쩸g ho梳톍 cung c梳쩺 th척ng tin ngo횪i ph梳죑 vi 휃처 . C沼� th沼�, C척ng ty s梳� s沼� d沼쩸g v횪 cung c梳쩺 th척ng tin c찼 nh창n v沼쌻 c찼c l튼u 첵 sau:<br>�몺 Quan h沼� h沼즤 t찼c<br>C척ng ty c처 th沼� cung c梳쩺 ho梳톍 chia s梳� th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng v沼쌻 c찼c 휃퉤n v沼� h沼즤 t찼c 휃沼� cung c梳쩺 d沼땉h v沼� t沼몋 h퉤n. Trong tr튼沼쓓g h沼즤 n횪y, C척ng ty s梳� th척ng b찼o ri챗ng cho kh찼ch h횪ng li챗n quan v沼� danh t챠nh c찼c 휃퉤n v沼� h沼즤 t찼c, v沼� b梳즢 ch梳쩿 c沼쬪 vi沼놻 th척ng tin c찼 nh창n s梳� 휃튼沼즓 chia s梳� ho梳톍 cung c梳쩺, l첵 do t梳죍 sao th척ng tin c찼 nh창n ph梳즜 휃튼沼즓 chia s梳� ho梳톍 cung c梳쩺, ph튼퉤ng ph찼p qu梳즢 l첵 v횪 th沼쓎 gian l튼u tr沼�. Kh찼ch h횪ng s梳� 휃튼沼즓 th척ng b찼o qua ph튼퉤ng ti沼뇆 휃i沼뇆 t沼�, 휃i沼뇆 tho梳죍, v훱n b梳즢, fax ho梳톍 th튼, v횪 n梳퓎 kh찼ch h횪ng kh척ng 휃沼뱊g 첵 th챙 c척ng ty s梳� kh척ng cung c梳쩺 hay chia s梳� cho 휃퉤n v沼� h沼즤 t찼c.<br>(2) C척ng ty c처 th沼� s沼� d沼쩸g, thu th梳춑 Th척ng tin c찼 nh창n m횪 kh척ng c처 s沼� 휃沼뱊g 첵 c沼쬪 kh찼ch h횪ng trong tr튼沼쓓g h沼즤 휃창y l횪 nh沼칗g Th척ng tin c찼 nh창n c梳쬷 thi梳퓍 휃沼� th沼켧 hi沼뇆 H沼즤 휃沼뱊g cung c梳쩺 d沼땉h v沼� m횪 C척ng ty kh처 c처 휃튼沼즓 s沼� ch梳쩺 thu梳춏 th척ng th튼沼쓓g v챙 l첵 do k沼� thu梳춗 ho梳톍 kinh t梳�.<br>(3) C훱n c沼� v횪o c찼c quy 휃沼땙h c沼쬪 ph찼p lu梳춗 v횪 quy 휃沼땙h c처 li챗n quan, C척ng ty c처 th沼� chia s梳� th척ng tin c찼 nh창n m횪 kh척ng c처 s沼� 휃沼뱊g 첵 c沼쬪 ng튼沼쓎 s沼� d沼쩸g trong c찼c tr튼沼쓓g h沼즤 sau 휃창y:<br>�몺 Khi c梳쬷 thi梳퓍 cho vi沼놻 thanh to찼n ph챠 cung c梳쩺 d沼땉h v沼�.<br>�몼 Tr튼沼쓓g h沼즤 c梳쬷 th척ng tin cho 휃i沼걏 tra th沼� tr튼沼쓓g, nghi챗n c沼쯷 hay th沼몁g k챗, m횪 kh척ng th沼� t챙m hi沼긳 t沼쳌g c찼 nh창n 휃梳톍 bi沼뇍.<br>�몾 Khi c처 c찼c quy 휃沼땙h 휃梳톍 bi沼뇍 trong lu梳춗 nh튼 trong Lu梳춗 v沼� c찼c giao d沼땉h t횪i ch챠nh v횪 b梳즣 m梳춗 t횪i ch챠nh, Lu梳춗 b梳즣 v沼� v횪 s沼� d沼쩸g th척ng tin t챠n d沼쩸g, Lu梳춗 khung v沼� Vi沼꿳 th척ng, Lu梳춗 kinh doanh vi沼꿳 th척ng, Lu梳춗 thu梳� 휃沼땇 ph튼퉤ng, Lu梳춗 b梳즣 v沼� ng튼沼쓎 ti챗u d첫ng, Lu梳춗 ng창n h횪ng H횪n Qu沼멵 v횪 휂梳죓 lu梳춗 t沼� t沼쩸g h챙nh s沼�.<br>�몿 Khi c처 y챗u c梳쬾 t沼� c퉤 quan 휃i沼걏 tra, ph첫 h沼즤 v沼쌻 c찼c th沼� t沼쩭 v횪 ph튼퉤ng ph찼p 휃튼沼즓 quy 휃沼땙h trong c찼c h횪nh vi c처 li챗n quan cho m沼쩭 휃챠ch 휃i沼걏 tra.<br>�뫀 Kh찼ch h횪ng 휃찾 휃沼뱊g 첵 tr튼沼쌵.<br>휂i沼걏 5 ( 沼쫦 th찼c x沼� l첵 Th척ng tin c찼 nh창n) <br>(1) 휂沼� t梳죓 thu梳춏 l沼즜 cho c척ng vi沼놻, nh튼 cung c梳쩺 s沼� thu梳춏 ti沼뇆 cho kh찼ch h횪ng v횪 d沼땉h v沼� t沼몋 h퉤n, C척ng ty c처 th沼� 沼쭃 th찼c thu th梳춑, l튼u tr沼�, x沼� l첵, s沼� d沼쩸g, cung c梳쩺, qu梳즢 l첵 v횪 ti챗u h沼쭃 (g沼뛦 l횪 \"x沼� l첵\") th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng cho m沼셳 c척ng ty chuy챗n m척n b챗n ngo횪i.<br>(2) Khi C척ng ty giao vi沼놻 x沼� l첵 th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng cho m沼셳 c척ng ty chuy챗n m척n b챗n ngo횪i, c찼c chi ti梳퓍 c沼쬪 doanh nghi沼뇈 沼쭃 th찼c v횪 ng튼沼쓎 휃튼沼즓 沼쭃 th찼c 휃튼沼즓 th沼� hi沼뇆 trong b梳즢g sau:<br><T챙nh tr梳죒g cung c梳쩺 v횪 沼쭃 th찼c th척ng tin c찼 nh창n cho b챗n th沼� ba><br>C척ng ty TNHH Th척ng tin & truy沼걆 th척ng NICE <br>D沼땉h v沼� 沼쭃 th찼c th梳� t챠n d沼쩸g<br>Th沼쓎 h梳죒 l튼u gi沼� v횪 s沼� d沼쩸g, Th沼쓎 h梳죒 r첬t t튼 c찼ch th횪nh vi챗n ho梳톍 ch梳쩷 d沼쯶 h沼즤 휃沼뱊g u沼� th찼c<br>(3) C척ng ty cam k梳퓍 kh척ng 沼쭃 th찼c vi沼놻 x沼� l첵 Th척ng tin c찼 nh창n v沼쌻 m沼쩭 휃챠ch ngo횪i m沼쩭 휃챠ch cung c梳쩺 D沼땉h v沼� khi kh척ng c처 s沼� 휃沼뱊g 첵 c沼쬪 kh찼ch h횪ng. Tuy nhi챗n, khi ph찼t sinh tr튼沼쓓g h沼즤 c梳쬷 thi梳퓍, kh찼ch h횪ng s梳� 휃튼沼즓 th척ng b찼o chi ti梳퓍 v沼� c찼c d沼땉h v沼� 沼쭃 th찼c v횪 ng튼沼쓎 휃튼沼즓 沼쭃 th찼c, v횪 s梳� 휃튼沼즓 h沼뢩 xem h沼� c처 휃沼뱊g 첵 hay kh척ng.<br>휂i沼걏 6 (Th沼쓎 h梳죒 b梳즣 l튼u, s沼� d沼쩸g Th척ng tin c찼 nh창n)<br>Th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng s梳� 휃튼沼즓 t沼� 휃沼셬g h沼쭃 b沼� ngay l梳춑 t沼쯢 sau khi m沼쩭 휃챠ch s沼� d沼쩸g v횪 thu th梳춑 Th척ng tin c찼 nh창n 휃찾 휃튼沼즓 휃沼뱊g 첵 tr튼沼쌵 휃처 휃찾 ho횪n t梳쩿. Tuy nhi챗n c척ng ty v梳쳌 c처 th沼� b梳즣 l튼u th척ng tin khi c梳쬷 thi梳퓍 theo lu梳춗 ph찼p ho梳톍 ch챠nh s찼ch n沼셢 b沼�.<br>(1) Th척ng tin th횪nh vi챗n c처 th沼� 휃튼沼즓 gi沼� l梳죍 trong m沼셳 n훱m sau khi th횪nh vi챗n r첬t lui 휃沼� gi梳즡 thi沼긳 thi沼뇍 h梳죍 do vi沼놻 r첬t lui v횪 t찼i gia nh梳춑 l梳죍, v횪 휃沼� x沼� l첵 khi梳퓎 n梳죍 sau khi th횪nh vi챗n r沼쓎 kh沼뢩. <br>(2) Th척ng tin c처 th沼� 휃튼沼즓 l튼u gi沼� l梳죍 cho 휃梳퓆 h梳퓍 th沼쓎 h梳죒 m횪 휃찾 휃튼沼즓 th척ng b찼o tr튼沼쌵 v횪 c처 s沼� 휃沼뱊g 첵 c沼쬪 th횪nh vi챗n.<br>(3) Th척ng tin c찼 nh창n 휃튼沼즓 C척ng ty l튼u gi沼� ph첫 h沼즤 v沼쌻 lu梳춗 ph찼p v횪 quy 휃沼땙h v횪 c찼c lu梳춗 hi沼뇆 h횪nh nh튼 sau:<br>C찼c h梳죒g m沼쩭 b梳즣 l튼u: H沼� s퉤 v沼� h沼즤 휃沼뱊g ho梳톍 r첬t h沼즤 휃沼뱊g, v.v. <br>C훱n c沼� lu梳춗: Lu梳춗 b梳즣 v沼� ng튼沼쓎 ti챗u d첫ng trong th튼퉤ng m梳죍 휃i沼뇆 t沼�, v.v.<br>Th沼쓎 gian b梳즣 l튼u: 5 n훱m <br>C찼c h沼� s퉤 b梳즣 l튼u: h沼� s퉤 cung c梳쩺 thanh to찼n v횪 cung 沼쯰g h횪ng h처a <br>C훱n c沼� lu梳춗: Lu梳춗 b梳즣 v沼� ng튼沼쓎 ti챗u d첫ng trong th튼퉤ng m梳죍 휃i沼뇆 t沼�<br>Th沼쓎 gian b梳즣 l튼u: 5 n훱m<br>H梳죒g m沼쩭 b梳즣 l튼u: H沼� s퉤 khi梳퓎 n梳죍 ho梳톍 tranh ch梳쩺 c沼쬪 ng튼沼쓎 ti챗u d첫ng<br>C훱n c沼� lu梳춗: C훱n c沼� lu梳춗: Lu梳춗 b梳즣 v沼� ng튼沼쓎 ti챗u d첫ng trong th튼퉤ng m梳죍 휃i沼뇆 t沼� <br>Th沼쓎 gian b梳즣 l튼u: 3 n훱m<br>H梳죒g m沼쩭 b梳즣 l튼u: l沼땉h s沼� v沼� hi沼긪 th沼�/ qu梳즢g c찼o<br>C훱n c沼� lu梳춗: Lu梳춗 b梳즣 v沼� ng튼沼쓎 ti챗u d첫ng trong th튼퉤ng m梳죍 휃i沼뇆 t沼�<br>Th沼쓎 gian b梳즣 l튼u: 6 th찼ng<br>H梳죒g m沼쩭 b梳즣 l튼u: Gi梳쪅 t沼� ch沼쯰g minh v횪 s沼� ghi ch챕p v沼� m沼뛦 giao d沼땉h 휃튼沼즓 quy 휃沼땙h trong Lu梳춗 v沼� thu梳�<br>C훱n c沼� lu梳춗: Lu梳춗 thu梳� qu沼멵 gia<br>Th沼쓎 gian b梳즣 l튼u: 5 n훱m<br>H梳죒g m沼쩭 b梳즣 l튼u: H沼� s퉤 v沼� giao d沼땉h t횪i ch챠nh 휃i沼뇆 t沼� <br>C훱n c沼� lu梳춗: Lu梳춗 giao d沼땉h t횪i ch챠nh 휃i沼뇆 t沼� <br>Th沼쓎 gian b梳즣 l튼u: 5 n훱m<br> H梳죒g m沼쩭 b梳즣 l튼u: l沼땉h s沼� 휃梳퓆 t梳춏 n퉤i cung c梳쩺 D沼땉h v沼� <br>C훱n c沼� lu梳춗: Lu梳춗 b梳즣 v沼� b챠 m梳춗 vi沼꿳 th척ng <br>Th沼쓎 gian b梳즣 l튼u: 3 th찼ng<br>(4) Nh梳켶 b梳즣 v沼� Th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng, C척ng ty ph창n lo梳죍 v횪 qu梳즢 l첵 t횪i kho梳즢 휃훱ng k첵 c沼쬪 th횪nh vi챗n th횪nh T횪i kho梳즢 휃ang s沼� d沼쩸g v횪 T횪i kho梳즢 t梳죑 ngh沼� s沼� d沼쩸g. V沼쌻 tr튼沼쓓g h沼즤 trong 1 n훱m kh척ng c처 l沼땉h s沼� s沼� d沼쩸g hay 휃훱ng nh梳춑 v횪o D沼땉h v沼� OWL, 휃沼� b梳즣 v沼� Th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng, t횪i kho梳즢 s梳� 휃튼沼즓 ph창n lo梳죍 th횪nh T횪i kho梳즢 t梳죑 ngh沼�, c척ng ty s梳� kh척ng s沼� d沼쩸g ho梳톍 cung c梳쩺 Th척ng tin c沼쬪 kh찼ch h횪ng cho 휃퉤n v沼� h沼즤 t찼c (b챗n th沼� ba 휃튼沼즓 沼쭃 th찼c ).<br>휂i沼걏 7 (C찼ch th沼쯢 v횪 th沼� t沼쩭 h沼쭃 b沼� Th척ng tin c찼 nh창n)<br>(1) Th척ng tin c찼 nh창n kh찼ch h횪ng sau khi 휃梳죜 휃튼沼즓 m沼쩭 휃챠ch s沼� d沼쩸g v횪 thu th梳춑 m횪 휃찾 nh梳춏 휃튼沼즓 휃沼뱊g 첵 t沼� qu첵 kh찼ch s梳� 휃튼沼즓 di chuy沼긪 휃梳퓆 c퉤 s沼� d沼� li沼뇎 ri챗ng (n梳퓎 l횪 gi梳쪅 s梳� l튼u tr沼� ri챗ng d튼沼쌻 d梳죒g h沼� s퉤), b梳즣 qu梳즢 trong th沼쓎 h梳죒 nh梳쩿 휃沼땙h 휃튼沼즓 quy 휃沼땙h trong lu梳춗 ph찼p li챗n quan, sau 휃처 s梳� h沼쭃 b沼�. <br>(2) Th척ng tin c찼 nh창n 휃튼沼즓 xu梳쩿 ra d튼沼쌻 d梳죒g gi梳쪅 s梳� 휃튼沼즓 h沼쭃 b梳켷g m찼y h沼쭃 ho梳톍 b梳켷g c찼ch thi챗u h沼쭃. Th척ng tin c찼 nh창n 휃튼沼즓 l튼u d튼沼쌻 d梳죒g t횪i li沼뇎 휃i沼뇆 t沼� s梳� 휃튼沼즓 x처a b梳켷g c찼ch s沼� d沼쩸g ph튼퉤ng ph찼p k沼� thu梳춗 kh척ng th沼� ph沼쩭 h沼밿 휃튼沼즓.<br>휂i沼걏 8 (Quy沼걆 v횪 ngh칫a v沼� c沼쬪 kh찼ch h횪ng) <br>(1) Kh찼ch h횪ng (c처 th沼� l횪 ng튼沼쓎 gi찼m h沼� h沼즤 ph찼p n梳퓎 d튼沼쌻 14 tu沼뷼) c처 th沼� xem ho梳톍 thay 휃沼뷼 th척ng tin c찼 nh창n c沼쬪 m챙nh b梳쩿 k沼� l첬c n횪o trong D沼땉h v沼� OWL, c처 th沼� y챗u c梳쬾 r첬t l梳죍 s沼� 휃沼뱊g 첵 c沼쬪 h沼� li챗n quan 휃梳퓆 vi沼놻 thu th梳춑 v횪 s沼� d沼쩸g th척ng tin c찼 nh창n c沼쬪 C척ng ty theo 휂i沼걏 kho梳즢 s沼� d沼쩸g, v횪 c처 th沼� y챗u c梳쬾 C척ng ty h沼쭃 b沼� t튼 c찼ch.<br>(2) 휂沼멼 v沼쌻 kh찼ch h횪ng mu沼몁 xem v횪 s沼춁 th척ng tin 휃훱ng k첵 tr沼켧 tuy梳퓆, vui l챵ng nh梳쩺 v횪o �쏷h척ng tin ng튼沼쓎 d첫ng�� tr챗n trang web 휃沼� xem v횪 ch沼뎝h s沼춁 tr沼켧 ti梳퓈 ho梳톍 li챗n h沼� v沼쌻 trung t창m kh찼ch h횪ng b梳켷g 휃i沼뇆 tho梳죍, email ho梳톍 th튼 th척ng th튼沼쓓g. <br>(3) Tr튼沼쓓g h沼즤 C척ng ty c처 th沼� y챗u c梳쬾 ng튼沼쓎 휃梳죍 di沼뇆 휃梳퓆 t梳춏 n퉤i, 휃沼� ch沼쯰g minh ho梳톍 x찼c minh xem c처 휃첬ng l횪 ng튼沼쓎 휃梳죍 di沼뇆 휃튼沼즓 沼쭃 th찼c h沼즤 ph찼p hay kh척ng v횪 ng튼沼쓎 휃梳죍 di沼뇆<br>(4) N梳퓎 kh찼ch h횪ng y챗u c梳쬾 ch沼뎝h s沼춁 l沼뾦 th척ng tin c찼 nh창n, c척ng ty kh척ng cung c梳쩺 ho梳톍 s沼� d沼쩸g th척ng tin c찼 nh창n t튼퉤ng 沼쯰g tr튼沼쌵 khi ho횪n th횪nh qu찼 tr챙nh s沼춁 휃沼뷼. Ngo횪i ra, n梳퓎 c척ng ty 휃찾 cung c梳쩺 th척ng tin c찼 nh창n cho b챗n th沼� 3, k梳퓍 qu梳� x沼� l첵 s沼춁 휃沼뷼 휃처 s梳� 휃튼沼즓 th척ng b찼o cho b챗n th沼� 3 m횪 kh척ng b沼� ch梳춎 tr沼�.(5) N梳퓎 kh찼ch h횪ng c처 s沼� thay 휃沼뷼 v횪 nh梳춑 th척ng tin c찼 nh창n v횪o tr梳죒g th찼i t沼멼 t창n nh梳쩿, h沼� s梳� th척ng b찼o cho c척ng ty v沼� nh沼칗g th척ng tin kh척ng ch챠nh x찼c ho梳톍 ph梳즜 nh梳춑 th척ng tin kh척ng ch챠nh x찼c, do ch챠nh c척ng ty th척ng b찼o<br>(6) Tr튼沼쓓g h沼즤 kh찼ch h횪ng nh梳춑 th척ng tin sai l沼놻h, x창m ph梳죑, th척ng tin sai l沼놻h c처 th沼� b沼� m梳쩿 m찼t v횪 t튼 c찼ch th횪nh vi챗n c처 li챗n quan 휃梳퓆 lu梳춗 ph찼p, v횪 c처 th沼� b沼� x沼� ph梳죜.<br>휂i沼걏 9 (휃沼멼 s찼ch qu梳즢 l첵 k沼� thu梳춗 휃沼� b梳즣 v沼� th척ng tin c찼 nh창n)<br>C척ng ty 휃ang nghi챗n c沼쯷 c찼c 휃沼멼 s찼ch k沼� thu梳춗 / qu梳즢 l첵 nh튼 sau 휃沼� th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng kh척ng b沼� m梳쩿, b沼� 휃찼nh c梳칛, s沼춁 ch沼칊 ho梳톍 h튼 h沼뢮g.<br>(1) bi沼뇆 ph찼p k沼� thu梳춗<br>�몺 H沼� 휃ang th沼켧 hi沼뇆 c찼c bi沼뇆 ph찼p 휃沼� ph챵ng s沼� gi梳� m梳죓 c沼쬪 h沼� s퉤 k梳퓍 n沼멼.<br>�몼 Th척ng tin c찼 nh창n 찼p d沼쩸g v횪 qu梳즢 l첵 k沼� thu梳춗 m찾 h처a khi g沼춊 ho梳톍 l튼u tr沼� m梳춗 kh梳쯷 ti챗u chu梳쯰 do ph찼p l沼뇆h li챗n quan y챗u c梳쬾 theo ch沼쬷g lo梳죍 휃처.<br>�몾 S沼� d沼쩸g ch튼퉤ng tr챙nh v梳칌 xin 휃沼� ng훱n ch梳톘 nh沼칗g t沼븂 th梳쩿 휃처 do vi r첬t m찼y t챠nh, c처 bi沼뇆 ph찼p c梳춑 nh梳춗 ch튼퉤ng tr챙nh v梳칌 xin 휃沼땙h k沼� v횪 c처 th沼� ng훱n ch梳톘 vi沼놻 vi ph梳죑 th척ng tin c찼 nh창n ngay khi xu梳쩿 hi沼뇆 virus 휃沼셳 ng沼셳.<br>�몿 Ch첬ng t척i l沼켥 ch沼뛫 thi梳퓍 b沼� b梳즣 m梳춗 (SSL) s沼� d沼쩸g ch沼� ngh칫a m梳춗 m찾 휃沼� truy沼걆 t梳즜 th척ng tin c찼 nh창n m沼셳 c찼ch an to횪n.<br>�뫀 N처 휃ang s沼� d沼쩸g h沼� th沼몁g ch梳톘 x창m nh梳춑 v횪 h沼� th沼몁g ph창n t챠ch 휃i沼긩 y梳퓎 cho m沼뾦 m찼y ch沼� 휃沼� chu梳쯰 b沼� cho s沼� x창m nh梳춑 b챗n ngo횪i c沼쬪 hacking th챙 c처 v梳� t沼몋 h퉤n.<br>(2) bi沼뇆 ph찼p quan l梳죍<br>�몺 C척ng ty 휃ang l챗n k梳� ho梳죅h qu梳즢 l첵 n沼셢 b沼� li챗n quan 휃梳퓆 b梳즣 v沼� th척ng tin c찼 nh창n<br>�몼 C척ng ty gi沼쌻 h梳죒 quy沼걆 truy c梳춑 th척ng tin c찼 nh창n th횪nh vi챗n nh沼� nh梳쩿 c梳쬷 thi梳퓍.<br>�몾 C척ng ty lu척n nh梳쩸 m梳죒h tu창n th沼� ph튼퉤ng ph찼p x沼� l첵 th척ng tin c찼 nh창n c沼쬪 c척ng ty th척ng qua 휃횪o t梳죓 n챗n m梳춗 kh梳쯷 ri챗ng, v횪 nh창n vi챗n ti梳퓈 nh梳춏 th척ng tin c찼 nh창n v沼쌻 ng튼沼쓎 ph沼� tr찼ch.<br>�몿 C척ng ty kh척ng ch沼땥 tr찼ch nhi沼뇅 v沼� nh沼칗g vi沼놻 x梳즭 ra v챙 s沼� nguy hi沼긩 c沼쬪 internet c퉤 b梳즢 ho梳톍 l沼뾦 c沼쬪 kh찼ch h횪ng. Kh찼ch h횪ng ph梳즜 t沼� m챙nh qu梳즢 l첵 v횪 t沼� nh梳춏 tr찼ch nhi沼뇅 v沼� email v횪 m梳춗 kh梳쯷 c沼쬪 m챙nh 휃沼� b梳즣 v沼� th척ng tin c찼 nh창n c沼쬪 h沼�.<br>휂i沼걏 10 (Nh창n vi챗n b梳즣 v沼� th척ng tin c찼 nh창n) v횪 li챗n l梳죅 c沼쬪 ng튼沼쓎 ph沼� tr찼ch.<br>C척ng ty ch沼� 휃沼땙h ng튼沼쓎 ch沼땥 tr찼ch nhi沼뇅 qu梳즢 l첵 th척ng tin c찼 nh창n v횪 b沼� ph梳춏 c처 li챗n quan nh튼 sau 휃沼� b梳즣 v沼� th척ng tin c찼 nh창n c沼쬪 kh찼ch h횪ng v횪 x沼� l첵 c찼c b梳쩿 m찾n li챗n quan nh튼 sau. C척ng ty s梳� c沼� g梳칗g h梳퓍 s沼쯢 휃沼� l梳칗g nghe ti梳퓆g n처i c沼쬪 kh찼ch h횪ng v횪 nhanh ch처ng 휃튼a ra c창u tr梳� l沼쓎 휃梳쭃 휃沼�.<br><ng튼沼쓎 ch沼땥 tr찼ch nhi沼뇅 b梳즣 v沼� th척ng tin c찼 nh창n><br>Qu梳즢 l첵: Leader Lee Jungseon | Nh횪 qu梳즢 l첵: vi沼뇆 nghi챗n c沼쯷 ch沼� nhi沼뇅 Kim Yu Jin<br>휂沼셢 ng크 ph沼� tr찼ch: 휃沼셢 ph찼t tri沼긪 gi梳즜 ph찼p cho Trung t창m gi梳즜 ph찼p<br>jslee1@wisestone.kr<br>N梳퓎 b梳죒 c梳쬷 th척ng b찼o ho梳톍 t튼 v梳쩸 v沼� vi沼놻 x창m h梳죍 th척ng tin c찼 nh창n kh찼c, vui l챵ng li챗n h沼� v沼쌻 c찼c c퉤 quan sau.<br>�몺 Trung t창m khai b찼o th척ng tin c찼 nh창n: 휂i沼뇆 tho梳죍 118 / Email privacy@kisa.or.kr / http://privacy.kisa.or.kr<br>�몼 沼쭃 ban c척ng nh梳춏 nh찾n hi沼뇎 b梳즣 v沼� th척ng tin: 휂i沼뇆 tho梳죍 02-580-0533~4 / http://www.eprivacy.or.kr<br>�몾 沼쭃 vi챗n c척ng t沼� vi챗n m梳죒g: 휂i沼뇆 tho梳죍 02-3480-3571 / Email cybercid@spo.go.kr / http://www.spo.go.kr<br>�몿 Trung t창m 휃沼멼 ph처 t沼� xa c沼쬪 s沼� c梳즢h s찼t: 휂i沼뇆 tho梳죍 1566-0112 / http://cyber.go.kr<br>휂i沼걏 11 (ngh칫a v沼� x튼a)<br>C척ng ty c처 th沼� s沼춁 휃沼뷼 ph튼퉤ng ph찼p x沼� l첵 th척ng tin c찼 nh창n nh튼 m沼쩭 휃챠ch ph梳즢 찼nh nh沼칗g thay 휃沼뷼 c沼쬪 d沼땉h v沼� ho梳톍 ph찼p lu梳춗 Tr튼沼쓓g h沼즤 ph튼퉤ng ch창m x沼� l첵 th척ng tin c찼 nh창n 휃튼沼즓 thay 휃沼뷼, c척ng ty 휃훱ng nh沼칗g thay 휃沼뷼, v횪 ph튼퉤ng ph찼p x沼� l첵 th척ng tin c찼 nh창n 휃찾 thay 휃沼뷼 s梳� c처 hi沼뇎 l沼켧 k沼� t沼� sau ng횪y 휃튼沼즓 c척ng b沼�. Tuy nhi챗n, trong tr튼沼쓓g h沼즤 c처 s沼� thay 휃沼뷼 quan tr沼뛫g v沼� quy沼걆 l沼즜 c沼쬪 c찼c b梳죒 th챙 ch첬ng t척i s梳� cho c찼c b梳죒 bi梳퓍 tr튼沼쌵 n沼셢 dung thay 휃沼뷼 30 ng횪y.<br>�� Ng횪y thi: Ng횪y 9 th찼ng 11 n훱m 2018,<br><br>", + "login" : "휂훱ng nh梳춑", + "logout" : "휂훱ng xu梳쩿", + "logInSocialAccount" : "휂훱ng nh梳춑 v횪o t횪i kho梳즢 x찾 h沼셢", + "rememberMe" : "휂ang log in v횪o tr梳죒g th찼i", + "findPassword" : "T챙m M梳춗 kh梳쯷", + "loginFailed" : "휂훱ng nh梳춑 th梳쩿 b梳죍.", + "createAccountNow" : "B창y gi沼� h찾y t梳죓 t횪i kho梳즢 휃i.", + "forgetYourPassword" : "Anh qu챗n m梳춗 kh梳쯷 ch튼a?", + "incorrectEmailFormat" : "H챙nh th沼쯢 email kh척ng ph첫 h沼즤.", + "sendingYouTemporaryPassword" : "Ch첬ng t척i s梳� g沼춊 <strong class=\"text-primary\">m梳춗 kh梳쯷 t梳죑 th沼쓎</strong>휃梳퓆 휃沼땇 ch沼� email b梳죒 휃찾 휃훱ng k첵.", + "pleaseEnterPassword4Characters" : "H찾y nh梳춑 m梳춗 kh梳쯷 tr챗n 4 k첵 t沼�.", + "failedInviteMail" : "Th梳쩿 b梳죍 khi g沼춊 mail 휃梳퓆", + "successInviteMail" : "Th횪nh c척ng g沼춊 th튼 m沼쓎", + "welcomeKakTalkMembership" : "h튼沼썀g d梳쳌 tham gia h沼셢 vi챗n Kakaotalk", + "signUpMembershipKakTalk" : "B梳죒 ph梳즜 ch沼뛫 m沼셳 cung c梳쩺 th척ng tin email 휃沼� 휃훱ng k첵 th횪nh vi챗n qua Kakaotalk. Trong tr튼沼쓓g h沼즤 kh척ng 휃沼뱊g 첵 v沼쌻 휃i沼걏 n횪y, vui l챵ng tham gia v횪o m沼셳 x찾 h沼셢 kh찼c.", + "failedToCreateUser" : "T梳죓 ra ng튼沼쓎 d첫ng th梳쩿 b梳죍", + "failedToModifyUser" : "S沼춁 휃沼뷼 ng튼沼쓎 s沼� d沼쩸g th梳쩿 b梳죍", + "failedToRetrieveIssueHistory" : "Th梳쩿 b梳죍 khi bi梳퓍 th척ng tin li챗n quan 휃梳퓆 v梳쩸 휃沼�", + "proceedWithMembershipWithdrawal" : "ti梳퓆 h횪nh r첬t kh沼뢩 h沼셢 vi챗n? Khi r첬t kh沼뢩 h沼셢 vi챗n, t梳쩿 c梳� d沼� li沼뇎 trong kh척ng gian l횪m vi沼놻 s梳� bi梳퓆 m梳쩿 v횪 kh척ng th沼� ph沼쩭 h沼밿 휃튼沼즓.", + "successWithdrawalFromMembership" : "Th횪nh c척ng tho찼t kh沼뢩 h沼셢 vi챗n", + "failedMemberWithdrawal" : "th梳쩿 b梳죍 trong vi沼놻 r첬t kh沼뢩 h沼셢 vi챗n", + "completedWithdrawalFromOwlITS" : "Ho횪n th횪nh vi沼놻 r첬t lui kh沼뢩 OWL ITS", + "failedToSelectUserDetail" : "Th梳쩿 b梳죍 trong vi沼놻 xem th척ng tin chi ti梳퓍 c沼쬪 ng튼沼쓎 d첫ng", + "notExistUserSession" : "B沼� s튼u t梳춑 ng튼沼쓎 d첫ng kh척ng t沼뱊 t梳죍.", + "completedPasswordChange" : "Ho횪n th횪nh thay 휃沼뷼 m梳춗 kh梳쯷", + "failedPasswordChange" : "휂沼뷼 m梳춗 kh梳쯷 th梳쩿 b梳죍", + "temporaryPasswordIssue" : "c梳쩺 s沼� b챠 m梳춗 t梳죑 th沼쓎", + "failedRequestFindPassword" : "Y챗u c梳쬾 t챙m l梳죍 m梳춗 kh梳쯷 th梳쩿 b梳죍", + "duplicateEmail" : "tr첫ng l梳톚 email", + "duplicateEmailEntered" : "Email tr첫ng l梳톚 휃찾 휃튼沼즓 nh梳춑.", + "confirmEmailInput" : "x찼c nh梳춏 nh梳춑 email", + "emailEnteredIncorrectly" : "Email 휃튼沼즓 nh梳춑 sai.", + "noEmailEntered" : "Email ch튼a 휃튼沼즓 nh梳춑." + }, + "notice" : { + "notice" : "Th척ng b찼o", + "registerNotice" : "휂훱ng k첵 th척ng b찼o", + "modifyNotice" : "Ch沼뎝h s沼춁 th척ng b찼o", + "enterSpecialCharacters" : "B梳죒 kh척ng th沼� nh梳춑 c찼c k첵 t沼� 휃梳톍 bi沼뇍 trong ti챗u 휃沼�.", + "failedNoticeRegistration" : "휂훱ng k첵 th척ng b찼o th梳쩿 b梳죍", + "failedToLookupNotificationList" : "M챙nh kh척ng th沼� 휃沼뛠 휃튼沼즓 danh s찼ch th척ng b찼o", + "failedToModifyNotice" : "th梳쩿 b梳죍 trong vi沼놻 thay 휃沼뷼", + "failedToLookupNotificationDetails" : "Th梳쩿 b梳죍 trong vi沼놻 xem th척ng tin chi ti梳퓍" + }, + "manageUser" : { + "manageUser" : "User Permission Management", + "manageIssueSystemPerm" : "Issue System", + "manageUserPerm" : "User", + "manageNoticePerm" : "Notice", + "manageFAQPerm" : "FAQ", + "manageQnAPerm" : "QnA", + "manageEventPerm" : "Event", + "manageGuidePerm" : "Guide" + }, + "FAQ" : { + "FAQ" : "FAQ", + "manageFAQ" : "FAQ Management", + "registerFAQ" : "FAQ Registration", + "modifyFAQ" : "Modify FAQ", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedFAQRegistration" : "Failed to register FAQ.", + "failedToLookupFAQList" : "Failed to look up FAQ list", + "failedToModifyFAQ" : "Failed to modify FAQ", + "failedToLookupFAQDetails" : "Failed to look up FAQ details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "QNA" : { + "QNA" : "QnA", + "manageQNA" : "QnA Management", + "registerQNA" : "Question Registration", + "modifyQNA" : "Modify QnA", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedQNARegistration" : "Failed to register QnA.", + "failedToLookupQNAList" : "Failed to look up QnA list", + "failedToModifyQNA" : "Failed to modify QnA", + "failedToLookupQNADetails" : "Failed to look up QnA details" + }, + "event" : { + "event" : "Event", + "manageEvent" : "Event Management", + "registerEvent" : "Event Registration", + "modifyEvent" : "Modify Event", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedEventRegistration" : "Failed to register Event.", + "failedToLookupEventList" : "Failed to look up Event list", + "failedToModifyEvent" : "Failed to modify Event", + "failedToLookupEventDetails" : "Failed to look up Event details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "guide" : { + "guide" : "Guide", + "manageGuide" : "Guide Management", + "registerGuide" : "Guide Registration", + "modifyGuide" : "Modify Guide", + "enterSpecialCharacters" : "You can not enter special characters in the title.", + "failedGuideRegistration" : "Failed to register Guide.", + "failedToLookupGuideList" : "Failed to look up Guide list", + "failedToModifyGuide" : "Failed to modify Guide", + "failedToLookupGuideDetails" : "Failed to look up Guide details", + "failedToActivation" : "Failed to Activation", + "activation" : "Activation" + }, + "inquiry" : { + "toInquiry" : "Li챗n l梳죅 v沼쌻 ch첬ng t척i", + "inquiryToOWL" : "H沼뢩 OWL ITS", + "asap" : "T척i s梳� tr梳� l沼쓎 cho b梳죒 c횪ng s沼쌿 c횪ng t沼몋.", + "inquiryGreeting" : "T척i c처 th沼� gi첬p g챙 cho anh?", + "contactCompleted" : "휂찾 ti梳퓈 nh梳춏 c창u h沼뢩", + "failedToReceiveEnquiry" : "Th梳쩿 b梳죍 khi ti梳퓈 nh梳춏 c창u h沼뢩" + }, + "common" : { + "urgent" : "t챙nh tr梳죒g c梳쩺 b찼ch", + "high" : "창m cao", + "medium" : "th척ng th튼沼쓓g", + "low" : "창m th梳쩺", + "critical" : "t챠nh tr梳쬶 tr沼뛫g", + "major" : "창m cao", + "minor" : "th척ng th튼沼쓓g", + "trivial" : "창m th梳쩺", + "save" : "L튼u", + "saved" : "L튼u", + "close" : "c沼춁 k챠n", + "search" : "T챙m ki梳퓅", + "reset" : "Kh沼웙 휃沼셬g l梳죍", + "uploadExcel" : "upload l챗n t沼� s튼沼썀g", + "create" : "T梳죓", + "cancel" : "H沼쭃", + "submit" : "chuy沼긪 giao", + "modify" : "Ch沼뎝h s沼춁", + "dashboard" : "B梳즢g 휃i沼걏 khi沼긪", + "workspace" : "Kh척ng gian l횪m vi沼놻", + "project" : "D沼� 찼n", + "issue" : "V梳쩸 휃沼�", + "setting" : "C횪i 휃梳톞", + "user" : "Ng튼沼쓎 s沼� d沼쩸g", + "workflow" : "Quy tr챙nh l횪m vi沼놻", + "updateIssueStatus" : "thay 휃沼뷼 휃i沼걏 ki沼뇆 v梳쩸 휃沼�", + "changeReason" : "l첵 do thay 휃沼뷼", + "failedToIssueStatusListLookup" : "L튼沼즨 truy c梳춑 v梳쩸 휃沼�, th梳쩿 b梳죍", + "customField" : "Tr튼沼쓓g 휃沼땙h ngh칫a ng튼沼쓎 d첫ng", + "select" : "Ch沼뛫", + "checkAll" : "Ch沼뛫 t梳쩿 c梳�", + "unCheckAll" : "X처a t梳쩿 c梳�", + "send": "G沼춊", + "selected" : "휂찾 ch沼뛫", + "selectable" : "c처 th沼� l沼켥 ch沼뛫", + "password" : "M梳춗 kh梳쯷", + "information" : "Th척ng tin", + "noData" : "Kh척ng c처 d沼� li沼뇎", + "name" : "T챗n", + "status" : "Tr梳죒g th찼i", + "email" : "Email", + "few" : " S沼�", + "userNum" : " s沼�", + "selectedSearchCriteria" : "휃i沼걏 ki沼뇆 t챙m ki梳퓅 휃찾 ch沼뛫", + "detailedSearch" : "ki沼긩 tra chi ti梳퓍", + "type" : "Lo梳죍", + "priority" : "Th沼� t沼� 튼u ti챗n", + "importance" : "M沼쯢 휃沼� quan tr沼뛫g", + "assignee" : "Ng튼沼쓎 ph沼� tr찼ch", + "register" : "Ng튼沼쓎 휃훱ng k첵", + "startDate" : "Ng횪y b梳칣 휃梳쬾", + "endDate" : "Ng횪y k梳퓍 th첬c", + "english" : "ti梳퓆g Anh", + "korean" : "ti梳퓆g H횪n", + "japaneseLanguage" : "Ti梳퓆g Nh梳춗", + "vietnamese" : "Vi沼뇍 Nam", + "add" : "s沼� b沼� sung", + "addFunction" : "T챠nh n훱ng th챗m v횪o", + "downloadExcel" : "T梳즜 xu沼몁g excel", + "importExcel" : "Excel Import", + "registerExcelUploadIssue" : "휂훱ng k첵 m沼셳 s沼� v梳쩸 휃沼�", + "delete" : "X처a", + "checkPurgingTargets" : "Ki沼긩 tra 휃沼멼 t튼沼즢g b沼� x처a", + "selectDestinationDeletion" : "H찾y ch沼뛫 휃沼멼 t튼沼즢g b沼� x처a.", + "deleteFailed" : "Th梳쩿 b梳죍", + "deleteSucceeded" : "X처a th횪nh c척ng", + "content" : "N沼셢 dung", + "selectTarget" : "Ch沼뛫 휃沼멼 t튼沼즢g", + "period" : "Th沼쓎 h梳죒", + "attachFiles" : "휂챠nh k챔m t梳춑 tin", + "selectFile" : "l沼켥 ch沼뛫 t梳춑 tin", + "changeDate" : "ng횪y thay 휃沼뷼", + "lastChangeDate" : "vi沼놻 thay 휃沼뷼 g梳쬷 휃창y", + "registrationDate" : "Ng횪y 휃훱ng k첵", + "fullView" : "s沼� nh챙n chung", + "comments" : "B챙nh lu梳춏", + "record" : "h沼� s퉤", + "noAssignee" : "Kh척ng c처 ng튼沼쓎 ph沼� tr찼ch.", + "noContent" : "Kh척ng c처 n沼셢 dung.", + "noRecord" : "Kh척ng c처 ghi ch챕p.", + "noComments" : "Kh척ng c처 b챙nh lu梳춏.", + "noAttachedFile" : "Kh척ng c처 t梳춑 tin 휃튼沼즓 휃챠nh k챔m.", + "noValueEntered" : "Kh척ng c처 gi찼 tr沼� nh梳춑.", + "noValueSelected" : "Kh척ng c처 gi찼 tr沼� l沼켥 ch沼뛫.", + "writeWaring2" : "<li>C찼c c沼셳 ti챗u 휃沼� c처 th沼� nh梳춑 t沼멼 휃a 300 ch沼�.</li><li>C찼c c沼셳 n沼셢 dung c처 th沼� nh梳춑 t沼멼 휃a 5000 ch沼�.</li><li>C찼c c沼셳 d沼� 찼n c梳쬷 nh梳춑 ph챠m d沼� 찼n.<dl><dt>C처 th沼� ki沼긩 tra ph챠m d沼� 찼n 沼� danh m沼쩭 d沼� 찼n.</dt></dl></li><li>C찼c c沼셳 lo梳죍 c梳쬷 nh梳춑 t챗n c찼c c沼셳 c처 v梳쩸 휃沼�.<dl><dt>C처 th沼� ki沼긩 tra lo梳죍 h챙nh 沼� danh m沼쩭 lo梳죍 h챙nh.</dt></dl></li><li>C沼셳 휃훱ng k첵 th沼� t沼� 튼u ti챗n ch沼� 휃튼沼즓 nh梳춑 m沼셳 trong s沼� c찼c 창m th梳쩺, th척ng th튼沼쓓g, cao.</li><li>C찼c c沼셳 s처ng quan tr沼뛫g ph梳즜 nh梳춑 m沼셳 trong c찼c 창m ti梳퓍, th척ng th튼沼쓓g v횪 n梳톘g.</li><li>Ng튼沼쓎 ph沼� tr찼ch c처 th沼� ch沼� 휃沼땙h qua email.<dl><dt>N梳퓎 mu沼몁 ch沼� 휃沼땙h m沼셳 s沼� ng튼沼쓎 ph沼� tr찼ch, c처 th沼� ph창n lo梳죍 th횪nh #c처 th沼� 휃훱ng k첵.</dt><dt>ex) wisestoneowl@gmail.com#support@wisestone.kr </dt><dt>Ng튼沼쓎 ph沼� tr찼ch ph梳즜 tham gia d沼� 찼n c沼쬪 v梳쩸 휃沼� m횪 ng튼沼쓎 li챗n quan 휃沼땙h 휃훱ng k첵.</dt></dl></li><li>Ng횪y b梳칣 휃梳쬾 ph梳즜 nh梳춑 theo h챙nh th沼쯢 sau<dl><dt>k梳퓍 qu梳� nh梳춑 ng횪y 2018-11-22 10:30:00 AM O </dt></dl></li><li>T沼� Judeuryester l횪 휃i沼긩 c梳쬷 thi梳퓍 휃沼� 휃沼땙h ngh칫a ng튼沼쓎 d첫ng. B梳죒 c梳쬷 nh梳춑 gi찼 tr沼� c梳쬷 thi梳퓍.<dl><dt>Tr튼沼쓓g h沼즤 danh ngh칫a ng튼沼쓎 d첫ng t튼퉤ng 沼쯰g l횪 ch沼� nh梳춑 chu沼뾦 k첵 t沼� th챙 c처 th沼� nh梳춑 t沼멼 휃a 휃梳퓆 100 ch沼�.</dt><dt>N梳퓎 c梳쬷 nhi沼걏 gi찼 tr沼� do ch챠nh ngh칫a ng튼沼쓎 d첫ng l沼켥 ch沼뛫 #c처 th沼� nh梳춑 m沼셳 s沼� gi찼 tr沼�.</dt><dt>ex) Trong tr튼沼쓓g h沼즤 gi찼 tr沼� l沼켥 ch沼뛫 l횪 m챔o, c첬n con, th沼�, 휃沼� quy梳퓍 휃沼땙h gi찼 tr沼� con th챙 ph梳즜 nh梳춑 <span class=\"fc-blue\">M챔o #Con th沼�</span>nh튼 v梳춞. </dt></dl></li>", + "color" : "m횪u s梳칌", + "activityLogs" : "n沼셢 dung ho梳죜 휃沼셬g", + "updatableStatus" : "T챙nh tr梳죒g c처 th沼� thay 휃沼뷼", + "testCase" : "tr튼沼쓓g h沼즤 ki沼긩 tra", + "updateStatus" : "Thay 휃沼뷼 tr梳죒g th찼i", + "tcmProject" : "D沼� 찼n qu梳즢 l첵 case 휃i沼뇆 tho梳죍", + "btsProject" : "D沼� 찼n qu梳즢 l첵 v梳쩸 휃沼�", + "projectName" : "T챗n d沼� 찼n", + "setParticipatingInProject" : "H찾y thi梳퓍 l梳춑 ng튼沼쓎 d첫ng tham gia d沼� 찼n.", + "noUpdatedStatus" : "Kh척ng c처 tr梳죒g th찼i c처 th沼� thay 휃沼뷼.", + "wait" : "b찼t t척", + "progress" : "Ti梳퓆 h횪nh", + "end" : "K梳퓍 th첬c", + "choose" : "Vui l챵ng ch沼뛫.", + "stringField" : "n첬t b梳쬷", + "multipleSelectionField" : "c梳쬷 nhi沼걏 l沼켥 ch沼뛫", + "singleSelectionField" : "Ch沼� vi梳퓍 t梳칣 c沼쬪 m沼셳 ng튼沼쓎", + "detailInformation" : "th척ng tin chi ti梳퓍", + "beginEnglishTheProject" : "Ph梳즜 b梳칣 휃梳쬾 b梳켷g ti梳퓆g Anh chi沼걏 cao d沼� 찼n.", + "least3Characters" : "B梳죒 n챗n nh梳춑 챠t nh梳쩿 3 k첵 t沼�.", + "upTo10Characters" : "C처 th沼� nh梳춑 t沼멼 휃a 10 k첵 t沼�.", + "upTo20Characters" : "C처 th沼� nh梳춑 t沼멼 휃a 20 k첵 t沼�.", + "upTo15Characters" : "C처 th沼� nh梳춑 t沼멼 휃a 15 k첵 t沼�.", + "upTo50Characters" : "C처 th沼� nh梳춑 t沼멼 휃a 50 k첵 t沼�.", + "upTo100Characters" : "C처 th沼� nh梳춑 t沼멼 휃a 100 k첵 t沼�.", + "profile" : "H沼� s퉤", + "profilePicture" : "h챙nh profile", + "thisWeek" : "Tu梳쬷 n횪y", + "lastWeek" : "Tu梳쬷 tr튼沼쌵", + "last7Days" : "ng횪y 7 th찼ng g梳쬷 휃창y", + "thisMonth" : "th찼ng n횪y", + "lastMonth" : "th찼ng tr튼沼쌵(ng횪y 1~ ng횪y mu沼셬)", + "last30Days" : "Ng횪y ba m튼퉤i m沼몋", + "directInput" : "s沼쯢 v횪o tr沼켧 ti梳퓈", + "pleaseEnterComments" : "H찾y nh梳춑 b챙nh lu梳춏...", + "overallIssueHandlingStatus" : "T챙nh h챙nh x沼� l첵 v梳쩸 휃沼� to횪n th沼�", + "emailCannotBeChanged" : "Kh척ng th沼� thay 휃沼뷼 email.", + "companyInformation" : "C척ng ty WiseStone<br/>M찾 s沼� 휃훱ng k첵 kinh doanh : 220-87-50221 <span>|</span> Gi찼m 휃沼멵 휃i沼걏 h횪nh: Lee Young Seok <br/>tr沼� s沼� ch챠nh : T梳쬷g 6, 291, Gangnamdaero, Seochogu, Seoul", + "companyInformation2" : "C척ng ty WiseStone <span>|</span> M찾 s沼� 휃훱ng k첵 kinh doanh: 220-87-50221 <span>|</span> Gi찼m 휃沼멵 휃i沼걏 h횪nh Lee Young Seok<br/>tr沼� s沼� ch챠nh : T梳쬷g 6, 291, Gangnamdaero, Seochogu, Seoul <!--<span>|</span> 휂i沼뇆 tho梳죍 휃梳죍 di沼뇆 02-6257-5958 --><span>|</span> E-mail: <a href=\"mailto:supportowl@wisestone.kr\">supportowl@wisestone.kr </a><br/><small>CopyRight WISESTONE All rights reserved.</small>", + "noImage" : "Kh척ng c처 h챙nh 梳즢h 휃튼沼즓 휃챠nh k챔m.", + "failedLanguageChange" : "Th梳쩿 b梳죍 trong vi沼놻 thay 휃沼뷼 ng척n ng沼�", + "notSelectedLanguage" : "Kh척ng 휃튼沼즓 l沼켥 ch沼뛫 ng척n ng沼�.", + "exceedsMaximumUsersWorkspace" : "v튼沼즨 qu찼 kh척ng gian l횪m vi沼놻", + "deleteParticipatingWorkspaceReminder" : "th척ng b찼o x처a kh척ng gian c척ng vi沼놻 tham gia", + "failedToUpdateParticipatingSessions" : "Th梳쩿 b梳죍 khi c梳춑 nh梳춗 ph梳쬷 m沼걅 tham gia", + "disableParticipationWorkspace" : "th척ng b찼o ng沼쳌g ho梳죜 휃沼셬g", + "disableParticipationWorkspaceMessage" : "휂찾 b沼� lo梳죍 kh沼뢩 kh척ng gian c척ng vi沼놻 휃ang 휃튼沼즓 s沼� d沼쩸g hi沼뇆 nay.", + "alertsAboutSystem" : "Th척ng tin h沼� th沼몁g", + "newAlert" : "Th척ng b찼o m沼쌻 휃梳퓆 r沼밿.", + "pleaseWait" : "Ch沼� ch첬t nh챕...", + "createIssue" : "t梳죓 n챗n m沼셳 v梳쩸 휃沼�", + "updateIssue" : "thay 휃沼뷼 v梳쩸 휃沼�", + "deleteIssue" : "x처a b沼� v梳쩸 휃沼�", + "updateTitle" : "T沼켥 휃沼� 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updateContent" : "N沼셢 dung 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updateProject" : "D沼� 찼n 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updateSeverity" : "T梳쬶 quan tr沼뛫g 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updatePriority" : "Th沼� t沼� 튼u ti챗n 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updateHasStatus" : "Tr梳죒g th찼i 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updateHasStatusReservation" : "Con ch처 b沼� ng梳쩿 v챙 t沼쯢 gi梳춏", + "updateWorkflowNotExist" : "T챙nh tr梳죒g kh척ng t沼뱊 t梳죍 trong workbook 휃찾 휃튼沼즓 thay 휃沼뷼, v梳쩸 휃沼� 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updateIssueType" : "V梳쩸 휃沼� 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updatePeriod" : "Th沼쓎 gian 휃찾 휃튼沼즓 thay 휃沼뷼.", + "unspecified" : "kh척ng ch챠nh x찼c", + "updateAssignee" : "Ng튼沼쓎 ph沼� tr찼ch 휃찾 휃튼沼즓 thay 휃沼뷼.", + "none" : "Kh척ng c처", + "updateAttachment" : "T梳춑 tin 휃챠nh k챔m 휃찾 휃튼沼즓 thay 휃沼뷼.", + "deleteAttachment" : "T梳춑 tin 휃챠nh k챔m 휃찾 b沼� x처a.", + "registerAttachment" : "T梳춑 tin 휃챠nh k챔m 휃찾 휃튼沼즓 휃훱ng k첵.", + "updateCustomField" : "Vi沼놻 휃沼땙h ngh칫a ng튼沼쓎 d첫ng 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updateIssueCustomField" : "Gi찼 tr沼� l沼켥 ch沼뛫 con s沼� theo 휃沼땙h ngh칫a ng튼沼쓎 d첫ng 휃찾 휃튼沼즓 thay 휃沼뷼 v횪 gi찼 tr沼� c梳쬷 thi梳퓍 c沼쬪 휃沼땙h ngh칫a ng튼沼쓎 d첫ng c沼쬪 v梳쩸 휃沼� 휃찾 휃튼沼즓 thay 휃沼뷼.", + "updateIssueCustomFieldType" : "Gi찼 tr沼� c梳쬷 thi梳퓍 c沼쬪 휃沼땙h ngh칫a ng튼沼쓎 d첫ng 휃찾 thay 휃沼뷼 do lo梳죍 h챙nh 휃沼땙h ngh칫a ng튼沼쓎 d첫ng thay 휃沼뷼.", + "continue" : "ti梳퓈 t沼쩭", + "failedToUserListLookUp" : "L튼沼즨 truy c梳춑 ng튼沼쓎 d첫ng th梳쩿 b梳죍", + "failedToProjectListLookUp" : "Danh s찼ch d沼� 찼n th梳쩿 b梳죍", + "failedToWorkflowListLookUp" : "L튼沼즨 t챙m vi沼놻 trong danh s찼ch workflow th梳쩿 b梳죍", + "title" : "T沼켥 휃沼�", + "number" : "con s沼�", + "m" : "M", + "d" : "D", + "emptyUser" : "Kh척ng c처 ng튼沼쓎 ph沼� tr찼ch 휃沼� c처 th沼� l沼켥 ch沼뛫.", + "emptyProject" : "Kh척ng c처 d沼� 찼n n횪o c처 th沼� ch沼뛫 l沼켥 c梳�." + } + + +} diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html new file mode 100644 index 0000000..9de0058 --- /dev/null +++ b/src/main/webapp/index.html @@ -0,0 +1,88 @@ +<!DOCTYPE html> +<html lang="ko"> +<head> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> + <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"> + <meta http-equiv="Pragma" content="no-cache"> + <!-- 罹먯떆 留뚮즺 �궇吏� --> + <meta http-equiv="Expires" content="0"> + + <!-- �썝蹂� 媛� : private --> + <meta name="viewport" + content="width=device-width, initial-scale=1, maximum-scale=1"> + <!-- 遊뉗씠 �씫�뒗 �꽕紐� --> + <meta name="description" content="�씠�뒋 愿�由� �떆�뒪�뀥 - �쎒 湲곕컲�쓽 �씠�뒋 愿�由� �떆�뒪�뀥 v4.0.34"> + <meta property="og:type" content="website"> + <meta property="og:title" content="OWL ITS - ���씠利덉뒪�넠"> + <meta property="og:description" content="�씠�뒋 愿�由� �떆�뒪�뀥 - �쎒 湲곕컲�쓽 �씠�뒋 愿�由� �떆�뒪�뀥 v4.0.34"> + <meta property="og:image" content="https://owlsolution.io/assets/images/main.png"> + <meta property="og:url" content="https://owlsolution.io"> + <meta name="google-site-verification" content="yhmSp9Zsw5oecXjp43Ndu0w9rBA3FNpnNZ8bQFA_iDA"/> + <meta name="viewport" content="user-scalable=no,initial-scale=1,maximum-scale=1"> + + <title>OWL ITS v4.0.34</title> + + <link type="text/css" rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css"> + <link type="text/css" rel="stylesheet" href="bower_components/jquery-ui/themes/base/jquery-ui.css"> + <link type="text/css" rel="stylesheet" href="bower_components/nvd3/build/nv.d3.min.css"> + <link type="text/css" rel="stylesheet" href="bower_components/d3-context-menu/css/d3-context-menu.css"> + <link type="text/css" rel="stylesheet" href="bower_components/datetimepicker/build/jquery.datetimepicker.min.css"> + <link type="text/css" rel="stylesheet" href="bower_components/bootstrap-daterangepicker/daterangepicker.css"> + <link type="text/css" rel="stylesheet" href="bower_components/nvd3/build/nv.d3.min.css"> + <link type="text/css" rel="stylesheet" href="bower_components/ng-image-gallery/dist/ng-image-gallery.min.css"> + <link type="text/css" rel="stylesheet" href="custom_components/sweetalert/sweetalert.css"> + <link type="text/css" rel="stylesheet" href="custom_components/file-upload-progress/file-upload-progress.css"> + <link type="text/css" rel="stylesheet" href="custom_components/summernote/summernote.css"> + <link type="text/css" rel="stylesheet" + href="custom_components/bootstrap-colorpalette/css/bootstrap-colorpalette.css"> + <link type="text/css" rel="stylesheet" href="custom_components/angular-multi-select/angular-multi-select.css"> + <link type="text/css" rel="stylesheet" href="custom_components/js-autocomplete-single/js-autocomplete-single.css"> + <link type="text/css" rel="stylesheet" href="custom_components/js-autocomplete-multi/js-autocomplete-multi.css"> + <link type="text/css" rel="stylesheet" href="custom_components/js-html-diff/js-html-diff.css"> + <link type="text/css" rel="stylesheet" href="assets/styles/main.css?version=4.0.34"> + <link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rubik:300,400,500"> + <!-- google font --> + <link rel="shortcut icon" href="assets/images/favicon.png"/> <!-- �씠誘몄� �븘�씠肄� --> + + <!-- Google Tag Manager --> + <!-- zenith edit + <script> + (function (w, d, s, l, i) { + w[l] = w[l] || []; + w[l].push({ + 'gtm.start' : + new Date().getTime(), event : 'gtm.js' + }); + var f = d.getElementsByTagName(s)[0], + j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; + j.async = true; + j.src = + 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; + f.parentNode.insertBefore(j, f); + })(window, document, 'script', 'dataLayer', 'GTM-PW2T38B'); + </script> + --> + <!-- End Google Tag Manager --> + +</head> + +<body class="menu-position-side menu-side-left full-screen with-content-panel" ng-controller="commonController"> + +<!-- �봽濡쒓렇�옒�뒪諛� --> +<progress-spinner></progress-spinner> +<!-- �뙆�씪 �뾽濡쒕뱶 吏꾪뻾瑜� --> +<file-upload-progress></file-upload-progress> +<!-- 臾몄쓽�븯湲� --> +<js-information></js-information> + +<!-- 硫붿씤 �쁺�뿭 --> +<div class="all-wrapper with-side-panel solid-bg-all"> + <div ui-view></div> +</div> + +<script data-main="scripts/main" + src="bower_components/requirejs/require.js"></script> + +</body> +</html> diff --git a/src/main/webapp/robots.txt b/src/main/webapp/robots.txt new file mode 100644 index 0000000..57eacb7 --- /dev/null +++ b/src/main/webapp/robots.txt @@ -0,0 +1,5 @@ +User-agent:Yeti +Disallow: /WEB-INF + +User-agent:* +Disallow: / diff --git a/src/main/webapp/scripts/app.js b/src/main/webapp/scripts/app.js new file mode 100644 index 0000000..9ba72da --- /dev/null +++ b/src/main/webapp/scripts/app.js @@ -0,0 +1,53 @@ +/** + * Created by wisestone on 2017-12-14. + */ +'use strict'; +// angular�뿉�꽌 �궗�슜�븯�뒗 紐⑤뱢�쓣 濡쒕뱶�븯怨� angular.module �뿉 �벑濡앺븳�떎. +define([ + 'angular', // angular 紐⑤뱢�쓣 �궗�슜�븯湲� �쐞�빐 import + 'uiRouter', // ui-router 瑜� �궗�슜�븯湲� �쐞�빐 import + 'ngResource', + 'angularSanitize', // html 諛붿씤�뵫 蹂댁븞�뿉 �궗�슜�븯湲� �쐞�빐 import + 'uiBootstrap', + 'bindOnce', // �뀒�씠釉� 遺��븯瑜� 以꾩씠湲� �쐞�빐 import. + 'angularDropMultiSelect', // 硫��떚 ���젆�듃 而댄룷�꼳�듃瑜� �궗�슜�븯湲� �쐞�빐 import + 'angularCookie', // �떎援��뼱瑜� �궗�슂�븯湲� �쐞�빐 import + 'angularTranslate', // �떎援��뼱瑜� �궗�슜�븯湲� �쐞�빐 import + 'angularTranslateLoaderPartial', // �떎援��뼱瑜� �궗�슜�븯湲� �쐞�빐 import + 'angularTranslateStorageCookie', // �떎援��뼱瑜� �궗�슜�븯湲� �쐞�빐 import + 'taylorcodeAngularFileUpload', // angular file upload 瑜� �쐞�빐 import + 'ngStomp', // �쎒 �냼耳� �궗�슜�쓣 �쐞�빐 import + 'angularAnimate', // �븷�땲硫붿씠�뀡 �궗�슜�쓣 �쐞�빐 import + 'jsAutoCompleteMulti', // �떎以� �꽑�깮�씠 媛��뒫�븳 autoComplete 而댄룷�꼳�듃瑜� �궗�슜�븯湲� �쐞�빐 import + 'jsInputAutoComplete', // Input �븘�뱶�뿉 autoComplete 湲곕뒫�씠 異붽��릺�뒗 而댄룷�꼳�듃瑜� �궗�슜�븯湲� �쐞�빐 import + 'jsAutoCompleteSingle', // input 諛뺤뒪�뿉 �븳媛쒖쓽 ���긽留� �꽑�깮 媛��뒫�븷�닔 �엳�뒗 autoComplete 湲곕뒫�씠 遺숈� 而댄룷�꼳�듃瑜� �궗�슜�븯湲� �쐞�빐 import + 'ngSweetAlert', // �뙘�뾽 �븣由쇱갹�쓣 �궗�슜�븯湲� �쐞�빐 import + 'angularSummerNote', // �뿉�뵒�꽣 �궗�슜�븯湲� �쐞�빐 import + 'angularUiSortable', // �뱶�옒洹몃�� �궗�슜�븯湲� �쐞�빐 import + 'angularNvd3', // ���떆蹂대뱶�뿉�꽌 nvd3 李⑦듃瑜� �궗�슜�븯湲� �쐞�빐 import + 'ngImageGallery', // �씠�뒋 �긽�꽭�뿉�꽌 �궗吏� 蹂닿린 �쐞�빐 import + ], + function (angular) { + return angular.module('wisestoneApp', [ + 'ui.router', // Routing + 'ngResource', // ngResource + 'ui.bootstrap', // Ui Bootstrap + 'pasvaz.bindonce', + 'angularjs-dropdown-multiselect', + 'ngCookies', + 'pascalprecht.translate', + 'ngSanitize', + 'angularFileUpload', + 'ngStomp', + 'ngAnimate', + 'js-autocomplete-multi', + 'js-input-autocomplete', + 'js-autocomplete-single', + 'oitozero.ngSweetAlert', + 'summernote', + 'ui.sortable', + 'nvd3', + 'thatisuday.ng-image-gallery' + ]); + } +); diff --git a/src/main/webapp/scripts/app/common/common.controller.js b/src/main/webapp/scripts/app/common/common.controller.js new file mode 100644 index 0000000..9f28f65 --- /dev/null +++ b/src/main/webapp/scripts/app/common/common.controller.js @@ -0,0 +1,381 @@ +'use strict'; + +define(['app', + 'angular' + ], + function (app, angular) { + + app.controller('commonController', ['$scope', '$rootScope', '$log', 'Auth', '$state', 'User', '$resourceProvider', '$uibModal', 'SweetAlert', 'Workspace', '$translate', '$q', + '$interval', 'IssueSearch', '$filter', 'Notice', 'Project', + function ($scope, $rootScope, $log, Auth, $state, User, $resourceProvider, $uibModal, SweetAlert, Workspace, $translate, $q, $interval, IssueSearch, $filter, Notice, Project) { + + $scope.fn = { + logout: logout, // 濡쒓렇�븘�썐 + startWebSock: startWebSock, // �쎒 �냼耳� �떆�옉 + changeLastWorkspace: changeLastWorkspace, // 留덉�留� �젒洹� �뾽臾� 怨듦컙 + changeLastProject: changeLastProject, // �봽濡쒖젥�듃 蹂�寃� + invite: invite, // �궗�슜�옄 珥덈��븯湲� + findAllWorkproject: findAllWorkproject, // �궗�슜�옄媛� 李몄뿬�븯�뒗 �봽濡쒖젥�듃 紐⑸줉 媛��졇�삤湲� + addIssue: addIssue, // �씠�뒋 留뚮뱾湲� �뙘�뾽 �몴�떆 + makeIssueSearch: makeIssueSearch, // �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎. + disconnectSocket: disconnectSocket, // �쎒 �냼耳� �뿰寃� �빐�젣 + sendMessage: sendMessage, + moveMenu : moveMenu + }; + + $scope.vm = { + message: "", + }; + + + + // �떆�뒪�뀥�뿉�꽌 �듅�젙 �씠�뒋濡� 諛붾줈 �씠�룞�븷 �닔 �엳�룄濡� �빐以��떎. + $scope.$on("makeIssueSearch", function (event, args) { + // �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎. + $scope.fn.makeIssueSearch(args.projectKey, args.issueNumber); + }); + + // �봽濡쒖젥�듃 紐⑸줉 �솕硫� �깉濡� 怨좎묠�떆 + $scope.$on("getProjectList", function () { + findAllWorkproject(); + }); + + function moveMenu(stateName) { + if ($state.current.name == stateName) { + $state.reload(); + } else { + $state.go(stateName); + } + } + + // 硫붿꽭吏� 諛쒖넚 + function sendMessage() { + + var content = { + description : $scope.vm.message, + userIds : [1] + }; + + Notice.send($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + }); + } + + // �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎. + function makeIssueSearch(projectKey, issueNumber) { + var combinationIssueNumber = projectKey; + if (issueNumber != undefined) { + combinationIssueNumber += "-" + issueNumber; + } + + var content = { + conditions: JSON.stringify({ + search: { + combinationIssueNumber: combinationIssueNumber + } + }) + }; + + IssueSearch.add($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + moveMenu("issues.list"); + } else { + SweetAlert.error($filter("translate")("issue.failedToSaveFieldConditions"), result.data.message.message); // "寃��깋 �븘�뱶 議곌굔 ���옣 �떎�뙣" + } + }); + } + + + // �씠�뒋 留뚮뱾湲� �뙘�뾽 �몴�떆 + function addIssue() { + $uibModal.open({ + templateUrl: 'views/issue/issueAdd.html', + size: "lg", + controller: 'issueAddController', + backdrop: 'static' + }); + } + + // 李몄뿬�븯�뒗 �봽濡쒖젥�듃 紐⑸줉 媛��졇�삤湲� + function findAllWorkproject() { + var deferred = $q.defer(); + + var defaultName = $filter("translate")("common.totalProject"); + var defaultProject = {id:-1, name: defaultName, customName:"[ "+ defaultName + " ]" }; + + $rootScope.projects = []; + $rootScope.projects.push(defaultProject); + $rootScope.workProject = defaultProject; + + Project.findListWork($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + var projects = result.data.data; + + if (projects != undefined && projects.length > 0) { + // 留덉�留� �궗�슜�븳 �봽濡쒖젥�듃 議고쉶 + var datas = []; + datas.push(defaultProject); + for (var count in projects) { + var project = projects[count]; + datas.push(project); + project.depth = 0; + project.customName = project.name; + setChildren(project, datas, project.depth); + + if ($rootScope.user.lastProjectId === project.id) { + $rootScope.workProject = project; + } + } + $rootScope.projects = datas; + } + + if ($rootScope.user.lastProjectId == null) { + $rootScope.user.lastProjectId = -1; + } + } + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + function setChildren(row, datas, depth) { + depth++; + var childProjects = row.childProjects; + if (childProjects != undefined && childProjects.length > 0) { + for (var child of childProjects) { + child.depth = depth; + var space = ""; + for (var i=0;i<depth;i++) { + if (i==depth-1) { + space += "�뵕\u00A0"; + } else { + space += "\u00A0\u00A0"; + } + } + child.customName = space + child.name; + datas.push(child); + + if ($rootScope.user.lastProjectId === child.id) { + $rootScope.workProject = child; + } + + setChildren(child, datas, depth); + } + } + return datas; + } + + + // �궗�슜�옄 珥덈� + function invite() { + $uibModal.open({ + templateUrl: 'views/userInvite/userInvite.html', + size: "md", + controller: 'userInviteController', + backdrop: 'static' + }); + } + + // �봽濡쒖젥�듃 蹂�寃� + function changeLastProject(projectId) { + $rootScope.changeLastProject(projectId); + } + + // �뾽臾� 怨듦컙 蹂�寃� + function changeLastWorkspace(workspaceId) { + User.updateLastWorkspace($resourceProvider.getContent( + {lastWorkspaceId: workspaceId}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $rootScope.user = result.data.data; + $state.go($state.current, {}, {reload: true}); + + if ($state.current.name === "dashboards.dashboard") { + $state.go($state.current, {}, {reload: true}); + } else { + $state.go("dashboards.dashboard"); + } + } + }); + } + + // 濡쒓렇�븘�썐 + function logout() { + // edit by zenith at 20200801 + // before set socket connection call disconnection, fire error so catch + try { + // �쎒 �냼耳� �뿰寃� �빐�젣 + $scope.fn.disconnectSocket(); + } catch(e) { + $log.debug("Error disconnectSocket : ", e); + } + Auth.logout(); + $state.go('login'); + } + + // 理쒖큹 �떎�뻾 - �궗�슜�옄 �꽭�뀡 議고쉶�떆, 10珥덈쭏�떎 �솗�씤�븯�뿬 �걡寃⑥엳�쑝硫� �떎�떆 �뿰寃� �떆�룄 + function startWebSock() { + $rootScope.webSocket.socket = new SockJS("/owl-socket"); + $rootScope.webSocket.client = Stomp.over($rootScope.webSocket.socket); //Stomp client 援ъ꽦 + + + $rootScope.webSocket.client.connect('', '', function (frame) { + // �궗�슜�옄 紐⑸줉 + $rootScope.webSocket.client.subscribe('/session/user-list', function (userList) { + $rootScope.users = JSON.parse(userList.body); + + if ($scope.$root.$$phase !== '$apply' && $scope.$root.$$phase !== '$digest') { + $scope.$apply(); + } + + if ($rootScope.isDefined($rootScope.webSocket.client)) { + $rootScope.webSocket.client.send('/app/session/alive', {}, ''); + } + + $log.debug("�냼耳� �뿰寃� �궗�슜�옄 �젙蹂� : ", $rootScope.users); + }); + + // �궗�슜�옄�뿉寃� 硫붿꽭吏� 蹂대궡湲� + $rootScope.webSocket.client.subscribe('/user/notification/message', function (notification) { + SweetAlert.warning("硫붿꽭吏� �쟾�떖", notification.body); + }); + + // �뾽臾� 怨듦컙 �궗�슜�옄 珥덇낵 �븣由� + $rootScope.webSocket.client.subscribe('/user/notification/workspace-max-user-excess', function (notification) { + var body = JSON.parse(notification.body); + SweetAlert.warning($filter("translate")("common.exceedsMaximumUsersWorkspace"), body.message); // "�뾽臾� 怨듦컙 理쒕� �궗�슜�옄 珥덇낵" + }); + + // 李몄뿬 �뾽臾� 怨듦컙 �궘�젣 �븣由� - �빐�떦 �뾽臾� 怨듦컙瑜� 蹂닿퀬 �엳�쓣 �븣 + $rootScope.webSocket.client.subscribe('/user/notification/workspace-remove', function (notification) { + var body = JSON.parse(notification.body); + SweetAlert.warning($filter("translate")("common.deleteParticipatingWorkspaceReminder"), body.message); // "李몄뿬 �뾽臾� 怨듦컙 �궘�젣 �븣由�" + + $scope.fn.findAllWorkspace().then(function () { + // 濡쒓렇�씤�븳 �궗�슜�옄 �젙蹂대�� 珥덇린�솕�빐�꽌 蹂�寃쎈맂 �뾽臾� 怨듦컙 �젙蹂대줈 ���떆蹂대뱶 �옱議고쉶 + User.updateUserSession({}).then(function (result) { + if (result.data.message.status === "success") { + $rootScope.user = result.data.data; // �쟾�뿭�쑝濡� �궗�슜�븯�뒗 濡쒓렇�씤 �궗�슜�옄 �젙蹂�. + } else { + SweetAlert.error($filter("translate")("common.failedToUpdateParticipatingSessions"), body.message); // "李몄뿬 �꽭�뀡 �뾽�뜲�씠�듃 �떎�뙣" + } + + // �뾽臾� 怨듦컙 珥덇린�솕�븯�뿬 �꽌踰꾩뿉�꽌 �떎�떆 紐⑸줉 媛��졇�삤寃� �븯湲� + if ($state.current.name === "dashboards.dashboard") { + $state.go($state.current, {}, {reload: true}); + } else { + $state.go("dashboards.dashboard"); + } + }); + }); + }); + + // 李몄뿬 �뾽臾� 怨듦컙 鍮꾪솢�꽦�솕 �븣由� - �빐�떦 �뾽臾� 怨듦컙瑜� 蹂닿퀬 �엳�쓣 �븣 + $rootScope.webSocket.client.subscribe('/user/notification/workspace-disabled', function (notification) { + // edit by zenith at 20200801 + // direct oug out cause stand alone have just one workspace + SweetAlert.warning($filter("translate")("common.disableParticipationWorkspace"), $filter("translate")("common.disableParticipationWorkspaceMessage")); + $rootScope.$broadcast("logout"); + + /*var body = JSON.parse(notification.body); + SweetAlert.warning($filter("translate")("common.disableParticipationWorkspace"), body.message); // "李몄뿬 �뾽臾� 怨듦컙 鍮꾪솢�꽦�솕 �븣由�" + + $scope.fn.findAllWorkspace().then(function () { + // 濡쒓렇�씤�븳 �궗�슜�옄 �젙蹂대�� 珥덇린�솕�빐�꽌 蹂�寃쎈맂 �뾽臾� 怨듦컙 �젙蹂대줈 ���떆蹂대뱶 �옱議고쉶 + User.updateUserSession({}).then(function (result) { + if (result.data.message.status == "success") { + $rootScope.user = result.data.data; // �쟾�뿭�쑝濡� �궗�슜�븯�뒗 濡쒓렇�씤 �궗�슜�옄 �젙蹂�. + } + else { + SweetAlert.error($filter("translate")("common.failedToUpdateParticipatingSessions"), body.message); // "李몄뿬 �꽭�뀡 �뾽�뜲�씠�듃 �떎�뙣" + } + + // �뾽臾� 怨듦컙 珥덇린�솕�븯�뿬 �꽌踰꾩뿉�꽌 �떎�떆 紐⑸줉 媛��졇�삤寃� �븯湲� + if ($state.current.name == "dashboards.dashboard") { + $state.go($state.current, {}, {reload : true}); + } + else { + $state.go("dashboards.dashboard"); + } + }); + });*/ + }); + + // 李몄뿬 �뾽臾� 怨듦컙 �젣�쇅/異붽� �맆�븣 �뾽臾� 怨듦컙 �뾽�뜲�씠�듃 + $rootScope.webSocket.client.subscribe('/user/notification/workspace-update', function () { + $scope.fn.findAllWorkspace(); + }); + + // �떆�뒪�뀥 �븣由� �삤瑜� - ModelAndView �뿉�꽌 Exception 諛쒖깮�떆 �럹�씠吏� �씠�룞�씠 �씪�뼱�굹�뒗 �쁽�긽�쓣 �닔�젙 + $rootScope.webSocket.client.subscribe('/user/notification/system-alert', function (notification) { + var body = JSON.parse(notification.body); + SweetAlert.warning($filter("translate")("common.alertsAboutSystem"), body.message); // "�떆�뒪�뀥 �븣由� �젙蹂�" + }); + + // 李몄뿬 �뾽臾� 怨듦컙 �젣�쇅/異붽� �맆�븣 �뾽臾� 怨듦컙 �뾽�뜲�씠�듃 + $rootScope.webSocket.client.subscribe('/user/notification/file-upload-process', function (notification) { + var body = JSON.parse(notification.body); + + $rootScope.$broadcast("displayFileUpload", body); + }); + + // 李몄뿬 �봽濡쒖젥�듃 紐⑸줉 �뾽�뜲�씠�듃 + $rootScope.$broadcast("refreshWorkproject"); + }); + } + + // �쎒 �냼耳� �뿰寃� �빐�젣 + function disconnectSocket() { + if ($rootScope.webSocket.client != null) { + $rootScope.webSocket.client.disconnect(function () { + $log.debug("�냼耳� 醫낅즺"); + }); + } + } + + + // �쎒 �냼耳� �떆�옉 + $scope.$on("startSocket", function () { + $log.debug("�냼耳� �떆�옉"); + // �쎒 �냼耳� �뿰寃� + $scope.fn.startWebSock(); + }); + + // 濡쒓렇�븘�썐 + $scope.$on("logout", function () { + $scope.fn.logout(); + }); + + // �뾽臾� 怨듦컙 紐⑸줉 �깉濡쒓퀬移� + $scope.$on("refreshWorkspace", function () { + $scope.fn.findAllWorkspace(); + }); + + // �뾽臾� �봽濡쒖젥�듃 紐⑸줉 �깉濡쒓퀬移� + $scope.$on("refreshWorkproject", function () { + $scope.fn.findAllWorkproject(); + }); + + // 10珥덈쭏�떎 �쎒 �냼耳� �뿰寃곗쓣 �솗�씤�븯�뒗 �뤃留� �씠踰ㅽ듃 + $interval(function () { + //$log.debug("10珥덈쭏�떎 �냼耳� �뿰寃곗쓣 �솗�씤�빀�땲�떎."); + // 濡쒓렇�씤�븳 �궗�슜�옄 �젙蹂닿� �엳�쓣 寃쎌슦 + if (angular.isDefined($rootScope.user)) { + if ($rootScope.user.id != null) { + // 留뚯빟 �쎒�냼耳볦씠 �뿰寃곕릺�뼱 �엳吏� �븡�쑝硫� �옱�뿰寃� �떆�룄 + if ($rootScope.webSocket.client == null || !$rootScope.webSocket.client.connected) { + $log.debug("�냼耳� �뿰寃곗씠 �걡寃� �엳�뼱 �냼耳볦쓣 �뿰寃고빀�땲�떎."); + $rootScope.$broadcast("startSocket"); + } + } + } + }, 10000); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/customField/customField.js b/src/main/webapp/scripts/app/customField/customField.js new file mode 100644 index 0000000..285a5e6 --- /dev/null +++ b/src/main/webapp/scripts/app/customField/customField.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('customFields', { + abstract : true, + url : "/customField", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('customFields.list', { + url : '/customFieldList', + data : { + authorities : ['CUSTOM_FIELD_TOTAL'] + }, + templateUrl : 'views/customField/customFieldList.html', + controller : "customFieldListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["customFieldListController", 'customFieldAddController', 'customFieldModifyController', 'jsTable', 'tableColumnGenerator', 'customFieldService', 'modalFormAutoScroll' + , 'formSubmit', 'jsShortCut', 'inputRegex'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js b/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js new file mode 100644 index 0000000..4edbe60 --- /dev/null +++ b/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js @@ -0,0 +1,148 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', 'angular' + ], + function (app, angular) { + app.controller('customFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', '$uibModalInstance', 'CustomField', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, User, $uibModalInstance, CustomField, SweetAlert, $timeout, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + addOption : addOption, // �샃�뀡 媛� 異붽��븯湲� + removeOption : removeOption, // �샃�뀡 �궘�젣 + changeFieldType : changeFieldType // �븘�뱶 �쑀�삎 蹂�寃� + }; + + $scope.vm = { + form : { + name : "", // �궗�슜�옄 �젙�쓽 �븘�뱶 紐� + customFieldType : "INPUT", // �궗�슜�옄 �젙�쓽 �븘�뱶 �쑀�삎 + defaultValue : "", // 湲곕낯 媛� + options : [], // �샃�뀡 + optionText : "" // �샃�뀡 媛� + } + }; + + // �샃�뀡 �궘�젣 + function removeOption(index) { + $scope.vm.form.options.splice(index, 1); + } + + // �븘�뱶 �쑀�삎�쓣 蹂�寃� �뻽�쓣 �븣 臾몄옄�뿴 �븘�뱶�씪 寃쎌슦�뿉�뒗 �샃�뀡 媛믪쓣 珥덇린�솕�빐以��떎. + function changeFieldType() { + if ($scope.vm.form.customFieldType === "INPUT") { + $scope.vm.form.options = []; + $scope.vm.form.optionText = ""; + } + + $scope.vm.form.defaultValue = ""; + } + + // Select �샃�뀡 媛� 異붽��븯湲� + function addOption() { + // 臾몄옄�뿴�씪 �븣 button �슂�냼媛� enter �궎�뿉 �옉�룞�븯�뒗 寃� 諛⑹� + if ($scope.vm.form.customFieldType === "INPUT") { + return; + } + + var duplication = false; + // �빐�떆 �깭洹몃뒗 �엯�젰 湲덉� - 怨듬갚 移섑솚 + $scope.vm.form.optionText = $rootScope.preventXss($scope.vm.form.optionText.replace(/#/gi, "")); + + // 以묐났 �뿬遺� 泥댄겕 + for (var count in $scope.vm.form.options) { + var option = $scope.vm.form.options[count]; + + if (option === $scope.vm.form.optionText) { + duplication = true; + break; + } + } + + // 以묐났�씠 �븘�땺 寃쎌슦 + if (!duplication) { + if (!$rootScope.isDefined($scope.vm.form.optionText)) { + $scope.vm.form.optionText = ""; + SweetAlert.warning($filter("translate")("customField.emptyInputValue"), $filter("translate")("customField.emptyAddValue")); // �엯�젰 媛� �솗�씤 �븣由�, �엯�젰�븳 媛믪씠 �뾾�뒿�땲�떎. + return; + } + $scope.vm.form.options.push($scope.vm.form.optionText); + $scope.vm.form.options.sort(); + $scope.vm.form.optionText = ""; + + $timeout(function () { + $("#optionAdd").trigger("focus") + }, 200); + } + else { + SweetAlert.warning($filter("translate")("customField.duplicateInputValue"), $filter("translate")("customField.alreadyAddedValue")); // "�엯�젰 媛� 以묐났 �븣由�", "�엯�젰�븳 媛믪씠 �씠誘� 異붽��릺�뼱 �엳�뒿�땲�떎." + } + } + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + // �떎以�, �떒�씪 �꽑�깮�씪 寃쎌슦�뿉 + if ($scope.vm.form.customFieldType !== "INPUT") { + // �샃�뀡�씠 1媛� �씠�븯�씪 寃쎌슦�뿉�뒗 ���젆�듃 �깭洹몃�� 留뚮뱾 �닔 �뾾�떎. + if ($scope.vm.form.options.length < 1) { + return true; + } + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = angular.copy($scope.vm.form); + content.name = $rootScope.preventXss(content.name); + + if ($scope.vm.form.customFieldType !== 'INPUT') { + var convertDefaultValues = ""; + + angular.forEach(content.defaultValue.split("#"), function (value) { + if ($rootScope.isDefined(value)) { + convertDefaultValues += "#" + value.trim(); + } + }); + + content.defaultValue = convertDefaultValues; + } + + CustomField.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getCustomFieldList", {}); + } + else { + SweetAlert.error($filter("translate")("customField.failedToCreateUserDefinedFields"), result.data.message.message); // "�궗�슜�옄 �젙�쓽 �븘�뱶 �깮�꽦 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/customField/customFieldList.controller.js b/src/main/webapp/scripts/app/customField/customFieldList.controller.js new file mode 100644 index 0000000..98204af --- /dev/null +++ b/src/main/webapp/scripts/app/customField/customFieldList.controller.js @@ -0,0 +1,235 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('customFieldListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'CustomField', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, CustomField, SweetAlert, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + changePageRowCount : changePageRowCount, // �럹�씠吏� 蹂�寃� + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + add : add, // �궗�슜�옄 �젙�쓽 �븘�뱶 �깮�꽦 + makeSearchConditions : makeSearchConditions, // �궗�슜�옄 �젙�쓽 �븘�뱶 寃��깋 議곌굔�쓣 留뚮뱺�떎. + removes : removes // �궘�젣 + }; + + // 蹂��닔 + $scope.vm = { + search : { + name : "", // �궗�슜�옄 �젙�쓽 �븘�뱶 紐� + customFieldTypes : [] // �궗�슜�옄 �젙�쓽 �븘�뱶 �쑀�삎 + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + }, + options : { + customFieldTypes : [{ + fieldKey : "INPUT", + fieldValue : $filter("translate")("common.stringField") // "臾몄옄�뿴 �븘�뱶" + }, { + fieldKey : "MULTI_SELECT", + fieldValue : $filter("translate")("common.multipleSelectionField") // "�떎以� �꽑�깮 �븘�뱶" + }, { + fieldKey : "SINGLE_SELECT", + fieldValue : $filter("translate")("common.singleSelectionField") //"�떒�씪 �꽑�깮 �븘�뱶" + }] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify + }; + + // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getCustomFieldList", function () { + $scope.fn.getPageList(0); + }); + + // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뀒�씠釉� �꽕�젙 + 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("common.customField") + .setHWidth("bold") + .setDName("name") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("COMMON_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("customField.fieldType") + .setDType("renderer") + .setHWidth("width-300-p bold") + .setDAlign("text-center") + .setDRenderer("CUSTOM_FIELD_OPTION")); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + return { + name : $scope.vm.search.name, + customFieldTypes : (function () { + var customFieldTypes = []; + + angular.forEach($scope.vm.search.customFieldTypes, function (customFieldType) { + customFieldTypes.push(customFieldType.fieldKey); + }); + + return customFieldTypes; + })() + }; + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 寃��깋 議곌굔�쓣 留뚮뱺�떎. + var conditions = $scope.fn.makeSearchConditions(); + + CustomField.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message, "error"); // "�궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + function changePageRowCount() { + $scope.fn.getPageList(0); + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 �깮�꽦 �뙘�뾽 + function add() { + $uibModal.open({ + templateUrl : 'views/customField/customFieldAdd.html', + size : "md", + controller : 'customFieldAddController', + backdrop : 'static' + }); + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙 �뙘�뾽 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/customField/customFieldModify.html', + size : "md", + controller : 'customFieldModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 �궘�젣 �뙘�뾽 + function removes() { + var removeIds = []; + + angular.forEach($scope.vm.responseData.data, function (data) { + if (data.checked) { + removeIds.push(data.id); + } + }); + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("customField.deleteUserDefinedFields"), // "�궗�슜�옄 �젙�쓽 �븘�뱶 �궘�젣" + text : $filter("translate")("customField.wantToDeleteSelectUserDefinedFields"), // "�꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎." + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + CustomField.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + $scope.fn.makeTableConfigs(); + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/customField/customFieldModify.controller.js b/src/main/webapp/scripts/app/customField/customFieldModify.controller.js new file mode 100644 index 0000000..56362b5 --- /dev/null +++ b/src/main/webapp/scripts/app/customField/customFieldModify.controller.js @@ -0,0 +1,224 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('customFieldModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'CustomField', 'parameter', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, CustomField, parameter, SweetAlert, $timeout, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail, // �긽�꽭 �젙蹂� + addOption : addOption, // �샃�뀡 媛� 異붽��븯湲� + removeOption : removeOption, // �샃�뀡 �궘�젣 + checkModifyOptions : checkModifyOptions, // �샃�뀡 媛� 蹂�寃� �솗�씤 + changeCustomFieldType : changeCustomFieldType, // �궗�슜�옄 �젙�쓽 �븘�뱶 �쑀�삎�씠 蹂�寃쎈맆 �븣 湲곕낯 媛� 珥덇린�솕 + }; + + $scope.vm = { + search : { + id : parameter.id, + deep : "01" // �궗�슜�옄 �젙�쓽 �븘�뱶 �뿰愿��맂 紐⑤뱺 �젙蹂대�� �뼱�뒓�젙�룄源뚯� 媛��졇�삱吏� 寃곗젙, 01 - �씪諛� �젙蹂�, �뿰愿��맂 �젙蹂� + }, + form : { + id : parameter.id, + name : "", + customFieldType : "", // �궗�슜�옄 �젙�쓽 �븘�뱶 �쑀�삎 + defaultValue : "", // 湲곕낯 媛� + options : [], // �샃�뀡 + optionText : "", // �샃�뀡 媛� + useCustomFieldValue : false // �씠�뒋�뿉�꽌 �궗�슜�릺怨� �엳�뒗吏� �뿬遺� �솗�씤 + }, + origin : { + options : [] // �샃�뀡 媛� 蹂�寃� �뿬遺� �솗�씤�쓣 �쐞�빐 �꽌踰꾩뿉�꽌 �궡�젮�삱 �븣 �썝蹂� 媛믪쓣 �뵲濡� 愿�由ы븳�떎. + } + }; + + // �궗�슜�옄 �젙�쓽 �븘�뱶 �쑀�삎�씠 蹂�寃쎈맆 �븣 湲곕낯 媛� 珥덇린�솕 + function changeCustomFieldType() { + $scope.vm.form.defaultValue = ""; + } + + // �샃�뀡 �궘�젣 + function removeOption(index) { + $scope.vm.form.options.splice(index, 1); + } + + // �샃�뀡 媛믪씠 蹂�寃쎈릺�뿀�뒗吏� �솗�씤�븳�떎. + function checkModifyOptions() { + // �븘�뱶 �쑀�삎�씠 臾몄옄�뿴�씪 寃쎌슦�뒗 諛붾줈 醫낅즺 + if ($scope.vm.form.customFieldType === "INPUT") { + return false; + } + + // �샃�뀡 媛��닔媛� �떖�씪議뚯쓣 寃쎌슦 + if ($scope.vm.form.options.length !== $scope.vm.origin.options.length) { + return true; + } + + // 媛��닔媛� 媛숈쓣 寃쎌슦 紐⑤뱺 �샃�뀡 媛믪씠 媛숈븘�빞 �븳�떎. �떎瑜� 寃쎌슦 true 由ы꽩. + var checkOptionCompare = false; + + for (var originOptionCount in $scope.vm.origin.options) { + var originOption = $scope.vm.origin.options[originOptionCount]; + var existOption = false; + + for (var optionCount in $scope.vm.form.options) { + var option = $scope.vm.form.options[optionCount]; + + if (originOption === option) { + existOption = true; + break; + } + } + + if (!existOption) { + checkOptionCompare = true; + } + } + + return checkOptionCompare; + } + + // Select �샃�뀡 媛� 異붽��븯湲� + function addOption() { + // 臾몄옄�뿴�씪 �븣 button �슂�냼媛� enter �궎�뿉 �옉�룞�븯�뒗 寃� 諛⑹� + if ($scope.vm.form.customFieldType === "INPUT") { + return; + } + + var duplication = false; + // �빐�떆 �깭洹몃뒗 �엯�젰 湲덉� - 怨듬갚 移섑솚 + $scope.vm.form.optionText = $rootScope.preventXss($scope.vm.form.optionText.replace(/#/gi, "")); + + // 以묐났 �뿬遺� 泥댄겕 + for (var count in $scope.vm.form.options) { + var option = $scope.vm.form.options[count]; + + if (option === $scope.vm.form.optionText) { + duplication = true; + break; + } + } + + // 以묐났�씠 �븘�땺 寃쎌슦 + if (!duplication) { + if (!$rootScope.isDefined($scope.vm.form.optionText)) { + $scope.vm.form.optionText = ""; + SweetAlert.warning($filter("translate")("customField.emptyInputValue"), $filter("translate")("customField.emptyAddValue")); // �엯�젰 媛� �솗�씤 �븣由�, �엯�젰�븳 媛믪씠 �뾾�뒿�땲�떎. + return; + } + + $scope.vm.form.options.push($scope.vm.form.optionText); + $scope.vm.form.options.sort(); + $scope.vm.form.optionText = ""; + + $timeout(function () { + $("#optionAdd").trigger("focus") + }, 200); + } + else { + SweetAlert.swal($filter("translate")("customField.duplicateInputValue"), $filter("translate")("customField.alreadyAddedValue"), "warning"); // "�엯�젰 媛� 以묐났 �븣由�", "�엯�젰�븳 媛믪씠 �씠誘� 異붽��릺�뼱 �엳�뒿�땲�떎." + } + } + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + // �떎以�, �떒�씪 �꽑�깮�씪 寃쎌슦�뿉 + if ($scope.vm.form.customFieldType !== "INPUT") { + // �샃�뀡�씠 1媛� �씠�븯�씪 寃쎌슦�뿉�뒗 ���젆�듃 �깭洹몃�� 留뚮뱾 �닔 �뾾�떎. + if ($scope.vm.form.options.length < 1) { + return true; + } + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = angular.copy($scope.vm.form); + content.name = $rootScope.preventXss(content.name); + + if ($scope.vm.form.customFieldType !== 'INPUT') { + var convertDefaultValues = ""; + + angular.forEach(content.defaultValue.split("#"), function (value) { + if ($rootScope.isDefined(value)) { + convertDefaultValues += "#" + value.trim(); + } + }); + + content.defaultValue = convertDefaultValues; + } + else { + // 臾몄옄�뿴 �븘�뱶�씪 �븣 �샃�뀡 媛� �젣嫄� + content.options = []; + } + + CustomField.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getCustomFieldList", {}); + } + else { + SweetAlert.error($filter("translate")("customField.failedToModifyUserDefinedFields"), result.data.message.message); // "�궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + // �뤌 �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �긽�꽭 �젙蹂� + function detail() { + CustomField.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (angular.isDefined(result.data.data)) { + $scope.vm.form.name = result.data.data.name; + $scope.vm.form.customFieldType = result.data.data.customFieldType; + $scope.vm.form.defaultValue = result.data.data.defaultValue; + $scope.vm.form.useCustomFieldValue = result.data.data.useCustomFieldValue; + + angular.forEach(result.data.data.customFieldValueVos, function (customFieldValueVo) { + $scope.vm.form.options.push(customFieldValueVo.value); + }); + // �샃�뀡 媛� �썝蹂� ���옣 + $scope.vm.origin.options = angular.copy($scope.vm.form.options.sort()); + } + } + else { + SweetAlert.swal($filter("translate")("customField.failedToDetailUserDefinedFields"), result.data.message.message, "error"); // "�궗�슜�옄 �젙�쓽 �븘�뱶 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣" + } + }); + } + + $scope.fn.detail(); + }]); + }); diff --git a/src/main/webapp/scripts/app/event/event.js b/src/main/webapp/scripts/app/event/event.js new file mode 100644 index 0000000..efc5f73 --- /dev/null +++ b/src/main/webapp/scripts/app/event/event.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('event', { + abstract : true, + url : "/event", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('event.list', { + url : '/eventList', + data : { + authorities : ['NOTICE_READ'] + }, + templateUrl : 'views/event/eventList.html', + controller : "eventListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(['eventListController', 'eventAddController', 'eventModifyController', 'eventViewController', + 'eventService', 'jsTable', 'tableColumnGenerator', 'formSubmit'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/event/eventAdd.controller.js b/src/main/webapp/scripts/app/event/eventAdd.controller.js new file mode 100644 index 0000000..6b8f114 --- /dev/null +++ b/src/main/webapp/scripts/app/event/eventAdd.controller.js @@ -0,0 +1,130 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('eventAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Event', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Event, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + title : "", // �젣紐� + description : "", // �궡�슜 + startEndDateRange : "", // �떆�옉�씪, 醫낅즺�씪 �젙蹂� + startDate : "", + endDate : "", + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if (!$rootScope.isDefined($scope.vm.form.startEndDateRange)) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description), + startDate : "", + endDate : "", + }; + + if ($rootScope.isDefined($scope.vm.form.startEndDateRange)) { + var startEndDateRange = $scope.vm.form.startEndDateRange.split("~"); + content.startDate = startEndDateRange[0].trim(); + content.endDate = startEndDateRange[1].trim(); + } + + Event.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getEventList", {}); + } + else { + SweetAlert.error($filter("translate")("event.failedEventRegistration"), result.data.message.message); + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/event/eventList.controller.js b/src/main/webapp/scripts/app/event/eventList.controller.js new file mode 100644 index 0000000..7db8962 --- /dev/null +++ b/src/main/webapp/scripts/app/event/eventList.controller.js @@ -0,0 +1,198 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('eventListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'Event', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, Event, SweetAlert, $timeout, $filter) { + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + makeSearchConditions : makeSearchConditions, + add : add, // event �벑濡� + }; + + // 蹂��닔 + $scope.vm = { + search : { + title : "" + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify, + view : view, + activation : activation // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + }; + + // 媛��씠�뱶 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getEventList", function () { + $scope.fn.getPageList(0); + }); + + // �궗�슜�옄 紐⑸줉 �떎�슫濡쒕뱶 諛쏄린 + function makeSearchConditions() { + return {}; + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.number") + .setHWidth("width-60-p bold") + .setDAlign("text-center") + .setDName("id")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.period") + .setHWidth("width-120-p bold") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("EVENT_DUE_DATE")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.title") + .setHWidth("width-200-p bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("EVENT_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.registrationDate") + .setHWidth("width-80-p bold") + .setDAlign("text-center") + .setDName("registerDate")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.register") + .setHWidth("width-120-p bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("EVENT_REGISTER")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("event.activation") + .setHWidth("width-80-p bold") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("EVENT_ACTIVE")); + } + + // 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + title : $scope.vm.search.title + }; + + Event.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("event.failedToLookupEventList"), result.data.message.message); //怨듭� �궗�빆 紐⑸줉 議고쉶 �떎�뙣 + } + }); + } + + // event �벑濡� + function add() { + $uibModal.open({ + templateUrl : 'views/event/eventAdd.html', + size : "md", + controller : 'eventAddController', + backdrop : 'static' + }); + } + + // event �닔�젙 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/event/eventModify.html', + size : "md", + controller : 'eventModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // event 蹂닿린 + function view(title, description) { + $uibModal.open({ + templateUrl : 'views/event/eventView.html', + size : "lg", + controller : 'eventViewController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + title : title, + description : description + }; + } + } + }); + } + + function activation(eventData ) { + Event.activation($resourceProvider.getContent( + eventData, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + $scope.fn.getPageList(currentPage); + } + else { + SweetAlert.error($filter("translate")("event.failedToActivation"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣" + } + }); + } + + // �뀒�씠釉� �꽕�젙 + $scope.fn.makeTableConfigs(); + // 紐⑸줉 議고쉶 + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/event/eventModify.controller.js b/src/main/webapp/scripts/app/event/eventModify.controller.js new file mode 100644 index 0000000..e59d2cd --- /dev/null +++ b/src/main/webapp/scripts/app/event/eventModify.controller.js @@ -0,0 +1,157 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('eventModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Event', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Event, parameter, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� + }; + + $scope.vm = { + search : { + id : parameter.id + }, + form : { + id : parameter.id, + title : "", // �젣紐� + startDate : "", + endDate : "", + description : "", // �궡�슜 + startEndDateRange : "" + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.startEndDateRange == "") { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id, + title : $rootScope.preventXss($scope.vm.form.title), + startDate : "", + endDate : "", + description : $rootScope.preventXss($scope.vm.form.description) + }; + + var startEndDateRange = $scope.vm.form.startEndDateRange.split("~"); + content.startDate = startEndDateRange[0].trim(); + content.endDate = startEndDateRange[1].trim(); + + Event.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getEventList", {}); + } + else { + SweetAlert.error($filter("translate")("event.failedToModifyEvent"), result.data.message.message); //怨듭� �궗�빆 �닔�젙 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �긽�꽭 議고쉶 + function detail() { + Event.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if ($rootScope.isDefined(result.data.data)) { + $scope.vm.form.title = result.data.data.title; + $scope.vm.form.startEndDateRange = result.data.data.startDate + " ~ " + result.data.data.endDate; + $scope.vm.form.description = result.data.data.description; + } + } + else { + SweetAlert.error($filter("translate")("event.failedToLookupEventDetails"), result.data.message.message); //event �긽�꽭 �젙蹂� 議고쉶 �떎�뙣 + } + }); + } + + // event �긽�꽭 議고쉶 + $scope.fn.detail(); + }]); + }); diff --git a/src/main/webapp/scripts/app/event/eventView.controller.js b/src/main/webapp/scripts/app/event/eventView.controller.js new file mode 100644 index 0000000..cbba50b --- /dev/null +++ b/src/main/webapp/scripts/app/event/eventView.controller.js @@ -0,0 +1,32 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('eventViewController', ['$scope', '$log', '$rootScope', '$uibModalInstance', 'parameter', + function ($scope, $log, $rootScope, $uibModalInstance, parameter) { + + $scope.fn = { + cancel : cancel // �뙘�뾽 李� �떕湲� + }; + + $scope.vm = { + viewer : { + title : parameter.title, + description : parameter.description + } + }; + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + }]); + }); diff --git a/src/main/webapp/scripts/app/faq/faq.js b/src/main/webapp/scripts/app/faq/faq.js new file mode 100644 index 0000000..87a48b0 --- /dev/null +++ b/src/main/webapp/scripts/app/faq/faq.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('faqs', { + abstract : true, + url : "/faqs", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('faqs.list', { + url : '/faqList', + data : { + authorities : ['NOTICE_READ'] + }, + templateUrl : 'views/faq/faqList.html', + controller : "faqListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(['faqListController', 'faqAddController', 'faqModifyController', 'faqViewController', + 'faqService', 'jsTable', 'tableColumnGenerator', 'formSubmit'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/faq/faqAdd.controller.js b/src/main/webapp/scripts/app/faq/faqAdd.controller.js new file mode 100644 index 0000000..3338e57 --- /dev/null +++ b/src/main/webapp/scripts/app/faq/faqAdd.controller.js @@ -0,0 +1,115 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('faqAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Faq', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, faq, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + title : "", // �젣紐� + description : "" // �궡�슜 + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description) + }; + + faq.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getFaqList", {}); + } + else { + SweetAlert.error($filter("translate")("FAQ.registerFAQ"), result.data.message.message); + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/faq/faqList.controller.js b/src/main/webapp/scripts/app/faq/faqList.controller.js new file mode 100644 index 0000000..9b5cc19 --- /dev/null +++ b/src/main/webapp/scripts/app/faq/faqList.controller.js @@ -0,0 +1,191 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('faqListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'Faq', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, Faq, SweetAlert, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + makeSearchConditions : makeSearchConditions, + add : add, // faq �벑濡� + }; + + // 蹂��닔 + $scope.vm = { + search : { + title : "" + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify, + view : view, + activation : activation // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + }; + + // FAQ 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getFaqList", function () { + $scope.fn.getPageList(0); + }); + + // �궗�슜�옄 紐⑸줉 �떎�슫濡쒕뱶 諛쏄린 + function makeSearchConditions() { + return {}; + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.number") + .setHWidth("width-60-p bold") + .setDAlign("text-center") + .setDName("id")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.title") + .setHWidth("bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("FAQ_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.registrationDate") + .setHWidth("width-100-p bold") + .setDAlign("text-center") + .setDName("registerDate")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.register") + .setHWidth("width-120-p bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("FAQ_REGISTER")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("guide.activation") + .setHWidth("width-80-p bold") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("FAQ_ACTIVE")); + } + + // 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + title : $scope.vm.search.title + }; + + Faq.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("FAQ.failedToLookupFAQDetails"), result.data.message.message); //FAQ �궗�빆 紐⑸줉 議고쉶 �떎�뙣 + } + }); + } + + // FAQ �벑濡� + function add() { + $uibModal.open({ + templateUrl : 'views/faq/faqAdd.html', + size : "md", + controller : 'faqAddController', + backdrop : 'static' + }); + } + + // FAQ �닔�젙 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/faq/faqModify.html', + size : "md", + controller : 'faqModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // FAQ 蹂닿린 + function view(title, description) { + $uibModal.open({ + templateUrl : 'views/faq/faqView.html', + size : "lg", + controller : 'faqViewController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + title : title, + description : description + }; + } + } + }); + } + + function activation(faqData ) { + Faq.activation($resourceProvider.getContent( + faqData, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + } + else { + SweetAlert.error($filter("translate")("faq.failedToActivation"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣" + } + }); + } + + // �뀒�씠釉� �꽕�젙 + $scope.fn.makeTableConfigs(); + // 紐⑸줉 議고쉶 + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/faq/faqModify.controller.js b/src/main/webapp/scripts/app/faq/faqModify.controller.js new file mode 100644 index 0000000..9fd1b16 --- /dev/null +++ b/src/main/webapp/scripts/app/faq/faqModify.controller.js @@ -0,0 +1,143 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('faqModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Faq', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, faq, parameter, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� + }; + + $scope.vm = { + search : { + id : parameter.id + }, + form : { + id : parameter.id, + title : "", // �젣紐� + description : "" // �궡�슜 + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id, + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description) + }; + + faq.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getFaqList", {}); + } + else { + SweetAlert.error($filter("translate")("FAQ.failedToModifyFAQ"), result.data.message.message); //FAQ �궗�빆 �닔�젙 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �긽�꽭 議고쉶 + function detail() { + faq.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if ($rootScope.isDefined(result.data.data)) { + $scope.vm.form.title = result.data.data.title; + $scope.vm.form.description = result.data.data.description; + } + } + else { + SweetAlert.error($filter("translate")("FAQ.failedToLookupFAQDetails"), result.data.message.message); //FAQ �긽�꽭 �젙蹂� 議고쉶 �떎�뙣 + } + }); + } + + // FAQ �긽�꽭 議고쉶 + $scope.fn.detail(); + }]); + }); diff --git a/src/main/webapp/scripts/app/faq/faqView.controller.js b/src/main/webapp/scripts/app/faq/faqView.controller.js new file mode 100644 index 0000000..607980f --- /dev/null +++ b/src/main/webapp/scripts/app/faq/faqView.controller.js @@ -0,0 +1,32 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('faqViewController', ['$scope', '$log', '$rootScope', '$uibModalInstance', 'parameter', + function ($scope, $log, $rootScope, $uibModalInstance, parameter) { + + $scope.fn = { + cancel : cancel // �뙘�뾽 李� �떕湲� + }; + + $scope.vm = { + viewer : { + title : parameter.title, + description : parameter.description + } + }; + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + }]); + }); diff --git a/src/main/webapp/scripts/app/gantt/gantt.js b/src/main/webapp/scripts/app/gantt/gantt.js new file mode 100644 index 0000000..08c506a --- /dev/null +++ b/src/main/webapp/scripts/app/gantt/gantt.js @@ -0,0 +1,67 @@ +/** + * Created by maprex on 2021-03-23 + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('gantt', { + abstract : true, + url : "/gantt", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('gantt.chart', { + url : "/chart", + data : { + authorities : ['ISSUE_TOTAL'] + }, + templateUrl : 'views/gantt/gantt.html', + controller : "ganttController", + resolve : { + loadController : ["$q", function ($q) { + + var deferred = $q.defer(); + require(["ganttController", 'chartLoader','jsTable', 'tableColumnGenerator', 'modalFormAutoScroll', + 'issueSearchService', 'issueTypeService', 'priorityService', 'severityService', 'issueStatusService', 'customFieldService','issueSearchFieldKeyViewElement', + 'issueSearchCustomFieldViewElement', + ], function () { + deferred.resolve(); + }); + return deferred.promise; + }], + projectLoader : ["$q", "Project", "$resourceProvider", "$rootScope", "$log", + function ($q, Project, $resourceProvider, $rootScope, $log) { + + var deferred = $q.defer(); + + Project.findLastUseProject($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status == "success") { + $rootScope.lastProject = result.data.data; + deferred.resolve(result.data.data); + } + else { + $rootScope.lastProject = null; + deferred.resolve("�꽑�깮�맂 �봽濡쒖젥�듃媛� �뾾�뒿�땲�떎"); + } + }); + + return deferred.promise; + }] + + } + }); + }) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/gantt/ganttController.js b/src/main/webapp/scripts/app/gantt/ganttController.js new file mode 100644 index 0000000..0906dad --- /dev/null +++ b/src/main/webapp/scripts/app/gantt/ganttController.js @@ -0,0 +1,740 @@ +/** + * Created by maprex on 2021-03-23 + */ + +'use strict'; + +define([ + 'app', 'angular' + ], + function (app, angular) { + app.controller('ganttController', ['$scope', '$rootScope', '$log', '$q', '$resourceProvider', '$controller', '$injector', 'Gantt', 'SweetAlert', '$filter', 'IssueType', 'Priority', 'Severity', 'IssueStatus', 'CustomField','IssueSearch', + function ($scope, $rootScope, $log, $q, $resourceProvider, $controller, $injector, Gantt, SweetAlert, $filter, IssueType, Priority, Severity, IssueStatus, CustomField, IssueSearch) { + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉�쓣 議고쉶�븳�떎. + makeSearchConditions : makeSearchConditions, // 寃��깋議곌굔�쓣 媛��졇�샂 + getIssueTypes : getIssueTypes, // �씠�뒋 �쑀�삎 紐⑸줉�쓣 媛��졇�삩�떎. + getPriorities : getPriorities, // �슦�꽑�닚�쐞 紐⑸줉�쓣 媛��졇�삩�떎. + getSeverities : getSeverities, // 以묒슂�룄 紐⑸줉�쓣 媛��졇�삩�떎. + getIssueStatuses : getIssueStatuses, // �씠�뒋 �긽�깭 紐⑸줉�쓣 媛��졇�삩�떎. + getCustomFields : getCustomFields, // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉�쓣 媛��졇�삩�떎. + startExecute : startExecute + }; + + $scope.vm = { + search : { + title : "", // �젣紐� + description : "", // �궡�슜 + combinationIssueNumber : "", // �씠�뒋 踰덊샇 + projectType : "BTS_PROJECT", // �봽濡쒖젥�듃 �쑀�삎 + registerDateRange : "", // �벑濡앹씪 湲곌컙 寃��깋 + startDateRange : "", // �떆�옉�씪 湲곌컙 寃��깋 + completeDateRange : "", // �셿猷뚯씪 湲곌컙 寃��깋 + severityIds : [], // 以묒슂�룄 寃��깋 + priorityIds : [], // �슦�꽑�닚�쐞 寃��깋 + issueStatusIds : [], // �씠�뒋 �긽�깭 寃��깋 + issueTypeIds : [] // �씠�뒋 �쑀�삎 寃��깋 + }, + arrProjects : [], // �봽濡쒖젥�듃 諛곗뿴 + projectIssues : new Object(), // �봽濡쒖젥�듃 �쟾泥� �씠�뒋 + projectCompleteIssues : new Object(), // �봽濡쒖젥�듃 �셿猷� �씠�뒋 + searchView : false, // �긽�꽭 寃��깋 議곌굔 �몴�떆 �뿬遺� + detailView : false, // �긽�꽭 紐⑤뱶 蹂�寃� 媛� + tableConfigs : [], // �뀒�씠釉� �뀑�똿 �젙蹂� + responseData : { + data : [] + }, + projectName : "", // �봽濡쒖젥�듃 寃��깋 + userName : "", // �떞�떦�옄 寃��깋 + registerName : "", // �벑濡앹옄 寃��깋 + projects : [], // �봽濡쒖젥�듃 + issueStatuses : [], // �씠�뒋 �긽�깭 + issueTypes : [], // �씠�뒋 �쑀�삎 + priorities : [], // �슦�꽑 �닚�쐞 + severities : [], // 以묒슂�룄 + users : [], // �떞�떦�옄 + registers : [], // �벑濡앹옄 + customFields : [], // �궗�슜�옄 �젙�쓽 �븘�뱶 + issueTableConfigs : [], // �씠�뒋 �뀒�씠釉� �꽕�젙 + page : { + selectedPage : 0, + selectedPageRowCount : String(99999) + }, + relationIssues :[], // �뿰愿� �씠�뒋 諛곗뿴 + useGantt : false + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // 寃��깋 �븘�뱶 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + var conditions = { + title : $scope.vm.search.title, + description : $scope.vm.search.description, + projectType : $scope.vm.search.projectType, + combinationIssueNumber : $scope.vm.search.combinationIssueNumber.trim(), + beginRegisterDate : "", + endRegisterDate : "", + beginStartDate : "", + endStartDate : "", + beginCompleteDate : "", + endCompleteDate : "", + projectIds : (function () { + var projectIds = []; + + angular.forEach($scope.vm.projects, function (project) { + projectIds.push(project.id); + }); + + return projectIds; + })(), + issueStatusIds : (function () { + var issueStatusIds = []; + + angular.forEach($scope.vm.search.issueStatusIds, function (issueStatusId) { + issueStatusIds.push(issueStatusId.fieldKey); + }); + + return issueStatusIds; + })(), + issueTypeIds : (function () { + var issueTypeIds = []; + + angular.forEach($scope.vm.search.issueTypeIds, function (issueTypeId) { + issueTypeIds.push(issueTypeId.fieldKey); + }); + + return issueTypeIds; + })(), + priorityIds : (function () { + var priorityIds = []; + + angular.forEach($scope.vm.search.priorityIds, function (priorityId) { + priorityIds.push(priorityId.fieldKey); + }); + + return priorityIds; + })(), + severityIds : (function () { + var severityIds = []; + + angular.forEach($scope.vm.search.severityIds, function (severityId) { + severityIds.push(severityId.fieldKey); + }); + + return severityIds; + })(), + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.users, function (user) { + userIds.push(user.id); + }); + + return userIds; + })(), + registerIds : (function () { + var registerIds = []; + + angular.forEach($scope.vm.registers, function (register) { + registerIds.push(register.id); + }); + + return registerIds; + })(), + issueCustomFields : (function () { + var issueCustomFields = []; + + angular.forEach($scope.vm.customFields, function (customField) { + var useValues = []; + + if (angular.isArray(customField.useValues)) { + angular.forEach(customField.useValues, function (useValue) { + useValues.push(useValue.value); + }); + } + else { + useValues.push(customField.useValues); + } + + // useValues 瑜� 諛곗뿴濡� 蹂��솚�븳�떎. + var temp = angular.copy(customField); + temp.useValues = useValues; + issueCustomFields.push(temp); + }); + + return issueCustomFields; + })() + }; + + // �벑濡앹씪 + if ($rootScope.isDefined($scope.vm.search.registerDateRange)) { + var registerDateRange = $scope.vm.search.registerDateRange.split("~"); + conditions.beginRegisterDate = registerDateRange[0].trim(); + conditions.endRegisterDate = registerDateRange[1].trim(); + } + + // �떆�옉�씪 + if ($rootScope.isDefined($scope.vm.search.startDateRange)) { + var startDateRange = $scope.vm.search.startDateRange.split("~"); + conditions.beginStartDate = startDateRange[0].trim(); + conditions.endStartDate = startDateRange[1].trim(); + } + // 醫낅즺�씪 + if ($rootScope.isDefined($scope.vm.search.completeDateRange)) { + var completeDateRange = $scope.vm.search.completeDateRange.split("~"); + conditions.beginCompleteDate = completeDateRange[0].trim(); + conditions.endCompleteDate = completeDateRange[1].trim(); + } + + return conditions; + } + + // �씠�뒋 �긽�깭 紐⑸줉 + function getIssueStatuses() { + var deferred = $q.defer(); + $scope.vm.issueStatuses = []; + + IssueStatus.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (issueType) { + $scope.vm.issueStatuses.push({ + fieldKey : issueType.id, + fieldValue : issueType.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("common.failedToIssueStatusListLookup"), result.data.message.message, "error"); // �씠�뒋 �긽�깭 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 �쑀�삎 紐⑸줉 + function getIssueTypes() { + var deferred = $q.defer(); + $scope.vm.issueTypes = []; + + IssueType.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (issueType) { + $scope.vm.issueTypes.push({ + fieldKey : issueType.id, + fieldValue : issueType.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // �씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �슦�꽑�닚�쐞 紐⑸줉 + function getPriorities() { + var deferred = $q.defer(); + $scope.vm.priorities = []; + + Priority.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (prioritiy) { + $scope.vm.priorities.push({ + fieldKey : prioritiy.id, + fieldValue : prioritiy.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // �슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // 以묒슂�룄 紐⑸줉 + function getSeverities() { + var deferred = $q.defer(); + $scope.vm.severities = []; + + Severity.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (severity) { + $scope.vm.severities.push({ + fieldKey : severity.id, + fieldValue : severity.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToCriticalListLookup"), result.data.message.message, "error"); // 以묒슂�룄 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 + function getCustomFields() { + var deferred = $q.defer(); + $scope.vm.customFields = []; + + CustomField.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + + angular.forEach(result.data.data, function (customField) { + switch (customField.customFieldType) { + case "INPUT" : + customField.useValues = ""; + break; + + case "MULTI_SELECT" : + case "SINGLE_SELECT" : + customField.useValues = []; + break; + } + + $scope.vm.customFields.push(customField); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message, "error"); // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + + function drawGanttChart(useProject = false) { + google.charts.load('current', {'packages':['gantt'], 'language': 'ko'}); + if (!useProject) { + google.charts.setOnLoadCallback(drawChart); + } else { + google.charts.setOnLoadCallback(drawChartProject); + } + $rootScope.spinner = false; + } + + function toMilliseconds(minutes) { + return minutes * 60 * 1000; + } + + // 寃��깋議곌굔�뿉�꽌 �빐�떦 �봽濡쒖젥�듃 李얘린 + function findProjectSearch(projectId) { + var projects = $scope.vm.projects; + var find = false; + + for (let i = 0; i < projects.length; i++) { + if (projects[i].id == projectId) { + find = true; + break; + } + } + return find; + } + + function getPageList(selectedPage) { + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + $rootScope.spinner = true; + + // �쁽�옱 �꽑�깮�맂 �봽濡쒖젥�듃瑜� 寃��깋 湲곕낯�쑝濡� 異붽� + if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { + var find = findProjectSearch($rootScope.workProject.id); + if (!find) { + $scope.vm.projects.push($rootScope.workProject); + } + } + + var conditions = $scope.fn.makeSearchConditions(); + + Gantt.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + + if (conditions.projectIds.length > 0) { + drawGanttChart(); + } else { + drawGanttChart(true); + } + } + else { + //SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣 + } + }); + } + + // �씠�뒋由ъ뒪�듃�뿉 �빐�떦 �븘�씠�뵒媛� 議댁옱�븯�뒗吏� �뿬遺� �솗�씤 + function containsIssue(issueId) { + var responseData = $scope.vm.responseData; + if (responseData != null) { + var data = responseData.data; + for (var i=0; i < data.length; i++) { + var el = data[i]; + if (el.id == issueId) { + return true; + } + } + } + return false + } + + // �닚�솚援ъ“�뿬遺� �솗�씤 + // �뿰愿� �씪媛먯씠 �뼇諛⑺뼢�쑝濡� �쟻�슜�릺�뼱 �엳�쓣�븣 李⑦듃�뿉�꽌�뒗 �삤瑜섍� 諛쒖깮�븯誘�濡� �뼇諛⑺뼢�씪 寃쎌슦 泥섎━ �븞�븯湲� �쐞�븿 + function isCycle(parentId, childId) { + var data = $scope.vm.relationIssues; + if (data != null && data.length > 0) { + for (var i=0; i < data.length; i++) { + if (data[i].chartParent == childId && data[i].chartChild == parentId) { + return true; + } + } + } + return false; + } + + function drawChart() { + var responseData = $scope.vm.responseData; + var page = responseData.page; + + var otherData = new google.visualization.DataTable(); + otherData.addColumn('string', 'Task ID'); + otherData.addColumn('string', 'Task Name'); + otherData.addColumn('string', 'Resource'); + otherData.addColumn('date', 'Start'); + otherData.addColumn('date', 'End'); + otherData.addColumn('number', '湲곌컙'); + otherData.addColumn('number', 'Percent Complete'); + otherData.addColumn('string', 'Dependencies'); + var data = responseData.data; + var dataCount = data.length; + var trackHeight = 22; + var bottomHeight = 50; + var chartHeight = dataCount * trackHeight + bottomHeight; + var arrPalette = []; + + if (page.totalCount > 0) { + $scope.vm.relationIssues = []; + data.forEach(el => { + var start = null; + if (el.startDate != null) { + start = new Date(el.startDate); + start.setHours(0,0,0); + } + + var end = null; + if (el.completeDate != null) { + end = new Date(el.completeDate); + end.setHours(23, 59, 59); + } + + var duration = 0; + if (start != null && end != null) { + duration = end.getTime() - start.getTime(); + } + + var p = { + "color": el.issueStatusColor, + "dark": el.issueStatusColor, + "light": el.issueStatusColor + }; + + arrPalette.push(p); + + // �뿰愿��씠�뒋 �꽕�젙 + var relationIssue = null; + if ( el.issueRelationIssueVos != null && el.issueRelationIssueVos.length > 0) { + var i = 0; + relationIssue = ""; + el.issueRelationIssueVos.forEach(rel => { + if (i > 0) { + relationIssue += ","; + } + if (containsIssue(rel.id) && !isCycle(el.id, rel.id)) { + relationIssue += String(rel.id); + var pair = { + chartParent : el.id, + chartChild : rel.id + } + $scope.vm.relationIssues.push(pair); + i++; + } + }); + } + otherData.addRow([String(el.id), el.title, String(el.id), start, end, duration, 100, relationIssue]); + + }) + $scope.vm.useGantt = true; + } else { + var p = { + "color": "0066cc", + "dark": "0066cc", + "light": "0066cc" + }; + + arrPalette.push(p); + otherData.addRow(["none", "�씪媛먯씠 �뾾�뒿�땲�떎", "none", new Date(), null, toMilliseconds(0), 100, null]); + $scope.vm.useGantt = false; + } + + var options = { + gantt: { + defaultStartDate : new Date(), + barHeight : 15, + barCornerRadius : 1, + criticalPathEnabled: true, // Critical path arrows will be the same as other arrows. + arrow: { + angle: 50, + width: 1, + color: '#0066cc', + radius: 2 + }, + labelStyle: { + fontName: 'NanumSquare', + fontSize: 12, + color: '#d5c209' + }, + palette: arrPalette, + trackHeight : trackHeight + }, + height: chartHeight, + animation: {"startup": true} + }; + + var container = document.getElementById('chart_div'); + if (container == null) { + return; + } + var chart = new google.visualization.Gantt(container); + hideChartTooltip(container, chart); + + google.visualization.events.addListener(chart, 'onmouseover', function (e) { + }); + + google.visualization.events.addListener(chart, 'click', function() { + }); + + google.visualization.events.addListener(chart, 'select', function() { + var selection = chart.getSelection(); + + var responseData = $scope.vm.responseData; + var data = responseData.data; + + var issue = data[selection[0].row]; + + // �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎. + $rootScope.$broadcast("makeIssueSearch", issue); + }); + + window.addEventListener('resize', function() { chart.draw(otherData, options); }, false); //�솕硫� �겕湲곗뿉 �뵲�씪 洹몃옒�봽 �겕湲� 蹂�寃� + chart.draw(otherData, options); + } + + + // �씠�뒋瑜� 諛곗뿴�뿉 異붽� + function addIssue(projectId, issue) { + if ($scope.vm.projectCompleteIssues[projectId] == null) + $scope.vm.projectCompleteIssues[projectId] = []; + + if ($scope.vm.projectIssues[projectId] == null) + $scope.vm.projectIssues[projectId] = []; + + if (issue.issueStatusType == "CLOSE") { + $scope.vm.projectCompleteIssues[projectId].push(issue); + } + $scope.vm.projectIssues[projectId].push(issue); + } + + // google chart 湲곕낯 tooltip 媛�由ш린 + function hideChartTooltip(container, chart) { + google.visualization.events.addOneTimeListener(chart, 'ready', function () { + var observer = new MutationObserver(function (nodes) { + Array.prototype.forEach.call(nodes, function(node) { + if (node.addedNodes.length > 0) { + Array.prototype.forEach.call(node.addedNodes, function(addedNode) { + if ((addedNode.tagName === 'rect') && (addedNode.getAttribute('fill') === 'white')) { + addedNode.setAttribute('fill', 'transparent'); + addedNode.setAttribute('stroke', 'transparent'); + Array.prototype.forEach.call(addedNode.parentNode.getElementsByTagName('text'), function(label) { + label.setAttribute('fill', 'transparent'); + }); + } + }); + } + }); + }); + observer.observe(container, { + childList: true, + subtree: true + }); + }); + } + + function drawChartProject() { + var responseData = $scope.vm.responseData; + var page = responseData.page; + + var otherData = new google.visualization.DataTable(); + otherData.addColumn('string', 'Task ID'); + otherData.addColumn('string', 'Task Name'); + otherData.addColumn('string', 'Resource'); + otherData.addColumn('date', '�떆�옉'); + otherData.addColumn('date', '醫낅즺'); + otherData.addColumn('number', '湲곌컙'); + otherData.addColumn('number', '吏꾪뻾�쑉'); + otherData.addColumn('string', '�긽�쐞�봽濡쒖젥�듃'); + var data = responseData.data; + + var trackHeight = 35; + var bottomHeight = 50; + + $scope.vm.arrProjects = []; + if (page.totalCount > 0) { + data.forEach(el => { + addIssue(el.projectId, el); + }); + + var workProjects = $rootScope.projects; + workProjects.forEach(projectObj => { + if (projectObj.id > 0) { + var issues = $scope.vm.projectIssues[projectObj.id]; + var completeIssues = $scope.vm.projectCompleteIssues[projectObj.id]; + var start = null; + if (projectObj.startDate != null) { + start = new Date(projectObj.startDate); + start.setHours(0, 0, 0); + } + + var end = null; + if (projectObj.endDate != null) { + end = new Date(projectObj.endDate); + end.setHours(23, 59, 59); + } + + var duration = 0; + if (start != null && end != null) { + duration = end.getTime() - start.getTime(); + } + + var percent = 0; + var endCount = completeIssues == null ? 0 : completeIssues.length.toFixed(2); + var totalCount = issues == null ? 0 : issues.length; + if (totalCount > 0) { + percent = parseInt(endCount / totalCount * 100.0); + } + + var depend = null; + if (projectObj.parentProjectId != null) { + depend = String(projectObj.parentProjectId); + } + + $scope.vm.arrProjects.push(projectObj.id); + otherData.addRow([String(projectObj.id), projectObj.name, String(projectObj.id), start, end, duration, percent, depend]); + } + }); + + $scope.vm.useGantt = true; + } else { + otherData.addRow(["none", "�씪媛먯씠 �뾾�뒿�땲�떎", "none", new Date(), null, toMilliseconds(0), 100, null]); + $scope.vm.useGantt = false; + } + + var dataCount = $scope.vm.arrProjects.length; + var chartHeight = dataCount * trackHeight + bottomHeight; + + var options = { + gantt: { + defaultStartDate : new Date(), + barHeight : 18, + barCornerRadius : 1, + criticalPathEnabled: true, // Critical path arrows will be the same as other arrows. + arrow: { + angle: 50, + width: 1, + color: '#0066cc', + radius: 2 + }, + labelStyle: { + fontName: 'NanumSquare', + fontSize: 12, + color: '#d5c209' + }, + trackHeight : trackHeight + }, + height: chartHeight, + animation: {"startup": true} + }; + + var container = document.getElementById('chart_div'); + if (container == null) { + return; + } + var chart = new google.visualization.Gantt(container); + + hideChartTooltip(container, chart); + + google.visualization.events.addListener(chart, 'onmouseover', function (e) { + }); + + google.visualization.events.addListener(chart, 'click', function() { + }); + + google.visualization.events.addListener(chart, 'select', function() { + var selection = chart.getSelection(); + $rootScope.changeLastProject($scope.vm.arrProjects[selection[0].row]); + }); + + window.addEventListener('resize', function() { chart.draw(otherData, options); }, false); //�솕硫� �겕湲곗뿉 �뵲�씪 洹몃옒�봽 �겕湲� 蹂�寃� + chart.draw(otherData, options); + + } + + function startExecute() { + var promises = { + getIssueTypes: $scope.fn.getIssueTypes(), + getPriorities: $scope.fn.getPriorities(), + getSeverities: $scope.fn.getSeverities(), + getIssueStatuses: $scope.fn.getIssueStatuses(), + getCustomFields: $scope.fn.getCustomFields() + } + + $q.all(promises).then(function (results) { + $log.debug("promises 寃곌낵 ", results); + $scope.fn.getPageList(); + }); + } + + $scope.fn.startExecute(); + + }]); + }); diff --git a/src/main/webapp/scripts/app/guide/guide.js b/src/main/webapp/scripts/app/guide/guide.js new file mode 100644 index 0000000..4d13456 --- /dev/null +++ b/src/main/webapp/scripts/app/guide/guide.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('guide', { + abstract : true, + url : "/guide", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('guide.list', { + url : '/guideList', + data : { + authorities : ['NOTICE_READ'] + }, + templateUrl : 'views/guide/guideList.html', + controller : "guideListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(['guideListController', 'guideAddController', 'guideModifyController', 'guideViewController', + 'guideService', 'jsTable', 'tableColumnGenerator', 'formSubmit'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/guide/guideAdd.controller.js b/src/main/webapp/scripts/app/guide/guideAdd.controller.js new file mode 100644 index 0000000..9e10fc6 --- /dev/null +++ b/src/main/webapp/scripts/app/guide/guideAdd.controller.js @@ -0,0 +1,115 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('guideAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Guide', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Guide, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + title : "", // �젣紐� + description : "" // �궡�슜 + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description) + }; + + Guide.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getGuideList", {}); + } + else { + SweetAlert.error($filter("translate")("guide.failedGuideRegistration"), result.data.message.message); + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/guide/guideList.controller.js b/src/main/webapp/scripts/app/guide/guideList.controller.js new file mode 100644 index 0000000..a67d971 --- /dev/null +++ b/src/main/webapp/scripts/app/guide/guideList.controller.js @@ -0,0 +1,192 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('guideListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'Guide', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, Guide, SweetAlert, $timeout, $filter) { + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + makeSearchConditions : makeSearchConditions, + add : add, // guide �벑濡� + }; + + // 蹂��닔 + $scope.vm = { + search : { + title : "" + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify, + view : view, + activation : activation // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + }; + + // 媛��씠�뱶 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getGuideList", function () { + $scope.fn.getPageList(0); + }); + + // �궗�슜�옄 紐⑸줉 �떎�슫濡쒕뱶 諛쏄린 + function makeSearchConditions() { + return {}; + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.number") + .setHWidth("width-60-p bold") + .setDAlign("text-center") + .setDName("id")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.title") + .setHWidth("bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("GUIDE_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.registrationDate") + .setHWidth("width-100-p bold") + .setDAlign("text-center") + .setDName("registerDate")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.register") + .setHWidth("width-120-p bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("GUIDE_REGISTER")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("guide.activation") + .setHWidth("width-80-p bold") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("GUIDE_ACTIVE")); + } + + // 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + title : $scope.vm.search.title + }; + + Guide.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("guide.failedToLookupGuideList"), result.data.message.message); //怨듭� �궗�빆 紐⑸줉 議고쉶 �떎�뙣 + } + }); + } + + // guide �벑濡� + function add() { + $uibModal.open({ + templateUrl : 'views/guide/guideAdd.html', + size : "md", + controller : 'guideAddController', + backdrop : 'static' + }); + } + + // guide �닔�젙 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/guide/guideModify.html', + size : "md", + controller : 'guideModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // guide 蹂닿린 + function view(title, description) { + $uibModal.open({ + templateUrl : 'views/guide/guideView.html', + size : "lg", + controller : 'guideViewController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + title : title, + description : description + }; + } + } + }); + } + + function activation(guideData ) { + Guide.activation($resourceProvider.getContent( + guideData, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + $scope.fn.getPageList(currentPage); + } + else { + SweetAlert.error($filter("translate")("guide.failedToActivation"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣" + } + }); + } + + // �뀒�씠釉� �꽕�젙 + $scope.fn.makeTableConfigs(); + // 紐⑸줉 議고쉶 + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/guide/guideModify.controller.js b/src/main/webapp/scripts/app/guide/guideModify.controller.js new file mode 100644 index 0000000..0c519ea --- /dev/null +++ b/src/main/webapp/scripts/app/guide/guideModify.controller.js @@ -0,0 +1,143 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('guideModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Guide', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Guide, parameter, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� + }; + + $scope.vm = { + search : { + id : parameter.id + }, + form : { + id : parameter.id, + title : "", // �젣紐� + description : "" // �궡�슜 + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id, + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description) + }; + + Guide.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getGuideList", {}); + } + else { + SweetAlert.error($filter("translate")("guide.failedToModifyGuide"), result.data.message.message); //怨듭� �궗�빆 �닔�젙 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �긽�꽭 議고쉶 + function detail() { + Guide.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if ($rootScope.isDefined(result.data.data)) { + $scope.vm.form.title = result.data.data.title; + $scope.vm.form.description = result.data.data.description; + } + } + else { + SweetAlert.error($filter("translate")("guide.failedToLookupGuideDetails"), result.data.message.message); //guide �긽�꽭 �젙蹂� 議고쉶 �떎�뙣 + } + }); + } + + // guide �긽�꽭 議고쉶 + $scope.fn.detail(); + }]); + }); diff --git a/src/main/webapp/scripts/app/guide/guideView.controller.js b/src/main/webapp/scripts/app/guide/guideView.controller.js new file mode 100644 index 0000000..ecc9d64 --- /dev/null +++ b/src/main/webapp/scripts/app/guide/guideView.controller.js @@ -0,0 +1,32 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('guideViewController', ['$scope', '$log', '$rootScope', '$uibModalInstance', 'parameter', + function ($scope, $log, $rootScope, $uibModalInstance, parameter) { + + $scope.fn = { + cancel : cancel // �뙘�뾽 李� �떕湲� + }; + + $scope.vm = { + viewer : { + title : parameter.title, + description : parameter.description + } + }; + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issue.js b/src/main/webapp/scripts/app/issue/issue.js new file mode 100644 index 0000000..7725198 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issue.js @@ -0,0 +1,51 @@ +/** + * Created by wisestone on 2018-01-03. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('issues', { + abstract: true, + url: "/issues", + templateUrl: "views/common/app.html", + resolve: { + authorize: function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader: function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('issues.list', { + url: "/issueList", + data: { + authorities: ['ISSUE_TOTAL'] + }, + templateUrl: 'views/issue/issueList.html', + controller: "issueManagerController", + resolve: { + loadController: ["$q", function ($q) { + var deferred = $q.defer(); + require([ + 'issueListTimelineController', 'issueManagerController', 'issueListController', 'issueAddController', 'issueModifyController', 'issueDetailController', 'issueImportExcelController', + 'chartLoader', 'jsTable', 'tableColumnGenerator', 'modalFormAutoScroll', 'summerNote', 'summerNote-ko-KR', 'fullScroll', 'workflowService', 'priorityService', 'issueSearchService', 'issueTableConfigService', 'inputRegex', + 'severityService', 'issueTypeService', 'issueTypeCustomFieldService', 'issueService', 'issueStatusService', 'issueUserService', 'issueModifyUserController', 'customFieldService', 'issueSearchFieldKeyViewElement', + 'issueSearchCustomFieldViewElement', 'tableUserImage', 'fullScroll', 'issueCommentService', 'detectIssueEditor', 'formSubmit', 'issueModifyStatusController', 'jsShortCut', + 'issueAddTableConfigController', 'domAppend', 'issueDetailImagePreview', 'issueSendMailController', 'htmlDiff', 'issueVersionViewController', 'issueVersionService', + 'jsHtmlDiff', 'issueReservationController', 'issueReservationService', 'issueVersionService', 'issueStatusAutoFocus', 'issueRelationService' + ], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js new file mode 100644 index 0000000..887caa8 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js @@ -0,0 +1,564 @@ +/** + * Created by wisestone on 2017-12-15. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$injector', + '$controller', '$tableProvider', 'SweetAlert', '$timeout', '$stateParams', '$q', 'Issue', 'User', 'AttachedFile', 'IssueType', 'Priority', 'Severity', 'IssueTypeCustomField', '$filter', '$state', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, $tableProvider, SweetAlert, $timeout, + $stateParams, $q, Issue, User, AttachedFile, IssueType, Priority, Severity, IssueTypeCustomField, $filter, $state) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + getUserListCallBack : getUserListCallBack, // �떞�떦�옄 autocomplete �럹�씠吏� + getProjectListCallBack : getProjectListCallBack, // �봽濡쒖젥�듃 autocomplete �럹�씠吏� + getOptionColor : getOptionColor, // �슦�꽑�닚�쐞, 以묒슂�룄 �깋�긽�쑝濡� Select �깭洹� �쟻�슜 + onFileSelect : onFileSelect, // �뙆�씪 泥⑤� + infiniteAddForm : infiniteAddForm, // 怨꾩냽 �깮�꽦 + imageUpload : imageUpload, // �꽟癒몃끂�듃 �씠誘몄� �뾽濡쒕뱶 + getIssueTypes : getIssueTypes, // �씠�뒋 ���엯 紐⑸줉 媛��졇�삤湲� + getPriorities : getPriorities, // �슦�꽑�닚�쐞 紐⑸줉 媛��졇�삤湲� + getSeverities : getSeverities, // 以묒슂�룄 紐⑸줉 媛��졇�삤湲� + getIssueTypeCustomFields : getIssueTypeCustomFields, // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 媛��졇�삤湲� + removeUploadFile : removeUploadFile, // �뾽濡쒕뱶�븯�젮�뒗 �듅�젙 �뙆�씪�쓣 �궘�젣 + removeManager : removeManager, // �떞�떦�옄 �궘�젣 + setIssueTypeTemplate : setIssueTypeTemplate, // �씠�뒋 �쑀�삎 �뀥�뵆由� �쟻�슜�븯湲� + startExecute : startExecute // 而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔 + }; + + $scope.vm = { + form : { + title : "", // �젣紐� + description : "", // �궡�슜 + projects : [], // �봽濡쒖젥�듃 + issueTypeId : "", // �씠�뒋 �쑀�삎 �븘�씠�뵒 + priorityId : "", // �슦�꽑�닚�쐞 �븘�씠�뵒 + severityId : "", // 以묒슂�룄 �븘�씠�뵒 + users : [], // �떞�떦�옄 + files : [], // �뾽濡쒕뱶 �뙆�씪 + attachedFiles : [], // �꽟癒몃끂�듃濡� �뙆�씪 �뾽濡쒕뱶瑜� �븷 寃쎌슦 �꽌踰꾩뿉�꽌 pk瑜� �뵲怨� issue id�� �뿰�룞 �옉�뾽�씠 �븘�슂�븯�떎. + startCompleteDateRange : "", // �떆�옉�씪 ~ 醫낅즺�씪 + issueCustomFields : [] // �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶 + }, + infiniteAdd : false, // �뿰�냽 �깮�꽦 + projectName : "", // �봽濡쒖젥�듃 紐� 寃��깋 + userName : "", // �궗�슜�옄 寃��깋 + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + }, + project : { + page : 0, + totalPage : 0 + } + }, + summerNote : { + editable : null, + editor : null + }, + issueTypes : [], // �씠�뒋 �쑀�삎 �쟾泥� 紐⑸줉 + priorities : [], // �슦�꽑�닚�쐞 �젙蹂� + severities : [], // 以묒슂�룄 �젙蹂� + fileTableConfigs : [], // �뙆�씪 �뾽濡쒕뱶 �젙蹂� �뀒�씠釉� + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + + function getStartProjectListCallback(result){ + // �봽濡쒖젥�듃 autocomplete page �뾽�뜲�씠�듃 + $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; + + var projectVo = result.data.data[0]; + $scope.vm.form.projects.push(projectVo); + } + + // �봽濡쒖젥�듃媛� 蹂�寃쎈릺硫� �떞�떦�옄 珥덇린�솕 + $scope.$watch("vm.form.projects", function (newValue, oldValue) { + if (angular.isDefined(newValue)) { + if (newValue.length < 1) { + $scope.vm.form.users = []; + } + + // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 媛��졇�삤湲� + $scope.fn.getIssueTypeCustomFields(); + } + }); + + // �꽟癒몃끂�듃 �씠誘몄� �뾽濡쒕뱶 + function imageUpload($files) { + var listFiles = []; + var uploadFileSize = 0; + + for (var count in $files) { + var $file = $files[count]; + + if (typeof ($file) == "object") { + uploadFileSize += $file.size; + + // �뙆�씪�떦 �슜�웾 �젣�븳 10MB + if ($file.size > $rootScope.fileByte.image) { + SweetAlert.error($filter("translate")("issue.capacityExceededImageFile"), $filter("translate")("issue.attachedOnlyImageFiles10mb")); // "�씠誘몄� �뙆�씪 �슜�웾 珥덇낵", "10MB �씠�븯�쓽 �씠誘몄� �뙆�씪留� 泥⑤�媛� 媛��뒫�빀�땲�떎." + listFiles = []; + break; + } + + // �뿬�윭嫄댁쓽 �뙆�씪�쓣 �븳踰덉뿉 �뾽濡쒕뱶�븷 寃쎌슦 �젣�븳 300MB + if (uploadFileSize > $rootScope.fileByte.file) { + SweetAlert.error($filter("translate")("issue.capacityExceededImageFile"), $filter("translate")("issue.attachedMultipleImageFiles100mb")); // "�씠誘몄� �뙆�씪 �슜�웾 珥덇낵", "�뿬�윭 嫄댁쓽 �씠誘몄�瑜� �븳踰덉뿉 泥⑤��븷 寃쎌슦 100MB �씠�븯源뚯�留� 泥⑤�媛� 媛��뒫�빀�땲�떎." + listFiles = []; + break; + } + + if (!$rootScope.checkImageType($file)) { + SweetAlert.error($filter("translate")("issue.limitImageFile"), $filter("translate")("issue.canBeUploadedOnlyImageFiles")); // "�씠誘몄� �뙆�씪 �젣�븳", "�씠誘몄� �뙆�씪留� �뾽濡쒕뱶 媛��뒫�빀�땲�떎. - bmp, jpg, jpeg, png, tif" + listFiles = []; + break; + } + + if (!angular.isDefined($file.name)) { + var fileType = $file.type.split("/"); + var imageType = ""; + + if (fileType[0] === "image") { + imageType = "." + fileType[1]; + } + + $file.name = new Date().getTime() + imageType; + } + else { + if ($file.name.indexOf(';') !== -1) { + SweetAlert.error($filter("translate")("issue.nameErrorImageFile"), $filter("translate")("issue.cannotUploadFileNameSpecialCharacters")); // "�씠誘몄� �뙆�씪紐� �삤瑜�", "�뙆�씪紐낆뿉 �듅�닔臾몄옄(;)媛� �뱾�뼱媛�硫� �뾽濡쒕뱶 �븷 �닔 �뾾�뒿�땲�떎." + listFiles = []; + break; + } + } + + listFiles.push($file); + } + } + + // �뙆�씪 �뾽濡쒕뱶 寃�利앹쓣 嫄곗튇 �뙆�씪�씠 1媛쒖씠�긽 議댁옱�븷 寃쎌슦�뿉留� �떎�뻾 + if (listFiles.length > 0) { + AttachedFile.add({ + method : "POST", + file : listFiles, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : { + workspaceId : $rootScope.user.lastWorkspaceId + } + }, + fileFormDataName : "file" + }) + .then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.attachedFiles, function (fileInfo) { + $scope.vm.summerNote.editor.summernote("editor.insertImage", fileInfo.path); + $scope.vm.form.attachedFiles.push(fileInfo); + }); + } + else { + SweetAlert.error($filter("translate")("issue.errorFileUpload"), result.data.message.message); // �뙆�씪 �뾽濡쒕뱶 �삤瑜� + } + }); + } + } + + // �뿰�냽�쑝濡� �씠�뒋瑜� �벑濡앺븷 �븣 �엯�젰 �뤌 珥덇린�솕 + function infiniteAddForm() { + $scope.vm.form.title = ""; + $scope.vm.form.description = ""; + $scope.vm.form.files = []; + $scope.vm.form.attachedFiles = []; + + // �씠�뒋 �쑀�삎 �뀥�뵆由� �쟻�슜�븯湲� + $scope.fn.setIssueTypeTemplate(); + + $(".modal-body").animate({ + scrollTop : 0 + }, 500); + + $timeout(function () { + $("[name='title']").trigger("focus") + }, 100); + } + + // �뙆�씪 �뾽濡쒕뱶�뿉 �궗�슜 + function onFileSelect($files) { + var uploadFileSize = 0; + + // �씠�쟾�뿉 泥⑤��븳 �뙆�씪�씠 �엳�쓣 寃쎌슦 �쟾泥� �뾽濡쒕뱶 �슜�웾�뿉 �룷�븿 + angular.forEach($scope.vm.form.files, function ($file) { + uploadFileSize += $file.size; + }); + + for (var count in $files) { + var $file = $files[count]; + + if (typeof ($file) == "object") { + uploadFileSize += $file.size; + + // �뙆�씪�떦 �슜�웾 �젣�븳 300MB + if (($file.size > $rootScope.fileByte.file) || (uploadFileSize > $rootScope.fileByte.file)) { + SweetAlert.error($filter("translate")("issue.attachmentCapacityExceeded"), $filter("translate")("issue.canAttachFileUpTo100mb")); // "泥⑤� �뙆�씪 �슜�웾 珥덇낵", "100MB �씠�븯源뚯�留� �뙆�씪 泥⑤�媛� 媛��뒫�빀�땲�떎." + break; + } + + // �뙆�씪�쓣 �뾽濡쒕뱶�븷 �븣 �뙆�씪 �쑀�삎�쓣 �솗�씤�빐二쇰뒗 湲곕뒫 - �뿀�슜�릺吏� �븡�� �솗�옣�옄�씪 �븣�뒗 泥⑤� 湲덉� + if (!$rootScope.checkFileType($file)) { + SweetAlert.error($filter("translate")("issue.limitAttachmentExtensions"), $filter("translate")("issue.notAllowedAttachment")); // "泥⑤� �뙆�씪 �솗�옣�옄 �젣�븳", "泥⑤�媛� �뿀�슜�릺吏� �븡�뒗 �뙆�씪�엯�땲�떎." + break; + } + + if ($file.name.indexOf(';') !== -1) { + SweetAlert.error($filter("translate")("issue.nameErrorAttachment"), $filter("translate")("issue.cannotUploadFileNameSpecialCharacters")); // "泥⑤� �뙆�씪紐� �삤瑜�", "�뙆�씪紐낆뿉 �듅�닔臾몄옄(;)媛� �뱾�뼱媛�硫� �뾽濡쒕뱶 �븷 �닔 �뾾�뒿�땲�떎." + break; + } + + $file.index = count; + $scope.vm.form.files.push($file); + } + } + } + + // ���젆�듃 諛뺤뒪�뿉�꽌 以묒슂�룄, �슦�꽑�닚�쐞 �깋�긽 �몴�떆 + function getOptionColor(list, key) { + var color = "#353535"; // 湲곕낯�깋�� 寃����깋. + + for (var count in list) { + if (String(list[count].id) === key) { + color = list[count].color; + break; + } + } + + return color; + } + + // �떞�떦�옄 �궘�젣 + function removeManager(index) { + $scope.vm.form.users.splice(index, 1); + } + + // �뾽濡쒕뱶 �뙆�씪 �궘�젣 + function removeUploadFile(index) { + $scope.vm.form.files.splice(index, 1); + + angular.forEach($scope.vm.form.files, function (file, index) { + file.index = index; + }); + } + + // �떞�떦�옄 autocomplete page �뾽�뜲�씠�듃�듃 + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + // �봽濡쒖젥�듃 autocomplete page �뾽�뜲�씠�듃 + function getProjectListCallBack(result) { + $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; + } + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.projects.length < 1) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + title : $rootScope.preventXss($scope.vm.form.title), // �젣紐� + description : $rootScope.preventXss($scope.vm.form.description), // �궡�슜 + projectId : (function () { // �봽濡쒖젥�듃 �븘�씠�뵒 + var projectId = ""; + + if ($scope.vm.form.projects.length > 0) { + projectId = $scope.vm.form.projects[0].id; + } + + return projectId; + })(), + issueTypeId : $scope.vm.form.issueTypeId, // �씠�뒋 �쑀�삎 �븘�씠�뵒 + priorityId : $scope.vm.form.priorityId, // �슦�꽑�닚�쐞 �븘�씠�뵒 + severityId : $scope.vm.form.severityId, // 以묒슂�룄 �븘�씠�뵒 + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.form.users, function (user) { + userIds.push(user.id); + }); + + return userIds; + })(), + attachedFileIds : (function () { + var attachedFileIds = []; + + angular.forEach($scope.vm.form.attachedFiles, function (attachedFile) { + if ($scope.vm.form.description.indexOf(attachedFile.path) !== -1) { + attachedFileIds.push(attachedFile.id); + } + }); + + return attachedFileIds; + })(), + startCompleteDateRange : $scope.vm.form.startCompleteDateRange, + issueCustomFields : (function () { // �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶 + var issueCustomFields = []; + + angular.forEach($scope.vm.form.issueCustomFields, function (issueCustomField) { + var useValues = []; + + if (angular.isArray(issueCustomField.useValues)) { + angular.forEach(issueCustomField.useValues, function (useValue) { + useValues.push(useValue.value); + }); + } + else { + useValues.push(issueCustomField.useValues); + } + + // useValues 瑜� 諛곗뿴濡� 蹂��솚�븳�떎. + var temp = angular.copy(issueCustomField); + temp.useValues = useValues; + issueCustomFields.push(temp); + }); + + return issueCustomFields; + })() + }; + + + Issue.add({ + method : "POST", + file : $scope.vm.form.files, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : content + }, + fileFormDataName : "file" + }).then(function (result) { + if (result.data.message.status === "success") { + // �뿰�냽 �벑濡� 泥댄겕�떆 �씠�룞�븯吏� �븡�쓬. + if ($scope.vm.infiniteAdd) { + $scope.fn.infiniteAddForm(); + } + else { + $scope.fn.cancel(); + + if ($state.current.name !== "issues.list") { + $state.go("issues.list"); + } + } + + $rootScope.$broadcast("getIssueList", {}); + } + else { + SweetAlert.error($filter("translate")("issue.failedIssueRegistration"), result.data.message.message); // �씠�뒋 �벑濡� �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + SweetAlert.close(); // �븣由� 李� �떕湲� + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �씠�뒋 �쑀�삎 紐⑸줉 + function getIssueTypes() { + var deferred = $q.defer(); + + IssueType.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueTypes = result.data.data; + } + else { + SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // �씠�뒋 ���엯 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �슦�꽑�닚�쐞 紐⑸줉 + function getPriorities() { + var deferred = $q.defer(); + + Priority.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.priorities = result.data.data; + } + else { + SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // �슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // 以묒슂�룄 紐⑸줉 + function getSeverities() { + var deferred = $q.defer(); + + Severity.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.severities = result.data.data; + } + else { + SweetAlert.swal($filter("translate")("issue.failedToCriticalListLookup"), result.data.message.message, "error"); // 以묒슂�룄 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 + function getIssueTypeCustomFields() { + $scope.vm.form.issueCustomFields = []; + // �씠�뒋 ���엯 �븘�씠�뵒�굹 �봽濡쒖젥�듃 �븘�씠�뵒媛� �뾾�쑝硫� �넻�떊�쓣 �븯吏� �븡�뒗�떎. + if (!$rootScope.isDefined($scope.vm.form.issueTypeId) || $scope.vm.form.projects.length < 1) { + return; + } + // �씠�뒋 �쑀�삎 �뀥�뵆由� �쟻�슜�븯湲� + $scope.fn.setIssueTypeTemplate(); + + var deferred = $q.defer(); + + IssueTypeCustomField.find($resourceProvider.getContent({projectId : $scope.vm.form.projects[0].id, issueTypeId : $scope.vm.form.issueTypeId}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + + angular.forEach(result.data.data, function (issueTypeCustomField) { + switch (issueTypeCustomField.customFieldVo.customFieldType) { + case "INPUT" : + issueTypeCustomField.useValues = issueTypeCustomField.customFieldVo.defaultValue; + break; + case "SINGLE_SELECT" : + issueTypeCustomField.useValues = issueTypeCustomField.customFieldVo.defaultValue.replace("#", ""); + break; + + case "MULTI_SELECT" : + issueTypeCustomField.useValues = []; + + angular.forEach(issueTypeCustomField.customFieldVo.defaultValue.split("#"), function (value) { + if ($rootScope.isDefined(value)) { + issueTypeCustomField.useValues.push({ + value : value + }); + } + }); + break; + } + + $scope.vm.form.issueCustomFields.push(issueTypeCustomField); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListAssociatedLookup"), result.data.message.message, "error"); // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 ���엯�뿉 �엳�뒗 �뀥�뵆由우쓣 �쟻�슜�븳�떎. + function setIssueTypeTemplate() { + for (var count in $scope.vm.issueTypes) { + var issueType = $scope.vm.issueTypes[count]; + + if ($scope.vm.form.issueTypeId === String(issueType.id)) { + // �뀥�뵆由우씠 �옉�꽦�릺�뼱 �엳�뒗吏� �솗�씤 + if ($rootScope.isDefined(issueType.description)) { + // �씠�뒋 �궡�슜�씠 �옉�꽦�릺�뼱 �엳吏� �븡�쑝硫� 諛붾줈 �뀥�뵆由� �쟻�슜 + if (!$rootScope.isDefined($scope.vm.form.description)) { + $scope.vm.form.description = issueType.description; + } + else { + // �씠誘� �궡�슜�씠 �옉�꽦�릺�뼱 �엳�쑝硫� �솗�씤 �썑 �쟻�슜 + SweetAlert.swal({ + title : $filter("translate")("issue.applyTemplate"), // �뀥�뵆由� �쟻�슜�븯湲� + text : $filter("translate")("issue.issueContentIsWrittenApplyTheTemplate"), // �씠�뒋 �궡�슜�씠 �옉�꽦�릺�뼱 �엳�뒿�땲�떎. �뀥�뵆由우쓣 �쟻�슜�븯寃좎뒿�땲源�? �뀥�뵆由우씠 �쟻�슜�릺硫� �씠誘� �옉�꽦�맂 �궡�슜�씠 �궗�씪吏묐땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("issue.applyTemplate"), // �뀥�뵆由� �쟻�슜�븯湲� + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $scope.vm.form.description = issueType.description; + } + }); + } + } + + break; + } + } + } + + // 理쒖큹 �떎�뻾 + function startExecute() { + var promises = { + getIssueTypes : $scope.fn.getIssueTypes(), + getPriorities : $scope.fn.getPriorities(), + getSeverities : $scope.fn.getSeverities() + }; + $q.all(promises).then(function (results) { + // �쁽�옱 �봽濡쒖젥�듃 �꽕�젙 + if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { + $scope.vm.projectName = $rootScope.workProject.name; + $scope.fn.projects = []; + $scope.fn.projects.push($rootScope.workProject); + $scope.fn.getProjectList($scope.vm.projectName, $scope.vm.form.projects, $scope.vm.autoCompletePage.project.page, getStartProjectListCallback); + } + + $log.debug("promises 寃곌낵 ", results); + }); + } + + $scope.fn.startExecute(); + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js new file mode 100644 index 0000000..6793b14 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js @@ -0,0 +1,186 @@ +/** + * Created by wisestone on 2019-02-07. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'CustomField', '$q', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, CustomField, $q, $filter) { + + // �븿�닔 紐⑥쓬 + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + getCustomFields : getCustomFields, // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉�쓣 媛��졇�삩�떎. + getIssueTableConfigs : getIssueTableConfigs // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �젙蹂대�� 媛��졇�삩�떎. + }; + + // 蹂��닔 紐⑥쓬 + $scope.vm = { + issueTableConfigs : [{ + name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞 + key : "PRIORITY", + width : "width-100-p", + position : 1, + display : true + }, { + name : $filter("translate")("common.importance"), // 以묒슂�룄 + key : "SEVERITY", + width : "width-80-p", + position : 2, + display : true + }, { + name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯 + key : "ISSUE_TYPE", + width : "width-140-p", + position : 3, + display : true + }, { + name : $filter("translate")("common.assignee"), // �떞�떦�옄 + key : "ASSIGNEE", + width : "width-100-p", + position : 4, + display : true + }, { + name : $filter("translate")("common.register"), // �벑濡앹옄 + key : "REGISTER", + width : "width-100-p", + position : 5, + display : false + }, { + name : $filter("translate")("common.period"), // 湲곌컙 + key : "PERIOD", + width : "width-140-p", + position : 6, + display : false + }, { + name : $filter("translate")("common.lastChangeDate"), // 理쒓렐 蹂�寃쎌씪 + key : "MODIFY_DATE", + width : "width-100-p", + position : 7, + display : false + }] + }; + + + // �뤌 �쟾�넚 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs) + }; + + IssueTableConfig.add($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + SweetAlert.success($filter("translate")("issue.completedSavingIssueTable"), $filter("translate")("issue.saveIssueTableSettingsInformation")); // "�씠�뒋 �뀒�씠釉� �꽕�젙 ���옣 �셿猷�", "�씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂닿� ���옣�릺�뿀�뒿�땲�떎." + // 蹂�寃쎈맂 �씠�뒋 �뀒�씠釉� �젙蹂대�� �씠�뒋 紐⑸줉 �뀒�씠釉붿뿉 媛깆떊�븳�떎. + $rootScope.$broadcast("getIssueTableConfigs", {}); + } + else { + SweetAlert.error($filter("translate")("issue.failedToSaveIssueTableSetting"), result.data.message.message); // �씠�뒋 �뀒�씠釉� �꽕�젙 ���옣 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉�쓣 媛��졇�삩�떎. + function getCustomFields() { + var deferred = $q.defer(); + + CustomField.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status !== "success") { + SweetAlert.error($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message); // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �젙蹂대�� 媛��졇�삩�떎. + function getIssueTableConfigs() { + var deferred = $q.defer(); + + IssueTableConfig.detail($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status !== "success") { + SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // �씠�뒋 �뀒�씠釉� 而щ읆 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶瑜� 議고쉶�븳 �썑 �몴�떆�븷 �씠�뒋 �뀒�씠釉� 而щ읆�쓣 以�鍮꾪븳�떎. + $scope.fn.getCustomFields().then(function (result) { + var count = 7; + angular.forEach(result, function (customField) { + $scope.vm.issueTableConfigs.push({ + name : customField.name, + key : "CUSTOM_FIELD_" + customField.id, + width : "width-100-p", + display : false, + position : count + }); + + count++; + }); + + // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �젙蹂대�� 媛��졇�삩�떎. + $scope.fn.getIssueTableConfigs().then(function (issueTableConfigs) { + if ($rootScope.isDefined(issueTableConfigs)) { + $rootScope.spinner = true; + + var saveTableConfigs = JSON.parse(issueTableConfigs); + + angular.forEach(saveTableConfigs, function (saveTableConfig) { + + for (var count in $scope.vm.issueTableConfigs) { + var issueTableConfig = $scope.vm.issueTableConfigs[count]; + + if (issueTableConfig.key === saveTableConfig.key) { + issueTableConfig.display = saveTableConfig.display; + issueTableConfig.width = saveTableConfig.width; + issueTableConfig.position = saveTableConfig.position; + break; + } + } + }); + + $rootScope.spinner = false; + } + }); + }); + + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js new file mode 100644 index 0000000..f8c07f3 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -0,0 +1,566 @@ +/** + * Created by wisestone on 2018-01-03. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'SweetAlert', '$timeout', 'Issue', 'IssueComment', 'IssueRelation', 'AttachedFile', 'IssueStatus', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, IssueStatus, $filter) { + + // IssueListController vm, fn 蹂��닔 �긽�냽. + + $scope.fn.getIssueDetail = getIssueDetail; // �씠�뒋 �긽�꽭 �젙蹂� 媛��졇�삤湲� + $scope.fn.addComment = addComment; // �뙎湲� �벑濡� + $scope.fn.removeComment = removeComment; // �뙎湲� �궘�젣 + $scope.fn.getCommentList = getCommentList; // �뙎湲� 紐⑸줉 媛��졇�삤湲� + $scope.fn.getAttachedFiles = getAttachedFiles; // 泥⑤� �뙆�씪 紐⑸줉 + $scope.fn.makePreviewImages = makePreviewImages; // �씠�뒋 �씠誘몄� 誘몃━蹂닿린 留뚮뱾湲� + $scope.fn.makeActiveHistory = makeActiveHistory; // �솢�룞 �씠�젰 留뚮뱾湲� + $scope.fn.setFormByIssueTypeCustomFields = setFormByIssueTypeCustomFields; // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎. + $scope.fn.setUseValueByIssueTypeCustomFields = setUseValueByIssueTypeCustomFields; // �씠�뒋�뿉�꽌 �궗�슜�옄媛� �꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 �엯�젰 �뤌�뿉 �뀑�똿�븳�떎. + $scope.fn.updateActiveHistory = updateActiveHistory; // �솢�룞 �궡�뿭�뿉�꽌 �쟾泥� 蹂닿린 �꺆�쓣 �닃���쓣 �븣 �뙎湲�, 湲곕줉 �젙蹂대�� �뾽�뜲�씠�듃 �븳�떎. + $scope.fn.getChangeIssueStatusList = getChangeIssueStatusList; // �씠�뒋�쓽 �쁽�옱 �긽�깭�뿉�꽌 蹂�寃� 媛��뒫�븳 �씠�뒋 �깄�깭 紐⑸줉 媛��졇�삤湲� + $scope.fn.modifyIssueStatus = modifyIssueStatus; // �씠�뒋 �긽�깭 蹂�寃� + $scope.fn.modifyIssueUser = modifyIssueUser; // �씠�뒋 �떞�떦�옄 蹂�寃� + $scope.fn.initReload = initReload; // 珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎. + $scope.fn.sendMail = sendMail; // �듅�젙 �궗�슜�옄�뿉寃� �씠�뒋 �젙蹂대�� 硫붿씪濡� 諛쒖넚 + $scope.fn.versionView = versionView; // 踰꾩쟾 �젙蹂대�� �몴�떆�븳�떎. + $scope.fn.reservation = reservation; // �삁�빟 �젙蹂대�� �솗�씤 諛� 蹂�寃� �븳�떎. + $scope.fn.getIssueListCallBack = getIssueListCallBack; + $scope.fn.addRelationIssue = addRelationIssue; // �뿰愿� �씠�뒋 異붽� + + + // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以� + $scope.vm.viewer = {}; + $scope.vm.images = []; // 泥⑤��맂 �뙆�씪 以� �씠誘몄� �뙆�씪 + $scope.vm.activeTab = "ALL"; // �솢�룞 �궡�뿭 �꺆 + // �씠�뒋 �긽�깭 蹂�寃� �몴�떆 �뿬遺� + $scope.vm.editor = { + issueStatus : false + }; + // 蹂�寃� 媛��뒫�븳 �씠�뒋 �긽�깭 紐⑸줉 + $scope.vm.issueForm = { + issueStatusList : [], + issueStatusId : "" + }; + + // �뿰愿� �씪媛� 愿��젴 + $scope.vm.relationIssueTypes = + [ + { id: 0, name: $filter("translate")("issue.relationIssueType1") }, + { id: 1, name: $filter("translate")("issue.relationIssueType2") }, + { id: 2, name: $filter("translate")("issue.relationIssueType3") }, + { id: 3, name: $filter("translate")("issue.relationIssueType4") }, + { id: 4, name: $filter("translate")("issue.relationIssueType5") }, + { id: 5, name: $filter("translate")("issue.relationIssueType6") } + ]; + $scope.vm.relationIssueType = $scope.vm.relationIssueTypes[0]; + + $scope.vm.form = { + issues : [] + }; + + $scope.vm.issueName = ""; + $scope.vm.autoCompletePage = { + issue : { + page : 0, + totalPage : 0 + }, + }; + + $scope.vm.relResponseData = []; + $scope.vm.relTableConfigs = []; + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.relTableEvent = { + removeRelationIssue : removeRelationIssue, // �뿰愿� �씪媛� �궘�젣 + changeDetailView : changeDetailView + }; + + function changeDetailView(issue) { + // �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎. + // $rootScope.$broadcast("makeIssueSearch", issue); + $scope.$parent.tableEvent.changeDetailView(issue.id); + } + + // �뿰愿� �씪媛� �궘�젣 + function removeRelationIssue(id) { + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("issue.relationIssueRemove"), // �뿰愿� �씪媛� �궘�젣 + text : $filter("translate")("issue.wantToDeleteSelectIssue"), + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + var contents = { + id : id + }; + + IssueRelation.delete($resourceProvider.getContent( + contents, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.getIssueDetail(); + } + else { + SweetAlert.error($filter("translate")("issue.failedToIssueDeleteIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �궘�젣 �떎�뙣" + } + $rootScope.spinner = false; + }); + } + }); + + + } + + // �봽濡쒖젥�듃 autocomplete page �뾽�뜲�씠�듃 + function getIssueListCallBack(result) { + $scope.vm.autoCompletePage.issue.totalPage = result.data.page.totalPage; + } + + // �씠�뒋 �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.relTableConfigs = []; + $scope.vm.relTableConfigs.push($tableProvider.config() + .setHName("issue.relationIssueType") + .setDType("renderer") + .setHWidth("width-30 bold") + .setHSort(false) + .setDRenderer("ISSUE_RELATION_TYPE")) + $scope.vm.relTableConfigs.push($tableProvider.config() + .setHName("issue.relationIssueTitle") + .setDType("renderer") + .setHWidth("width-60 bold") + .setHSort(false) + .setDRenderer("ISSUE_RELATION_MOVE")) + $scope.vm.relTableConfigs.push($tableProvider.config() + .setHName("issue.relationIssueDelete") + .setDType("renderer") + .setHWidth("width-10 bold") + .setDRenderer("ISSUE_RELATION_DELETE") + .setHSort(false) + .setDAlign("text-center")) + } + + // �뿰愿� �씪媛� 紐⑸줉 媛��졇�삤湲� + // function getRelationIssueList() { + // var contents = { + // issueId : $rootScope.currentDetailIssueId, + // }; + // + // IssueRelation.find($resourceProvider.getContent( + // contents, + // $resourceProvider.getPageContent(0, 10))).then(function (result) { + // + // if (result.data.message.status === "success") { + // $scope.vm.relResponseData = result.data; + // } + // else { + // SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �깮�꽦 �떎�뙣" + // } + // }); + // } + + + // �뿰愿� �씠�뒋 異붽� + function addRelationIssue() { + if ($scope.vm.issueName.length == 0 || $scope.vm.form.issues.length == 0 + || $scope.vm.issueName != $scope.vm.form.issues[0].title) { + SweetAlert.error($filter("translate")("issue.errorSelectRelationIssue"), ""); + return; + } + + var contents = { + relationIssueType : $scope.vm.relationIssueType.id, + issueId : $rootScope.currentDetailIssueId, + relationIssueId : $scope.vm.form.issues[0].id + }; + + IssueRelation.add($resourceProvider.getContent( + contents, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.getIssueDetail(); + } + else { + SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �깮�꽦 �떎�뙣" + } + }); + } + + + // �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. + $scope.$on("getIssueDetail", function (event, args) { + $scope.vm.viewer.id = args["id"]; + $scope.fn.getIssueDetail(); + }); + + // 珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎. + function initReload() { + $scope.vm.editor.issueStatus = false; + $scope.vm.issueForm.issueStatusList = []; + $scope.vm.issueForm.issueStatusId = ""; + if ($scope.$root.$$phase !== '$apply' && $scope.$root.$$phase !== '$digest') { + $scope.$apply(); + } + } + + // �씠�뒋 �긽�깭 蹂�寃� + function modifyIssueStatus() { + $uibModal.open({ + templateUrl : 'views/issue/issueModifyStatus.html', + size : "md", + controller : 'issueModifyStatusController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + issueIds : [$scope.vm.viewer.id] + }; + } + } + }); + } + + // �떞�떦�옄 蹂�寃� + function modifyIssueUser() { + $uibModal.open({ + templateUrl : 'views/issue/issueModifyUser.html', + size : "md", + controller : 'issueModifyUserController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + userVos : [$scope.vm.form.issues[0].userVos], + id : [$scope.vm.form.issues[0].id], + projectId : [$scope.vm.form.issues[0].projectVo.id], + project : [$scope.vm.form.issues[0].projectVo] + }; + } + } + }); + } + + // 蹂�寃� 媛��뒫�븳 �씠�뒋 �긽�깭 紐⑸줉�쓣 議고쉶�븯怨� �닔�젙 紐⑤뱶濡� �솕硫댁쓣 蹂�寃쏀븳�떎. + function getChangeIssueStatusList(checkPermission) { + // �닔�젙 沅뚰븳�씠 �뾾�쑝硫� �씠�뒋 �긽�깭 蹂�寃� 遺덇� + if (!checkPermission) { + return; + } + + // �닔�젙 紐⑤뱶濡� 蹂�寃� + $scope.vm.editor.issueStatus = true; + + var content = { + id : $scope.vm.viewer.issueStatusVo.id, + issueTypeId : $scope.vm.viewer.issueTypeVo.id + }; + + IssueStatus.findNextIssueStatus($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueForm.issueStatusList = result.data.data; + } + else { + SweetAlert.swal($filter("translate")("issue.errorRemovableIssueStatusList"), result.data.message.message, "error"); // "�씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭 紐⑸줉 議고쉶 �삤瑜�" + } + }); + } + + // �씠�뒋 �긽�꽭 �젙蹂� 議고쉶 + function getIssueDetail() { + // 珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎. + $scope.fn.initReload(); + + Issue.detail($resourceProvider.getContent( + {id : $scope.vm.viewer.id, deep : "02"}, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (angular.isDefined(result.data.data)) { + $scope.vm.viewer = angular.copy(result.data.data); + // �씠�뒋 �씠誘몄� 誘몃━ 蹂닿린 留뚮뱾湲� + $scope.fn.makePreviewImages(result.data.data.attachedFileVos); + // �솢�룞 �씠�젰 留뚮뱾湲� + $scope.fn.makeActiveHistory(); + + $scope.vm.viewer.startDate = result.data.data.startDate == null ? "common.unspecified" : result.data.data.startDate; // 誘몄��젙 + $scope.vm.viewer.completeDate = result.data.data.completeDate == null ? "common.unspecified" : result.data.data.completeDate; // 誘몄��젙 + + // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎. + $scope.fn.setFormByIssueTypeCustomFields(result.data.data.issueTypeCustomFieldVos); + // �씠�뒋�뿉�꽌 �궗�슜�옄媛� �꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 �엯�젰 �뤌�뿉 �뀑�똿�븳�떎. + $scope.fn.setUseValueByIssueTypeCustomFields(result.data.data.issueCustomFieldValueVos); + + + // �뿰愿� �씪媛� + $scope.vm.issueName = ""; + $scope.vm.form.issues = []; + $scope.vm.form.issues.push(result.data.data); + + makeTableConfigs(); + angular.forEach(result.data.data.issueRelationVos, function (issueRelationVo){ + issueRelationVo.relationIssueTypeName = $scope.vm.relationIssueTypes[issueRelationVo.relationIssueType].name; + $scope.vm.form.issues.push(issueRelationVo.issueRelation); + }); + + $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos; + } + } + else { + SweetAlert.swal($filter("translate")("issue.errorIssueDetails"), result.data.message.message, "error"); // �씠�뒋 �긽�꽭 �젙蹂� 議고쉶 �삤瑜� + } + }); + } + + // �씠�뒋 �씠誘몄� 誘몃━ 蹂닿린 留뚮뱾湲� + function makePreviewImages(attachedFileVos) { + // 誘몃━蹂닿린 �씠誘몄� 珥덇린�솕 + $scope.vm.images = []; + + angular.forEach(attachedFileVos, function (attachedFileVo, $index) { + if (attachedFileVo.contentType.indexOf("image") !== -1) { + $scope.vm.images.push({ + id : $index, + title : attachedFileVo.name, + alt : attachedFileVo.name, + thumbUrl : attachedFileVo.path.replace(/\\/gi, "/"), + url : attachedFileVo.path.replace(/\\/gi, "/") + }); + } + }); + } + + // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎. + function setFormByIssueTypeCustomFields(issueTypeCustomFields) { + $scope.vm.viewer.issueCustomFields = []; + + angular.forEach(issueTypeCustomFields, function (issueTypeCustomField) { + switch (issueTypeCustomField.customFieldVo.customFieldType) { + case "INPUT" : + case "SINGLE_SELECT" : + issueTypeCustomField.useValues = ""; + break; + + case "MULTI_SELECT" : + issueTypeCustomField.useValues = []; + break; + } + + $scope.vm.viewer.issueCustomFields.push(issueTypeCustomField); + }); + } + + // �씠�뒋�뿉�꽌 �궗�슜�옄媛� �꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 �엯�젰 �뤌�뿉 �뀑�똿�븳�떎. + function setUseValueByIssueTypeCustomFields(issueCustomFieldValues) { + angular.forEach(issueCustomFieldValues, function (issueCustomFieldValue) { + for (var count in $scope.vm.viewer.issueCustomFields) { + var issueCustomField = $scope.vm.viewer.issueCustomFields[count]; + + if (issueCustomField.customFieldVo.id === issueCustomFieldValue.customFieldVo.id) { + // 硫��떚���젆�듃 �씪�븣 + if (angular.isArray(issueCustomField.useValues)) { + issueCustomField.useValues.push({ + value : issueCustomFieldValue.useValue + }); + } + else { + issueCustomField.useValues = issueCustomFieldValue.useValue; + } + + break; + } + } + }); + } + + function updateActiveHistory() { + $scope.vm.activeTab = 'ALL'; + $scope.fn.makeActiveHistory(); + } + + // �솢�룞 �씠�젰 留뚮뱾湲� + function makeActiveHistory() { + $scope.vm.viewer.activeHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos); + $scope.vm.viewer.activeHistory.sort(function (a, b) { + return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0; + }); + } + + // �뙎湲� �벑濡앺븯湲� + function addComment() { + var content = { + issueId : $scope.vm.viewer.id, + description : $rootScope.preventXss($scope.vm.viewer.comment) + }; + + IssueComment.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.viewer.comment = ""; + $scope.fn.getCommentList(); + } + else { + SweetAlert.error($filter("translate")("issue.failedToRegisterComments"), result.data.message.message); // �뙎湲� �벑濡� �떎�뙣 + } + }); + } + + // �뙎湲� �궘�젣 + function removeComment(comment) { + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("issue.deleteComments"), // "�뙎湲� �궘�젣" + text : $filter("translate")("issue.wantToDeleteTheSelectedComments"), // "�꽑�깮�븳 �뙎湲��쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �뙎湲��� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎." + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // "�궘�젣" + cancelButtonText : $filter("translate")("common.cancel"), // "痍⑥냼" + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + IssueComment.remove($resourceProvider.getContent( + {removeIds : [comment.id]}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.getCommentList(); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("issue.failedToDeleteComments"), result.data.message.message); // "�뙎湲� �궘�젣 �떎�뙣" + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + // �뙎湲� 紐⑸줉 媛��졇�삤湲� + function getCommentList() { + IssueComment.find($resourceProvider.getContent( + {issueId : $scope.vm.viewer.id}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.viewer.issueCommentVos = result.data.data; + } + else { + SweetAlert.swal({ + title : $filter("translate")("issue.failedToGetCommentListData"), // "�뙎湲� 紐⑸줉 �뜲�씠�꽣 媛��졇�삤湲� �떎�뙣" + text : result.message.message, + type : "error" + }); + } + }); + } + + // 泥⑤� �뙆�씪 紐⑸줉 + function getAttachedFiles() { + var content = { + issueId : $scope.vm.viewer.id + }; + + AttachedFile.find($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.viewer.attachedFileVos = result.data.data; + } + else { + SweetAlert.error($filter("translate")("issue.failedToAttachmentList"), result.message.message); // "泥⑤� �뙆�씪 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + // �듅�젙 �궗�슜�옄�뿉寃� �씠�뒋瑜� 硫붿씪濡� 諛쒖넚 + function sendMail(issueId, projectId) { + $uibModal.open({ + templateUrl : 'views/issue/issueSendMail.html', + size : "md", + controller : 'issueSendMailController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + issueId : issueId, + projectId : projectId + }; + } + } + }); + } + + // 蹂�寃� �젙蹂대�� �솗�씤�븳�떎. + function versionView(issueId) { + $uibModal.open({ + templateUrl : 'views/issue/issueVersionView.html', + size : "lg", + controller : 'issueVersionViewController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + issueId : issueId + }; + } + } + }); + } + + // �삁�빟 �젙蹂대�� �솗�씤 諛� 蹂�寃� �븳�떎. + function reservation(issueId) { + $uibModal.open({ + templateUrl : 'views/issue/issueReservation.html', + size : "sm", + controller : 'issueReservationController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + issueId : issueId + }; + } + } + }); + } + + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/issue/issueImportExcel.controller.js b/src/main/webapp/scripts/app/issue/issueImportExcel.controller.js new file mode 100644 index 0000000..633ebb8 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueImportExcel.controller.js @@ -0,0 +1,132 @@ +/** + * Created by wisestone on 2018-01-17. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueImportExcelController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$injector', '$controller', '$tableProvider', 'Issue', 'IssueType', 'SweetAlert', '$filter', '$timeout', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, $tableProvider, Issue, IssueType, SweetAlert, $filter, $timeout) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + getIssueTypes : getIssueTypes, // �씠�뒋 ���엯 紐⑸줉 媛��졇�삤湲� + makeSearchConditions : makeSearchConditions, // �꽑�깮�븳 議곌굔�쓣 json �쑝濡� 留뚮뱺�떎. + onFileSelect : onFileSelect // �뙆�씪 �뾽濡쒕뱶 + }; + + $scope.vm = { + form : { + projects : [], // �꽑�깮�븳 �봽濡쒖젥�듃 + issueTypeId : "", // �씠�뒋 ���엯 �븘�씠�뵒 + issueTypes : [], // �씠�뒋 �쑀�삎 �쟾泥� 紐⑸줉 + file : "", // �뾽濡쒕뱶�븯�뒗 Excel File + fileName : "" + }, + projectName : "", + autoCompletePage : { + project : { + page : 0, + totalPage : 0 + } + }, + tab : "VIDEO" + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �씠�뒋 �쑀�삎 紐⑸줉 + function getIssueTypes() { + IssueType.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueTypes = result.data.data; + } + else { + SweetAlert.error($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message); // "�씠�뒋 ���엯 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + // �꽑�깮�븳 議곌굔�쓣 json �쑝濡� 留뚮뱺�떎. + function makeSearchConditions() { + return { + projectId : (function () { + var projectId = ""; + + angular.forEach($scope.vm.form.projects, function (project) { + projectId = project.id; + }); + + return projectId; + })(), + issueTypeId : $scope.vm.form.issueTypeId + }; + } + + // �뙆�씪 �뾽濡쒕뱶 + function onFileSelect($files) { + $scope.vm.form.file = $files; + + if ($files.length > 0) { + $scope.vm.form.fileName = $files[0].name; + } + else { + $scope.vm.form.fileName = ""; + } + } + + // �뤌 泥댄겕 + function formCheck() { + if ($scope.vm.form.file.length < 1) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + Issue.importExcel({ + method : "POST", + file : $scope.vm.form.file, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : {} + }, + fileFormDataName : "file" + }) + .then(function (result) { + if (result.data.message.status === "success") { + + $timeout(function () { + SweetAlert.success($filter("translate")("issue.succeededIssueRegistration"), result.data.message.message); // �씠�뒋 �벑濡� �꽦怨� + $scope.fn.cancel(); + $rootScope.$broadcast("getIssueList"); + }, 1000); + } + else { + SweetAlert.error($filter("translate")("issue.failedIssueRegistration"), result.data.message.message); // �씠�뒋 �벑濡� �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + } + + // �씠�뒋 �쑀�삎 議고쉶 + $scope.fn.getIssueTypes(); + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js new file mode 100644 index 0000000..09e5b4e --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueList.controller.js @@ -0,0 +1,880 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q', + '$controller', '$injector', 'SweetAlert', 'Issue', 'IssueType', 'Priority', 'Severity', 'IssueStatus', 'CustomField', 'IssueSearch', 'IssueTableConfig', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, Issue, IssueType, Priority, Severity, IssueStatus, CustomField, + IssueSearch, IssueTableConfig, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + changePageRowCount : changePageRowCount, // �럹�씠吏� 蹂�寃� + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + setTableColumn : setTableColumn, // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + add : add, // �씠�뒋 �깮�꽦 + modify : modify, // �씠�뒋 �닔�젙 + modifyMultiIssueStatus : modifyMultiIssueStatus, // �씠�뒋 �떎以� �긽�깭 蹂�寃� + removes : removes, // �씠�뒋 �궘�젣 + addIssueTableConfig : addIssueTableConfig, // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 + listView : listView, // 紐⑸줉 �솕硫댁쑝濡� 蹂�寃� + importExcel : importExcel, // �뿊�� import 湲곕뒫 �뙘�뾽 �샇異� + getIssueTypes : getIssueTypes, // �씠�뒋 �쑀�삎 紐⑸줉�쓣 媛��졇�삩�떎. + getPriorities : getPriorities, // �슦�꽑�닚�쐞 紐⑸줉�쓣 媛��졇�삩�떎. + getSeverities : getSeverities, // 以묒슂�룄 紐⑸줉�쓣 媛��졇�삩�떎. + getIssueStatuses : getIssueStatuses, // �씠�뒋 �긽�깭 紐⑸줉�쓣 媛��졇�삩�떎. + getCustomFields : getCustomFields, // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉�쓣 媛��졇�삩�떎. + makeVmSearchObject : makeVmSearchObject, // 寃��깋 議곌굔�쓣 湲곗뼲�븳�떎. + getVmSearchObject : getVmSearchObject, // ���옣�븳 寃��깋 議곌굔�쓣 媛��졇���꽌 vm �뿉 �뀑�똿�븳�떎. + makeSearchConditions : makeSearchConditions, // 寃��깋 議곌굔�쓣 留뚮뱺�떎. + getIssueTableConfigs : getIssueTableConfigs, // �궗�슜�옄 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. + startExecute : startExecute // 而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔 + }; + + // 蹂��닔 + $scope.vm = { + search : { + title : "", // �젣紐� + description : "", // �궡�슜 + combinationIssueNumber : "", // �씠�뒋 踰덊샇 + projectType : "BTS_PROJECT", // �봽濡쒖젥�듃 �쑀�삎 + registerDateRange : "", // �벑濡앹씪 湲곌컙 寃��깋 + startDateRange : "", // �떆�옉�씪 湲곌컙 寃��깋 + completeDateRange : "", // �셿猷뚯씪 湲곌컙 寃��깋 + severityIds : [], // 以묒슂�룄 寃��깋 + priorityIds : [], // �슦�꽑�닚�쐞 寃��깋 + issueStatusIds : [], // �씠�뒋 �긽�깭 寃��깋 + issueTypeIds : [] // �씠�뒋 �쑀�삎 寃��깋 + }, + searchView : false, // �긽�꽭 寃��깋 議곌굔 �몴�떆 �뿬遺� + detailView : false, // �긽�꽭 紐⑤뱶 蹂�寃� 媛� + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], // �뀒�씠釉� �뀑�똿 �젙蹂� + responseData : { + data : [] + }, + projectName : "", // �봽濡쒖젥�듃 寃��깋 + userName : "", // �떞�떦�옄 寃��깋 + registerName : "", // �벑濡앹옄 寃��깋 + projects : [], // �봽濡쒖젥�듃 + issueStatuses : [], // �씠�뒋 �긽�깭 + issueTypes : [], // �씠�뒋 �쑀�삎 + priorities : [], // �슦�꽑 �닚�쐞 + severities : [], // 以묒슂�룄 + users : [], // �떞�떦�옄 + registers : [], // �벑濡앹옄 + customFields : [], // �궗�슜�옄 �젙�쓽 �븘�뱶 + issueTableConfigs : [] // �씠�뒋 �뀒�씠釉� �꽕�젙 + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + changeDetailView : changeDetailView // �긽�꽭 �솕硫댁쑝濡� 蹂�寃� + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊 + $scope.$on("getIssueList", function () { + $scope.fn.getPageList($scope.vm.page.selectedPage - 1); + }); + + // �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂� 媛깆떊 + $scope.$on("getIssueTableConfigs", function () { + $scope.fn.startExecute(); + }); + + // 寃��깋 議곌굔�쓣 湲곗뼲�븳�떎. - �쟻�슜 蹂대쪟 + function makeVmSearchObject() { + var content = { + conditions : JSON.stringify({ + search : $scope.vm.search, + projects : $scope.vm.projects, + users : $scope.vm.users, + registers : $scope.vm.registers + }) + }; + + IssueSearch.add($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + + } + else { + SweetAlert.error($filter("translate")("issue.failedToSaveFieldConditions"), result.data.message.message); // 寃��깋 �븘�뱶 議곌굔 ���옣 �떎�뙣 + } + }); + } + + // �꽌踰꾩뿉 ���옣�븳 �씠�뒋 寃��깋 議곌굔�쓣 媛��졇�삩�떎. + function getVmSearchObject() { + IssueSearch.detail($resourceProvider.getContent({}, $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + if ($rootScope.isDefined(result.data.data)) { + var issueListSearchObject = JSON.parse(result.data.data); + // �씠�뒋 踰덊샇留� �쟻�슜�븳�떎. - �궘�젣�떆 泥섎━諛⑸쾿�븣臾몄뿉 �떎瑜� �냽�꽦�� �쟻�슜 蹂대쪟 + $scope.vm.search = issueListSearchObject.search; + /*$scope.vm.users = issueListSearchObject.users; + $scope.vm.projects = issueListSearchObject.projects; + $scope.vm.registers = issueListSearchObject.registers;*/ + + $scope.fn.getPageList(0, true); + } else { + $scope.fn.getPageList(0); + } + } + else { + SweetAlert.error($filter("translate")("issue.failedToGetSearchFieldCondition"), result.data.message.message); // 寃��깋 �븘�뱶 議곌굔 媛��졇�삤湲� �떎�뙣 + } + }); + } + + // �긽�꽭 �솕硫댁쑝濡� 蹂�寃쏀븳�떎. + function changeDetailView(id) { + $scope.vm.tableConfigs = []; + $scope.vm.detailView = true; + + $scope.fn.makeTableConfigs(); + + // chrome �뿉�꽌 留덉슦�뒪 �뼚�궃嫄� 媛먯� 紐삵빐�꽌 �씠踰ㅽ듃 異붽�. + $(".full-height-scroll").trigger("mouseleave"); + // �뀒�씠釉붿쓣 �떎�떆 洹몃┫�닔 �엳寃� �뜲�씠�꽣 諛붿씤�뵫�쓣 �떎�떆�븳�떎. + var temp = angular.copy($scope.vm.responseData.data); + $scope.vm.responseData.data = angular.copy(temp); + // �쁽�옱 �긽�꽭�솕硫댁쑝濡� 蹂대젮怨좏븯�뒗 �씠�뒋 id瑜� 湲곗뼲�븳�떎. + $rootScope.currentDetailIssueId = id; + // �씠�뒋 �긽�꽭 �솕硫� �슂泥� + $rootScope.$broadcast("getIssueDetail", { + id : id + }); + } + + // 紐⑸줉 �솕硫댁쑝濡� 蹂�寃쏀븳�떎. + function listView() { + $scope.vm.detailView = false; + // �씠�뒋 �뀒�씠釉� �꽕�젙 + $scope.fn.makeTableConfigs(); + var temp = angular.copy($scope.vm.responseData.data); + $scope.vm.responseData.data = angular.copy(temp); + // 留덉�留됱쑝濡� 蹂닿퀬�엳�뜕 �씠�뒋 id瑜� 珥덇린�솕�븳�떎. + $rootScope.currentDetailIssueId = null; + } + + // �씠�뒋 �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setDType("checkbox") + .setHWidth("width-20-p") + .setDAlign("text-center")); + + // �긽�꽭�삎 �씪�븣�븣 + if ($scope.vm.detailView) { + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("issue.issueTitle") + .setDName("title") + .setDType("renderer") + .setHWidth("width-100 bold") + .setDRenderer("ISSUE_DETAIL_FLOATING")); + } + else { + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("issue.issueTitle") + .setDName("title") + .setDType("renderer") + .setHWidth("bold") + .setDRenderer("ISSUE_DETAIL_FLOATING")); + + angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) { + // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. + if (issueTableConfig.display) { + // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + $scope.fn.setTableColumn(issueTableConfig); + } + }); + } + } + + // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + function setTableColumn(issueTableConfig) { + + // �씪諛� 而щ읆 + switch(issueTableConfig.key) { + case "PRIORITY" : // �슦�꽑�닚�쐞 + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.priority") + .setDName("priorityName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("COMMON_PRIORITY")); + break; + case "SEVERITY" : // 以묒슂�룄 + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.importance") + .setDName("severityName") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("COMMON_SEVERITY")); + break; + case "ISSUE_TYPE" : // �씠�뒋 ���엯 + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("issue.issueType") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDName("issueTypeName")); + break; + case "ASSIGNEE" : // �떞�떦�옄 + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.assignee") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("ISSUE_USER")); + break; + case "REGISTER" : // �벑濡앹옄 + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.register") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("REGISTER")); + break; + case "PERIOD" : // 湲곌컙 + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.period") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("ISSUE_DUE_DATE")); + break; + case "MODIFY_DATE" : // 理쒓렐 蹂�寃쎌씪 + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.lastChangeDate") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDName("modifyDate")); + break; + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 而щ읆 + if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) { + // 留뚯빟 �씠�뒋 �뀒�씠釉� 而щ읆紐낆씠 �몴�떆�릺吏� �븡�쑝硫� �씠履쎌씠 臾몄젣 + for (var count in $scope.vm.customFields) { + var customField = $scope.vm.customFields[count]; + + if (customField.id === Number(issueTableConfig.key.substring(13))) { + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName(customField.name) + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setColumnHint(customField) + .setDRenderer("ISSUE_CUSTOM_FIELD_VALUE_VIEW")); + break; + } + } + } + } + + // 寃��깋 �븘�뱶 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + /*IssueSearch.remove($resourceProvider.getContent({screen : "ISSUE_LIST"}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + $state.go($state.current, {}, {reload : true}); + } + else { + SweetAlert.swal("寃��깋 �븘�뱶 珥덇린�솕 �떎�뙣", result.data.message.message, "error"); + } + });*/ + } + + // �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + var conditions = { + title : $scope.vm.search.title, + description : $scope.vm.search.description, + projectType : $scope.vm.search.projectType, + combinationIssueNumber : $scope.vm.search.combinationIssueNumber.trim(), + beginRegisterDate : "", + endRegisterDate : "", + beginStartDate : "", + endStartDate : "", + beginCompleteDate : "", + endCompleteDate : "", + projectIds : (function () { + var projectIds = []; + + angular.forEach($scope.vm.projects, function (project) { + projectIds.push(project.id); + }); + + return projectIds; + })(), + issueStatusIds : (function () { + var issueStatusIds = []; + + angular.forEach($scope.vm.search.issueStatusIds, function (issueStatusId) { + issueStatusIds.push(issueStatusId.fieldKey); + }); + + return issueStatusIds; + })(), + issueTypeIds : (function () { + var issueTypeIds = []; + + angular.forEach($scope.vm.search.issueTypeIds, function (issueTypeId) { + issueTypeIds.push(issueTypeId.fieldKey); + }); + + return issueTypeIds; + })(), + priorityIds : (function () { + var priorityIds = []; + + angular.forEach($scope.vm.search.priorityIds, function (priorityId) { + priorityIds.push(priorityId.fieldKey); + }); + + return priorityIds; + })(), + severityIds : (function () { + var severityIds = []; + + angular.forEach($scope.vm.search.severityIds, function (severityId) { + severityIds.push(severityId.fieldKey); + }); + + return severityIds; + })(), + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.users, function (user) { + userIds.push(user.id); + }); + + return userIds; + })(), + registerIds : (function () { + var registerIds = []; + + angular.forEach($scope.vm.registers, function (register) { + registerIds.push(register.id); + }); + + return registerIds; + })(), + issueCustomFields : (function () { + var issueCustomFields = []; + + angular.forEach($scope.vm.customFields, function (customField) { + var useValues = []; + + if (angular.isArray(customField.useValues)) { + angular.forEach(customField.useValues, function (useValue) { + useValues.push(useValue.value); + }); + } + else { + useValues.push(customField.useValues); + } + + // useValues 瑜� 諛곗뿴濡� 蹂��솚�븳�떎. + var temp = angular.copy(customField); + temp.useValues = useValues; + issueCustomFields.push(temp); + }); + + return issueCustomFields; + })() + }; + + // �벑濡앹씪 + if ($rootScope.isDefined($scope.vm.search.registerDateRange)) { + var registerDateRange = $scope.vm.search.registerDateRange.split("~"); + conditions.beginRegisterDate = registerDateRange[0].trim(); + conditions.endRegisterDate = registerDateRange[1].trim(); + } + + // �떆�옉�씪 + if ($rootScope.isDefined($scope.vm.search.startDateRange)) { + var startDateRange = $scope.vm.search.startDateRange.split("~"); + conditions.beginStartDate = startDateRange[0].trim(); + conditions.endStartDate = startDateRange[1].trim(); + } + // 醫낅즺�씪 + if ($rootScope.isDefined($scope.vm.search.completeDateRange)) { + var completeDateRange = $scope.vm.search.completeDateRange.split("~"); + conditions.beginCompleteDate = completeDateRange[0].trim(); + conditions.endCompleteDate = completeDateRange[1].trim(); + } + + return conditions; + } + + // �씠�뒋 紐⑸줉�쓣 議고쉶�븳�떎. + function getPageList(selectedPage, detail = false) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + + // 寃��깋 議곌굔�쓣 ���옣�븳�떎. + //$scope.fn.makeVmSearchObject(); + + + // �쁽�옱 �꽑�깮�맂 �봽濡쒖젥�듃瑜� 寃��깋 湲곕낯�쑝濡� 異붽� + if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { + var find = findProjectSearch($rootScope.workProject.id); + if (!find) { + $scope.vm.projects.push($rootScope.workProject); + } + } + + // �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎. + var conditions = $scope.fn.makeSearchConditions(); + + Issue.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + if (detail) { + changeDetailView(result.data.data[0].id); + } + } + else { + SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣 + } + }); + } + + // 寃��깋議곌굔�뿉�꽌 �빐�떦 �봽濡쒖젥�듃 李얘린 + function findProjectSearch(projectId) { + var projects = $scope.vm.projects; + var find = false; + + for (let i = 0; i < projects.length; i++) { + if (projects[i].id == projectId) { + find = true; + break; + } + } + return find; + } + + // �럹�씠吏� 蹂�寃� + function changePageRowCount() { + $scope.fn.getPageList(0); + } + + // �뿊�� import �뙘�뾽 �샇異� + function importExcel() { + $uibModal.open({ + templateUrl : 'views/issue/issueExcelImport.html', + size : "lg", + controller : 'issueImportExcelController', + backdrop : 'static' + }); + } + + // �씠�뒋 �깮�꽦 �뙘�뾽 �샇異� + function add() { + $uibModal.open({ + templateUrl : 'views/issue/issueAdd.html', + size : "lg", + controller : 'issueAddController', + backdrop : 'static' + }); + } + + // �씠�뒋 �떎以� �긽�깭 蹂�寃� + function modifyMultiIssueStatus() { + var issueIds = []; + + angular.forEach($scope.vm.responseData.data, function (data) { + if (data.checked) { + issueIds.push(data.id); + } + }); + + if (issueIds.length < 1) { + SweetAlert.warning($filter("translate")("issue.selectionCheck"), $filter("translate")("issue.selectIssueToChangeStatus")); // �꽑�깮 ���긽 �솗�씤, �긽�깭 蹂�寃쏀븷 �씠�뒋瑜� �꽑�깮�븯�꽭�슂. + return; + } + + $uibModal.open({ + templateUrl : 'views/issue/issueModifyStatus.html', + size : "md", + controller : 'issueModifyStatusController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + issueIds : issueIds + }; + } + } + }); + } + + // �씠�뒋 �닔�젙 �뙘�뾽 �샇異� + function modify(id) { + $uibModal.open({ + templateUrl : 'views/issue/issueModify.html', + size : "lg", + controller : 'issueModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �씠�뒋 �궘�젣 + function removes() { + var removeIds = []; + var removePermission = true; + + angular.forEach($scope.vm.responseData.data, function (data) { + if (data.checked && data.modifyPermissionCheck) { + removeIds.push(data.id); + } + + if (data.checked && !data.modifyPermissionCheck) { + removePermission = false; + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("issue.notHaveDeletePermissionExistsAnIssue"), // �궘�젣 沅뚰븳�씠 �뾾�뒗 �씠�뒋媛� 議댁옱�빀�땲�떎. + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("issue.deleteIssue"), // �씠�뒋 �궘�젣 + text : $filter("translate")("issue.wantToDeleteSelectIssue"), // �꽑�깮�븳 �씠�뒋�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + Issue.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.listView(); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 + function addIssueTableConfig() { + $uibModal.open({ + templateUrl : 'views/issue/issueAddTableConfig.html', + size : "lg", + controller : 'issueAddTableConfigController', + backdrop : 'static', + resolve : {} + }); + } + + // �씠�뒋 �긽�깭 紐⑸줉 + function getIssueStatuses() { + var deferred = $q.defer(); + $scope.vm.issueStatuses = []; + + IssueStatus.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (issueType) { + $scope.vm.issueStatuses.push({ + fieldKey : issueType.id, + fieldValue : issueType.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("common.failedToIssueStatusListLookup"), result.data.message.message, "error"); // �씠�뒋 �긽�깭 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 �쑀�삎 紐⑸줉 + function getIssueTypes() { + var deferred = $q.defer(); + $scope.vm.issueTypes = []; + + IssueType.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (issueType) { + $scope.vm.issueTypes.push({ + fieldKey : issueType.id, + fieldValue : issueType.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // �씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �슦�꽑�닚�쐞 紐⑸줉 + function getPriorities() { + var deferred = $q.defer(); + $scope.vm.priorities = []; + + Priority.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (prioritiy) { + $scope.vm.priorities.push({ + fieldKey : prioritiy.id, + fieldValue : prioritiy.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // �슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // 以묒슂�룄 紐⑸줉 + function getSeverities() { + var deferred = $q.defer(); + $scope.vm.severities = []; + + Severity.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (severity) { + $scope.vm.severities.push({ + fieldKey : severity.id, + fieldValue : severity.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToCriticalListLookup"), result.data.message.message, "error"); // 以묒슂�룄 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 + function getCustomFields() { + var deferred = $q.defer(); + $scope.vm.customFields = []; + + CustomField.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + + angular.forEach(result.data.data, function (customField) { + switch (customField.customFieldType) { + case "INPUT" : + customField.useValues = ""; + break; + + case "MULTI_SELECT" : + case "SINGLE_SELECT" : + customField.useValues = []; + break; + } + + $scope.vm.customFields.push(customField); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message, "error"); // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �궗�슜�옄 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. + function getIssueTableConfigs() { + var deferred = $q.defer(); + + IssueTableConfig.detail($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status !== "success") { + SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // �씠�뒋 �뀒�씠釉� 而щ읆 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // 理쒖큹 �떎�뻾 + function startExecute() { + // �뙆�씪誘명꽣 �씫湲� + var params = $rootScope.previousGetParams; + if ($rootScope.isDefined(params)) { + $rootScope.$broadcast("makeIssueSearch", { projectKey : params.projectKey, issueNumber : params.issueNumber }); + $rootScope.previousGetParams = null; + return; + } + + var promises = { + getIssueTypes : $scope.fn.getIssueTypes(), + getPriorities : $scope.fn.getPriorities(), + getSeverities : $scope.fn.getSeverities(), + getIssueStatuses : $scope.fn.getIssueStatuses(), + getCustomFields : $scope.fn.getCustomFields() + }; + + $q.all(promises).then(function (results){ + $log.debug("promises 寃곌낵 " , results); + // �씠�뒋 �뀒�씠釉� �꽕�젙 議고쉶 諛� �쟻�슜 �썑 + // �씠�뒋 寃��깋 議곌굔 媛��졇�삤湲� �썑 + // �씠�뒋 議고쉶 + + // �궗�슜�옄 �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎. + $scope.fn.getIssueTableConfigs().then(function (issueTableConfigs) { + if ($rootScope.isDefined(issueTableConfigs)) { + // �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎. + $scope.vm.issueTableConfigs = JSON.parse(issueTableConfigs); + $scope.vm.issueTableConfigs.sort(function (a, b) { + return a.position < b.position ? -1 : a.position > b.position ? 1: 0; + }); + } + else { + // 理쒖큹 �뾽臾� 怨듦컙�뿉 �뱾�뼱�솕�쓣 寃쎌슦 + $scope.vm.issueTableConfigs = [{ + name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞 + key : "PRIORITY", + width : "width-80-p", + position : 1, + display : true + }, { + name : $filter("translate")("common.importance"), // 以묒슂�룄 + key : "SEVERITY", + width : "width-80-p", + position : 2, + display : true + }, { + name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯 + key : "ISSUE_TYPE", + width : "width-140-p", + position : 3, + display : true + }, { + name : $filter("translate")("common.assignee"), // �떞�떦�옄 + key : "ASSIGNEE", + width : "width-140-p", + position : 4, + display : true + }]; + } + + // �씠�뒋 �뀒�씠釉� �꽕�젙 + $scope.fn.makeTableConfigs(); + // �꽌踰꾩뿉 ���옣�븳 �씠�뒋 寃��깋 議곌굔�쓣 媛��졇���꽌 �씠�뒋 紐⑸줉 寃��깋�쓣 吏꾪뻾�븳�떎. + $scope.fn.getVmSearchObject(); + }); + }); + } + + $scope.fn.startExecute(); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/issue/issueListTimeline.controller.js b/src/main/webapp/scripts/app/issue/issueListTimeline.controller.js new file mode 100644 index 0000000..e533d82 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueListTimeline.controller.js @@ -0,0 +1,626 @@ +/** + * Created by maprex on 2021-03-23 + */ + +'use strict'; + +define([ + 'app', 'angular' + ], + function (app, angular) { + app.controller('issueListTimelineController', ['$scope', '$rootScope', '$log', '$q', '$resourceProvider', '$controller', '$injector', 'Gantt', 'SweetAlert', '$filter', 'IssueType', 'Priority', 'Severity', 'IssueStatus', 'CustomField','IssueSearch', + function ($scope, $rootScope, $log, $q, $resourceProvider, $controller, $injector, Gantt, SweetAlert, $filter, IssueType, Priority, Severity, IssueStatus, CustomField, IssueSearch) { + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉�쓣 議고쉶�븳�떎. + makeSearchConditions : makeSearchConditions, // 寃��깋議곌굔�쓣 媛��졇�샂 + getIssueTypes : getIssueTypes, // �씠�뒋 �쑀�삎 紐⑸줉�쓣 媛��졇�삩�떎. + getPriorities : getPriorities, // �슦�꽑�닚�쐞 紐⑸줉�쓣 媛��졇�삩�떎. + getSeverities : getSeverities, // 以묒슂�룄 紐⑸줉�쓣 媛��졇�삩�떎. + getIssueStatuses : getIssueStatuses, // �씠�뒋 �긽�깭 紐⑸줉�쓣 媛��졇�삩�떎. + getCustomFields : getCustomFields, // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉�쓣 媛��졇�삩�떎. + startExecute : startExecute + }; + + $scope.vm = { + search : { + title : "", // �젣紐� + description : "", // �궡�슜 + combinationIssueNumber : "", // �씠�뒋 踰덊샇 + projectType : "BTS_PROJECT", // �봽濡쒖젥�듃 �쑀�삎 + registerDateRange : "", // �벑濡앹씪 湲곌컙 寃��깋 + startDateRange : "", // �떆�옉�씪 湲곌컙 寃��깋 + completeDateRange : "", // �셿猷뚯씪 湲곌컙 寃��깋 + severityIds : [], // 以묒슂�룄 寃��깋 + priorityIds : [], // �슦�꽑�닚�쐞 寃��깋 + issueStatusIds : [], // �씠�뒋 �긽�깭 寃��깋 + issueTypeIds : [] // �씠�뒋 �쑀�삎 寃��깋 + }, + arrProjects : [], // �봽濡쒖젥�듃 諛곗뿴 + projectIssues : new Object(), // �봽濡쒖젥�듃 �쟾泥� �씠�뒋 + projectCompleteIssues : new Object(), // �봽濡쒖젥�듃 �셿猷� �씠�뒋 + searchView : false, // �긽�꽭 寃��깋 議곌굔 �몴�떆 �뿬遺� + detailView : false, // �긽�꽭 紐⑤뱶 蹂�寃� 媛� + tableConfigs : [], // �뀒�씠釉� �뀑�똿 �젙蹂� + responseData : { + data : [] + }, + projectName : "", // �봽濡쒖젥�듃 寃��깋 + userName : "", // �떞�떦�옄 寃��깋 + registerName : "", // �벑濡앹옄 寃��깋 + projects : [], // �봽濡쒖젥�듃 + issueStatuses : [], // �씠�뒋 �긽�깭 + issueTypes : [], // �씠�뒋 �쑀�삎 + priorities : [], // �슦�꽑 �닚�쐞 + severities : [], // 以묒슂�룄 + users : [], // �떞�떦�옄 + registers : [], // �벑濡앹옄 + customFields : [], // �궗�슜�옄 �젙�쓽 �븘�뱶 + issueTableConfigs : [], // �씠�뒋 �뀒�씠釉� �꽕�젙 + page : { + selectedPage : 0, + selectedPageRowCount : String(99999) + }, + relationIssues :[], // �뿰愿� �씠�뒋 諛곗뿴 + useGantt : false, + chart : null // 媛꾪듃李⑦듃 + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + $scope.init = function () { + $scope.fn.startExecute(); + } + + // 寃��깋 �븘�뱶 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + var conditions = { + title : $scope.vm.search.title, + description : $scope.vm.search.description, + projectType : $scope.vm.search.projectType, + combinationIssueNumber : $scope.vm.search.combinationIssueNumber.trim(), + beginRegisterDate : "", + endRegisterDate : "", + beginStartDate : "", + endStartDate : "", + beginCompleteDate : "", + endCompleteDate : "", + projectIds : (function () { + var projectIds = []; + + angular.forEach($scope.vm.projects, function (project) { + projectIds.push(project.id); + }); + + return projectIds; + })(), + issueStatusIds : (function () { + var issueStatusIds = []; + + angular.forEach($scope.vm.search.issueStatusIds, function (issueStatusId) { + issueStatusIds.push(issueStatusId.fieldKey); + }); + + return issueStatusIds; + })(), + issueTypeIds : (function () { + var issueTypeIds = []; + + angular.forEach($scope.vm.search.issueTypeIds, function (issueTypeId) { + issueTypeIds.push(issueTypeId.fieldKey); + }); + + return issueTypeIds; + })(), + priorityIds : (function () { + var priorityIds = []; + + angular.forEach($scope.vm.search.priorityIds, function (priorityId) { + priorityIds.push(priorityId.fieldKey); + }); + + return priorityIds; + })(), + severityIds : (function () { + var severityIds = []; + + angular.forEach($scope.vm.search.severityIds, function (severityId) { + severityIds.push(severityId.fieldKey); + }); + + return severityIds; + })(), + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.users, function (user) { + userIds.push(user.id); + }); + + return userIds; + })(), + registerIds : (function () { + var registerIds = []; + + angular.forEach($scope.vm.registers, function (register) { + registerIds.push(register.id); + }); + + return registerIds; + })(), + issueCustomFields : (function () { + var issueCustomFields = []; + + angular.forEach($scope.vm.customFields, function (customField) { + var useValues = []; + + if (angular.isArray(customField.useValues)) { + angular.forEach(customField.useValues, function (useValue) { + useValues.push(useValue.value); + }); + } + else { + useValues.push(customField.useValues); + } + + // useValues 瑜� 諛곗뿴濡� 蹂��솚�븳�떎. + var temp = angular.copy(customField); + temp.useValues = useValues; + issueCustomFields.push(temp); + }); + + return issueCustomFields; + })() + }; + + // �벑濡앹씪 + if ($rootScope.isDefined($scope.vm.search.registerDateRange)) { + var registerDateRange = $scope.vm.search.registerDateRange.split("~"); + conditions.beginRegisterDate = registerDateRange[0].trim(); + conditions.endRegisterDate = registerDateRange[1].trim(); + } + + // �떆�옉�씪 + if ($rootScope.isDefined($scope.vm.search.startDateRange)) { + var startDateRange = $scope.vm.search.startDateRange.split("~"); + conditions.beginStartDate = startDateRange[0].trim(); + conditions.endStartDate = startDateRange[1].trim(); + } + // 醫낅즺�씪 + if ($rootScope.isDefined($scope.vm.search.completeDateRange)) { + var completeDateRange = $scope.vm.search.completeDateRange.split("~"); + conditions.beginCompleteDate = completeDateRange[0].trim(); + conditions.endCompleteDate = completeDateRange[1].trim(); + } + + return conditions; + } + + // �씠�뒋 �긽�깭 紐⑸줉 + function getIssueStatuses() { + var deferred = $q.defer(); + $scope.vm.issueStatuses = []; + + IssueStatus.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (issueType) { + $scope.vm.issueStatuses.push({ + fieldKey : issueType.id, + fieldValue : issueType.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("common.failedToIssueStatusListLookup"), result.data.message.message, "error"); // �씠�뒋 �긽�깭 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 �쑀�삎 紐⑸줉 + function getIssueTypes() { + var deferred = $q.defer(); + $scope.vm.issueTypes = []; + + IssueType.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (issueType) { + $scope.vm.issueTypes.push({ + fieldKey : issueType.id, + fieldValue : issueType.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // �씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �슦�꽑�닚�쐞 紐⑸줉 + function getPriorities() { + var deferred = $q.defer(); + $scope.vm.priorities = []; + + Priority.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (prioritiy) { + $scope.vm.priorities.push({ + fieldKey : prioritiy.id, + fieldValue : prioritiy.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // �슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // 以묒슂�룄 紐⑸줉 + function getSeverities() { + var deferred = $q.defer(); + $scope.vm.severities = []; + + Severity.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.data, function (severity) { + $scope.vm.severities.push({ + fieldKey : severity.id, + fieldValue : severity.name + }); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToCriticalListLookup"), result.data.message.message, "error"); // 以묒슂�룄 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 + function getCustomFields() { + var deferred = $q.defer(); + $scope.vm.customFields = []; + + CustomField.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + if (result.data.message.status === "success") { + + angular.forEach(result.data.data, function (customField) { + switch (customField.customFieldType) { + case "INPUT" : + customField.useValues = ""; + break; + + case "MULTI_SELECT" : + case "SINGLE_SELECT" : + customField.useValues = []; + break; + } + + $scope.vm.customFields.push(customField); + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message, "error"); // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + + function drawGanttChart(useProject = false) { + google.charts.load('current', {'packages':['gantt'], 'language': 'ko'}); + google.charts.setOnLoadCallback(drawChart); + } + + function toMilliseconds(minutes) { + return minutes * 60 * 1000; + } + + // 寃��깋議곌굔�뿉�꽌 �빐�떦 �봽濡쒖젥�듃 李얘린 + function findProjectSearch(projectId) { + var projects = $scope.vm.projects; + var find = false; + + for (let i = 0; i < projects.length; i++) { + if (projects[i].id == projectId) { + find = true; + break; + } + } + return find; + } + + function getPageList(selectedPage) { + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // $rootScope.spinner = true; + + // �쁽�옱 �꽑�깮�맂 �봽濡쒖젥�듃瑜� 寃��깋 湲곕낯�쑝濡� 異붽� + if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { + var find = findProjectSearch($rootScope.workProject.id); + if (!find) { + $scope.vm.projects.push($rootScope.workProject); + } + } + + var conditions = $scope.fn.makeSearchConditions(); + + Gantt.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + drawGanttChart(); + } + else { + //SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣 + } + }); + } + + // �씠�뒋由ъ뒪�듃�뿉 �빐�떦 �븘�씠�뵒媛� 議댁옱�븯�뒗吏� �뿬遺� �솗�씤 + function containsIssue(issueId) { + var responseData = $scope.vm.responseData; + if (responseData != null) { + var data = responseData.data; + for (var i=0; i < data.length; i++) { + var el = data[i]; + if (el.id == issueId) { + return true; + } + } + } + return false + } + + // �닚�솚援ъ“�뿬遺� �솗�씤 + // �뿰愿� �씪媛먯씠 �뼇諛⑺뼢�쑝濡� �쟻�슜�릺�뼱 �엳�쓣�븣 李⑦듃�뿉�꽌�뒗 �삤瑜섍� 諛쒖깮�븯誘�濡� �뼇諛⑺뼢�씪 寃쎌슦 泥섎━ �븞�븯湲� �쐞�븿 + function isCycle(parentId, childId) { + var data = $scope.vm.relationIssues; + if (data != null && data.length > 0) { + for (var i=0; i < data.length; i++) { + if (data[i].chartParent == childId && data[i].chartChild == parentId) { + return true; + } + } + } + return false; + } + + var chart; + var otherData; + var options; + + function drawChart() { + var responseData = $scope.vm.responseData; + var page = responseData.page; + + otherData = new google.visualization.DataTable(); + otherData.addColumn('string', 'Task ID'); + otherData.addColumn('string', 'Task Name'); + otherData.addColumn('string', 'Resource'); + otherData.addColumn('date', 'Start'); + otherData.addColumn('date', 'End'); + otherData.addColumn('number', '湲곌컙'); + otherData.addColumn('number', 'Percent Complete'); + otherData.addColumn('string', 'Dependencies'); + var data = responseData.data; + var dataCount = data.length; + var trackHeight = 22; + var bottomHeight = 50; + var chartHeight = dataCount * trackHeight + bottomHeight; + var arrPalette = []; + + if (page.totalCount > 0) { + $scope.vm.relationIssues = []; + data.forEach(el => { + var start = null; + if (el.startDate != null) { + start = new Date(el.startDate); + start.setHours(0,0,0); + } + + var end = null; + if (el.completeDate != null) { + end = new Date(el.completeDate); + end.setHours(23, 59, 59); + } + + var duration = 0; + if (start != null && end != null) { + duration = end.getTime() - start.getTime(); + } + + var p = { + "color": el.issueStatusColor, + "dark": el.issueStatusColor, + "light": el.issueStatusColor + }; + + arrPalette.push(p); + + // �뿰愿��씠�뒋 �꽕�젙 + var relationIssue = null; + if ( el.issueRelationIssueVos != null && el.issueRelationIssueVos.length > 0) { + var i = 0; + relationIssue = ""; + el.issueRelationIssueVos.forEach(rel => { + if (i > 0) { + relationIssue += ","; + } + if (containsIssue(rel.id) && !isCycle(el.id, rel.id)) { + relationIssue += String(rel.id); + var pair = { + chartParent : el.id, + chartChild : rel.id + } + $scope.vm.relationIssues.push(pair); + i++; + } + }); + } + otherData.addRow([String(el.id), el.title, String(el.id), start, end, duration, 100, relationIssue]); + + }) + $scope.vm.useGantt = true; + } else { + var p = { + "color": "0066cc", + "dark": "0066cc", + "light": "0066cc" + }; + + arrPalette.push(p); + otherData.addRow(["none", "�씪媛먯씠 �뾾�뒿�땲�떎", "none", new Date(), null, toMilliseconds(0), 100, null]); + $scope.vm.useGantt = false; + } + + options = { + gantt: { + defaultStartDate : new Date(), + barHeight : 15, + barCornerRadius : 1, + criticalPathEnabled: false, // Critical path arrows will be the same as other arrows. + arrow: { + angle: 100, + width: 2, + color: '#0066cc', + radius: 0, + spaceAfter : 0, + }, + labelStyle: { + fontName: 'NanumSquare', + fontSize: 12, + color: '#d5c209' + }, + palette: arrPalette, + trackHeight : trackHeight + }, + height: chartHeight, + animation: {"startup": true} + }; + + var container = document.getElementById('chart_div'); + if (container == null) { + return; + } + chart = new google.visualization.Gantt(container); + hideChartTooltip(container, chart); + + google.visualization.events.addListener(chart, 'onmouseover', function (e) { + }); + + google.visualization.events.addListener(chart, 'click', function() { + }); + + google.visualization.events.addListener(chart, 'select', function() { + var selection = chart.getSelection(); + if (selection.length > 0) { + var responseData = $scope.vm.responseData; + var data = responseData.data; + + var issue = data[selection[0].row]; + + // �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎. + $rootScope.$broadcast("makeIssueSearch", issue); + } + }); + + window.addEventListener('resize', function() { chart.draw(otherData, options); }, false); //�솕硫� �겕湲곗뿉 �뵲�씪 洹몃옒�봽 �겕湲� 蹂�寃� + chart.draw(otherData, options); + } + + + // �씠�뒋瑜� 諛곗뿴�뿉 異붽� + function addIssue(projectId, issue) { + if ($scope.vm.projectCompleteIssues[projectId] == null) + $scope.vm.projectCompleteIssues[projectId] = []; + + if ($scope.vm.projectIssues[projectId] == null) + $scope.vm.projectIssues[projectId] = []; + + if (issue.issueStatusType == "CLOSE") { + $scope.vm.projectCompleteIssues[projectId].push(issue); + } + $scope.vm.projectIssues[projectId].push(issue); + } + + // google chart 湲곕낯 tooltip 媛�由ш린 + function hideChartTooltip(container, chart) { + google.visualization.events.addOneTimeListener(chart, 'ready', function () { + var observer = new MutationObserver(function (nodes) { + Array.prototype.forEach.call(nodes, function(node) { + if (node.addedNodes.length > 0) { + Array.prototype.forEach.call(node.addedNodes, function(addedNode) { + if ((addedNode.tagName === 'rect') && (addedNode.getAttribute('fill') === 'white')) { + addedNode.setAttribute('fill', 'transparent'); + addedNode.setAttribute('stroke', 'transparent'); + Array.prototype.forEach.call(addedNode.parentNode.getElementsByTagName('text'), function(label) { + label.setAttribute('fill', 'transparent'); + }); + } + }); + } + }); + }); + observer.observe(container, { + childList: true, + subtree: true + }); + }); + } + + function startExecute() { + var promises = { + getIssueTypes: $scope.fn.getIssueTypes(), + getPriorities: $scope.fn.getPriorities(), + getSeverities: $scope.fn.getSeverities(), + getIssueStatuses: $scope.fn.getIssueStatuses(), + getCustomFields: $scope.fn.getCustomFields() + } + + $q.all(promises).then(function (results) { + $log.debug("promises 寃곌낵 ", results); + $scope.fn.getPageList(); + }); + } + + $rootScope.$on('changeChartTab', function(evt) { + if (chart != null) { + chart.clearChart(); + $scope.fn.startExecute(); + } + }); + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueManager.controller.js b/src/main/webapp/scripts/app/issue/issueManager.controller.js new file mode 100644 index 0000000..c72a718 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueManager.controller.js @@ -0,0 +1,34 @@ +/** + * Created by maprex on 2021-06-17 + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('issueManagerController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $filter) { + + $scope.fn = { + changeTab : changeTab, // �꺆 蹂�寃� + }; + + $scope.vm = { + tab : "ISSUE_LIST" // �뾽臾� 怨듦컙 �젙蹂닿� 湲곕낯 �꺆 + }; + + // �꺆 蹂�寃� + function changeTab(tab) { + $scope.vm.tab = tab; + + if (tab === "ISSUE_TIMELINE") { + $rootScope.$broadcast("changeChartTab"); + } else if (tab === "ISSUE_LIST") { + $rootScope.$broadcast("changeListTab"); + } + } + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/issue/issueModify.controller.js b/src/main/webapp/scripts/app/issue/issueModify.controller.js new file mode 100644 index 0000000..1795e34 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueModify.controller.js @@ -0,0 +1,626 @@ +/** + * Created by wisestone on 2017-12-15. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$injector', + '$controller', '$tableProvider', 'SweetAlert', '$timeout', '$stateParams', '$q', 'parameter', 'Issue', 'User', 'AttachedFile', 'IssueType', 'Priority', 'Severity', 'IssueTypeCustomField', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, $tableProvider, SweetAlert, $timeout, + $stateParams, $q, parameter, Issue, User, AttachedFile, IssueType, Priority, Severity, IssueTypeCustomField, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + getUserListCallBack : getUserListCallBack, // �떞�떦�옄 autocomplete �럹�씠吏� + getProjectListCallBack : getProjectListCallBack, // �봽濡쒖젥�듃 autocomplete �럹�씠吏� + getOptionColor : getOptionColor, // �슦�꽑�닚�쐞, 以묒슂�룄 �깋�긽�쑝濡� Select �깭洹� �쟻�슜 + onFileSelect : onFileSelect, // �뙆�씪 泥⑤� + imageUpload : imageUpload, // �꽟癒몃끂�듃 �씠誘몄� �뾽濡쒕뱶 + getIssueTypes : getIssueTypes, // �씠�뒋 ���엯 紐⑸줉 媛��졇�삤湲� + getPriorities : getPriorities, // �슦�꽑�닚�쐞 紐⑸줉 媛��졇�삤湲� + getSeverities : getSeverities, // 以묒슂�룄 紐⑸줉 媛��졇�삤湲� + getIssueTypeCustomFields : getIssueTypeCustomFields, // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 媛��졇�삤湲� + setFormByIssueTypeCustomFields : setFormByIssueTypeCustomFields, // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎. + setUseValueByIssueTypeCustomFields : setUseValueByIssueTypeCustomFields, // �씠�뒋�뿉�꽌 �궗�슜�옄媛� �꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 �엯�젰 �뤌�뿉 �뀑�똿�븳�떎. + detail : detail, // �씠�뒋 �젙蹂� 議고쉶 + removeManager : removeManager, // �떞�떦�옄 �궘�젣 + removeUploadFile : removeUploadFile, // �듅�젙 �뙆�씪�쓣 �궘�젣 + setIssueTypeTemplate : setIssueTypeTemplate, // �씠�뒋 �쑀�삎 �뀥�뵆由� �쟻�슜�븯湲� + startExecute : startExecute // 理쒖큹 �떎�뻾 + }; + + $scope.vm = { + search : { + id : parameter.id, + deep : "01" // �봽濡쒖젥�듃 �뿰愿��맂 紐⑤뱺 �젙蹂대�� �뼱�뒓�젙�룄源뚯� 媛��졇�삱吏� 寃곗젙, 01 - �궗�슜�옄, 愿�由ъ옄 �젙蹂� + }, + form : { + title : "", // �젣紐� + description : "", // �궡�슜 + projects : [], // �봽濡쒖젥�듃 + issueTypeId : "", // �씠�뒋 �쑀�삎 �븘�씠�뵒 + priorityId : "", // �슦�꽑�닚�쐞 �븘�씠�뵒 + severityId : "", // 以묒슂�룄 �븘�씠�뵒 + issueStatusId : "", // �씠�뒋 �긽�깭 �븘�씠�뵒 + users : [], // �떞�떦�옄 + files : [], // �뾽濡쒕뱶 �뙆�씪 + attachedFiles : [], // �꽟癒몃끂�듃濡� �뙆�씪 �뾽濡쒕뱶瑜� �븷 寃쎌슦 �꽌踰꾩뿉�꽌 pk瑜� �뵲怨� issue id�� �뿰�룞 �옉�뾽�씠 �븘�슂�븯�떎. + startCompleteDateRange : "", // �떆�옉�씪 ~ 醫낅즺�씪 + issueCustomFields : [], // �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶 + removeFiles : [], // �궘�젣�븳 �뙆�씪 �젙蹂� + }, + projectName : "", // �봽濡쒖젥�듃 紐� 寃��깋 + userName : "", // �궗�슜�옄 寃��깋 + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + }, + project : { + page : 0, + totalPage : 0 + } + }, + summerNote : { + editable : null, + editor : null + }, + issueTypes : [], // �씠�뒋 �쑀�삎 �쟾泥� 紐⑸줉 + priorities : [], // �슦�꽑�닚�쐞 �젙蹂� + severities : [], // 以묒슂�룄 �젙蹂� + fileTableConfigs : [], // �뙆�씪 �뾽濡쒕뱶 �젙蹂� �뀒�씠釉� + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �봽濡쒖젥�듃媛� 蹂�寃쎈릺硫� �떞�떦�옄 珥덇린�솕 + $scope.$watch("vm.form.projects", function (newValue, oldValue) { + if (angular.isDefined(newValue)) { + if (newValue.length < 1) { + $scope.vm.form.users = []; + $scope.vm.form.issueCustomFields = []; + } + else { + if ($rootScope.isDefined($scope.vm.form.issueTypeId)) { + $scope.fn.getIssueTypeCustomFields(); + } + } + } + }); + + // �뾽濡쒕뱶 �뙆�씪 �궘�젣 + function removeUploadFile(index) { + var temp = []; + + for (var count in $scope.vm.form.files) { + var file = $scope.vm.form.files[count]; + + if (String(index) === count) { + if ($rootScope.isDefined(file.id)) { + $scope.vm.form.removeFiles.push(file.id); + } + } + else { + temp.push(file); + } + } + + $scope.vm.form.files = temp; + } + + // �떞�떦�옄 �궘�젣 + function removeManager(index) { + $scope.vm.form.users.splice(index, 1); + } + + // �꽟癒몃끂�듃 �씠誘몄� �뾽濡쒕뱶 + function imageUpload($files) { + var listFiles = []; + var uploadFileSize = 0; + + for (var count in $files) { + var $file = $files[count]; + + if (typeof ($file) == "object") { + uploadFileSize += $file.size; + + // �뙆�씪�떦 �슜�웾 �젣�븳 10MB + if ($file.size > $rootScope.fileByte.image) { + SweetAlert.error($filter("translate")("issue.capacityExceededImageFile"), $filter("translate")("issue.attachedOnlyImageFiles10mb")); // "�씠誘몄� �뙆�씪 �슜�웾 珥덇낵", "10MB �씠�븯�쓽 �씠誘몄� �뙆�씪留� 泥⑤�媛� 媛��뒫�빀�땲�떎." + listFiles = []; + break; + } + + // �뿬�윭嫄댁쓽 �뙆�씪�쓣 �븳踰덉뿉 �뾽濡쒕뱶�븷 寃쎌슦 �젣�븳 300MB + if (uploadFileSize > $rootScope.fileByte.file) { + SweetAlert.error($filter("translate")("issue.capacityExceededImageFile"), $filter("translate")("issue.attachedMultipleImageFiles100mb")); // "�씠誘몄� �뙆�씪 �슜�웾 珥덇낵", "�뿬�윭 嫄댁쓽 �씠誘몄�瑜� �븳踰덉뿉 泥⑤��븷 寃쎌슦 100MB �씠�븯源뚯�留� 泥⑤�媛� 媛��뒫�빀�땲�떎." + listFiles = []; + break; + } + + if (!$rootScope.checkImageType($file)) { + SweetAlert.error($filter("translate")("issue.limitImageFile"), $filter("translate")("issue.canBeUploadedOnlyImageFiles")); // "�씠誘몄� �뙆�씪 �젣�븳", "�씠誘몄� �뙆�씪留� �뾽濡쒕뱶 媛��뒫�빀�땲�떎. - bmp, jpg, jpeg, png, tif" + listFiles = []; + break; + } + + if (!angular.isDefined($file.name)) { + var fileType = $file.type.split("/"); + var imageType = ""; + + if (fileType[0] === "image") { + imageType = "." + fileType[1]; + } + + $file.name = new Date().getTime() + imageType; + } + else { + if ($file.name.indexOf(';') !== -1) { + SweetAlert.error($filter("translate")("issue.nameErrorImageFile"), $filter("translate")("issue.cannotUploadFileNameSpecialCharacters")); // "�씠誘몄� �뙆�씪紐� �삤瑜�", "�뙆�씪紐낆뿉 �듅�닔臾몄옄(;)媛� �뱾�뼱媛�硫� �뾽濡쒕뱶 �븷 �닔 �뾾�뒿�땲�떎." + listFiles = []; + break; + } + } + + listFiles.push($file); + } + } + + // �뙆�씪 �뾽濡쒕뱶 寃�利앹쓣 嫄곗튇 �뙆�씪�씠 1媛쒖씠�긽 議댁옱�븷 寃쎌슦�뿉留� �떎�뻾 + if (listFiles.length > 0) { + AttachedFile.add({ + method : "POST", + file : listFiles, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : { + workspaceId : $rootScope.user.lastWorkspaceId, + issueId : parameter.id + } + }, + fileFormDataName : "file" + }) + .then(function (result) { + if (result.data.message.status === "success") { + angular.forEach(result.data.attachedFiles, function (fileInfo) { + $scope.vm.summerNote.editor.summernote("editor.insertImage", fileInfo.path); + $scope.vm.form.attachedFiles.push(fileInfo); + }); + } + else { + SweetAlert.error($filter("translate")("issue.errorFileUpload"), result.data.message.message); // �뙆�씪 �뾽濡쒕뱶 �삤瑜� + } + }); + } + } + + // �뙆�씪 �뾽濡쒕뱶�뿉 �궗�슜 + function onFileSelect($files) { + var uploadFileSize = 0; + + // �씠�쟾�뿉 泥⑤��븳 �뙆�씪�씠 �엳�쓣 寃쎌슦 �쟾泥� �뾽濡쒕뱶 �슜�웾�뿉 �룷�븿 + angular.forEach($scope.vm.form.files, function ($file) { + uploadFileSize += $file.size; + }); + + for (var count in $files) { + var $file = $files[count]; + + if (typeof ($file) == "object") { + uploadFileSize += $file.size; + + // �뙆�씪�떦 �슜�웾 �젣�븳 300MB + if (($file.size > $rootScope.fileByte.file) || (uploadFileSize > $rootScope.fileByte.file)) { + SweetAlert.error($filter("translate")("issue.attachmentCapacityExceeded"), $filter("translate")("issue.canAttachFileUpTo100mb")); // "泥⑤� �뙆�씪 �슜�웾 珥덇낵", "100MB �씠�븯源뚯�留� �뙆�씪 泥⑤�媛� 媛��뒫�빀�땲�떎." + break; + } + + // �뙆�씪�쓣 �뾽濡쒕뱶�븷 �븣 �뙆�씪 �쑀�삎�쓣 �솗�씤�빐二쇰뒗 湲곕뒫 - �뿀�슜�릺吏� �븡�� �솗�옣�옄�씪 �븣�뒗 泥⑤� 湲덉� + if (!$rootScope.checkFileType($file)) { + SweetAlert.error($filter("translate")("issue.limitAttachmentExtensions"), $filter("translate")("issue.notAllowedAttachment")); // "泥⑤� �뙆�씪 �솗�옣�옄 �젣�븳", "泥⑤�媛� �뿀�슜�릺吏� �븡�뒗 �뙆�씪�엯�땲�떎." + break; + } + + if ($file.name.indexOf(';') !== -1) { + SweetAlert.error($filter("translate")("issue.nameErrorAttachment"), $filter("translate")("issue.cannotUploadFileNameSpecialCharacters")); // "泥⑤� �뙆�씪紐� �삤瑜�", "�뙆�씪紐낆뿉 �듅�닔臾몄옄(;)媛� �뱾�뼱媛�硫� �뾽濡쒕뱶 �븷 �닔 �뾾�뒿�땲�떎." + break; + } + + $file.index = count; + $scope.vm.form.files.push($file); + } + } + } + + // ���젆�듃 諛뺤뒪�뿉�꽌 以묒슂�룄, �슦�꽑�닚�쐞 �깋�긽 �몴�떆 + function getOptionColor(list, key) { + var color = "#353535"; // 湲곕낯�깋�� 寃����깋. + + for (var count in list) { + if (String(list[count].id) === key) { + color = list[count].color; + break; + } + } + + return color; + } + + // �떞�떦�옄 autocomplete page �뾽�뜲�씠�듃�듃 + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + // �봽濡쒖젥�듃 autocomplete page �뾽�뜲�씠�듃 + function getProjectListCallBack(result) { + $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; + } + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.projects.length < 1) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id, + title : $rootScope.preventXss($scope.vm.form.title), // �젣紐� + description : $rootScope.preventXss($scope.vm.form.description), // �궡�슜 + projectId : (function () { // �봽濡쒖젥�듃 �븘�씠�뵒 + var projectId = ""; + + if ($scope.vm.form.projects.length > 0) { + projectId = $scope.vm.form.projects[0].id; + } + + return projectId; + })(), + issueTypeId : $scope.vm.form.issueTypeId, // �씠�뒋 �쑀�삎 �븘�씠�뵒 + priorityId : $scope.vm.form.priorityId, // �슦�꽑�닚�쐞 �븘�씠�뵒 + severityId : $scope.vm.form.severityId, // 以묒슂�룄 �븘�씠�뵒 + issueStatusId : $scope.vm.form.issueStatusId, // �씠�뒋 �긽�깭 �븘�씠�뵒 + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.form.users, function (user) { + userIds.push(user.id); + }); + + return userIds; + })(), + removeFiles : $scope.vm.form.removeFiles, + attachedFileIds : (function () { + var attachedFileIds = []; + + angular.forEach($scope.vm.form.attachedFiles, function (attachedFile) { + if ($scope.vm.form.description.indexOf(attachedFile.path) !== -1) { + attachedFileIds.push(attachedFile.id); + } + }); + + return attachedFileIds; + })(), + startCompleteDateRange : $scope.vm.form.startCompleteDateRange, + issueCustomFields : (function () { // �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶 + var issueCustomFields = []; + + angular.forEach($scope.vm.form.issueCustomFields, function (issueCustomField) { + var useValues = []; + + if (angular.isArray(issueCustomField.useValues)) { + angular.forEach(issueCustomField.useValues, function (useValue) { + useValues.push(useValue.value); + }); + } + else { + useValues.push(issueCustomField.useValues); + } + + // useValues 瑜� 諛곗뿴濡� 蹂��솚�븳�떎. + var temp = angular.copy(issueCustomField); + temp.useValues = useValues; + issueCustomFields.push(temp); + }); + + return issueCustomFields; + })() + }; + + Issue.modify({ + method : "POST", + file : (function () { + var files = []; + + angular.forEach($scope.vm.form.files, function (file) { + if (angular.isUndefined(file.id)) { + files.push(file); + } + }); + + return files; + })(), + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : content + }, + fileFormDataName : "file" + }).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + + // �씠�뒋 �긽�꽭 �솕硫� �슂泥� + $rootScope.$broadcast("getIssueDetail", { + id : parameter.id + }); + + $rootScope.$broadcast("getIssueList"); + } + else { + SweetAlert.error($filter("translate")("issue.failedIssueModify"), result.data.message.message); // �씠�뒋 �닔�젙 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + SweetAlert.close(); + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �씠�뒋 �쑀�삎 紐⑸줉 + function getIssueTypes() { + var deferred = $q.defer(); + + IssueType.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueTypes = result.data.data; + } + else { + SweetAlert.error($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message); // �씠�뒋 ���엯 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �슦�꽑�닚�쐞 紐⑸줉 + function getPriorities() { + var deferred = $q.defer(); + + Priority.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.priorities = result.data.data; + } + else { + SweetAlert.error($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message); // �슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // 以묒슂�룄 紐⑸줉 + function getSeverities() { + var deferred = $q.defer(); + + Severity.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.severities = result.data.data; + } + else { + SweetAlert.error($filter("translate")("issue.failedToCriticalListLookup"), result.data.message.message); // 以묒슂�룄 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 + function getIssueTypeCustomFields() { + $scope.vm.form.issueCustomFields = []; + + // �씠�뒋 ���엯 �븘�씠�뵒�굹 �봽濡쒖젥�듃 �븘�씠�뵒媛� �뾾�쑝硫� �넻�떊�쓣 �븯吏� �븡�뒗�떎. + if (!$rootScope.isDefined($scope.vm.form.issueTypeId) || $scope.vm.form.projects.length < 1) { + return; + } + + // �씠�뒋 �쑀�삎 �뀥�뵆由� �쟻�슜�븯湲� + $scope.fn.setIssueTypeTemplate(); + + var deferred = $q.defer(); + + IssueTypeCustomField.find($resourceProvider.getContent({projectId : $scope.vm.form.projects[0].id, issueTypeId : $scope.vm.form.issueTypeId}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎. + $scope.fn.setFormByIssueTypeCustomFields(result.data.data); + } + else { + SweetAlert.error($filter("translate")("issue.failedToUserDefinedFieldListAssociatedLookup"), result.data.message.message); // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎. + // �씠�뒋 �닔�젙�뿉�꽌�뒗 useValues 媛믪씠 issue_custom_field_value �쓽 媛믪쑝濡� �뀑�똿�빐�빞�븯誘�濡� �뿬湲곗꽌�뒗 珥덇린�솕留� �빐以��떎. + function setFormByIssueTypeCustomFields(issueTypeCustomFields) { + $scope.vm.form.issueCustomFields = []; + + angular.forEach(issueTypeCustomFields, function (issueTypeCustomField) { + switch (issueTypeCustomField.customFieldVo.customFieldType) { + case "INPUT" : + case "SINGLE_SELECT" : + issueTypeCustomField.useValues = ""; + break; + + case "MULTI_SELECT" : + issueTypeCustomField.useValues = []; + break; + } + + $scope.vm.form.issueCustomFields.push(issueTypeCustomField); + }); + } + + // �씠�뒋�뿉�꽌 �궗�슜�옄媛� �꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 �엯�젰 �뤌�뿉 �뀑�똿�븳�떎. + function setUseValueByIssueTypeCustomFields(issueCustomFieldValues) { + + angular.forEach(issueCustomFieldValues, function (issueCustomFieldValue) { + for (var count in $scope.vm.form.issueCustomFields) { + var issueCustomField = $scope.vm.form.issueCustomFields[count]; + + if (issueCustomField.customFieldVo.id === issueCustomFieldValue.customFieldVo.id) { + // 硫��떚���젆�듃 �씪�븣 + if (angular.isArray(issueCustomField.useValues)) { + issueCustomField.useValues.push({ + value : issueCustomFieldValue.useValue + }); + } + else { + issueCustomField.useValues = issueCustomFieldValue.useValue; + } + + break; + } + } + }); + } + + // �씠�뒋 �긽�꽭 �젙蹂� + function detail() { + var deferred = $q.defer(); + + Issue.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (angular.isDefined(result.data.data)) { + $scope.vm.form.title = result.data.data.title; + $scope.vm.form.description = result.data.data.description; + $scope.vm.form.projects.push(result.data.data.projectVo); + $scope.vm.projectName = result.data.data.projectVo.name; + $scope.vm.form.issueTypeId = String(result.data.data.issueTypeVo.id); + $scope.vm.form.priorityId = String(result.data.data.priorityVo.id); + $scope.vm.form.severityId = String(result.data.data.severityVo.id); + $scope.vm.form.issueStatusId = String(result.data.data.issueStatusVo.id); + $scope.vm.form.users = result.data.data.userVos; + $scope.vm.form.files = result.data.data.attachedFileVos; + + if ($rootScope.isDefined(result.data.data.startDate)) { + $scope.vm.form.startCompleteDateRange = result.data.data.startDate + " ~ " + result.data.data.completeDate; + } + else { + $scope.vm.form.startCompleteDateRange = ""; + } + + // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎. + $scope.fn.setFormByIssueTypeCustomFields(result.data.data.issueTypeCustomFieldVos); + // �씠�뒋�뿉�꽌 �궗�슜�옄媛� �꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 �엯�젰 �뤌�뿉 �뀑�똿�븳�떎. + $scope.fn.setUseValueByIssueTypeCustomFields(result.data.data.issueCustomFieldValueVos); + } + } + else { + SweetAlert.error($filter("translate")("issue.failedToProjectDetails"), result.data.message.message); // �봽濡쒖젥�듃 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣 + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 ���엯�뿉 �엳�뒗 �뀥�뵆由우쓣 �쟻�슜�븳�떎. + function setIssueTypeTemplate() { + for (var count in $scope.vm.issueTypes) { + var issueType = $scope.vm.issueTypes[count]; + + if ($scope.vm.form.issueTypeId === String(issueType.id)) { + // �뀥�뵆由우씠 �옉�꽦�릺�뼱 �엳�뒗吏� �솗�씤 + if ($rootScope.isDefined(issueType.description)) { + // �씠�뒋 �궡�슜�씠 �옉�꽦�릺�뼱 �엳吏� �븡�쑝硫� 諛붾줈 �뀥�뵆由� �쟻�슜 + if (!$rootScope.isDefined($scope.vm.form.description)) { + $scope.vm.form.description = issueType.description; + } + else { + // �씠誘� �궡�슜�씠 �옉�꽦�릺�뼱 �엳�쑝硫� �솗�씤 �썑 �쟻�슜 + SweetAlert.swal({ + title : $filter("translate")("issue.applyTemplate"), // �뀥�뵆由� �쟻�슜�븯湲� + text : $filter("translate")("issue.issueContentIsWrittenApplyTheTemplate"), // �씠�뒋 �궡�슜�씠 �옉�꽦�릺�뼱 �엳�뒿�땲�떎. �뀥�뵆由우쓣 �쟻�슜�븯寃좎뒿�땲源�? �뀥�뵆由우씠 �쟻�슜�릺硫� �씠誘� �옉�꽦�맂 �궡�슜�씠 �궗�씪吏묐땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("issue.applyTemplate"), // �뀥�뵆由� �쟻�슜�븯湲� + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $scope.vm.form.description = issueType.description; + } + }); + } + } + + break; + } + } + } + + // 理쒖큹 �떎�뻾 + function startExecute() { + + var promises = { + detail : $scope.fn.detail(), + getIssueTypes : $scope.fn.getIssueTypes(), + getPriorities : $scope.fn.getPriorities(), + getSeverities : $scope.fn.getSeverities() + }; + + $q.all(promises).then(function (results) { + $log.debug("promises 寃곌낵 ", results); + }); + } + + $scope.fn.startExecute(); + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js b/src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js new file mode 100644 index 0000000..2d705ae --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueModifyStatus.controller.js @@ -0,0 +1,99 @@ +/** + * Created by wisestone on 2018-11-22. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('issueModifyStatusController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', '$stateParams', 'parameter', + 'Issue', 'IssueStatus', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, $stateParams, parameter, Issue, IssueStatus, $filter) { + + // �븿�닔 紐⑥쓬 + $scope.fn = { + cancel: cancel, // �뙘�뾽 李� �떕湲� + formSubmit: formSubmit, // �뤌 �쟾�넚 + formCheck: formCheck, // �뤌 泥댄겕 + findNextMultiIssueStatus: findNextMultiIssueStatus // �씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭瑜� 李얜뒗�떎. + }; + + // 蹂��닔 紐⑥쓬 + $scope.vm = { + issueStatusList: [], // 蹂�寃� 媛��뒫�븳 �긽�깭 紐⑸줉 + form: { + issueStatusId: "", + comment: "" + } + }; + + // �씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭瑜� 李얜뒗�떎. + function findNextMultiIssueStatus() { + $rootScope.spinner = true; + + IssueStatus.findNextMultiIssueStatus($resourceProvider.getContent( + {issueIds: parameter.issueIds}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueStatusList = result.data.data; + } else { + SweetAlert.swal($filter("translate")("issue.failedIssueStatusCheck"), result.data.message.message, "error"); // �씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭 議고쉶 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뤌 �쟾�넚 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + ids: parameter.issueIds, + issueStatusId: $scope.vm.form.issueStatusId, + comment: $scope.vm.form.comment + }; + + Issue.modifyMultiIssueStatus($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + + $rootScope.$broadcast("getIssueList", {}); + + if ($rootScope.isDefined($rootScope.currentDetailIssueId)) { + $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); + } + } else { + SweetAlert.error($filter("translate")("issue.failedToChangeMultipleIssueStatus"), result.data.message.message); // �떎以� �씠�뒋 �긽�깭 蹂�寃� �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �씠�룞 媛��뒫�븳 �씠�뒋 �긽�깭瑜� 李얜뒗�떎. + $scope.fn.findNextMultiIssueStatus(); + + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueModifyUser.controller.js b/src/main/webapp/scripts/app/issue/issueModifyUser.controller.js new file mode 100644 index 0000000..7910cfc --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueModifyUser.controller.js @@ -0,0 +1,133 @@ +/** + * Created by Maprex on 2021-06-08 + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueModifyUserController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance','$injector', '$controller', 'SweetAlert', '$timeout', '$stateParams', '$q', 'parameter', + 'IssueUser', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, SweetAlert, $timeout, $stateParams, $q, parameter, IssueUser, $filter) { + + // �븿�닔 紐⑥쓬 + $scope.fn = { + cancel: cancel, // �뙘�뾽 李� �떕湲� + formSubmit: formSubmit, // �뤌 �쟾�넚 + formCheck: formCheck, // �뤌 泥댄겕 + removeManager : removeManager, // �떞�떦�옄 �궘�젣 + load : load, // �쁽�옱 �떞�떦�옄 媛��졇�삤湲� + startExecute : startExecute // �떆�옉�떆 �떎�뻾 + }; + + // 蹂��닔 紐⑥쓬 + $scope.vm = { + form : { + users : [], // �떞�떦�옄 + projects : [] + }, + userName : "", // �궗�슜�옄 寃��깋 + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + } + }, + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �떞�떦�옄 �궘�젣 + function removeManager(index) { + $scope.vm.form.users.splice(index, 1); + } + + // �떞�떦�옄 autocomplete page �뾽�뜲�씠�듃�듃 + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + // �뤌 �쟾�넚 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id[0], + projectId : parameter.projectId[0], + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.form.users, function (user) { + userIds.push(user.id); + }); + + return userIds; + })(), + }; + + IssueUser.modify($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + + $rootScope.$broadcast("getIssueList", {}); + + if ($rootScope.isDefined($rootScope.currentDetailIssueId)) { + $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); + } + } else { + SweetAlert.error($filter("translate")("issue.failedToChangeMultipleIssueStatus"), result.data.message.message); // �떎以� �씠�뒋 �긽�깭 蹂�寃� �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // 理쒖큹 �떎�뻾 + function startExecute() { + var promises = { + users : $scope.fn.load() + }; + + $q.all(promises).then(function (results) { + $log.debug("promises 寃곌낵 ", results); + }); + } + + function load() { + $scope.vm.form.projects = []; + $scope.vm.form.projects.push(parameter.project[0]); + + var userVos = parameter.userVos[0]; + + if (userVos.length > 0 && userVos[0] != undefined) { + $scope.vm.form.users = userVos; + } else { + $scope.vm.form.users = []; + } + } + + $scope.fn.startExecute(); + + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueReservation.controller.js b/src/main/webapp/scripts/app/issue/issueReservation.controller.js new file mode 100644 index 0000000..b808efc --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueReservation.controller.js @@ -0,0 +1,126 @@ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('issueReservationController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$filter', 'parameter', 'IssueReservation', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $filter, parameter, IssueReservation) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + initReservation : initReservation, // �씠�뒋 諛쒖깮 �삁�빟 �젙蹂대�� 珥덇린�솕�븳�떎. + getIssueReservation : getIssueReservation // �씠�뒋 諛쒖깮 �삁�빟 �젙蹂대�� 議고쉶�븳�떎. + }; + + $scope.vm = { + form : { + id : "", + issueId : parameter.issueId, // �씠�뒋 踰덊샇 + issueReservationType : "", // �삁�빟 �쑀�삎 + reservation : "", // �삁�빟�씪 + reservationMonth : "", // �삁�빟 �쑀�삎�씠 留ㅻ뀈 �씪�븣 �썡 + reservationDay : "" // �삁�빟 �쑀�삎�씠 留ㅻ뀈 �씪�븣 �씪 + } + }; + + // �씠�뒋 諛쒖깮 �삁�빟 �젙蹂대�� 珥덇린�솕�븳�떎. + function initReservation() { + $scope.vm.form.reservation = ""; + $scope.vm.form.reservationMonth = ""; + $scope.vm.form.reservationDay = ""; + } + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : $scope.vm.form.id, + issueId : $scope.vm.form.issueId, + issueReservationType : $scope.vm.form.issueReservationType, + reservation : (function () { + var reservation = $scope.vm.form.reservation; + + if ($scope.vm.form.issueReservationType === "YEAR") { + reservation = $scope.vm.form.reservationMonth + "-" + $scope.vm.form.reservationDay; + } + + return reservation; + + })() + }; + + IssueReservation.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.form.id = result.data.data.id; + $scope.fn.cancel(); + SweetAlert.success($filter("translate")("issue.succeededIssueReservation"), result.data.message.messages); // �씠�뒋 諛쒖깮 �삁�빟 ���옣 �꽦怨� + } + else { + SweetAlert.error($filter("translate")("issue.failedIssueReservation"), result.data.message.messages); // �씠�뒋 諛쒖깮 �삁�빟 ���옣 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �씠�뒋 諛쒖깮 �삁�빟 �젙蹂대�� 議고쉶�븳�떎. + function getIssueReservation() { + $rootScope.spinner = true; + + IssueReservation.detail($resourceProvider.getContent( + { + issueId : $scope.vm.form.issueId + }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.form.id = result.data.data.id; + $scope.vm.form.issueReservationType = result.data.data.issueReservationType; + + if ($scope.vm.form.issueReservationType === "YEAR") { + var reservationDate = result.data.data.reservation.split("-"); + + $scope.vm.form.reservationMonth = reservationDate[0]; + $scope.vm.form.reservationDay = reservationDate[1]; + + } + else { + $scope.vm.form.reservation = result.data.data.reservation; + } + + } + else { + SweetAlert.error($filter("translate")("issue.failedToIssueReservationDetails"), result.data.message.message); // �씠�뒋 諛쒖깮 �삁�빟 �긽�꽭 議고쉶 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �씠�뒋 諛쒖깮 �삁�빟 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.getIssueReservation(); + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueSendMail.controller.js b/src/main/webapp/scripts/app/issue/issueSendMail.controller.js new file mode 100644 index 0000000..29e991e --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueSendMail.controller.js @@ -0,0 +1,97 @@ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueSendMailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$controller', '$injector', 'SweetAlert', '$filter', 'parameter', 'Issue', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $controller, $injector, SweetAlert, $filter, parameter, Issue) { + + $scope.fn = { + getUserListCallBack : getUserListCallBack, // �궗�슜�옄 auto complete callback function + removeManager : removeManager, // �쟾�넚 ���긽�옄 �궘�젣 + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + id : parameter.issueId, // �씠�뒋 踰덊샇 + projects : [{ id : parameter.projectId}], // �봽濡쒖젥�듃 + users : [] // 硫붿씪 �쟾�넚諛쏅뒗 �궗�슜�옄 + }, + userName : "", + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + } + } + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.users.length < 1) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : $scope.vm.form.id, + sendEmails : (function () { + var sendEmails = []; + + angular.forEach($scope.vm.form.users, function (user) { + sendEmails.push($rootScope.encryption(user.account)); + }); + + return sendEmails; + })() + }; + + Issue.sendEmail($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + SweetAlert.success($filter("translate")("issue.succeededIssueMail"), $filter("translate")("issue.sentToTheSelectedUser")); // "�씠�뒋 硫붿씪 諛쒖넚 �셿猷�" + $scope.fn.cancel(); + } + else { + SweetAlert.error($filter("translate")("issue.failedIssueMail"), result.data.message.message); // "�씠�뒋 硫붿씪 諛쒖넚 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + // �궗�슜�옄 auto complete callback function + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + // �쟾�넚 ���긽�옄 �궘�젣 + function removeManager(index) { + $scope.vm.form.users.splice(index, 1); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/issue/issueVersionView.controller.js b/src/main/webapp/scripts/app/issue/issueVersionView.controller.js new file mode 100644 index 0000000..883a12d --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueVersionView.controller.js @@ -0,0 +1,59 @@ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('issueVersionViewController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$filter', 'parameter', 'IssueVersion', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $filter, parameter, IssueVersion) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + getIssueVersion : getIssueVersion, // �씠�뒋 踰꾩쟾 �젙蹂대�� 議고쉶�븳�떎. + }; + + $scope.vm = { + form : { + issueId : parameter.issueId, // �씠�뒋 踰덊샇 + }, + issueVersion : {}, + }; + + $scope.$on("getIssueVersion", function (event, args) { + $scope.fn.getIssueVersion(args.id); + }); + + // �씠�뒋 踰꾩쟾 �젙蹂대�� 議고쉶�븳�떎. + function getIssueVersion(id) { + $rootScope.spinner = true; + + var content = { + id : id, + issueId : $scope.vm.form.issueId + }; + + IssueVersion.find($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueVersion = result.data.data; + } + else { + SweetAlert.error($filter("translate")("issue.issueVersionLookupFailed"), result.data.message.message); // �씠�뒋 踰꾩쟾 議고쉶 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �씠�뒋 踰꾩쟾 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.getIssueVersion(); + }]); + }); diff --git a/src/main/webapp/scripts/app/issueStatus/issueStatus.js b/src/main/webapp/scripts/app/issueStatus/issueStatus.js new file mode 100644 index 0000000..b832802 --- /dev/null +++ b/src/main/webapp/scripts/app/issueStatus/issueStatus.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('issueStatus', { + abstract : true, + url : "/issueStatus", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('issueStatus.list', { + url : '/issueStatusList', + data : { + authorities : ['ISSUE_STATUS_TOTAL'] + }, + templateUrl : 'views/issueStatus/issueStatusList.html', + controller : "issueStatusListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["issueStatusListController", 'issueStatusAddController', 'issueStatusModifyController', 'jsTable', 'tableColumnGenerator', 'issueStatusService', + 'colorPalette', 'colorPalettePicker', 'modalFormAutoScroll', 'formSubmit', 'jsShortCut', 'inputRegex'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/issueStatus/issueStatusAdd.controller.js b/src/main/webapp/scripts/app/issueStatus/issueStatusAdd.controller.js new file mode 100644 index 0000000..e1ad3f7 --- /dev/null +++ b/src/main/webapp/scripts/app/issueStatus/issueStatusAdd.controller.js @@ -0,0 +1,63 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('issueStatusAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', '$uibModalInstance', 'IssueStatus', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, User, $uibModalInstance, IssueStatus, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + name : "", // �씠�뒋 �긽�깭 紐� + issueStatusType : "OPEN", // �씠�뒋 �긽�깭 �쑀�삎 + color : "#febd35" // �깋�긽 + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + $scope.vm.form.name = $rootScope.preventXss($scope.vm.form.name); + + IssueStatus.add($resourceProvider.getContent( + $scope.vm.form, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getIssueStatusList", {}); + } + else { + SweetAlert.error($filter("translate")("managementStatus.failedToCreateIssueStatus"), result.data.message.message); //"�씠�뒋 �긽�깭 �깮�꽦 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/issueStatus/issueStatusList.controller.js b/src/main/webapp/scripts/app/issueStatus/issueStatusList.controller.js new file mode 100644 index 0000000..01e0393 --- /dev/null +++ b/src/main/webapp/scripts/app/issueStatus/issueStatusList.controller.js @@ -0,0 +1,246 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueStatusListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'IssueStatus', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, IssueStatus, SweetAlert, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + changePageRowCount : changePageRowCount, // �럹�씠吏� 蹂�寃� + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + add : add, // �씠�뒋 �긽�깭 �깮�꽦 + makeSearchConditions : makeSearchConditions, // �씠�뒋 �긽�깭 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎. + removes : removes // �궘�젣 + }; + + // 蹂��닔 + $scope.vm = { + search : { + name : "", // �씠�뒋 �긽�깭 紐� + issueStatusTypes : [] + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + }, + options : { + issueStatusTypes : [{ + fieldKey : "READY", + fieldValue : $filter("translate")("common.wait") // "��湲�" + }, { + fieldKey : "OPEN", + fieldValue : $filter("translate")("common.progress") // "吏꾪뻾" + }, { + fieldKey : "CLOSE", + fieldValue : $filter("translate")("common.end") // "醫낅즺" + }] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify + }; + + // �씠�뒋 �긽�깭 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getIssueStatusList", function () { + $scope.fn.getPageList(0); + }); + + // �씠�뒋 �긽�깭 紐⑸줉 �뀒�씠釉� �꽕�젙 + 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("issue.issueStatus") + .setHWidth("bold") + .setDType("renderer") + .setDName("name") + .setDAlign("text-center") + .setDRenderer("COMMON_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("managementStatus.statusProperties") + .setDType("renderer") + .setHWidth("width-120-p bold") + .setDAlign("text-center") + .setDRenderer("ISSUE_STATUS_TYPE")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.color") + .setHWidth("width-140-p bold") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("COLOR")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.workflow") + .setDType("renderer") + .setHWidth("width-300-p bold") + .setDAlign("text-center") + .setDRenderer("USE_WORKFLOW_LIST")); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �씠�뒋 �긽�깭 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + return { + name : $scope.vm.search.name, + issueStatusTypes : (function () { + var issueStatusTypes = []; + + angular.forEach($scope.vm.search.issueStatusTypes, function (issueStatusType) { + issueStatusTypes.push(issueStatusType.fieldKey); + }); + + return issueStatusTypes; + })(), + deep : "01" // �씠�뒋 �긽�깭瑜� �궗�슜�븯�뒗 �썙�겕�뵆濡쒖슦 �젙蹂대�� 李얜뒗�떎. + }; + } + + // �씠�뒋 �긽�깭 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + // �씠�뒋 �긽�깭 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎. + var conditions = $scope.fn.makeSearchConditions(); + + IssueStatus.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.swal($filter("translate")("common.failedToIssueStatusListLookup"), result.data.message.message, "error"); //"�씠�뒋 �긽�깭 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + function changePageRowCount() { + $scope.fn.getPageList(0); + } + + // �씠�뒋 �긽�깭 �깮�꽦 �뙘�뾽 + function add() { + $uibModal.open({ + templateUrl : 'views/issueStatus/issueStatusAdd.html', + size : "md", + controller : 'issueStatusAddController', + backdrop : 'static' + }); + } + + // �씠�뒋 �긽�깭 �닔�젙 �뙘�뾽 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/issueStatus/issueStatusModify.html', + size : "md", + controller : 'issueStatusModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �씠�뒋 �긽�깭 �궘�젣 �뙘�뾽 + function removes() { + var removeIds = []; + + angular.forEach($scope.vm.responseData.data, function (data) { + if (data.checked) { + removeIds.push(data.id); + } + }); + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("managementStatus.deleteIssueStatus"), // "�씠�뒋 �긽�깭 �궘�젣" + text : $filter("translate")("managementStatus.wantToDeleteSelectIssueStatus"), // "�꽑�깮�븳 �씠�뒋 �긽�깭瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋 �긽�깭�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎." + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + if (isConfirm) { + $rootScope.spinner = true; + + IssueStatus.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + $scope.fn.makeTableConfigs(); + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/issueStatus/issueStatusModify.controller.js b/src/main/webapp/scripts/app/issueStatus/issueStatusModify.controller.js new file mode 100644 index 0000000..3234fa5 --- /dev/null +++ b/src/main/webapp/scripts/app/issueStatus/issueStatusModify.controller.js @@ -0,0 +1,94 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueStatusModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'IssueStatus', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, IssueStatus, parameter, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� + }; + + $scope.vm = { + search : { + id : parameter.id, + deep : "01" // �씠�뒋 �긽�깭 �뿰愿��맂 紐⑤뱺 �젙蹂대�� �뼱�뒓�젙�룄源뚯� 媛��졇�삱吏� 寃곗젙, 01 - �씪諛� �젙蹂�, �뿰愿��맂 �젙蹂� + }, + form : { + id : parameter.id, + name : "", + issueStatusType : "", // �씠�뒋 �긽�깭 �쑀�삎 + color : "", // �깋�긽 + useYn : false, // �궗�슜 �뿬遺� + defaultYn : false // 湲곕낯 �깮�꽦�쑝濡� �젣怨� �뿬遺� + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + $scope.vm.form.name = $rootScope.preventXss($scope.vm.form.name); + + IssueStatus.modify($resourceProvider.getContent( + $scope.vm.form, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getIssueStatusList", {}); + } + else { + SweetAlert.error($filter("translate")("managementStatus.failedToModifyIssueStatus"), result.data.message.message); // "�씠�뒋 �긽�깭 �닔�젙 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + function detail() { + IssueStatus.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (angular.isDefined(result.data.data)) { + $scope.vm.form.name = result.data.data.name; + $scope.vm.form.issueStatusType = result.data.data.issueStatusType; + $scope.vm.form.color = result.data.data.color; + $scope.vm.form.useYn = result.data.data.useYn; + $scope.vm.form.defaultYn = result.data.data.defaultYn; + } + } + else { + SweetAlert.swal($filter("translate")("managementStatus.failedToIssueStatusDetails"), result.data.message.message, "error"); // "�씠�뒋 �긽�깭 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣" + } + }); + } + + $scope.fn.detail(); + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/issueType/issueType.js b/src/main/webapp/scripts/app/issueType/issueType.js new file mode 100644 index 0000000..c40a2af --- /dev/null +++ b/src/main/webapp/scripts/app/issueType/issueType.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('issueTypes', { + abstract : true, + url : "/issueType", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('issueTypes.list', { + url : '/issueTypeList', + data : { + authorities : ['ISSUE_TYPE_TOTAL'] + }, + templateUrl : 'views/issueType/issueTypeList.html', + controller : "issueTypeListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["issueTypeListController", 'issueTypeAddController', 'issueTypeModifyController', 'jsTable', 'tableColumnGenerator', 'issueTypeService', 'modalFormAutoScroll', + 'workflowService', 'colorPalette', 'colorPalettePicker', 'formSubmit', 'jsShortCut', 'inputRegex'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js b/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js new file mode 100644 index 0000000..de55159 --- /dev/null +++ b/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js @@ -0,0 +1,146 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueTypeAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$controller', '$injector', 'IssueType', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $controller, $injector, IssueType, SweetAlert, $filter) { + + $scope.fn = { + getWorkflowListCallBack : getWorkflowListCallBack, // �썙�겕�뵆濡쒖슦 auto complete callback function + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + name : "", // �씠�뒋 ���엯 紐� + workflows : [], // �썙�겕�뵆濡쒖슦 + description : "", // �꽕紐� + color : "#febd35" // �깋�긽 + }, + workflowName : "", + autoCompletePage : { + workflow : { + page : 0, + totalPage : 0 + } + }, + options : { + callbacks: { + onImageUpload: function (data) { + data.pop(); + } + }, + disableDragAndDrop: true, + shortcuts: true, + toolbar: [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap: { + pc: { + 'ENTER': 'insertParagraph', + 'CTRL+Z': 'undo', + 'CTRL+Y': 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB': 'untab', + 'CTRL+B': 'bold', + 'CTRL+I': 'italic', + 'CTRL+U': 'underline', + 'CTRL+SHIFT+S': 'strikethrough', + 'CTRL+BACKSLASH': 'removeFormat', + 'CTRL+SHIFT+L': 'justifyLeft', + 'CTRL+SHIFT+E': 'justifyCenter', + 'CTRL+SHIFT+R': 'justifyRight', + 'CTRL+SHIFT+J': 'justifyFull', + 'CTRL+SHIFT+NUM7': 'insertUnorderedList', + 'CTRL+SHIFT+NUM8': 'insertOrderedList', + 'CTRL+LEFTBRACKET': 'outdent', + 'CTRL+RIGHTBRACKET': 'indent', + 'CTRL+NUM0': 'formatPara', + 'CTRL+NUM1': 'formatH1', + 'CTRL+NUM2': 'formatH2', + 'CTRL+NUM3': 'formatH3', + 'CTRL+NUM4': 'formatH4', + 'CTRL+NUM5': 'formatH5', + 'CTRL+NUM6': 'formatH6', + 'CTRL+ENTER': 'insertHorizontalRule', + 'CTRL+K': 'linkDialog.show' + } + } + } + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.workflows.length < 1) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + workflowId : (function () { + var workflowId = ""; + + if ($scope.vm.form.workflows.length > 0) { + workflowId = $scope.vm.form.workflows[0].id; + } + + return workflowId; + })(), + name : $rootScope.preventXss($scope.vm.form.name), + description : $rootScope.preventXss($scope.vm.form.description), + color : $scope.vm.form.color + }; + + IssueType.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getIssueTypeList", {}); + } + else { + SweetAlert.error($filter("translate")("managementType.failedToCreateIssueType"), result.data.message.message); // "�씠�뒋 ���엯 �깮�꽦 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + // �썙�겕�뵆濡쒖슦 auto complete callback function + function getWorkflowListCallBack(result) { + $scope.vm.autoCompletePage.workflow.totalPage = result.data.page.totalPage; + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/issueType/issueTypeList.controller.js b/src/main/webapp/scripts/app/issueType/issueTypeList.controller.js new file mode 100644 index 0000000..884febd --- /dev/null +++ b/src/main/webapp/scripts/app/issueType/issueTypeList.controller.js @@ -0,0 +1,232 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueTypeListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'IssueType', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal,IssueType, SweetAlert, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + changePageRowCount : changePageRowCount, // �럹�씠吏� 蹂�寃� + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + makeSearchConditions : makeSearchConditions, // �씠�뒋 ���엯 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎. + add : add, // �씠�뒋 �쑀�삎 �깮�꽦 + removes : removes // �씠�뒋 �쑀�삎 �궘�젣 + }; + + // 蹂��닔 + $scope.vm = { + search : { + name : "" // �씠�뒋 �쑀�삎 紐� + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify + }; + + // �씠�뒋 �쑀�삎 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getIssueTypeList", function () { + $scope.fn.getPageList(0); + }); + + // �씠�뒋 �쑀�삎 紐⑸줉 �뀒�씠釉� �꽕�젙 + 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("issue.issueType") + .setHWidth("bold") + .setDType("renderer") + .setDName("name") + .setDAlign("text-center") + .setDRenderer("COMMON_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.color") + .setHWidth("width-140-p bold") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("COLOR")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.workflow") + .setDType("renderer") + .setHWidth("width-220-p bold") + .setDAlign("text-center") + .setDRenderer("WORKFLOW_NAME")); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �씠�뒋 ���엯 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + return { + name : $scope.vm.search.name, + deep : "01" // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �썙�겕�뵆濡쒖슦 �젙蹂대�� 李얜뒗�떎. + }; + } + + // �씠�뒋 �쑀�삎 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + // �씠�뒋 ���엯 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎. + var conditions = $scope.fn.makeSearchConditions(); + + IssueType.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("managementType.failedToIssueTypeList"), result.data.message.message); // "�씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + function changePageRowCount() { + $scope.fn.getPageList(0); + } + + // �씠�뒋 �쑀�삎 �깮�꽦 �뙘�뾽 + function add() { + $uibModal.open({ + templateUrl : 'views/issueType/issueTypeAdd.html', + size : "md", + controller : 'issueTypeAddController', + backdrop : 'static' + }); + } + + // �씠�뒋 �쑀�삎 �닔�젙 �뙘�뾽 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/issueType/issueTypeModify.html', + size : "md", + controller : 'issueTypeModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �씠�뒋 �쑀�삎 �궘�젣 �뙘�뾽 + function removes() { + var removeIds = []; + var notRemoveIssueTypeNames = ""; + var removePermission = true; + + angular.forEach($scope.vm.responseData.data, function (data) { + if (data.checked) { + removeIds.push(data.id); + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("managementType.notHaveDeletePermissionExistsIssueType") + notRemoveIssueTypeNames, // "�궘�젣 沅뚰븳�씠 �뾾�뒗 �씠�뒋 �쑀�삎�씠 議댁옱�빀�땲�떎." + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("managementType.deleteIssueType"), // "�씠�뒋 �쑀�삎 �궘�젣" + text : $filter("translate")("managementType.wantToDeleteSelectIssueType"), // "�꽑�깮�븳 �씠�뒋 �쑀�삎瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋 �쑀�삎�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎." + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + IssueType.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + $scope.fn.makeTableConfigs(); + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js b/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js new file mode 100644 index 0000000..24284c5 --- /dev/null +++ b/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js @@ -0,0 +1,177 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueTypeModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$controller', '$injector', 'IssueType', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $controller, $injector, IssueType, parameter, SweetAlert, $filter) { + + $scope.fn = { + getWorkflowListCallBack : getWorkflowListCallBack, // �썙�겕�뵆濡쒖슦 auto complete callback function + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� + }; + + $scope.vm = { + search : { + id : parameter.id, + deep : "01" // �씠�뒋 ���엯 �뿰愿��맂 紐⑤뱺 �젙蹂대�� �뼱�뒓�젙�룄源뚯� 媛��졇�삱吏� 寃곗젙, 01 - �씪諛� �젙蹂�, �뿰愿��맂 �젙蹂� + }, + form : { + id : parameter.id, + name : "", + workflows : [], // �썙�겕�뵆濡쒖슦 + description : "", // �꽕紐� + color : "" // �깋�긽 + }, + workflowName : "", + autoCompletePage : { + workflow : { + page : 0, + totalPage : 0 + } + }, + options : { + callbacks: { + onImageUpload: function (data) { + data.pop(); + } + }, + disableDragAndDrop: true, + shortcuts: true, + toolbar: [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap: { + pc: { + 'ENTER': 'insertParagraph', + 'CTRL+Z': 'undo', + 'CTRL+Y': 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB': 'untab', + 'CTRL+B': 'bold', + 'CTRL+I': 'italic', + 'CTRL+U': 'underline', + 'CTRL+SHIFT+S': 'strikethrough', + 'CTRL+BACKSLASH': 'removeFormat', + 'CTRL+SHIFT+L': 'justifyLeft', + 'CTRL+SHIFT+E': 'justifyCenter', + 'CTRL+SHIFT+R': 'justifyRight', + 'CTRL+SHIFT+J': 'justifyFull', + 'CTRL+SHIFT+NUM7': 'insertUnorderedList', + 'CTRL+SHIFT+NUM8': 'insertOrderedList', + 'CTRL+LEFTBRACKET': 'outdent', + 'CTRL+RIGHTBRACKET': 'indent', + 'CTRL+NUM0': 'formatPara', + 'CTRL+NUM1': 'formatH1', + 'CTRL+NUM2': 'formatH2', + 'CTRL+NUM3': 'formatH3', + 'CTRL+NUM4': 'formatH4', + 'CTRL+NUM5': 'formatH5', + 'CTRL+NUM6': 'formatH6', + 'CTRL+ENTER': 'insertHorizontalRule', + 'CTRL+K': 'linkDialog.show' + } + } + } + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.workflows.length < 1) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id, + workflowId : (function () { + var workflowId = ""; + + if ($scope.vm.form.workflows.length > 0) { + workflowId = $scope.vm.form.workflows[0].id; + } + + return workflowId; + })(), + name : $rootScope.preventXss($scope.vm.form.name), + description : $rootScope.preventXss($scope.vm.form.description), + color : $scope.vm.form.color + }; + + IssueType.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getIssueTypeList", {}); + } + else { + SweetAlert.error($filter("translate")("managementType.failedToModifyIssueType"), result.data.message.message); // "�씠�뒋 ���엯 �닔�젙 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + // �썙�겕�뵆濡쒖슦 auto complete callback function + function getWorkflowListCallBack(result) { + $scope.vm.autoCompletePage.workflow.totalPage = result.data.page.totalPage; + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + function detail() { + $scope.vm.form.workflows = []; + + IssueType.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if ($rootScope.isDefined(result.data.data)) { + $scope.vm.form.name = result.data.data.name; + $scope.vm.form.description = result.data.data.description; + $scope.vm.form.workflows.push(result.data.data.workflowVo); + $scope.vm.workflowName = result.data.data.workflowVo.name; + $scope.vm.form.color = result.data.data.color; + } + } + else { + SweetAlert.swal($filter("translate")("managementType.failedToDetailIssueType"), result.data.message.message, "error"); // "�씠�뒋 ���엯 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣" + } + }); + } + + $scope.fn.detail(); + }]); + }); diff --git a/src/main/webapp/scripts/app/login/login.controller.js b/src/main/webapp/scripts/app/login/login.controller.js new file mode 100644 index 0000000..d6cba02 --- /dev/null +++ b/src/main/webapp/scripts/app/login/login.controller.js @@ -0,0 +1,143 @@ +'use strict'; + +define(['app', + 'angular' + ], + function (app, angular) { + app.controller('loginController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'Auth', 'UserHistory', '$uibModal', 'SweetAlert', '$cookies', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, Auth, UserHistory, $uibModal, SweetAlert, $cookies, $filter) { + $scope.fn = { + login: login, // 濡쒓렇�씤 + formCheck: formCheck, // �뤌 泥댄겕 + addSocial: addSocial, // �냼�뀥 �쉶�썝 媛��엯 + saveAccount: saveAccount, // �븘�씠�뵒 湲곗뼲�븯湲� + searchPassword: searchPassword, // 鍮꾨�踰덊샇 李얘린 + showNotice: showNotice + }; + + // showNotice(); + + function getCookie(name) { + var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); + return value? value[2] : null; + } + + function showNotice() { + var result = getCookie("popupYN"); + if (result == 'N') { + return; + } + else { + $uibModal.open({ + animation: true, + templateUrl: 'views/popup/notice.html', + windowClass: 'notice-modal', + controller: 'noticeModalController', + size: 'lg', + backdrop: false + }); + } + } + + $scope.vm = { + form: { + account: $rootScope.isDefined($cookies.get("account")) ? $cookies.get("account") : "", + password: "", + rememberMe: false + }, + authenticationError: false + }; + + + // �븘�씠�뵒 湲곗뼲�븯湲� + function saveAccount() { + if ($rootScope.isDefined($scope.vm.form.account)) { + $cookies.put("account", $scope.vm.form.account); + } + } + + // 鍮꾨�踰덊샇 李얘린 + function searchPassword() { + $uibModal.open({ + templateUrl: 'views/user/userPassword.html', + size: "md", + controller: 'userPasswordController', + backdrop: 'static' + }); + } + + // �냼�뀥 �쉶�썝 媛��엯 + function addSocial(type) { + var url = ""; + + switch (type) { + case "google" : + url = "views/login/google.html"; + location.href = url; + break; + case "naver" : + url = "views/login/naver.html"; + location.href = url; + break; + case "kakao" : + url = "views/login/kakao.html"; + location.href = url; + + break; + case "facebook": + url = "views/login/facebook.html"; + location.href = url; + break; + } + } + + // �뤌 泥댄겕 + function formCheck() { + if (!$rootScope.isDefined($scope.vm.form.account)) { + return true; + } + + if (!$rootScope.isDefined($scope.vm.form.password)) { + return true; + } + + if ($scope.vm.form.password.length < 4) { + return true; + } + + return false; + } + + // 濡쒓렇�씤 + function login() { + // �뿏�꽣�궎瑜� �궗�슜�븷 �븣 �뤌 泥댄겕 + if ($scope.fn.formCheck()) { + return; + } + + Auth.login({ + account: $rootScope.encryption($scope.vm.form.account), + password: CryptoJS.SHA512($scope.vm.form.password).toString(), + rememberMe: $scope.vm.form.rememberMe + }).then(function () { + $scope.vm.authenticationError = false; + AddLoginHistory(); + }).catch(function () { + $scope.vm.authenticationError = true; + }); + } + + function AddLoginHistory() { + UserHistory.addLoginHistory().then(function (result) { + if (result.data.message.status === "success") { + $rootScope.back(); + } + else { + $log.warn('addLoginHistory:', '(failed)insert login history'); + } + }); + } + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/login/login.js b/src/main/webapp/scripts/app/login/login.js new file mode 100644 index 0000000..bdee441 --- /dev/null +++ b/src/main/webapp/scripts/app/login/login.js @@ -0,0 +1,95 @@ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('login', { + url: "/login", + templateUrl: "views/login/login.html", + data: { + authorities: [] + }, + controller: "loginController", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["loginController", "userAddController", "userPasswordController", "inputRegex", "noticeModalController", "UserHistory"], function ( ) { + deferred.resolve(); + }); + + return deferred.promise; + }], + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('terms', { + url: "/terms", + templateUrl: "views/login/terms.html", + data: { + authorities: [] + }, + controller: "", + resolve : {} + }) + .state('join', { + url: "/join", + templateUrl: "views/user/userAdd.html", + data: { + authorities: [] + }, + controller: "userAddController", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["userAddController", "userPasswordController", "inputRegex"], function () { + deferred.resolve(); + }); + + return deferred.promise; + }], + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('superJoin', { + url: "/superJoin", + templateUrl: "views/user/superUserAdd.html", + data: { + authorities: [] + }, + controller: "userAddController", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["userAddController", "userPasswordController", "inputRegex"], function () { + deferred.resolve(); + }); + + return deferred.promise; + }], + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }); + }); + }); diff --git a/src/main/webapp/scripts/app/manageUser/manageUser.controller.js b/src/main/webapp/scripts/app/manageUser/manageUser.controller.js new file mode 100644 index 0000000..e4fdb9a --- /dev/null +++ b/src/main/webapp/scripts/app/manageUser/manageUser.controller.js @@ -0,0 +1,193 @@ +/** + * Created by wisestone on 2018-12-10. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('manageUserController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'ManageUser', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, ManageUser, $filter) { + + /* $scope.fn �긽�냽 以� */ + $scope.fn.getUserWorkspaceList = getUserWorkspaceList; // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 �젙蹂� + $scope.fn.makeTableConfigs = makeTableConfigs; // �뾽臾� 怨듦컙�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙 + $scope.fn.initSearch = initSearch; // 寃��깋 議곌굔 珥덇린�솕 + $scope.fn.changePageRowCount = changePageRowCount; // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� + + + /* $scope.vm �긽�냽 以� */ + $scope.vm.search = { + name : "", // �씠由� + account : "", // �씠硫붿씪 + statuses : [] // �긽�깭 - Y, N + }; + + $scope.vm.options = { + statuses : [{ + fieldKey : "Y", + fieldValue : $filter("translate")("managementWorkspace.participation") // "李몄뿬" + }, { + fieldKey : "N", + //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "李몄뿬��湲�" + fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "�깉�눜" + }] + }; + + $scope.vm.page = { + selectedPage : 0, + selectedPageRowCount : String(10) + }; + + $scope.vm.tableConfigs = []; + $scope.vm.responseData = { + data : [] + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.vm.tableEvent = { + modifyUserPermission : modifyUserPermission // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + }; + + function modifyUserPermission(uerPermission ) { + ManageUser.modify($resourceProvider.getContent( + uerPermission, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣" + } + }); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $scope.vm.search.name = ""; + $scope.vm.search.account = ""; + $scope.vm.search.statuses = ["Y"]; + $scope.fn.getUserWorkspaceList(0); + } + + // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� + function changePageRowCount() { + $scope.fn.getUserWorkspaceList(0); + } + + // �뾽臾닿났媛� �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.name") + .setHWidth("width-20-p") + .setDAlign("text-center") + .setDName("userName")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.email") + .setHWidth("width-40-p") + .setDAlign("text-center") + .setDName("account")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("manageUser.manageProjectPerm") + .setHWidth("width-20-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("PROJECT_SETTING_PERM_YN")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("manageUser.manageIssueSystemPerm") + .setHWidth("width-20-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("ISSUE_SETTING_PERM_YN")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("manageUser.manageUserPerm") + .setHWidth("width-20-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("USER_PERM_YN")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("manageUser.manageNoticePerm") + .setHWidth("width-20-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("NOTICE_PERM_YN")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("manageUser.manageFAQPerm") + .setHWidth("width-20-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("FAQ_PERM_YN")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("manageUser.manageQnAPerm") + .setHWidth("width-20-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("QNA_PERM_YN")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("manageUser.manageEventPerm") + .setHWidth("width-20-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("EVENT_PERM_YN")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("manageUser.manageGuidePerm") + .setHWidth("width-20-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDRenderer("GUIDE_PERM_YN")); + } + + // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 + function getUserWorkspaceList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + name : $scope.vm.search.name, + account : $scope.vm.search.account, + statuses : (function () { + var statuses = []; + statuses.push("Y"); + /* + angular.forEach($scope.vm.search.statuses, function (status) { + statuses.push(status.fieldKey); + }); + */ + return statuses; + })(), + }; + + ManageUser.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + //alert(result.data[0].userName); + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + $scope.fn.makeTableConfigs(); + $scope.fn.getUserWorkspaceList(); + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/manageUser/manageUser.js b/src/main/webapp/scripts/app/manageUser/manageUser.js new file mode 100644 index 0000000..90b3fdd --- /dev/null +++ b/src/main/webapp/scripts/app/manageUser/manageUser.js @@ -0,0 +1,44 @@ +/** + * Created by wisestone on 2018-02-13. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('manageuser', { + abstract : true, + url : "/manageUser", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('manageuser.manageuser', { + url : "/manageUser", + data : { + authorities : ['WORKSPACE_MANAGER'] + }, + templateUrl : 'views/manageUser/manageUser.html', + controller : "manageUserController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["modalFormAutoScroll", "manageUserController", "manageUserService", 'jsTable', 'tableColumnGenerator'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/notice/notice.js b/src/main/webapp/scripts/app/notice/notice.js new file mode 100644 index 0000000..e4bcba8 --- /dev/null +++ b/src/main/webapp/scripts/app/notice/notice.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('notices', { + abstract : true, + url : "/notices", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('notices.list', { + url : '/noticeList', + data : { + authorities : ['NOTICE_READ'] + }, + templateUrl : 'views/notice/noticeList.html', + controller : "noticeListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(['noticeListController', 'noticeAddController', 'noticeModifyController', 'noticeViewController', + 'noticeService', 'jsTable', 'tableColumnGenerator', 'formSubmit'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/notice/noticeAdd.controller.js b/src/main/webapp/scripts/app/notice/noticeAdd.controller.js new file mode 100644 index 0000000..358a662 --- /dev/null +++ b/src/main/webapp/scripts/app/notice/noticeAdd.controller.js @@ -0,0 +1,115 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('noticeAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Notice', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Notice, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + title : "", // �젣紐� + description : "" // �궡�슜 + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description) + }; + + Notice.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getNoticeList", {}); + } + else { + SweetAlert.error($filter("translate")("notice.failedNoticeRegistration"), result.data.message.message); + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/notice/noticeList.controller.js b/src/main/webapp/scripts/app/notice/noticeList.controller.js new file mode 100644 index 0000000..b7f0bed --- /dev/null +++ b/src/main/webapp/scripts/app/notice/noticeList.controller.js @@ -0,0 +1,172 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('noticeListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'Notice', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, Notice, SweetAlert, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + makeSearchConditions : makeSearchConditions, + add : add, // 怨듭��궗�빆 �벑濡� + }; + + // 蹂��닔 + $scope.vm = { + search : { + title : "" + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify, + view : view + }; + + // 怨듭��궗�빆 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getNoticeList", function () { + $scope.fn.getPageList(0); + }); + + // �궗�슜�옄 紐⑸줉 �떎�슫濡쒕뱶 諛쏄린 + function makeSearchConditions() { + return {}; + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.number") + .setHWidth("width-60-p bold") + .setDAlign("text-center") + .setDName("id")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.title") + .setHWidth("bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("NOTICE_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.registrationDate") + .setHWidth("width-100-p bold") + .setDAlign("text-center") + .setDName("registerDate")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.register") + .setHWidth("width-180-p bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("NOTICE_REGISTER")); + } + + // 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + title : $scope.vm.search.title + }; + + Notice.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("notice.failedToLookupNotificationList"), result.data.message.message); //怨듭� �궗�빆 紐⑸줉 議고쉶 �떎�뙣 + } + }); + } + + // 怨듭��궗�빆 �벑濡� + function add() { + $uibModal.open({ + templateUrl : 'views/notice/noticeAdd.html', + size : "md", + controller : 'noticeAddController', + backdrop : 'static' + }); + } + + // 怨듭��궗�빆 �닔�젙 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/notice/noticeModify.html', + size : "md", + controller : 'noticeModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // 怨듭��궗�빆 蹂닿린 + function view(title, description) { + $uibModal.open({ + templateUrl : 'views/notice/noticeView.html', + size : "lg", + controller : 'noticeViewController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + title : title, + description : description + }; + } + } + }); + } + + // �뀒�씠釉� �꽕�젙 + $scope.fn.makeTableConfigs(); + // 紐⑸줉 議고쉶 + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/notice/noticeModify.controller.js b/src/main/webapp/scripts/app/notice/noticeModify.controller.js new file mode 100644 index 0000000..b69a1db --- /dev/null +++ b/src/main/webapp/scripts/app/notice/noticeModify.controller.js @@ -0,0 +1,143 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('noticeModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Notice', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Notice, parameter, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� + }; + + $scope.vm = { + search : { + id : parameter.id + }, + form : { + id : parameter.id, + title : "", // �젣紐� + description : "" // �궡�슜 + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id, + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description) + }; + + Notice.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getNoticeList", {}); + } + else { + SweetAlert.error($filter("translate")("notice.failedToModifyNotice"), result.data.message.message); //怨듭� �궗�빆 �닔�젙 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �긽�꽭 議고쉶 + function detail() { + Notice.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if ($rootScope.isDefined(result.data.data)) { + $scope.vm.form.title = result.data.data.title; + $scope.vm.form.description = result.data.data.description; + } + } + else { + SweetAlert.error($filter("translate")("notice.failedToLookupNotificationDetails"), result.data.message.message); //怨듭��궗�빆 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣 + } + }); + } + + // 怨듭��궗�빆 �긽�꽭 議고쉶 + $scope.fn.detail(); + }]); + }); diff --git a/src/main/webapp/scripts/app/notice/noticeView.controller.js b/src/main/webapp/scripts/app/notice/noticeView.controller.js new file mode 100644 index 0000000..c89ecec --- /dev/null +++ b/src/main/webapp/scripts/app/notice/noticeView.controller.js @@ -0,0 +1,32 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('noticeViewController', ['$scope', '$log', '$rootScope', '$uibModalInstance', 'parameter', + function ($scope, $log, $rootScope, $uibModalInstance, parameter) { + + $scope.fn = { + cancel : cancel // �뙘�뾽 李� �떕湲� + }; + + $scope.vm = { + viewer : { + title : parameter.title, + description : parameter.description + } + }; + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + }]); + }); diff --git a/src/main/webapp/scripts/app/popup/noticeModal.controller.js b/src/main/webapp/scripts/app/popup/noticeModal.controller.js new file mode 100644 index 0000000..122314d --- /dev/null +++ b/src/main/webapp/scripts/app/popup/noticeModal.controller.js @@ -0,0 +1,42 @@ +'use strict'; + +define(['app', + 'angular', + ], + function (app, angular) { + app.controller('noticeModalController', ['$scope', '$rootScope', '$log', '$uibModal', '$uibModalInstance', + function ($scope, $rootScope, $log, $uibModal, $uibModalInstance) { + $scope.notcieModel = { + isChecked : false + }; + + $scope.fn = { + closeModal : closeModal // �뙘�뾽李� �떕湲� + }; + + $scope.vm = { + form : { + account : "" + } + }; + + // �떕湲� + function closeModal(is) { + if ($scope.notcieModel.isChecked) { + setCookie("popupYN", 'N', 1); + } + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + } + + function setCookie(name, value, expiredays) { + var date = new Date(); + date.setDate(date.getDate() + expiredays); + var str = escape(name) + "=" + escape(value) + "; expires=" + date.toUTCString(); + console.log(str); + document.cookie = str; + } + } + ]) + } +); diff --git a/src/main/webapp/scripts/app/project/project.js b/src/main/webapp/scripts/app/project/project.js new file mode 100644 index 0000000..55969fa --- /dev/null +++ b/src/main/webapp/scripts/app/project/project.js @@ -0,0 +1,46 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('projects', { + abstract : true, + url : "/projects", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('projects.list', { + url : '/projectList', + data : { + authorities : ['PROJECT_READ'] + }, + templateUrl : 'views/project/projectList.html', + controller : "projectTabController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["projectTabController", "projectListController", "projectTimelineController", 'projectAddController', 'projectModifyController', 'textUpperString', 'workflowService', 'projectCustomFieldConfigController', + 'chartLoader', 'bootstrapDateRangePicker', 'moment', 'dateRangePicker', 'modalFormAutoScroll', 'jsTable', 'tableColumnGenerator', 'issueTypeService', 'customFieldService', 'tableUserImage', + 'issueTypeCustomFieldService', 'owlProjectKey', 'formSubmit', 'jsShortCut', 'inputRegex'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/project/projectAdd.controller.js b/src/main/webapp/scripts/app/project/projectAdd.controller.js new file mode 100644 index 0000000..a729af7 --- /dev/null +++ b/src/main/webapp/scripts/app/project/projectAdd.controller.js @@ -0,0 +1,135 @@ +/** + * Created by wisestone on 2017-12-15. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app,angular) { + app.controller('projectAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', '$uibModalInstance', 'Project', 'SweetAlert', '$injector', '$controller', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, User, $uibModalInstance, Project, SweetAlert, $injector, $controller, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + removeUsr : removeUsr, // �씪諛� �궗�슜�옄 �젣嫄� + }; + + $scope.vm = { + form : { + name : "", // �봽濡쒖젥�듃 紐� + projectKey : "", // �봽濡쒖젥�듃 �궎 + status : "02", // �긽�깭 + projectType : "BTS_PROJECT", // �봽濡쒖젥�듃 �쑀�삎 + projects : [], // �긽�쐞 �봽濡쒖젥�듃 + startEndDateRange : "", // �떆�옉�씪, 醫낅즺�씪 �젙蹂� + startDate : "", + endDate : "", + description : "", // �꽕紐� + managers : [{ + id : $rootScope.user.id + }], // 愿�由ъ옄 + users : [], // �씪諛� �궗�슜�옄 + }, + userName : "", // �씪諛� �궗�슜�옄 �씠由� 寃��깋 + projectName : "", // �긽�쐞 �봽濡쒖젥�듃 �씠由� 寃��깋 + autoCompletePage : { + project : { + page : 0, + totalPage : 0 + } + }, + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + init(); + + // �긽�쐞 �봽濡쒖젥�듃�뿉�꽌 �옄湲곗옄�떊�� �꽑�깮 �븞�릺�룄濡� �꽕�젙 + function init() { + $scope.vm.form.projects = []; + if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { + $scope.vm.form.projects.push($rootScope.workProject); + $scope.vm.projectName = $rootScope.workProject.name; + } + } + + // ���썝 �궘�젣 + function removeUsr(index) { + $scope.vm.form.users.splice(index, 1); + } + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if (!$rootScope.isDefined($scope.vm.form.startEndDateRange)) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + name : $rootScope.preventXss($scope.vm.form.name), + projectKey : $scope.vm.form.projectKey, + projectType : $scope.vm.form.projectType, + parentProjectId : $scope.vm.projectName != null && $scope.vm.projectName.length > 0 ? $scope.vm.form.projects[0].id : null, + status : $scope.vm.form.status, + startDate : "", + endDate : "", + description : $rootScope.preventXss($scope.vm.form.description), + managerIds : (function () { + var managerIds = []; + angular.forEach($scope.vm.form.managers, function (user) { + managerIds.push(user.id); + }); + return managerIds; + })(), + userIds : (function () { + var userIds = []; + angular.forEach($scope.vm.form.users, function (user) { + userIds.push(user.id); + }); + return userIds; + })() + }; + + if ($rootScope.isDefined($scope.vm.form.startEndDateRange)) { + var startEndDateRange = $scope.vm.form.startEndDateRange.split("~"); + content.startDate = startEndDateRange[0].trim(); + content.endDate = startEndDateRange[1].trim(); + } + + Project.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + $rootScope.user.lastProjectId = result.data.data.id; + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getProjectList", {}); + } + else { + SweetAlert.error($filter("translate")("project.failedProjectCreation"), result.data.message.message); // "�봽濡쒖젥�듃 �깮�꽦 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js b/src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js new file mode 100644 index 0000000..58f20f5 --- /dev/null +++ b/src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js @@ -0,0 +1,185 @@ +/** + * Created by wisestone on 2018-05-30. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('projectCustomFieldConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'IssueType', 'CustomField', 'IssueTypeCustomField', 'SweetAlert', 'parameter', '$q', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, IssueType, CustomField, IssueTypeCustomField, SweetAlert, parameter, $q, $filter) { + + $scope.fn = { + cancel : cancel, + formSubmit : formSubmit, + formCheck : formCheck, + getIssueTypes : getIssueTypes, + getCustomFields : getCustomFields, + startExecute : startExecute, + issueTypeChange : issueTypeChange, + activeSortable : activeSortable(), + }; + + $scope.vm = { + form : { + issueTypeId : "" + }, + issueTypes : [], + originCustomFields : [], + customFields : [], + relationCustomFields : [] + }; + + // �씠�뒋 �쑀�삎 紐⑸줉�쓣 媛��졇�삩�떎. + function getIssueTypes() { + var deferred = $q.defer(); + + IssueType.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueTypes = result.data.data; + } + else { + SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // "�씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣" + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉�쓣 媛��졇�삩�떎. + function getCustomFields() { + var deferred = $q.defer(); + + CustomField.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 1000))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.customFields = result.data.data; + + $scope.vm.originCustomFields = angular.copy(result.data.data); // �궗�슜�옄 �젙�쓽 �븘�뱶 蹂듦뎄�뿉 �궗�슜 + } + else { + SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message, "error"); // "�궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣" + } + + deferred.resolve(result.data.data); + }); + + return deferred.promise; + } + + // �씠�뒋 �쑀�삎�쓣 蹂�寃쏀븯硫� �봽濡쒖젥�듃�뿉�꽌 �궗�슜�븯�뒗 �빐�떦 �씠�뒋 �쑀�삎怨� �뿰寃곕맂 �븘�뱶 �젙蹂대�� 議고쉶�븳�떎. + function issueTypeChange() { + $scope.vm.customFields = []; // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 珥덇린�솕 + $scope.vm.relationCustomFields = []; + + if (!$rootScope.isDefined($scope.vm.form.issueTypeId)) { + return; + } + + var content = { + projectId : parameter.id, + issueTypeId : $scope.vm.form.issueTypeId + }; + + IssueTypeCustomField.find($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + // �솕硫댁뿉�꽌 �씠由꾩쓣 �몴�떆�븯湲� �쐞�빐 �궗�슜�옄 �젙�쓽 �븘�뱶 紐낆쓣 name �뿉 �뀑�똿�븳�떎. + angular.forEach(result.data.data, function (issueTypeCustomField) { + var relationCustomField = angular.copy(issueTypeCustomField.customFieldVo); + relationCustomField.checked = issueTypeCustomField.fieldOption == '01'; // �븘�닔 媛� �뿬遺� + $scope.vm.relationCustomFields.push(relationCustomField); + }); + + angular.forEach($scope.vm.originCustomFields, function (originCustomField) { + var search = false; + + for (var count in $scope.vm.relationCustomFields) { + var relationCustomField = $scope.vm.relationCustomFields[count]; + + if (originCustomField.id === relationCustomField.id) { + search = true; + break; + } + } + + if (!search) { + $scope.vm.customFields.push(originCustomField); + } + }); + } + else { + SweetAlert.swal($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message, "error"); // "�궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + // �뱶�옒洹�&�뱶�엻�쓣 �솢�꽦�솕 �떆�궓�떎. - �빐�떦 硫붿꽌�뱶瑜� 媛숈씠 �궗�슜�븯硫� �뿕由щ㉫�듃�뱾�쓽 �씠�룞�뿉 �젣�빟�씠 �뾾�떎. + function activeSortable() { + return { + connectWith : ".connectList", + stop : function (e, ui) { + + } + } + } + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + projectId : parameter.id, + issueTypeId : $scope.vm.form.issueTypeId, + relationCustomFields : $scope.vm.relationCustomFields + }; + + IssueTypeCustomField.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + SweetAlert.success($filter("translate")("project.saveCompleteFieldManagement"), $filter("translate")("project.saveUserDefinedFieldAndIssueTypeConnection")); // "�븘�뱶 愿�由� ���옣 �셿猷�", "�궗�슜�옄 �젙�쓽 �븘�뱶�� �씠�뒋 ���엯 �뿰寃� �젙蹂닿� ���옣�릺�뿀�뒿�땲�떎." + } + else { + SweetAlert.error($filter("translate")("project.failedToSaveFieldManagement"), result.data.message.message); // "�븘�뱶 愿�由� ���옣 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + } + + function startExecute() { + var promises = { + getIssueTypes : $scope.fn.getIssueTypes(), + getCustomFields : $scope.fn.getCustomFields() + }; + + $q.all(promises).then(function (results){ + $log.debug("promises 寃곌낵 " , results); + }); + } + + $scope.fn.startExecute(); + }]); + }); diff --git a/src/main/webapp/scripts/app/project/projectList.controller.js b/src/main/webapp/scripts/app/project/projectList.controller.js new file mode 100644 index 0000000..f6f68c5 --- /dev/null +++ b/src/main/webapp/scripts/app/project/projectList.controller.js @@ -0,0 +1,378 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app', + 'angular', + ], + function (app, angular) { + app.controller('projectListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', 'User', '$state', '$uibModal', '$q', 'Project', '$controller', '$injector', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, User, $state, $uibModal, $q, Project, $controller, $injector, SweetAlert, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + changePageRowCount : changePageRowCount, // �럹�씠吏� 蹂�寃� + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + getUserListCallBack : getUserListCallBack, // single autocomplete 肄쒕갚 �븿�닔 + makeSearchConditions : makeSearchConditions, // �봽濡쒖젥�듃 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎. + add : add, // �봽濡쒖젥�듃 �깮�꽦 + removes : removes, // �궘�젣, + setViewSub : setViewSub + }; + + // 蹂��닔 + $scope.vm = { + search : { + name : "", // �봽濡쒖젥�듃 紐� + userIds : [], // 愿�由ъ옄 + statuses : [], // �긽�깭 + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + }, + userName : "", + users : [], + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + } + }, + options : { + statuses : [{ + fieldKey : "01", + fieldValue : $filter("translate")("common.wait") // "��湲�" + }, { + fieldKey : "02", + fieldValue : $filter("translate")("common.progress") // "吏꾪뻾" + }, { + fieldKey : "03", + fieldValue : $filter("translate")("common.end") // "醫낅즺" + }] + }, + projects : [], // �봽濡쒖젥�듃 + projectName : "", // �봽濡쒖젥�듃 寃��깋 + viewSub : true, // �븯�쐞 �봽濡쒖젥�듃 蹂닿린 �뿬遺� + childCount : 0 // �븯�쐞 �봽濡쒖젥�듃 媛쒖닔 + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify, + projectCustomFieldConfig : projectCustomFieldConfig, + changeLastProject : changeLastProject + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �봽濡쒖젥�듃 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getProjectList", function () { + $scope.fn.getPageList(0); + }); + + // �봽濡쒖젥�듃 紐⑸줉 �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setDType("checkbox") + .setHWidth("width-40-p") + .setDAlign("text-center")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.status") + .setDType("renderer") + .setHWidth("width-50-p bold") + .setDAlign("text-center") + .setDRenderer("PROJECT_STATUS")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.project") + .setHWidth("width-200-p bold ") + .setDType("renderer") + .setDName("name") + .setDAlign("text-left") + .setDRenderer("PROJECT_NAME")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("dashboard.admin") + .setHWidth("width-60-p bold") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("PROJECT_MANAGER")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("dashboard.teamMember") + .setHWidth("width-140-p bold") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("PROJECT_USER")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.period") + .setHWidth("width-120-p bold") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("PROJECT_DUE_DATE")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("project.projectKey") + .setHWidth("width-100-p bold") + .setDAlign("text-center") + .setDName("projectKey")); + + if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_PROJECT')) { + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.customField") + .setDType("renderer") + .setHWidth("width-80-p bold") + .setDAlign("text-center") + .setDRenderer("CUSTOM_FIELD_CONFIG")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("project.modifyProject") + .setDType("renderer") + .setHWidth("width-60-p bold") + .setDAlign("text-center") + .setDRenderer("BUTTON_MODIFY")); + } + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �봽濡쒖젥�듃 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + return { + name : $scope.vm.search.name, + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.users, function (leader) { + userIds.push(leader.id); + }); + + return userIds; + })(), + statuses : (function () { + var statuses = []; + + angular.forEach($scope.vm.search.statuses, function (status) { + statuses.push(status.fieldKey); + }); + + return statuses; + })(), + roleTypes : ["01", "02"], + workspaceManager : true // �봽濡쒖젥�듃 紐⑸줉�뿉�꽌 議고쉶�븷 �븣 �뾽臾닿났媛� �떞�떦�옄�뒗 紐⑤뱺 �빆紐⑹씠 蹂댁씪�닔 �엳�룄濡� �븳�떎. + }; + } + + // �봽濡쒖젥�듃 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = $scope.fn.makeSearchConditions(); + + Project.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.childCount = 0; + $scope.vm.page.selectedPage = currentPage + 1; + if ($scope.vm.viewSub) { + var arr = result.data; + var datas = []; + + for (var row of arr.data) { + row.depth = 0; + datas.push(row); + datas = setChildren(row, datas, row.depth); + } + arr.data = datas; + $scope.vm.responseData = arr; + } else { + $scope.vm.responseData = result.data; + } + } + else { + SweetAlert.swal($filter("translate")("project.failedToProjectListLookup"), result.data.message.message, "error"); // "�봽濡쒖젥�듃 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + } + + function setChildren(row, datas, depth) { + depth++; + var childProjects = row.childProjects; + if (childProjects.length > 0) { + for (var child of childProjects) { + child.depth = depth; + datas.push(child); + $scope.vm.childCount += 1; + + setChildren(child, datas, depth); + } + } + return datas; + } + + + function changePageRowCount() { + $scope.fn.getPageList(0); + } + + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + // �봽濡쒖젥�듃 �깮�꽦 �뙘�뾽 + function add() { + $uibModal.open({ + templateUrl : 'views/project/projectAdd.html', + size : "md", + controller : 'projectAddController', + backdrop : 'static' + }); + } + + // �봽濡쒖젥�듃 �닔�젙 �뙘�뾽 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/project/projectModify.html', + size : "md", + controller : 'projectModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �븘�뱶 愿�由� + function projectCustomFieldConfig(id) { + $uibModal.open({ + templateUrl : 'views/project/projectCustomFieldConfig.html', + size : "md", + controller : 'projectCustomFieldConfigController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �봽濡쒖젥�듃 �궘�젣 �뙘�뾽 + function removes() { + var removeIds = []; + var removePermission = true; + + angular.forEach($scope.vm.responseData.data, function (data) { + if (data.checked && data.modifyPermissionCheck) { + removeIds.push(data.id); + } + + if (data.checked && !data.modifyPermissionCheck) { + removePermission = false; + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("project.notHaveDeletePermissionExistsProject"), // "�궘�젣 沅뚰븳�씠 �뾾�뒗 �봽濡쒖젥�듃媛� 議댁옱�빀�땲�떎." + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("project.deleteProject"), // "�봽濡쒖젥�듃 �궘�젣" + text : $filter("translate")("project.wantToDeleteSelectProject"), // "�꽑�깮�븳 �봽濡쒖젥�듃瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �봽濡쒖젥�듃�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎." + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + if (isConfirm) { + $rootScope.spinner = true; + + Project.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getProjectList", {}); + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + + } + + function setViewSub() { + $scope.fn.getPageList(0); + } + + function changeLastProject(projectId) { + $rootScope.changeLastProject(projectId); + } + + $scope.fn.makeTableConfigs(); + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/project/projectModify.controller.js b/src/main/webapp/scripts/app/project/projectModify.controller.js new file mode 100644 index 0000000..0342053 --- /dev/null +++ b/src/main/webapp/scripts/app/project/projectModify.controller.js @@ -0,0 +1,196 @@ +/** + * Created by wisestone on 2018-01-03. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('projectModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', '$uibModalInstance', 'Project', '$injector', '$controller', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, User, $uibModalInstance, Project, $injector, $controller, parameter, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail, // �긽�꽭 �젙蹂� 議고쉶 + removeUsr : removeUsr, // �씪諛� �궗�슜�옄 �젣嫄� + removeManager : removeManager, // 愿�由ъ옄 �젣嫄� + getManagerListCallBack : getManagerListCallBack, // 愿�由ъ옄 auto complete callback function + getProjectListCallBack : getProjectListCallBack // �봽濡쒖젥�듃 auto complete callback function + }; + + $scope.vm = { + search : { + id : parameter.id, + deep : "01" // �봽濡쒖젥�듃 �뿰愿��맂 紐⑤뱺 �젙蹂대�� �뼱�뒓�젙�룄源뚯� 媛��졇�삱吏� 寃곗젙, 01 - �궗�슜�옄, 愿�由ъ옄 �젙蹂� + }, + form : { + id : parameter.id, + name : "", + projects : [], // �쑀�� 由ъ뒪�듃 寃��깋�슜 + parentProjects : [], // �긽�쐞�봽濡쒖젥�듃 �슜 + status : "", + startDate : "", + endDate : "", + description : "", + managers : [], // 愿�由ъ옄 + users : [], // �씪諛� �궗�슜�옄 + startEndDateRange : "" + }, + managerName : "", // 愿�由ъ옄 �씠由� 寃��깋 + userName : "", // �씪諛� �궗�슜�옄 �씠由� 寃��깋 + projectName : "", // �긽�쐞 �봽濡쒖젥�듃 �씠由� 寃��깋 + autoCompletePage : { + manager : { + page : 0, + totalPage : 0 + }, + project : { + page : 0, + totalPage : 0 + } + } + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + init(); + + // �긽�쐞 �봽濡쒖젥�듃�뿉�꽌 �옄湲곗옄�떊�� �꽑�깮 �븞�릺�룄濡� �꽕�젙 + function init() { + $scope.vm.form.parentProjects = []; + if ($rootScope.workProject != null) { + $scope.vm.form.parentProjects.push($rootScope.workProject); + } + } + + // ���썝 �궘�젣 + function removeUsr(index) { + $scope.vm.form.users.splice(index, 1); + } + + // 愿�由ъ옄 �궘�젣 + function removeManager(index) { + $scope.vm.form.managers.splice(index, 1); + $scope.vm.managerName = ""; + } + + // 愿�由ъ옄 紐⑸줉 議고쉶 + function getManagerListCallBack(result) { + $scope.vm.autoCompletePage.manager.totalPage = result.data.page.totalPage; + } + + function getProjectListCallBack(result) { + $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; + } + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.startEndDateRange == "") { + return true; + } + + if ($scope.vm.form.managers.length < 1) { + return true; + } + + + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : $scope.vm.form.id, + parentProjectId : $scope.vm.projectName.length > 0 && $scope.vm.projectName == $scope.vm.form.parentProjects[0].name ? $scope.vm.form.parentProjects[0].id : null, + name : $rootScope.preventXss($scope.vm.form.name), + status : $scope.vm.form.status, + startDate : "", + endDate : "", + description : $rootScope.preventXss($scope.vm.form.description), + managerIds : (function () { + var managerIds = []; + angular.forEach($scope.vm.form.managers, function (user) { + managerIds.push(user.id); + }); + return managerIds; + })(), + userIds : (function () { + var userIds = []; + angular.forEach($scope.vm.form.users, function (user) { + userIds.push(user.id); + }); + return userIds; + })() + }; + + var startEndDateRange = $scope.vm.form.startEndDateRange.split("~"); + content.startDate = startEndDateRange[0].trim(); + content.endDate = startEndDateRange[1].trim(); + + Project.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getProjectList", {}); + } + else { + SweetAlert.error($filter("translate")("project.failedToModifyProject"), result.data.message.message); //"�봽濡쒖젥�듃 �닔�젙 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + function detail() { + Project.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (angular.isDefined(result.data.data)) { + $scope.vm.form.name = result.data.data.name; + $scope.vm.form.status = result.data.data.status; + $scope.vm.form.startEndDateRange = result.data.data.startDate + " ~ " + result.data.data.endDate; + $scope.vm.form.description = result.data.data.description; + $scope.vm.form.managers = result.data.data.projectManagerVos; + $scope.vm.form.users = result.data.data.projectUserVos; + + if (result.data.data.parentProjectVo != null) { + $scope.vm.form.parentProjects = []; + $scope.vm.form.parentProjects.push(result.data.data.parentProjectVo); + $scope.vm.projectName = result.data.data.parentProjectVo.name; + } + } + } + else { + SweetAlert.error($filter("translate")("project.failedToProjectDetails"), result.data.message.message); //"�봽濡쒖젥�듃 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣" + } + }); + } + + function getStartProjectListCallback(result){ + // �봽濡쒖젥�듃 autocomplete page �뾽�뜲�씠�듃 + $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; + } + + $scope.fn.detail(); + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/project/projectTab.controller.js b/src/main/webapp/scripts/app/project/projectTab.controller.js new file mode 100644 index 0000000..b579158 --- /dev/null +++ b/src/main/webapp/scripts/app/project/projectTab.controller.js @@ -0,0 +1,47 @@ +/** + * Created by maprex on 2021-06-17 + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('projectTabController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $filter) { + + $scope.fn = { + changeTab : changeTab, // �꺆 蹂�寃� + add : add + }; + + $scope.vm = { + tab : "PROJECT_LIST" // �뾽臾� 怨듦컙 �젙蹂닿� 湲곕낯 �꺆 + }; + + + // �봽濡쒖젥�듃 �깮�꽦 �뙘�뾽 + function add() { + $uibModal.open({ + templateUrl : 'views/project/projectAdd.html', + size : "md", + controller : 'projectAddController', + backdrop : 'static' + }); + } + + + // �꺆 蹂�寃� + function changeTab(tab) { + $scope.vm.tab = tab; + + if (tab === "PROJECT_TIMELINE") { + $rootScope.$broadcast("changeProjectChartTab"); + } else if (tab === "PROJECT_LIST") { + $rootScope.$broadcast("changeProjectListTab"); + } + } + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/project/projectTimeline.controller.js b/src/main/webapp/scripts/app/project/projectTimeline.controller.js new file mode 100644 index 0000000..09e3814 --- /dev/null +++ b/src/main/webapp/scripts/app/project/projectTimeline.controller.js @@ -0,0 +1,329 @@ +/** + * Created by maprex on 2021-06-17 + */ + +'use strict'; + +define([ + 'app', 'angular' + ], + function (app, angular) { + app.controller('projectTimelineController', ['$scope', '$rootScope', '$log', '$q', '$resourceProvider', '$controller', '$injector', 'Gantt', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $q, $resourceProvider, $controller, $injector, Gantt, SweetAlert, $filter) { + $scope.fn = { + getPageList : getPageList, // 紐⑸줉�쓣 議고쉶�븳�떎. + makeSearchConditions : makeSearchConditions, // 寃��깋議곌굔�쓣 媛��졇�샂 + startExecute : startExecute, + initSearch : initSearch + }; + + $scope.vm = { + search : { + name : "", // �봽濡쒖젥�듃 紐� + userIds : [], // 愿�由ъ옄 + statuses : [], // �긽�깭 + }, + arrProjects : [], // �봽濡쒖젥�듃 諛곗뿴 + projectIssues : new Object(), // �봽濡쒖젥�듃 �쟾泥� �씠�뒋 + projectCompleteIssues : new Object(), // �봽濡쒖젥�듃 �셿猷� �씠�뒋 + searchView : false, // �긽�꽭 寃��깋 議곌굔 �몴�떆 �뿬遺� + detailView : false, // �긽�꽭 紐⑤뱶 蹂�寃� 媛� + tableConfigs : [], // �뀒�씠釉� �뀑�똿 �젙蹂� + responseData : { + data : [] + }, + projectName : "", // �봽濡쒖젥�듃 寃��깋 + projects : [], // �봽濡쒖젥�듃 + page : { + selectedPage : 0, + selectedPageRowCount : String(99999) + }, + options : { + statuses : [{ + fieldKey : "01", + fieldValue : $filter("translate")("common.wait") // "��湲�" + }, { + fieldKey : "02", + fieldValue : $filter("translate")("common.progress") // "吏꾪뻾" + }, { + fieldKey : "03", + fieldValue : $filter("translate")("common.end") // "醫낅즺" + }] + }, + useGantt : false, + chart : null // 媛꾪듃李⑦듃 + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + $scope.init = function () { + var workProjects = $rootScope.projects; + workProjects.forEach(project => { + if (project.id > 0) { + $scope.vm.projects.push(project); + } + }); + + $scope.fn.startExecute(); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + var conditions = { + name: $scope.vm.search.name, + statuses : (function () { + var statuses = []; + + angular.forEach($scope.vm.search.statuses, function (status) { + statuses.push(status.fieldKey); + }); + + return statuses; + })(), + } + + return conditions; + } + + function drawGanttChart(useProject = false) { + google.charts.load('current', {'packages':['gantt'], 'language': 'ko'}); + google.charts.setOnLoadCallback(drawChart); + } + + function toMilliseconds(minutes) { + return minutes * 60 * 1000; + } + + // 寃��깋議곌굔�뿉�꽌 �빐�떦 �봽濡쒖젥�듃 李얘린 + function findProjectSearch(projectId) { + var projects = $scope.vm.projects; + var find = false; + + for (let i = 0; i < projects.length; i++) { + if (projects[i].id == projectId) { + find = true; + break; + } + } + return find; + } + + function getPageList(selectedPage) { + + if (chart != null) + chart.clearChart(); + + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // $rootScope.spinner = true; + + // �쁽�옱 �꽑�깮�맂 �봽濡쒖젥�듃瑜� 寃��깋 湲곕낯�쑝濡� 異붽� + if ($rootScope.workProject != null && $rootScope.workProject.id > -1) { + var find = findProjectSearch($rootScope.workProject.id); + if (!find) { + $scope.vm.projects.push($rootScope.workProject); + } + } + + var conditions = $scope.fn.makeSearchConditions(); + + Gantt.findProject($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + drawGanttChart(); + } + else { + //SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣 + } + }); + } + + // �봽濡쒖젥�듃由ъ뒪�듃�뿉 �빐�떦 �븘�씠�뵒媛� 議댁옱�븯�뒗吏� �뿬遺� �솗�씤 + function containsIssue(projectId) { + return projectId in $scope.vm.projectIssues; + } + + var chart; + var otherData; + var options; + + function drawChart() { + var responseData = $scope.vm.responseData; + var page = responseData.page; + + otherData = new google.visualization.DataTable(); + otherData.addColumn('string', 'Task ID'); + otherData.addColumn('string', 'Task Name'); + otherData.addColumn('string', 'Resource'); + otherData.addColumn('date', '�떆�옉'); + otherData.addColumn('date', '醫낅즺'); + otherData.addColumn('number', '湲곌컙'); + otherData.addColumn('number', '吏꾪뻾�쑉'); + otherData.addColumn('string', '�긽�쐞�봽濡쒖젥�듃'); + var data = responseData.data; + + var trackHeight = 35; + var bottomHeight = 50; + + $scope.vm.arrProjects = []; + $scope.vm.projectIssues = new Object(); + if (page.totalCount > 0) { + data.forEach(el => { + addIssue(el.projectId, el); + }); + + for (const [key, value] of Object.entries($scope.vm.projectIssues)) { + var projectObj = $rootScope.findProject(key); + if (projectObj != null) { + var issues = $scope.vm.projectIssues[key]; + var completeIssues = $scope.vm.projectCompleteIssues[key]; + var start = null; + if (projectObj.startDate != null) { + start = new Date(projectObj.startDate); + start.setHours(0, 0, 0); + } + + var end = null; + if (projectObj.endDate != null) { + end = new Date(projectObj.endDate); + end.setHours(23, 59, 59); + } + + var duration = 0; + if (start != null && end != null) { + duration = end.getTime() - start.getTime(); + } + + var percent = 0; + var endCount = completeIssues == null ? 0 : completeIssues.length.toFixed(2); + var totalCount = issues == null ? 0 : issues.length; + if (totalCount > 0) { + percent = parseInt(endCount / totalCount * 100.0); + } + + var depend = null; + if (projectObj.parentProjectId != null && containsIssue(projectObj.parentProjectId)) { + depend = String(projectObj.parentProjectId); + } + + $scope.vm.arrProjects.push(projectObj.id); + otherData.addRow([String(projectObj.id), projectObj.name, String(projectObj.id), start, end, duration, percent, depend]); + } + } + + $scope.vm.useGantt = true; + } else { + otherData.addRow(["none", "�씪媛먯씠 �뾾�뒿�땲�떎", "none", new Date(), null, toMilliseconds(0), 100, null]); + $scope.vm.useGantt = false; + } + + var dataCount = $scope.vm.arrProjects.length; + var chartHeight = dataCount * trackHeight + bottomHeight; + + options = { + gantt: { + defaultStartDate : new Date(), + barHeight : 18, + barCornerRadius : 1, + criticalPathEnabled: true, // Critical path arrows will be the same as other arrows. + arrow: { + angle: 50, + width: 1, + color: '#0066cc', + radius: 2 + }, + labelStyle: { + fontName: 'NanumSquare', + fontSize: 12, + color: '#d5c209' + }, + trackHeight : trackHeight + }, + height: chartHeight, + animation: {"startup": true} + }; + + var container = document.getElementById('chart_div'); + if (container == null) { + return; + } + chart = new google.visualization.Gantt(container); + + hideChartTooltip(container, chart); + + google.visualization.events.addListener(chart, 'onmouseover', function (e) { + }); + + google.visualization.events.addListener(chart, 'click', function() { + }); + + google.visualization.events.addListener(chart, 'select', function() { + var selection = chart.getSelection(); + $rootScope.changeLastProject($scope.vm.arrProjects[selection[0].row]); + }); + + window.addEventListener('resize', function() { chart.draw(otherData, options); }, false); //�솕硫� �겕湲곗뿉 �뵲�씪 洹몃옒�봽 �겕湲� 蹂�寃� + chart.draw(otherData, options); + + } + + + // �씠�뒋瑜� 諛곗뿴�뿉 異붽� + function addIssue(projectId, issue) { + if ($scope.vm.projectCompleteIssues[projectId] == null) + $scope.vm.projectCompleteIssues[projectId] = []; + + if ($scope.vm.projectIssues[projectId] == null) + $scope.vm.projectIssues[projectId] = []; + + if (issue.issueStatusType == "CLOSE") { + $scope.vm.projectCompleteIssues[projectId].push(issue); + } + $scope.vm.projectIssues[projectId].push(issue); + } + + // google chart 湲곕낯 tooltip 媛�由ш린 + function hideChartTooltip(container, chart) { + google.visualization.events.addOneTimeListener(chart, 'ready', function () { + var observer = new MutationObserver(function (nodes) { + Array.prototype.forEach.call(nodes, function(node) { + if (node.addedNodes.length > 0) { + Array.prototype.forEach.call(node.addedNodes, function(addedNode) { + if ((addedNode.tagName === 'rect') && (addedNode.getAttribute('fill') === 'white')) { + addedNode.setAttribute('fill', 'transparent'); + addedNode.setAttribute('stroke', 'transparent'); + Array.prototype.forEach.call(addedNode.parentNode.getElementsByTagName('text'), function(label) { + label.setAttribute('fill', 'transparent'); + }); + } + }); + } + }); + }); + observer.observe(container, { + childList: true, + subtree: true + }); + }); + } + + function startExecute() { + $scope.fn.getPageList(); + } + + $rootScope.$on('changeProjectChartTab', function(evt) { + if (chart != null) { + $scope.fn.startExecute(); + } + }); + }]); + }); diff --git a/src/main/webapp/scripts/app/qna/qna.js b/src/main/webapp/scripts/app/qna/qna.js new file mode 100644 index 0000000..a6d8d3c --- /dev/null +++ b/src/main/webapp/scripts/app/qna/qna.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('qna', { + abstract : true, + url : "/qnas", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('qna.list', { + url : '/qnaList', + data : { + authorities : ['NOTICE_READ'] + }, + templateUrl : 'views/qna/qnaList.html', + controller : "qnaListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(['qnaListController', 'qnaAddController', 'qnaModifyController', 'qnaViewController', + 'qnaService', 'jsTable', 'tableColumnGenerator', 'formSubmit'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/qna/qnaAdd.controller.js b/src/main/webapp/scripts/app/qna/qnaAdd.controller.js new file mode 100644 index 0000000..25867a9 --- /dev/null +++ b/src/main/webapp/scripts/app/qna/qnaAdd.controller.js @@ -0,0 +1,115 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('qnaAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Qna', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Qna, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + title : "", // �젣紐� + description : "" // �궡�슜 + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description) + }; + + Qna.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getQnaList", {}); + } + else { + SweetAlert.error($filter("translate")("qna.registerQNA"), result.data.message.message); + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/qna/qnaList.controller.js b/src/main/webapp/scripts/app/qna/qnaList.controller.js new file mode 100644 index 0000000..0d1a134 --- /dev/null +++ b/src/main/webapp/scripts/app/qna/qnaList.controller.js @@ -0,0 +1,172 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('qnaListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'Qna', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, Qna, SweetAlert, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + makeSearchConditions : makeSearchConditions, + add : add, // qna �벑濡� + }; + + // 蹂��닔 + $scope.vm = { + search : { + title : "" + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify, + view : view, + }; + + // qna 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getQnaList", function () { + $scope.fn.getPageList(0); + }); + + // �궗�슜�옄 紐⑸줉 �떎�슫濡쒕뱶 諛쏄린 + function makeSearchConditions() { + return {}; + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.number") + .setHWidth("width-60-p bold") + .setDAlign("text-center") + .setDName("id")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.title") + .setHWidth("bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("QNA_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.registrationDate") + .setHWidth("width-100-p bold") + .setDAlign("text-center") + .setDName("registerDate")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.register") + .setHWidth("width-120-p bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("QNA_REGISTER")); + } + + // 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + title : $scope.vm.search.title + }; + + Qna.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("QNA.failedToLookupQNADetails"), result.data.message.message); //QNA �궗�빆 紐⑸줉 議고쉶 �떎�뙣 + } + }); + } + + // qna �벑濡� + function add() { + $uibModal.open({ + templateUrl : 'views/qna/qnaAdd.html', + size : "md", + controller : 'qnaAddController', + backdrop : 'static' + }); + } + + // qna �닔�젙 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/qna/qnaModify.html', + size : "md", + controller : 'qnaModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // qna 蹂닿린 + function view(title, description) { + $uibModal.open({ + templateUrl : 'views/qna/qnaView.html', + size : "lg", + controller : 'qnaViewController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + title : title, + description : description + }; + } + } + }); + } + + // �뀒�씠釉� �꽕�젙 + $scope.fn.makeTableConfigs(); + // 紐⑸줉 議고쉶 + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/qna/qnaModify.controller.js b/src/main/webapp/scripts/app/qna/qnaModify.controller.js new file mode 100644 index 0000000..4cffa94 --- /dev/null +++ b/src/main/webapp/scripts/app/qna/qnaModify.controller.js @@ -0,0 +1,143 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('qnaModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Qna', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Qna, parameter, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� + }; + + $scope.vm = { + search : { + id : parameter.id + }, + form : { + id : parameter.id, + title : "", // �젣紐� + description : "" // �궡�슜 + }, + options : { + callbacks : { + onImageUpload : function (data) { + data.pop(); + } + }, + disableDragAndDrop : true, + shortcuts : true, + toolbar : [ + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']], + ['fontface', ['fontname', 'fontsize']], + ['insert', ['link', 'video']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']], + ['table', ['table']], + ['view', ['redo', 'undo']] + ], + keyMap : { + pc : { + 'ENTER' : 'insertParagraph', + 'CTRL+Z' : 'undo', + 'CTRL+Y' : 'redo', + /*'TAB': 'tab',*/ + 'SHIFT+TAB' : 'untab', + 'CTRL+B' : 'bold', + 'CTRL+I' : 'italic', + 'CTRL+U' : 'underline', + 'CTRL+SHIFT+S' : 'strikethrough', + 'CTRL+BACKSLASH' : 'removeFormat', + 'CTRL+SHIFT+L' : 'justifyLeft', + 'CTRL+SHIFT+E' : 'justifyCenter', + 'CTRL+SHIFT+R' : 'justifyRight', + 'CTRL+SHIFT+J' : 'justifyFull', + 'CTRL+SHIFT+NUM7' : 'insertUnorderedList', + 'CTRL+SHIFT+NUM8' : 'insertOrderedList', + 'CTRL+LEFTBRACKET' : 'outdent', + 'CTRL+RIGHTBRACKET' : 'indent', + 'CTRL+NUM0' : 'formatPara', + 'CTRL+NUM1' : 'formatH1', + 'CTRL+NUM2' : 'formatH2', + 'CTRL+NUM3' : 'formatH3', + 'CTRL+NUM4' : 'formatH4', + 'CTRL+NUM5' : 'formatH5', + 'CTRL+NUM6' : 'formatH6', + 'CTRL+ENTER' : 'insertHorizontalRule', + 'CTRL+K' : 'linkDialog.show' + } + } + } + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id, + title : $rootScope.preventXss($scope.vm.form.title), + description : $rootScope.preventXss($scope.vm.form.description) + }; + + Qna.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getQnaList", {}); + } + else { + SweetAlert.error($filter("translate")("QNA.failedToModifyQNA"), result.data.message.message); //qna �궗�빆 �닔�젙 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �긽�꽭 議고쉶 + function detail() { + Qna.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if ($rootScope.isDefined(result.data.data)) { + $scope.vm.form.title = result.data.data.title; + $scope.vm.form.description = result.data.data.description; + } + } + else { + SweetAlert.error($filter("translate")("QNA.failedToLookupQNADetails"), result.data.message.message); //QNA �긽�꽭 �젙蹂� 議고쉶 �떎�뙣 + } + }); + } + + // QNA �긽�꽭 議고쉶 + $scope.fn.detail(); + }]); + }); diff --git a/src/main/webapp/scripts/app/qna/qnaView.controller.js b/src/main/webapp/scripts/app/qna/qnaView.controller.js new file mode 100644 index 0000000..16f31c7 --- /dev/null +++ b/src/main/webapp/scripts/app/qna/qnaView.controller.js @@ -0,0 +1,32 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('qnaViewController', ['$scope', '$log', '$rootScope', '$uibModalInstance', 'parameter', + function ($scope, $log, $rootScope, $uibModalInstance, parameter) { + + $scope.fn = { + cancel : cancel // �뙘�뾽 李� �떕湲� + }; + + $scope.vm = { + viewer : { + title : parameter.title, + description : parameter.description + } + }; + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + }]); + }); diff --git a/src/main/webapp/scripts/app/support/support.controller.js b/src/main/webapp/scripts/app/support/support.controller.js new file mode 100644 index 0000000..c3a6f1f --- /dev/null +++ b/src/main/webapp/scripts/app/support/support.controller.js @@ -0,0 +1,34 @@ +/** + * Created by wisestone on 2018-02-13. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('supportController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $filter) { + + $scope.fn = { + changeTab : changeTab, // �꺆 蹂�寃� + }; + + $scope.vm = { + tab : "FAQ_TAB" // �뾽臾� 怨듦컙 �젙蹂닿� 湲곕낯 �꺆 + }; + + // �꺆 蹂�寃� + function changeTab(tab) { + $scope.vm.tab = tab; + console.log(tab); + + if (tab === "QNA_TAB") { + $scope.$broadcast("getSupportQnaList"); + console.log(tab); + } + } + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/support/support.js b/src/main/webapp/scripts/app/support/support.js new file mode 100644 index 0000000..8b13601 --- /dev/null +++ b/src/main/webapp/scripts/app/support/support.js @@ -0,0 +1,44 @@ +/** + * Created by wisestone on 2018-02-13. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('support', { + abstract : true, + url : "/support", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('support.support', { + url : "/support", + data : { + authorities : ['NOTICE_READ'] + }, + templateUrl : 'views/support/support.html', + controller : "supportController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["modalFormAutoScroll", "supportController", 'jsTable', 'tableColumnGenerator'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/support/supportQnaList.controller.js b/src/main/webapp/scripts/app/support/supportQnaList.controller.js new file mode 100644 index 0000000..c07016d --- /dev/null +++ b/src/main/webapp/scripts/app/support/supportQnaList.controller.js @@ -0,0 +1,172 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('supportQnaListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'Qna', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, Qna, SweetAlert, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + makeSearchConditions : makeSearchConditions, + add : add, // qna �벑濡� + }; + + // 蹂��닔 + $scope.vm = { + search : { + title : "" + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify, + view : view, + }; + + // qna 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getSupportQnaList", function () { + $scope.fn.getPageList(0); + }); + + // �궗�슜�옄 紐⑸줉 �떎�슫濡쒕뱶 諛쏄린 + function makeSearchConditions() { + return {}; + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.number") + .setHWidth("width-60-p bold") + .setDAlign("text-center") + .setDName("id")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.title") + .setHWidth("bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("QNA_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.registrationDate") + .setHWidth("width-100-p bold") + .setDAlign("text-center") + .setDName("registerDate")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.register") + .setHWidth("width-120-p bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("QNA_REGISTER")); + } + + // 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + title : $scope.vm.search.title + }; + + Qna.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("QNA.failedToLookupQNADetails"), result.data.message.message); //QNA �궗�빆 紐⑸줉 議고쉶 �떎�뙣 + } + }); + } + + // qna �벑濡� + function add() { + $uibModal.open({ + templateUrl : 'views/qna/qnaAdd.html', + size : "md", + controller : 'qnaAddController', + backdrop : 'static' + }); + } + + // qna �닔�젙 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/qna/qnaModify.html', + size : "md", + controller : 'qnaModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // qna 蹂닿린 + function view(title, description) { + $uibModal.open({ + templateUrl : 'views/qna/qnaView.html', + size : "lg", + controller : 'qnaViewController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + title : title, + description : description + }; + } + } + }); + } + + // �뀒�씠釉� �꽕�젙 + $scope.fn.makeTableConfigs(); + // 紐⑸줉 議고쉶 + $scope.fn.getPageList(0); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/task/task.js b/src/main/webapp/scripts/app/task/task.js new file mode 100644 index 0000000..1e0aa4a --- /dev/null +++ b/src/main/webapp/scripts/app/task/task.js @@ -0,0 +1,64 @@ +/** + * Created by wisestone on 2018-01-03. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('tasks', { + abstract : true, + url : "/tasks", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('tasks.agileBoard', { + url : "/agileBoard", + data : { + authorities : ['ISSUE_TOTAL'] + }, + templateUrl : 'views/task/taskAgileBoard.html', + controller : "taskAgileBoardController", + resolve : { + loadController : ["$q", function ($q) { + + var deferred = $q.defer(); + require(["taskAgileBoardController", "taskAddController", "taskModifyController", 'bootstrapDateRangePicker','taskExcelImportController', 'owlProfileOver', 'owlAttachedFileType', + 'moment', 'dateRangePicker', 'owlAutoTextHeight', 'cardContent', 'cardTextarea', 'agileCardSortable', 'owlTaskAutoButton', 'workflowStatusAddController', + 'colorPalette', 'colorPalettePicker', 'workflowStatusModifyController'], function () { + deferred.resolve(); + }); + return deferred.promise; + }], + projectLoader : ["$q", "Project", "$resourceProvider", "$rootScope", "$log", function ($q, Project, $resourceProvider, $rootScope, $log) { + + var deferred = $q.defer(); + + Project.findLastUseProject($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status == "success") { + $rootScope.lastProject = result.data.data; + deferred.resolve(result.data.data); + } + else { + deferred.reject(result.data.data) + } + }); + + return deferred.promise; + }] + + } + }); + }) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/task/taskAdd.controller.js b/src/main/webapp/scripts/app/task/taskAdd.controller.js new file mode 100644 index 0000000..5b47357 --- /dev/null +++ b/src/main/webapp/scripts/app/task/taskAdd.controller.js @@ -0,0 +1,325 @@ +/** + * Created by wisestone on 2017-12-15. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('taskAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$injector', + '$controller', '$tableProvider', 'Task', 'User', 'AttachedFile', 'SweetAlert', '$timeout', 'parameter', '$stateParams', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, $tableProvider, Task, User, AttachedFile, SweetAlert, $timeout, parameter, $stateParams) { + + $scope.fn = { + cancel : cancel, + formSubmit : formSubmit, + formCheck : formCheck, + getUserListCallBack : getUserListCallBack, + makeUserTableConfigs : makeUserTableConfigs, + getOptionColor : getOptionColor, + makeFileTableConfigs : makeFileTableConfigs, + onFileSelect : onFileSelect, + broadCastTasks : broadCastTasks, + infiniteAddForm : infiniteAddForm, + imageUpload : imageUpload + }; + + $scope.vm = { + form : { + title : "", + description : "", + priorityId : "1", + projects : [], + users : [], + files : [], + attachedFileIds : [], // �꽟癒몃끂�듃濡� �뙆�씪 �뾽濡쒕뱶瑜� �븷 寃쎌슦 �꽌踰꾩뿉�꽌 pk瑜� �뵲怨� task id�� �뿰�룞 �옉�뾽�씠 �븘�슂�븯�떎. + startCompleteDateRange : "" + }, + infiniteAdd : false, + projectName : "", + userName : "", + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + }, + project : { + page : 0, + totalPage : 0 + } + }, + summerNote : { + editable : null, + editor : null + }, + userTableConfigs : [], + fileTableConfigs : [] + }; + + $scope.userTableEvent = { + remove : remove + }; + + $scope.fileTableEvent = { + fileRemove : fileRemove + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + $scope.$watch("vm.form.projects", function (newValue, oldValue) { + if (angular.isDefined(newValue)) { + if (newValue.length == 0) { + $scope.vm.form.users = []; + } + } + }); + + function imageUpload(files) { + var listFiles = []; + angular.forEach(files, function (file) { + if (!angular.isDefined(file.name)) { + var fileType = file.type.split("/"); + var imageType = ""; + + if (fileType[0] == "image") { + imageType = "." + fileType[1]; + } + + file.name = new Date().getTime() + imageType; + } + else { + if (file.name.indexOf(';') != -1) { + SweetAlert.swal("�뙆�씪 �뾽濡쒕뱶 �삤瑜�", "�뙆�씪紐낆뿉 �듅�닔臾몄옄(;)媛� �뱾�뼱媛�硫� �뾽濡쒕뱶 �븷 �닔 �뾾�뒿�땲�떎.", "error"); + return; + } + } + + listFiles.push(file); + }); + + AttachedFile.add({ + method : "POST", + file : listFiles, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : { + workspaceId : 1 // TODO - �썙�겕�뒪�럹�씠�뒪 �븘�씠�뵒�뒗 異뷀썑�뿉 蹂�寃쎌씠 �븘�슂�븯�떎. + } + }, + fileFormDataName : "file" + }) + .then(function (result) { + if (result.message.status == "success") { + angular.forEach(result.attachedFiles, function (fileInfo) { + $scope.vm.summerNote.editor.summernote("editor.insertImage", fileInfo.path); + $scope.vm.form.attachedFileIds.push(fileInfo.id); + }); + } + else { + SweetAlert.swal("�뙆�씪 �뾽濡쒕뱶 �삤瑜�", result.data.message.message, "error"); + } + }); + } + + function infiniteAddForm() { + $scope.vm.form.description = ""; + $scope.vm.form.files = []; + + $(".modal-body").animate({ + scrollTop: 0 + }, 500); + + $timeout(function () { + $(".note-editable").trigger("focus") + }, 700); + } + + function onFileSelect($files) { + angular.forEach($files, function ($file, index) { + $file.index = index; + $scope.vm.form.files.push($file); + }); + } + + function getOptionColor(key) { + var color = "#353535"; // 湲곕낯�깋�� 寃����깋. + + for (var count in $rootScope.priorities) { + if ($rootScope.priorities[count].fieldKey == key) { + color = $rootScope.priorities[count].color; + break; + } + } + + return color; + } + + function remove(id) { + var users = []; + + angular.forEach($scope.vm.form.users, function (user) { + if (user.id != id) { + users.push(user); + } + }); + + $scope.vm.form.users = angular.copy(users); + } + + function fileRemove(index) { + $scope.vm.form.files.splice(index, 1); + + angular.forEach($scope.vm.form.files, function (file, index) { + file.index = index; + }); + } + + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + function makeUserTableConfigs() { + $scope.vm.userTableConfigs = []; + + $scope.vm.userTableConfigs.push($tableProvider.config() + .setHName("�씠由�") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("PROJECT_USER_NAME")); + $scope.vm.userTableConfigs.push($tableProvider.config() + .setHName("�씠硫붿씪") + .setHWidth("width-180-p") + .setDVisible("hidden-xs") + .setDAlign("text-center") + .setDName("email")); + $scope.vm.userTableConfigs.push($tableProvider.config() + .setHName("�뿰�씫泥�") + .setDVisible("hidden-xs") + .setHWidth("width-180-p") + .setDName("phone") + .setDAlign("text-center")); + $scope.vm.userTableConfigs.push($tableProvider.config() + .setHName("�꽕�젙") + .setDType("renderer") + .setHWidth("width-60-p") + .setDAlign("text-center") + .setDRenderer("TARGET_REMOVE")); + } + + function makeFileTableConfigs() { + $scope.vm.fileTableConfigs = []; + + $scope.vm.fileTableConfigs.push($tableProvider.config() + .setHName("�뙆�씪") + .setDAlign("text-center") + .setDName("name")); + $scope.vm.fileTableConfigs.push($tableProvider.config() + .setHName("�겕湲�") + .setDType("renderer") + .setDVisible("hidden-xs") + .setHWidth("width-100-p") + .setDRenderer("FILE_SIZE") + .setDAlign("text-center")); + $scope.vm.fileTableConfigs.push($tableProvider.config() + .setHName("�꽕�젙") + .setDType("renderer") + .setHWidth("width-60-p") + .setDAlign("text-center") + .setDRenderer("FILE_REMOVE")); + } + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.title == "" || $scope.vm.form.title == null || $scope.vm.form.title == undefined) { + return true; + } + + return false; + } + + function formSubmit() { + var content = { + title : $scope.vm.form.title, + description : $scope.vm.form.description, + priorityId : $scope.vm.form.priorityId, + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.form.users, function (user) { + userIds.push(user.id); + }); + + return userIds; + })(), + startCompleteDateRange : $scope.vm.form.startCompleteDateRange, + workflowStatusId : parameter.workflowStatusId, + attachedFileIds : $scope.vm.form.attachedFileIds + }; + + + Task.add({ + method : "POST", + file : $scope.vm.form.files, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : content + }, + fileFormDataName : "file" + }) + .then(function (result) { + + if (result.data.message.status == "success") { + if ($scope.vm.infiniteAdd) { + $scope.fn.infiniteAddForm(); + } + else { + $scope.fn.cancel(); + } + + // �뾽臾� 移대뱶 �뾽�뜲�씠�듃 + $scope.fn.broadCastTasks(result.data.data); + + $rootScope.$broadcast("taskAdd", { + content : { + projectId : $stateParams.projectId, + workflowStatusId : parameter.workflowStatusId, + taskVo : result.data.data + } + }); + } + }); + } + + function cancel() { + $uibModalInstance.dismiss('cancel'); + } + + function broadCastTasks(taskVo) { + var content = { + projectId : $stateParams.projectId, + workflowStatusId : parameter.workflowStatusId, + taskVo : taskVo, + actionType : "/notification/task-add" + }; + + User.taskUpdate($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + + } + else { + // TODO - �쎒 �냼耳볦쑝濡� 寃쎄퀬李� �몴�떆 + } + }); + } + + $scope.fn.makeUserTableConfigs(); + $scope.fn.makeFileTableConfigs(); + }]); + }); diff --git a/src/main/webapp/scripts/app/task/taskAgileBoard.controller.js b/src/main/webapp/scripts/app/task/taskAgileBoard.controller.js new file mode 100644 index 0000000..b3d5248 --- /dev/null +++ b/src/main/webapp/scripts/app/task/taskAgileBoard.controller.js @@ -0,0 +1,519 @@ +/** + * Created by wisestone on 2018-01-09. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('taskAgileBoardController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', 'WorkflowStatus', '$uibModal', 'Task', 'User', '$state', '$timeout', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, WorkflowStatus, $uibModal, Task, User, $state, $timeout) { + + $scope.fn = { + getWorkflowStatus : getWorkflowStatus, // �긽�깭 紐⑸줉�쓣 議고쉶�븳�떎. + excelImport : excelImport, + taskAdd : taskAdd, // �븷�씪�쓣 �깮�꽦�븳�떎. + taskModify : taskModify, // �븷�씪 �닔�젙 �뙘�뾽�쓣 �샇異쒗븳�떎. + taskRemove : taskRemove, // �븷�씪�쓣 �궘�젣�븳�떎. + broadCastTasks : broadCastTasks, // �떎瑜� �궗�슜�옄�뱾�뿉寃� �궡媛� 異붽��븳 �븷�씪�쓣 �솕硫댁뿉 �뾽�뜲�씠�듃�릺�룄濡� �븳�떎. + executeAddTaskUpdate : executeAddTaskUpdate, // �떎瑜� �궗�엺怨� �궡 �솕硫댁뿉�꽌 異붽��븳 �뾽臾� �젙蹂대�� �뾽�뜲�씠�듃 �븳�떎. + executeModifyTaskUpdate : executeModifyTaskUpdate, // �떎瑜� �궗�슜�옄媛� 蹂�寃쏀븳 �븷�씪 �궡�슜�쓣 �솕硫댁뿉 諛섏쁺�븳�떎. + executeRemoveTaskUpdate : executeRemoveTaskUpdate, // �떎瑜� �궗�슜�옄媛� �궘�젣�븳 �븷�씪�쓣 �솕硫댁뿉 諛섏쁺�븳�떎. + broadCastRemoveTasks : broadCastRemoveTasks, // �븷�씪�씠 �궘�젣�맂 寃껋쓣 �젒�냽 以묒씤 紐⑤뱺 �궗�슜�옄�뿉寃� �븣由ш퀬 �뾽�뜲�씠�듃 諛쏄쾶 �븳�떎. + executeSelfMoveTaskUpdate : executeSelfMoveTaskUpdate, // �씠�룞�븳 �궗�엺�쓽 �솕硫댁뿉�꽌 �뾽臾� �씠�룞 �젙蹂대�� �뾽�뜲�씠�듃�븳�떎. + executeMoveTaskUpdate : executeMoveTaskUpdate, // �떎瑜� �궗�엺�쓽 �솕硫댁뿉�꽌 蹂�寃쎈맂 �뾽臾� �씠�룞 �젙蹂대�� �궡 �솕硫댁뿉 �뾽�뜲�씠�듃 �븳�떎. + findPrevMoveTaskPosition : findPrevMoveTaskPosition, + findNextMoveTaskPosition : findNextMoveTaskPosition, + addStatus : addStatus, // �긽�깭 異붽� �뙘�뾽�쓣 �샇異쒗븳�떎. + modifyStatus : modifyStatus // �긽�깭 �닔�젙 �뙘�뾽�쓣 �샇異쒗븳�떎. + }; + + $scope.vm = { + workflowStatus : [] + }; + + // �븷�씪 �닔�젙�뿉�꽌 �긽�깭 蹂�寃쎌떆 移몃컲 蹂대뱶�뿉�꽌 �빐�떦 �븷�씪�쓽 �긽�깭瑜� �씠�룞�떆�궓�떎. + $scope.$on("taskMoveSelf", function (event, args) { + $scope.fn.executeSelfMoveTaskUpdate(args.content); + }); + + $scope.$on("taskMove", function (event, args) { + // �떎瑜� �봽濡쒖젥�듃�씪 寃쎌슦 諛섏쁺�븯吏� �븡�뒗�떎. + if (args.content.projectId != $rootScope.lastProject.id) { + return; + } + + try { + $scope.fn.executeMoveTaskUpdate(args.content); + } + catch (e) { + $log.error("taskMove Error 媛� 諛쒖깮�븯�뿬 �꽌踰꾩뿉 �쟾泥� �뜲�씠�꽣 �옱�슂泥�") + $scope.fn.getWorkflowStatus(); + } + }); + + $scope.$on("taskAdd", function (event, args) { + // �떎瑜� �봽濡쒖젥�듃�씪 寃쎌슦 諛섏쁺�븯吏� �븡�뒗�떎. + if (args.content.projectId != $rootScope.lastProject.id) { + return; + } + + try { + $scope.fn.executeAddTaskUpdate(args.content); + } + catch (e) { + $log.error("taskAdd Error 媛� 諛쒖깮�븯�뿬 �꽌踰꾩뿉 �쟾泥� �뜲�씠�꽣 �옱�슂泥�") + $scope.fn.getWorkflowStatus(); + } + }); + + $scope.$on("taskModify", function (event, args) { + // �떎瑜� �봽濡쒖젥�듃�씪 寃쎌슦 諛섏쁺�븯吏� �븡�뒗�떎. + if (args.content.projectId != $rootScope.lastProject.id) { + return; + } + + try { + $scope.fn.executeModifyTaskUpdate(args.content); + } + catch (e) { + $log.error("taskModify Error 媛� 諛쒖깮�븯�뿬 �꽌踰꾩뿉 �쟾泥� �뜲�씠�꽣 �옱�슂泥�") + $scope.fn.getWorkflowStatus(); + } + }); + + $scope.$on("taskRemove", function (event, args) { + // �떎瑜� �봽濡쒖젥�듃�씪 寃쎌슦 諛섏쁺�븯吏� �븡�뒗�떎. + if (args.content.projectId != $rootScope.lastProject.id) { + return; + } + + // 留덉�留됱쑝濡� 蹂� taskId�� �궘�젣�맂 taskId媛� �씪移섑븷 寃쎌슦 �뙘�뾽李쎌쓣 �떕�뒗�떎. + if ($rootScope.lastTaskId == args.content.taskVo.id) { + $rootScope.$broadcast("taskModifyScreenClose", {}); + } + + try { + $scope.fn.executeRemoveTaskUpdate(args.content); + } + catch (e) { + $log.error("taskRemove Error 媛� 諛쒖깮�븯�뿬 �꽌踰꾩뿉 �쟾泥� �뜲�씠�꽣 �옱�슂泥�") + $scope.fn.getWorkflowStatus(); + } + }); + + // �떎瑜� �궗�슜�옄媛� 蹂�寃쏀븳 �븷�씪 �궡�슜�쓣 �솕硫댁뿉 諛섏쁺�븳�떎. + function executeModifyTaskUpdate(content) { + var targetCheck = false; + + for (var count in $scope.vm.workflowStatus) { + var workflowStatus = $scope.vm.workflowStatus[count]; + + for (var taskCount in workflowStatus.taskVos) { + if (workflowStatus.taskVos[taskCount].id == content.taskVo.id) { + workflowStatus.taskVos[taskCount] = {}; + workflowStatus.taskVos[taskCount] = angular.copy(content.taskVo); + targetCheck = true; + break; + } + } + + if (targetCheck) { + break; + } + } + } + + // �떎瑜� �궗�슜�옄媛� �궘�젣�븳 �븷�씪�쓣 �솕硫댁뿉 諛섏쁺�븳�떎. + function executeRemoveTaskUpdate(content) { + var targetCheck = false; + + for (var count in $scope.vm.workflowStatus) { + var workflowStatus = $scope.vm.workflowStatus[count]; + + for (var taskCount in workflowStatus.taskVos) { + if (workflowStatus.taskVos[taskCount].id == content.taskVo.id) { + workflowStatus.taskVos.splice(taskCount, 1); + targetCheck = true; + break; + } + } + + if (targetCheck) { + break; + } + } + } + + // �떎瑜� �궗�엺怨� �궡 �솕硫댁뿉�꽌 異붽��븳 �뾽臾� �젙蹂대�� �뾽�뜲�씠�듃 �븳�떎. + function executeAddTaskUpdate(content) { + for (var count in $scope.vm.workflowStatus) { + var workflowStatus = $scope.vm.workflowStatus[count]; + + if (workflowStatus.id == content.workflowStatusId) { + workflowStatus.taskVos.unshift(content.taskVo); + break; + } + } + } + + // �씠�룞�븳 �궗�엺�쓽 �솕硫댁뿉�꽌 �뾽臾� �씠�룞 �젙蹂대�� �뾽�뜲�씠�듃�븳�떎. + function executeSelfMoveTaskUpdate(content) { + var targetTask = null; + + for (var count in $scope.vm.workflowStatus) { + var workflowStatus = $scope.vm.workflowStatus[count]; + // �씠�룞�븷 ���긽�쓣 李얜뒗�떎. + for (var taskCount in workflowStatus.taskVos) { + if (workflowStatus.taskVos[taskCount].id == content.taskId) { + targetTask = workflowStatus.taskVos.splice(taskCount, 1); + break; + } + } + } + + var prevCheck = $scope.fn.findPrevMoveTaskPosition(content.moveWorkflowStatusId, content.prevTaskId, targetTask[0]); + // prev 濡� 紐살갼�쓣 寃쎌슦 next 濡� 李얜뒗�떎. + if (!prevCheck) { + $scope.fn.findNextMoveTaskPosition(content.moveWorkflowStatusId, content.nextTaskId, targetTask[0]); + } + } + + // �떎瑜� �궗�엺�쓽 �솕硫댁뿉�꽌 蹂�寃쎈맂 �뾽臾� �씠�룞 �젙蹂대�� �궡 �솕硫댁뿉 �뾽�뜲�씠�듃 �븳�떎. + function executeMoveTaskUpdate(content) { + var targetTask = null; + + for (var count in $scope.vm.workflowStatus) { + var workflowStatus = $scope.vm.workflowStatus[count]; + // �씠�룞�븷 ���긽�쓣 李얜뒗�떎. + for (var taskCount in workflowStatus.taskVos) { + if (workflowStatus.taskVos[taskCount].id == content.taskId) { + targetTask = workflowStatus.taskVos.splice(taskCount, 1); + break; + } + } + } + + var prevCheck = $scope.fn.findPrevMoveTaskPosition(content.moveWorkflowStatusId, content.prevTaskId, targetTask[0]); + // prev 濡� 紐살갼�쓣 寃쎌슦 next 濡� 李얜뒗�떎. + if (!prevCheck) { + $scope.fn.findNextMoveTaskPosition(content.moveWorkflowStatusId, content.nextTaskId, targetTask[0]); + } + } + + function findPrevMoveTaskPosition(findWorkflowStatusId, findTaskId, targetTask) { + var prevCheck = false; + + for (var count in $scope.vm.workflowStatus) { + var workflowStatus = $scope.vm.workflowStatus[count]; + // �씠�룞�븷 怨녹쓣 李얠븘 �씠�룞 ���긽�쓣 �꽔�뒗�떎. + if (workflowStatus.id == findWorkflowStatusId) { + if (findTaskId == null) { + workflowStatus.taskVos.unshift(targetTask); + prevCheck = true; + } + else { + var taskCount = 0; + + for (taskCount = 0; taskCount < workflowStatus.taskVos.length; taskCount++) { + if (workflowStatus.taskVos[taskCount].id == findTaskId) { + prevCheck = true; + taskCount++; + break; + } + } + + if (prevCheck) { + workflowStatus.taskVos.splice(taskCount, 0, targetTask); + } + } + + break; + } + } + + return prevCheck; + } + + function findNextMoveTaskPosition(findWorkflowStatusId, findTaskId, targetTask) { + for (var count in $scope.vm.workflowStatus) { + var workflowStatus = $scope.vm.workflowStatus[count]; + // �씠�룞�븷 怨녹쓣 李얠븘 �씠�룞 ���긽�쓣 �꽔�뒗�떎. + if (workflowStatus.id == findWorkflowStatusId) { + if (findTaskId == null) { + workflowStatus.taskVos.push(targetTask); + } + else { + for (var taskCount = 0; taskCount < workflowStatus.taskVos.length; taskCount++) { + if (workflowStatus.taskVos[taskCount].id == findTaskId) { + workflowStatus.taskVos.splice(taskCount, 0, targetTask); + break; + } + } + } + + break; + } + } + } + + // �긽�깭 紐⑸줉�쓣 議고쉶�븳�떎. + function getWorkflowStatus() { + + WorkflowStatus.find($resourceProvider.getContent({projectId : $rootScope.lastProject.id}, + $resourceProvider.getPageContent(0, 255))).then(function (result) { + + if (result.data.message.status == "success") { + $scope.vm.workflowStatus = result.data.data; + + angular.forEach($scope.vm.workflowStatus, function (workflowStatus) { + switch(workflowStatus.color) { + case "btn-primary" : + workflowStatus.borderColor = "#047bf8"; + break; + case "btn-danger" : + workflowStatus.borderColor = "#e65252"; + break; + case "btn-info" : + workflowStatus.borderColor = "#5bc0de"; + break; + case "btn-success" : + workflowStatus.borderColor = "#5eb314"; + break; + case "btn-warning" : + workflowStatus.borderColor = "#b17247"; + break; + case "btn-violet" : + workflowStatus.borderColor = "#6156c5"; + break; + default : + workflowStatus.borderColor = workflowStatus.color; + } + + workflowStatus.taskVos = workflowStatus.taskVos.sort(function (a, b) { // �삤由꾩감�닚 + return a.position < b.position ? -1 : a.position > b.position ? 1 : 0; + }); + }); + } + else { + // �떎�뙣�븯硫� 蹂몄씤�쓽 湲곕낯 �썙�겕�뒪�럹�씠�뒪&�봽濡쒖젥�듃濡� �뀑�똿�릺�뼱 �솕硫� �깉濡쒓퀬移⑥씠 �릺�뼱�빞 �븳�떎. + User.initLastWorkspaceIdAndLastProjectId($resourceProvider.getContent({},$resourceProvider.getPageContent(0, 0))).then(function (result) { + User.refreshSession($resourceProvider.getContent({},$resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status == "success") { + SweetAlert.swal("�봽濡쒖젥�듃 �젣�쇅", "�봽濡쒖젥�듃�뿉�꽌 �젣�쇅�릺�뿀�뒿�땲�떎.", "warning"); + $rootScope.user = result.data.data; + $state.go("workspaces.workspace"); + } + }); + }); + } + }); + } + + // �떎瑜� �궗�슜�옄�뱾�뿉寃� �궡媛� 異붽��븳 �븷�씪�쓣 �솕硫댁뿉 �뾽�뜲�씠�듃�릺�룄濡� �븳�떎. + function broadCastTasks(taskVo, workflowStatusId) { + var content = { + projectId : $rootScope.lastProject.id, + workflowStatusId : workflowStatusId, + taskVo : taskVo, + actionType : "/notification/task-add" + }; + + User.taskUpdate($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + + } + else { + // TODO - �쎒 �냼耳볦쑝濡� 寃쎄퀬李� �몴�떆 + } + }); + } + + function taskAdd(workflowStatus) { + + if (workflowStatus.taskTitle == "" || workflowStatus.taskTitle == null) { + SweetAlert.swal({ + title : "�븷�씪 �엯�젰", + text : "�븷�씪�쓣 �엯�젰�븯�꽭�슂.", + type : "warning" + }); + return; + } + + var content = { + title : workflowStatus.taskTitle, + description : "", + priorityId : 2, // 以묒슂�룄 湲곕낯媛믪� 蹂댄넻 + userIds : [], + startCompleteDateRange : "", + workflowStatusId : workflowStatus.id, + attachedFileIds : [] + }; + + Task.add({ + method : "POST", + file : [], + fields : { + content : content + }, + fileFormDataName : "file" + }) + .then(function (result) { + if (result.data.message.status == "success") { + workflowStatus.taskTitle = ""; + + // �뾽臾� 移대뱶 �뾽�뜲�씠�듃 + $scope.fn.broadCastTasks(result.data.data, workflowStatus.id); + + $rootScope.$broadcast("taskAdd", { + content : { + projectId : $rootScope.lastProject.id, + workflowStatusId : workflowStatus.id, + taskVo : result.data.data + } + }); + } + }); + } + + // �븷�씪 �닔�젙 �뙘�뾽�쓣 �샇異쒗븳�떎. + function taskModify(task) { + $uibModal.open({ + templateUrl : 'views/task/taskModify.html', + size : "lg", + controller : 'taskModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : task.id + }; + } + } + }); + } + + // �븷�씪�쓣 �궘�젣�븳�떎. + function taskRemove(task) { + if (task == null) { + SweetAlert.swal({ + title : "�궘�젣 ���긽 �솗�씤", + text : "�궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂.", + type : "warning" + }); + return; + } + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : "�븷�씪 �궘�젣", + text : "�꽑�깮�븳 �븷�씪�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �븷�씪�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : "�궘�젣", + cancelButtonText : "痍⑥냼", + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + Task.remove($resourceProvider.getContent( + [{id : task.id}], + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + $timeout(function () { + SweetAlert.success("�궘�젣 �꽦怨�", "�궘�젣媛� �젙�긽�쟻�쑝濡� �떎�뻾�릺�뿀�뒿�땲�떎."); + }, 100); + + $scope.fn.broadCastRemoveTasks(task); + } + else { + $timeout(function () { + SweetAlert.error("�궘�젣 �떎�뙣", result.data.message.message); + }, 100); + } + }); + } + }); + } + + // �븷�씪�씠 �궘�젣�맂 寃껋쓣 �젒�냽 以묒씤 紐⑤뱺 �궗�슜�옄�뿉寃� �븣由ш퀬 �뾽�뜲�씠�듃 諛쏄쾶 �븳�떎. + function broadCastRemoveTasks(task) { + var content = { + projectId : $rootScope.lastProject.id, + taskVo : task, + actionType : "/notification/task-remove" + }; + + $scope.fn.executeRemoveTaskUpdate(content); + + User.taskUpdate($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + + } + else { + SweetAlert.swal("�븷�씪 �뾽�뜲�씠�듃 �떎�뙣", "�떎瑜� �궗�슜�옄�쓽 蹂�寃� �궡�뿭�쓣 �뾽�뜲�씠�듃�븯�뒗�뜲 �떎�뙣�븯���뒿�땲�떎.", "warning"); + } + }); + } + + function excelImport() { + $uibModal.open({ + templateUrl : 'views/task/taskExcelImport.html', + size : "md", + controller : 'taskExcelImportController', + backdrop : 'static' + }); + } + + // �긽�깭 �깮�꽦 �뙘�뾽 + function addStatus() { + $uibModal.open({ + templateUrl : 'views/workflowStatus/workflowStatusAdd.html', + size : "md", + controller : 'workflowStatusAddController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + projectId : $rootScope.lastProject.id + }; + } + } + }); + } + + // �긽�깭 �닔�젙 �뙘�뾽 + function modifyStatus(id) { + $uibModal.open({ + templateUrl : 'views/workflowStatus/workflowStatusModify.html', + size : "md", + controller : 'workflowStatusModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + + $scope.fn.getWorkflowStatus(); + } + + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/task/taskExcelImport.controller.js b/src/main/webapp/scripts/app/task/taskExcelImport.controller.js new file mode 100644 index 0000000..07af422 --- /dev/null +++ b/src/main/webapp/scripts/app/task/taskExcelImport.controller.js @@ -0,0 +1,153 @@ +/** + * Created by wisestone on 2018-01-17. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('taskExcelImportController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$injector', '$controller', '$tableProvider', 'Task', 'User', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, $tableProvider, Task, User) { + + $scope.fn = { + cancel : cancel, + formSubmit : formSubmit, + formCheck : formCheck, + excelTemplateDownload : excelTemplateDownload, + getUserListCallBack : getUserListCallBack, + makeUserTableConfigs : makeUserTableConfigs, + onFileSelect : onFileSelect, + broadCastTasks : broadCastTasks + }; + + $scope.vm = { + form : { + users : [], + file : "" + }, + userName : "", + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + } + + }, + videoView : false, + userTableConfigs : [] + }; + + $scope.userTableEvent = { + remove : remove + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + function excelTemplateDownload() { + $("form[name='excelTemplateDownload']").submit(); + } + + function onFileSelect($files) { + $scope.vm.form.file = $files; + } + + function remove(id) { + var users = []; + + angular.forEach($scope.vm.form.users, function (user) { + if (user.id != id) { + users.push(user); + } + }); + + $scope.vm.form.users = angular.copy(users); + } + + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + function makeUserTableConfigs() { + $scope.vm.userTableConfigs = []; + + $scope.vm.userTableConfigs.push($tableProvider.config() + .setHName("�씠由�") + .setDType("renderer") + .setDAlign("text-center") + .setDRenderer("PROJECT_USER_NAME")); + $scope.vm.userTableConfigs.push($tableProvider.config() + .setHName("�씠硫붿씪") + .setHWidth("width-180-p") + .setDVisible("hidden-xs") + .setDAlign("text-center") + .setDName("email")); + $scope.vm.userTableConfigs.push($tableProvider.config() + .setHName("�뿰�씫泥�") + .setDVisible("hidden-xs") + .setHWidth("width-180-p") + .setDName("phone") + .setDAlign("text-center")); + $scope.vm.userTableConfigs.push($tableProvider.config() + .setHName("�꽕�젙") + .setDType("renderer") + .setHWidth("width-60-p") + .setDAlign("text-center") + .setDRenderer("TARGET_REMOVE")); + } + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; + + Task.excelImport({ + method : "POST", + file : $scope.vm.form.file, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : {} + }, + fileFormDataName : "file" + }) + .then(function (result) { + // TODO - �쎒 �냼耳볦쑝濡� 寃곌낵 �몴�떆 + + if (result.data.message.status == "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $scope.fn.broadCastTasks(); + $rootScope.$broadcast("getTaskList"); + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $uibModalInstance.dismiss('cancel'); + } + + function broadCastTasks() { + User.requestTaskReloadUser($resourceProvider.getContent({projectId : ""}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + + } + else { + // TODO - �쎒 �냼耳볦쑝濡� 寃쎄퀬李� �몴�떆 + } + }); + } + + $scope.fn.makeUserTableConfigs(); + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/task/taskModify.controller.js b/src/main/webapp/scripts/app/task/taskModify.controller.js new file mode 100644 index 0000000..e4f6d33 --- /dev/null +++ b/src/main/webapp/scripts/app/task/taskModify.controller.js @@ -0,0 +1,572 @@ +/** + * Created by wisestone on 2018-01-05. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('taskModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$injector', '$controller', '$tableProvider', + 'Task', 'parameter', 'User', 'AttachedFile', 'SweetAlert', 'WorkflowStatus', '$q', 'TaskComment', '$timeout', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, $tableProvider, Task, parameter, User, AttachedFile, SweetAlert, WorkflowStatus, $q, TaskComment, $timeout) { + + $scope.fn = { + cancel : cancel, + changePriority : changePriority, + changeStatus : changeStatus, + formSubmit : formSubmit, + getWorkflowStatus : getWorkflowStatus, + startExecute : startExecute, + onFileSelect : onFileSelect, + getTaskData : getTaskData, + broadCastTasks : broadCastTasks, + fileRemove : fileRemove, + taskUserRemove : taskUserRemove, + addComment : addComment, + removeComment : removeComment, + getCommentList : getCommentList, + updateMyScreenAndOtherUsers : updateMyScreenAndOtherUsers, + updateTaskStatusMove : updateTaskStatusMove, + taskRemove : taskRemove, + broadCastRemoveTasks : broadCastRemoveTasks, + getUserListCallBack : getUserListCallBack + }; + + $scope.vm = { + form : { + id : parameter.id, + title : "", // �젣紐� + description : "", // �꽕紐� + priorityId : "", // �슦�꽑�닚�쐞 id + priorityName : "", // �슦�꽑�닚�쐞 紐� + priorityColor : "", // �슦�꽑�닚�쐞 �깋�긽 + workflowStatusId : "", // �긽�깭 id + workflowStatusName : "", // �긽�깭 紐� + workflowStatusColor : "", // �긽�깭 �깋�긽 + users : [], // �떞�떦�옄 + attachedFiles : [], // �꽌踰꾩뿉 �씠誘� �삱�씪媛� 泥⑤��뙆�씪 + startCompleteDateRange : "", // 湲곌컙 + registerDate : "", // �깮�꽦�씪 + registerName : "", + comment : "", // �뙎湲� �궡�슜 + taskComments : [], // �뙎湲� �쟾泥� + }, + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + } + }, + userName : "", + workflowStatus : [] + }; + + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �떎瑜� �궗�슜�옄媛� 媛숈� �븷�씪�쓣 �닔�젙�븯怨� �엳�쑝硫� �뜲�씠�꽣瑜� 理쒖떊�쑝濡� �뾽�뜲�씠�듃�븳�떎. + $scope.$on("taskModifyModalUpdate", function (event, args) { + if (args.content.taskVo.id == parameter.id) { + $scope.fn.getTaskData(); + } + }); + + $scope.$on("taskModifyScreenClose", function (event, args) { + SweetAlert.swal("�븷�씪 �궘�젣 �븣由�", "�떎瑜� �궗�슜�옄�뿉 �쓽�빐 �븷�씪�씠 �궘�젣�릺�뿀�뒿�땲�떎.", "warning"); + $scope.fn.cancel(); + }); + + // �븷�씪 �궘�젣 + function taskRemove() { + // �궘�젣 �븣由� + SweetAlert.swal({ + title : "�븷�씪 �궘�젣", + text : "�꽑�깮�븳 �븷�씪�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �븷�씪�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : "�궘�젣", + cancelButtonText : "痍⑥냼", + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + Task.remove($resourceProvider.getContent( + [{id : parameter.id}], + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status == "success") { + $scope.fn.cancel(); + SweetAlert.swal("�궘�젣 �꽦怨�", "�궘�젣媛� �젙�긽�쟻�쑝濡� �떎�뻾�릺�뿀�뒿�땲�떎.", "success"); + $scope.fn.broadCastRemoveTasks($scope.vm.form); + } + else { + $timeout(function () { + SweetAlert.swal("�궘�젣 �떎�뙣", result.data.message.message, "error"); + }, 100); + } + }); + } + }); + } + + // �궘�젣 �젙蹂대�� �떎瑜� �궗�슜�옄�뱾�뿉寃� �쟾�뙆�븳�떎. + function broadCastRemoveTasks(task) { + var content = { + projectId : $rootScope.lastProject.id, + taskVo : task, + actionType : "/notification/task-remove" + }; + + User.taskUpdate($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + $rootScope.$broadcast("taskRemove", { + content : { + workflowStatusId : $scope.vm.form.workflowStatusId, + projectId : $rootScope.lastProject.id, + taskVo : task + } + }); + } + else { + // TODO - �쎒 �냼耳볦쑝濡� 寃쎄퀬李� �몴�떆 + } + }); + } + + // �닔�젙 �썑 �뾽�뜲�씠�듃�맂 �젙蹂대�� �옄�떊�쓽 �솕硫�/�떎瑜� �궗�슜�옄�뿉寃� �쟾�떖�븳�떎. + function updateMyScreenAndOtherUsers() { + Task.modifyData($resourceProvider.getContent( + {id : $scope.vm.form.id}, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status == "success") { + // �뾽臾� 移대뱶 �뾽�뜲�씠�듃 + $scope.fn.broadCastTasks(result.data.data); + + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("taskModify", { + content : { + workflowStatusId : parameter.workflowStatusId, + projectId : $rootScope.lastProject.id, + taskVo : result.data.data + } + }); + } + }); + } + + // �슦�꽑�닚�쐞瑜� 蹂�寃쏀븳�떎. + function changePriority(priority) { + // �뤌�뿉 �꽑�깮�븳 �슦�꽑�닚�쐞 媛� �뾽�뜲�씠�듃 + $scope.vm.form.priorityId = priority.fieldKey; + $scope.vm.form.priorityName = priority.fieldValue; + $scope.vm.form.priorityColor = priority.color; + + $scope.fn.formSubmit(); + } + + // �븷�씪 �긽�깭瑜� 蹂�寃쏀븳�떎. + function changeStatus(workflowStatus) { + $scope.vm.form.workflowStatusId = workflowStatus.id; + $scope.vm.form.workflowStatusName = workflowStatus.name; + $scope.vm.form.workflowStatusColor = workflowStatus.color; + + $scope.fn.formSubmit(); + // �븷�씪 �긽�깭 �씠�룞 �솕硫� �뾽�뜲�씠�듃 + $scope.fn.updateTaskStatusMove(); + } + + // �떞�떦�옄瑜� 蹂�寃쏀븳�떎. + $scope.$on("taskUserUpdate", function (args) { + $scope.fn.formSubmit(); + }); + + // �떆�옉�씪 ~ 醫낅즺�씪 蹂�寃� + $scope.$on("dateUpdate", function (newValue, oldValue) { + $scope.fn.formSubmit(); + }); + + // �뙆�씪 泥⑤� + function onFileSelect($files) { + var permit = true; + for (var count in $files) { + if ($files[count].size > 1048576000) { + permit = false; + break; + } + } + + if (!permit) { + SweetAlert.swal("�뙆�씪 �궗�씠利� �젣�븳", "�뾽濡쒕뱶 理쒕� 媛��뒫 �슜�웾�� 1GB �엯�땲�떎.", "error"); + return; + } + + AttachedFile.add({ + method : "POST", + file : $files, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : { + taskId : parameter.id + } + }, + fileFormDataName : "file" + }) + .then(function (result) { + if (result.data.message.status == "success") { + $scope.vm.form.attachedFiles = result.data.data; + // 蹂�寃� �궗�빆 �솕硫� �뾽�뜲�씠�듃 + $scope.fn.updateMyScreenAndOtherUsers(); + } + else { + SweetAlert.swal("�뙆�씪 �뾽濡쒕뱶 �삤瑜�", result.data.message.message, "error"); + } + }); + } + + // �뙆�씪 �궘�젣 + function fileRemove(attachedFile) { + // �궘�젣 �븣由� + SweetAlert.swal({ + title : "�뙆�씪 �궘�젣", + text : "�꽑�깮�븳 �뙆�씪 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �뙆�씪�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : "�궘�젣", + cancelButtonText : "痍⑥냼", + closeOnConfirm : true, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + AttachedFile.remove($resourceProvider.getContent({id : attachedFile.id, taskId : parameter.id}, + $resourceProvider.getPageContent(0, 255))).then(function (result) { + + if (result.data.message.status == "success") { + $scope.vm.form.attachedFiles = result.data.data; + // 蹂�寃� �궗�빆 �솕硫� �뾽�뜲�씠�듃 + $scope.fn.updateMyScreenAndOtherUsers(); + } + else { + $timeout(function () { + SweetAlert.swal("�궘�젣 �떎�뙣", result.data.message.message, "error"); + }, 100); + } + }); + } + }); + } + + // �궗�슜�옄 �꽑�깮 auto complete �뿉�꽌 �궗�슜 + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + // �궗�슜�옄 �젣嫄� + function taskUserRemove(id) { + var users = []; + + angular.forEach($scope.vm.form.users, function (user) { + if (user.id != id) { + users.push(user); + } + }); + + $scope.vm.form.users = angular.copy(users); + + $scope.fn.formSubmit(); + } + + // �뙎湲� �벑濡� + function addComment() { + var comment = $scope.vm.form.comment.replace(/(\s*)/g, ""); + if (comment.length < 1) { + SweetAlert.swal({ + title : "�뙎湲� �엯�젰 �솗�씤", + text : "�뙎湲��쓣 �엯�젰�븯�꽭�슂.", + type : "warning" + }); + + return; + } + + var content = { + taskId : $scope.vm.form.id, + comment : $scope.vm.form.comment + }; + + TaskComment.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + $scope.vm.form.comment = ""; + // 蹂�寃� �궗�빆 �솕硫� �뾽�뜲�씠�듃 + $scope.fn.updateMyScreenAndOtherUsers(); + // �뙎湲� �쟾泥� 紐⑸줉 濡쒕뵫 + $scope.fn.getCommentList(); + } + else { + SweetAlert.swal("�뙎湲� �벑濡� �떎�뙣", result.data.message.message, "error"); + } + }); + } + + // �뙎湲� �궘�젣 + function removeComment(comment) { + // �궘�젣 �븣由� + SweetAlert.swal({ + title : "�뙎湲� �궘�젣", + text : "�꽑�깮�븳 �뙎湲��쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �뙎湲��� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : "�궘�젣", + cancelButtonText : "痍⑥냼", + closeOnConfirm : true, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + TaskComment.remove($resourceProvider.getContent( + {id : comment.id}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + // 蹂�寃� �궗�빆 �솕硫� �뾽�뜲�씠�듃 + $scope.fn.updateMyScreenAndOtherUsers(); + // �뙎湲� 紐⑸줉 濡쒕뵫 + $scope.fn.getCommentList(); + } + else { + $timeout(function () { + SweetAlert.swal("�궘�젣 �떎�뙣", result.data.message.message, "error"); + }, 100); + } + }); + } + }); + } + + // �빐�떦 �븷�씪�쓽 �쟾泥� �뙎湲��쓣 媛��졇�삩�떎. + function getCommentList() { + TaskComment.find($resourceProvider.getContent( + {taskId : $scope.vm.form.id}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + $scope.vm.form.taskComments = result.data.data; + } + else { + SweetAlert.swal({ + title : "�뙎湲� 紐⑸줉 �뜲�씠�꽣 媛��졇�삤湲� �떎�뙣", + text : result.message.message, + type : "error" + }); + } + }); + } + + + function formSubmit() { + if (!$rootScope.isDefined($scope.vm.form.title)) { + SweetAlert.swal({ + title : "�븷�씪 �젣紐� �엯�젰", + text : "�븷�씪 �젣紐⑹쓣 �엯�젰�븯�꽭�슂.", + type : "warning" + }); + return; + } + + var content = { + id : $scope.vm.form.id, + title : $scope.vm.form.title, // �젣紐� + description : $scope.vm.form.description, // �꽕紐� + workflowStatusId : $scope.vm.form.workflowStatusId, // �긽�깭 + priorityId : $scope.vm.form.priorityId, // �슦�꽑�닚�쐞 + userIds : (function () { + var userIds = []; + + angular.forEach($scope.vm.form.users, function (user) { + userIds.push(user.id); + }); + + return userIds; + })(), // �떞�떦�옄 + startCompleteDateRange : $scope.vm.form.startCompleteDateRange // �떆�옉�씪, 醫낅즺�씪 + }; + + Task.modify({ + method : "POST", + file : $scope.vm.form.files, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : content + }, + fileFormDataName : "file" + }) + .then(function (result) { + if (result.data.message.status == "success") { + // 蹂�寃� �궗�빆 �솕硫� �뾽�뜲�씠�듃 + $scope.fn.updateMyScreenAndOtherUsers(); + } + else { + SweetAlert.swal("�븷�씪 �닔�젙 �떎�뙣", result.data.message.message, "error"); + } + }); + } + + function cancel() { + $uibModalInstance.dismiss('cancel'); + } + + // �븷�씪 �닔�젙 �뜲�씠�꽣 + function getTaskData() { + var deferred = $q.defer(); + + $rootScope.lastTaskId = $scope.vm.form.id; + + Task.modifyData($resourceProvider.getContent( + {id : $scope.vm.form.id}, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status == "success") { + if (angular.isDefined(result.data.data)) { + $scope.vm.form.title = result.data.data.title; + $scope.vm.form.description = result.data.data.description; + $scope.vm.form.priorityId = result.data.data.priorityVo.id; + $scope.vm.form.priorityName = result.data.data.priorityVo.name; + $scope.vm.form.priorityColor = result.data.data.priorityVo.color; + $scope.vm.form.workflowStatusId = result.data.data.workflowStatusVo.id; + $scope.vm.form.workflowStatusName = result.data.data.workflowStatusVo.name; + $scope.vm.form.workflowStatusColor = result.data.data.workflowStatusVo.color; + + $scope.vm.form.registerDate = result.data.data.registerDate; + $scope.vm.form.registerName = result.data.data.registerName; + + if ($rootScope.isDefined(result.data.data.startDate)) { + $scope.vm.form.startCompleteDateRange = result.data.data.startDate + " ~ " + result.data.data.completeDate; + } + else { + $scope.vm.form.startCompleteDateRange = ""; + } + + $scope.vm.form.users = result.data.data.userVos; + $scope.vm.form.attachedFiles = result.data.data.attachedFileVos; + $scope.vm.form.taskComments = result.data.data.taskCommentVos; + // owlAutoTextHeight �떎�뻾 + $rootScope.$broadcast("dynamicTextareaHeight", {}); + } + + deferred.resolve(result); + } + else { + deferred.reject(result); + } + }); + + return deferred.promise; + } + + // �썙�겕�뵆濡쒖슦 �긽�깭 紐⑸줉 + function getWorkflowStatus() { + var deferred = $q.defer(); + + WorkflowStatus.find($resourceProvider.getContent({projectId : $rootScope.lastProject.id}, + $resourceProvider.getPageContent(0, 255))).then(function (result) { + + if (result.data.message.status == "success") { + $scope.vm.workflowStatus = result.data.data; + + angular.forEach($scope.vm.workflowStatus, function (workflowStatus) { + workflowStatus.taskVos = workflowStatus.taskVos.sort(function (a, b) { // �삤由꾩감�닚 + return a.position < b.position ? -1 : a.position > b.position ? 1 : 0; + }); + }); + + deferred.resolve(result); + } + else { + deferred.reject(result); + } + }); + + return deferred.promise; + } + + // �븷�씪 �닔�젙 �궡�슜 �떎瑜� �궗�슜�옄�뿉寃� �쟾�뙆 + function broadCastTasks(taskVo) { + var content = { + projectId : $rootScope.lastProject.id, + workflowStatusId : parameter.workflowStatusId, + taskVo : taskVo, + actionType : "/notification/task-modify" + }; + + User.taskUpdate($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + + } + else { + // TODO - �쎒 �냼耳볦쑝濡� 寃쎄퀬李� �몴�떆 + } + }); + } + + // �븷�씪�쓽 �긽�깭瑜� 蹂�寃쏀븯硫� �씠�룞�븳 �긽�깭�쓽 媛��옣 泥섏쓬�쑝濡� 諛곗튂�떆�궓�떎. + function updateTaskStatusMove() { + var content = { + moveWorkflowStatusId : $scope.vm.form.workflowStatusId, // �씠�룞�븳 status id + prevTaskId : null, // �씠�룞�븳 �긽�깭�쓽 �씠�쟾 task id + nextTaskId : null, // �씠�룞�븳 �긽�깭�쓽 �떎�쓬 task id + taskId : parameter.id, // �씠�룞�븳 task id + projectId : $rootScope.lastProject.id, + actionType : "/notification/task-move" + }; + + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("taskMoveSelf", { + content : content + }); + + Task.updateTaskKanBan($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + + } + else { + // TODO - �쎒 �냼耳볦쑝濡� 寃쎄퀬李� �몴�떆 + } + }); + } + + + function startExecute() { + var promises = { + getTaskData : $scope.fn.getTaskData(), + getWorkflowStatus : $scope.fn.getWorkflowStatus() + }; + + $q.all(promises).then(function (results) { + $log.debug("promises 寃곌낵 ", results); + }); + } + + $scope.fn.startExecute(); + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/user/user.js b/src/main/webapp/scripts/app/user/user.js new file mode 100644 index 0000000..ef871a1 --- /dev/null +++ b/src/main/webapp/scripts/app/user/user.js @@ -0,0 +1,42 @@ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('users', { + abstract: true, + url: "/users", + templateUrl: "views/common/app.html", + resolve: { + authorize: function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader: function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state("users.detail", { + url: '/user/userDetail/:id', + data: { + authorities: ["USER_TOTAL"] + }, + templateUrl: 'views/user/userDetail.html', + controller: "userDetailController", + resolve: { + loadController: ["$q", function ($q) { + var deferred = $q.defer(); + require(["userDetailController", "userModifyController", "userModifyPasswordController", "issueHistoryService", 'bootstrapDateRangePicker', 'moment', 'dateRangePicker', 'modalFormAutoScroll', + 'dateTimePicker', 'dateTimePickerFull', 'inputRegex', 'domAppend'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/user/userAdd.controller.js b/src/main/webapp/scripts/app/user/userAdd.controller.js new file mode 100644 index 0000000..05e4f94 --- /dev/null +++ b/src/main/webapp/scripts/app/user/userAdd.controller.js @@ -0,0 +1,109 @@ +/** + * Created by wisestone on 2017-12-15. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('userAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', 'SweetAlert', '$filter', 'Auth', '$state', + function ($scope, $rootScope, $log, $resourceProvider, User, SweetAlert, $filter, Auth, $state) { + + $scope.fn = { + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + onFileSelect : onFileSelect // �봽濡쒗븘 �뾽濡쒕뱶 + }; + + $scope.vm = { + form : { + name : "", + account : "", + password : "", + passwordConfirm : "", + phone : "", + profileImage : null, + status : "01", + workspaceName : "myWorkSpace", + profileImageName : null, + agreeTerm : false, + licensekey : "" + } + }; + + function onFileSelect($files) { + $scope.vm.form.profileImage = $files; + + if ($rootScope.isDefined($files)) { + $scope.vm.form.profileImageName = $files[0].name; + } + else { + $scope.vm.form.profileImageName = ""; + } + } + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.password.length < 4) { + return true; + } + + if ($scope.vm.form.passwordConfirm.length < 4) { + return true; + } + + if ($scope.vm.form.password !== $scope.vm.form.passwordConfirm) { + return true; + } + + // if (!$scope.vm.form.agreeTerm) { + // return true; + // } + + return false; + } + + function formSubmit() { + $rootScope.spinner = true; // �봽濡쒓렇�옒�뒪 諛� + + var content = angular.copy($scope.vm.form); + content.name = $rootScope.preventXss(content.name); + content.workspaceName = $rootScope.preventXss(content.workspaceName); + content.password = CryptoJS.SHA512(content.password).toString(); + content.language = $rootScope.language; // 湲곕낯 �뼵�뼱 + + User.add({ + method : "POST", + file : $scope.vm.form.profileImage, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : content + }, + fileFormDataName : "file" + }).then(function (result) { + if (result.data.message.status === "success") { + Auth.login({ + account : $rootScope.encryption($scope.vm.form.account), + password : CryptoJS.SHA512($scope.vm.form.password).toString() + }).then(function () { + $rootScope.spinner = false; + $rootScope.back(); + }).catch(function () { + $rootScope.spinner = false; + $state.go("login"); + }); + } + else { + SweetAlert.swal($filter("translate")("users.failedToCreateUser"), result.data.message.message, "error"); // "�궗�슜�옄 �깮�꽦 �떎�뙣" + $rootScope.spinner = false; + } + }); + } + + }]); + }); diff --git a/src/main/webapp/scripts/app/user/userDetail.controller.js b/src/main/webapp/scripts/app/user/userDetail.controller.js new file mode 100644 index 0000000..11714a5 --- /dev/null +++ b/src/main/webapp/scripts/app/user/userDetail.controller.js @@ -0,0 +1,125 @@ +/** + * Created by jeong on 2018-01-28. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('userDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', 'IssueHistory', '$uibModal', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, IssueHistory, $uibModal, SweetAlert, $filter) { + + // �븿�닔 + $scope.fn = { + getIssueHistoryList : getIssueHistoryList, // �씠�뒋 湲곕줉 �젙蹂� 議고쉶 + modify : modify, // �궗�슜�옄 �닔�젙 + changeSearchPeriod : changeSearchPeriod, // �씠�젰 議고쉶 寃��깋 議곌굔 蹂�寃� + modifyPassword : modifyPassword // 鍮꾨�踰덊샇 蹂�寃� + }; + + $scope.vm = { + viewer : {}, + search : { + searchPeriod : "LAST_SEVEN_DAYS", + startEndDateRange : "" // �씠�뒋 湲곕줉 議고쉶 �궇吏� + }, + issueHistoryVos : [], // �씠�뒋 湲곕줉 �젙蹂� + issueHistoryDates : [] // �씠�뒋 湲곕줉 �젙蹂� �궇吏� + }; + + // 吏곸젒 �엯�젰�뿉�꽌 �궇吏� �꽑�깮�떆 �씠�뒋 湲곕줉 �젙蹂� 議고쉶 + $scope.$watch("vm.search.startEndDateRange", function (newValue) { + if ($rootScope.isDefined(newValue)) { + $scope.fn.getIssueHistoryList(); + } + }); + + // �궗�슜�옄 �닔�젙 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/user/userModify.html', + size : "md", + controller : "userModifyController", + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �궗�슜�옄 鍮꾨�踰덊샇 蹂�寃� + function modifyPassword(id) { + $uibModal.open({ + templateUrl : 'views/user/userModifyPassword.html', + size : "md", + controller : "userModifyPasswordController", + backdrop : 'static', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �씠�뒋 湲곕줉 �젙蹂� 議고쉶 + function getIssueHistoryList() { + var content = { + searchPeriod : $scope.vm.search.searchPeriod, + searchStartDate : "", + searchEndDate : "" + }; + + if ($rootScope.isDefined($scope.vm.search.startEndDateRange)) { + var startEndDateRange = $scope.vm.search.startEndDateRange.split("~"); + content.searchStartDate = startEndDateRange[0].trim(); + content.searchEndDate = startEndDateRange[1].trim(); + } + + IssueHistory.find($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueHistoryDates = Object.keys(result.data.data.issueHistoryGroups); // 湲곕줉 �궇吏� �닔吏� + + $scope.vm.issueHistoryDates.sort(function (a, b) { + var c = new Date(a); + var d = new Date(b); + return d - c; + }); + + $scope.vm.issueHistoryVos = result.data.data.issueHistoryGroups; // �씠�뒋 湲곕줉 �젙蹂� + } + else { + SweetAlert.swal($filter("translate")("users.failedToRetrieveIssueHistory"), result.data.message.message, "error"); // "�씠�뒋 湲곕줉 �젙蹂� 議고쉶 �떎�뙣" + } + }); + } + + // �씠�젰 議고쉶 寃��깋 議곌굔 蹂�寃� + function changeSearchPeriod() { + switch ($scope.vm.search.searchPeriod) { + case "CUSTOM_INPUT" : + $scope.vm.search.startEndDateRange = ""; + break; + default : + $scope.vm.search.startEndDateRange = ""; + $scope.fn.getIssueHistoryList(); + } + } + + + // �씠�뒋 湲곕줉 �젙蹂� 議고쉶 + $scope.fn.getIssueHistoryList(); + + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/user/userModify.controller.js b/src/main/webapp/scripts/app/user/userModify.controller.js new file mode 100644 index 0000000..6647595 --- /dev/null +++ b/src/main/webapp/scripts/app/user/userModify.controller.js @@ -0,0 +1,174 @@ +/** + * Created by wisestone on 2017-12-15. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('userModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', '$uibModalInstance', 'parameter', 'SweetAlert', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, User, $uibModalInstance, parameter, SweetAlert, $timeout, $filter) { + + $scope.fn = { + cancel: cancel, // �뙘�뾽 李� �떕湲� + formSubmit: formSubmit, // �뤌 �쟾�넚 + formCheck: formCheck, // �뤌 泥댄겕 + detail: detail, // �긽�꽭 �젙蹂� 議고쉶 + withDraw : withDraw, // �쉶�썝 �깉�눜 + onFileSelect : onFileSelect // �봽濡쒗븘 �뾽濡쒕뱶 + }; + + $scope.vm = { + form: { + id: parameter.id, + account: "", + name: "", + phone: "", + reservationNotifyTime : "", // �씠硫붿씪 �븣由� �떆媛� + profileImage : null, // �뾽濡쒕뱶�븯�뒗 �봽濡쒗븘 + profileImageName : null // �봽濡쒗븘 紐� + } + }; + + // �쉶�썝 �깉�눜 + function withDraw() { + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("users.membershipWithdrawal"), // �쉶�썝 �깉�눜 + text : $filter("translate")("users.proceedWithMembershipWithdrawal"), // �쉶�썝 �깉�눜瑜� 吏꾪뻾�븯寃좎뒿�땲源�? �쉶�썝 �깉�눜瑜� �븯硫� �뾽臾� 怨듦컙�쓽 紐⑤뱺 �뜲�씠�꽣媛� �궗�씪吏�怨� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("users.withdrawal"), // "�깉�눜" + cancelButtonText : $filter("translate")("common.cancel"), // "痍⑥냼" + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + if (isConfirm) { + $rootScope.spinner = true; + + User.withDraw($resourceProvider.getContent( + {}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + SweetAlert.success($filter("translate")("users.successWithdrawalFromMembership"), $filter("translate")("users.completedWithdrawalFromOwlITS")); // "�쉶�썝 �깉�눜 �꽦怨�", "OWL ITS �뿉�꽌 �깉�눜媛� �셿猷뚮릺�뿀�뒿�땲�떎." + // 濡쒓렇�븘�썐 �떎�뻾 - common.controller.js $broadcast + $rootScope.$broadcast("logout"); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("users.failedMemberWithdrawal"), result.data.message.message); // "�쉶�썝 �깉�눜 �떎�뙣" + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + // �긽�꽭 �젙蹂� 議고쉶 + function detail() { + User.detail($resourceProvider.getContent( + { + id : $rootScope.user.id, + deep : "01" + }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + $scope.vm.form.name = result.data.data.name; + $scope.vm.form.account = result.data.data.account; + $scope.vm.form.phone = result.data.data.phone; + $scope.vm.form.reservationNotifyTime = result.data.data.reservationNotifyTime; + } + else { + SweetAlert.swal($filter("translate")("users.failedToSelectUserDetail"), result.data.message.message, "error"); // "�궗�슜�옄 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣" + } + }); + } + + // �봽濡쒗븘 �뾽濡쒕뱶 + function onFileSelect($files) { + $scope.vm.form.profileImage = $files; + + if ($rootScope.isDefined($files)) { + $scope.vm.form.profileImageName = $files[0].name; + } + else { + $scope.vm.form.profileImageName = ""; + } + } + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = angular.copy($scope.vm.form); + content.name = $rootScope.preventXss(content.name); + content.phone = $rootScope.preventXss(content.phone); + content.profile = $scope.vm.form.profileImageName; + + User.modify({ + method : "POST", + file : $scope.vm.form.profileImage, + // data �냽�꽦�쑝濡� 蹂꾨룄�쓽 �뜲�씠�꽣 �쟾�넚 + fields : { + content : content + }, + fileFormDataName : "file" + }) + .then(function (result) { + if (result.data.message.status === "success") { + User.getUserSession({}).then(function (result) { + if (result.message.status === "success") { + if (result.data != null) { + $rootScope.user = result.data; // �쟾�뿭�쑝濡� �궗�슜�븯�뒗 濡쒓렇�씤 �궗�슜�옄 �젙蹂�. + } + else { + throw {message: $filter("translate")("users.notExistUserSession")}; // "�궗�슜�옄 �꽭�뀡�씠 議댁옱�븯吏� �븡�뒿�땲�떎." + } + } + else { + throw {message: $filter("translate")("users.notExistUserSession")}; // "�궗�슜�옄 �꽭�뀡�씠 議댁옱�븯吏� �븡�뒿�땲�떎." + } + + $rootScope.spinner = false; + }); + + $scope.fn.cancel(); + } + else { + SweetAlert.swal({ + title : $filter("translate")("users.failedToModifyUser"), // "�궗�슜�옄 �닔�젙 �떎�뙣" + text : result.data.message.message, + type : "error" + }); + + $rootScope.spinner = false; + } + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + $scope.fn.detail(); + }]); + }); diff --git a/src/main/webapp/scripts/app/user/userModifyPassword.controller.js b/src/main/webapp/scripts/app/user/userModifyPassword.controller.js new file mode 100644 index 0000000..2cb9312 --- /dev/null +++ b/src/main/webapp/scripts/app/user/userModifyPassword.controller.js @@ -0,0 +1,87 @@ +/** + * Created by wisestone on 2018-10-16. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('userModifyPasswordController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', '$uibModalInstance', 'parameter', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, User, $uibModalInstance, parameter, SweetAlert, $filter) { + + $scope.fn = { + cancel: cancel, // �뙘�뾽 李� �떕湲� + formSubmit: formSubmit, // �뤌 �쟾�넚 + formCheck: formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form: { + id : parameter.id, + currentPassword : "", // �쁽�옱 鍮꾨�踰덊샇 + password : "", // 鍮꾨�踰덊샇 + passwordConfirm : "" // �떊洹� 鍮꾨�踰덊샇 �솗�씤 + } + }; + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if (!$rootScope.isDefined($scope.vm.form.currentPassword) || !$rootScope.isDefined($scope.vm.form.password) || !$rootScope.isDefined($scope.vm.form.passwordConfirm)) { + return true; + } + + if ($scope.vm.form.password.length < 4) { + return true; + } + + if ($scope.vm.form.passwordConfirm.length < 4) { + return true; + } + + if ($scope.vm.form.password !== $scope.vm.form.passwordConfirm) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : $scope.vm.form.id, + currentPassword : CryptoJS.SHA512($scope.vm.form.currentPassword).toString(), + password : CryptoJS.SHA512($scope.vm.form.password).toString(), + passwordConfirm : CryptoJS.SHA512($scope.vm.form.passwordConfirm).toString() + }; + + User.modifyPassword($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + SweetAlert.swal($filter("translate")("users.completedPasswordChange"), result.data.message.message, "success"); // "鍮꾨�踰덊샇 蹂�寃� �셿猷�" + $scope.fn.cancel(); + } + else { + SweetAlert.swal($filter("translate")("users.failedPasswordChange"), result.data.message.message, "error"); // "鍮꾨�踰덊샇 蹂�寃� �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/user/userPassword.controller.js b/src/main/webapp/scripts/app/user/userPassword.controller.js new file mode 100644 index 0000000..759a11e --- /dev/null +++ b/src/main/webapp/scripts/app/user/userPassword.controller.js @@ -0,0 +1,66 @@ +/** + * Created by wisestone on 2018-04-02. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app) { + app.controller('userPasswordController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', '$uibModalInstance', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, User, $uibModalInstance, SweetAlert, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽李� �떕湲� + formCheck : formCheck, // �뤌 泥댄겕 + formSubmit : formSubmit // �뤌 �쟾�넚 + }; + + $scope.vm = { + form : { + account : "" + } + }; + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + account : $rootScope.encryption($scope.vm.form.account) + }; + + User.returnEmailPassword($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + SweetAlert.success($filter("translate")("users.temporaryPasswordIssue"), result.data.message.message); // "�엫�떆 鍮꾨�踰덊샇 諛쒓툒" + $scope.fn.cancel(); + } + else { + SweetAlert.error($filter("translate")("users.failedRequestFindPassword"), result.data.message.message); // "鍮꾨�踰덊샇 李얘린 �슂泥� �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/userInvite/userInvite.controller.js b/src/main/webapp/scripts/app/userInvite/userInvite.controller.js new file mode 100644 index 0000000..087eb26 --- /dev/null +++ b/src/main/webapp/scripts/app/userInvite/userInvite.controller.js @@ -0,0 +1,234 @@ +/** + * Created by wisestone on 2017-12-15. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('userInviteController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'UserInvite', '$uibModalInstance', 'SweetAlert', '$timeout', '$q', '$filter', '$controller', '$injector', 'User', + function ($scope, $rootScope, $log, $resourceProvider, UserInvite, $uibModalInstance, SweetAlert, $timeout, $q, $filter, $controller, $injector, User) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + addEmail : addEmail, // �씠硫붿씪 異붽� + removeUser : removeUser, // �궗�슜�옄 �궘�젣 + removeEmail : removeEmail, // �씠硫붿씪 �궘�젣 + getAllUserList : getAllUserList, // �쟾泥� �떆�뒪�뀥�뿉 媛��엯�맂 �궗�슜�옄瑜� 議고쉶�븳�떎. + getProjectListCallBack : getProjectListCallBack, // �봽濡쒖젥�듃 auto complete �럹�씠吏� �뾽�뜲�씠�듃 + getUserListCallBack : getUserListCallBack // �궗�슜�옄 auto complete �럹�씠吏� �뾽�뜲�씠�듃 + }; + + $scope.vm = { + form : { + users : [], // �떆�뒪�뀥�뿉 媛��엯�맂 �궗�슜�옄 珥덈� + projects : [], // 李몄뿬�떆�궗 �봽濡쒖젥�듃 + emails : [], // 硫붿씪 二쇱냼 + email : "", // �씠硫붿씪 + }, + userName : "", + projectName : "", + autoCompletePage : { + project : { + page : 0, + totalPage : 0 + }, + user : { + page : 0, + totalPage : 0 + } + } + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �쟾泥� �뾽臾� 怨듦컙�쓽 �궗�슜�옄瑜� 議고쉶�븳�떎. + function getAllUserList(query, excludeList, page, callBack) { + var conditions = { + name : query, + statuses : ["01"], + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + User.findByAllWorkspace($resourceProvider.getContent( // �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎. + conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { + if (result.data.message.status === "success") { + + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + + deferred.resolve(result.data.data); + } + else { + SweetAlert.swal($filter("translate")("common.failedToUserListLookUp"), result.data.message.message, "error"); // "�궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + return deferred.promise; + } + + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + if ($scope.vm.form.projects.length < 1) { + return true; + } + + if ($scope.vm.form.emails.length < 1 && $scope.vm.form.users.length < 1) { + return true; + } + + return false; + } + + // �씠硫붿씪 異붽� + function addEmail() { + if ($rootScope.isDefined($scope.vm.form.email)) { + var regex = new RegExp("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$"); + + if (regex.test($scope.vm.form.email)) { + var duplicateCheck = false; + + for (var count in $scope.vm.form.emails) { + var email = $scope.vm.form.emails[count]; + + if (email === $scope.vm.form.email) { + duplicateCheck = true; + break; + } + } + + if (duplicateCheck) { + SweetAlert.warning($filter("translate")("users.duplicateEmail"), $filter("translate")("users.duplicateEmailEntered")); // �씠硫붿씪�씠 �옒紐� �엯�젰�릺�뿀�뒿�땲�떎. + } + else { + $scope.vm.form.emails.push($scope.vm.form.email); + $scope.vm.form.email = ""; + + $timeout(function () { + $("#userInviteForm1").trigger("focus") + }, 200); + } + } + else { + SweetAlert.warning($filter("translate")("users.confirmEmailInput"), $filter("translate")("users.emailEnteredIncorrectly")); // �씠硫붿씪�씠 �옒紐� �엯�젰�릺�뿀�뒿�땲�떎. + } + } + else { + SweetAlert.warning($filter("translate")("users.confirmEmailInput"), $filter("translate")("users.noEmailEntered")); // �씠硫붿씪�씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎. + } + } + + // �궗�슜�옄 �궘�젣 + function removeUser(index) { + $scope.vm.form.users.splice(index, 1); + } + + // �씠硫붿씪 �궘�젣 + function removeEmail(index) { + $scope.vm.form.emails.splice(index, 1); + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + emails : (function () { + var tmpEmails = []; // 珥덈��븯�뒗 �궗�슜�옄 ���옣 + var inviteEmails = [];// 珥덈��븯�뒗 �궗�슜�옄 �씠硫붿씪 �븫�샇�솕 + + angular.forEach($scope.vm.form.users, function (user) { + var duplicateCheck = false; + + for (var count in $scope.vm.form.emails) { + var email = $scope.vm.form.emails[count]; + + if (email === user.account) { + duplicateCheck = true; + break; + } + } + + if (!duplicateCheck) { + tmpEmails.push(user.account); + } + }); + + tmpEmails = tmpEmails.concat($scope.vm.form.emails); + + angular.forEach(tmpEmails, function(email) { + inviteEmails.push($rootScope.encryption(email)); + }); + + return inviteEmails; + })(), + projectIds : (function () { + var projectIds = []; + angular.forEach($scope.vm.form.projects, function (project) { + projectIds.push(project.id); + }); + + return projectIds; + })() + }; + + UserInvite.invite($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status === "success") { + // �굹�쓽 �뾽臾� 怨듦컙 愿�由ъ쓽 李몄뿬 媛��뒫 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getUserWorkspaceList", {}); + // �뾽臾� 怨듦컙 �젙蹂대룄 媛깆떊 + $rootScope.$broadcast("findMyWorkspace", {}); + + $scope.fn.cancel(); + + SweetAlert.success($filter("translate")("users.successInviteMail"), result.data.message.message); + } + else { + SweetAlert.error($filter("translate")("users.failedInviteMail"), result.data.message.message); // "珥덈� 硫붿씪 諛쒖넚 �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �봽濡쒖젥�듃 autocomplete �럹�씠吏� �젙蹂� �뾽�뜲�씠�듃 + function getProjectListCallBack(result) { + $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; + } + + // �궗�슜�옄 autocomplete �럹�씠吏� �젙蹂� �뾽�뜲�씠�듃 + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + }]); + }); diff --git a/src/main/webapp/scripts/app/widget/widget.js b/src/main/webapp/scripts/app/widget/widget.js new file mode 100644 index 0000000..2cf1cbb --- /dev/null +++ b/src/main/webapp/scripts/app/widget/widget.js @@ -0,0 +1,43 @@ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('dashboards', { + abstract : true, + url : "/dashboards", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader: function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('dashboards.dashboard', { + url : "/dashboard", + data : { + authorities : ['DASHBOARD_TOTAL'] + }, + templateUrl : "views/widget/widgetDashBoard.html", + controller : "widgetDashBoardController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["widgetDashBoardController", "widgetService", "tableUserImage", "d3", "nvd3", "issueCompleteWidget", "issueStatusWidget", "myAssigneeIssueWidget", "issueTypeWidget", + "delayIssueWidget", "registerIssueWidget", "riskIssueWidget", "myIssueWidget", "memberProgressWidget", "projectProgressWidget", "issueStatisticsWidget", "severityIssueWidget", + "workflowWidget", "projectMemberListController", "jsWorkflowDisabled", 'd3', 'formSubmit'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }) + }); + }); diff --git a/src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js b/src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js new file mode 100644 index 0000000..0bab9d8 --- /dev/null +++ b/src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js @@ -0,0 +1,80 @@ +/** + * Created by wisestone on 2018-10-30. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('widgetDashBoardController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'Widget', 'SweetAlert', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, Widget, SweetAlert, $filter) { + + // �븿�닔 紐⑥쓬 + $scope.fn = { + findAllWidget : findAllWidget // ���떆蹂대뱶 �쐞�젽 �쟾泥� 議고쉶 + }; + + // 蹂��닔 紐⑥쓬 + $scope.vm = { + issueStatisticsWidget : null, // �쟾泥� �씠�뒋 �쁽�솴 + projectProgressWidget : null, // 吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴 + myAssigneeIssueWidget : null, // �굹�뿉寃� �븷�떦�맂 �씠�뒋 + delayIssueWidget : null, // 吏��뿰以묒씤 �씠�뒋 + registerIssueWidget : null, // �궡媛� �벑濡앺븳 �씠�뒋 + memberProgressWidget : null, // 硫ㅻ쾭蹂� 吏꾪뻾瑜� + myIssueWidget : null, // �굹�쓽 �씠�뒋 �쁽�솴 + riskIssueWidget : null, // �쐞�뿕 愿�由� �씠�뒋 + issueCompleteWidget : null, // �쟾泥� �씠�뒋 泥섎━ �쁽�솴 + issueStatusWidget : [], // �긽�깭蹂� �씠�뒋 �쁽�솴 + workflowWidget : null, // �썙�겕�뵆濡쒖슦 + issueTypeWidget : null, // �씠�뒋 �쑀�삎蹂� �씠�뒋 �쁽�솴 + severityIssueWidget: null, // 以묒슂�룄 蹂� �씠�뒋 �쁽�솴 + }; + + // ���떆蹂대뱶 �쐞�젽 �쟾泥� 議고쉶 + function findAllWidget() { + Widget.findAllWidget($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.issueStatisticsWidget = result.data.issueStatisticsWidget; + // 吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴 �젙蹂대�� ���옣�븳�떎. + $scope.vm.projectProgressWidget = result.data.projectProgressWidget; + // �굹�뿉寃� �븷�떦�맂 �씠�뒋 �젙蹂대�� ���옣�븳�떎. + $scope.vm.myAssigneeIssueWidget = result.data.myAssigneeIssueWidget; + // 吏��뿰以묒씤 �씠�뒋 �젙蹂대�� ���옣�븳�떎. + $scope.vm.delayIssueWidget = result.data.delayIssueWidget; + // �궡媛� �벑濡앺븳 �씠�뒋 �젙蹂대�� ���옣�븳�떎. + $scope.vm.registerIssueWidget = result.data.registerIssueWidget; + // �쐞�뿕 愿�由� �씠�뒋 �젙蹂대�� ���옣�븳�떎. + $scope.vm.riskIssueWidget = result.data.riskIssueWidget; + // �굹�쓽 �씠�뒋 �쁽�솴 �젙蹂대�� ���옣�븳�떎. + $scope.vm.myIssueWidget = result.data.myIssueWidget; + // 硫ㅻ쾭蹂� 吏꾪뻾瑜좎쓣 ���옣�븳�떎. + $scope.vm.memberProgressWidget = result.data.memberProgressWidget; + // �쟾泥� �씠�뒋 泥섎━ �쁽�솴 �젙蹂대�� ���옣�븳�떎. + $scope.vm.issueCompleteWidget = result.data.issueCompleteWidget; + // �긽�깭蹂� �씠�뒋 �쁽�솴 �젙蹂대�� ���옣�븳�떎. + $scope.vm.issueStatusWidget = result.data.issueStatusWidget; + // �썙�겕�뵆濡쒖슦 �젙蹂대�� ���옣�븳�떎. + $scope.vm.workflowWidget = result.data.workflowWidget; + // �씠�뒋 �쑀�삎蹂� �씠�뒋 �쁽�솴 �젙蹂대�� ���옣�븳�떎. + $scope.vm.issueTypeWidget = result.data.issueTypeWidget; + // 以묒슂�룄 蹂� �씠�뒋 �쁽�솴 �젙蹂대�� ���옣�븳�떎. + $scope.vm.severityIssueWidget = result.data.severityIssueWidget; + + $rootScope.dashboard = result.data.dashboardType; + } + else { + SweetAlert.swal($filter("translate")("dashboard.failedDashboardWidgetLookup"), result.data.message.message, "error"); // "���떆蹂대뱶 �쐞�젽 議고쉶 �떎�뙣" + } + }); + } + + // �쟾泥� �씠�뒋 �쐞�젽 �젙蹂� 議고쉶 + $scope.fn.findAllWidget(); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/workflow/workflow.js b/src/main/webapp/scripts/app/workflow/workflow.js new file mode 100644 index 0000000..83b5f95 --- /dev/null +++ b/src/main/webapp/scripts/app/workflow/workflow.js @@ -0,0 +1,45 @@ +/** + * Created by wisestone on 2018-05-10. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('workflows', { + abstract : true, + url : "/workflow", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('workflows.list', { + url : '/workflowList', + data : { + authorities : ['WORKFLOW_TOTAL'] + }, + templateUrl : 'views/workflow/workflowList.html', + controller : "workflowListController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["workflowListController", 'workflowAddController', 'workflowModifyController', 'jsTable', 'tableColumnGenerator', 'workflowService', 'd3', 'd3ContextMenu', + 'jsWorkflow', 'colorPalette', 'colorPalettePicker', 'modalFormAutoScroll', 'issueStatusService', 'formSubmit', 'jsShortCut', 'inputRegex'], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); diff --git a/src/main/webapp/scripts/app/workflow/workflowAdd.controller.js b/src/main/webapp/scripts/app/workflow/workflowAdd.controller.js new file mode 100644 index 0000000..4c50550 --- /dev/null +++ b/src/main/webapp/scripts/app/workflow/workflowAdd.controller.js @@ -0,0 +1,90 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('workflowAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'User', '$uibModalInstance', 'Workflow', 'SweetAlert', 'IssueStatus', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, User, $uibModalInstance, Workflow, SweetAlert, IssueStatus, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + name : "", // �썙�겕�뵆濡쒖슦 紐� + issueStatusVos : [] // �떎�씠�뼱洹몃옩�뿉�꽌 留뚮뱾�뼱吏� �씠�뒋 �긽�깭 紐⑥쓬 + }, + issueStatusVos : [], // �떎�씠�뼱洹몃옩 �뿉�뵒�꽣�뿉�꽌 �씠 媛믪쓣 媛먯��븯硫댁꽌 議고쉶媛� �떆�옉�맂�떎. + step : "01", + isolationWorkflow : true, // �썙�겕�뵆濡쒖슦�뿉 怨좊┰�맂 �씠�뒋 �긽�깭媛� �엳�뒗吏� �뿬遺�瑜� 泥댄겕�븳�떎. + firstStatusExist : true, // �썙�겕�뵆濡쒖슦�뿉 �긽�깭 �냽�꽦 '��湲�'�씤 �긽�깭媛� 議댁옱�븯�뒗吏� 泥댄겕�븳�떎. + middleStatusExist : true, // �썙�겕�뵆濡쒖슦�뿉 �긽�깭 �냽�꽦 '吏꾪뻾'�씤 �긽�깭媛� 議댁옱�븯�뒗吏� 泥댄겕�븳�떎. + lastStatusExist : true, // �썙�겕�뵆濡쒖슦�뿉 �긽�깭 �냽�꽦 '醫낅즺'�씤 �긽�깭媛� 議댁옱�븯�뒗吏� 泥댄겕�븳�떎. + }; + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + name : $rootScope.preventXss($scope.vm.form.name), + issueStatusVos : $scope.vm.form.issueStatusVos, + nodes : (function () { + var keys = Object.keys($scope.vm.form.nodes); + var nodes = []; + + angular.forEach(keys, function (key) { + var node = $scope.vm.form.nodes[key]; + + if ($rootScope.isDefined(node)) { + nodes.push(node); + } + }); + + return nodes; + })(), + links : $scope.vm.form.links + }; + + Workflow.add($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getWorkflowList", {}); + } + else { + SweetAlert.error($filter("translate")("managementWorkflow.failedCreateWorkflow"), result.data.message.message); // �썙�겕�뵆濡쒖슦 �깮�꽦 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + }]); + }); diff --git a/src/main/webapp/scripts/app/workflow/workflowList.controller.js b/src/main/webapp/scripts/app/workflow/workflowList.controller.js new file mode 100644 index 0000000..d9e6ec6 --- /dev/null +++ b/src/main/webapp/scripts/app/workflow/workflowList.controller.js @@ -0,0 +1,246 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('workflowListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', 'Workflow', 'SweetAlert', '$injector', '$controller', '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, Workflow, SweetAlert, $injector, $controller, $timeout, $filter) { + + // �븿�닔 + $scope.fn = { + initSearch : initSearch, // 寃��깋 珥덇린�솕 + getPageList : getPageList, // 紐⑸줉 議고쉶 + changePageRowCount : changePageRowCount, // �럹�씠吏� 蹂�寃� + makeTableConfigs : makeTableConfigs, // �뀒�씠釉� �꽕�젙 + add : add, // �썙�겕�뵆濡쒖슦 �깮�꽦 + removes : removes, // �썙�겕�뵆濡쒖슦 �궘�젣 + makeSearchConditions : makeSearchConditions, // �썙�겕�뵆濡쒖슦 寃��깋 議곌굔�쓣 留뚮뱺�떎. + getProjectListCallBack : getProjectListCallBack // �봽濡쒖젥�듃 議고쉶 �꽑�깮 寃곌낵 肄쒕갚 + }; + + // 蹂��닔 + $scope.vm = { + search : { + name : "" // �썙�겕�뵆濡쒖슦 紐� + }, + projectName : "", // �봽濡쒖젥�듃 寃��깋 + autoCompletePage : { + project : { + page : 0, + totalPage : 0 + } + }, + page : { + selectedPage : 0, + selectedPageRowCount : String(10) + }, + tableConfigs : [], + responseData : { + data : [] + } + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.tableEvent = { + modify : modify + }; + + // �썙�겕�뵆濡쒖슦 紐⑸줉 �솕硫� �깉濡� 怨좎묠 + $scope.$on("getWorkflowList", function () { + $scope.fn.getPageList(0); + }); + + $scope.$watch("vm.search.projects", function () { + $scope.fn.getPageList(0); + }); + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �썙�겕�뵆濡쒖슦 紐⑸줉 �뀒�씠釉� �꽕�젙 + 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("common.workflow") + .setHWidth("bold") + .setDName("name") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("COMMON_MODIFY")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("managementWorkflow.connectedIssueType") + .setHWidth("width-300-p bold") + .setDAlign("text-center") + .setDType("renderer") + .setDRenderer("USE_ISSUE_TYPE_LIST")); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $state.go($state.current, {}, {reload : true}); + } + + // �썙�겕�뵆濡쒖슦 寃��깋 議곌굔�쓣 留뚮뱺�떎. + function makeSearchConditions() { + return { + name : $scope.vm.search.name + }; + } + + + // �썙�겕�뵆濡쒖슦 紐⑸줉 議고쉶 + function getPageList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + // �썙�겕�뵆濡쒖슦 寃��깋 議곌굔�쓣 留뚮뱺�떎. + var conditions = $scope.fn.makeSearchConditions(); + + Workflow.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.swal($filter("translate")("managementWorkflow.failedWorkflowListLookup"), result.data.message.message, "error"); // �썙�겕�뵆濡쒖슦 紐⑸줉 議고쉶 �떎�뙣 + } + }); + } + + function changePageRowCount() { + $scope.fn.getPageList(0); + } + + // �썙�겕�뵆濡쒖슦 �깮�꽦 �뙘�뾽 + function add() { + $uibModal.open({ + templateUrl : 'views/workflow/workflowAdd.html', + size : "xlg", + controller : 'workflowAddController', + backdrop : 'static', + windowClass : 'workflow-window' + }); + } + + // �썙�겕�뵆濡쒖슦 �닔�젙 �뙘�뾽 + function modify(id) { + $uibModal.open({ + templateUrl : 'views/workflow/workflowModify.html', + size : "xlg", + controller : 'workflowModifyController', + backdrop : 'static', + windowClass : 'workflow-window', + resolve : { + parameter : function () { + return { + id : id + }; + } + } + }); + } + + // �썙�겕�뵆濡쒖슦 �궘�젣 �뙘�뾽 + function removes() { + var removeIds = []; + var notRemoveWorkflowNames = ""; + var removePermission = true; + + angular.forEach($scope.vm.responseData.data, function (data) { + if (data.checked) { + removeIds.push(data.id); + } + }); + + if (!removePermission) { + SweetAlert.swal({ + html : true, + title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣 + text : $filter("translate")("managementWorkflow.notHaveDeletePermissionExistsWorkflow") + notRemoveWorkflowNames, //�궘�젣 沅뚰븳�씠 �뾾�뒗 �썙�겕�뵆濡쒖슦媛� 議댁옱�빀�땲�떎. + type : "error" + }); + return; + } + + if (removeIds.length < 1) { + SweetAlert.swal({ + title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤 + text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂. + type : "warning" + }); + return; + } + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("managementWorkflow.deleteWorkflow"), //�썙�겕�뵆濡쒖슦 �궘�젣 + text : $filter("translate")("managementWorkflow.wantToDeleteTheSelectedWorkflow"), // �꽑�깮�븳 �썙�겕�뵆濡쒖슦瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �썙�겕�뵆濡쒖슦�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + Workflow.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + // �봽濡쒖젥�듃 寃��깋 + function getProjectListCallBack(result) { + $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; + } + + $scope.fn.makeTableConfigs(); + } + ]); + } +); diff --git a/src/main/webapp/scripts/app/workflow/workflowModify.controller.js b/src/main/webapp/scripts/app/workflow/workflowModify.controller.js new file mode 100644 index 0000000..9d63774 --- /dev/null +++ b/src/main/webapp/scripts/app/workflow/workflowModify.controller.js @@ -0,0 +1,116 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app', + 'angular', + 'saveSvgAsPng' + ], + function (app, angular, saveSvgAsPng) { + app.controller('workflowModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'Workflow', 'parameter', 'SweetAlert', '$window', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, Workflow, parameter, SweetAlert, $window, $filter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� 議고쉶 + }; + + $scope.vm = { + search : { + id : parameter.id, + deep : "01" // �썙�겕�뵆濡쒖슦 �뿰愿��맂 紐⑤뱺 �젙蹂대�� �뼱�뒓�젙�룄源뚯� 媛��졇�삱吏� 寃곗젙, 01 - �씪諛� �젙蹂�, �뿰愿��맂 �젙蹂� + }, + form : { + id : parameter.id, + name : "", + issueStatusVos : [], // �떎�씠�뼱洹몃옩�뿉 �긽�깭瑜� 二쇱엯�븯怨� 留뚮뱾�뼱吏� �긽�깭 紐⑥쓬 - �썙�겕�뵆濡쒖슦 �깮�꽦怨� 議곌툑 �떎瑜닿쾶 �궗�슜�맂�떎. + }, + step : "01", + isolationWorkflow : true, // �썙�겕�뵆濡쒖슦�뿉 怨좊┰�맂 �씠�뒋 �긽�깭媛� �엳�뒗吏� �뿬遺�瑜� 泥댄겕�븳�떎. + firstStatusExist : true, // �썙�겕�뵆濡쒖슦�뿉 �긽�깭 �냽�꽦 '��湲�'�씤 �긽�깭媛� 議댁옱�븯�뒗吏� 泥댄겕�븳�떎. + middleStatusExist : true, // �썙�겕�뵆濡쒖슦�뿉 �긽�깭 �냽�꽦 '吏꾪뻾'�씤 �긽�깭媛� 議댁옱�븯�뒗吏� 泥댄겕�븳�떎. + lastStatusExist : true, // �썙�겕�뵆濡쒖슦�뿉 �긽�깭 �냽�꽦 '醫낅즺'�씤 �긽�깭媛� 議댁옱�븯�뒗吏� 泥댄겕�븳�떎. + }; + + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id, + name : $rootScope.preventXss($scope.vm.form.name), + issueStatusVos : $scope.vm.form.issueStatusVos, + nodes : (function () { + var keys = Object.keys($scope.vm.form.nodes); + var nodes = []; + + angular.forEach(keys, function (key) { + var node = $scope.vm.form.nodes[key]; + + if ($rootScope.isDefined(node)) { + nodes.push(node); + } + }); + + return nodes; + })(), + links : $scope.vm.form.links + }; + + Workflow.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + $rootScope.$broadcast("getWorkflowList", {}); + } + else { + SweetAlert.error($filter("translate")("managementWorkflow.failedToModifyWorkflow"), result.data.message.message); // �썙�겕�뵆濡쒖슦 �닔�젙 �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + function detail() { + Workflow.detail($resourceProvider.getContent( + $scope.vm.search, + $resourceProvider.getPageContent(0, 1))).then(function (result) { + + if (result.data.message.status === "success") { + if (angular.isDefined(result.data.data)) { + $scope.vm.form.name = result.data.data.name; + $scope.vm.form.issueStatusVos = result.data.data.issueStatusVos; + $scope.vm.issueStatusVos = []; // �떎�씠�뼱洹몃옩 �뿉�뵒�꽣�뿉�꽌 �씠 媛믪쓣 媛먯��븯硫댁꽌 議고쉶媛� �떆�옉�맂�떎. + } + } + else { + SweetAlert.error($filter("translate")("managementWorkflow.failedToWorkflowDetails"), result.data.message.message); // �썙�겕�뵆濡쒖슦 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣 + } + }); + } + + $scope.fn.detail(); + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workflowStatus/workflowStatusAdd.controller.js b/src/main/webapp/scripts/app/workflowStatus/workflowStatusAdd.controller.js new file mode 100644 index 0000000..154d692 --- /dev/null +++ b/src/main/webapp/scripts/app/workflowStatus/workflowStatusAdd.controller.js @@ -0,0 +1,59 @@ +/** + * Created by wisestone on 2019-02-19. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('workflowStatusAddController', ['$scope', '$rootScope', '$log', '$resourceProvider','$uibModalInstance', 'WorkflowStatus', 'parameter', 'SweetAlert', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, WorkflowStatus, parameter, SweetAlert) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + projectId : parameter.projectId, + name : "", + color : "" + } + }; + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + WorkflowStatus.add($resourceProvider.getContent( + $scope.vm.form, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status == "success") { + $scope.fn.cancel(); + // 紐⑸줉 �솕硫� 媛깆떊 + /*$rootScope.$broadcast("getProjectList", {});*/ + } + else { + SweetAlert.swal("�긽�깭 �깮�꽦 �떎�뙣", result.data.message.message, "error"); + } + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $uibModalInstance.dismiss('cancel'); + } + + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workflowStatus/workflowStatusModify.controller.js b/src/main/webapp/scripts/app/workflowStatus/workflowStatusModify.controller.js new file mode 100644 index 0000000..7cb18ac --- /dev/null +++ b/src/main/webapp/scripts/app/workflowStatus/workflowStatusModify.controller.js @@ -0,0 +1,78 @@ +/** + * Created by wisestone on 2019-02-19. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('workflowStatusModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider','$uibModalInstance', 'WorkflowStatus', 'parameter', 'SweetAlert', '$state', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, WorkflowStatus, parameter, SweetAlert, $state) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + formCheck : formCheck, // �뤌 泥댄겕 + detail : detail // �긽�꽭 �젙蹂� 議고쉶 + }; + + $scope.vm = { + form : { + id : parameter.id, + projectId : "", + name : "", + color : "" + } + }; + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + WorkflowStatus.modify($resourceProvider.getContent( + $scope.vm.form, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status == "success") { + $scope.fn.cancel(); + $state.go($state.current, {}, {reload : true}); + } + else { + SweetAlert.swal("�긽�깭 �닔�젙 �떎�뙣", result.data.message.message, "error"); + } + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $uibModalInstance.dismiss('cancel'); + } + + // �긽�꽭 �젙蹂� + function detail() { + WorkflowStatus.detail($resourceProvider.getContent( + $scope.vm.form, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + + if (result.data.message.status == "success") { + $scope.vm.form.name = result.data.data.name; + $scope.vm.form.color = result.data.data.color; + } + else { + SweetAlert.swal("�긽�깭 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", result.data.message.message, "error"); + } + }); + } + + $scope.fn.detail(); + + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspace.controller.js b/src/main/webapp/scripts/app/workspace/workspace.controller.js new file mode 100644 index 0000000..8a778de --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspace.controller.js @@ -0,0 +1,64 @@ +/** + * Created by wisestone on 2018-02-13. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('workspaceController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', 'Workspace', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, Workspace, $filter) { + + $scope.fn = { + changeTab : changeTab, // �꺆 蹂�寃� + findMyWorkspace : findMyWorkspace // �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂� + }; + + $scope.vm = { + workspaceVo : {}, + tab : "PAYMENT_EXECUTE" // �뾽臾� 怨듦컙 �젙蹂닿� 湲곕낯 �꺆 + }; + + // �뾽臾� 怨듦컙 �젙蹂� 媛깆떊 + $scope.$on("findMyWorkspace", function () { + $scope.fn.findMyWorkspace(); + }); + + // �꺆 蹂�寃� + function changeTab(tab) { + $scope.vm.tab = tab; + + if (tab === "USER_CONFIG") { + $scope.fn.findMyWorkspace(); + $scope.$broadcast("getUserWorkspaceList"); + } + } + + // �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂대�� 議고쉶�븳�떎. + function findMyWorkspace() { + Workspace.findMyWorkspace($resourceProvider.getContent( + {}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + if (result.data.data != null) { + $scope.vm.workspaceVo = result.data.data; + // 李몄뿬 媛��뒫 �궗�슜�옄 �닔 + $scope.vm.workspaceVo.includeUserCount = $scope.vm.workspaceVo.maxUser - $scope.vm.workspaceVo.activeUser; + + if ($scope.vm.workspaceVo.includeUserCount < 0) { + $scope.vm.workspaceVo.includeUserCount = 0; + } + } + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceInformation"), result.data.message.message); // "�옄�떊�씠 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂� 議고쉶 �떎�뙣" + } + }); + } + + $scope.fn.findMyWorkspace(); + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspace.js b/src/main/webapp/scripts/app/workspace/workspace.js new file mode 100644 index 0000000..4a74c71 --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspace.js @@ -0,0 +1,46 @@ +/** + * Created by wisestone on 2018-02-13. + */ +'use strict'; + +define(['app'], + function (app) { + app.config(function ($stateProvider) { + $stateProvider + .state('workspaces', { + abstract : true, + url : "/workspaces", + templateUrl : "views/common/app.html", + resolve : { + authorize : function (Auth) { + return Auth.authorize(); + }, + translatePartialLoader : function ($translate, $translatePartialLoader) { + $translatePartialLoader.addPart('global'); + + return $translate.refresh(); + } + } + }) + .state('workspaces.workspace', { + url : "/workspace", + data : { + authorities : ['WORKSPACE_MANAGER'] + }, + templateUrl : 'views/workspace/workspace.html', + controller : "workspaceController", + resolve : { + loadController : ["$q", function ($q) { + var deferred = $q.defer(); + require(["modalFormAutoScroll", "workspaceController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController", + "workspacePaymentAgreeTermController", "paymentService", "userWorkspaceService", "workspaceService", "numberOnly", 'jsTable', 'tableColumnGenerator', + "crypto", "reservationDisableUserService", "workspacePaymentAddController"], function () { + deferred.resolve(); + }); + + return deferred.promise; + }] + } + }); + }) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js new file mode 100644 index 0000000..9245cbf --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js @@ -0,0 +1,170 @@ +/** + * Created by wisestone on 2018-12-10. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('workspaceUserConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace', + 'UserWorkspace', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) { + + + /* $scope.fn �긽�냽 以� */ + $scope.fn.getUserWorkspaceList = getUserWorkspaceList; // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 �젙蹂� + $scope.fn.makeTableConfigs = makeTableConfigs; // �뾽臾� 怨듦컙�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙 + $scope.fn.initSearch = initSearch; // 寃��깋 議곌굔 珥덇린�솕 + $scope.fn.changePageRowCount = changePageRowCount; // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� + + + /* $scope.vm �긽�냽 以� */ + $scope.vm.search = { + name : "", // �씠由� + account : "", // �씠硫붿씪 + statuses : [] // �긽�깭 - Y, N + }; + + $scope.vm.options = { + statuses : [{ + fieldKey : "Y", + fieldValue : $filter("translate")("managementWorkspace.participation") // "李몄뿬" + }, { + fieldKey : "N", + //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "李몄뿬��湲�" + fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "�깉�눜" + }] + }; + + $scope.vm.page = { + selectedPage : 0, + selectedPageRowCount : String(10) + }; + + $scope.vm.tableConfigs = []; + $scope.vm.responseData = { + data : [] + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.vm.tableEvent = { + modifyUserWorkspace : modifyUserWorkspace // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + }; + + // 寃곗젣 �긽�꽭 �젙蹂� + $scope.$on("getUserWorkspaceList", function () { + $scope.fn.getUserWorkspaceList(0); + }); + + // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + function modifyUserWorkspace(userWorkspace) { + UserWorkspace.modify($resourceProvider.getContent( + userWorkspace, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + // �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.findMyWorkspace(); + } + else { + userWorkspace.useYn = false; + SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣" + } + }); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $scope.vm.search.name = ""; + $scope.vm.search.account = ""; + $scope.vm.search.statuses = []; + $scope.fn.getUserWorkspaceList(0); + } + + // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� + function changePageRowCount() { + $scope.fn.getUserWorkspaceList(0); + } + + // �뾽臾닿났媛� �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.name") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("userName")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.email") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("account")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.department") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("department")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.level") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("level")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("managementWorkspace.joinStatus") + .setHWidth("width-140-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDName("userYn") + .setDRenderer("WORKSPACE_USE_YN")); + } + + // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 + function getUserWorkspaceList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + name : $scope.vm.search.name, + account : $scope.vm.search.account, + statuses : (function () { + var statuses = []; + + angular.forEach($scope.vm.search.statuses, function (status) { + statuses.push(status.fieldKey); + }); + + return statuses; + })(), + }; + + UserWorkspace.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + $scope.fn.makeTableConfigs(); + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspacePaymentAdd.controller.js b/src/main/webapp/scripts/app/workspace/workspacePaymentAdd.controller.js new file mode 100644 index 0000000..33bb349 --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspacePaymentAdd.controller.js @@ -0,0 +1,150 @@ +/** + * Created by wisestone on 2018-02-19. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('workspacePaymentAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', 'Payment', '$filter', 'parameter', '$timeout', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Payment, $filter, parameter, $timeout) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + changeBuyUser : changeBuyUser, // �궗�슜�옄 �닔 蹂�寃� + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + workspaceId : parameter.workspaceId, + usdKrw : parameter.usdKrw, + maxUser : parameter.maxUser, + buyUser : "", + type : "MONTH", + cardNumber1 : "", + cardNumber2 : "", + cardNumber3 : "", + cardNumber4 : "", + expireMonth : "", + expireYear : "", + expireYearTmp : "", + birth : "", + cardPwd : "", + paymentAmountTemp : "", // �겢�씪�씠�뼵�듃�뿉�꽌 �궗�슜�옄 �닔瑜� 蹂�寃쏀븷 �븣 蹂댁뿬以� 寃곗젣 湲덉븸 - 湲덉븸�� �꽌踰꾩뿉�꽌 �떎�떆 怨꾩궛�븳�떎. + confirm : false // �빟愿� �룞�쓽 + }, + viewAgreeTerm : false + }; + + var BILLING_AMOUNT = 6; // 寃곗젣 湲덉븸 + + // �궗�슜�옄 媛�寃� 蹂닿린 + $scope.$watch("vm.form.buyUser", function (newValue) { + + if ($rootScope.isDefined(newValue)) { + var totalAmount = (BILLING_AMOUNT * $scope.vm.form.usdKrw * newValue); + var discount = 0; + + if (newValue > 99) { + var sale = newValue * 0.01; + discount = (totalAmount * (sale/100)); + } + + $scope.vm.form.paymentAmountTemp = Math.floor(totalAmount - discount); + } + else { + $scope.vm.form.paymentAmountTemp = 0; + } + }); + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + $scope.vm.form.expireYear = "20" + $scope.vm.form.expireYearTmp; + var content = angular.copy($scope.vm.form); + + // �븫�샇�솕 �떆媛꾨룞�븞 �봽濡쒓렇�옒�뒪諛� 紐살삱由щ뒗 �쁽�긽 �닔�젙 + $timeout(function () { + content.cardNumber1 = $rootScope.encryption($scope.vm.form.cardNumber1); + content.cardNumber2 = $rootScope.encryption($scope.vm.form.cardNumber2); + content.cardNumber3 = $rootScope.encryption($scope.vm.form.cardNumber3); + content.cardNumber4 = $rootScope.encryption($scope.vm.form.cardNumber4); + content.expireMonth = $rootScope.encryption($scope.vm.form.expireMonth); + content.expireYear = $rootScope.encryption($scope.vm.form.expireYear); + content.cardPwd = $rootScope.encryption($scope.vm.form.cardPwd); + content.birth = $rootScope.encryption($scope.vm.form.birth); + + Payment.immediateAddUser($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + if (result.data.message.status === "success") { + $scope.fn.cancel(); + SweetAlert.success($filter("translate")("managementWorkspace.paymentCompleted"), result.data.message.message); // "異붽� 寃곗젣 �꽦怨�" + // 寃곗젣 諛� �뾽臾� 怨듦컙 �젙蹂� �솕硫� 媛깆떊 + $rootScope.$broadcast("findMyWorkspace", {}); + $rootScope.$broadcast("getPaymentDetail", {}); + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToRegularPaymentChange"), result.data.message.message); // "異붽� 寃곗젣 �떎�뙣" + } + + $rootScope.spinner = false; + }); + }, 100); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �궗�슜�옄 �닔 蹂�寃� + function changeBuyUser(changeType) { + if (changeType === "PLUS") { + if ($scope.vm.form.buyUser < 999) { + $scope.vm.form.buyUser++; + } + } + else { + if ($scope.vm.form.buyUser > 1) { + $scope.vm.form.buyUser--; + } + } + } + + // �뤌 泥댄겕 + function formCheck() { + if (!$scope.vm.form.confirm) { + return true; + } + + if (!$rootScope.isDefined($scope.vm.form.cardNumber1) || !$rootScope.isDefined($scope.vm.form.cardNumber2) || !$rootScope.isDefined($scope.vm.form.cardNumber3) + || !$rootScope.isDefined($scope.vm.form.cardNumber4) || !$rootScope.isDefined($scope.vm.form.expireMonth) || !$rootScope.isDefined($scope.vm.form.expireYearTmp) + || !$rootScope.isDefined($scope.vm.form.birth) || !$rootScope.isDefined($scope.vm.form.cardPwd) || !$rootScope.isDefined($scope.vm.form.type)) { + return true; + } + + if ($scope.vm.form.cardNumber1.length !== 4 || $scope.vm.form.cardNumber2.length !== 4 || $scope.vm.form.cardNumber3.length !== 4 || $scope.vm.form.cardNumber4.length !== 4 + || $scope.vm.form.expireMonth.length !== 2 || $scope.vm.form.expireYearTmp.length !== 2 || $scope.vm.form.birth.length < 6 || $scope.vm.form.cardPwd.length !== 2) { + return true; + } + + // �궗�슜�옄 �닔�뒗 1紐� �씠�긽�씠�뼱�빞 �븳�떎. + if ($scope.vm.form.buyUser < 1) { + return true; + } + + return false; + } + } + + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspacePaymentAgreeTerm.controller.js b/src/main/webapp/scripts/app/workspace/workspacePaymentAgreeTerm.controller.js new file mode 100644 index 0000000..4e215d2 --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspacePaymentAgreeTerm.controller.js @@ -0,0 +1,27 @@ +/** + * Created by wisestone on 2018-12-12. + */ +'use strict'; + +define([ + 'app' + ], + function (app) { + app.controller('workspacePaymentAgreeTermController', ['$scope', '$rootScope', '$uibModal', '$uibModalInstance', + function ($scope, $rootScope, $uibModal, $uibModalInstance) { + + $scope.fn = { + cancel : cancel // �뙘�뾽 李� �떕湲� + }; + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + } + + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js b/src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js new file mode 100644 index 0000000..9cf9b8a --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js @@ -0,0 +1,320 @@ +/** + * Created by wisestone on 2018-12-10. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('workspacePaymentExecuteController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$state', 'Payment', 'Workspace', + '$timeout', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $state, Payment, Workspace, $timeout, $filter) { + + /* $scope.fn �긽�냽 以� */ + $scope.fn.paymentOneTime = paymentOneTime; // �젙湲� 寃곗젣 + $scope.fn.cancelNextPayment = cancelNextPayment; // �젙湲� 寃곗젣 痍⑥냼 + $scope.fn.add = add; // 異붽� 寃곗젣 + $scope.fn.modify = modify; // �젙湲� 寃곗젣 �닔�젙 + $scope.fn.detail = detail; // 寃곗젣 �긽�꽭 �젙蹂� + $scope.fn.changeBuyUser = changeBuyUser; // �궗�슜�옄 �닔 蹂�寃� + $scope.fn.formCheck = formCheck; // �뤌 泥댄겕 + $scope.fn.agreeTerm = agreeTerm; // �빟愿� �룞�쓽 �뙘�뾽 �몴�떆 + $scope.fn.modifyWorkspace = modifyWorkspace; // �뾽臾� 怨듦컙 紐� �닔�젙 + $scope.fn.initCreditCard = initCreditCard; // 移대뱶 + �긽�뭹 �젙蹂대�� 珥덇린�솕�븳�떎. + + /* $scope.vm �긽�냽 以� */ + $scope.vm.edit = false; // �뾽臾� 怨듦컙紐� �닔�젙 �븘�뱶 �몴�떆 �뿬遺� �젣�뼱 + $scope.vm.view = { + buyUser : 0, // �씠�쟾 寃곗젣 �젙蹂� �궗�슜�옄 + type : "MONTH", // 寃곗젣 �쑀�삎 - 留ㅻ떖 寃곗젣 + price : 0 // 媛�寃� + }; + + $scope.vm.form = { + workspaceId : "", + buyUser : 0, + type : "MONTH", + cardNumber1 : "", + cardNumber2 : "", + cardNumber3 : "", + cardNumber4 : "", + expireMonth : "", + expireYear : "", + expireYearTmp : "", + birth : "", + cardPwd : "", + paymentAmountTemp : "", // �겢�씪�씠�뼵�듃�뿉�꽌 �궗�슜�옄 �닔瑜� 蹂�寃쏀븷 �븣 蹂댁뿬以� 寃곗젣 湲덉븸 - 湲덉븸�� �꽌踰꾩뿉�꽌 �떎�떆 怨꾩궛�븳�떎. + confirm : false // �빟愿� �룞�쓽 + }; + + var BILLING_AMOUNT = 6; // 寃곗젣 湲덉븸 + var DEFAULT_BILLING_AMOUNT = 9; // 10�씤 �씠�븯 媛�寃� + + // �궗�슜�옄 媛�寃� 蹂닿린 + $scope.$watch("vm.form.buyUser", function (newValue) { + if (newValue < 11) { + $scope.vm.form.paymentAmountTemp = (DEFAULT_BILLING_AMOUNT * $scope.vm.workspaceVo.usdKrw); + } + else if (newValue > 10) { + var totalAmount = (BILLING_AMOUNT * $scope.vm.workspaceVo.usdKrw * newValue); + var sale = newValue * 0.01; + var discount = (totalAmount * (sale/100)); + + $scope.vm.form.paymentAmountTemp = Math.floor(totalAmount - discount); + } + }); + + // 寃곗젣 �긽�꽭 �젙蹂� + $scope.$on("getPaymentDetail", function () { + $scope.fn.detail(); + }); + + $scope.$watch("vm.workspaceVo", function (newValue) { + if ($rootScope.isDefined(newValue.id)) { + $scope.fn.detail(); + } + }); + + // 移대뱶 + �긽�뭹 �젙蹂대�� 珥덇린�솕�븳�떎. + function initCreditCard() { + $scope.vm.form = { + workspaceId : "", + buyUser : 0, + type : "MONTH", + cardNumber1 : "", + cardNumber2 : "", + cardNumber3 : "", + cardNumber4 : "", + expireMonth : "", + expireYear : "", + expireYearTmp : "", + birth : "", + cardPwd : "", + paymentAmountTemp : "", // �겢�씪�씠�뼵�듃�뿉�꽌 �궗�슜�옄 �닔瑜� 蹂�寃쏀븷 �븣 蹂댁뿬以� 寃곗젣 湲덉븸 - 湲덉븸�� �꽌踰꾩뿉�꽌 �떎�떆 怨꾩궛�븳�떎. + confirm : false // �빟愿� �룞�쓽 + }; + + $scope.vm.view = { + buyUser : 0, // �씠�쟾 寃곗젣 �젙蹂� �궗�슜�옄 + type : "MONTH", // 寃곗젣 �쑀�삎 - 留ㅻ떖 寃곗젣 + price : 0 // 媛�寃� + }; + } + + // �젙湲� 寃곗젣瑜� �떊泥��븳�떎. + function paymentOneTime() { + $rootScope.spinner = true; + + $scope.vm.form.expireYear = "20" + $scope.vm.form.expireYearTmp; + $scope.vm.form.workspaceId = $scope.vm.workspaceVo.id; + var content = angular.copy($scope.vm.form); + + // �븫�샇�솕 �떆媛꾨룞�븞 �봽濡쒓렇�옒�뒪諛� 紐살삱由щ뒗 �쁽�긽 �닔�젙 + $timeout(function () { + content.cardNumber1 = $rootScope.encryption($scope.vm.form.cardNumber1); + content.cardNumber2 = $rootScope.encryption($scope.vm.form.cardNumber2); + content.cardNumber3 = $rootScope.encryption($scope.vm.form.cardNumber3); + content.cardNumber4 = $rootScope.encryption($scope.vm.form.cardNumber4); + content.expireMonth = $rootScope.encryption($scope.vm.form.expireMonth); + content.expireYear = $rootScope.encryption($scope.vm.form.expireYear); + content.cardPwd = $rootScope.encryption($scope.vm.form.cardPwd); + content.birth = $rootScope.encryption($scope.vm.form.birth); + + Payment.paymentOneTime($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + // 移대뱶 + �긽�뭹 �젙蹂대�� 珥덇린�솕�븳�떎. + $scope.fn.initCreditCard(); + // �젙湲� 寃곗젣 �젙蹂� 議고쉶 + $scope.fn.detail(); + // �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.findMyWorkspace(); + + SweetAlert.success($filter("translate")("managementWorkspace.completedPayment"), result.data.message.message); // "寃곗젣 �셿猷�" + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedPayment"), result.data.message.message); // "寃곗젣 �떎�뙣" + } + + $rootScope.spinner = false; + }); + }, 100); + } + + // �젙湲� 寃곗젣瑜� 痍⑥냼�븳�떎. + function cancelNextPayment() { + //var monthText = "�젙湲� 寃곗젣瑜� 痍⑥냼�븯寃좎뒿�땲源�? �궗�슜 �슂湲덉쓣 �젣�쇅�븳 湲덉븸�씠 7�씪 �씠�궡�뿉 �솚遺� �맗�땲�떎."; + + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("managementWorkspace.cancelRegularPayment"), // "�젙湲� 寃곗젣 痍⑥냼" + text : $filter("translate")("managementWorkspace.cancelTheRegularPaymentReceive"), // "�젙湲� 寃곗젣瑜� 痍⑥냼�븯寃좎뒿�땲源�? �궗�슜 �슂湲덉쓣 �젣�쇅�븳 湲덉븸�씠 7�씪 �씠�궡�뿉 �솚遺� �맗�땲�떎." + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("managementWorkspace.cancelRegularPayment"), // "�젙湲� 寃곗젣 痍⑥냼" + cancelButtonText : $filter("translate")("common.close"), // "�떕湲�" + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + $scope.vm.form.workspaceId = $scope.vm.workspaceVo.id; + + Payment.cancelNextPayment($resourceProvider.getContent( + $scope.vm.form, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + $state.go($state.current, {}, {reload : true}); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("managementWorkspace.failedToCancelPayment"), result.data.message.message); // "寃곗젣 痍⑥냼 �떎�뙣" + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } + + // �뤌 泥댄겕 + function formCheck() { + if (!$scope.vm.form.confirm) { + return true; + } + + if (!$rootScope.isDefined($scope.vm.form.cardNumber1) || !$rootScope.isDefined($scope.vm.form.cardNumber2) || !$rootScope.isDefined($scope.vm.form.cardNumber3) + || !$rootScope.isDefined($scope.vm.form.cardNumber4) || !$rootScope.isDefined($scope.vm.form.expireMonth) || !$rootScope.isDefined($scope.vm.form.expireYearTmp) + || !$rootScope.isDefined($scope.vm.form.birth) || !$rootScope.isDefined($scope.vm.form.cardPwd) || !$rootScope.isDefined($scope.vm.form.type)) { + return true; + } + + if ($scope.vm.form.cardNumber1.length !== 4 || $scope.vm.form.cardNumber2.length !== 4 || $scope.vm.form.cardNumber3.length !== 4 || $scope.vm.form.cardNumber4.length !== 4 + || $scope.vm.form.expireMonth.length !== 2 || $scope.vm.form.expireYearTmp.length !== 2 || $scope.vm.form.birth.length < 6 || $scope.vm.form.cardPwd.length !== 2) { + return true; + } + + // �궗�슜�옄 �닔�뒗 1紐� �씠�긽�씠�뼱�빞 �븳�떎. + if ($scope.vm.form.buyUser < 1) { + return true; + } + + return false; + } + + // 寃곗젣 �젙蹂대�� 議고쉶�븳�떎. + function detail() { + var content = { + workspaceId : $scope.vm.workspaceVo.id + }; + + if (!$rootScope.isDefined(content.workspaceId)) { + return; + } + + Payment.detail($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + if (result.data.data != null) { + $scope.vm.view.buyUser = result.data.data.buyUser; + $scope.vm.view.type = result.data.data.type; + $scope.vm.view.price = result.data.data.price + } + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToPaymentInformation"), result.data.message.message); // "寃곗젣 �젙蹂� 議고쉶 �떎�뙣" + } + }); + } + + // �뾽臾� 怨듦컙 紐� �닔�젙 + function modifyWorkspace() { + var content = { + workspaceId : $scope.vm.workspaceVo.id, + name : $scope.vm.workspaceVo.name + }; + + Workspace.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + $scope.vm.edit = false; + $rootScope.$broadcast("refreshWorkspace"); + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToModifyWorkspaceName"), result.data.message.message); // "�뾽臾� 怨듦컙 紐� �닔�젙 �떎�뙣" + } + }); + } + + // �궗�슜�옄 �닔 蹂�寃� + function changeBuyUser(changeType) { + if (changeType === "PLUS") { + if ($scope.vm.form.buyUser < 999) { + $scope.vm.form.buyUser++; + } + } + else { + if ($scope.vm.form.buyUser > 0) { + $scope.vm.form.buyUser--; + } + } + } + + // �젙湲� 寃곗젣 �닔�젙 + function modify() { + $uibModal.open({ + templateUrl : 'views/workspace/workspacePaymentModify.html', + size : "md", + controller : 'workspacePaymentModifyController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + workspaceId : $scope.vm.workspaceVo.id + }; + } + } + }); + } + + // �빟愿� �룞�쓽 �뙘�뾽 �몴�떆 + function agreeTerm() { + $uibModal.open({ + templateUrl : 'views/workspace/workspacePaymentAgreeTerm.html', + size : "md", + controller : 'workspacePaymentAgreeTermController', + backdrop : 'static' + }); + } + + // 異붽� 寃곗젣 + function add() { + $uibModal.open({ + templateUrl : 'views/workspace/workspacePaymentAdd.html', + size : "md", + controller : 'workspacePaymentAddController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + workspaceId : $scope.vm.workspaceVo.id, + usdKrw : $scope.vm.workspaceVo.usdKrw, + maxUser : $scope.vm.workspaceVo.maxUser + }; + } + } + }); + } + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspacePaymentModify.controller.js b/src/main/webapp/scripts/app/workspace/workspacePaymentModify.controller.js new file mode 100644 index 0000000..e0a8476 --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspacePaymentModify.controller.js @@ -0,0 +1,160 @@ +/** + * Created by wisestone on 2018-02-19. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('workspacePaymentModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$injector', '$controller', + '$uibModalInstance', 'Payment', 'ReservationDisableUser', '$filter', 'parameter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $injector, $controller, $uibModalInstance, Payment, ReservationDisableUser, $filter, parameter) { + + $scope.fn = { + cancel : cancel, // �뙘�뾽 李� �떕湲� + formSubmit : formSubmit, // �뤌 �쟾�넚 + getUserListCallBack : getUserListCallBack, // �궗�슜�옄 auto complete callback function + getReservationDisableUser : getReservationDisableUser, // 李몄뿬 ��湲� �궗�슜�옄 紐⑸줉 議고쉶 + removeUsr : removeUsr, // 李몄뿬 ��湲� �궗�슜�옄 �궘�젣 + detail : detail, // �긽�꽭 �젙蹂� 議고쉶 + changeBuyUser : changeBuyUser, // �궗�슜�옄 �닔 蹂�寃� + formCheck : formCheck // �뤌 泥댄겕 + }; + + $scope.vm = { + form : { + workspaceId : parameter.workspaceId, + buyUser : "", + type : "", + users : [], + workspaceManager : [$rootScope.user] + }, + userName : "", // �씪諛� �궗�슜�옄 �씠由� 寃��깋 + autoCompletePage : { + user : { + page : 0, + totalPage : 0 + } + } + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �씪諛� �궗�슜�옄 紐⑸줉 議고쉶 + function getUserListCallBack(result) { + $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + workspaceId : $scope.vm.form.workspaceId, + buyUser : $scope.vm.form.buyUser, + type : $scope.vm.form.type, + reservationDisableUserIds : (function () { + var reservationDisableUserIds = ""; + angular.forEach($scope.vm.form.users, function (user) { + reservationDisableUserIds += user.id + ","; + }); + + return reservationDisableUserIds; + })() + }; + + Payment.modify($resourceProvider.getContent( + content, + $resourceProvider.getPageContent(0, 10))).then(function (result) { + if (result.data.message.status === "success") { + $scope.fn.cancel(); + // 寃곗젣 諛� �썙�겕�뒪�럹�씠�뒪 �젙蹂� �솕硫� 媛깆떊 + $rootScope.$broadcast("getPaymentDetail", {}); + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToRegularPaymentChange"), result.data.message.message); // "�젙湲� 寃곗젣 蹂�寃� �떎�뙣" + } + + $rootScope.spinner = false; + }); + } + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // �긽�꽭 �젙蹂� 議고쉶 + function detail() { + Payment.detail($resourceProvider.getContent( + { workspaceId : parameter.workspaceId}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + $scope.vm.form.buyUser = result.data.data.buyUser; + $scope.vm.form.type = result.data.data.type; + $scope.fn.getReservationDisableUser(result.data.data.id); + } + }); + } + + // �궗�슜�옄 �닔 蹂�寃� + function changeBuyUser(changeType) { + if (changeType === "PLUS") { + if ($scope.vm.form.buyUser < 999) { + $scope.vm.form.buyUser++; + } + } + else { + if ($scope.vm.form.buyUser > 1) { + $scope.vm.form.buyUser--; + } + } + } + + // �뤌 泥댄겕 + function formCheck() { + if (!$rootScope.isDefined($scope.vm.form.buyUser)){ + return true; + } + + if ($scope.vm.form.buyUser < 1) { + return true; + } + + if ($scope.vm.form.buyUser > 999) { + return true; + } + + if (!$rootScope.isDefined($scope.vm.form.type)) { + return true; + } + } + + // 李몄뿬 ��湲� �궗�슜�옄 議고쉶 + function getReservationDisableUser(paymentId) { + ReservationDisableUser.find($resourceProvider.getContent( + { id : paymentId }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + $scope.vm.form.users = result.data.data; + } + }); + } + + // 李몄뿬 ��湲� �궗�슜�옄 �궘�젣 + function removeUsr(index) { + $scope.vm.form.users.splice(index, 1); + } + + // �긽�꽭 �젙蹂� 議고쉶 + $scope.fn.detail(); + + } + + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js new file mode 100644 index 0000000..9245cbf --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js @@ -0,0 +1,170 @@ +/** + * Created by wisestone on 2018-12-10. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('workspaceUserConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace', + 'UserWorkspace', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) { + + + /* $scope.fn �긽�냽 以� */ + $scope.fn.getUserWorkspaceList = getUserWorkspaceList; // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 �젙蹂� + $scope.fn.makeTableConfigs = makeTableConfigs; // �뾽臾� 怨듦컙�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙 + $scope.fn.initSearch = initSearch; // 寃��깋 議곌굔 珥덇린�솕 + $scope.fn.changePageRowCount = changePageRowCount; // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� + + + /* $scope.vm �긽�냽 以� */ + $scope.vm.search = { + name : "", // �씠由� + account : "", // �씠硫붿씪 + statuses : [] // �긽�깭 - Y, N + }; + + $scope.vm.options = { + statuses : [{ + fieldKey : "Y", + fieldValue : $filter("translate")("managementWorkspace.participation") // "李몄뿬" + }, { + fieldKey : "N", + //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "李몄뿬��湲�" + fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "�깉�눜" + }] + }; + + $scope.vm.page = { + selectedPage : 0, + selectedPageRowCount : String(10) + }; + + $scope.vm.tableConfigs = []; + $scope.vm.responseData = { + data : [] + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.vm.tableEvent = { + modifyUserWorkspace : modifyUserWorkspace // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + }; + + // 寃곗젣 �긽�꽭 �젙蹂� + $scope.$on("getUserWorkspaceList", function () { + $scope.fn.getUserWorkspaceList(0); + }); + + // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + function modifyUserWorkspace(userWorkspace) { + UserWorkspace.modify($resourceProvider.getContent( + userWorkspace, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + // �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.findMyWorkspace(); + } + else { + userWorkspace.useYn = false; + SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣" + } + }); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $scope.vm.search.name = ""; + $scope.vm.search.account = ""; + $scope.vm.search.statuses = []; + $scope.fn.getUserWorkspaceList(0); + } + + // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� + function changePageRowCount() { + $scope.fn.getUserWorkspaceList(0); + } + + // �뾽臾닿났媛� �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.name") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("userName")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.email") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("account")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.department") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("department")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.level") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("level")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("managementWorkspace.joinStatus") + .setHWidth("width-140-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDName("userYn") + .setDRenderer("WORKSPACE_USE_YN")); + } + + // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 + function getUserWorkspaceList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + name : $scope.vm.search.name, + account : $scope.vm.search.account, + statuses : (function () { + var statuses = []; + + angular.forEach($scope.vm.search.statuses, function (status) { + statuses.push(status.fieldKey); + }); + + return statuses; + })(), + }; + + UserWorkspace.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + $scope.fn.makeTableConfigs(); + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js new file mode 100644 index 0000000..9245cbf --- /dev/null +++ b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js @@ -0,0 +1,170 @@ +/** + * Created by wisestone on 2018-12-10. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('workspaceUserConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace', + 'UserWorkspace', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) { + + + /* $scope.fn �긽�냽 以� */ + $scope.fn.getUserWorkspaceList = getUserWorkspaceList; // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 �젙蹂� + $scope.fn.makeTableConfigs = makeTableConfigs; // �뾽臾� 怨듦컙�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙 + $scope.fn.initSearch = initSearch; // 寃��깋 議곌굔 珥덇린�솕 + $scope.fn.changePageRowCount = changePageRowCount; // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� + + + /* $scope.vm �긽�냽 以� */ + $scope.vm.search = { + name : "", // �씠由� + account : "", // �씠硫붿씪 + statuses : [] // �긽�깭 - Y, N + }; + + $scope.vm.options = { + statuses : [{ + fieldKey : "Y", + fieldValue : $filter("translate")("managementWorkspace.participation") // "李몄뿬" + }, { + fieldKey : "N", + //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "李몄뿬��湲�" + fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "�깉�눜" + }] + }; + + $scope.vm.page = { + selectedPage : 0, + selectedPageRowCount : String(10) + }; + + $scope.vm.tableConfigs = []; + $scope.vm.responseData = { + data : [] + }; + + // �뀒�씠釉� �씠踰ㅽ듃 + $scope.vm.tableEvent = { + modifyUserWorkspace : modifyUserWorkspace // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + }; + + // 寃곗젣 �긽�꽭 �젙蹂� + $scope.$on("getUserWorkspaceList", function () { + $scope.fn.getUserWorkspaceList(0); + }); + + // �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃� + function modifyUserWorkspace(userWorkspace) { + UserWorkspace.modify($resourceProvider.getContent( + userWorkspace, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + // �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.findMyWorkspace(); + } + else { + userWorkspace.useYn = false; + SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣" + } + }); + } + + // 寃��깋 議곌굔 珥덇린�솕 + function initSearch() { + $scope.vm.search.name = ""; + $scope.vm.search.account = ""; + $scope.vm.search.statuses = []; + $scope.fn.getUserWorkspaceList(0); + } + + // �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃� + function changePageRowCount() { + $scope.fn.getUserWorkspaceList(0); + } + + // �뾽臾닿났媛� �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙 + function makeTableConfigs() { + $scope.vm.tableConfigs = []; + + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.name") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("userName")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.email") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("account")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.department") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("department")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("common.level") + .setHWidth("width-120-p") + .setDAlign("text-center") + .setDName("level")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("managementWorkspace.joinStatus") + .setHWidth("width-140-p") + .setDType("renderer") + .setDAlign("text-center pdr0 pdt0 pdl0 pdb0") + .setDName("userYn") + .setDRenderer("WORKSPACE_USE_YN")); + } + + // �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 + function getUserWorkspaceList(selectedPage) { + if (selectedPage < 0) { + selectedPage = 0; + } + // �쁽�옱 �럹�씠吏� �젙蹂� + var currentPage = 0; + + // 荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣 + if (angular.isUndefined(selectedPage) || selectedPage === "") { + currentPage = $scope.vm.page.selectedPage; + } + else { + currentPage = selectedPage; + } + + var conditions = { + name : $scope.vm.search.name, + account : $scope.vm.search.account, + statuses : (function () { + var statuses = []; + + angular.forEach($scope.vm.search.statuses, function (status) { + statuses.push(status.fieldKey); + }); + + return statuses; + })(), + }; + + UserWorkspace.find($resourceProvider.getContent(conditions, + $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.vm.page.selectedPage = currentPage + 1; + $scope.vm.responseData = result.data; + } + else { + SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" + } + }); + } + + $scope.fn.makeTableConfigs(); + } + ]); + } +); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/attachedFile/attachedFile.service.js b/src/main/webapp/scripts/components/attachedFile/attachedFile.service.js new file mode 100644 index 0000000..136a7f3 --- /dev/null +++ b/src/main/webapp/scripts/components/attachedFile/attachedFile.service.js @@ -0,0 +1,24 @@ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("AttachedFile", ['$http', '$log', '$upload', function ($http, $log, $upload) { + return { + add : function (parameter) { + parameter.url = "attached/add"; + return $upload.upload(parameter).then(function (response) { + $log.debug("�뙆�씪 �뾽濡쒕뱶 寃곌낵 : ", response); + return response; + }); + }, + find : function (conditions) { + return $http.post("attached/find", conditions).then(function (response) { + $log.debug("�뙆�씪 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + } + } + } + ]); +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/auth/auth.interceptor.js b/src/main/webapp/scripts/components/auth/auth.interceptor.js new file mode 100644 index 0000000..632510c --- /dev/null +++ b/src/main/webapp/scripts/components/auth/auth.interceptor.js @@ -0,0 +1,93 @@ +'use strict'; + +define(['app', 'angular'], + function (app, angular) { + app.factory('authInterceptor', function ($rootScope, $q, $injector, $log) { + return { + request: function (config) { + if (config.method === "POST") { + // �넻�떊�떆 �뀒�씠釉� 而щ읆 �젙�젹 珥덇린�솕 + var $tableProvider = $injector.get('$tableProvider'); + $tableProvider.setOrderByColumn(); + $tableProvider.reverse = false; + + if (angular.isDefined(config.data)) { + $log.debug(config.url + " : ", config.data); + } + else { + $log.debug("�뙆�씪 �쟾�넚 : ", config); + } + } + + return config; + }, + response: function (result) { + return result; + }, + responseError: function (response) { + $rootScope.spinner = false; + + // If we have an unauthorized request we redirect to the login page + // Don't do this check on the account API to avoid infinite loop + if (response.status === 401) { + var Auth = $injector.get('Auth'); + var $state = $injector.get('$state'); + var to = $rootScope.toState; + var params = $rootScope.toStateParams; + + $log.debug("$rootScope.toState : ", $rootScope.toState); + $log.debug("$rootScope.previousStateName : ", $rootScope.previousStateName); + + Auth.logout(); + + // �씠�쟾 �솕硫� url, parameter �젙蹂� ���옣. + if (angular.isDefined(to)) { + $rootScope.previousStateName = to.name; + } + + if (angular.isDefined(params)) { + $rootScope.previousStateParams = params; + } + + // 濡쒓렇�씤 �솕硫댁쑝濡� �씠�룞 + $state.go('login'); + + } + else if (response.status === 403 && response.config.method !== 'GET' && getCSRF() === '') { + // If the CSRF token expired, then try to get a new CSRF token and retry the old request + var $http = $injector.get('$http'); + return $http.get('/').finally(function () { + return afterCSRFRenewed(response); + }); + } + return $q.reject(response); + } + }; + + function afterCSRFRenewed(oldResponse) { + if (getCSRF() !== '') { + // retry the old request after the new CSRF-TOKEN is obtained + var $http = $injector.get('$http'); + return $http(oldResponse.config); + } + else { + // unlikely get here but reject with the old response any way and avoid infinite loop + return $q.reject(oldResponse); + } + } + + function getCSRF() { + var name = 'CSRF-TOKEN='; + var ca = document.cookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) === ' ') c = c.substring(1); + if (c.indexOf(name) !== -1) { + return c.substring(name.length, c.length); + } + } + return ''; + } + }); + }); + diff --git a/src/main/webapp/scripts/components/auth/auth.service.js b/src/main/webapp/scripts/components/auth/auth.service.js new file mode 100644 index 0000000..1150104 --- /dev/null +++ b/src/main/webapp/scripts/components/auth/auth.service.js @@ -0,0 +1,108 @@ +'use strict'; + +define([ + 'app', + 'angular' +], function (app, angular) { + app.factory('Auth', ['$rootScope', '$state', '$q', 'Principal', 'AuthSession', '$log', '$resourceProvider', 'Permission', 'Workspace', + function ($rootScope, $state, $q, Principal, AuthSession, $log, $resourceProvider, Permission, Workspace) { + return { + login : function (credentials, callback) { + var cb = callback || angular.noop; + var deferred = $q.defer(); + + AuthSession.login(credentials).then(function (result) { + // retrieve the logged account information + Principal.identity(true).then(function (account) { + deferred.resolve(account); + }); + + return cb(); + }).catch(function (err) { + deferred.reject(err); + return cb(err); + }.bind(this)); + + return deferred.promise; + }, + logout : function () { + AuthSession.logout(); + Principal.authenticate(undefined); + // Reset state memory + $rootScope.previousStateName = undefined; + $rootScope.previousStateNameParams = undefined; + }, + authorize : function (force) { + return Principal.identity(force) + .then(function () { + var isAuthenticated = Principal.isAuthenticated(); + + // an authenticated user can't access to login and register pages - 濡쒓렇�씤�맂 �궗�슜�옄�뒗 濡쒓렇�씤 �럹�씠吏�濡� 媛�吏� 紐삵븯寃� �븳�떎. + + $log.debug("$rootScope.toState.name �솗�씤 : " , $rootScope.toState.name); + $log.debug("isAuthenticated �솗�씤 : " , isAuthenticated); + + if (isAuthenticated && ($rootScope.toState.name === 'login' || $rootScope.toState.name === 'join')) { + $state.go('dashboards.dashboard'); + } + + if (!angular.isDefined($rootScope.authorities)) { + $rootScope.authorities = {}; + } + + // 沅뚰븳 �삤釉뚯젥�듃 媛��닔 �솗�씤 + var keys = Object.keys($rootScope.authorities); + + if (Principal.isIdentityResolved()) { + if (keys.length < 1) { + Permission.findByUserId().then(function (response) { + if (response.data.message.status === "success") { + checkAuthority(); + } + }); + } + else { + checkAuthority(); + } + } + else { + checkAuthority(); + } + + // 沅뚰븳 泥댄겕 + function checkAuthority() { + if (Object.keys($rootScope.authorities).length >= 0) { + + if ($rootScope.toState.data.authorities && $rootScope.toState.data.authorities.length > 0 && !Principal.hasAnyAuthority($rootScope.toState.data.authorities)) { + if (isAuthenticated) { + $log.debug("�럹�씠吏� 嫄곕� - 沅뚰븳�씠 �뾾�쓬, �씠�쟾 �솕硫댁쑝濡� �씠�룞"); + + // 沅뚰븳 嫄곕� �떦�븷�떆 �쁽�옱 �솕硫�/怨쇨굅 �솕硫댁씠 媛숈쑝硫� 臾댄븳濡쒕뵫 �쁽�긽 �닔�젙. + if ($rootScope.toState.name === $rootScope.previousStateName) { + $rootScope.previousStateName = null; + } + + $rootScope.back(); + } + else { + // user is not authenticated. stow the state they wanted before you + // send them to the signin state, so you can return them when you're done + $rootScope.previousStateName = $rootScope.toState.name; + $rootScope.previousStateNameParams = $rootScope.toStateParams; + // now, send them to the signin state so they can log in + $state.go('login'); + } + } + } + } + + $log.debug("�씤利� �뿬遺� : ", isAuthenticated); + $log.debug("�빐�떦 �럹�씠吏��쓽 沅뚰븳 : ", $rootScope.toState.data.authorities); + $log.debug("�궗�슜�옄 沅뚰븳 泥댄겕 : ", Principal.hasAnyAuthority($rootScope.toState.data.authorities)); + $log.debug("�궗�슜�옄 沅뚰븳 : ", $rootScope.authorities); + }); + }, + + }; + }]); +}); diff --git a/src/main/webapp/scripts/components/auth/auth.session.service.js b/src/main/webapp/scripts/components/auth/auth.session.service.js new file mode 100644 index 0000000..5a67393 --- /dev/null +++ b/src/main/webapp/scripts/components/auth/auth.session.service.js @@ -0,0 +1,43 @@ +'use strict'; + +define(['app'], function (app) { + app.factory('AuthSession', ['$http', '$window', '$log', '$rootScope', 'User', + function ($http, $window, $log, $rootScope, User) { + return { + login: function (credentials) { + var loginJson = 'j_username=' + encodeURIComponent(credentials.account) + + '&j_password=' + encodeURIComponent(credentials.password) + '&rememberMe=' + credentials.rememberMe; + + return $http.post("security/login", loginJson, { + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }).then(function (response) { + $log.debug("濡쒓렇�씤 寃곌낵 : ", response); + return response.data; + }); + }, + logout: function () { + // logout from the server + $http.get('security/logout').success(function (response) { + $log.debug("濡쒓렇�븘�썐�꽦怨�"); + // 珥덇린�솕 + $rootScope.users = []; + $rootScope.user = undefined; + $rootScope.workspaces = []; + $rootScope.authorities = {}; + $rootScope.currentDetailIssueId = null; + + $rootScope.webSocket = { + socket : null, + client : null + }; + + // to get a new csrf token call the api + User.getUserSession({}); + return response; + }); + } + }; + }]); +}); diff --git a/src/main/webapp/scripts/components/auth/principal.service.js b/src/main/webapp/scripts/components/auth/principal.service.js new file mode 100644 index 0000000..717b027 --- /dev/null +++ b/src/main/webapp/scripts/components/auth/principal.service.js @@ -0,0 +1,98 @@ +'use strict'; + +define(['app'], function (app) { + app.factory('Principal', ['$q', 'User', '$log', '$rootScope', '$translate', function ($q, User, $log, $rootScope, $translate) { + // �떊遺�, 吏꾩쭨�씤吏� 利앸챸 媛�. + var _identity, + _authenticated = false; + + return { + getIdentity: function () { + return _identity; + }, + isIdentityResolved: function () { + return angular.isDefined(_identity); + }, + isAuthenticated: function () { + return _authenticated; + }, + hasAuthority: function (authority) { + if (!_authenticated) { + return $q.when(false); + } + + return this.identity().then(function (_id) { + return _id.authorities && _id.authorities.indexOf(authority) !== -1; + }, function (err) { + return false; + }); + }, + hasAnyAuthority: function (authorities) { + if (!_authenticated || !_identity) { + return false; + } + + for (var count = 0; count < authorities.length; count++) { + if ($rootScope.authorities[authorities[count]] !== undefined) { + return $rootScope.authorities[authorities[count]]; + } + } + + return false; + }, + authenticate: function (identity) { + _identity = identity; + _authenticated = (identity !== null && identity !== undefined) ? true : false; + }, + identity: function (force) { + var deferred = $q.defer(); + + if (force === true) { + _identity = undefined; + } + + // check and see if we have retrieved the identity data from the server. + // if we have, reuse it by immediately resolving + if (angular.isDefined(_identity)) { + deferred.resolve(_identity); + + return deferred.promise; + } + + // retrieve the identity data from the server, update the identity object, and then resolve. + User.getUserSession({}).then(function (result) { + if (result.message.status === "success") { + if (result.data != null) { + $rootScope.user = result.data; // �쟾�뿭�쑝濡� �궗�슜�븯�뒗 濡쒓렇�씤 �궗�슜�옄 �젙蹂�. + _identity = result.data; + _authenticated = true; + + // �꽌踰꾩뿉�꽌 留덉�留됱쑝濡� �궗�슜�븳 �떎援��뼱 �겢�씪�씠�뼵�듃�뿉 �쟻�슜 + $rootScope.language = result.data.language; + $translate.use(result.data.language); + $translate.refresh(result.data.language); + $rootScope.$broadcast("languageChange", {language : result.data.language}); + + // �쎒 �냼耳� �떆�옉 + $rootScope.$broadcast("startSocket"); + deferred.resolve(_identity); + } + else { + throw {message: "�궗�슜�옄 �꽭�뀡�씠 議댁옱�븯吏� �븡�뒿�땲�떎."}; + } + } + else { + throw {message: "�궗�슜�옄 �꽭�뀡�씠 議댁옱�븯吏� �븡�뒿�땲�떎."}; + } + }) + .catch(function () { + _identity = undefined; + _authenticated = false; + deferred.resolve(_identity); + }); + + return deferred.promise; + } + }; + }]); +}); diff --git a/src/main/webapp/scripts/components/customField/customField.service.js b/src/main/webapp/scripts/components/customField/customField.service.js new file mode 100644 index 0000000..68267cf --- /dev/null +++ b/src/main/webapp/scripts/components/customField/customField.service.js @@ -0,0 +1,44 @@ +/** + * Created by wisestone on 2018-05-28. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("CustomField", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("customField/find", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("customField/add", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �젙�쓽 �븘�뱶 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("customField/modify", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("customField/detail", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �젙�쓽 �븘�뱶 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("customField/remove", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �젙�쓽 �븘�뱶 �궘�젣 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/event/event.service.js b/src/main/webapp/scripts/components/event/event.service.js new file mode 100644 index 0000000..03ef392 --- /dev/null +++ b/src/main/webapp/scripts/components/event/event.service.js @@ -0,0 +1,50 @@ +/** + * Created by wisestone on 2018-05-29. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Event", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("event/find", conditions).then(function (response) { + $log.debug("�씠踰ㅽ듃 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("event/add", conditions).then(function (response) { + $log.debug("�씠踰ㅽ듃 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("event/modify", conditions).then(function (response) { + $log.debug("�씠踰ㅽ듃 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + activation : function (conditions) { + return $http.post("event/activation", conditions).then(function (response) { + $log.debug("�씠踰ㅽ듃 �긽�깭 蹂�寃� 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("event/detail", conditions).then(function (response) { + $log.debug("�씠踰ㅽ듃 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("event/remove", conditions).then(function (response) { + $log.debug("�씠踰ㅽ듃 �궘�젣 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/faq/faq.service.js b/src/main/webapp/scripts/components/faq/faq.service.js new file mode 100644 index 0000000..3ba1472 --- /dev/null +++ b/src/main/webapp/scripts/components/faq/faq.service.js @@ -0,0 +1,50 @@ +/** + * Created by wisestone on 2018-05-29. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Faq", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("faq/find", conditions).then(function (response) { + $log.debug("FAQ 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("faq/add", conditions).then(function (response) { + $log.debug("FAQ �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("faq/modify", conditions).then(function (response) { + $log.debug("FAQ �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + activation : function (conditions) { + return $http.post("faq/activation", conditions).then(function (response) { + $log.debug("FAQ �긽�깭 蹂�寃� 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("faq/detail", conditions).then(function (response) { + $log.debug("FAQ �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("faq/remove", conditions).then(function (response) { + $log.debug("FAQ �궘�젣 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/gantt/gantt.service.js b/src/main/webapp/scripts/components/gantt/gantt.service.js new file mode 100644 index 0000000..888ce53 --- /dev/null +++ b/src/main/webapp/scripts/components/gantt/gantt.service.js @@ -0,0 +1,79 @@ +/** + * Created by maprex on 2021-03-25. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("Gantt", ['$http', '$log', '$upload', '$rootScope', function ($http, $log, $upload, $rootScope) { + + // �뙆�씪 �뾽濡쒕뱶 吏꾪뻾�쑉�쓣 �몴�떆�빐以��떎. + function fileUploadProgress(evt) { + if (evt.config.file.length > 0) { + + var progress = parseInt(100.0 * evt.loaded / evt.total); + + var body = { + display : progress < 100, // �몴�떆 �뿬遺� + clientFileCount : evt.config.file.length, // �겢�씪�씠�뼵�듃 �뾽濡쒕뱶 �뙆�씪 媛쒖닔 + clientProgress: progress + "%", // 吏꾪뻾瑜� + serverFileName : null, // �꽌踰� �뾽濡쒕뱶 �뙆�씪 紐� + serverProgress : null, + totalFileCount : null, // �쟾泥� �뾽濡쒕뱶 媛쒖닔 + uploadFileCount : null // 吏꾪뻾以묒씤 �뾽濡쒕뱶 �뙆�씪 媛쒖닔 + }; + + $rootScope.$broadcast("displayFileUpload", body); + } + } + + return { + find : function (conditions) { + return $http.post("gantt/find", conditions).then(function (response) { + $log.debug("�씠�뒋 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + findProject : function (conditions) { + return $http.post("gantt/findProject", conditions).then(function (response) { + $log.debug("�봽濡쒖젥�듃 �씠�뒋 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + conditions.url = "gantt/add"; + return $upload.upload(conditions).progress(function (evt) { + // �뙆�씪 �뾽濡쒕뱶 吏꾪뻾�쑉�쓣 �몴�떆�빐以��떎. + fileUploadProgress(evt); + + }).then(function (response) { + $log.debug("�씠�뒋 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + conditions.url = "gantt/modify"; + return $upload.upload(conditions).progress(function (evt) { + // �뙆�씪 �뾽濡쒕뱶 吏꾪뻾�쑉�쓣 �몴�떆�빐以��떎. + fileUploadProgress(evt); + + }).then(function (response) { + $log.debug("�씠�뒋 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("gantt/detail", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("gantt/remove", conditions).then(function (response) { + $log.debug("�씠�뒋 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]) +}); diff --git a/src/main/webapp/scripts/components/gantt/googleChartLoader.js b/src/main/webapp/scripts/components/gantt/googleChartLoader.js new file mode 100644 index 0000000..e8765f2 --- /dev/null +++ b/src/main/webapp/scripts/components/gantt/googleChartLoader.js @@ -0,0 +1,143 @@ +(function(){/* + + Copyright The Closure Library Authors. + SPDX-License-Identifier: Apache-2.0 +*/ + 'use strict';var l;function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}function n(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:aa(a)}}function ba(a){if(!(a instanceof Array)){a=n(a);for(var b,c=[];!(b=a.next()).done;)c.push(b.value);a=c}return a}function ca(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var g=a[e];if(b.call(c,g,e,a))return{U:e,Z:g}}return{U:-1,Z:void 0}} + var da="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};function ea(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var q=ea(this); + function r(a,b){if(b)a:{var c=q;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&da(c,a,{configurable:!0,writable:!0,value:b})}}r("Array.prototype.find",function(a){return a?a:function(b,c){return ca(this,b,c).Z}}); + function t(a,b,c){if(null==a)throw new TypeError("The 'this' value for String.prototype."+c+" must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype."+c+" must not be a regular expression");return a+""}r("String.prototype.endsWith",function(a){return a?a:function(b,c){var d=t(this,b,"endsWith");void 0===c&&(c=d.length);c=Math.max(0,Math.min(c|0,d.length));for(var e=b.length;0<e&&0<c;)if(d[--c]!=b[--e])return!1;return 0>=e}}); + r("String.prototype.startsWith",function(a){return a?a:function(b,c){var d=t(this,b,"startsWith"),e=d.length,g=b.length;c=Math.max(0,Math.min(c|0,d.length));for(var f=0;f<g&&c<e;)if(d[c++]!=b[f++])return!1;return f>=g}});r("String.prototype.repeat",function(a){return a?a:function(b){var c=t(this,null,"repeat");if(0>b||1342177279<b)throw new RangeError("Invalid count value");b|=0;for(var d="";b;)if(b&1&&(d+=c),b>>>=1)c+=c;return d}}); + r("String.prototype.trimLeft",function(a){function b(){return this.replace(/^[\s\xa0]+/,"")}return a||b});r("String.prototype.trimStart",function(a){return a||String.prototype.trimLeft}); + r("Promise",function(a){function b(f){this.g=0;this.i=void 0;this.h=[];this.s=!1;var h=this.l();try{f(h.resolve,h.reject)}catch(k){h.reject(k)}}function c(){this.g=null}function d(f){return f instanceof b?f:new b(function(h){h(f)})}if(a)return a;c.prototype.h=function(f){if(null==this.g){this.g=[];var h=this;this.i(function(){h.m()})}this.g.push(f)};var e=q.setTimeout;c.prototype.i=function(f){e(f,0)};c.prototype.m=function(){for(;this.g&&this.g.length;){var f=this.g;this.g=[];for(var h=0;h<f.length;++h){var k= + f[h];f[h]=null;try{k()}catch(m){this.l(m)}}}this.g=null};c.prototype.l=function(f){this.i(function(){throw f;})};b.prototype.l=function(){function f(m){return function(p){k||(k=!0,m.call(h,p))}}var h=this,k=!1;return{resolve:f(this.K),reject:f(this.m)}};b.prototype.K=function(f){if(f===this)this.m(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof b)this.$(f);else{a:switch(typeof f){case "object":var h=null!=f;break a;case "function":h=!0;break a;default:h=!1}h?this.J(f):this.o(f)}}; + b.prototype.J=function(f){var h=void 0;try{h=f.then}catch(k){this.m(k);return}"function"==typeof h?this.aa(h,f):this.o(f)};b.prototype.m=function(f){this.v(2,f)};b.prototype.o=function(f){this.v(1,f)};b.prototype.v=function(f,h){if(0!=this.g)throw Error("Cannot settle("+f+", "+h+"): Promise already settled in state"+this.g);this.g=f;this.i=h;2===this.g&&this.M();this.F()};b.prototype.M=function(){var f=this;e(function(){if(f.G()){var h=q.console;"undefined"!==typeof h&&h.error(f.i)}},1)};b.prototype.G= + function(){if(this.s)return!1;var f=q.CustomEvent,h=q.Event,k=q.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):"function"===typeof h?f=new h("unhandledrejection",{cancelable:!0}):(f=q.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.i;return k(f)};b.prototype.F=function(){if(null!=this.h){for(var f=0;f<this.h.length;++f)g.h(this.h[f]);this.h=null}};var g=new c;b.prototype.$= + function(f){var h=this.l();f.L(h.resolve,h.reject)};b.prototype.aa=function(f,h){var k=this.l();try{f.call(h,k.resolve,k.reject)}catch(m){k.reject(m)}};b.prototype.then=function(f,h){function k(B,J){return"function"==typeof B?function(va){try{m(B(va))}catch(wa){p(wa)}}:J}var m,p,x=new b(function(B,J){m=B;p=J});this.L(k(f,m),k(h,p));return x};b.prototype.catch=function(f){return this.then(void 0,f)};b.prototype.L=function(f,h){function k(){switch(m.g){case 1:f(m.i);break;case 2:h(m.i);break;default:throw Error("Unexpected state: "+ + m.g);}}var m=this;null==this.h?g.h(k):this.h.push(k);this.s=!0};b.resolve=d;b.reject=function(f){return new b(function(h,k){k(f)})};b.race=function(f){return new b(function(h,k){for(var m=n(f),p=m.next();!p.done;p=m.next())d(p.value).L(h,k)})};b.all=function(f){var h=n(f),k=h.next();return k.done?d([]):new b(function(m,p){function x(va){return function(wa){B[va]=wa;J--;0==J&&m(B)}}var B=[],J=0;do B.push(void 0),J++,d(k.value).L(x(B.length-1),p),k=h.next();while(!k.done)})};return b}); + r("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}});r("Array.prototype.includes",function(a){return a?a:function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(0>c&&(c=Math.max(c+e,0));c<e;c++){var g=d[c];if(g===b||Object.is(g,b))return!0}return!1}});r("String.prototype.includes",function(a){return a?a:function(b,c){return-1!==t(this,b,"includes").indexOf(b,c||0)}}); + r("Array.prototype.copyWithin",function(a){function b(c){c=Number(c);return Infinity===c||-Infinity===c?c:c|0}return a?a:function(c,d,e){var g=this.length;c=b(c);d=b(d);e=void 0===e?g:b(e);c=0>c?Math.max(g+c,0):Math.min(c,g);d=0>d?Math.max(g+d,0):Math.min(d,g);e=0>e?Math.max(g+e,0):Math.min(e,g);if(c<d)for(;d<e;)d in this?this[c++]=this[d++]:(delete this[c++],d++);else for(e=Math.min(e,g+d-c),c+=e-d;e>d;)--e in this?this[--c]=this[e]:delete this[--c];return this}}); + r("Symbol",function(a){function b(e){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c("jscomp_symbol_"+(e||"")+"_"+d++,e)}function c(e,g){this.g=e;da(this,"description",{configurable:!0,writable:!0,value:g})}if(a)return a;c.prototype.toString=function(){return this.g};var d=0;return b}); + r("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=q[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&da(d.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(aa(this))}})}return a});r("Symbol.asyncIterator",function(a){return a?a:Symbol("Symbol.asyncIterator")}); + function fa(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}function ha(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var g=c++;return{value:b(g,a[g]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}r("Array.prototype.entries",function(a){return a?a:function(){return ha(this,function(b,c){return[b,c]})}}); + r("Array.prototype.fill",function(a){return a?a:function(b,c,d){var e=this.length||0;0>c&&(c=Math.max(0,e+c));if(null==d||d>e)d=e;d=Number(d);0>d&&(d=Math.max(0,e+d));for(c=Number(c||0);c<d;c++)this[c]=b;return this}});r("Array.prototype.findIndex",function(a){return a?a:function(b,c){return ca(this,b,c).U}}); + r("Array.prototype.flat",function(a){return a?a:function(b){b=void 0===b?1:b;for(var c=[],d=0;d<this.length;d++){var e=this[d];Array.isArray(e)&&0<b?(e=Array.prototype.flat.call(e,b-1),c.push.apply(c,e)):c.push(e)}return c}});r("Array.prototype.flatMap",function(a){return a?a:function(b,c){for(var d=[],e=0;e<this.length;e++){var g=b.call(c,this[e],e,this);Array.isArray(g)?d.push.apply(d,g):d.push(g)}return d}}); + r("Array.from",function(a){return a?a:function(b,c,d){c=null!=c?c:function(h){return h};var e=[],g="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];if("function"==typeof g){b=g.call(b);for(var f=0;!(g=b.next()).done;)e.push(c.call(d,g.value,f++))}else for(g=b.length,f=0;f<g;f++)e.push(c.call(d,b[f],f));return e}});r("Array.prototype.keys",function(a){return a?a:function(){return ha(this,function(b){return b})}});r("Array.of",function(a){return a?a:function(b){return Array.from(arguments)}}); + r("Array.prototype.values",function(a){return a?a:function(){return ha(this,function(b,c){return c})}});var ia;if("function"==typeof Object.setPrototypeOf)ia=Object.setPrototypeOf;else{var ja;a:{var ka={a:!0},la={};try{la.__proto__=ka;ja=la.a;break a}catch(a){}ja=!1}ia=ja?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ma=ia;r("globalThis",function(a){return a||q});function u(a,b){return Object.prototype.hasOwnProperty.call(a,b)} + r("WeakMap",function(a){function b(k){this.g=(h+=Math.random()+1).toString();if(k){k=n(k);for(var m;!(m=k.next()).done;)m=m.value,this.set(m[0],m[1])}}function c(){}function d(k){var m=typeof k;return"object"===m&&null!==k||"function"===m}function e(k){if(!u(k,f)){var m=new c;da(k,f,{value:m})}}function g(k){var m=Object[k];m&&(Object[k]=function(p){if(p instanceof c)return p;Object.isExtensible(p)&&e(p);return m(p)})}if(function(){if(!a||!Object.seal)return!1;try{var k=Object.seal({}),m=Object.seal({}), + p=new a([[k,2],[m,3]]);if(2!=p.get(k)||3!=p.get(m))return!1;p.delete(k);p.set(m,4);return!p.has(k)&&4==p.get(m)}catch(x){return!1}}())return a;var f="$jscomp_hidden_"+Math.random();g("freeze");g("preventExtensions");g("seal");var h=0;b.prototype.set=function(k,m){if(!d(k))throw Error("Invalid WeakMap key");e(k);if(!u(k,f))throw Error("WeakMap key fail: "+k);k[f][this.g]=m;return this};b.prototype.get=function(k){return d(k)&&u(k,f)?k[f][this.g]:void 0};b.prototype.has=function(k){return d(k)&&u(k, + f)&&u(k[f],this.g)};b.prototype.delete=function(k){return d(k)&&u(k,f)&&u(k[f],this.g)?delete k[f][this.g]:!1};return b}); + r("Map",function(a){function b(){var h={};return h.B=h.next=h.head=h}function c(h,k){var m=h.g;return fa(function(){if(m){for(;m.head!=h.g;)m=m.B;for(;m.next!=m.head;)return m=m.next,{done:!1,value:k(m)};m=null}return{done:!0,value:void 0}})}function d(h,k){var m=k&&typeof k;"object"==m||"function"==m?g.has(k)?m=g.get(k):(m=""+ ++f,g.set(k,m)):m="p_"+k;var p=h.h[m];if(p&&u(h.h,m))for(h=0;h<p.length;h++){var x=p[h];if(k!==k&&x.key!==x.key||k===x.key)return{id:m,list:p,index:h,u:x}}return{id:m,list:p, + index:-1,u:void 0}}function e(h){this.h={};this.g=b();this.size=0;if(h){h=n(h);for(var k;!(k=h.next()).done;)k=k.value,this.set(k[0],k[1])}}if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var h=Object.seal({x:4}),k=new a(n([[h,"s"]]));if("s"!=k.get(h)||1!=k.size||k.get({x:4})||k.set({x:4},"t")!=k||2!=k.size)return!1;var m=k.entries(),p=m.next();if(p.done||p.value[0]!=h||"s"!=p.value[1])return!1;p=m.next();return p.done||4!=p.value[0].x|| + "t"!=p.value[1]||!m.next().done?!1:!0}catch(x){return!1}}())return a;var g=new WeakMap;e.prototype.set=function(h,k){h=0===h?0:h;var m=d(this,h);m.list||(m.list=this.h[m.id]=[]);m.u?m.u.value=k:(m.u={next:this.g,B:this.g.B,head:this.g,key:h,value:k},m.list.push(m.u),this.g.B.next=m.u,this.g.B=m.u,this.size++);return this};e.prototype.delete=function(h){h=d(this,h);return h.u&&h.list?(h.list.splice(h.index,1),h.list.length||delete this.h[h.id],h.u.B.next=h.u.next,h.u.next.B=h.u.B,h.u.head=null,this.size--, + !0):!1};e.prototype.clear=function(){this.h={};this.g=this.g.B=b();this.size=0};e.prototype.has=function(h){return!!d(this,h).u};e.prototype.get=function(h){return(h=d(this,h).u)&&h.value};e.prototype.entries=function(){return c(this,function(h){return[h.key,h.value]})};e.prototype.keys=function(){return c(this,function(h){return h.key})};e.prototype.values=function(){return c(this,function(h){return h.value})};e.prototype.forEach=function(h,k){for(var m=this.entries(),p;!(p=m.next()).done;)p=p.value, + h.call(k,p[1],p[0],this)};e.prototype[Symbol.iterator]=e.prototype.entries;var f=0;return e});r("Math.acosh",function(a){return a?a:function(b){b=Number(b);return Math.log(b+Math.sqrt(b*b-1))}});r("Math.asinh",function(a){return a?a:function(b){b=Number(b);if(0===b)return b;var c=Math.log(Math.abs(b)+Math.sqrt(b*b+1));return 0>b?-c:c}}); + r("Math.log1p",function(a){return a?a:function(b){b=Number(b);if(.25>b&&-.25<b){for(var c=b,d=1,e=b,g=0,f=1;g!=e;)c*=b,f*=-1,e=(g=e)+f*c/++d;return e}return Math.log(1+b)}});r("Math.atanh",function(a){if(a)return a;var b=Math.log1p;return function(c){c=Number(c);return(b(c)-b(-c))/2}});r("Math.cbrt",function(a){return a?a:function(b){if(0===b)return b;b=Number(b);var c=Math.pow(Math.abs(b),1/3);return 0>b?-c:c}}); + r("Math.clz32",function(a){return a?a:function(b){b=Number(b)>>>0;if(0===b)return 32;var c=0;0===(b&4294901760)&&(b<<=16,c+=16);0===(b&4278190080)&&(b<<=8,c+=8);0===(b&4026531840)&&(b<<=4,c+=4);0===(b&3221225472)&&(b<<=2,c+=2);0===(b&2147483648)&&c++;return c}});r("Math.cosh",function(a){if(a)return a;var b=Math.exp;return function(c){c=Number(c);return(b(c)+b(-c))/2}}); + r("Math.expm1",function(a){return a?a:function(b){b=Number(b);if(.25>b&&-.25<b){for(var c=b,d=1,e=b,g=0;g!=e;)c*=b/++d,e=(g=e)+c;return e}return Math.exp(b)-1}});r("Math.fround",function(a){if(a)return a;if("function"!==typeof Float32Array)return function(c){return c};var b=new Float32Array(1);return function(c){b[0]=c;return b[0]}}); + r("Math.hypot",function(a){return a?a:function(b){if(2>arguments.length)return arguments.length?Math.abs(arguments[0]):0;var c,d,e;for(c=e=0;c<arguments.length;c++)e=Math.max(e,Math.abs(arguments[c]));if(1E100<e||1E-100>e){if(!e)return e;for(c=d=0;c<arguments.length;c++){var g=Number(arguments[c])/e;d+=g*g}return Math.sqrt(d)*e}for(c=d=0;c<arguments.length;c++)g=Number(arguments[c]),d+=g*g;return Math.sqrt(d)}}); + r("Math.imul",function(a){return a?a:function(b,c){b=Number(b);c=Number(c);var d=b&65535,e=c&65535;return d*e+((b>>>16&65535)*e+d*(c>>>16&65535)<<16>>>0)|0}});r("Math.log10",function(a){return a?a:function(b){return Math.log(b)/Math.LN10}});r("Math.log2",function(a){return a?a:function(b){return Math.log(b)/Math.LN2}});r("Math.sign",function(a){return a?a:function(b){b=Number(b);return 0===b||isNaN(b)?b:0<b?1:-1}}); + r("Math.sinh",function(a){if(a)return a;var b=Math.exp;return function(c){c=Number(c);return 0===c?c:(b(c)-b(-c))/2}});r("Math.tanh",function(a){return a?a:function(b){b=Number(b);if(0===b)return b;var c=Math.exp(-2*Math.abs(b));c=(1-c)/(1+c);return 0>b?-c:c}});r("Math.trunc",function(a){return a?a:function(b){b=Number(b);if(isNaN(b)||Infinity===b||-Infinity===b||0===b)return b;var c=Math.floor(Math.abs(b));return 0>b?-c:c}});r("Number.EPSILON",function(){return Math.pow(2,-52)}); + r("Number.MAX_SAFE_INTEGER",function(){return 9007199254740991});r("Number.MIN_SAFE_INTEGER",function(){return-9007199254740991});r("Number.isFinite",function(a){return a?a:function(b){return"number"!==typeof b?!1:!isNaN(b)&&Infinity!==b&&-Infinity!==b}});r("Number.isInteger",function(a){return a?a:function(b){return Number.isFinite(b)?b===Math.floor(b):!1}});r("Number.isNaN",function(a){return a?a:function(b){return"number"===typeof b&&isNaN(b)}}); + r("Number.isSafeInteger",function(a){return a?a:function(b){return Number.isInteger(b)&&Math.abs(b)<=Number.MAX_SAFE_INTEGER}});r("Number.parseFloat",function(a){return a||parseFloat});r("Number.parseInt",function(a){return a||parseInt});var na="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)u(d,e)&&(a[e]=d[e])}return a};r("Object.assign",function(a){return a||na}); + r("Object.entries",function(a){return a?a:function(b){var c=[],d;for(d in b)u(b,d)&&c.push([d,b[d]]);return c}});r("Object.fromEntries",function(a){return a?a:function(b){var c={};if(!(Symbol.iterator in b))throw new TypeError(""+b+" is not iterable");b=b[Symbol.iterator].call(b);for(var d=b.next();!d.done;d=b.next()){d=d.value;if(Object(d)!==d)throw new TypeError("iterable for fromEntries should yield objects");c[d[0]]=d[1]}return c}});r("Reflect",function(a){return a?a:{}}); + r("Object.getOwnPropertySymbols",function(a){return a?a:function(){return[]}});r("Reflect.ownKeys",function(a){return a?a:function(b){var c=[],d=Object.getOwnPropertyNames(b);b=Object.getOwnPropertySymbols(b);for(var e=0;e<d.length;e++)("jscomp_symbol_"==d[e].substring(0,14)?b:c).push(d[e]);return c.concat(b)}});r("Object.getOwnPropertyDescriptors",function(a){return a?a:function(b){for(var c={},d=Reflect.ownKeys(b),e=0;e<d.length;e++)c[d[e]]=Object.getOwnPropertyDescriptor(b,d[e]);return c}}); + r("Object.setPrototypeOf",function(a){return a||ma});r("Object.values",function(a){return a?a:function(b){var c=[],d;for(d in b)u(b,d)&&c.push(b[d]);return c}});r("Promise.allSettled",function(a){function b(d){return{status:"fulfilled",value:d}}function c(d){return{status:"rejected",reason:d}}return a?a:function(d){var e=this;d=Array.from(d,function(g){return e.resolve(g).then(b,c)});return e.all(d)}}); + r("Promise.prototype.finally",function(a){return a?a:function(b){return this.then(function(c){return Promise.resolve(b()).then(function(){return c})},function(c){return Promise.resolve(b()).then(function(){throw c;})})}});r("Reflect.apply",function(a){if(a)return a;var b=Function.prototype.apply;return function(c,d,e){return b.call(c,d,e)}}); + var oa="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},pa=function(){function a(){function c(){}new c;Reflect.construct(c,[],function(){});return new c instanceof c}if("undefined"!=typeof Reflect&&Reflect.construct){if(a())return Reflect.construct;var b=Reflect.construct;return function(c,d,e){c=b(c,d);e&&Reflect.setPrototypeOf(c,e.prototype);return c}}return function(c,d,e){void 0===e&&(e=c);e=oa(e.prototype||Object.prototype);return Function.prototype.apply.call(c, + e,d)||e}}();r("Reflect.construct",function(){return pa});r("Reflect.defineProperty",function(a){return a?a:function(b,c,d){try{Object.defineProperty(b,c,d);var e=Object.getOwnPropertyDescriptor(b,c);return e?e.configurable===(d.configurable||!1)&&e.enumerable===(d.enumerable||!1)&&("value"in e?e.value===d.value&&e.writable===(d.writable||!1):e.get===d.get&&e.set===d.set):!1}catch(g){return!1}}});r("Reflect.deleteProperty",function(a){return a?a:function(b,c){if(!u(b,c))return!0;try{return delete b[c]}catch(d){return!1}}}); + r("Reflect.getOwnPropertyDescriptor",function(a){return a||Object.getOwnPropertyDescriptor});r("Reflect.getPrototypeOf",function(a){return a||Object.getPrototypeOf});function qa(a,b){for(;a;){var c=Reflect.getOwnPropertyDescriptor(a,b);if(c)return c;a=Reflect.getPrototypeOf(a)}}r("Reflect.get",function(a){return a?a:function(b,c,d){if(2>=arguments.length)return b[c];var e=qa(b,c);if(e)return e.get?e.get.call(d):e.value}});r("Reflect.has",function(a){return a?a:function(b,c){return c in b}}); + r("Reflect.isExtensible",function(a){return a?a:"function"==typeof Object.isExtensible?Object.isExtensible:function(){return!0}});r("Reflect.preventExtensions",function(a){return a?a:"function"!=typeof Object.preventExtensions?function(){return!1}:function(b){Object.preventExtensions(b);return!Object.isExtensible(b)}}); + r("Reflect.set",function(a){return a?a:function(b,c,d,e){var g=qa(b,c);return g?g.set?(g.set.call(3<arguments.length?e:b,d),!0):g.writable&&!Object.isFrozen(b)?(b[c]=d,!0):!1:Reflect.isExtensible(b)?(b[c]=d,!0):!1}});r("Reflect.setPrototypeOf",function(a){return a?a:ma?function(b,c){try{return ma(b,c),!0}catch(d){return!1}}:null}); + r("Set",function(a){function b(c){this.g=new Map;if(c){c=n(c);for(var d;!(d=c.next()).done;)this.add(d.value)}this.size=this.g.size}if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var c=Object.seal({x:4}),d=new a(n([c]));if(!d.has(c)||1!=d.size||d.add(c)!=d||1!=d.size||d.add({x:4})!=d||2!=d.size)return!1;var e=d.entries(),g=e.next();if(g.done||g.value[0]!=c||g.value[1]!=c)return!1;g=e.next();return g.done||g.value[0]==c||4!=g.value[0].x|| + g.value[1]!=g.value[0]?!1:e.next().done}catch(f){return!1}}())return a;b.prototype.add=function(c){c=0===c?0:c;this.g.set(c,c);this.size=this.g.size;return this};b.prototype.delete=function(c){c=this.g.delete(c);this.size=this.g.size;return c};b.prototype.clear=function(){this.g.clear();this.size=0};b.prototype.has=function(c){return this.g.has(c)};b.prototype.entries=function(){return this.g.entries()};b.prototype.values=function(){return this.g.values()};b.prototype.keys=b.prototype.values;b.prototype[Symbol.iterator]= + b.prototype.values;b.prototype.forEach=function(c,d){var e=this;this.g.forEach(function(g){return c.call(d,g,g,e)})};return b});r("String.prototype.codePointAt",function(a){return a?a:function(b){var c=t(this,null,"codePointAt"),d=c.length;b=Number(b)||0;if(0<=b&&b<d){b|=0;var e=c.charCodeAt(b);if(55296>e||56319<e||b+1===d)return e;b=c.charCodeAt(b+1);return 56320>b||57343<b?e:1024*(e-55296)+b+9216}}}); + r("String.fromCodePoint",function(a){return a?a:function(b){for(var c="",d=0;d<arguments.length;d++){var e=Number(arguments[d]);if(0>e||1114111<e||e!==Math.floor(e))throw new RangeError("invalid_code_point "+e);65535>=e?c+=String.fromCharCode(e):(e-=65536,c+=String.fromCharCode(e>>>10&1023|55296),c+=String.fromCharCode(e&1023|56320))}return c}}); + r("String.prototype.matchAll",function(a){return a?a:function(b){if(b instanceof RegExp&&!b.global)throw new TypeError("RegExp passed into String.prototype.matchAll() must have global tag.");var c=new RegExp(b,b instanceof RegExp?void 0:"g"),d=this,e=!1,g={next:function(){if(e)return{value:void 0,done:!0};var f=c.exec(d);if(!f)return e=!0,{value:void 0,done:!0};""===f[0]&&(c.lastIndex+=1);return{value:f,done:!1}}};g[Symbol.iterator]=function(){return g};return g}}); + function ra(a,b){a=void 0!==a?String(a):" ";return 0<b&&a?a.repeat(Math.ceil(b/a.length)).substring(0,b):""}r("String.prototype.padEnd",function(a){return a?a:function(b,c){var d=t(this,null,"padStart");return d+ra(c,b-d.length)}});r("String.prototype.padStart",function(a){return a?a:function(b,c){var d=t(this,null,"padStart");return ra(c,b-d.length)+d}});r("String.prototype.trimRight",function(a){function b(){return this.replace(/[\s\xa0]+$/,"")}return a||b}); + r("String.prototype.trimEnd",function(a){return a||String.prototype.trimRight});function v(a){return a?a:Array.prototype.copyWithin}r("Int8Array.prototype.copyWithin",v);r("Uint8Array.prototype.copyWithin",v);r("Uint8ClampedArray.prototype.copyWithin",v);r("Int16Array.prototype.copyWithin",v);r("Uint16Array.prototype.copyWithin",v);r("Int32Array.prototype.copyWithin",v);r("Uint32Array.prototype.copyWithin",v);r("Float32Array.prototype.copyWithin",v);r("Float64Array.prototype.copyWithin",v); + function w(a){return a?a:Array.prototype.fill}r("Int8Array.prototype.fill",w);r("Uint8Array.prototype.fill",w);r("Uint8ClampedArray.prototype.fill",w);r("Int16Array.prototype.fill",w);r("Uint16Array.prototype.fill",w);r("Int32Array.prototype.fill",w);r("Uint32Array.prototype.fill",w);r("Float32Array.prototype.fill",w);r("Float64Array.prototype.fill",w); + r("WeakSet",function(a){function b(c){this.g=new WeakMap;if(c){c=n(c);for(var d;!(d=c.next()).done;)this.add(d.value)}}if(function(){if(!a||!Object.seal)return!1;try{var c=Object.seal({}),d=Object.seal({}),e=new a([c]);if(!e.has(c)||e.has(d))return!1;e.delete(c);e.add(d);return!e.has(c)&&e.has(d)}catch(g){return!1}}())return a;b.prototype.add=function(c){this.g.set(c,!0);return this};b.prototype.has=function(c){return this.g.has(c)};b.prototype.delete=function(c){return this.g.delete(c)};return b}); + var y=this||self,sa=/^[\w+/_-]+[=]{0,2}$/,ta=null;function ua(a){return(a=a.querySelector&&a.querySelector("script[nonce]"))&&(a=a.nonce||a.getAttribute("nonce"))&&sa.test(a)?a:""}function z(a){a=a.split(".");for(var b=y,c=0;c<a.length;c++)if(b=b[a[c]],null==b)return null;return b}function A(){}function xa(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function ya(a,b,c){return a.call.apply(a.bind,arguments)} + function za(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}function C(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?C=ya:C=za;return C.apply(null,arguments)} + function D(a,b){a=a.split(".");var c=y;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b}function E(a,b){function c(){}c.prototype=b.prototype;a.Ma=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.qa=function(d,e,g){for(var f=Array(arguments.length-2),h=2;h<arguments.length;h++)f[h-2]=arguments[h];return b.prototype[e].apply(d,f)}}function Aa(a){return a};function F(a){if(Error.captureStackTrace)Error.captureStackTrace(this,F);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))}E(F,Error);F.prototype.name="CustomError";function G(a,b){this.g=a===Ba&&b||"";this.h=Ca}G.prototype.V=!0;G.prototype.T=function(){return this.g};function Da(a){return a instanceof G&&a.constructor===G&&a.h===Ca?a.g:"type_error:Const"}function H(a){return new G(Ba,a)}var Ca={},Ba={};var I={j:{}}; + I.j.O={oa:{"gstatic.com":{loader:H("https://www.gstatic.com/charts/%{version}/loader.js"),debug:H("https://www.gstatic.com/charts/debug/%{version}/js/jsapi_debug_%{package}_module.js"),debug_i18n:H("https://www.gstatic.com/charts/debug/%{version}/i18n/jsapi_debug_i18n_%{package}_module__%{language}.js"),compiled:H("https://www.gstatic.com/charts/%{version}/js/jsapi_compiled_%{package}_module.js"),compiled_i18n:H("https://www.gstatic.com/charts/%{version}/i18n/jsapi_compiled_i18n_%{package}_module__%{language}.js"),css:H("https://www.gstatic.com/charts/%{version}/css/%{subdir}/%{filename}"), + css2:H("https://www.gstatic.com/charts/%{version}/css/%{subdir1}/%{subdir2}/%{filename}"),third_party:H("https://www.gstatic.com/charts/%{version}/third_party/%{subdir}/%{filename}"),third_party2:H("https://www.gstatic.com/charts/%{version}/third_party/%{subdir1}/%{subdir2}/%{filename}"),third_party_gen:H("https://www.gstatic.com/charts/%{version}/third_party/%{subdir}/%{filename}")},"gstatic.cn":{loader:H("https://www.gstatic.cn/charts/%{version}/loader.js"),debug:H("https://www.gstatic.cn/charts/debug/%{version}/js/jsapi_debug_%{package}_module.js"), + debug_i18n:H("https://www.gstatic.cn/charts/debug/%{version}/i18n/jsapi_debug_i18n_%{package}_module__%{language}.js"),compiled:H("https://www.gstatic.cn/charts/%{version}/js/jsapi_compiled_%{package}_module.js"),compiled_i18n:H("https://www.gstatic.cn/charts/%{version}/i18n/jsapi_compiled_i18n_%{package}_module__%{language}.js"),css:H("https://www.gstatic.cn/charts/%{version}/css/%{subdir}/%{filename}"),css2:H("https://www.gstatic.cn/charts/%{version}/css/%{subdir1}/%{subdir2}/%{filename}"),third_party:H("https://www.gstatic.cn/charts/%{version}/third_party/%{subdir}/%{filename}"), + third_party2:H("https://www.gstatic.cn/charts/%{version}/third_party/%{subdir1}/%{subdir2}/%{filename}"),third_party_gen:H("https://www.gstatic.cn/charts/%{version}/third_party/%{subdir}/%{filename}")}},ga:["default"],ua:{"default":[],graphics:["default"],ui:["graphics"],ui_base:["graphics"],flashui:["ui"],fw:["ui"],geo:["ui"],annotatedtimeline:["annotationchart"],annotationchart:["ui","controls","corechart","table"],areachart:"browserchart",bar:["fw","dygraph","webfontloader"],barchart:"browserchart", + browserchart:["ui"],bubbles:["fw","d3"],calendar:["fw"],charteditor:"ui corechart imagechart annotatedtimeline gauge geochart motionchart orgchart table".split(" "),charteditor_base:"ui_base corechart imagechart annotatedtimeline gauge geochart motionchart orgchart table_base".split(" "),circles:["fw","d3"],clusterchart:["corechart","d3"],columnchart:"browserchart",controls:["ui"],controls_base:["ui_base"],corechart:["ui"],gantt:["fw","dygraph"],gauge:["ui"],geochart:["geo"],geomap:["flashui","geo"], + geomap_base:["ui_base"],helloworld:["fw"],imagechart:["ui"],imageareachart:"imagechart",imagebarchart:"imagechart",imagelinechart:"imagechart",imagepiechart:"imagechart",imagesparkline:"imagechart",line:["fw","dygraph","webfontloader"],linechart:"browserchart",map:["geo"],matrix:["vegachart"],motionchart:["flashui"],orgchart:["ui"],overtimecharts:["ui","corechart"],piechart:"browserchart",sankey:["fw","d3","d3.sankey"],scatter:["fw","dygraph","webfontloader"],scatterchart:"browserchart",sunburst:["fw", + "d3"],streamgraph:["fw","d3"],table:["ui"],table_base:["ui_base"],timeline:["fw","ui","dygraph"],treemap:["ui"],vegachart:["graphics"],wordtree:["ui"]},Oa:{d3:{subdir1:"d3",subdir2:"v5",filename:"d3.js"},"d3.sankey":{subdir1:"d3_sankey",subdir2:"v4",filename:"d3.sankey.js"},webfontloader:{subdir:"webfontloader",filename:"webfont.js"}},Na:{dygraph:{subdir:"dygraphs",filename:"dygraph-tickers-combined.js"}},sa:{"default":[{subdir:"core",filename:"tooltip.css"}],annotationchart:[{subdir:"annotationchart", + filename:"annotationchart.css"}],charteditor:[{subdir:"charteditor",filename:"charteditor.css"}],charteditor_base:[{subdir:"charteditor_base",filename:"charteditor_base.css"}],controls:[{subdir:"controls",filename:"controls.css"}],imagesparkline:[{subdir:"imagechart",filename:"imagesparkline.css"}],orgchart:[{subdir:"orgchart",filename:"orgchart.css"}],table:[{subdir:"table",filename:"table.css"},{subdir:"util",filename:"format.css"}],table_base:[{subdir:"util",filename:"format.css"},{subdir:"table", + filename:"table_base.css"}],ui:[{subdir:"util",filename:"util.css"}],ui_base:[{subdir:"util",filename:"util_base.css"}]}};I.j.ba={ia:{"chrome-frame":{versions:{"1.0.0":{uncompressed:"CFInstall.js",compressed:"CFInstall.min.js"},"1.0.1":{uncompressed:"CFInstall.js",compressed:"CFInstall.min.js"},"1.0.2":{uncompressed:"CFInstall.js",compressed:"CFInstall.min.js"}},aliases:{1:"1.0.2","1.0":"1.0.2"}},swfobject:{versions:{"2.1":{uncompressed:"swfobject_src.js",compressed:"swfobject.js"},"2.2":{uncompressed:"swfobject_src.js",compressed:"swfobject.js"}},aliases:{2:"2.2"}},"ext-core":{versions:{"3.1.0":{uncompressed:"ext-core-debug.js", + compressed:"ext-core.js"},"3.0.0":{uncompressed:"ext-core-debug.js",compressed:"ext-core.js"}},aliases:{3:"3.1.0","3.0":"3.0.0","3.1":"3.1.0"}},scriptaculous:{versions:{"1.8.3":{uncompressed:"scriptaculous.js",compressed:"scriptaculous.js"},"1.9.0":{uncompressed:"scriptaculous.js",compressed:"scriptaculous.js"},"1.8.1":{uncompressed:"scriptaculous.js",compressed:"scriptaculous.js"},"1.8.2":{uncompressed:"scriptaculous.js",compressed:"scriptaculous.js"}},aliases:{1:"1.9.0","1.8":"1.8.3","1.9":"1.9.0"}}, + webfont:{versions:{"1.0.12":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.13":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.14":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.15":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.10":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.11":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.27":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.28":{uncompressed:"webfont_debug.js", + compressed:"webfont.js"},"1.0.29":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.23":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.24":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.25":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.26":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.21":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.22":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.3":{uncompressed:"webfont_debug.js", + compressed:"webfont.js"},"1.0.4":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.5":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.6":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.9":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.16":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.17":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.0":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.18":{uncompressed:"webfont_debug.js", + compressed:"webfont.js"},"1.0.1":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.19":{uncompressed:"webfont_debug.js",compressed:"webfont.js"},"1.0.2":{uncompressed:"webfont_debug.js",compressed:"webfont.js"}},aliases:{1:"1.0.29","1.0":"1.0.29"}},jqueryui:{versions:{"1.8.17":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.16":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.15":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.14":{uncompressed:"jquery-ui.js", + compressed:"jquery-ui.min.js"},"1.8.4":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.13":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.5":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.12":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.6":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.11":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.7":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"}, + "1.8.10":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.8":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.9":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.6.0":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.7.0":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.5.2":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.0":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.7.1":{uncompressed:"jquery-ui.js", + compressed:"jquery-ui.min.js"},"1.5.3":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.1":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.7.2":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.8.2":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"},"1.7.3":{uncompressed:"jquery-ui.js",compressed:"jquery-ui.min.js"}},aliases:{1:"1.8.17","1.5":"1.5.3","1.6":"1.6.0","1.7":"1.7.3","1.8":"1.8.17","1.8.3":"1.8.4"}},mootools:{versions:{"1.3.0":{uncompressed:"mootools.js", + compressed:"mootools-yui-compressed.js"},"1.2.1":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.1.2":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.4.0":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.3.1":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.2.2":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.4.1":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"}, + "1.3.2":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.2.3":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.4.2":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.2.4":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.2.5":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"},"1.1.1":{uncompressed:"mootools.js",compressed:"mootools-yui-compressed.js"}},aliases:{1:"1.1.2","1.1":"1.1.2","1.2":"1.2.5", + "1.3":"1.3.2","1.4":"1.4.2","1.11":"1.1.1"}},yui:{versions:{"2.8.0r4":{uncompressed:"build/yuiloader/yuiloader.js",compressed:"build/yuiloader/yuiloader-min.js"},"2.9.0":{uncompressed:"build/yuiloader/yuiloader.js",compressed:"build/yuiloader/yuiloader-min.js"},"2.8.1":{uncompressed:"build/yuiloader/yuiloader.js",compressed:"build/yuiloader/yuiloader-min.js"},"2.6.0":{uncompressed:"build/yuiloader/yuiloader.js",compressed:"build/yuiloader/yuiloader-min.js"},"2.7.0":{uncompressed:"build/yuiloader/yuiloader.js", + compressed:"build/yuiloader/yuiloader-min.js"},"3.3.0":{uncompressed:"build/yui/yui.js",compressed:"build/yui/yui-min.js"},"2.8.2r1":{uncompressed:"build/yuiloader/yuiloader.js",compressed:"build/yuiloader/yuiloader-min.js"}},aliases:{2:"2.9.0","2.6":"2.6.0","2.7":"2.7.0","2.8":"2.8.2r1","2.8.0":"2.8.0r4","2.8.2":"2.8.2r1","2.9":"2.9.0",3:"3.3.0","3.3":"3.3.0"}},prototype:{versions:{"1.6.1.0":{uncompressed:"prototype.js",compressed:"prototype.js"},"1.6.0.2":{uncompressed:"prototype.js",compressed:"prototype.js"}, + "1.7.0.0":{uncompressed:"prototype.js",compressed:"prototype.js"},"1.6.0.3":{uncompressed:"prototype.js",compressed:"prototype.js"}},aliases:{1:"1.7.0.0","1.6":"1.6.1.0","1.6.0":"1.6.0.3","1.6.1":"1.6.1.0","1.7":"1.7.0.0","1.7.0":"1.7.0.0"}},jquery:{versions:{"1.2.3":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.2.6":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.3.0":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.3.1":{uncompressed:"jquery.js",compressed:"jquery.min.js"}, + "1.3.2":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.4.0":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.4.1":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.4.2":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.4.3":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.4.4":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.5.0":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.5.1":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.5.2":{uncompressed:"jquery.js", + compressed:"jquery.min.js"},"1.6.0":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.6.1":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.6.2":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.6.3":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.6.4":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.7.0":{uncompressed:"jquery.js",compressed:"jquery.min.js"},"1.7.1":{uncompressed:"jquery.js",compressed:"jquery.min.js"}},aliases:{1:"1.7.1","1.2":"1.2.6","1.3":"1.3.2", + "1.4":"1.4.4","1.5":"1.5.2","1.6":"1.6.4","1.7":"1.7.1"}},dojo:{versions:{"1.3.0":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.4.0":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.3.1":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.5.0":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.4.1":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"}, + "1.3.2":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.2.3":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.6.0":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.5.1":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.7.0":{uncompressed:"dojo/dojo.js.uncompressed.js",compressed:"dojo/dojo.js"},"1.6.1":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"}, + "1.4.3":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.7.1":{uncompressed:"dojo/dojo.js.uncompressed.js",compressed:"dojo/dojo.js"},"1.7.2":{uncompressed:"dojo/dojo.js.uncompressed.js",compressed:"dojo/dojo.js"},"1.2.0":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"},"1.1.1":{uncompressed:"dojo/dojo.xd.js.uncompressed.js",compressed:"dojo/dojo.xd.js"}},aliases:{1:"1.6.1","1.1":"1.1.1","1.2":"1.2.3","1.3":"1.3.2","1.4":"1.4.3","1.5":"1.5.1", + "1.6":"1.6.1","1.7":"1.7.2"}}}};I.j.ea={af:!0,am:!0,az:!0,ar:!0,arb:"ar",bg:!0,bn:!0,ca:!0,cs:!0,cmn:"zh",da:!0,de:!0,el:!0,en:!0,en_gb:!0,es:!0,es_419:!0,et:!0,eu:!0,fa:!0,fi:!0,fil:!0,fr:!0,fr_ca:!0,gl:!0,ka:!0,gu:!0,he:"iw",hi:!0,hr:!0,hu:!0,hy:!0,id:!0,"in":"id",is:!0,it:!0,iw:!0,ja:!0,ji:"yi",jv:!1,jw:"jv",km:!0,kn:!0,ko:!0,lo:!0,lt:!0,lv:!0,ml:!0,mn:!0,mo:"ro",mr:!0,ms:!0,nb:"no",ne:!0,nl:!0,no:!0,pl:!0,pt:"pt_br",pt_br:!0,pt_pt:!0,ro:!0,ru:!0,si:!0,sk:!0,sl:!0,sr:!0,sv:!0,sw:!0,swh:"sw",ta:!0,te:!0,th:!0,tl:"fil",tr:!0,uk:!0, + ur:!0,vi:!0,yi:!1,zh:"zh_cn",zh_cn:!0,zh_hk:!0,zh_tw:!0,zsm:"ms",zu:!0};var Ea=Array.prototype.forEach?function(a,b,c){Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,g=0;g<d;g++)g in e&&b.call(c,e[g],g,a)},Fa=Array.prototype.map?function(a,b){return Array.prototype.map.call(a,b,void 0)}:function(a,b){for(var c=a.length,d=Array(c),e="string"===typeof a?a.split(""):a,g=0;g<c;g++)g in e&&(d[g]=b.call(void 0,e[g],g,a));return d},Ga=Array.prototype.some?function(a,b){return Array.prototype.some.call(a,b,void 0)}: + function(a,b){for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a))return!0;return!1};function Ha(a){return Array.prototype.concat.apply([],arguments)}function Ia(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];var e=typeof d;e="object"!=e?e:d?Array.isArray(d)?"array":e:"null";if("array"==e||"object"==e&&"number"==typeof d.length){e=a.length||0;var g=d.length||0;a.length=e+g;for(var f=0;f<g;f++)a[e+f]=d[f]}else a.push(d)}};var Ja;function K(a,b){this.g=b===Ka?a:""}K.prototype.V=!0;K.prototype.T=function(){return this.g.toString()};K.prototype.toString=function(){return this.g+""};function La(a){return a instanceof K&&a.constructor===K?a.g:"type_error:TrustedResourceUrl"} + function Ma(a,b){var c=Da(a);if(!Na.test(c))throw Error("Invalid TrustedResourceUrl format: "+c);a=c.replace(Oa,function(d,e){if(!Object.prototype.hasOwnProperty.call(b,e))throw Error('Found marker, "'+e+'", in format string, "'+c+'", but no valid label mapping found in args: '+JSON.stringify(b));d=b[e];return d instanceof G?Da(d):encodeURIComponent(String(d))});return Pa(a)}var Oa=/%{(\w+)}/g,Na=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,Qa=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/; + function Ra(a,b,c){a=Ma(a,b);a=Qa.exec(La(a).toString());b=a[3]||"";return Pa(a[1]+Sa("?",a[2]||"",c)+Sa("#",b,void 0))}var Ka={};function Pa(a){if(void 0===Ja){var b=null;var c=y.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:Aa,createScript:Aa,createScriptURL:Aa})}catch(d){y.console&&y.console.error(d.message)}Ja=b}else Ja=b}a=(b=Ja)?b.createScriptURL(a):a;return new K(a,Ka)} + function Sa(a,b,c){if(null==c)return b;if("string"===typeof c)return c?a+encodeURIComponent(c):"";for(var d in c)if(Object.prototype.hasOwnProperty.call(c,d)){var e=c[d];e=Array.isArray(e)?e:[e];for(var g=0;g<e.length;g++){var f=e[g];null!=f&&(b||(b=a),b+=(b.length>a.length?"&":"")+encodeURIComponent(d)+"="+encodeURIComponent(String(f)))}}return b};var Ta=String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]};function Ua(a,b){return a<b?-1:a>b?1:0};var L;a:{var Va=y.navigator;if(Va){var Wa=Va.userAgent;if(Wa){L=Wa;break a}}L=""}function M(a){return-1!=L.indexOf(a)};function Xa(a,b){for(var c in a)b.call(void 0,a[c],c,a)}var Ya="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function Za(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var g=0;g<Ya.length;g++)c=Ya[g],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};function $a(a){var b;(b=a.ownerDocument&&a.ownerDocument.defaultView)&&b!=y?b=ua(b.document):(null===ta&&(ta=ua(y.document)),b=ta);b&&a.setAttribute("nonce",b)};function ab(a){var b=bb;return Object.prototype.hasOwnProperty.call(b,11)?b[11]:b[11]=a(11)};var cb=M("Opera"),db=M("Trident")||M("MSIE"),eb=M("Edge"),fb=M("Gecko")&&!(-1!=L.toLowerCase().indexOf("webkit")&&!M("Edge"))&&!(M("Trident")||M("MSIE"))&&!M("Edge"),gb=-1!=L.toLowerCase().indexOf("webkit")&&!M("Edge"),hb; + a:{var ib="",jb=function(){var a=L;if(fb)return/rv:([^\);]+)(\)|;)/.exec(a);if(eb)return/Edge\/([\d\.]+)/.exec(a);if(db)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(gb)return/WebKit\/(\S+)/.exec(a);if(cb)return/(?:Version)[ \/]?(\S+)/.exec(a)}();jb&&(ib=jb?jb[1]:"");if(db){var kb,lb=y.document;kb=lb?lb.documentMode:void 0;if(null!=kb&&kb>parseFloat(ib)){hb=String(kb);break a}}hb=ib}var mb=hb,bb={}; + function nb(){return ab(function(){for(var a=0,b=Ta(String(mb)).split("."),c=Ta("11").split("."),d=Math.max(b.length,c.length),e=0;0==a&&e<d;e++){var g=b[e]||"",f=c[e]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];if(0==g[0].length&&0==f[0].length)break;a=Ua(0==g[1].length?0:parseInt(g[1],10),0==f[1].length?0:parseInt(f[1],10))||Ua(0==g[2].length,0==f[2].length)||Ua(g[2],f[2]);g=g[3];f=f[3]}while(0==a)}return 0<=a})};function ob(a,b){Xa(b,function(c,d){c&&"object"==typeof c&&c.V&&(c=c.T());"style"==d?a.style.cssText=c:"class"==d?a.className=c:"for"==d?a.htmlFor=c:pb.hasOwnProperty(d)?a.setAttribute(pb[d],c):0==d.lastIndexOf("aria-",0)||0==d.lastIndexOf("data-",0)?a.setAttribute(d,c):a[d]=c})} + var pb={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};function qb(a){var b=document;a=String(a);"application/xhtml+xml"===b.contentType&&(a=a.toLowerCase());return b.createElement(a)};function rb(a,b){this.i=a;this.l=b;this.h=0;this.g=null}rb.prototype.get=function(){if(0<this.h){this.h--;var a=this.g;this.g=a.next;a.next=null}else a=this.i();return a};function sb(a,b){a.l(b);100>a.h&&(a.h++,b.next=a.g,a.g=b)};var tb; + function ub(){var a=y.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!M("Presto")&&(a=function(){var e=qb("IFRAME");e.style.display="none";document.documentElement.appendChild(e);var g=e.contentWindow;e=g.document;e.open();e.close();var f="callImmediate"+Math.random(),h="file:"==g.location.protocol?"*":g.location.protocol+"//"+g.location.host;e=C(function(k){if(("*"==h||k.origin==h)&&k.data==f)this.port1.onmessage()},this);g.addEventListener("message",e, + !1);this.port1={};this.port2={postMessage:function(){g.postMessage(f,h)}}});if("undefined"!==typeof a&&!M("Trident")&&!M("MSIE")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var e=c.S;c.S=null;e()}};return function(e){d.next={S:e};d=d.next;b.port2.postMessage(0)}}return function(e){y.setTimeout(e,0)}};function vb(a){y.setTimeout(function(){throw a;},0)};function wb(){this.h=this.g=null}wb.prototype.add=function(a,b){var c=xb.get();c.set(a,b);this.h?this.h.next=c:this.g=c;this.h=c};function yb(){var a=zb,b=null;a.g&&(b=a.g,a.g=a.g.next,a.g||(a.h=null),b.next=null);return b}var xb=new rb(function(){return new Ab},function(a){return a.reset()});function Ab(){this.next=this.g=this.h=null}Ab.prototype.set=function(a,b){this.h=a;this.g=b;this.next=null};Ab.prototype.reset=function(){this.next=this.g=this.h=null};function Bb(a,b){Cb||Db();Eb||(Cb(),Eb=!0);zb.add(a,b)}var Cb;function Db(){if(y.Promise&&y.Promise.resolve){var a=y.Promise.resolve(void 0);Cb=function(){a.then(Fb)}}else Cb=function(){var b=Fb;"function"!==typeof y.setImmediate||y.Window&&y.Window.prototype&&!M("Edge")&&y.Window.prototype.setImmediate==y.setImmediate?(tb||(tb=ub()),tb(b)):y.setImmediate(b)}}var Eb=!1,zb=new wb;function Fb(){for(var a;a=yb();){try{a.h.call(a.g)}catch(b){vb(b)}sb(xb,a)}Eb=!1};function Gb(a){if(!a)return!1;try{return!!a.$goog_Thenable}catch(b){return!1}};function N(a){this.g=0;this.s=void 0;this.l=this.h=this.i=null;this.m=this.o=!1;if(a!=A)try{var b=this;a.call(void 0,function(c){O(b,2,c)},function(c){O(b,3,c)})}catch(c){O(this,3,c)}}function Hb(){this.next=this.i=this.h=this.l=this.g=null;this.m=!1}Hb.prototype.reset=function(){this.i=this.h=this.l=this.g=null;this.m=!1};var Ib=new rb(function(){return new Hb},function(a){a.reset()});function Jb(a,b,c){var d=Ib.get();d.l=a;d.h=b;d.i=c;return d} + N.prototype.then=function(a,b,c){return Kb(this,"function"===typeof a?a:null,"function"===typeof b?b:null,c)};N.prototype.$goog_Thenable=!0;N.prototype.cancel=function(a){if(0==this.g){var b=new P(a);Bb(function(){Lb(this,b)},this)}};function Lb(a,b){if(0==a.g)if(a.i){var c=a.i;if(c.h){for(var d=0,e=null,g=null,f=c.h;f&&(f.m||(d++,f.g==a&&(e=f),!(e&&1<d)));f=f.next)e||(g=f);e&&(0==c.g&&1==d?Lb(c,b):(g?(d=g,d.next==c.l&&(c.l=d),d.next=d.next.next):Mb(c),Nb(c,e,3,b)))}a.i=null}else O(a,3,b)} + function Ob(a,b){a.h||2!=a.g&&3!=a.g||Pb(a);a.l?a.l.next=b:a.h=b;a.l=b}function Kb(a,b,c,d){var e=Jb(null,null,null);e.g=new N(function(g,f){e.l=b?function(h){try{var k=b.call(d,h);g(k)}catch(m){f(m)}}:g;e.h=c?function(h){try{var k=c.call(d,h);void 0===k&&h instanceof P?f(h):g(k)}catch(m){f(m)}}:f});e.g.i=a;Ob(a,e);return e.g}N.prototype.F=function(a){this.g=0;O(this,2,a)};N.prototype.G=function(a){this.g=0;O(this,3,a)}; + function O(a,b,c){if(0==a.g){a===c&&(b=3,c=new TypeError("Promise cannot resolve to itself"));a.g=1;a:{var d=c,e=a.F,g=a.G;if(d instanceof N){Ob(d,Jb(e||A,g||null,a));var f=!0}else if(Gb(d))d.then(e,g,a),f=!0;else{if(xa(d))try{var h=d.then;if("function"===typeof h){Qb(d,h,e,g,a);f=!0;break a}}catch(k){g.call(a,k);f=!0;break a}f=!1}}f||(a.s=c,a.g=b,a.i=null,Pb(a),3!=b||c instanceof P||Rb(a,c))}} + function Qb(a,b,c,d,e){function g(k){h||(h=!0,d.call(e,k))}function f(k){h||(h=!0,c.call(e,k))}var h=!1;try{b.call(a,f,g)}catch(k){g(k)}}function Pb(a){a.o||(a.o=!0,Bb(a.v,a))}function Mb(a){var b=null;a.h&&(b=a.h,a.h=b.next,b.next=null);a.h||(a.l=null);return b}N.prototype.v=function(){for(var a;a=Mb(this);)Nb(this,a,this.g,this.s);this.o=!1}; + function Nb(a,b,c,d){if(3==c&&b.h&&!b.m)for(;a&&a.m;a=a.i)a.m=!1;if(b.g)b.g.i=null,Sb(b,c,d);else try{b.m?b.l.call(b.i):Sb(b,c,d)}catch(e){Tb.call(null,e)}sb(Ib,b)}function Sb(a,b,c){2==b?a.l.call(a.i,c):a.h&&a.h.call(a.i,c)}function Rb(a,b){a.m=!0;Bb(function(){a.m&&Tb.call(null,b)})}var Tb=vb;function P(a){F.call(this,a)}E(P,F);P.prototype.name="cancel";/* + Portions of this code are from MochiKit, received by + The Closure Authors under the MIT license. All other code is Copyright + 2005-2009 The Closure Authors. All Rights Reserved. +*/ + function Q(a,b){this.m=[];this.K=a;this.J=b||null;this.l=this.i=!1;this.h=void 0;this.F=this.M=this.s=!1;this.o=0;this.g=null;this.v=0}Q.prototype.cancel=function(a){if(this.i)this.h instanceof Q&&this.h.cancel();else{if(this.g){var b=this.g;delete this.g;a?b.cancel(a):(b.v--,0>=b.v&&b.cancel())}this.K?this.K.call(this.J,this):this.F=!0;this.i||(a=new Ub(this),Vb(this),R(this,!1,a))}};Q.prototype.G=function(a,b){this.s=!1;R(this,a,b)};function R(a,b,c){a.i=!0;a.h=c;a.l=!b;Wb(a)} + function Vb(a){if(a.i){if(!a.F)throw new Xb(a);a.F=!1}}function Yb(a,b,c,d){a.m.push([b,c,d]);a.i&&Wb(a);return a}Q.prototype.then=function(a,b,c){var d,e,g=new N(function(f,h){e=f;d=h});Yb(this,e,function(f){f instanceof Ub?g.cancel():d(f)});return g.then(a,b,c)};Q.prototype.$goog_Thenable=!0;function Zb(a){return Ga(a.m,function(b){return"function"===typeof b[1]})} + function Wb(a){if(a.o&&a.i&&Zb(a)){var b=a.o,c=$b[b];c&&(y.clearTimeout(c.g),delete $b[b]);a.o=0}a.g&&(a.g.v--,delete a.g);b=a.h;for(var d=c=!1;a.m.length&&!a.s;){var e=a.m.shift(),g=e[0],f=e[1];e=e[2];if(g=a.l?f:g)try{var h=g.call(e||a.J,b);void 0!==h&&(a.l=a.l&&(h==b||h instanceof Error),a.h=b=h);if(Gb(b)||"function"===typeof y.Promise&&b instanceof y.Promise)d=!0,a.s=!0}catch(k){b=k,a.l=!0,Zb(a)||(c=!0)}}a.h=b;d&&(h=C(a.G,a,!0),d=C(a.G,a,!1),b instanceof Q?(Yb(b,h,d),b.M=!0):b.then(h,d));c&&(b= + new ac(b),$b[b.g]=b,a.o=b.g)}function bc(){var a=new Q;Vb(a);R(a,!0,null);return a}function Xb(){F.call(this)}E(Xb,F);Xb.prototype.message="Deferred has already fired";Xb.prototype.name="AlreadyCalledError";function Ub(){F.call(this)}E(Ub,F);Ub.prototype.message="Deferred was canceled";Ub.prototype.name="CanceledError";function ac(a){this.g=y.setTimeout(C(this.i,this),0);this.h=a}ac.prototype.i=function(){delete $b[this.g];throw this.h;};var $b={};var cc,dc=[];function ec(a,b){function c(){var e=a.shift();e=fc(e,b);a.length&&Yb(e,c,c,void 0);return e}if(!a.length)return bc();var d=dc.length;Ia(dc,a);if(d)return cc;a=dc;return cc=c()} + function fc(a,b){var c=b||{};b=c.document||document;var d=La(a).toString(),e=qb("SCRIPT"),g={W:e,Y:void 0},f=new Q(gc,g),h=null,k=null!=c.timeout?c.timeout:5E3;0<k&&(h=window.setTimeout(function(){hc(e,!0);var m=new ic(1,"Timeout reached for loading script "+d);Vb(f);R(f,!1,m)},k),g.Y=h);e.onload=e.onreadystatechange=function(){e.readyState&&"loaded"!=e.readyState&&"complete"!=e.readyState||(hc(e,c.ra||!1,h),Vb(f),R(f,!0,null))};e.onerror=function(){hc(e,!0,h);var m=new ic(0,"Error while loading script "+ + d);Vb(f);R(f,!1,m)};g=c.attributes||{};Za(g,{type:"text/javascript",charset:"UTF-8"});ob(e,g);e.src=La(a);$a(e);jc(b).appendChild(e);return f}function jc(a){var b;return(b=(a||document).getElementsByTagName("HEAD"))&&0!=b.length?b[0]:a.documentElement}function gc(){if(this&&this.W){var a=this.W;a&&"SCRIPT"==a.tagName&&hc(a,!0,this.Y)}} + function hc(a,b,c){null!=c&&y.clearTimeout(c);a.onload=A;a.onerror=A;a.onreadystatechange=A;b&&window.setTimeout(function(){a&&a.parentNode&&a.parentNode.removeChild(a)},0)}function ic(a,b){var c="Jsloader error (code #"+a+")";b&&(c+=": "+b);F.call(this,c);this.code=a}E(ic,F);I.j.A={};var kc=fc,mc=lc;function nc(a){return Ra(a.format,a.R,a.na||{})}function lc(a,b,c){c=c||{};a=Ra(a,b,c);var d=kc(a,{timeout:3E4,attributes:{async:!1,defer:!1}});return new Promise(function(e){Yb(d,e,null,void 0)})}I.j.A.Ia=function(a){lc=a};I.j.A.La=function(a){kc=a};I.j.A.ha=nc;I.j.A.load=mc; + I.j.A.Aa=function(a){a=Fa(a,nc);if(0==a.length)return Promise.resolve();var b={timeout:3E4,attributes:{async:!1,defer:!1}},c=[];!db||nb()?Ea(a,function(d){c.push(kc(d,b))}):c.push(ec(a,b));return Promise.all(Fa(c,function(d){return new Promise(function(e){return Yb(d,e,null,void 0)})}))};I.j.A.Ca=function(a,b,c){return{format:a,R:b,na:c}};I.j.D={};var S={};I.j.D.va=function(a){return S[a]&&S[a].loaded};I.j.D.wa=function(a){return S[a]&&S[a].promise};I.j.D.la=function(){return new Promise(function(a){"undefined"==typeof window||"complete"===document.readyState?a():window.addEventListener?(document.addEventListener("DOMContentLoaded",a,!0),window.addEventListener("load",a,!0)):window.attachEvent?window.attachEvent("onload",a):"function"!==typeof window.onload?window.onload=a:window.onload=function(b){window.onload(b);a()}})}; + I.j.D.Ba=S;I.j.D.Ha=function(){S={}};I.j.D.Ja=function(a){S[a]||(S[a]={loaded:!1});S[a].loaded=!0};I.j.D.Ka=function(a,b){S[a]={promise:b,loaded:!1}};I.j.N={};I.j.N.P={1:"1.0","1.0":"current","1.1":"upcoming","1.2":"testing",41:"pre-45",42:"pre-45",43:"pre-45",44:"pre-45",46:"46.1","46.1":"46.2",48:"48.1",current:"50",upcoming:"50",testing:"50"};function oc(a,b){this.h={};this.g=[];this.i=0;var c=arguments.length;if(1<c){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else if(a)if(a instanceof oc)for(c=a.H(),d=0;d<c.length;d++)this.set(c[d],a.get(c[d]));else for(d in a)this.set(d,a[d])}l=oc.prototype;l.I=function(){pc(this);for(var a=[],b=0;b<this.g.length;b++)a.push(this.h[this.g[b]]);return a};l.H=function(){pc(this);return this.g.concat()}; + function pc(a){if(a.i!=a.g.length){for(var b=0,c=0;b<a.g.length;){var d=a.g[b];T(a.h,d)&&(a.g[c++]=d);b++}a.g.length=c}if(a.i!=a.g.length){var e={};for(c=b=0;b<a.g.length;)d=a.g[b],T(e,d)||(a.g[c++]=d,e[d]=1),b++;a.g.length=c}}l.get=function(a,b){return T(this.h,a)?this.h[a]:b};l.set=function(a,b){T(this.h,a)||(this.i++,this.g.push(a));this.h[a]=b};l.forEach=function(a,b){for(var c=this.H(),d=0;d<c.length;d++){var e=c[d],g=this.get(e);a.call(b,g,e,this)}}; + function T(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var qc=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^\\/?#]*)@)?([^\\/?#]*?)(?::([0-9]+))?(?=[\\/?#]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;function rc(a,b){if(a){a=a.split("&");for(var c=0;c<a.length;c++){var d=a[c].indexOf("="),e=null;if(0<=d){var g=a[c].substring(0,d);e=a[c].substring(d+1)}else g=a[c];b(g,e?decodeURIComponent(e.replace(/\+/g," ")):"")}}};function sc(a){this.g=this.s=this.l="";this.v=null;this.o=this.h="";this.m=!1;var b;a instanceof sc?(this.m=a.m,tc(this,a.l),this.s=a.s,this.g=a.g,uc(this,a.v),this.h=a.h,vc(this,wc(a.i)),this.o=a.o):a&&(b=String(a).match(qc))?(this.m=!1,tc(this,b[1]||"",!0),this.s=xc(b[2]||""),this.g=xc(b[3]||"",!0),uc(this,b[4]),this.h=xc(b[5]||"",!0),vc(this,b[6]||"",!0),this.o=xc(b[7]||"")):(this.m=!1,this.i=new U(null,this.m))} + sc.prototype.toString=function(){var a=[],b=this.l;b&&a.push(yc(b,zc,!0),":");var c=this.g;if(c||"file"==b)a.push("//"),(b=this.s)&&a.push(yc(b,zc,!0),"@"),a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),c=this.v,null!=c&&a.push(":",String(c));if(c=this.h)this.g&&"/"!=c.charAt(0)&&a.push("/"),a.push(yc(c,"/"==c.charAt(0)?Ac:Bc,!0));(c=this.i.toString())&&a.push("?",c);(c=this.o)&&a.push("#",yc(c,Cc));return a.join("")}; + sc.prototype.resolve=function(a){var b=new sc(this),c=!!a.l;c?tc(b,a.l):c=!!a.s;c?b.s=a.s:c=!!a.g;c?b.g=a.g:c=null!=a.v;var d=a.h;if(c)uc(b,a.v);else if(c=!!a.h){if("/"!=d.charAt(0))if(this.g&&!this.h)d="/"+d;else{var e=b.h.lastIndexOf("/");-1!=e&&(d=b.h.substr(0,e+1)+d)}e=d;if(".."==e||"."==e)d="";else if(-1!=e.indexOf("./")||-1!=e.indexOf("/.")){d=0==e.lastIndexOf("/",0);e=e.split("/");for(var g=[],f=0;f<e.length;){var h=e[f++];"."==h?d&&f==e.length&&g.push(""):".."==h?((1<g.length||1==g.length&& + ""!=g[0])&&g.pop(),d&&f==e.length&&g.push("")):(g.push(h),d=!0)}d=g.join("/")}else d=e}c?b.h=d:c=""!==a.i.toString();c?vc(b,wc(a.i)):c=!!a.o;c&&(b.o=a.o);return b};function tc(a,b,c){a.l=c?xc(b,!0):b;a.l&&(a.l=a.l.replace(/:$/,""))}function uc(a,b){if(b){b=Number(b);if(isNaN(b)||0>b)throw Error("Bad port number "+b);a.v=b}else a.v=null}function vc(a,b,c){b instanceof U?(a.i=b,Dc(a.i,a.m)):(c||(b=yc(b,Ec)),a.i=new U(b,a.m))} + function xc(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""}function yc(a,b,c){return"string"===typeof a?(a=encodeURI(a).replace(b,Fc),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function Fc(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}var zc=/[#\/\?@]/g,Bc=/[#\?:]/g,Ac=/[#\?]/g,Ec=/[#\?@]/g,Cc=/#/g;function U(a,b){this.h=this.g=null;this.i=a||null;this.l=!!b} + function V(a){a.g||(a.g=new oc,a.h=0,a.i&&rc(a.i,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g," ")),c)}))}l=U.prototype;l.add=function(a,b){V(this);this.i=null;a=W(this,a);var c=this.g.get(a);c||this.g.set(a,c=[]);c.push(b);this.h+=1;return this};function Gc(a,b){V(a);b=W(a,b);T(a.g.h,b)&&(a.i=null,a.h-=a.g.get(b).length,a=a.g,T(a.h,b)&&(delete a.h[b],a.i--,a.g.length>2*a.i&&pc(a)))}function Hc(a,b){V(a);b=W(a,b);return T(a.g.h,b)} + l.forEach=function(a,b){V(this);this.g.forEach(function(c,d){Ea(c,function(e){a.call(b,e,d,this)},this)},this)};l.H=function(){V(this);for(var a=this.g.I(),b=this.g.H(),c=[],d=0;d<b.length;d++)for(var e=a[d],g=0;g<e.length;g++)c.push(b[d]);return c};l.I=function(a){V(this);var b=[];if("string"===typeof a)Hc(this,a)&&(b=Ha(b,this.g.get(W(this,a))));else{a=this.g.I();for(var c=0;c<a.length;c++)b=Ha(b,a[c])}return b}; + l.set=function(a,b){V(this);this.i=null;a=W(this,a);Hc(this,a)&&(this.h-=this.g.get(a).length);this.g.set(a,[b]);this.h+=1;return this};l.get=function(a,b){if(!a)return b;a=this.I(a);return 0<a.length?String(a[0]):b};l.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var a=[],b=this.g.H(),c=0;c<b.length;c++){var d=b[c],e=encodeURIComponent(String(d));d=this.I(d);for(var g=0;g<d.length;g++){var f=e;""!==d[g]&&(f+="="+encodeURIComponent(String(d[g])));a.push(f)}}return this.i=a.join("&")}; + function wc(a){var b=new U;b.i=a.i;a.g&&(b.g=new oc(a.g),b.h=a.h);return b}function W(a,b){b=String(b);a.l&&(b=b.toLowerCase());return b}function Dc(a,b){b&&!a.l&&(V(a),a.i=null,a.g.forEach(function(c,d){var e=d.toLowerCase();if(d!=e&&(Gc(this,d),Gc(this,e),0<c.length)){this.i=null;d=this.g;var g=d.set;e=W(this,e);var f=c.length;if(0<f){for(var h=Array(f),k=0;k<f;k++)h[k]=c[k];f=h}else f=[];g.call(d,e,f);this.h+=c.length}},a));a.l=b};I.j.C={};var X="",Y="",Ic,Z,Jc=null,Kc;function Lc(){Y=X="";Jc=Z=Ic=null;z("google.load")||(D("google.load",Mc),D("google.setOnLoadCallback",I.X));var a=document.getElementsByTagName("script");a=(document.currentScript||a[a.length-1]).getAttribute("src");a=new sc(a);var b=a.g;Kc=b=b.match(/^www\.gstatic\.cn/)?"gstatic.cn":"gstatic.com";Nc(a)} + function Nc(a){a=new U(a.i.toString());var b=a.get("callback");"string"===typeof b&&(b=Oc(b),I.j.D.la().then(b));a=a.get("autoload");if("string"===typeof a)try{if(""!==a){var c=JSON.parse(a).modules;for(a=0;a<c.length;a++){var d=c[a];Mc(d.name,d.version,d)}}}catch(e){throw Error("Autoload failed with: "+e);}} + function Pc(a){var b=a,c,d=a.match(/^testing-/);d&&(b=b.replace(/^testing-/,""));a=b;do{if(b===I.j.N.P[b])throw Error("Infinite loop in version mapping: "+b);(c=I.j.N.P[b])&&(b=c)}while(c);c=(d?"testing-":"")+b;return{version:"pre-45"==b?a:c,ma:c}} + function Qc(a){var b=I.j.O.oa[Kc].loader,c=Pc(a);return I.j.A.load(b,{version:c.ma}).then(function(){var d=z("google.charts.loader.VersionSpecific.load")||z("google.charts.loader.publicLoad")||z("google.charts.versionSpecific.load");if(!d)throw Error("Bad version: "+a);Jc=function(e){e=d(c.version,e);if(null==e||null==e.then){var g=z("google.charts.loader.publicSetOnLoadCallback")||z("google.charts.versionSpecific.setOnLoadCallback");e=new Promise(function(f){g(f)});e.then=g}return e}})} + function Rc(a){"string"===typeof a&&(a=[a]);Array.isArray(a)&&0!==a.length||(a=I.j.O.ga);var b=[];a.forEach(function(c){c=c.toLowerCase();b=b.concat(c.split(/[\s,]+\s*/))});return b}function Sc(a){a=a||"";for(var b=a.replace(/-/g,"_").toLowerCase();"string"===typeof b;)a=b,b=I.j.ea[b],b===a&&(b=!1);b||(a.match(/_[^_]+$/)?(a=a.replace(/_[^_]+$/,""),a=Sc(a)):a="en");return a} + function Tc(a){a=a||"";""!==X&&X!==a&&(console.warn(" Attempting to load version '"+a+"' of Google Charts, but the previously loaded '"+(X+"' will be used instead.")),a=X);return X=a||""}function Uc(a){a=a||"";""!==Y&&Y!==a&&(console.warn(" Attempting to load Google Charts for language '"+a+"', but the previously loaded '"+(Y+"' will be used instead.")),a=Y);"en"===a&&(a="");return Y=a||""}function Vc(a){var b={},c;for(c in a)b[c]=a[c];return b} + function Wc(a,b){b=Vc(b);b.domain=Kc;b.callback=Oc(b.callback);a=Tc(a);var c=b.language;c=Uc(Sc(c));b.language=c;if(!Ic){if(b.enableUrlSettings&&window.URLSearchParams)try{a=(new URLSearchParams(top.location.search)).get("charts-version")||a}catch(d){console.info("Failed to get charts-version from top URL",d)}Ic=Qc(a)}b.packages=Rc(b.packages);return Z=Ic.then(function(){return Jc(b)})}I.pa=function(a){return I.load(Object.assign({},a,{safeMode:!0}))};D("google.charts.safeLoad",I.pa); + I.load=function(a){for(var b=[],c=0;c<arguments.length;++c)b[c]=arguments[c];c=0;"visualization"===b[c]&&c++;var d="current";if("string"===typeof b[c]||"number"===typeof b[c])d=String(b[c]),c++;var e={};xa(b[c])&&(e=b[c]);return Wc(d,e)};D("google.charts.load",I.load);I.X=function(a){if(!Z)throw Error("Must call google.charts.load before google.charts.setOnLoadCallback");return a?Z.then(a):Z};D("google.charts.setOnLoadCallback",I.X); + var Xc=H("https://maps.googleapis.com/maps/api/js?jsapiRedirect=true"),Yc=H("https://maps-api-ssl.google.com/maps?jsapiRedirect=true&file=googleapi"); + function Zc(a,b,c){console.warn("Loading Maps API with the jsapi loader is deprecated.");c=c||{};a=c.key||c.client;var d=c.libraries,e=function(h){for(var k={},m=0;m<h.length;m++){var p=h[m];k[p[0]]=p[1]}return k}(c.other_params?c.other_params.split("&").map(function(h){return h.split("=")}):[]),g=Object.assign({},{key:a,za:d},e),f="2"===b?Yc:Xc;Z=new Promise(function(h){var k=Oc(c&&c.callback);I.j.A.load(f,{},g).then(k).then(h)})}var $c=H("https://www.gstatic.com/inputtools/js/ita/inputtools_3.js"); + function ad(a,b,c){xa(c)&&c.packages?(Array.isArray(c.packages)?c.packages:[c.packages]).includes("inputtools")?(console.warn('Loading "elements" with the jsapi loader is deprecated.\nPlease load '+($c+" directly.")),Z=new Promise(function(d){var e=Oc(c&&c.callback);I.j.A.load($c,{},{}).then(e).then(d)})):console.error('Loading "elements" other than "inputtools" is unsupported.'):console.error("google.load of elements was invoked without specifying packages")}var bd=H("https://ajax.googleapis.com/ajax/libs/%{module}/%{version}/%{file}"); + function cd(a,b){var c;do{if(a===b[a])throw Error("Infinite loop in version mapping for version "+a);(c=b[a])&&(a=c)}while(c);return a} + function dd(a,b,c){var d=I.j.ba.ia[a];if(d){b=cd(b,d.aliases);d=d.versions[b];if(!d)throw Error("Unknown version, "+b+", of "+a+".");var e={module:a,version:b||"",file:d.compressed};b=La(I.j.A.ha({format:bd,R:e})).toString();console.warn("Loading modules with the jsapi loader is deprecated.\nPlease load "+(a+" directly from "+b+"."));Z=new Promise(function(g){var f=Oc(c&&c.callback);I.j.A.load(bd,e).then(f).then(g)})}else setTimeout(function(){throw Error('Module "'+a+'" is not supported.');},0)} + function Oc(a){return function(){if("function"===typeof a)a();else if("string"===typeof a&&""!==a)try{var b=z(a);if("function"!==typeof b)throw Error("Type of '"+a+"' is "+typeof b+".");b()}catch(c){throw Error("Callback of "+a+" failed with: "+c);}}}function Mc(a){for(var b=[],c=0;c<arguments.length;++c)b[c]=arguments[c];switch(b[0]){case "maps":Zc.apply(null,ba(b));break;case "elements":ad.apply(null,ba(b));break;case "visualization":I.load.apply(I,ba(b));break;default:dd.apply(null,ba(b))}} + D("google.loader.LoadFailure",!1);Kc?console.warn("Google Charts loader.js should only be loaded once."):Lc();I.j.C.ya=Lc;I.j.C.Da=Pc;I.j.C.Ea=Sc;I.j.C.Fa=Rc;I.j.C.Qa=Tc;I.j.C.Pa=Uc;I.j.C.Ga=Nc;I.j.C.xa=function(){return Jc};}).call(this); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/guide/guide.service.js b/src/main/webapp/scripts/components/guide/guide.service.js new file mode 100644 index 0000000..ee19b39 --- /dev/null +++ b/src/main/webapp/scripts/components/guide/guide.service.js @@ -0,0 +1,50 @@ +/** + * Created by wisestone on 2018-05-29. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Guide", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("guide/find", conditions).then(function (response) { + $log.debug("媛��씠�뱶 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("guide/add", conditions).then(function (response) { + $log.debug("媛��씠�뱶 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("guide/modify", conditions).then(function (response) { + $log.debug("媛��씠�뱶 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + activation : function (conditions) { + return $http.post("guide/activation", conditions).then(function (response) { + $log.debug("媛��씠�뱶 �긽�깭 蹂�寃� 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("guide/detail", conditions).then(function (response) { + $log.debug("媛��씠�뱶 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("guide/remove", conditions).then(function (response) { + $log.debug("媛��씠�뱶 �궘�젣 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/issue/issue.service.js b/src/main/webapp/scripts/components/issue/issue.service.js new file mode 100644 index 0000000..f987fad --- /dev/null +++ b/src/main/webapp/scripts/components/issue/issue.service.js @@ -0,0 +1,92 @@ +/** + * Created by wisestone on 2018-01-04. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("Issue", ['$http', '$log', '$upload', '$rootScope', function ($http, $log, $upload, $rootScope) { + + // �뙆�씪 �뾽濡쒕뱶 吏꾪뻾�쑉�쓣 �몴�떆�빐以��떎. + function fileUploadProgress(evt) { + if (evt.config.file.length > 0) { + + var progress = parseInt(100.0 * evt.loaded / evt.total); + + var body = { + display : progress < 100, // �몴�떆 �뿬遺� + clientFileCount : evt.config.file.length, // �겢�씪�씠�뼵�듃 �뾽濡쒕뱶 �뙆�씪 媛쒖닔 + clientProgress: progress + "%", // 吏꾪뻾瑜� + serverFileName : null, // �꽌踰� �뾽濡쒕뱶 �뙆�씪 紐� + serverProgress : null, + totalFileCount : null, // �쟾泥� �뾽濡쒕뱶 媛쒖닔 + uploadFileCount : null // 吏꾪뻾以묒씤 �뾽濡쒕뱶 �뙆�씪 媛쒖닔 + }; + + $rootScope.$broadcast("displayFileUpload", body); + } + } + + return { + find : function (conditions) { + return $http.post("issue/find", conditions).then(function (response) { + $log.debug("�씠�뒋 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + conditions.url = "issue/add"; + return $upload.upload(conditions).progress(function (evt) { + // �뙆�씪 �뾽濡쒕뱶 吏꾪뻾�쑉�쓣 �몴�떆�빐以��떎. + fileUploadProgress(evt); + + }).then(function (response) { + $log.debug("�씠�뒋 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + conditions.url = "issue/modify"; + return $upload.upload(conditions).progress(function (evt) { + // �뙆�씪 �뾽濡쒕뱶 吏꾪뻾�쑉�쓣 �몴�떆�빐以��떎. + fileUploadProgress(evt); + + }).then(function (response) { + $log.debug("�씠�뒋 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("issue/detail", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("issue/remove", conditions).then(function (response) { + $log.debug("�씠�뒋 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + importExcel : function (conditions) { + conditions.url = "issue/importExcel"; + return $upload.upload(conditions).then(function (response) { + $log.debug("�씠�뒋 Import 寃곌낵 : ", response); + return response; + }); + }, + modifyMultiIssueStatus : function (conditions) { + return $http.post("issue/modifyMultiIssueStatus", conditions).then(function (response) { + $log.debug("�떎以� �씠�뒋 �긽�깭 蹂�寃� 寃곌낵 : ", response); + return response; + }); + }, + sendEmail : function (conditions) { + return $http.post("issue/sendEmail", conditions).then(function (response) { + $log.debug("�씠�뒋 �씠硫붿씪 諛쒖넚 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]) +}); diff --git a/src/main/webapp/scripts/components/issueComment/issueComment.service.js b/src/main/webapp/scripts/components/issueComment/issueComment.service.js new file mode 100644 index 0000000..d1d62f8 --- /dev/null +++ b/src/main/webapp/scripts/components/issueComment/issueComment.service.js @@ -0,0 +1,30 @@ +/** + * Created by wisestone on 2018-01-08. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("IssueComment", ['$http', '$log', function ($http, $log) { + return { + add : function (conditions) { + return $http.post("issueComment/add", conditions).then(function (response) { + $log.debug("�씠�뒋 肄붾찘�듃 �벑濡� 寃곌낵 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("issueComment/remove", conditions).then(function (response) { + $log.debug("�씠�뒋 肄붾찘�듃 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + find : function (conditions) { + return $http.post("issueComment/find", conditions).then(function (response) { + $log.debug("�씠�뒋 肄붾찘�듃 紐⑸줉 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]) +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/issueHistory/issueHistory.service.js b/src/main/webapp/scripts/components/issueHistory/issueHistory.service.js new file mode 100644 index 0000000..366dcb5 --- /dev/null +++ b/src/main/webapp/scripts/components/issueHistory/issueHistory.service.js @@ -0,0 +1,18 @@ +/** + * Created by wisestone on 2018-10-17. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("IssueHistory", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("issueHistory/find", conditions).then(function (response) { + $log.debug("�씠�뒋 湲곕줉 議고쉶 : ", response); + return response; + }); + } + } + } + ]) +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/issueRelation/issueRelation.service.js b/src/main/webapp/scripts/components/issueRelation/issueRelation.service.js new file mode 100644 index 0000000..55465df --- /dev/null +++ b/src/main/webapp/scripts/components/issueRelation/issueRelation.service.js @@ -0,0 +1,30 @@ +/** + * Created by wisestone on 2018-10-17. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("IssueRelation", ['$http', '$log', function ($http, $log) { + return { + add : function (conditions) { + return $http.post("issueRelation/add", conditions).then(function (response) { + $log.debug("�뿰愿� �씠�뒋 �엯�젰 : ", response); + return response; + }); + }, + delete : function (conditions) { + return $http.post("issueRelation/remove", conditions).then(function (response) { + $log.debug("�뿰愿� �씠�뒋 �궘�젣 : ", response); + return response; + }); + }, + find : function (conditions) { + return $http.post("issueRelation/find", conditions).then(function (response) { + $log.debug("�뿰愿� �씠�뒋 議고쉶 : ", response); + return response; + }); + } + } + } + ]) +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/issueReservation/issueReservation.service.js b/src/main/webapp/scripts/components/issueReservation/issueReservation.service.js new file mode 100644 index 0000000..770e16b --- /dev/null +++ b/src/main/webapp/scripts/components/issueReservation/issueReservation.service.js @@ -0,0 +1,26 @@ +/** + * Created by wisestone on 2018-05-29. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("IssueReservation", ['$http', '$log', function ($http, $log) { + return { + detail : function (conditions) { + return $http.post("issueReservation/detail", conditions).then(function (response) { + $log.debug("�씠�뒋 諛쒖깮 �삁�빟 �긽�꽭 議고쉶 �뜲�씠�꽣 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("issueReservation/modify", conditions).then(function (response) { + $log.debug("�씠�뒋 諛쒖깮 �삁�빟 �깮�꽦 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/issueSearch/issueSearch.service.js b/src/main/webapp/scripts/components/issueSearch/issueSearch.service.js new file mode 100644 index 0000000..9498266 --- /dev/null +++ b/src/main/webapp/scripts/components/issueSearch/issueSearch.service.js @@ -0,0 +1,30 @@ +/** + * Created by wisestone on 2018-01-30. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("IssueSearch", ['$http', '$log', function ($http, $log) { + return { + add : function (conditions) { + return $http.post("issueSearch/add", conditions).then(function (response) { + $log.debug("�씠�뒋 寃��깋 議곌굔 �벑濡� 寃곌낵 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("issueSearch/remove", conditions).then(function (response) { + $log.debug("�씠�뒋 寃��깋 議곌굔 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("issueSearch/detail", conditions).then(function (response) { + $log.debug("�씠�뒋 寃��깋 議곌굔 寃��깋 寃곌낵 : ", response); + return response; + }); + } + } + } + ]) +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/issueStatus/issueStatus.service.js b/src/main/webapp/scripts/components/issueStatus/issueStatus.service.js new file mode 100644 index 0000000..9f72e34 --- /dev/null +++ b/src/main/webapp/scripts/components/issueStatus/issueStatus.service.js @@ -0,0 +1,62 @@ +/** + * Created by wisestone on 2018-05-08. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("IssueStatus", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("issueStatus/find", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�깭 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + findAll : function (conditions) { + return $http.post("issueStatus/findAll", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�깭 紐⑸줉 �쟾泥� �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("issueStatus/add", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�깭 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("issueStatus/modify", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�깭 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("issueStatus/detail", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�깭 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("issueStatus/remove", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�깭 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + findNextIssueStatus : function (conditions) { + return $http.post("issueStatus/findNextIssueStatus", conditions).then(function (response) { + $log.debug("�씠�뒋 �긽�깭 蹂�寃� 媛��뒫 �긽�깭 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findNextMultiIssueStatus : function (conditions) { + return $http.post("issueStatus/findNextMultiIssueStatus", conditions).then(function (response) { + $log.debug("�씠�뒋 �떎以� �긽�깭 蹂�寃� 媛��뒫 �긽�깭 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/issueTableConfig/issueTableConfig.service.js b/src/main/webapp/scripts/components/issueTableConfig/issueTableConfig.service.js new file mode 100644 index 0000000..45f7c99 --- /dev/null +++ b/src/main/webapp/scripts/components/issueTableConfig/issueTableConfig.service.js @@ -0,0 +1,24 @@ +/** + * Created by wisestone on 2019-02-07. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("IssueTableConfig", ['$http', '$log', function ($http, $log) { + return { + detail : function (conditions) { + return $http.post("issueTableConfig/detail", conditions).then(function (response) { + $log.debug("�씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �긽�꽭 議고쉶 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("issueTableConfig/add", conditions).then(function (response) { + $log.debug("�씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 �벑濡� : ", response); + return response; + }); + } + } + } + ]) +}); diff --git a/src/main/webapp/scripts/components/issueType/issueType.service.js b/src/main/webapp/scripts/components/issueType/issueType.service.js new file mode 100644 index 0000000..5b6fa9e --- /dev/null +++ b/src/main/webapp/scripts/components/issueType/issueType.service.js @@ -0,0 +1,44 @@ +/** + * Created by wisestone on 2018-05-29. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("IssueType", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("issueType/find", conditions).then(function (response) { + $log.debug("�씠�뒋 �쑀�삎 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("issueType/add", conditions).then(function (response) { + $log.debug("�씠�뒋 �쑀�삎 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("issueType/modify", conditions).then(function (response) { + $log.debug("�씠�뒋 �쑀�삎 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("issueType/detail", conditions).then(function (response) { + $log.debug("�씠�뒋 �쑀�삎 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("issueType/remove", conditions).then(function (response) { + $log.debug("�씠�뒋 �쑀�삎 �궘�젣 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js b/src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js new file mode 100644 index 0000000..1caa2be --- /dev/null +++ b/src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js @@ -0,0 +1,26 @@ +/** + * Created by wisestone on 2018-05-30. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("IssueTypeCustomField", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("issueTypeCustomField/find", conditions).then(function (response) { + $log.debug("�씠�뒋 �쑀�삎 �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("issueTypeCustomField/modify", conditions).then(function (response) { + $log.debug("�씠�뒋 �쑀�삎 �궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/issueUser/issueUser.service.js b/src/main/webapp/scripts/components/issueUser/issueUser.service.js new file mode 100644 index 0000000..27f03ac --- /dev/null +++ b/src/main/webapp/scripts/components/issueUser/issueUser.service.js @@ -0,0 +1,20 @@ +/** + * Created by maprex on 2021-06-08 + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("IssueUser", ['$http', '$log', function ($http, $log) { + return { + modify : function (conditions) { + return $http.post("issueUser/modify", conditions).then(function (response) { + $log.debug("�씠�뒋 �떞�떦�옄 �닔�젙 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/issueVersion/issueVersion.service.js b/src/main/webapp/scripts/components/issueVersion/issueVersion.service.js new file mode 100644 index 0000000..0008ba4 --- /dev/null +++ b/src/main/webapp/scripts/components/issueVersion/issueVersion.service.js @@ -0,0 +1,24 @@ +/** + * Created by wisestone on 2018-01-08. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("IssueVersion", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("issueVersion/find", conditions).then(function (response) { + $log.debug("�씠�뒋 踰꾩쟾 紐⑸줉 寃곌낵 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("issueVersion/add", conditions).then(function (response) { + $log.debug("�씠�뒋 踰꾩쟾 �깮�꽦 寃곌낵 : ", response); + return response; + }); + } + } + } + ]) +}); diff --git a/src/main/webapp/scripts/components/language/language.service.js b/src/main/webapp/scripts/components/language/language.service.js new file mode 100644 index 0000000..2e2e7af --- /dev/null +++ b/src/main/webapp/scripts/components/language/language.service.js @@ -0,0 +1,20 @@ +/** + * Created by wisestone on 2018-07-11. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Language", ['$http', '$log', function ($http, $log) { + return { + change : function (conditions) { + return $http.get("language/change", { params : conditions }).then(function (response) { + $log.debug("�궗�슜�옄 �뼵�뼱 蹂�寃� : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/manageUser/manageUser.service.js b/src/main/webapp/scripts/components/manageUser/manageUser.service.js new file mode 100644 index 0000000..94414c1 --- /dev/null +++ b/src/main/webapp/scripts/components/manageUser/manageUser.service.js @@ -0,0 +1,26 @@ +/** + * Created by wisestone on 2018-01-08. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("ManageUser", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("manageUser/find", conditions).then(function (response) { + $log.debug("�썙�겕�뒪�럹�씠�뒪�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉1 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("manageUser/modify", conditions).then(function (response) { + $log.debug("�썙�겕�뒪�럹�씠�뒪 李몄뿬�옄 李몄뿬 �긽�깭 蹂�寃� 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/notice/notice.service.js b/src/main/webapp/scripts/components/notice/notice.service.js new file mode 100644 index 0000000..5cd4d79 --- /dev/null +++ b/src/main/webapp/scripts/components/notice/notice.service.js @@ -0,0 +1,50 @@ +/** + * Created by wisestone on 2018-05-29. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Notice", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("notice/find", conditions).then(function (response) { + $log.debug("怨듭��궗�빆 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("notice/add", conditions).then(function (response) { + $log.debug("怨듭��궗�빆 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + send : function (conditions) { + return $http.post("notice/send", conditions).then(function (response) { + $log.debug("硫붿꽭吏� 諛쒖넚 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("notice/modify", conditions).then(function (response) { + $log.debug("怨듭��궗�빆 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("notice/detail", conditions).then(function (response) { + $log.debug("怨듭��궗�빆 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("notice/remove", conditions).then(function (response) { + $log.debug("怨듭��궗�빆 �궘�젣 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/payment/payment.service.js b/src/main/webapp/scripts/components/payment/payment.service.js new file mode 100644 index 0000000..ede3cb8 --- /dev/null +++ b/src/main/webapp/scripts/components/payment/payment.service.js @@ -0,0 +1,42 @@ +/** + * Created by wisestone on 2018-02-13. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("Payment", ['$http', '$log', function ($http, $log) { + return { + paymentOneTime : function (parameter) { + return $http.post("payment/paymentOneTime", parameter).then(function (response) { + $log.debug("�젙湲� 寃곗옱 寃곌낵 : ", response); + return response; + }); + }, + immediateAddUser : function (parameter) { + return $http.post("payment/immediateAddUser", parameter).then(function (response) { + $log.debug("異붽� 寃곗옱 寃곌낵 : ", response); + return response; + }); + }, + cancelNextPayment : function (parameter) { + return $http.post("payment/cancelNextPayment", parameter).then(function (response) { + $log.debug("�젙湲� 寃곗옱 痍⑥냼 寃곌낵 : ", response); + return response; + }); + }, + detail : function (parameter) { + return $http.post("payment/detail", parameter).then(function (response) { + $log.debug("�젙湲� 寃곗옱 �젙蹂� 寃곌낵 : ", response); + return response; + }); + }, + modify : function (parameter) { + return $http.post("payment/modify", parameter).then(function (response) { + $log.debug("�젙湲� 寃곗옱 蹂�寃� 寃곌낵 : ", response); + return response; + }); + } + } + } + ]) +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/permission/permission.service.js b/src/main/webapp/scripts/components/permission/permission.service.js new file mode 100644 index 0000000..11b2305 --- /dev/null +++ b/src/main/webapp/scripts/components/permission/permission.service.js @@ -0,0 +1,30 @@ +'use strict'; + +define([ + 'app', + 'angular' +], function (app, angular) { + app.factory("Permission", ['$http', '$log', '$q', '$rootScope', function ($http, $log, $q, $rootScope) { + return { + findByUserId : function () { + var deferred = $q.defer(); + $http.get('permission/findByUserId').then(function (response) { + $log.debug("�쟾泥� 沅뚰븳 紐⑸줉 �뜲�씠�꽣 : ", response); + $rootScope.authorities = {}; + + angular.forEach(response.data.data, function (permission) { + $rootScope.authorities[permission.action] = permission.activeYn; + }); + + deferred.resolve(response); + }) + .catch(function (err) { + $log.debug("Permission.findByUserId �삤瑜� 諛쒖깮", err); + deferred.reject(err); + }); + return deferred.promise; + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/priority/priority.service.js b/src/main/webapp/scripts/components/priority/priority.service.js new file mode 100644 index 0000000..f295fc1 --- /dev/null +++ b/src/main/webapp/scripts/components/priority/priority.service.js @@ -0,0 +1,20 @@ +/** + * Created by wisestone on 2018-06-01. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Priority", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("priority/find", conditions).then(function (response) { + $log.debug("�슦�꽑�닚�쐞 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/project/project.service.js b/src/main/webapp/scripts/components/project/project.service.js new file mode 100644 index 0000000..3629164 --- /dev/null +++ b/src/main/webapp/scripts/components/project/project.service.js @@ -0,0 +1,62 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Project", ['$http', '$log', '$q', '$rootScope', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("project/find", conditions).then(function (response) { + $log.debug("�봽濡쒖젥�듃 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + findWork : function (conditions) { + return $http.post("project/findWork", conditions).then(function (response) { + $log.debug("李몄뿬 �봽濡쒖젥�듃 紐⑸줉 �뜲�씠�꽣(�쟾泥�) : ", response); + return response; + }); + }, + findListWork : function (conditions) { + return $http.post("project/findListWork", conditions).then(function (response) { + $log.debug("李몄뿬 �봽濡쒖젥�듃 紐⑸줉 �뜲�씠�꽣(�븯�쐞�봽濡쒖젥�듃 諛곗뿴 �룷�븿) : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("project/add", conditions).then(function (response) { + $log.debug("�봽濡쒖젥�듃 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("project/modify", conditions).then(function (response) { + $log.debug("�봽濡쒖젥�듃 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("project/detail", conditions).then(function (response) { + $log.debug("�봽濡쒖젥�듃 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("project/remove", conditions).then(function (response) { + $log.debug("�봽濡쒖젥�듃 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + findLastUseProject : function (conditions) { + return $http.post("project/findLastUseProject", conditions).then(function (response) { + $log.debug("留덉�留됱쑝濡� �꽑�깮�뻽�뜕 �봽濡쒖젥�듃 �뜲�씠�꽣 : ", response); + return response; + }); + }, + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/qna/qna.service.js b/src/main/webapp/scripts/components/qna/qna.service.js new file mode 100644 index 0000000..ad4df25 --- /dev/null +++ b/src/main/webapp/scripts/components/qna/qna.service.js @@ -0,0 +1,44 @@ +/** + * Created by wisestone on 2018-05-29. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Qna", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("qna/find", conditions).then(function (response) { + $log.debug("QNA 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("qna/add", conditions).then(function (response) { + $log.debug("QNA �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("qna/modify", conditions).then(function (response) { + $log.debug("QNA �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("qna/detail", conditions).then(function (response) { + $log.debug("QNA �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("qna/remove", conditions).then(function (response) { + $log.debug("QNA �궘�젣 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/reservationDisableUser/reservationDisableUser.service.js b/src/main/webapp/scripts/components/reservationDisableUser/reservationDisableUser.service.js new file mode 100644 index 0000000..4ff20d7 --- /dev/null +++ b/src/main/webapp/scripts/components/reservationDisableUser/reservationDisableUser.service.js @@ -0,0 +1,20 @@ +/** + * Created by wisestone on 2019-02-11. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("ReservationDisableUser", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("reservationDisableUser/find", conditions).then(function (response) { + $log.debug("李몄뿬 ��湲� �궗�슜�옄 議고쉶 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/severity/severity.service.js b/src/main/webapp/scripts/components/severity/severity.service.js new file mode 100644 index 0000000..c32757c --- /dev/null +++ b/src/main/webapp/scripts/components/severity/severity.service.js @@ -0,0 +1,20 @@ +/** + * Created by wisestone on 2018-06-01. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Severity", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("severity/find", conditions).then(function (response) { + $log.debug("以묒슂�룄 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/systemEmail/systemEmail.service.js b/src/main/webapp/scripts/components/systemEmail/systemEmail.service.js new file mode 100644 index 0000000..8724b1b --- /dev/null +++ b/src/main/webapp/scripts/components/systemEmail/systemEmail.service.js @@ -0,0 +1,20 @@ +/** + * Created by wisestone on 2018-06-01. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("SystemEmail", ['$http', '$log', function ($http, $log) { + return { + information : function (conditions) { + return $http.post("systemEmail/information", conditions).then(function (response) { + $log.debug("臾몄쓽�븯湲� 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/task/task.service.js b/src/main/webapp/scripts/components/task/task.service.js new file mode 100644 index 0000000..9586740 --- /dev/null +++ b/src/main/webapp/scripts/components/task/task.service.js @@ -0,0 +1,57 @@ +/** + * Created by wisestone on 2018-01-04. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("Task", ['$http', '$log', '$upload', function ($http, $log, $upload) { + return { + find : function (conditions) { + return $http.post("task/find", conditions).then(function (response) { + $log.debug("�븷�씪 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + conditions.url = "task/add"; + return $upload.upload(conditions).then(function (response) { + $log.debug("�븷�씪 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + conditions.url = "task/modify"; + return $upload.upload(conditions).then(function (response) { + $log.debug("�븷�씪 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + modifyData : function (conditions) { + return $http.post("task/modifyData", conditions).then(function (response) { + $log.debug("�븷�씪 �닔�젙 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("task/remove", conditions).then(function (response) { + $log.debug("�븷�씪 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + updateTaskKanBan : function (conditions) { + return $http.post("task/updateTaskKanBan", conditions).then(function (response) { + $log.debug("移몃컲蹂대뱶 �뾽�뜲�씠�듃 寃곌낵 : ", response); + return response; + }); + }, + excelImport : function (conditions) { + conditions.url = "task/excelImport"; + return $upload.upload(conditions).then(function (response) { + $log.debug("�븷�씪 Import 寃곌낵 : ", response); + return response; + }); + } + } + } + ]) +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/taskComment/taskComment.service.js b/src/main/webapp/scripts/components/taskComment/taskComment.service.js new file mode 100644 index 0000000..5f17a64 --- /dev/null +++ b/src/main/webapp/scripts/components/taskComment/taskComment.service.js @@ -0,0 +1,30 @@ +/** + * Created by wisestone on 2018-01-08. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("TaskComment", ['$http', '$log', function ($http, $log) { + return { + add : function (conditions) { + return $http.post("taskComment/add", conditions).then(function (response) { + $log.debug("�븷�씪 肄붾찘�듃 �벑濡� 寃곌낵 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("taskComment/remove", conditions).then(function (response) { + $log.debug("�븷�씪 肄붾찘�듃 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + find : function (conditions) { + return $http.post("taskComment/find", conditions).then(function (response) { + $log.debug("�븷�씪 肄붾찘�듃 紐⑸줉 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]) +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/user/user.service.js b/src/main/webapp/scripts/components/user/user.service.js new file mode 100644 index 0000000..b9fac63 --- /dev/null +++ b/src/main/webapp/scripts/components/user/user.service.js @@ -0,0 +1,89 @@ +'use strict'; + +define(['app'], function (app) { + app.factory("User", ['$http', '$log', '$upload', function ($http, $log, $upload) { + return { + getUserSession : function (parameter) { + return $http.post("user/getUserSession", parameter).then(function (response) { + $log.debug("�궗�슜�옄 �꽭�뀡 寃곌낵 : ", response); + return response.data; + }); + }, + updateUserSession : function (conditions) { + return $http.post("user/updateUserSession", conditions).then(function (response) { + $log.debug("�젒�냽�븳 媛� �궗�슜�옄�뱾�씠 吏곸젒 �옄�떊�쓽 �꽭�뀡�쓣 �뾽�뜲�씠�듃�븳 寃곌낵 : ", response); + return response; + }); + }, + add : function (conditions) { + conditions.url = "user/add"; + return $upload.upload(conditions).then(function (response) { + $log.debug("�궗�슜�옄 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + returnEmailPassword : function (conditions) { + return $http.post("user/returnEmailPassword", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �씠硫붿씪濡� 鍮꾨�踰덊샇 �쟾�넚 寃곌낵 : ", response); + return response; + }); + }, + updateLastWorkspace : function (conditions) { + return $http.post("user/updateLastWorkspace", conditions).then(function (response) { + $log.debug("�궗�슜�옄媛� 留덉�留됱쑝濡� �꽑�깮�븳 �썙�겕�뒪�럹�씠�뒪 : ", response); + return response; + }); + }, + updateLastProject : function (conditions) { + return $http.post("user/updateLastProject", conditions).then(function (response) { + $log.debug("�궗�슜�옄媛� 留덉�留됱쑝濡� �꽑�깮�븳 �봽濡쒖젥�듃 : ", response); + return response; + }); + }, + find : function (conditions) { + return $http.post("user/find", conditions).then(function (response) { + $log.debug("�궗�슜�옄 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + findByAllWorkspace : function (conditions) { + return $http.post("user/findByAllWorkspace", conditions).then(function (response) { + $log.debug("�쟾泥� �뾽臾� 怨듦컙 �궗�슜�옄 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("user/detail", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + modify : function (conditions) { + conditions.url = "user/modify"; + return $upload.upload(conditions).then(function (response) { + $log.debug("�궗�슜�옄 �젙蹂� �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + modifyPassword : function (conditions) { + return $http.post("user/modifyPassword", conditions).then(function (response) { + $log.debug("�궗�슜�옄 鍮꾨�踰덊샇 蹂�寃� 寃곌낵 : ", response); + return response; + }); + }, + findProjectMember : function (conditions) { + return $http.post("user/findProjectMember", conditions).then(function (response) { + $log.debug("�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �씪諛� �궗�슜�옄 紐⑸줉 議고쉶 : ", response); + return response; + }); + }, + withDraw : function (conditions) { + return $http.post("user/withDraw", conditions).then(function (response) { + $log.debug("�쉶�썝 �깉�눜 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]) +}); diff --git a/src/main/webapp/scripts/components/userHistory/userHistory.service.js b/src/main/webapp/scripts/components/userHistory/userHistory.service.js new file mode 100644 index 0000000..dd96875 --- /dev/null +++ b/src/main/webapp/scripts/components/userHistory/userHistory.service.js @@ -0,0 +1,18 @@ +/** + * Created by maprex on 2021-05-11 + */ +'use strict'; + +define(['app'], function (app) { + app.factory("UserHistory", ['$http', '$log', function ($http, $log) { + return { + addLoginHistory : function () { + return $http.post("userHistory/addLogin").then(function (response) { + $log.debug("濡쒓렇�씤 �엳�뒪�넗由� 異붽� : ", response); + return response; + }); + } + } + } + ]) +}); diff --git a/src/main/webapp/scripts/components/userInvite/userInvite.service.js b/src/main/webapp/scripts/components/userInvite/userInvite.service.js new file mode 100644 index 0000000..c41a605 --- /dev/null +++ b/src/main/webapp/scripts/components/userInvite/userInvite.service.js @@ -0,0 +1,18 @@ +/** + * Created by wisestone on 2018-08-31. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("UserInvite", ['$http', '$log', function ($http, $log) { + return { + invite : function (conditions) { + return $http.post("userInvite/invite", conditions).then(function (response) { + $log.debug("�궗�슜�옄 �썙�겕�뒪�럹�씠�뒪 珥덈� 寃곌낵 : ", response); + return response; + }); + } + } + } + ]) +}); diff --git a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js new file mode 100644 index 0000000..0d3c33e --- /dev/null +++ b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js @@ -0,0 +1,24 @@ +/** + * Created by wisestone on 2018-10-02. + */ +'use strict'; + +define(['app'], function (app) { + app.factory("UserWorkspace", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("userWorkspace/find", conditions).then(function (response) { + $log.debug("�썙�겕�뒪�럹�씠�뒪�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("userWorkspace/modify", conditions).then(function (response) { + $log.debug("�썙�겕�뒪�럹�씠�뒪 李몄뿬�옄 李몄뿬 �긽�깭 蹂�寃� 寃곌낵 : ", response); + return response; + }); + } + } + } + ]) +}); diff --git a/src/main/webapp/scripts/components/utils/agileCardSortable.directive.js b/src/main/webapp/scripts/components/utils/agileCardSortable.directive.js new file mode 100644 index 0000000..9f1fdfa --- /dev/null +++ b/src/main/webapp/scripts/components/utils/agileCardSortable.directive.js @@ -0,0 +1,68 @@ +/** + * Created by wisestone on 2018-02-05. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + app.directive('agileCardSortable', ["$log", "$rootScope", "$compile", "$filter", "Task", "$resourceProvider", "$stateParams", + function ($log, $rootScope, $compile, $filter, Task, $resourceProvider, $stateParams) { + return { + restrict : 'AE', + link : function (scope, element, attrs) { + $(element).sortable({ + //items : ".sortable-item_inner:not(.not-sortable)", // ��吏곸씠吏� 紐삵븯寃� 留됰뒗 肄붾뱶 + //placeholder: "sortable_placeholder", + // cancel: '.not-sortable', // �씠�룞 湲덉� + connectWith : ".connectList", + stop : function (e, ui) { + var taskId = ui.item[0].dataset.taskId; // �꽑�깮�븳 �뾽臾� + var statusId = $(ui.item[0]).parent().attr("data-status-id"); // �씠�룞�븳 �긽�깭 媛� + var currentStatusId = ui.item[0].dataset.tempStatusId; // �씠�룞 �쟾�쓽 �긽�깭 媛� + var prevTaskId = null; // �씠�룞�븳 �긽�깭�뿉�꽌 �씠�쟾 �뾽臾� + var nextTaskId = null; // �씠�룞�븳 �긽�깭�뿉�꽌 �떎�쓬 �뾽臾� + + if (angular.isDefined($(ui.item[0]).prev()[0])) { + prevTaskId = $(ui.item[0]).prev()[0].dataset.taskId; + } + + if (angular.isDefined($(ui.item[0]).next()[0])) { + nextTaskId = $(ui.item[0]).next()[0].dataset.taskId; + } + + var content = { + moveWorkflowStatusId : statusId, // �씠�룞�븳 status id + prevTaskId : prevTaskId, // �씠�룞�븳 �긽�깭�쓽 �씠�쟾 task id + nextTaskId : nextTaskId, // �씠�룞�븳 �긽�깭�쓽 �떎�쓬 task id + taskId : taskId, // �씠�룞�븳 task id + projectId : $rootScope.lastProject.id, + actionType : "/notification/task-move" + }; + + scope.fn.executeSelfMoveTaskUpdate(content); + + $(ui.item[0]).attr("data-temp-status-id", statusId); + + if (currentStatusId !== statusId) { + $(ui.item[0]).remove(); + } + + Task.updateTaskKanBan($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status == "success") { + + } + else { + // TODO - �쎒 �냼耳볦쑝濡� 寃쎄퀬李� �몴�떆 + } + }); + } + + + }).disableSelection(); + } + } + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js new file mode 100644 index 0000000..4e36089 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js @@ -0,0 +1,182 @@ +/** + * Created by wisestone on 2017-12-20. + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('autoCompleteController', ['$scope', '$injector', '$filter', + function ($scope, $injector, $filter) { + + var $rootScope = $injector.get("$rootScope"); + var $resourceProvider = $injector.get("$resourceProvider"); + var $q = $injector.get("$q"); + var User = $injector.get("User"); + var Project = $injector.get("Project"); + var Workflow = $injector.get("Workflow"); + var Issue = $injector.get("Issue"); + var $log = $injector.get("$log"); + var SweetAlert = $injector.get("SweetAlert"); + + // �븿�닔 + $scope.fn.getUserList = getUserList; // �궗�슜�옄 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.getProjectList = getProjectList; // �봽濡쒖젥�듃 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.getIssueList = getIssueList; // �씪媛� 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.getWorkflowList = getWorkflowList; // �썙�겕�뵆濡쒖슦 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. + + function getUserList(query, excludeList, page, callBack) { + var conditions = { + name : query, + statuses : ["01"], + projectId : (function () { + var projectId = ""; + + if ($rootScope.isDefined($scope.vm.form)) { + angular.forEach($scope.vm.form.projects, function (project) { + projectId = project.id; + }); + } + + return projectId; + })(), + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + User.find($resourceProvider.getContent( // �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎. + conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { + if (result.data.message.status === "success") { + + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + + deferred.resolve(result.data.data); + } + else { + SweetAlert.swal($filter("translate")("common.failedToUserListLookUp"), result.data.message.message, "error"); // "�궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + return deferred.promise; + } + + function getProjectList(query, excludeList, page, callBack, statuses, roleTypes) { + var conditions = { + name : query, + roleTypes : $rootScope.isDefined(roleTypes) ? roleTypes : ["01", "02"], + statuses : $rootScope.isDefined(statuses) ? statuses : ["01", "02"], + userId : $rootScope.user.id, + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + Project.findWork($resourceProvider.getContent( // �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎. + conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { + if (result.data.message.status === "success") { + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + + deferred.resolve(result.data.data); + } + else { + SweetAlert.swal($filter("translate")("common.failedToProjectListLookUp"), result.data.message.message, "error"); // "�봽濡쒖젥�듃 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + return deferred.promise; + } + + function getWorkflowList(query, excludeList, page, callBack) { + var conditions = { + name : query, + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + Workflow.find($resourceProvider.getContent( // �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎. + conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { + if (result.data.message.status === "success") { + + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + + deferred.resolve(result.data.data); + } + else { + SweetAlert.swal($filter("translate")("common.failedToWorkflowListLookUp"), result.data.message.message, "error"); // "�썙�겕�뵆濡쒖슦 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + return deferred.promise; + } + + function getIssueList(query, excludeList, page, callBack) { + var conditions = { + name : query, + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + Issue.find($resourceProvider.getContent( // �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎. + conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { + if (result.data.message.status === "success") { + + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + + deferred.resolve(result.data.data); + } + else { + SweetAlert.swal($filter("translate")("common.failedToIssueListLookUp"), result.data.message.message, "error"); // "�썙�겕�뵆濡쒖슦 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + return deferred.promise; + } + } + ]); + } +); diff --git a/src/main/webapp/scripts/components/utils/cardContent.directive.js b/src/main/webapp/scripts/components/utils/cardContent.directive.js new file mode 100644 index 0000000..b7f65a2 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/cardContent.directive.js @@ -0,0 +1,136 @@ +/** + * Created by wisestone on 2018-02-06. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + app.directive('cardContent', ["$log", "$rootScope", "$compile", + function ($log, $rootScope, $compile) { + return { + restrict : 'AE', + compile : function (tElement, tAttrs) { + return function (scope, element, attrs) { + var makeTag = ""; + scope.task = scope[attrs["cardContent"]]; + + if (angular.isDefined(scope.task)) { + if (scope.task.priorityVo != null) { + + switch(scope.task.priorityVo.color) { + case "btn-danger" : + $(element).addClass("item-danger"); + break; + case "btn-primary" : + $(element).addClass("item-primary"); + break; + case "btn-info" : + $(element).addClass("item-info"); + break; + } + } + + // 吏��뿰 �뿬遺� �솗�씤 + if ($rootScope.isDefined(scope.task.completeDate)) { + var completeDate = new Date(scope.task.completeDate); + var year = new Date().getFullYear(); + var month = new String(new Date().getMonth() + 1); + var day = new String(new Date().getDate()); + var nowDate = new Date(year + "-" + month + "-" + day); + + if (completeDate.getTime() < nowDate.getTime()) { + makeTag += "<div class='temp-pi-controls'><span class='badge badge-danger'>吏��뿰</span></div>"; + } + } + + // Body �쁺�뿭 + makeTag += "<div class='temp-pi-body'>"; + makeTag += "<div class='temp-pi-info'>"; + makeTag += "<div class='h6 temp-pi-name'>" + scope.task.title + "</div>"; + + if (angular.isDefined(scope.task.description) && scope.task.description != null && scope.task.description.length > 0) { + makeTag += "<div class='temp-pi-cont'>" + scope.task.description + "</div>"; + } + + makeTag += "</div>"; + makeTag += "</div>"; // temp-pi-body 醫낅즺 + + if (scope.task.taskCommentCount > 0 || scope.task.attachedFileCount > 0 || scope.task.userVos.length > 0 || $rootScope.isDefined(scope.task.startDate)) { + // Footer �쁺�뿭 + makeTag += "<div class='temp-pi-footer'>"; + makeTag += "<div class='temp-tag'>"; + + makeTag += "<a class='temp-extra-info' href=''><i class='os-icon os-icon-mail-12'></i><span>" + scope.task.taskCommentCount + "</span></a>"; + makeTag += "<a class='temp-extra-info' href=''><i class='os-icon os-icon-ui-51'></i><span>"+ scope.task.attachedFileCount +"</span></a>"; + + if ($rootScope.isDefined(scope.task.completeDate)) { + var year = new Date().getFullYear(); + var completeDateYear = scope.task.completeDate.substr(0, 4); + + // 媛숈� �뀈�룄硫� + if (year == completeDateYear) { + makeTag += "<span class='temp-exdate'>" + scope.task.completeDate.substr(5, scope.task.completeDate.length) + "</span>"; + } + else { + makeTag += "<span class='temp-exdate'>" + scope.task.completeDate + "</span>"; + } + } + else { + makeTag += "<span class='temp-exdate'></span>"; + } + + makeTag += "</div>"; // temp-tag 醫낅즺 + + makeTag += "<div class='temp-extra-info2'>"; + + for (var count = 0; count < scope.task.userVos.length; count++) { + var user = scope.task.userVos[count]; + + if (count > 1) { + makeTag += "<div class='os-dropdown-trigger os-dropdown-position-left'>"; + makeTag += "<span class='avatar'>"; + makeTag += "<img alt='' ng-src='" + user.profile + "'/>"; + makeTag += "</span>"; + makeTag += "<div class='os-dropdown light message-list'>"; + makeTag += "<ul>"; + + var innerCount = count; + + // �굹癒몄� �궗�슜�옄 �젙蹂대�� �뿬湲곗꽌 �뀑�똿�븳�떎. + for (innerCount; innerCount < scope.task.userVos.length; innerCount++) { + makeTag += "<li> <a href=''> <div class='user-avatar-w'> <img alt='' ng-src='" + user.profile + "'> </div> <div class='message-content'>"; + makeTag += "<h6 class='message-from'> " + user.name + " </h6>"; + makeTag += "<h6 class='message-title'>" + user.account + "</h6>"; + makeTag += "</div> </a> </li> "; + } + + makeTag += "</ul> </div> </div>"; + makeTag += "<div class='more'>" + "+" +(innerCount - count) + "</div>"; + } + else { + makeTag += "<div class='os-dropdown-trigger os-dropdown-position-left'>"; + makeTag += "<span class='avatar'>"; + makeTag += "<img alt='' ng-src='" + user.profile + "'/>"; + makeTag += "</span>"; + makeTag += "<div class='os-dropdown light message-list'>"; + makeTag += "<ul> <li> <a href=''> <div class='user-avatar-w'> <img alt='' ng-src='" + user.profile + "'> </div> <div class='message-content'>"; + makeTag += "<h6 class='message-from'> " + user.name + " </h6>"; + makeTag += "<h6 class='message-title'>" + user.account + "</h6>"; + makeTag += "</div> </a> </li> </ul> </div> </div>"; + } + } + + makeTag += "</div>"; // temp-extra-info 醫낅즺 + makeTag += "</div>"; // temp-footer 醫낅즺 + } + + var linkFn = $compile(makeTag); + var content = linkFn(scope); + element.append(content); + } + }; + } + } + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/cardTextarea.directive.js b/src/main/webapp/scripts/components/utils/cardTextarea.directive.js new file mode 100644 index 0000000..90d5f95 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/cardTextarea.directive.js @@ -0,0 +1,39 @@ +/** + * Created by wisestone on 2018-03-13. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('cardTextarea', ["$log", + function ($log) { + return { + restrict: 'A', + link: function (scope, element, attrs) { + + var $taskTextarea = $(element).find(".task-textarea"); + + + $taskTextarea.on("focusin", function () { + $(element).find(".task-textarea-btn").removeClass("hide"); + }); + + $taskTextarea.on("focusout ", function (event) { + if (event.relatedTarget != null) { + if (!$(event.relatedTarget).hasClass("task-textarea-btn")) { + if (!$(element).find(".task-textarea-btn").hasClass("hide")) { + $(element).find(".task-textarea-btn").addClass("hide"); + } + } + } + else { + if (!$(element).find(".task-textarea-btn").hasClass("hide")) { + $(element).find(".task-textarea-btn").addClass("hide"); + } + } + }); + + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/colorPalettePicker.directive.js b/src/main/webapp/scripts/components/utils/colorPalettePicker.directive.js new file mode 100644 index 0000000..ffa678b --- /dev/null +++ b/src/main/webapp/scripts/components/utils/colorPalettePicker.directive.js @@ -0,0 +1,34 @@ +/** + * Created by wisestone on 2018-05-09. + */ +'use strict'; + +define(['app'], + function (app) { + + app.directive('colorPalettePicker', [ + function () { + return { + scope : { + target : "=" + }, + restrict : 'A', + link : function (scope, element, attrs) { + + $(element).colorPalette({ + colors : [ + ["#665fff", "#3598fe", "#3bcde2", "#98c220", "#357d57", "#c940ea", "#ff5f99", "#ff9057"], + ["#febd35", "#888888"] + ] + }) + .on('selectColor', function (e) { + scope.target = e.color; + + if (scope.$root.$$phase != '$apply' && scope.$root.$$phase != '$digest') { + scope.$apply(); + } + }); + } + } + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/dateRangePicker.directive.js b/src/main/webapp/scripts/components/utils/dateRangePicker.directive.js new file mode 100644 index 0000000..04eae5d --- /dev/null +++ b/src/main/webapp/scripts/components/utils/dateRangePicker.directive.js @@ -0,0 +1,113 @@ +/** + * Created by jeong on 2018-01-13. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + + app.directive('dateRangePicker', ["$log", "$rootScope", "$translate", + function ($log, $rootScope, $translate) { + return { + restrict: 'A', + scope: { + ngModel: "=", + parentEl : "=" + }, + controller: function ($scope, $element, $attrs) { + $scope.fn = { + makeDateRangePicker : makeDateRangePicker + }; + + // 留덉씪�뒪�넠�뿉�꽌 �봽濡쒖젥�듃 湲곌컙 �궡�뿉�꽌留� �궇吏쒕�� �꽑�깮�븷 �닔 �엳�룄濡� �빐二쇰뒗 湲곕뒫 + $scope.$on("makeDateRangePicker", function (event, args) { + $($element).empty(); + + $scope.fn.makeDateRangePicker($translate.use(), args.startDate, args.endDate); + }); + + // �뼵�뼱 蹂�寃쎌떆 �깉濡� 怨좎묠 + $scope.$on("languageChange", function (event, args) { + $scope.fn.makeDateRangePicker(args.language); + }); + + function makeDateRangePicker(language, minDate, maxDate) { + + var options = { + applyLabel : "", + cancelLabel : "", + daysOfWeek : [], + monthNames : [] + }; + + switch(language) { + case "ko" : + options.applyLabel = "�쟻�슜"; + options.cancelLabel = "痍⑥냼"; + options.daysOfWeek = ["�씪", "�썡", "�솕", "�닔", "紐�", "湲�", "�넗"]; + options.monthNames = ["1�썡", "2�썡", "3�썡", "4�썡", "5�썡", "6�썡", "7�썡", "8�썡", "9�썡", "10�썡", "11�썡", "12�썡"]; + break; + case "en" : + options.applyLabel = "Apply"; + options.cancelLabel = "Cancel"; + options.daysOfWeek = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; + options.monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + break; + } + + if (angular.isDefined($attrs["rangeType"])) { + $($element).daterangepicker({ + timePicker: false, + autoUpdateInput: true, + autoApply : true, + minDate : minDate, + maxDate : maxDate, + parentEl : $scope.parentEl !== undefined ? $scope.parentEl : "body", + locale: { + format: 'YYYY-MM-DD', + separator: " ~ ", + applyLabel: options.applyLabel, + cancelLabel: options.cancelLabel, + daysOfWeek: options.daysOfWeek, + monthNames: options.monthNames + }, + opens : "center" + }); + } + else { + $($element).daterangepicker({ + timePicker: false, + autoUpdateInput: false, + autoApply : false, + parentEl : $scope.parentEl !== undefined ? $scope.parentEl : "body", + locale: { + format: $attrs["dateFormat"], // 'YY-MM-DD HH:mm' + separator: " ~ ", + applyLabel: options.applyLabel, + cancelLabel: options.cancelLabel, + daysOfWeek: options.daysOfWeek, + monthNames: options.monthNames + }, + opens : "center" + }); + + $($element).on('apply.daterangepicker', function(ev, picker) { + $scope.ngModel = picker.startDate.format($attrs["dateFormat"]) + ' ~ ' + picker.endDate.format($attrs["dateFormat"]); + }); + + $($element).on('cancel.daterangepicker', function(ev, picker) { + $scope.ngModel = ""; + }); + } + } + + $scope.fn.makeDateRangePicker($translate.use()); + }, + link: function (scope, element, attrs) { + + + } + } + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/dateTimePicker.directive.js b/src/main/webapp/scripts/components/utils/dateTimePicker.directive.js new file mode 100644 index 0000000..ca7384e --- /dev/null +++ b/src/main/webapp/scripts/components/utils/dateTimePicker.directive.js @@ -0,0 +1,29 @@ +'use strict'; + +define(['app'], + function (app) { + + app.directive('dateTimePicker', [ + function () { + return { + restrict : 'A', + link : function (scope, element, attrs) { + + $(element).datetimepicker({ + datepicker: false, + format : "H:i", + timepicker : true, + mask : true, + defaultSelect : false, + allowTimes : [ + '07:00', '07:30', '08:00', '08:30', '09:00', '09:30', '10:00', + '10:30', '11:00', '11:30', '12:00', '12:30', '13:00', '13:30', + '14:00', '14:30', '15:00', '15:30', '16:00', '16:30', '17:00', + '17:30', '18:00', '18:30', '19:00', '19:30', '20:00', '20:30', + '21:00', '21:30', '22:00', '22:30', '23:00', '23:30', '24:00' + ] + }); + } + } + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/detectIssueEditor.directive.js b/src/main/webapp/scripts/components/utils/detectIssueEditor.directive.js new file mode 100644 index 0000000..5aba303 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/detectIssueEditor.directive.js @@ -0,0 +1,25 @@ +/** + * Created by wisestone on 2018-10-12. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('detectIssueEditor', ["$log", + function ($log) { + return { + scope : { + update : '&' + }, + restrict: 'E', + link: function ($scope, $element, $attrs) { + + $(".support-ticket-content-w").click(function (event) { + if (!$(event.target).hasClass("editForm")) { + $scope.update(); + } + }); + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/domAppend.directive.js b/src/main/webapp/scripts/components/utils/domAppend.directive.js new file mode 100644 index 0000000..30a9352 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/domAppend.directive.js @@ -0,0 +1,25 @@ +/** + * Created by wisestone on 2019-02-28. + */ +/** + * Created by wisestone on 2018-10-12. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('domAppend', ["$log", "$compile", + function ($log, $compile) { + return { + scope : { + dom : '=' + }, + restrict: 'A', + link: function ($scope, $element, $attrs) { + var linkFn = $compile($scope.dom); + var content = linkFn($scope); + $element.append(content); + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/formSubmit.directive.js b/src/main/webapp/scripts/components/utils/formSubmit.directive.js new file mode 100644 index 0000000..b9c8714 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/formSubmit.directive.js @@ -0,0 +1,32 @@ +/** + * Created by wisestone on 2018-11-13. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('formSubmit', ["$log", "$rootScope", + function ($log, $rootScope) { + return { + restrict : 'A', + scope : { + makeSearchConditions : "&" + }, + link : function ($scope, $element, $attrs) { + + var formName = $attrs["formSubmit"]; + + // �겢由� + $($element).click(function (){ + if ($rootScope.isDefined($scope.makeSearchConditions)) { + var conditions = $scope.makeSearchConditions(); + + $("input[name='conditions']").val(JSON.stringify(conditions)); + } + + $('form[name="' + formName + '"]').submit(); + }); + } + }; + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/fullScroll.directive.js b/src/main/webapp/scripts/components/utils/fullScroll.directive.js new file mode 100644 index 0000000..e9d1a16 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/fullScroll.directive.js @@ -0,0 +1,19 @@ +'use strict'; + +define(['app'], + function (app) { + app.directive('fullScroll', ["$timeout", "$log", + function ($timeout, $log) { + return { + restrict : 'A', + link : function (scope, element, attrs) { + $timeout(function () { + element.slimscroll({ + height : '100%', + railOpacity : 0.3 + }); + }); + } + }; + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/functionToolTip.directive.js b/src/main/webapp/scripts/components/utils/functionToolTip.directive.js new file mode 100644 index 0000000..7a52445 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/functionToolTip.directive.js @@ -0,0 +1,20 @@ +'use strict'; + +define(['app', 'tooltip'], + function (app, tooltip) { + + app.directive('functionToolTip', ["$log", + function ($log) { + return { + restrict: 'A', + link : function ($scope, $element, $attrs) { + + new tooltip($($element)[0], { + placement: $attrs["placement"], // or bottom, left, right, and variations + title: $attrs["originalTitle"] + }); + + } + } + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/includeReplace.directive.js b/src/main/webapp/scripts/components/utils/includeReplace.directive.js new file mode 100644 index 0000000..6b14bf9 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/includeReplace.directive.js @@ -0,0 +1,18 @@ +/** + * Created by wisestone on 2018-08-29. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('includeReplace', [ + function () { + return { + require : 'ngInclude', + restrict : 'A', + link : function (scope, element, attrs) { + element.replaceWith(element.children()); + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/inputRegex.directive.js b/src/main/webapp/scripts/components/utils/inputRegex.directive.js new file mode 100644 index 0000000..c1d9756 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/inputRegex.directive.js @@ -0,0 +1,32 @@ +/** + * Created by wisestone on 2018-12-13. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('inputRegex', [ + function () { + return { + require : 'ngModel', + restrict : 'A', + link : function (scope, element, attrs, ngModelCtrl) { + + function fromUser(text) { + if (text) { + var transformedInput = text.replace(new RegExp(attrs["inputRegex"], "g"), ''); + + if (transformedInput !== text) { + ngModelCtrl.$setViewValue(transformedInput); + ngModelCtrl.$render(); + } + return transformedInput; + } + return ""; + } + + ngModelCtrl.$parsers.push(fromUser); + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js b/src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js new file mode 100644 index 0000000..4f8cf0f --- /dev/null +++ b/src/main/webapp/scripts/components/utils/issueDetailImagePreview.directive.js @@ -0,0 +1,36 @@ +/** + * Created by wisestone on 2019-03-06. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('issueDetailImagePreview', ["$log", "$compile", + function ($log, $compile) { + return { + scope : { + images : "=" + }, + restrict : 'E', + link : function ($scope, $element, $attrs) { + + $scope.fn = { + makeNgImageGallery : makeNgImageGallery // �씠誘몄� 媛ㅻ윭由� 留뚮뱾湲� + }; + + $scope.$watch("images", function (newValue) { + $element.empty(); + $scope.fn.makeNgImageGallery(); // �씠誘몄� 媛ㅻ윭由� 留뚮뱾湲� + }); + + // �씠誘몄� 媛ㅻ윭由� 留뚮뱾湲� + function makeNgImageGallery() { + var makeTag = '<ng-image-gallery images="images" thumb-size="80" bubbles="true" bubble-size="50" img-bubbles="true"></ng-image-gallery>'; + var linkFn = $compile(makeTag); + var content = linkFn($scope); + $element.append(content); + } + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/issueSearchArrayViewElement.directive.js b/src/main/webapp/scripts/components/utils/issueSearchArrayViewElement.directive.js new file mode 100644 index 0000000..23f8234 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/issueSearchArrayViewElement.directive.js @@ -0,0 +1,70 @@ +/** + * Created by wisestone on 2018-09-05. + */ +'use strict'; + +define(['app', 'angular'], + function (app, angular) { + app.directive('issueSearchArrayViewElement', ["$log", "$compile", + function ($log, $compile) { + return { + restrict: 'AE', + scope: { + lists : "=", + type : "=" + }, + link: function ($scope, $element, $attrs) { + + $scope.fn = { + makeSearchElements : makeSearchElements, // �꽑�깮�븳 寃��깋 ���긽 媛믪쓣 �솕硫댁뿉 �몴�떆�븳�떎. + remove : remove // �꽑�깮�븳 ���긽 媛믪쓣 珥덇린�솕�븳�떎. + }; + + $scope.$watch("lists", function () { + $element.empty(); + $scope.fn.makeSearchElements(); + }, true); + + + function remove(id) { + var tempLists = []; + + angular.forEach($scope.lists, function (target) { + if (target.id != id) { + tempLists.push(target); + } + }); + + $scope.lists = angular.copy(tempLists); + } + + + function makeSearchElements() { + var makeTag = ""; + + angular.forEach($scope.lists, function (list) { + makeTag += "<p>"; + switch($scope.type) { + case "user": + makeTag += list.byName; + break; + + case "project": + makeTag += list.name; + break; + } + + + makeTag += "<span ng-click='fn.remove(" + list.id + ")'>횞</span>"; + makeTag += "</p>"; + }); + + var linkFn = $compile(makeTag); + var content = linkFn($scope); + $element.append(content); + } + + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/issueSearchCustomFieldViewElement.directive.js b/src/main/webapp/scripts/components/utils/issueSearchCustomFieldViewElement.directive.js new file mode 100644 index 0000000..97ce5f3 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/issueSearchCustomFieldViewElement.directive.js @@ -0,0 +1,96 @@ +/** + * Created by wisestone on 2018-09-05. + */ +'use strict'; + +define(['app', 'angular'], + function (app, angular) { + app.directive('issueSearchCustomFieldViewElement', ["$log", "$compile", "$rootScope", + function ($log, $compile, $rootScope) { + return { + restrict : 'AE', + scope : { + customFields : "=", + }, + link : function ($scope, $element, $attrs) { + + $scope.fn = { + makeSearchElements : makeSearchElements, // �꽑�깮�븳 寃��깋 ���긽 媛믪쓣 �솕硫댁뿉 �몴�떆�븳�떎. + remove : remove, // 臾몄옄�뿴, �떒�씪 �꽑�깮 �븘�뱶 �궘�젣 + removeMultiSelect : removeMultiSelect + }; + + $scope.$watch("customFields", function () { + $element.empty(); + $scope.fn.makeSearchElements(); + }, true); + + // �떎以� �꽑�깮 �븘�뱶 �궘�젣 + function removeMultiSelect(customFieldId, value) { + for (var count in $scope.customFields) { + var customField = $scope.customFields[count]; + + if (customField.id == customFieldId) { + var tempUseValues = []; + + for (var innerCount in customField.useValues) { + if (!(customField.useValues[innerCount].value == value)) { + tempUseValues.push(customField.useValues[innerCount]); + } + } + + customField.useValues = angular.copy(tempUseValues); + + break; + } + } + } + + // 臾몄옄�뿴, �떒�씪 �꽑�깮 �븘�뱶 �궘�젣 + function remove(customFieldId) { + for (var count in $scope.customFields) { + var customField = $scope.customFields[count]; + + if (customField.id == customFieldId) { + customField.useValues = ""; + break; + } + } + } + + function makeSearchElements() { + var makeTag = ""; + + angular.forEach($scope.customFields, function (customField) { + if ($rootScope.isDefined(customField.useValues)) { + switch (customField.customFieldType) { + case "INPUT" : + makeTag += "<p>"; + makeTag += customField.useValues; + makeTag += "<span ng-click='fn.remove(" + customField.id + ")'>횞</span>"; + makeTag += "</p>"; + break; + + case "SINGLE_SELECT" : + case "MULTI_SELECT" : + angular.forEach(customField.useValues, function (useValue) { + makeTag += "<p>"; + makeTag += useValue.value; + makeTag += "<span ng-click='fn.removeMultiSelect(" + customField.id + ",\"" + useValue.value + "\")'>횞</span>"; + makeTag += "</p>"; + }); + + break; + } + } + }); + + var linkFn = $compile(makeTag); + var content = linkFn($scope); + $element.append(content); + } + + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js b/src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js new file mode 100644 index 0000000..92ee0a0 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/issueSearchFieldKeyViewElement.directive.js @@ -0,0 +1,67 @@ +/** + * Created by wisestone on 2018-09-05. + */ +'use strict'; + +define(['app', 'angular'], + function (app, angular) { + app.directive('issueSearchFieldKeyViewElement', ["$log", "$compile", + function ($log, $compile) { + return { + restrict: 'AE', + scope: { + lists : "=", + keys : "=" + }, + link: function ($scope, $element, $attrs) { + + $scope.fn = { + makeSearchElements : makeSearchElements, // �꽑�깮�븳 寃��깋 ���긽 媛믪쓣 �솕硫댁뿉 �몴�떆�븳�떎. + remove : remove // �꽑�깮�븳 ���긽 媛믪쓣 珥덇린�솕�븳�떎. + }; + + $scope.$watch("keys", function () { + $element.empty(); + $scope.fn.makeSearchElements(); + }, true); + + function remove(fieldKey) { + var tempKeys = []; + + angular.forEach($scope.keys, function (key) { + if (key.fieldKey != fieldKey) { + tempKeys.push(key); + } + }); + + $scope.keys = angular.copy(tempKeys); + } + + function makeSearchElements() { + var makeTag = ""; + + angular.forEach($scope.keys, function (key) { + makeTag += "<p>"; + + for (var count in $scope.lists) { + var target = $scope.lists[count]; + + if (target.fieldKey == key.fieldKey) { + makeTag += target.fieldValue; + break; + } + } + + makeTag += "<span ng-click='fn.remove(" + key.fieldKey + ")'>횞</span>"; + makeTag += "</p>"; + }); + + var linkFn = $compile(makeTag); + var content = linkFn($scope); + $element.append(content); + } + + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/issueStatusAutoFocus.directive.js b/src/main/webapp/scripts/components/utils/issueStatusAutoFocus.directive.js new file mode 100644 index 0000000..d668c61 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/issueStatusAutoFocus.directive.js @@ -0,0 +1,28 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('issueStatusAutoFocus', ["$log", "$rootScope", + function ($log, $rootScope) { + return { + scope: { + list: "=list" + }, + restrict: 'A', + link: function ($scope, $element, $attrs) { + $scope.$watch("list", function (newValue) { + if ($rootScope.isDefined(newValue)) { + if (newValue.length > 0) { + $element.focus(); + } + } + }) + + + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/krInput.directive.js b/src/main/webapp/scripts/components/utils/krInput.directive.js new file mode 100644 index 0000000..cdc212e --- /dev/null +++ b/src/main/webapp/scripts/components/utils/krInput.directive.js @@ -0,0 +1,31 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('krInput', [ + function () { + return { + require: 'ngModel', + restrict: 'A', + link: function (scope, element, attrs, ngModel) { + var blank_pattern = /^\s+|\s+$/g; + + // DOM -> Model 媛깆떊 + element.bind("input", function () { + if (element.val().length > 0) { + if (element.val().replace(blank_pattern, '') === "") { + element.val(""); + return false; + } + } + + ngModel.$setViewValue(element.val()); + scope.$digest(); + }); + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/modalFormAutoScroll.directive.js b/src/main/webapp/scripts/components/utils/modalFormAutoScroll.directive.js new file mode 100644 index 0000000..4b75392 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/modalFormAutoScroll.directive.js @@ -0,0 +1,29 @@ +/** + * Created by jeong on 2018-01-13. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('modalFormAutoScroll', [ + function () { + return { + restrict: 'A', + link: function (scope, element, attrs) { + + $(element).click(function () { + $(".modal-body").animate({ + scrollTop: $(".modal-body").scrollTop() + 420 + }, 500); + }); + + $(element).focus(function () { + $(".modal-body").animate({ + scrollTop: $(".modal-body").scrollTop() + 420 + }, 500); + }); + } + }; + }]) + }); + diff --git a/src/main/webapp/scripts/components/utils/ngEnter.directive.js b/src/main/webapp/scripts/components/utils/ngEnter.directive.js new file mode 100644 index 0000000..825e0bc --- /dev/null +++ b/src/main/webapp/scripts/components/utils/ngEnter.directive.js @@ -0,0 +1,32 @@ +/** + * Created by wisestone on 2017-12-21. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('ngEnter', [ + function () { + return { + restrict: 'A', + link: function (scope, element, attrs) { + element.unbind("keydown keypress"); + + element.bind("keydown keypress", function (event) { + switch (event.target.nodeName) { + case "TEXTAREA" : + case "DIV" : + break; + default : + if (event.which === 13) { + scope.$apply(function () { + scope.$eval(attrs.ngEnter); + }); + event.preventDefault(); + } + } + }); + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/noticeModal.directive.js b/src/main/webapp/scripts/components/utils/noticeModal.directive.js new file mode 100644 index 0000000..bf53690 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/noticeModal.directive.js @@ -0,0 +1,26 @@ +/** + * Created by maprex on 2021-02-26 + */ +'use strict'; + +define(['app'], + function (app) { + // app.controller('noticeModalController', ["$rootScope", + // function ($rootScope){ + // console.log("DSFSD"); + // + // }]), + // app.directive('noticeModal', ["$rootScope", + // function ($rootScope) { + // return { + // restrict : 'E', + // template: "<h2>�뀒�뒪�듃</h2>", + // //templateUrl: 'views/popup/notice.html' + // }; + // }]) + app.directive('noticeModal', function () { + return { + template:'<h2>�뀒�뒪�듃</h2>' + } + }); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/numberOnly.directive.js b/src/main/webapp/scripts/components/utils/numberOnly.directive.js new file mode 100644 index 0000000..34d4a2c --- /dev/null +++ b/src/main/webapp/scripts/components/utils/numberOnly.directive.js @@ -0,0 +1,31 @@ +/** + * Created by wisestone on 2018-09-27. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('numberOnly', ["$rootScope", + function ($rootScope) { + return { + require: 'ngModel', + restrict: 'A', + link: function (scope, element, attrs, ngModel) { + // DOM -> Model 媛깆떊 + element.bind("input", function (e) { + element.val(element.val().replace(/[e\+\-]/gi, "")); + element.val(element.val().replace(/[^0-9]/g, "")); + + if ($rootScope.isDefined(attrs["maxlength"])) { + if (element.val().length > attrs["maxlength"]) { + element.val(element.val().slice(0, attrs["maxlength"])); + } + } + + ngModel.$setViewValue(element.val()); + scope.$digest(); + }); + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/owlAttachedFileType.directive.js b/src/main/webapp/scripts/components/utils/owlAttachedFileType.directive.js new file mode 100644 index 0000000..0074392 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/owlAttachedFileType.directive.js @@ -0,0 +1,34 @@ +/** + * Created by wisestone on 2018-04-02. + */ +'use strict'; + +define(['app'], + function (app) { + app.directive('owlAttachedFileType', ["$rootScope", + function ($rootScope) { + return { + restrict : 'A', + link : function (scope, element, attrs) { + scope.file = scope[attrs["owlAttachedFileType"]]; + + if ($rootScope.isDefined(scope.file)) { + if (scope.file.contentType.indexOf("image") > -1) { + element.append('<span class="attached-media-w"><img src="' + scope.file.path + '"></span>'); + } + else if (scope.file.contentType.indexOf("text") > -1 || scope.file.contentType.indexOf("application") > -1) { + element.append('<i class="os-icon os-icon-file-text"></i>'); + } + else if (scope.file.contentType.indexOf("video") > -1) { + element.append('<i class="os-icon os-icon-film"></i>'); + } + else { + element.append('<i class="os-icon os-icon-ui-51"></i>'); + } + } + + + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/owlAutoFocus.directive.js b/src/main/webapp/scripts/components/utils/owlAutoFocus.directive.js new file mode 100644 index 0000000..0ef5a1f --- /dev/null +++ b/src/main/webapp/scripts/components/utils/owlAutoFocus.directive.js @@ -0,0 +1,24 @@ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + + app.directive('owlAutoFocus', ["$timeout", "$log", + function ($timeout, $log) { + return { + restrict : 'A', + link : function (scope, element, attr) { + // IE踰꾧렇濡� �씤�빐 �떎 洹몃젮吏꾪썑�뿉 �룷而ㅼ뒪媛� 媛��빞�븳�떎. - 500ms + $timeout(function () { + if (angular.isDefined(attr["target"])) { + $(attr["target"]).trigger("focus"); + } + else { + element.focus(); + } + }, 500); + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/owlAutoTextHeight.directive.js b/src/main/webapp/scripts/components/utils/owlAutoTextHeight.directive.js new file mode 100644 index 0000000..8c43da1 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/owlAutoTextHeight.directive.js @@ -0,0 +1,38 @@ +/** + * Created by wisestone on 2018-03-23. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + + app.directive('owlAutoTextHeight', ["$timeout", "$log", + function ($timeout, $log) { + return { + restrict : 'A', + link : function (scope, element, attr) { + + function textAreaResize(obj) { + obj.style.height = "1px"; + obj.style.height = (12 + obj.scrollHeight) + "px"; + } + + element.focus(function () { + textAreaResize(this); + }); + + element.bind("input", function () { + textAreaResize(this); + }); + + + scope.$on("dynamicTextareaHeight", function (event, args) { + $timeout(function () { + textAreaResize($(element)[0]); + }); + }); + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/owlMobileTopMenu.directive.js b/src/main/webapp/scripts/components/utils/owlMobileTopMenu.directive.js new file mode 100644 index 0000000..f93d799 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/owlMobileTopMenu.directive.js @@ -0,0 +1,91 @@ +/** + * Created by wisestone on 2018-09-17. + */ + +'use strict'; + +define(['app'], + function (app) { + + app.directive('owlMobileTopMenu', ["$log", + function ($log) { + return { + restrict: 'A', + link: function (scope, element, attr) { + $(document).ready(function () { + osInitSubMenus(); + }); + + function subMenuForTabletPC() { + $('.menu-mobile .avatar-w').click(function () { + $('.menu-mobile .logged-user-info-ws').toggle(); + return false; + }); + } + + function osInitSubMenus() { + + var screenWidth = $(window).width(); + var loggedUserInfoBox = $('.menu-mobile .logged-user-info-ws'); + loggedUserInfoBox.hide(); + + $('.mobile-menu-trigger').click(function () { + $('.menu-mobile .menu-and-user').slideToggle(200, 'swing'); + return false; + }); + + if (screenWidth > 750) { + subMenuForTabletPC(); + } + + $(window).resize(function () { + + var resizeWidth = $(window).width(); + + //�꽭濡쒕え�뱶 + if (loggedUserInfoBox.show()) { + loggedUserInfoBox.hide(); + } + + if (resizeWidth > 750) { + subMenuForTabletPC(); + + } else if (resizeWidth < 750) { + $('.menu-mobile .avatar-w').off('click'); + } + }); + + + // INIT MENU TO ACTIVATE ON HOVER + var menu_timer; + $('.menu-activated-on-hover').on('mouseenter', 'ul.main-menu > li.has-sub-menu', function () { + var $elem = $(this); + clearTimeout(menu_timer); + $elem.closest('ul').addClass('has-active').find('> li').removeClass('active'); + $elem.addClass('active'); + }); + + $('.menu-activated-on-hover').on('mouseleave', 'ul.main-menu > li.has-sub-menu', function () { + var $elem = $(this); + menu_timer = setTimeout(function () { + $elem.removeClass('active').closest('ul').removeClass('has-active'); + }, 30); + }); + + // INIT MENU TO ACTIVATE ON CLICK + $('.menu-activated-on-click').on('click', 'li.has-sub-menu > a', function (event) { + $log.debug("�떎�뻾"); + var $elem = $(this).closest('li'); + if ($elem.hasClass('active')) { + $elem.removeClass('active'); + } else { + $elem.closest('ul').find('li.active').removeClass('active'); + $elem.addClass('active'); + } + return false; + }); + } + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/owlProfileOver.directive.js b/src/main/webapp/scripts/components/utils/owlProfileOver.directive.js new file mode 100644 index 0000000..2ce3240 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/owlProfileOver.directive.js @@ -0,0 +1,27 @@ +/** + * Created by wisestone on 2018-03-29. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + + app.directive('owlProfileOver', ["$log", + function ($log) { + return { + restrict : 'A', + link : function (scope, element, attr) { + $(document).ready(function () { + $('.os-dropdown-trigger').mouseenter(function () { + $(this).addClass('over'); + }); + + $('.os-dropdown-trigger').mouseleave(function () { + $(this).removeClass('over'); + }); + }); + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/owlProjectKey.directive.js b/src/main/webapp/scripts/components/utils/owlProjectKey.directive.js new file mode 100644 index 0000000..5f2b774 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/owlProjectKey.directive.js @@ -0,0 +1,28 @@ +/** + * Created by wisestone on 2018-08-31. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + + app.directive('owlProjectKey', ["$log", + function ($log) { + return { + require: 'ngModel', + restrict : 'A', + link : function (scope, element, attr, ngModel) { + element.blur(function () { + upperString(); + }); + + function upperString() { + var upperString = angular.uppercase(ngModel.$viewValue); + ngModel.$setViewValue(upperString); + ngModel.$render(); + } + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/owlTaskAutoButton.directive.js b/src/main/webapp/scripts/components/utils/owlTaskAutoButton.directive.js new file mode 100644 index 0000000..50de01c --- /dev/null +++ b/src/main/webapp/scripts/components/utils/owlTaskAutoButton.directive.js @@ -0,0 +1,27 @@ +/** + * Created by wisestone on 2018-03-26. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + + app.directive('owlTaskAutoButton', ["$log", + function ($log) { + return { + restrict : 'A', + link : function (scope, element, attr) { + + $(element).click(function () { + $(".task-textarea-btn").addClass("hide"); + + // �깮�꽦 踰꾪듉�씠硫� �뀓�뒪�듃 �븘�뱶�뿉 �룷而ㅼ뒪瑜� 二쇱옄 + if ($(element).hasClass("task-add-btn")) { + $(element).parent().parent().find(".task-textarea").focus(); + } + }); + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/removeHtmlTag.filter.js b/src/main/webapp/scripts/components/utils/removeHtmlTag.filter.js new file mode 100644 index 0000000..5616ca4 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/removeHtmlTag.filter.js @@ -0,0 +1,26 @@ +/** + * Created by wisestone on 2018-01-10. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + app.filter('removeHTMLTags', ["$log", + function ($log) { + return function(text) { + + var result = ""; + + if (angular.isDefined(text) && text != null && text != "") { + result = String(text).replace(/(<([^>]+)>)/ig,""); + result = result.replace(/ /g, ""); + } + + /*return text ? String(text).replace(/<[^>]+>/gm, '') : '';*/ + return result; + + + }; + }]); + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/resource.provider.js b/src/main/webapp/scripts/components/utils/resource.provider.js new file mode 100644 index 0000000..680301f --- /dev/null +++ b/src/main/webapp/scripts/components/utils/resource.provider.js @@ -0,0 +1,30 @@ +/** + * Created by wisestone on 2017-12-11. + */ +'use strict'; + +define(['app'], + function (app) { + app.provider('$resourceProvider', [ + function () { + return { + $get: function () { + return { + getContent: function (content, page) { + return { + content: content, + page: page + }; + }, + getPageContent: function (page, pageSize) { + return { + page: page, + pageSize: pageSize + }; + } + } + } + } + }]); + }); + diff --git a/src/main/webapp/scripts/components/utils/summerNoteAutoFocus.directive.js b/src/main/webapp/scripts/components/utils/summerNoteAutoFocus.directive.js new file mode 100644 index 0000000..aeb9b73 --- /dev/null +++ b/src/main/webapp/scripts/components/utils/summerNoteAutoFocus.directive.js @@ -0,0 +1,24 @@ +'use strict'; + +define(['app'], + function (app) { + + app.directive('summerNoteAutoFocus', ["$log", + function ($log) { + return { + restrict: 'A', + link: function ($scope, $element, $attr) { + + $(document).ready(function () { + if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) { + $(".note-editable").input(function () { + $(".modal").animate({ + scrollTop: 400 + }, 100); + }) + } + }); + } + }; + }]) + }); diff --git a/src/main/webapp/scripts/components/utils/tableUserImage.directive.js b/src/main/webapp/scripts/components/utils/tableUserImage.directive.js new file mode 100644 index 0000000..3771d6b --- /dev/null +++ b/src/main/webapp/scripts/components/utils/tableUserImage.directive.js @@ -0,0 +1,72 @@ +/** + * Created by wisestone on 2018-03-28. + */ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + + app.directive('tableUserImage', ["$log", "$compile", + function ($log, $compile) { + return { + restrict : 'AE', + compile : function (tElement, tAttrs) { + return function (scope, element, attrs) { + var makeTag = ""; + scope.users = scope[attrs["tableUserImage"]][attrs["target"]]; + + if (angular.isDefined(scope.users)) { + for (var count = 0; count < scope.users.length; count++) { + var user = scope.users[count]; + + if (count > 1) { + makeTag += "<div class='os-dropdown-trigger os-dropdown-position-left user-with-avatar'>"; + + makeTag += "<span class='avatar'>"; + makeTag += "<img alt='' ng-src='" + user.profile + "'/>"; + makeTag += "</span>"; + makeTag += "<div class='os-dropdown light message-list'>"; + makeTag += "<ul>"; + + var innerCount = count; + + // �굹癒몄� �궗�슜�옄 �젙蹂대�� �뿬湲곗꽌 �뀑�똿�븳�떎. + for (innerCount; innerCount < scope.users.length; innerCount++) { + + makeTag += "<li> <a href=''> <div class='message-content'>"; + makeTag += "<h6 class='message-from'> " + scope.users[innerCount].name + " </h6>"; + makeTag += "<h6 class='message-title'>" + scope.users[innerCount].account + "</h6>"; + makeTag += "</div> </a> </li> "; + } + + makeTag += "</ul> </div>"; + makeTag += "</div>"; + + makeTag += "<div class='more'>" + "+" + (innerCount - count) + "</div>"; + break; + } + else { + makeTag += "<div class='os-dropdown-trigger os-dropdown-position-left user-with-avatar'>"; + makeTag += "<span class='avatar'>"; + makeTag += "<img alt='' ng-src='" + user.profile + "'/>"; + makeTag += "</span>"; + makeTag += "<div class='os-dropdown light message-list'>"; + makeTag += "<ul>"; + makeTag += "<li><a href=''><div class='message-content'>"; + makeTag += "<h6 class='message-from'> " + user.name + " </h6>"; + makeTag += "<h6 class='message-title'>" + user.account + "</h6>"; + makeTag += "</div></a></li></ul></div>"; + makeTag += "</div>"; + } + } + } + + var linkFn = $compile(makeTag); + var content = linkFn(scope); + element.append(content); + } + } + }; + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/utils/textUpperString.directive.js b/src/main/webapp/scripts/components/utils/textUpperString.directive.js new file mode 100644 index 0000000..dd8630f --- /dev/null +++ b/src/main/webapp/scripts/components/utils/textUpperString.directive.js @@ -0,0 +1,26 @@ +'use strict'; + +define(['app', + 'angular'], + function (app, angular) { + + app.directive('textUpperString', [ + function () { + return { + require: 'ngModel', + restrict: 'A', + link : function (scope, element, attrs, ngModel) { + + element.blur(function () { + upperString(); + }); + + function upperString() { + var upperString = angular.uppercase(ngModel.$viewValue); + ngModel.$setViewValue(upperString); + ngModel.$render(); + } + } + } + }]) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/widget/widget.service.js b/src/main/webapp/scripts/components/widget/widget.service.js new file mode 100644 index 0000000..4441421 --- /dev/null +++ b/src/main/webapp/scripts/components/widget/widget.service.js @@ -0,0 +1,68 @@ +/** + * Created by wisestone on 2018-10-30. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Widget", ['$http', '$log', function ($http, $log) { + return { + findAllWidget : function (conditions) { + return $http.post("widget/findAllWidget", conditions).then(function (response) { + $log.debug("�쐞�젽 �쟾泥� 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findMyAssigneeIssue : function (conditions) { + return $http.post("widget/findMyAssigneeIssue", conditions).then(function (response) { + $log.debug("�굹�뿉寃� �븷�떦�맂 �씠�뒋 紐⑸줉 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findDelayIssue : function (conditions) { + return $http.post("widget/findDelayIssue", conditions).then(function (response) { + $log.debug("吏��뿰以묒씤 �씠�뒋 紐⑸줉 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findRegisterIssue : function (conditions) { + return $http.post("widget/findRegisterIssue", conditions).then(function (response) { + $log.debug("�궡媛� �벑濡앺븳 �씠�뒋 紐⑸줉 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findMemberProgress : function (conditions) { + return $http.post("widget/findMemberProgress", conditions).then(function (response) { + $log.debug("硫ㅻ쾭蹂� 吏꾪뻾瑜� 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findRiskIssue : function (conditions) { + return $http.post("widget/findRiskIssue", conditions).then(function (response) { + $log.debug("�쐞�뿕 愿�由� 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findIssueComplete : function (conditions) { + return $http.post("widget/findIssueComplete", conditions).then(function (response) { + $log.debug("�쟾泥� �씠�뒋 泥섎━ �쁽�솴 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findByStandIssueType : function (conditions) { + return $http.post("widget/findByStandIssueType", conditions).then(function (response) { + $log.debug("�쟾泥� �씠�뒋 �쑀�삎 蹂� �씠�뒋 �쁽�솴 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + findSeverityIssueWidget : function (conditions) { + return $http.post("widget/findSeverityIssueWidget", conditions).then(function (response) { + $log.debug("以묒슂�룄 蹂� �씠�뒋 �쁽�솴 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/workflow/workflow.service.js b/src/main/webapp/scripts/components/workflow/workflow.service.js new file mode 100644 index 0000000..01d9ce6 --- /dev/null +++ b/src/main/webapp/scripts/components/workflow/workflow.service.js @@ -0,0 +1,50 @@ +/** + * Created by wisestone on 2018-05-10. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Workflow", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("workflow/find", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("workflow/add", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �깮�꽦 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("workflow/modify", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("workflow/detail", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �긽�꽭 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("workflow/remove", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + uploadImage : function (conditions) { + return $http.post("workflow/uploadImage", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �씠誘몄� �뾽濡쒕뱶 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]); +}); diff --git a/src/main/webapp/scripts/components/workflowStatus/workflowStatus.service.js b/src/main/webapp/scripts/components/workflowStatus/workflowStatus.service.js new file mode 100644 index 0000000..c7f6a00 --- /dev/null +++ b/src/main/webapp/scripts/components/workflowStatus/workflowStatus.service.js @@ -0,0 +1,50 @@ +/** + * Created by wisestone on 2018-01-08. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("WorkflowStatus", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("workflowStatus/find", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �긽�깭 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + modifyPosition : function (conditions) { + return $http.post("workflowStatus/modifyPosition", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �긽�깭 �룷吏��뀡 蹂�寃� : ", response); + return response; + }); + }, + add : function (conditions) { + return $http.post("workflowStatus/add", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �긽�깭 �깮�꽦 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("workflowStatus/modify", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + detail : function (conditions) { + return $http.post("workflowStatus/detail", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �긽�깭 �긽�꽭 議고쉶 �뜲�씠�꽣 : ", response); + return response; + }); + }, + remove : function (conditions) { + return $http.post("workflowStatus/remove", conditions).then(function (response) { + $log.debug("�썙�겕�뵆濡쒖슦 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]); +}); \ No newline at end of file diff --git a/src/main/webapp/scripts/components/workspace/workspace.service.js b/src/main/webapp/scripts/components/workspace/workspace.service.js new file mode 100644 index 0000000..2c090dc --- /dev/null +++ b/src/main/webapp/scripts/components/workspace/workspace.service.js @@ -0,0 +1,50 @@ +/** + * Created by wisestone on 2018-01-08. + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("Workspace", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("workspace/find", conditions).then(function (response) { + $log.debug("�뾽臾닿났媛� 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, + out : function (conditions) { + return $http.post("workspace/out", conditions).then(function (response) { + $log.debug("�뾽臾닿났媛� �궗�슜�옄 �젣�쇅 寃곌낵 : ", response); + return response; + }); + }, + findPrimaryWorkspace : function (conditions) { + return $http.post("workspace/findPrimaryWorkspace", conditions).then(function (response) { + $log.debug("Primary Workspace : ", response); + return response; + }); + }, + findMyWorkspace : function (conditions) { + return $http.post("workspace/findMyWorkspace", conditions).then(function (response) { + $log.debug("�옄�떊�씠 愿�由ы븯�뒗 �뾽臾닿났媛� �젙蹂� 寃곌낵 : ", response); + return response; + }); + }, + modify : function (conditions) { + return $http.post("workspace/modify", conditions).then(function (response) { + $log.debug("�뾽臾닿났媛� �닔�젙 寃곌낵 : ", response); + return response; + }); + }, + checkUseWorkspace : function (conditions) { + return $http.post("workspace/checkUseWorkspace", conditions).then(function (response) { + $log.debug("�뾽臾닿났媛� 李몄뿬 �뿬遺� 議고쉶 寃곌낵 : ", response); + return response; + }); + }, + } + } + ]); +}); diff --git a/src/main/webapp/scripts/config.js b/src/main/webapp/scripts/config.js new file mode 100644 index 0000000..8a810db --- /dev/null +++ b/src/main/webapp/scripts/config.js @@ -0,0 +1,544 @@ +'use strict'; + +define(['app', 'angular'], + function (app, angular) { + return app.config(function ($controllerProvider, $provide, $filterProvider, $compileProvider, $logProvider, $urlRouterProvider, $httpProvider, $translateProvider) { + // angularJs + requireJs �뿰�룞�쓣 �쐞�빐�븯�뒗 �뀑�똿. + app.controller = $controllerProvider.register; + app.service = $provide.service; + app.filter = $filterProvider.register; + app.directive = $compileProvider.directive; + app.factory = $provide.factory; + app.provider = $provide.provider; + + // 留ㅼ묶�릺�뒗 url�씠 �뾾�쑝硫� login�쑝濡� �씠�룞�븳�떎. + $urlRouterProvider.otherwise(function ($injector) { + var $state = $injector.get('$state'); + $state.go('login'); + }); + + // �넻�떊 �씤�꽣�뀎�꽣 + $httpProvider.interceptors.push('authInterceptor'); + // ajax �쓳�떟�쓣 �븳踰덉뿉 臾띠뼱 digest roof �떎�뻾 + $httpProvider.useApplyAsync(true); + + // �떎援��뼱 �꽕�젙 + $translateProvider.useLoader('$translatePartialLoader', { + urlTemplate : 'i18n/{lang}/{part}.json' + }); + + $translateProvider.preferredLanguage('ko'); + $translateProvider.useCookieStorage(); + $translateProvider.useSanitizeValueStrategy('escaped'); + $translateProvider.forceAsyncReload(true); + + // 濡쒓렇 �젣�뼱 + $logProvider.debugEnabled(true); + }) + .run(function ($rootScope, $state, $sce, $log, $injector, $translate, $tableProvider, Principal, Auth, Language, SweetAlert, $filter, Workspace, $resourceProvider, User, constants, Project) { + + $rootScope.$state = $state; + // html �깭洹� �쎒 蹂댁븞 �쟻�슜�븯�뿬 諛붿씤�뵫. + $rootScope.$sce = $sce; + // �봽濡쒓렇�옒�뒪諛� �몴�떆 �뿬遺� 寃곗젙 媛� + $rootScope.spinner = false; + // �쎒 �냼耳볦쑝濡� 愿�由ы븯�뒗 �쟾泥� �궗�슜�옄 �젙蹂� + $rootScope.users = []; + // 濡쒓렇�씤�븳 �궗�슜�옄 �젙蹂� + $rootScope.user = undefined; + // �쟾泥� �썙�겕�뒪�럹�씠�뒪 �젙蹂� + $rootScope.workspaces = []; + // �궗�슜媛��뒫�븳 �쟾泥� �봽濡쒖젥�듃 �젙蹂� + $rootScope.projects = []; + // �쁽�옱 �궗�슜以묒씤 �봽濡쒖젥�듃 + $rootScope.workProject = null; + // �씠�뒋 紐⑸줉->�긽�꽭�솕硫댁뿉�꽌 留덉�留됱쑝濡� �젒洹쇳븳 �씠�뒋 �븘�씠�뵒 - �씪�슦�듃 �깉�븣留덈떎 珥덇린�솕 + $rootScope.currentDetailIssueId = null; + // 臾몄쓽�븯湲� + $rootScope.information = false; + + // PrimaryWorkspace + $rootScope.hasPrimaryWorkspace = false; + + // 理쒓퀬愿�由ъ옄 議댁옱 �뿬遺� + $rootScope.hasSuperUser = false; + + // ���떆蹂대뱶 �꽑�깮 0:�쟾泥� 1:�봽濡쒖젥�듃 + $rootScope.dashboard = 0; + + // �쎒 �냼耳� �뿰寃� �젙蹂� + $rootScope.webSocket = { + socket : null, + client : null + }; + + // get parameter + $rootScope.previousGetParams = null; + + // �궗�슜�옄 �궗�슜 �뼵�뼱 + $rootScope.language = $translate.proposedLanguage(); // 湲곕낯 �븳援��뼱 + + // �뙆�씪 �솗�옣�옄 - 泥⑤� �뿀�슜�릺�뒗 �솗�옣�옄 紐⑥쓬 + $rootScope.fileTypeMap = { + "hwp" : "DOC", + "txt" : "DOC", + "pptx" : "DOC", + "ppt" : "DOC", + "pdf" : "DOC", + "xlsx" : "DOC", + "xls" : "DOC", + "docx" : "DOC", + "doc" : "DOC", + "jpg" : "IMAGE", + "png" : "IMAGE", + "gif" : "IMAGE", + "jpeg" : "IMAGE", + "tif" : "IMAGE", + "bmp" : "IMAGE", + "wmv" : "MEDIA", + "avi" : "MEDIA", + "mp4" : "MEDIA", + "mkv" : "MEDIA", + "mov" : "MEDIA", + "zip" : "ETC" + }; + + // �뙆�씪 �뾽濡쒕뱶 �뿀�슜 諛붿씠�듃 + $rootScope.fileByte = { + image : 10485760, // 10MB + file : 314572800 // 100MB + }; + + // �뀒�씠釉� �꽕�젙 諛� 湲곕뒫�쓣 愿�由ы븯�뒗 �꽌鍮꾩뒪 + $rootScope.$tableProvider = $tableProvider; + + // html tag convert - �떊猶고븷 �닔 �엳�뒗 �엯�젰 媛믪씪 �븣留� �궗�슜, �궗�슜�옄媛� �벑濡앺븯�뒗 媛믪뿉�뒗 �궗�슜 湲덉� + $rootScope.trustAsHtml = function (string) { + return $sce.trustAsHtml(string); + }; + + // angular isDefined �� 怨듬갚 泥댄겕媛� �븞�릺�꽌 吏곸젒 留뚮뱾�뼱 �벐�옄. + $rootScope.isDefined = function (value) { + if (value == null || value === "" || value === undefined) { + return false; + } + + return true; + }; + + // �씠�뒋 �깮�꽦, �닔�젙�뿉�꽌 �떎以� �꽑�깮, �떒�씪 �꽑�깮 �샃�뀡�뿉 泥댄겕�릺寃� �빐二쇰뒗 湲곕뒫 + $rootScope.selectOption = function (useValues, value) { + var result = false; + + // 硫��떚 ���젆�듃 �씪�븣 + if (angular.isArray(useValues)) { + for (var count in useValues) { + if (useValues[count] === value) { + result = true; + break; + } + } + } + else { + if (useValues === value) { + result = true; + } + } + + return result; + }; + + // �뾽濡쒕뱶�븳 �뙆�씪�씠 �씠誘몄� �솗�옣�옄�씤吏� �솗�씤 + $rootScope.checkImageType = function ($file) { + var fileTypes = $file.type.split("/"); + + if (fileTypes[0] !== "image") { + return false; + } + + return true; + }; + + // �뙆�씪�쓣 �뾽濡쒕뱶�븷 �븣 �뙆�씪 �쑀�삎�쓣 �솗�씤�빐二쇰뒗 湲곕뒫 - �뿀�슜�릺吏� �븡�� �솗�옣�옄�씪 �븣�뒗 泥⑤� 湲덉� + $rootScope.checkFileType = function ($file) { + var fileName = $file.name.toLowerCase(); + var pos = fileName.lastIndexOf("."); + var ext = fileName.substring(pos + 1); + + if ($rootScope.isDefined($rootScope.fileTypeMap[ext])) { + $file.fileType = $rootScope.fileTypeMap[ext]; + } + else { + return false; + } + + return true; + }; + + // xss 怨듦꺽 諛⑹� + $rootScope.preventXss = function (value) { + if (!$rootScope.isDefined(value)) { + return ""; + } + + return value.replace(/(\b)(on\S+)(\s*)=|javascript|(<\s*)(\/*)script/gi, " "); + }; + + // �븫�샇�솕 + $rootScope.encryption = function (text) { + // PBKDF2 �궎 �깮�꽦 + var key128Bits100Iterations = + CryptoJS.PBKDF2(constants.PASS_PHRASE, CryptoJS.enc.Hex.parse(constants.SALT), + { keySize: constants.KEY_SIZE/32, iterations: constants.ITERATION_COUNT }); + + return CryptoJS.AES.encrypt( + text, + key128Bits100Iterations, + { iv: CryptoJS.enc.Hex.parse(constants.IV) }).toString(); + }; + + // �뼵�뼱 蹂�寃� + $rootScope.changeLocale = function (locale) { + var serverLocale = ""; + + switch (locale) { + case "ko" : + serverLocale = "ko_KR"; + break; + case "en" : + serverLocale = "en_US"; + break; + case "ja" : + serverLocale = "ja_JP"; + break; + case "vi" : + serverLocale = "vi_VN"; + break; + } + + if (!$rootScope.isDefined(serverLocale)) { + SweetAlert.swal($filter("translate")("common.failedLanguageChange"), $filter("translate")("common.notSelectedLanguage"), "error"); // "�뼵�뼱 蹂�寃� �떎�뙣", "�뼵�뼱 �꽑�깮�씠 �릺吏� �븡�븯�뒿�땲�떎." + } + + Language.change({language : serverLocale}).then(function (result) { + if (result.data.message.status === "success") { + $translate.use(locale); + $translate.refresh(locale); + $rootScope.$broadcast("languageChange", {language : locale}); + } + }); + }; + + // 沅뚰븳 由ъ뒪�듃 + $rootScope.mngPermission = { + "USER_PERMISSION_MNG_WORKSPACE" : 4096, + "USER_PERMISSION_MNG_PROJECT" : 2048, + "USER_PERMISSION_MNG_USER" : 1024, + "USER_PERMISSION_MNG_ISSUE_STATUS" : 512, + "USER_PERMISSION_MNG_WORKFLOW" : 256, + "USER_PERMISSION_MNG_CUSTOME_FIELD" : 128, + "USER_PERMISSION_MNG_ISSUE_TYPE" : 64, + "USER_PERMISSION_MNG_NOTICE" : 32, + "USER_PERMISSION_MNG_FAQ" : 16, + "USER_PERMISSION_MNG_QNA" : 8, + "USER_PERMISSION_MNG_EVENT" : 4, + "USER_PERMISSION_MNG_GUIDE" : 2, + }; + + // 沅뚰븳�쓣 �솗�씤�븳�떎 + $rootScope.checkMngPermission = function (userPermission) { + if (!$rootScope.isDefined($rootScope.user)) { + return false; + } + + var permissionVal = $rootScope.mngPermission[userPermission]; + + if (($rootScope.user.permission & permissionVal) !== 0) { + return true; + } + + return false; + }; + + // setting 愿�由ъ옄�씤吏� �솗�씤�븳�떎. + $rootScope.checkMngPermissionSettings = function () { + if (!$rootScope.isDefined($rootScope.user)) { + return false; + } + + var permissionVal = $rootScope.mngPermission['USER_PERMISSION_MNG_ISSUE_STATUS']; + permissionVal += $rootScope.mngPermission['USER_PERMISSION_MNG_WORKFLOW']; + permissionVal += $rootScope.mngPermission['USER_PERMISSION_MNG_CUSTOME_FIELD']; + permissionVal += $rootScope.mngPermission['USER_PERMISSION_MNG_ISSUE_TYPE']; + + if ($rootScope.user.permission & permissionVal) { + return true; + } + + return false; + }; + + // management 愿�由ъ옄�씤吏� �솗�씤�븳�떎. + $rootScope.checkMngPermissionManager = function () { + if (!$rootScope.isDefined($rootScope.user)) { + return false; + } + + var permissionVal = $rootScope.mngPermission['USER_PERMISSION_MNG_USER']; + permissionVal += $rootScope.mngPermission['USER_PERMISSION_MNG_NOTICE']; + permissionVal += $rootScope.mngPermission['USER_PERMISSION_MNG_FAQ']; + permissionVal += $rootScope.mngPermission['USER_PERMISSION_MNG_QNA']; + permissionVal += $rootScope.mngPermission['USER_PERMISSION_MNG_EVENT']; + permissionVal += $rootScope.mngPermission['USER_PERMISSION_MNG_GUIDE']; + + // zenith edit + if ($rootScope.user.permission & permissionVal) { + return true; + } + + return false; + }; + + $rootScope.changeLastProject = function (projectId, reload = true) { + if (User != null) { + User.updateLastProject($resourceProvider.getContent( + {lastProjectId: projectId}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $rootScope.user = result.data.data; + $rootScope.projects.forEach(function (el) { + if (el.id == projectId) { + $rootScope.workProject = el; + } + }); + $state.go($state.current, {}, {reload: reload}); + } + }); + } + }; + + // �봽濡쒖젥�듃 愿�由� 沅뚰븳�씠 �엳�뒗吏� �솗�씤�븳�떎 + $rootScope.checkMngPermissionProject = function () { + if (!$rootScope.isDefined($rootScope.user)) { + return false; + } + + var permissionVal = $rootScope.mngPermission['USER_PERMISSION_MNG_PROJECT']; + + if ($rootScope.user.permission & permissionVal) { + return true; + } + + return false; + }; + + $rootScope.findProject = function (projectId) { + if ($rootScope.projects != null && $rootScope.projects.length > 0) { + for (var i=0; i < $rootScope.projects.length; i++) { + if ($rootScope.projects[i].id == projectId) { + return $rootScope.projects[i]; + } + } + } + return null; + } + + // // Primary Workspace �솗�씤 + $rootScope.checkHasPrimaryWorkspace = function () { + return $rootScope.hasPrimaryWorkspace; + }; + + // edit by zenith at 20200801 + // Check Primary workspace + $rootScope.checkPrimaryWorkspace = function () { + Workspace.findPrimaryWorkspace($resourceProvider.getContent( + {}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + if (result.data.message.status === "success") { + $rootScope.hasPrimaryWorkspace = result.data.data; + if (!$rootScope.hasPrimaryWorkspace) { + $state.go('superJoin'); + } + } else { + $state.go('superJoin'); + } + }); + }; + //$rootScope.checkPirmaryWorkspace(); + + // �뾽臾� 怨듦컙 紐⑸줉 議고쉶 + $rootScope.getWorkspaceList = function () { + Workspace.find($resourceProvider.getContent({}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $rootScope.workspaces = result.data.data; + + // 留덉�留� �젒洹� �뾽臾� 怨듦컙�쓣 �솗�씤�븳�떎. + $rootScope.checkIncludeLastWorkspace($rootScope.workspaces); + } + }); + }; + + // 留덉�留� �젒洹� �뾽臾� 怨듦컙�쓣 �솗�씤�븳�떎. + $rootScope.checkIncludeLastWorkspace = function (workspaces) { + // 濡쒓렇�씤 �젙蹂닿� �뾾�쓣 寃쎌슦�뿉�뒗 �닔�뻾�븯吏� �븡�뒗�떎. + if (!$rootScope.isDefined($rootScope.user)) { + return; + } + + var include = false; + + for (var count in workspaces) { + if ($rootScope.user.lastWorkspaceId === workspaces[count].id) { + include = true; + break; + } + } + + // �쁽�옱 �뾽臾� 怨듦컙�뿉 李몄뿬�븯吏� �븡怨� �엳�떎硫� �옄�떊�쓽 �뾽臾닿났媛꾩쑝濡� 已볦븘�궦�떎. + if (!include) { + User.updateUserSession({}).then(function (result) { + if (result.data.message.status === "success") { + $rootScope.user = result.data.data; // �쟾�뿭�쑝濡� �궗�슜�븯�뒗 濡쒓렇�씤 �궗�슜�옄 �젙蹂�. + SweetAlert.warning($filter("translate")("common.disableParticipationWorkspace"), $filter("translate")("common.disableParticipationWorkspaceMessage")); + // edit by zenith at 20200801 + // direct oug out cause stand alone have just one workspace + $rootScope.$broadcast("logout"); + } + else { + SweetAlert.error($filter("translate")("common.failedToUpdateParticipatingSessions"), $filter("translate")("common.failedToUpdateParticipatingSessions")); // "李몄뿬 �꽭�뀡 �뾽�뜲�씠�듃 �떎�뙣" + } + }); + } + }; + + $rootScope.getUrlParameter = function (){ + var url = document.location.href; + var tokenIndex = url.indexOf('?'); + var result = []; + if (tokenIndex > -1) { + var qs = url.substring(tokenIndex + 1).split('&'); + for (var i = 0, result = {}; i < qs.length; i++) { + qs[i] = qs[i].split('='); + result[qs[i][0]] = decodeURIComponent(qs[i][1]); + } + } + return result; + } + + // 媛앹껜�뿉�꽌 �궎 媛��닔瑜� 異붿텧�븳�떎. + $rootScope.getObjectKeys = function (object) { + return Object.keys(object).length; + }; + + // �룄��留� �떎援��뼱 �쟻�슜 + $rootScope.translate = function (content) { + return $filter("translate")(content); + }; + + // 臾몄쓽�븯湲� 踰꾪듉 + $rootScope.showaskbtn = function () { + var bShow = false; + + if( $rootScope.isDefined($rootScope.user) ) { + bShow = true; + + if( $rootScope.toState.name === "qna.list" || + $rootScope.toState.name === "support.support") { + bShow = false; + } + } + return bShow; + }; + + // session check after route + $rootScope.$on("$stateChangeStart", function (event, toState, toStateParams) { + $("#page-container").trigger("click"); + $("body").unbind("click"); + + var $uibModalStack = $injector.get('$uibModalStack'); + $uibModalStack.dismissAll(); + + // �봽濡쒓렇�옒�뒪諛� �닲源�. + $rootScope.spinner = false; + $rootScope.toState = toState; + $rootScope.toStateParams = toStateParams; + + // get �뙆�씪誘명꽣 �씫湲� + var params = $rootScope.getUrlParameter(); + if (Object.keys(params).length > 0) { + $rootScope.previousGetParams = params; + } + + + /*if (Principal.isIdentityResolved()) { + Auth.authorize(); + }*/ + + // �뾽臾� 怨듦컙 紐⑸줉�쓣 媛깆떊�븳�떎. + $rootScope.getWorkspaceList(); + }); + + // scroll is top after route success + $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) { + // table orderBy column init setting + $tableProvider.setOrderByColumn(); + $tableProvider.reverse = false; + // �씠�뒋 紐⑸줉->�긽�꽭�솕硫댁뿉�꽌 留덉�留됱쑝濡� �젒洹쇳븳 �씠�뒋 �븘�씠�뵒 - �씪�슦�듃 �깉�븣留덈떎 珥덇린�솕 + $rootScope.currentDetailIssueId = null; + + + $log.debug("toState.name : ", toState.name); + $log.debug("$rootScope.previousStateName �솗�씤 : ", $rootScope.previousStateName); + + if (toState.name !== 'login' && $rootScope.previousStateName) { + $log.debug("previousStateName : ", fromState.name); + $log.debug("fromParams : ", fromParams); + $rootScope.previousStateName = fromState.name; + $rootScope.previousStateNameParams = fromParams; + } else { + // edit by zenith at 20200802 + // for check has primary workspace + if (toState.name === 'login' || toState.name === 'join' ) { + $rootScope.checkPrimaryWorkspace(); + } + } + }); + + // if ui-router $http occur error, trigger this event + $rootScope.$on('$stateChangeError', function (e) { + }); + + $rootScope.$on('$stateNotFound', function () { + }); + + + $rootScope.$on('$includeContentLoaded', function () { + }); + + $rootScope.$on('$viewContentLoaded', function () { + }); + + $rootScope.back = function () { + $log.debug("濡쒓렇�씤�떆 留덉�留� �젒洹� url : ", $rootScope.previousStateName); + + if ($state.get($rootScope.previousStateName) === null || $rootScope.previousStateName === "login" || $rootScope.previousStateName === "join") { + $state.go('dashboards.dashboard'); + } + else { + $state.go($rootScope.previousStateName, $rootScope.previousStateNameParams); + } + }; + }) + .constant("contextPath", (function () { + var offset = location.href.indexOf(location.host) + location.host.length; + var ctxPath = location.href.substring(offset, location.href.indexOf('/', offset + 1)); + + console.log("寃쎈줈 : ", ctxPath); + + + return ctxPath; + })()); + }); diff --git a/src/main/webapp/scripts/constants.js b/src/main/webapp/scripts/constants.js new file mode 100644 index 0000000..165f712 --- /dev/null +++ b/src/main/webapp/scripts/constants.js @@ -0,0 +1,12 @@ +'use strict'; + +define(['app'], + function (app) { + return app.constant("constants", { + IV : "3c1bc71695361ca0aec4d83bb328b444", + SALT : "c7224df62de46817a515ce79b24d48d2", + KEY_SIZE : "128", + ITERATION_COUNT : "10000", + PASS_PHRASE : "1024", + }) + }); \ No newline at end of file diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js new file mode 100644 index 0000000..6413765 --- /dev/null +++ b/src/main/webapp/scripts/main.js @@ -0,0 +1,527 @@ +/** + * Created by wisestone on 2017-12-14. + */ +'use strict'; + +require.config({ + urlArgs : "bust=v4.0.34", + paths : { + 'jquery' : '../bower_components/jquery/dist/jquery', + 'jquery-ui' : '../bower_components/jquery-ui/jquery-ui', + 'popper' : '../bower_components/popper.js/dist/umd/popper.min', + 'bootstrap' : '../custom_components/bootstrap/dist/js/bootstrap.min', + 'angular' : '../bower_components/angular/angular.min', + 'ngResource' : '../bower_components/angular-resource/angular-resource.min', + 'bindOnce' : '../bower_components/angular-bindonce/bindonce.min', + 'uiRouter' : '../bower_components/angular-ui-router/release/angular-ui-router.min', + 'uiBootstrap' : "../custom_components/angular-bootstrap/ui-bootstrap-tpls", + 'domReady' : '../bower_components/domReady/domReady', + 'angularCookie' : '../bower_components/angular-cookies/angular-cookies.min', // �떎援��뼱 泥섎━�뿉 �궗�슜 + 'angularTranslateLoaderPartial' : '../bower_components/angular-translate-loader-partial/angular-translate-loader-partial.min', // �떎援��뼱 泥섎━�뿉 �궗�슜 + 'angularTranslateStorageCookie' : '../bower_components/angular-translate-storage-cookie/angular-translate-storage-cookie.min', // �떎援��뼱 泥섎━�뿉 �궗�슜 + 'angularSanitize' : '../bower_components/angular-sanitize/angular-sanitize.min', // html 諛붿씤�뵫 蹂댁븞�쓣 愿�由ы븳�떎. + 'taylorcodeAngularFileUpload' : '../bower_components/taylorcode-angular-file-upload/dist/angular-file-upload-all.min', // angular file upload 瑜� 愿�由ы븳�떎. + 'sockJs' : '../bower_components/sockjs-client/dist/sockjs-0.3.4.min', // �쎒 �냼耳볦뿉 �궗�슜 + 'stomepWebsocket' : '../bower_components/stomp-websocket/lib/stomp', // �쎒 �냼耳볦뿉 �궗�슜 + 'ngStomp' : '../bower_components/ng-stomp/dist/ng-stomp.min', // �쎒 �냼耳볦뿉 �궗�슜 + 'angularAnimate' : '../bower_components/angular-animate/angular-animate.min', // �븷�땲硫붿씠�뀡�쓣 �궗�슜�븯湲� �쐞�빐�꽌 �궗�슜 + 'sweetalert' : '../custom_components/sweetalert/sweetalert.min', // �뙘�뾽 �븣由쇱갹�뿉 �궗�슜 + 'ngSweetAlert' : '../custom_components/sweetalert/angular-sweetalert.min', // �뙘�뾽 �븣由쇱갹 angular �뿉�꽌 �궗�슜 + 'jquery-mousewheel' : '../bower_components/jquery-mousewheel/jquery.mousewheel.min', // date time picker �뿉�꽌 留덉슦�뒪 �쑀�쓣 �궗�슜�븯湲� �쐞�빐 �궗�슜 + 'dateTimePickerFull' : '../bower_components/datetimepicker/build/jquery.datetimepicker.full.min', // date time picker �뿉�꽌 �궗�슜 + 'summerNote' : '../custom_components/summernote/summernote', // �뿉�뵒�꽣�뿉�꽌 �궗�슜 + 'summerNote-ko-KR' : '../custom_components/summernote/summernote-ko-KR', // �뿉�뵒�꽣 �떎援��뼱 泥섎━ + 'summerNote-ja-JP' : '../custom_components/summernote/summernote-ja-JP', // �뿉�뵒�꽣 �떎援��뼱 泥섎━ + 'summerNote-vi-VN' : '../custom_components/summernote/summernote-vi-VN', // �뿉�뵒�꽣 �떎援��뼱 泥섎━ + 'angularSummerNote' : '../custom_components/summernote/angular-summernote', // �뿉�뵒�꽣 angular �뿉�꽌 �궗�슜�븯湲� �쐞�빐 �궗�슜 + 'angularUiSortable' : '../bower_components/angular-ui-sortable/sortable.min', // �봽濡쒖젥�듃 愿�由ъ뿉�꽌 �궗�슜�옄 �젙�쓽�븘�뱶瑜� �뱶�옒洹몃�� �궗�슜�븯湲� �쐞�빐 + 'moment' : '../bower_components/moment/moment', // �궇吏� �꽑�깮 而댄룷�꼳�듃�뿉�꽌 �븘�슂�븯�떎 + 'bootstrapDateRangePicker' : '../bower_components/bootstrap-daterangepicker/daterangepicker', // �궇吏� �꽑�깮 而댄룷�꼳�듃瑜� �궗�슜�븯湲� �쐞�빐 + 'colorPalette' : '../custom_components/bootstrap-colorpalette/js/bootstrap-colorpalette', // �엯�젰 �븘�뱶�뿉�꽌 �깋�긽 �꽑�깮�쓣 �븯湲� �쐞�빐 + 'angularNvd3' : '../bower_components/angular-nvd3/dist/angular-nvd3.min', // angular 濡� nvd3 瑜� �씠�슜�븯湲� �쐞�빐 �궗�슜 + 'nvd3' : '../bower_components/nvd3/build/nv.d3.min', // ���떆蹂대뱶 李⑦듃�뿉�꽌 �쐞�젽�쓣 �궗�슜�븯湲� �쐞�빐 �궗�슜 + 'd3' : '../bower_components/d3/d3.min', // �썙�겕�뵆濡쒖슦 �떎�씠�뼱洹몃옩�쓣 �궗�슜�븯湲� �쐞�빐 �궗�슜 + 'd3ContextMenu' : '../bower_components/d3-context-menu/js/d3-context-menu', // �썙�겕�뵆濡쒖슦 �떎�씠�뼱洹몃옩�뿉�꽌 而⑦뀓�뒪�듃 硫붾돱瑜� �궗�슜�븯湲� �쐞�빐 �궗�슜 + 'saveSvgAsPng' : '../custom_components/saveSvgAsPng/src/saveSvgAsPng', // ���떆蹂대뱶 �쐞�젽 李⑦듃�뿉 �엳�뒗 SVG 瑜� 蹂��솚�븷�븣 源⑥�吏� �븡�룄濡� �븯湲� �쐞�빐 �궗�슜 + 'crypto' : '../bower_components/crypto-js/crypto-js', // �뜲�씠�꽣 �븫�샇�솕瑜� �븯湲� �쐞�빐 �궗�슜 + 'ngImageGalleryJs' : '/bower_components/ng-image-gallery/dist/ng-image-gallery', // �씠�뒋 �긽�꽭�뿉�꽌 �궗吏� 諛붾줈 蹂닿린 �쐞�빐 �궗�슜 + 'ngImageGallery' : '/bower_components/ng-image-gallery/src/js/directive', // �씠�뒋 �긽�꽭�뿉�꽌 �궗吏� 諛붾줈 蹂닿린 �쐞�빐 �궗�슜 + 'htmlDiff' : '/bower_components/htmldiff/js/htmldiff', // �씠�뒋 �궡�슜 蹂�寃� 鍮꾧탳瑜� �쐞�빐 �궗�슜 + 'bootstrapUtil' : '../custom_components/bootstrap/js/dist/util', // �룄��留� �댋�똻�쓣 �쐞�빐 �궗�슜 + 'tooltip' : '../custom_components/bootstrap/js/dist/tooltip', // �룄��留� �댋�엯�쓣 �쐞�빐 �궗�슜 + + + + 'angularTranslate' : '../custom_components/angular-translate/angular-translate', // �떎援��뼱 泥섎━�뿉 �궗�슜 + 'commonController' : 'app/common/common.controller', // 怨듯넻 而⑦듃濡ㅻ윭 + 'tableProvider' : '../custom_components/js-table/table.provider', // �뀒�씠釉� �냽�꽦 媛믪쓣 愿�由ы븳�떎. + 'resourceProvider' : 'components/utils/resource.provider', // 怨듯넻�쟻�쑝濡� �꽌踰� json �쟾�넚�뿉 �궗�슜 + 'lodash' : '../bower_components/lodash/lodash.min', // 硫��떚 ���젆�듃, auto complete 而댄룷�꼳�듃�뱾�뿉�꽌 �궗�슜 + 'angularDropMultiSelect' : '../custom_components/angular-multi-select/angularjs-dropdown-multiselect', // 硫��떚 ���젆�듃 而댄룷�꼳�듃 + 'jsTable' : '../custom_components/js-table/js-table.directive', // 紐⑸줉 �솕硫댁뿉�꽌 �궗�슜�릺�뒗 �뀒�씠釉붿쓣 �샇異쒗븳�떎. + 'jsTreeTable' : '../custom_components/js-table/js-tree-table.directive', // 紐⑸줉 �솕硫댁뿉�꽌 �궗�슜�릺�뒗 �뀒�씠釉�(�듃由ш뎄議�)�쓣 �샇異쒗븳�떎. + 'tableColumnGenerator' : '../custom_components/js-table/tableColumnGenerator.directive', // �뀒�씠釉� �옖�뜑�윭瑜� �떞�떦�븳�떎. + 'jsAutoCompleteMulti' : '../custom_components/js-autocomplete-multi/js-autocomplete-multi', // �떎以� �꽑�깮�씠 媛��뒫�븳 autoComplete 而댄룷�꼳�듃 + 'jsInputAutoComplete' : '../custom_components/js-input-autocomplete/js-input-autocomplete', // input 諛뺤뒪�뿉 autoComplete 湲곕뒫�씠 遺숈� 而댄룷�꼳�듃 + 'jsAutoCompleteSingle' : '../custom_components/js-autocomplete-single/js-autocomplete-single', // input 諛뺤뒪�뿉 �븳媛쒖쓽 ���긽留� �꽑�깮 媛��뒫�븷�닔 �엳�뒗 autoComplete 湲곕뒫�씠 遺숈� 而댄룷�꼳�듃 + 'autoCompleteController' : 'components/utils/autoComplete.controller', // js-autoComplete �뿉�꽌 �궗�슜�븯�뒗 紐⑸줉 議고쉶 �넻�떊�쓣 臾띠� 而⑦듃濡ㅻ윭. �긽�냽�븯�뿬 �궗�슜�븳�떎. + 'ngEnter' : 'components/utils/ngEnter.directive', // �뿏�꽣�궎瑜� �닃���쓣 �븣 �씠踰ㅽ듃媛� �떎�뻾�릺寃� �븳�떎. + 'krInput' : 'components/utils/krInput.directive', // �븳湲� �엯�젰�쓣 利됱떆 諛붿씤�뵫�릺寃� �븳�떎. + 'dateTimePicker' : 'components/utils/dateTimePicker.directive', // �봽濡쒗븘�뿉�꽌 �씠硫붿씪 �븣由� �떆媛� �꽕�젙�쓣 �쐞�빐 �궗�슜�븳�떎. + 'uiTouch' : '../custom_components/ui-touch-punch/ui-touch-punch', // 紐⑤컮�씪 紐⑤뱶�뿉�꽌 �꽣移� �씠踰ㅽ듃瑜� �옟�쓣 �닔 �엳寃� �빐以��떎. + 'slimScroll' : '../bower_components/jquery-slimscroll/jquery.slimscroll.min', // �궗�씠�뱶 諛� �씠踰ㅽ듃�뿉�꽌 �궗�슜�븳�떎. + 'textUpperString' : 'components/utils/textUpperString.directive', // �쁺臾몄냼臾몄옄瑜� 媛뺤젣濡� ��臾몄옄濡� 蹂�寃쏀븳�떎. + 'fullScroll' : 'components/utils/fullScroll.directive', // �씠�뒋 �긽�꽭�삎�뿉�꽌 紐⑸줉 �쑀留덉슦�뒪 �뒪�겕濡ㅼ뿉�꽌 �궗�슜. + 'owlAutoFocus' : 'components/utils/owlAutoFocus.directive', // �엯�젰 �븘�뱶 autoFocus 二쇨린�쐞�빐 �궗�슜 + 'removeHTMLTags' : 'components/utils/removeHtmlTag.filter', // html 肄붾뱶 �젣嫄� + 'sortable' : '../bower_components/Sortable/Sortable', // �뱶�옒洹�&�뱶�엻�쓣 �쐞�빐�꽌 �궗�슜 + 'dateRangePicker' : 'components/utils/dateRangePicker.directive', // �궇吏� �꽑�깮 Picker AngularJs �뵒�젆�떚釉� + 'modalFormAutoScroll' : 'components/utils/modalFormAutoScroll.directive', // �뙘�뾽�뿉�꽌 �빐�떦 �엯�젰 �븘�뱶瑜� �늻瑜대㈃ �뒪�겕濡ㅼ씠 �궡�젮媛�寃� �븳�떎. + 'progressSpinner' : '../custom_components/progressSpinner/progressSpinner.directive', // �봽濡쒓렇�옒�뒪 諛� + 'colorPalettePicker' : 'components/utils/colorPalettePicker.directive', // �깋�긽 �꽑�깮 Picker AngularJs �뵒�젆�떚釉� + 'jsWorkflow' : '../custom_components/js-workflow/js-workflow.directive', // �썙�겕�뵆濡쒖슦 �떎�씠�뼱洹몃옩 �뵒�젆�떚釉� + 'jsWorkflowDisabled' : '../custom_components/js-workflow/js-workflow-disabled.directive', // �썙�겕�뵆濡쒖슦 �떎�씠�뼱洹몃옩�쓣 ���떆蹂대뱶�뿉�꽌 蹂닿린 �쐞�빐 留뚮뱺 �뵒�젆�떚釉� + 'includeReplace' : 'components/utils/includeReplace.directive', // ng-include 瑜� �궗�슜�븷 �븣 �빐�떦 �냽�꽦�쓣 �꽔�� <div> �깭洹몃�� replace �븯湲� �쐞�빐 �궗�슜�븳�떎. + 'tableUserImage' : 'components/utils/tableUserImage.directive', // �뀒�씠釉붿뿉 �궗�슜�옄 �씠誘몄�瑜� �몴�떆�븳�떎. + 'owlProfileOver' : 'components/utils/owlProfileOver.directive', // �뀒�씠釉�,�깙 硫붾돱 �븣由쇱뿉 �엳�뒗 �궗�슜�옄 �봽濡쒗븘 �젙蹂�, �븣由� �젙蹂대�� �솗�씤�븷 �닔 �엳�떎. + 'owlProjectKey' : 'components/utils/owlProjectKey.directive', // �엯�젰�븳 �봽濡쒖젥�듃 �궎瑜� ��臾몄옄濡� 蹂��솚�븳�떎. + 'issueSearchFieldKeyViewElement' : 'components/utils/issueSearchFieldKeyViewElement.directive', // �씠�뒋 紐⑸줉 寃��깋 議곌굔�뿉�꽌 寃��깋 而댄룷�꼳�듃�뿉 留ㅼ묶�맂 fieldValue 媛믪쓣 異붿텧�븯湲� �쐞�빐 �궗�슜�븳�떎. + 'issueSearchArrayViewElement' : 'components/utils/issueSearchArrayViewElement.directive', // �씠�뒋 紐⑸줉 寃��깋 議곌굔�뿉�꽌 寃��깋 而댄룷�꼳�듃�뿉 留ㅼ묶�맂 諛곗뿴 �젙蹂댁뿉�꽌 媛믪쓣 異붿텧�븯湲� �쐞�빐 �궗�슜�븳�떎. + 'issueSearchCustomFieldViewElement' : 'components/utils/issueSearchCustomFieldViewElement.directive', // �씠�뒋 紐⑸줉 寃��깋 議곌굔�뿉�꽌 寃��깋 而댄룷�꼳�듃�뿉 留ㅼ묶�맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂댁뿉�꽌 媛믪쓣 異붿텧�븯湲� �쐞�빐 �궗�슜�븳�떎. + 'owlMobileTopMenu' : 'components/utils/owlMobileTopMenu.directive', // 紐⑤컮�씪 紐⑤뱶�뿉�꽌 �긽�떒 硫붾돱 �겢由� �씠踰ㅽ듃 + 'numberOnly' : 'components/utils/numberOnly.directive', // �닽�옄留� �엯�젰�릺寃� �븳�떎. - 寃곗젣 愿�由ъ뿉�꽌 �궗�슜 + 'detectIssueEditor' : 'components/utils/detectIssueEditor.directive', // �씠�뒋 �긽�꽭 �솕硫댁뿉�꽌 �씠�뒋 �긽�깭 蹂�寃쎌쓣 吏꾪뻾�븷 �븣 ���젆�듃 �씠�쇅 遺�遺꾩쓣 �겢由��븯硫� �옄�룞�쑝濡� �꽌踰꾨줈 �쟾�넚�릺寃� �븳�떎. + 'issueCompleteWidget' : '../custom_components/widget/issue-complete-widget/issue-complete-widget.directive', // ���떆蹂대뱶�뿉�꽌 �쟾泥� �씠�뒋 泥섎━�쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'issueStatusWidget' : '../custom_components/widget/issue-status-widget/issue-status-widget.directive', // ���떆蹂대뱶�뿉�꽌 �긽�깭蹂� �씠�뒋 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'myAssigneeIssueWidget' : '../custom_components/widget/my-assignee-issue-widget/my-assignee-issue-widget.directive', // �굹�뿉寃� �븷�떦�맂 �씠�뒋 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'delayIssueWidget' : '../custom_components/widget/delay-issue-widget/delay-issue-widget.directive', // 吏��뿰 以묒씤 �씠�뒋 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'registerIssueWidget' : '../custom_components/widget/register-issue-widget/register-issue-widget.directive', // �궡媛� �벑濡앺븳 �씠�뒋 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'riskIssueWidget' : '../custom_components/widget/risk-issue-widget/risk-issue-widget.directive', // �쐞�뿕 愿�由� 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'myIssueWidget' : '../custom_components/widget/my-issue-widget/my-issue-widget.directive', // �굹�쓽 �씠�뒋 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'memberProgressWidget' : '../custom_components/widget/member-progress-widget/member-progress-widget.directive', // 硫ㅻ쾭蹂� 吏꾪뻾瑜� 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'projectProgressWidget' : '../custom_components/widget/project-progress-widget/project-progress-widget.directive', // 吏꾪뻾 以묒씤 �봽濡쒖젥�듃 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'projectMemberListController' : '../custom_components/widget/project-progress-widget/projectMemberList.controller', // 吏꾪뻾 以묒씤 �봽濡쒖젥�듃 �쁽�솴 李⑦듃�뿉�꽌 ���썝 �솗�씤�뿉 �궗�슜�븳�떎. + 'issueStatisticsWidget' : '../custom_components/widget/issue-statistics-widget/issue-statistics-widget.directive', // �쟾泥� �씠�뒋 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'workflowWidget' : '../custom_components/widget/workflow-widget/workflow-widget.directive', // �썙�겕�뵆濡쒖슦 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'issueTypeWidget' : '../custom_components/widget/issue-type-widget/issue-type-widget.directive', // �씠�뒋 ���엯 蹂� �씠�뒋 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + 'formSubmit' : 'components/utils/formSubmit.directive', // �뿊�� �떎�슫濡쒕뱶�뿉 �궗�슜�븳�떎. + 'jsShortCut' : '../custom_components/js-shortcut/js-shortcut.directive', // �떒異뺥궎濡� �씠踰ㅽ듃瑜� �궗�슜�븷 �닔 �엳寃� �븯�뒗�뜲 �궗�슜�븳�떎. + 'inputRegex' : 'components/utils/inputRegex.directive', // �엯�젰 �븘�뱶�뿉 �젙洹쒖떇 寃��궗瑜� �넻�빐 �썝�븯�뒗 �삎�깭�쓽 媛믩쭔 �엯�젰 諛쏄쾶 �븯�뒗�뜲 �궗�슜�븳�떎. + 'domAppend' : 'components/utils/domAppend.directive', // �씠�뒋 �긽�꽭�뿉�꽌 �떎援��뼱瑜� �쟻�슜�븯湲� �쐞�빐 �궗�슜�븳�떎. + 'issueDetailImagePreview' : 'components/utils/issueDetailImagePreview.directive', // �씠�뒋 �긽�꽭�뿉�꽌 �씠誘몄� 誘몃━蹂닿린 �삤瑜섎�� �빐寃고븯湲� �쐞�빐 �궗�슜�븳�떎. + 'fileUploadProgress' : '../custom_components/file-upload-progress/file-upload-progress.directive', // �뙆�씪 �뾽濡쒕뱶 吏꾪뻾�긽�솴�쓣 �몴�떆�븯湲� �쐞�빐 �궗�슜�븳�떎. + 'jsHtmlDiff' : '../custom_components/js-html-diff/js-html-diff.directive', // �씠�뒋 蹂�寃� �젙蹂대�� 鍮꾧탳�빐蹂닿린 �쐞�빐 �궗�슜�븳�떎. + 'jsInformation' : '../custom_components/js-information/js-information.directive', // 臾몄쓽�븯湲곕�� �쐞�빐 �궗�슜�븳�떎. + 'functionToolTip' : 'components/utils/functionToolTip.directive', // �댋�똻 + 'summerNoteAutoFocus' : 'components/utils/summerNoteAutoFocus.directive', // �븘�씠�룿�뿉�꽌 �꽟癒몃끂�듃濡� �룷而ㅼ뒪 �맆 �븣 �룷吏��뀡 �씠�룞 + 'issueStatusAutoFocus' : 'components/utils/issueStatusAutoFocus.directive', // �씠�뒋 �긽�깭 蹂�寃쎌뿉�꽌 �넻�떊�씠 �걹�궃 �썑 �룷而ㅼ뒪 �씠�룞 + + 'severityIssueWidget' : '../custom_components/widget/severity-issue-widget/severity-issue-widget.directive', // 以묒슂�룄 蹂� �씠�뒋 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎. + + + /* 沅뚰븳 泥댄겕 */ + 'principalService' : 'components/auth/principal.service', // �쁽�옱 濡쒓렇�씤�븳 �궗�슜�옄�쓽 �꽭�뀡 �젙蹂대�� 媛��졇�삩�떎. + 'authSessionService' : 'components/auth/auth.session.service', // 濡쒓렇�씤怨� 濡쒓렇�븘�썐�쓣 �떎�뻾�븳�떎. + 'authInterceptor' : 'components/auth/auth.interceptor', // angular �뿉�꽌 http interceptor 瑜� 援ы쁽. + 'permissionService' : 'components/permission/permission.service', // 濡쒓렇�씤�븳 �궗�슜�옄 沅뚰븳 �젙蹂대�� 媛��졇�삩�떎. + 'authService' : 'components/auth/auth.service', // �궗�슜�옄 沅뚰븳 泥댄겕 �꽌鍮꾩뒪 + + /* 濡쒓렇�씤 */ + 'loginRoute' : 'app/login/login', // 濡쒓렇�씤�뿉 愿��젴�맂 route �젙蹂� + 'loginController' : 'app/login/login.controller', // 濡쒓렇�씤 而⑦듃濡ㅻ윭 �젙蹂� + 'noticeModalController' : 'app/popup/noticeModal.controller', // 怨듭� �뙘�뾽 + 'UserHistory' : 'components/userHistory/userHistory.service',// �쑀�� �엳�뒪�넗由� �꽌鍮꾩뒪 + + /* �궗�슜�옄 �썙�겕�뒪�럹�씠�뒪 珥덈� */ + 'userInviteController' : 'app/userInvite/userInvite.controller', // �궗�슜�옄 �썙�겕�뒪�럹�씠�뒪 珥덈� 而⑦듃濡ㅻ윭 + 'userInviteService' : 'components/userInvite/userInvite.service', // �궗�슜�옄瑜� �썙�겕�뒪�럹�씠�뒪�뿉 珥덈��븯�뒗 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �봽濡쒖젥�듃 */ + 'projectRoute' : 'app/project/project', // �봽濡쒖젥�듃�뿉 愿��젴�맂 route �젙蹂� + 'projectTabController' : 'app/project/projectTab.controller', // �봽濡쒖젥�듃 tab 愿�由� 而⑦듃濡ㅻ윭 + 'projectAddController' : 'app/project/projectAdd.controller', // �봽濡쒖젥�듃 �깮�꽦 而⑦듃濡ㅻ윭 + 'projectModifyController' : 'app/project/projectModify.controller', // �봽濡쒖젥�듃 �닔�젙 而⑦듃濡ㅻ윭 + 'projectListController' : 'app/project/projectList.controller', // �봽濡쒖젥�듃 紐⑸줉 而⑦듃濡ㅻ윭 + 'projectCustomFieldConfigController' : 'app/project/projectCustomFieldConfig.controller', // �봽濡쒖젥�듃 �궗�슜�옄 �젙�쓽 �븘�뱶 愿�由� 而⑦듃濡ㅻ윭 + 'projectService' : 'components/project/project.service', // �봽濡쒖젥�듃�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �씠�뒋 �긽�깭 */ + 'issueStatusRoute' : 'app/issueStatus/issueStatus', // �씠�뒋 �긽�깭�뿉 愿��젴�맂 route �젙蹂� + 'issueStatusAddController' : 'app/issueStatus/issueStatusAdd.controller', // �씠�뒋 �긽�깭 �깮�꽦 而⑦듃濡ㅻ윭 + 'issueStatusModifyController' : 'app/issueStatus/issueStatusModify.controller', // �씠�뒋 �긽�깭 �닔�젙 而⑦듃濡ㅻ윭 + 'issueStatusListController' : 'app/issueStatus/issueStatusList.controller', // �씠�뒋 �긽�깭 紐⑸줉 而⑦듃濡ㅻ윭 + 'issueStatusService' : 'components/issueStatus/issueStatus.service', // �씠�뒋 �긽�깭�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �썙�겕�뵆濡쒖슦 */ + 'workflowRoute' : 'app/workflow/workflow', // �썙�겕�뵆濡쒖슦�뿉 愿��젴�맂 route �젙蹂� + 'workflowAddController' : 'app/workflow/workflowAdd.controller', // �썙�겕�뵆濡쒖슦 �깮�꽦 而⑦듃濡ㅻ윭 + 'workflowModifyController' : 'app/workflow/workflowModify.controller', // �썙�겕�뵆濡쒖슦 �닔�젙 而⑦듃濡ㅻ윭 + 'workflowListController' : 'app/workflow/workflowList.controller', // �썙�겕�뵆濡쒖슦 紐⑸줉 而⑦듃濡ㅻ윭 + 'workflowService' : 'components/workflow/workflow.service', // �썙�겕�뵆濡쒖슦�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �궗�슜�옄 �젙�쓽 �븘�뱶 */ + 'customFieldRoute' : 'app/customField/customField', // �궗�슜�옄 �젙�쓽 �븘�뱶�뿉 愿��젴�맂 route �젙蹂� + 'customFieldAddController' : 'app/customField/customFieldAdd.controller', // �궗�슜�옄 �젙�쓽 �븘�뱶 �깮�꽦 而⑦듃濡ㅻ윭 + 'customFieldModifyController' : 'app/customField/customFieldModify.controller', // �궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙 而⑦듃濡ㅻ윭 + 'customFieldListController' : 'app/customField/customFieldList.controller', // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 而⑦듃濡ㅻ윭 + 'customFieldService' : 'components/customField/customField.service', // �궗�슜�옄 �젙�쓽 �븘�뱶 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �씠�뒋 �쑀�삎 */ + 'issueTypeRoute' : 'app/issueType/issueType', // �씠�뒋 �쑀�삎�뿉 愿��젴�맂 route �젙蹂� + 'issueTypeAddController' : 'app/issueType/issueTypeAdd.controller', // �씠�뒋 �쑀�삎 �깮�꽦 而⑦듃濡ㅻ윭 + 'issueTypeModifyController' : 'app/issueType/issueTypeModify.controller', // �씠�뒋 �쑀�삎 �닔�젙 而⑦듃濡ㅻ윭 + 'issueTypeListController' : 'app/issueType/issueTypeList.controller', // �씠�뒋 �쑀�삎 紐⑸줉 而⑦듃濡ㅻ윭 + 'issueTypeService' : 'components/issueType/issueType.service', // �씠�뒋 �쑀�삎 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �씠�뒋 */ + 'issueRoute' : 'app/issue/issue', // �씠�뒋�뿉 愿��젴�맂 route �젙蹂� + 'issueAddController' : 'app/issue/issueAdd.controller', // �씠�뒋 �깮�꽦 而⑦듃濡ㅻ윭 + 'issueModifyController' : 'app/issue/issueModify.controller', // �씠�뒋 �닔�젙 而⑦듃濡ㅻ윭 + 'issueDetailController' : 'app/issue/issueDetail.controller', // �씠�뒋 �긽�꽭 而⑦듃濡ㅻ윭 + 'issueListController' : 'app/issue/issueList.controller', // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 + 'issueManagerController' : 'app/issue/issueManager.controller', // �씠�뒋 愿�由� 而⑦듃濡ㅻ윭 + 'issueImportExcelController' : 'app/issue/issueImportExcel.controller', // �씠�뒋 �뿊�� ���웾 import + 'issueModifyStatusController' : 'app/issue/issueModifyStatus.controller', // �씠�뒋 �떎以� �긽�깭 蹂�寃� 而⑦듃濡ㅻ윭 + 'issueAddTableConfigController' : 'app/issue/issueAddTableConfig.controller', // �씠�뒋 �뀒�씠釉� �꽕�젙 而⑦듃濡ㅻ윭 + 'issueSendMailController' : 'app/issue/issueSendMail.controller', // �씠�뒋 �씠硫붿씪 諛쒖넚 而⑦듃濡ㅻ윭 + 'issueVersionViewController' : 'app/issue/issueVersionView.controller', // �씠�뒋 踰꾩쟾 �솗�씤 而⑦듃濡ㅻ윭 + 'issueReservationController' : 'app/issue/issueReservation.controller', // �씠�뒋 諛쒖깮 �삁�빟 而⑦듃濡ㅻ윭 + 'issueModifyUserController' : 'app/issue/issueModifyUser.controller', // �씠�뒋 �떞�떦�옄 而⑦듃濡ㅻ윭 + 'issueService' : 'components/issue/issue.service', // �씠�뒋�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueVersionService' : 'components/issueVersion/issueVersion.service', // �씠�뒋 踰꾩쟾�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueReservationService' : 'components/issueReservation/issueReservation.service', // �씠�뒋 諛쒖깮 �삁�빟�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueRelationService' : 'components/issueRelation/issueRelation.service', // 愿��젴 �씠�뒋�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueUserService' : 'components/issueUser/issueUser.service', // �씠�뒋 �떞�떦�옄 愿��젴 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �븷�씪 愿��젴 */ + + 'owlAttachedFileType' : 'components/utils/owlAttachedFileType.directive', // �븷�씪 �닔�젙 �뙘�뾽�뿉�꽌 泥⑤� �뙆�씪 �씠誘몄� �쑀�삎�쓣 蹂댁뿬以��떎. + 'owlAutoTextHeight' : 'components/utils/owlAutoTextHeight.directive', // �븷�씪 �닔�젙�뿉�꽌 textarea �룞�쟻 �넂�씠 蹂�寃� + + 'cardContent' : 'components/utils/cardContent.directive', // 移몃컲 蹂대뱶�뿉�꽌 移대뱶瑜� 洹몃젮�궦�떎. + 'cardTextarea' : 'components/utils/cardTextarea.directive', // 移몃컲 蹂대뱶�뿉�꽌 �븷�씪 �벑濡앺븯�뒗 踰꾪듉�쓣 �젣�뼱�븳�떎. + 'agileCardSortable' : 'components/utils/agileCardSortable.directive', // �뾽臾� 愿�由� �솕硫댁쓽 �뾽臾� �뱶�옒洹�&�뱶�엻 + 'owlTaskAutoButton' : 'components/utils/owlTaskAutoButton.directive', // �븷�씪 移몃컲 蹂대뱶�뿉�꽌 �깮�꽦, 痍⑥냼 踰꾪듉 + + 'taskRoute' : 'app/task/task', // �븷�씪�뿉 愿��젴�맂 route �젙蹂� + 'taskAddController' : 'app/task/taskAdd.controller', // �븷�씪 �깮�꽦 而⑦듃濡ㅻ윭 + 'taskModifyController' : 'app/task/taskModify.controller', // �븷�씪 �닔�젙 而⑦듃濡ㅻ윭 + 'taskAgileBoardController' : 'app/task/taskAgileBoard.controller', // �븷�씪 �븷�옄�씪蹂대뱶 愿�由� 而⑦듃濡ㅻ윭 + 'taskExcelImportController' : 'app/task/taskExcelImport.controller', // �븷�씪 �뿊�� ���웾 import + 'taskService' : 'components/task/task.service', // �븷�씪�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + 'taskCommentService' : 'components/taskComment/taskComment.service', // �븷�씪 肄붾찘�듃�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + 'workflowStatusAddController' : 'app/workflowStatus/workflowStatusAdd.controller', // �썙�겕�뵆濡쒖슦 �긽�깭 �깮�꽦 而⑦듃濡ㅻ윭 + 'workflowStatusModifyController' : 'app/workflowStatus/workflowStatusModify.controller', // �썙�겕�뵆濡쒖슦 �긽�깭 �닔�젙 而⑦듃濡ㅻ윭 + 'workflowStatusService' : 'components/workflowStatus/workflowStatus.service', // �썙�겕�뵆濡쒖슦 �긽�깭�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + +/* �뾽臾� 怨듦컙 諛� 寃곗젣 */ + 'workspaceRoute' : 'app/workspace/workspace', // 寃곗옱 愿��젴�맂 route �젙蹂� + 'workspaceController' : 'app/workspace/workspace.controller', // 寃곗옱 而⑦듃濡ㅻ윭 + 'workspacePaymentExecuteController' : 'app/workspace/workspacePaymentExecute.controller', // 寃곗옱 �떎�뻾 而⑦듃濡ㅻ윭 + 'workspaceUserConfigController' : 'app/workspace/workspaceUserConfig.controller', // �뾽臾� 怨듦컙 �궗�슜�옄 而⑦듃濡ㅻ윭 + 'workspacePaymentModifyController' : 'app/workspace/workspacePaymentModify.controller', // 寃곗옱 �닔�젙 而⑦듃濡ㅻ윭 + 'workspacePaymentAddController' : 'app/workspace/workspacePaymentAdd.controller', // 異붽� 寃곗젣 而⑦듃濡ㅻ윭 + 'workspacePaymentAgreeTermController' : 'app/workspace/workspacePaymentAgreeTerm.controller', // �뾽臾� 怨듦컙 �씠�슜 �빟愿� �솗�씤 而⑦듃濡ㅻ윭 + 'workspaceService' : 'components/workspace/workspace.service', // �뾽臾� 怨듦컙�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'paymentService' : 'components/payment/payment.service', // 寃곗옱�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �궗�슜�옄 */ + 'userRoute' : 'app/user/user', // �궗�슜�옄�뿉 愿��젴�맂 route �젙蹂� + 'userAddController' : 'app/user/userAdd.controller', // �궗�슜�옄 �깮�꽦 而⑦듃濡ㅻ윭 + 'userModifyController' : 'app/user/userModify.controller', // �궗�슜�옄 �닔�젙 而⑦듃濡ㅻ윭 + 'userDetailController' : 'app/user/userDetail.controller', // �궗�슜�옄 �긽�꽭 而⑦듃濡ㅻ윭 + 'userModifyPasswordController' : 'app/user/userModifyPassword.controller', // �궗�슜�옄 鍮꾨�踰덊샇 �닔�젙 而⑦듃濡ㅻ윭 + 'userPasswordController' : 'app/user/userPassword.controller', // �궗�슜�옄 鍮꾨�踰덊샇 李얘린 而⑦듃濡ㅻ윭 + 'userService' : 'components/user/user.service', // �궗�슜�옄�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* ���떆蹂대뱶 */ + 'widgetRoute' : 'app/widget/widget', // �쐞�젽�뿉 愿��젴�맂 route �젙蹂� + 'widgetDashBoardController' : 'app/widget/widgetDashBoard.controller', // �쐞�젽 ���떆蹂대뱶 而⑦듃濡ㅻ윭 �젙蹂� + 'widgetService' : 'components/widget/widget.service', // �쐞�젽 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* 怨듭��궗�빆 */ + 'noticeRoute' : 'app/notice/notice', // 怨듭��궗�빆�뿉 愿��젴�맂 route �젙蹂� + 'noticeListController' : 'app/notice/noticeList.controller', // 怨듭��궗�빆 紐⑸줉 而⑦듃濡ㅻ윭 + 'noticeAddController' : 'app/notice/noticeAdd.controller', // 怨듭��궗�빆 �벑濡� 而⑦듃濡ㅻ윭 + 'noticeModifyController' : 'app/notice/noticeModify.controller', // 怨듭��궗�빆 �닔�젙 而⑦듃濡ㅻ윭 + 'noticeViewController' : 'app/notice/noticeView.controller', // 怨듭��궗�빆 �솗�씤 而⑦듃濡ㅻ윭 + + 'noticeService' : 'components/notice/notice.service', // 怨듭��궗�빆�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* FAQ */ + 'faqRoute' : 'app/faq/faq', // FAQ 愿��젴�맂 route �젙蹂� + 'faqListController' : 'app/faq/faqList.controller', // FAQ 紐⑸줉 而⑦듃濡ㅻ윭 + 'faqAddController' : 'app/faq/faqAdd.controller', // FAQ �벑濡� 而⑦듃濡ㅻ윭 + 'faqModifyController' : 'app/faq/faqModify.controller', // FAQ �닔�젙 而⑦듃濡ㅻ윭 + 'faqViewController' : 'app/faq/faqView.controller', // FAQ �솗�씤 而⑦듃濡ㅻ윭 + + 'faqService' : 'components/faq/faq.service', // 怨듭��궗�빆�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �궗�슜�옄 沅뚰븳 愿�由� */ + 'manageUserRoute' : 'app/manageUser/manageUser', // �궗�슜�옄愿�由� route �젙蹂� + 'manageUserController' : 'app/manageUser/manageUser.controller', // �궗�슜�옄 愿�由� 而⑦듃濡ㅻ윭 + 'manageUserService' : 'components/manageUser/manageUser.service', // �궗�슜�옄 愿�由� 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* 媛��씠�뱶 */ + 'guideRoute' : 'app/guide/guide', // 媛��씠�뱶 愿��젴�맂 route �젙蹂� + 'guideListController' : 'app/guide/guideList.controller', // 媛��씠�뱶 紐⑸줉 而⑦듃濡ㅻ윭 + 'guideAddController' : 'app/guide/guideAdd.controller', // 媛��씠�뱶 �벑濡� 而⑦듃濡ㅻ윭 + 'guideModifyController' : 'app/guide/guideModify.controller', // 媛��씠�뱶 �닔�젙 而⑦듃濡ㅻ윭 + 'guideViewController' : 'app/guide/guideView.controller', // 媛��씠�뱶 �솗�씤 而⑦듃濡ㅻ윭 + + 'guideService' : 'components/guide/guide.service', // 媛��씠�뱶 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* �씠踰ㅽ듃 */ + 'eventRoute' : 'app/event/event', // �씠踰ㅽ듃 愿��젴�맂 route �젙蹂� + 'eventListController' : 'app/event/eventList.controller', // �씠踰ㅽ듃 紐⑸줉 而⑦듃濡ㅻ윭 + 'eventAddController' : 'app/event/eventAdd.controller', // �씠踰ㅽ듃 �벑濡� 而⑦듃濡ㅻ윭 + 'eventModifyController' : 'app/event/eventModify.controller', // �씠踰ㅽ듃 �닔�젙 而⑦듃濡ㅻ윭 + 'eventViewController' : 'app/event/eventView.controller', // �씠踰ㅽ듃 �솗�씤 而⑦듃濡ㅻ윭 + + 'eventService' : 'components/event/event.service', // �씠踰ㅽ듃 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* Qna */ + 'qnaRoute' : 'app/qna/qna', // qna 愿��젴�맂 route �젙蹂� + 'qnaListController' : 'app/qna/qnaList.controller', // qna 紐⑸줉 而⑦듃濡ㅻ윭 + 'qnaAddController' : 'app/qna/qnaAdd.controller', // qna �벑濡� 而⑦듃濡ㅻ윭 + 'qnaModifyController' : 'app/qna/qnaModify.controller', // qna �닔�젙 而⑦듃濡ㅻ윭 + 'qnaViewController' : 'app/qna/qnaView.controller', // qna �솗�씤 而⑦듃濡ㅻ윭 + + 'qnaService' : 'components/qna/qna.service', // qna 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* Support */ + 'supportRoute' : 'app/support/support', // support 愿��젴�맂 route �젙蹂� + 'supportController' : 'app/support/support.controller', // support 而⑦듃濡ㅻ윭 �젙蹂� + //'supportQnaListController' : 'app/support/supportQnaListController.controller', // support 而⑦듃濡ㅻ윭 �젙蹂� + + 'issueHistoryService' : 'components/issueHistory/issueHistory.service', // �씠�뒋 湲곕줉�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'userWorkspaceService' : 'components/userWorkspace/userWorkspace.service', // �썙�겕�뒪�럹�씠�뒪�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueCommentService' : 'components/issueComment/issueComment.service', // �씠�뒋 肄붾찘�듃�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'attachedFileService' : 'components/attachedFile/attachedFile.service', // �뙆�씪 泥⑤��뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'priorityService' : 'components/priority/priority.service', // �슦�꽑�닚�쐞�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'severityService' : 'components/severity/severity.service', // 以묒슂�룄�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'languageService' : 'components/language/language.service', // �뼵�뼱 蹂�寃쎌뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueTypeCustomFieldService' : 'components/issueTypeCustomField/issueTypeCustomField.service', // �봽濡쒖젥�듃�뿉�꽌 �씠�뒋 �쑀�삎�뿉 �궗�슜�븷 �궗�슜�옄 �젙�쓽 �븘�뱶�� 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueSearchService' : 'components/issueSearch/issueSearch.service', // �씠�뒋 寃��깋 議곌굔 ���옣�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueTableConfigService' : 'components/issueTableConfig/issueTableConfig.service', // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 ���옣�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'reservationDisableUserService' : 'components/reservationDisableUser/reservationDisableUser.service', // 李몄뿬 ��湲� �궗�슜�옄�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'systemEmailService' : "components/systemEmail/systemEmail.service", // 臾몄쓽�븯湲곗뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + + /* Gantt */ + 'ganttRoute' : 'app/gantt/gantt', // 媛꾪듃李⑦듃 route �젙蹂� + 'issueListTimelineController' : 'app/issue/issueListTimeline.controller', // �씠�뒋 媛꾪듃李⑦듃 + 'projectTimelineController' :'app/project/projectTimeline.controller', // �봽濡쒖젥�듃 媛꾪듃李⑦듃 + 'ganttService' : 'components/gantt/gantt.service', // 媛꾪듃�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. + 'chartLoader' : 'components/gantt/googleChartLoader' // 李⑦듃 洹몃━湲� api(援ш�李⑦듃) + }, + shim : { + 'jquery-ui' : { + deps : ['jquery'] + }, + 'popper' :{ + deps : ['jquery'] + }, + 'bootstrap' : { + deps : ['jquery', 'jquery-ui'] + }, + 'angular' : { + deps : ['jquery'], + exports : 'angular' + }, + 'ngResource' : { + deps : ['angular'] + }, + 'uiRouter' : { + deps : ['angular'] + }, + 'app' : { + deps : ['angular', 'sortable'] + }, + 'angularDropMultiSelect' : { + deps : ['lodash'] + }, + 'angularCookie' : { + deps : ['angular'] + }, + 'angularTranslate' : { + deps : ['angular'] + }, + 'angularTranslateLoaderPartial' : { + deps : ['angular', 'angularTranslate'] + }, + 'angularTranslateStorageCookie' : { + deps : ['angular', 'angularTranslate'] + }, + 'jsTable' : { + deps : ['app'] + }, + 'jsTreeTable' : { + deps : ['app'] + }, + 'tableColumnGenerator' : { + deps : ['app'] + }, + 'ngStomp' : { + deps : ['sockJs', 'stomepWebsocket'] + }, + 'jsAutoCompleteMulti' : { + deps : ['angular', 'lodash'] + }, + 'jsInputAutoComplete' : { + deps : ['angular', 'lodash'] + }, + 'ngEnter' : { + deps : ['app'] + }, + 'krInput' : { + deps : ['app'] + }, + 'uiTouch' : { + deps : ['jquery', 'jquery-ui'] + }, + 'slimScroll' : { + deps : ['jquery'] + }, + 'jquery-mousewheel' : { + deps : ['jquery'] + }, + 'dateTimePickerFull' : { + deps : ['jquery','jquery-mousewheel'] + }, + 'summerNote' : { + deps : ['jquery'] + }, + 'bootstrapDateRangePicker' : { + deps : ['jquery', 'moment'] + }, + 'summerNote-ko-KR' : { + deps : ['summerNote'] + }, + 'summerNote-ja-JP' : { + deps : ['summerNote'] + }, + 'summerNote-vi-VN' : { + deps : ['summerNote'] + }, + 'd3ContextMenu' : { + deps : ['d3'] + }, + 'nvd3' : { + deps : ['d3'] + }, + 'angularNvd3' : { + deps : ['nvd3'] + } + } +}); + +requirejs([ + 'jquery', + 'angular', + 'domReady', + 'app', // app.js - 吏곸젒 濡쒕뱶 + 'sortable', + 'crypto', + 'jquery-ui', + 'bootstrapUtil', + 'tooltip', + 'functionToolTip', + 'popper', + 'bootstrap', + 'lodash', + 'sockJs', + 'sweetalert', + 'summerNoteAutoFocus', + 'krInput', + 'progressSpinner', + 'jquery-mousewheel', // date-time-picker.full.js �뿉�꽌 jquery-mousewheel �씠由꾩쑝濡� �릺�뼱�엳�떎. + 'owlAutoFocus', + 'stomepWebsocket', + 'ngEnter', + 'uiTouch', + 'bootstrapDateRangePicker', + 'moment', + 'dateRangePicker', + 'owlProfileOver', + 'owlMobileTopMenu', + 'slimScroll', + 'jsInformation', + 'includeReplace', + 'issueSearchArrayViewElement', + 'fileUploadProgress', + 'config', // angularJs �꽕�젙 - route �씠�룞 愿��젴, �씠�룞�떆 珥덇린�솕 濡쒖쭅�씠 �뱾�뼱�엳�떎. - 吏곸젒 濡쒕뱶 + 'constants', + 'commonController', + 'autoCompleteController', + 'userInviteController', + 'issueAddController', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'issueService', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'issueTypeService', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'priorityService', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'severityService', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'issueTypeCustomFieldService', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'workflowService', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'summerNote', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'summerNote-ko-KR', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'summerNote-ja-JP', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'summerNote-vi-VN', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 + 'issueUserService', + 'jsShortCut', + 'languageService', + 'principalService', + 'authSessionService', + 'userService', + 'attachedFileService', + 'workspaceService', + 'authInterceptor', + 'resourceProvider', + 'tableProvider', + 'permissionService', + 'authService', + 'userInviteService', + 'projectService', + 'loginRoute', + 'projectRoute', + 'issueStatusRoute', + 'workflowRoute', + 'customFieldRoute', + 'issueTypeRoute', + 'issueRoute', + 'widgetRoute', + 'userRoute', + 'taskRoute', + 'workspaceRoute', + 'noticeRoute', + 'faqRoute', + 'manageUserRoute', + 'guideRoute', + 'eventRoute', + 'qnaRoute', + 'supportRoute', + 'ganttRoute', + 'ganttService', + 'workflowService', + 'issueSearchService', + 'systemEmailService', + 'noticeService', + 'faqService', + 'guideService', + 'eventService', + 'qnaService', + 'taskService', + 'taskCommentService', + 'workflowStatusService' + +], function ($, angular, domReady, app, sortable, crypto) { + // ���떆蹂대뱶�뿉�꽌 Sortable �씤�떇 紐삵븯�뒗 臾몄젣 �빐寃� + window.Sortable = sortable; + window.CryptoJS = crypto; + + domReady(function () { + angular.bootstrap(document, ['wisestoneApp']); + + $('html').addClass('ng-app: wisestoneApp'); + }); +}); diff --git a/src/main/webapp/views/common/app.html b/src/main/webapp/views/common/app.html new file mode 100644 index 0000000..74c55d4 --- /dev/null +++ b/src/main/webapp/views/common/app.html @@ -0,0 +1,34 @@ +<noticeModal></noticeModal> + +<div class="search-with-suggestions-w"> + <div class="search-with-suggestions-modal"> + <div class="element-search"> + <input class="search-suggest-input" placeholder="寃��깋" type="text"> + <div class="close-search-suggestions"> + <i class="os-icon os-icon-x"></i> + </div> + </input> + </div> + </div> +</div> +<div class="layout-w"> + <!-- �궗�씠�뱶 諛� --> + <div ng-include include-replace src="'views/common/sidebar.html'"></div> + + <div class="content-w"> + <!-- �뿤�뜑 --> + <div ng-include include-replace src="'views/common/header.html'"></div> + + <!-- start #content --> + <div id="content" view-content class="content-i"> + <div class="content-box" ui-view></div> + </div> + <!-- start #content --> + <!-- �븯�떒 --> + <div ng-include include-replace src="'views/common/footer.html'"></div> + </div> +</div> + + + + diff --git a/src/main/webapp/views/common/footer.html b/src/main/webapp/views/common/footer.html new file mode 100644 index 0000000..a06d7a8 --- /dev/null +++ b/src/main/webapp/views/common/footer.html @@ -0,0 +1,32 @@ +<div class="footer-w"> + <!-- + <div class="footer-i"> + <div class="row"> + <div class="col-lg-3 b-r padded"> + <div class="logo-element"><img src="/assets/images/logo-owl-gr.png"></div> + </div> + <div class="col-lg-5 b-r padded"> + <h6 class="heading-small"> + information + </h6> + <p translate="common.companyInformation"> + (二�)���씠利덉뒪�넠<br/> + �궗�뾽�옄 �벑濡앸쾲�샇 : 220-87-50221 <span>|</span> ���몴�씠�궗 : �씠�쁺�꽍 <br/> + 蹂몄궗 : �꽌�슱�듅蹂꾩떆 �꽌珥덇뎄 媛뺣궓��濡� 291 �궓媛뺣퉴�뵫 6痢� + </p> + </div> + <div class="col-lg-4 padded"> + <h6 class="heading-small"> + contact + </h6> + <p> + <a href="mailto:supportowl@wisestone.kr" tabindex="-1">supportowl@wisestone.kr </a> + </p> + </div> + </div> + </div> + --> + <div class="deep-footer"> + CopyRight WISESTONE All rights reserved. + </div> +</div> diff --git a/src/main/webapp/views/common/header.html b/src/main/webapp/views/common/header.html new file mode 100644 index 0000000..d84538b --- /dev/null +++ b/src/main/webapp/views/common/header.html @@ -0,0 +1,81 @@ +<link href="/assets/font/dripicons/webfont.css" rel="stylesheet"> +<div class="top-bar color-scheme-light" owl-profile-over> + <div class="top-menu-controls row"> + <div class="top-left col-lg-8"> + <h3> + <span class="badge badge-primary vertical-middle">PROJECT</span> {{$root.workProject.name}} + </h3> + <select name="currentProject" + tabindex="-1" + class="form-control rounded mr-10 title-select width-20-p" + ng-model="$root.user.lastProjectId" + ng-change="fn.changeLastProject($root.user.lastProjectId)" + ng-if="$root.projects.length > 0"> + <option ng-repeat="workproject in $root.projects" ng-value="workproject.id"> + {{::workproject.customName}} + </option> + </select> + <select name="emptyProject" + tabindex="-1" + class="form-control rounded mr-10" + ng-if="$root.projects.length <= 0"> + <option translate="common.projectNone"> + �꽑�깮�맂 �봽濡쒖젥�듃 �뾾�쓬 + </option> + + </select> + </div> + <div class="top-right col-lg-4"> + <button class="btn btn-xlg btn-primary btn-rounded mr-10" ng-click="fn.addIssue()" tabindex="-1"> + <i class="os-icon os-icon-plus"></i> <span translate="issue.createIssue">�씠�뒋 留뚮뱾湲�</span> + </button> + + <!--<div class="element-search autosuggest-search-activator" title="寃��깋"> + <input type="text"> + </div>--> + <!-- + <div class="messages-notifications cursor"> + <div ng-click="fn.invite()" title="�궗�슜�옄 珥덈�"> + <i class="os-icon os-icon-user-plus"></i> + </div> + </div> + --> + <div class="messages-notifications os-dropdown-trigger os-dropdown-position-left" ui-sref="notices.list" + style="padding-top:5px;"> + <span class="new-messages-push"></span> + <i class="dripicons-broadcast"></i> + </div> + + <!-- + <select name="currentWorkspace" + tabindex="-1" + class="form-control form-control-sm rounded mr-10" + ng-model="$root.user.lastWorkspaceId" + ng-change="fn.changeLastWorkspace($root.user.lastWorkspaceId)"> + <option ng-repeat="workspace in $root.workspaces" ng-value="workspace.id"> + {{::workspace.name}} + </option> + </select> + --> + + + <select class="form-control rounded width-80-p" + ng-model="$root.language" + tabindex="-1" + ng-change="$root.changeLocale($root.language)"> + <option value="ko" translate="common.korean"> + �븳援��뼱 + </option> + <!--<option value="en" translate="common.english"> + �쁺�뼱 + </option> + <option value="ja" translate="common.japaneseLanguage"> + �씪蹂몄뼱 + </option> + <option value="vi" translate="common.vietnamese"> + 踰좏듃�궓�뼱 + </option>--> + </select> + </div> + </div> +</div> diff --git a/src/main/webapp/views/common/sidebar.html b/src/main/webapp/views/common/sidebar.html new file mode 100644 index 0000000..38a2ded --- /dev/null +++ b/src/main/webapp/views/common/sidebar.html @@ -0,0 +1,382 @@ +<div class="menu-mobile menu-activated-on-click color-scheme-dark" owl-mobile-top-menu> + <div class="mm-logo-buttons-w"> + <a class="mm-logo" ui-sref="dashboards.dashboard"> + <img src="/assets/images/loginlogo.png"> + <span> + <img src="/assets/images/loginlogo.png"> + </span> + </a> + <div class="mm-buttons"> + <div class="mobile-menu-trigger"> + <div class="os-icon os-icon-hamburger-menu-1"></div> + </div> + </div> + </div> + + <div class="menu-and-user "> + <div class="logged-user-w"> + <div class="avatar-w"> + <img alt="" ng-src="{{$root.user.profile}}"> + </div> + <div class="logged-user-info-w"> + <div class="logged-user-name"> + {{$root.user.name}} + </div> + + <div class="logged-user-role"> + <button ui-sref="workspaces.workspace" class="btn btn-sm btn-primary" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')"><span + translate="managementWorkspace.myWorkspace">�굹�쓽 �뾽臾� 怨듦컙</span></button> + <button ui-sref="users.detail({ id : $root.user.id })" class="btn btn-sm btn-primary"><span + translate="common.profile">�봽濡쒗븘</span></button> + <button ng-click="fn.logout()" class="btn btn-sm btn-info"><span + translate="users.logout">濡쒓렇�븘�썐</span></button> + </div> + </div> + + + <div class="logged-user-info-ws"> + <div class="logged-user-menu color-style-bright"> + <div class="logged-user-avatar-info"> + <div class="avatar-w"> + <img alt="" ng-src="{{$root.user.profile}}"> {{$root.user.name}} + </div> + </div> + <div class="bg-icon"> + <i class="os-icon os-icon-wallet-loaded"></i> + </div> + <ul> + + <li ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')"> + <a ui-sref="workspaces.workspace" tabindex="-1"> + <i class="os-icon os-icon-grid-squares-2"></i> + <span translate="managementWorkspace.myWorkspace">�굹�쓽 �뾽臾닿났媛�</span> + </a> + </li> + + <li> + <a ui-sref="users.detail({ id : $root.user.id })" tabindex="-1"> + <i class="os-icon os-icon-user-male-circle2"></i> + <span translate="common.profile">�봽濡쒗븘</span> + </a> + </li> + + <li> + <a ng-click="fn.logout()" tabindex="-1"> + <i class="os-icon os-icon-signs-11"></i> + <span translate="users.logout">濡쒓렇�븘�썐</span> + </a> + </li> + </ul> + </div> + </div> + + + </div> + + <!-------------------- + START - Mobile Menu List + --------------------> + <ul class="main-menu"> + <li class=""> + <a ui-sref="dashboards.dashboard" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-layout"></div> + </div> + <span translate="common.dashboard">���떆蹂대뱶</span> + </a> + </li> + <li class="pointer"> + <a ng-click="fn.moveMenu('issues.list')" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-layers"></div> + </div> + <span translate="issue.managementIssue">�씠�뒋 愿�由�</span></a> + </li> + <!-- + <li class=""> + <a ui-sref="tasks.agileBoard" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-layers"></div> + </div> + <span translate="tasks.agileBoardTitle">移몃컲 蹂대뱶</span></a> + </li> + <li class=""> + <a ui-sref="calendar.board" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-layers"></div> + </div> + <span translate="calendar.calendarTitle">罹섎┛�뜑</span></a> + </li> + --> + + <li class=""> + <a ui-sref="projects.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-package"></div> + </div> + <span translate="common.project">�봽濡쒖젥�듃</span></a> + </li> + <li class="has-sub-menu"> + <a tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-ui-46"></div> + </div> + <span>�꽕�젙</span></a> + <ul class="sub-menu"> + <li ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_STATUS')"> + <a ui-sref="issueStatus.list" tabindex="-1"><span translate="managementStatus.managementStatus">�긽�깭 愿�由�</span></a> + </li> + <li class="d-none d-sm-none d-md-block d-lg-block" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKFLOW')"> + <a ui-sref="workflows.list" tabindex="-1"><span + translate="managementWorkflow.managementWorkflow">�썙�겕�뵆濡쒖슦 愿�由�</span> </a> + </li> + <li ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')"> + <a ui-sref="customFields.list" tabindex="-1"><span + translate="common.customField">�궗�슜�옄 �젙�쓽 �븘�뱶</span></a> + </li> + <li ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_TYPE')"> + <a ui-sref="issueTypes.list" tabindex="-1"><span + translate="managementType.managementIssueType">�씠�뒋 ���엯 愿�由�</span></a> + </li> + </ul> + </li> + <li> + <a tabindex="-1"> + <span> + <select name="currentWorkspace" + class="form-control form-control-sm rounded " + ng-model="$root.user.lastWorkspaceId" + ng-change="fn.changeLastWorkspace($root.user.lastWorkspaceId)"> + <option ng-repeat="workspace in $root.workspaces" ng-value="workspace.id"> + {{::workspace.name}} + </option> + </select> + </span> + </a> + </li> + <li> + <a> + <span> + + <select class="form-control form-control-sm rounded" tabindex="-1" ng-model="$root.language" + ng-change="$root.changeLocale($root.language)"> + <option value="ko" translate="common.korean"> + �븳援��뼱 + </option> + <!--<option value="en" translate="common.english"> + �쁺�뼱 + </option> + <option value="ja" translate="common.japaneseLanguage"> + �씪蹂몄뼱 + </option> + <option value="vi" translate="common.vietnamese"> + 踰좏듃�궓�뼱 + </option>--> + </select> + </span> + </a> + </li> + + </ul> + <!-------------------- + END - Mobile Menu List + --------------------> + </div> +</div> + + +<div class="menu-w selected-menu-color-light menu-activated-on-hover menu-has-selected-link color-scheme-dark color-style-default sub-menu-color-bright menu-position-side menu-side-left menu-layout-compact sub-menu-style-over"> + <div class="logo-w"> + <a class="logo" ui-sref="dashboards.dashboard" tabindex="-1"> + <div class="logo-element"></div> + </a> + </div> + <div class="logged-user-w avatar-inline"> + <div class="logged-user-i"> + <div class="avatar-w"> + <img alt="" ng-src="{{$root.user.profile}}"> + </div> + <div class="logged-user-info-w"> + <div class="logged-user-name"> + {{$root.user.name}} + </div> + </div> + <div class="logged-user-toggler-arrow"> + <div class="os-icon os-icon-chevron-down"></div> + </div> + <div class="logged-user-menu color-style-bright"> + <div class="logged-user-avatar-info"> + <div class="avatar-w"> + <img alt="" ng-src="{{$root.user.profile}}"> + </div> + <div class="logged-user-info-w"> + <div class="logged-user-name"> + {{$root.user.name}} + </div> + </div> + </div> + <div class="bg-icon"> + <i class="os-icon os-icon-wallet-loaded"></i> + </div> + <ul> + + <li ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')"> + <a ui-sref="workspaces.workspace" tabindex="-1"> + <i class="os-icon os-icon-grid-squares-2"></i> + <span translate="managementWorkspace.myWorkspace">�굹�쓽 �뾽臾닿났媛�</span> + </a> + </li> + + <li> + <a ui-sref="users.detail({ id : $root.user.id })" tabindex="-1"> + <i class="os-icon os-icon-user-male-circle2"></i> + <span translate="common.profile">�봽濡쒗븘</span> + </a> + </li> + + <li> + <a ng-click="fn.logout()" tabindex="-1"> + <i class="os-icon os-icon-signs-11"></i> + <span translate="users.logout">濡쒓렇�븘�썐</span> + </a> + </li> + </ul> + </div> + </div> + </div> + + <ul class="main-menu"> + <li class="sub-header"> + <span>Dashboard</span> + </li> + <li class=""> + <a ui-sref="dashboards.dashboard" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-layout"></div> + </div> + <span translate="common.dashboard">���떆蹂대뱶</span> + </a> + </li> + <li class="sub-header"> + <span>Tasks</span> + </li> + <li class="pointer"> + <a ng-click="fn.moveMenu('issues.list')" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-layers"></div> + </div> + <span translate="issue.managementIssue">�씠�뒋 愿�由�</span> + </a> + </li> + <!-- + <li class=""> + <a ui-sref="tasks.agileBoard" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-layers"></div> + </div> + <span translate="tasks.agileBoardTitle">移몃컲 蹂대뱶</span></a> + </li> + --> + <!-- + <li class=""> + <a ui-sref="calendar.board" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-layers"></div> + </div> + <span translate="calendar.calendarTitle">罹섎┛�뜑</span></a> + </li> + --> + <li class="sub-header"> + <span>Project</span> + </li> + <li> + <a ui-sref="projects.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-package"></div> + </div> + <span translate="common.project">�봽濡쒖젥�듃</span></a> + </li> + <li class="sub-header" ng-if="$root.checkMngPermissionSettings()"> + <span>custom workflow</span> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_STATUS')"> + <a ui-sref="issueStatus.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-agenda-1"></div> + </div> + <span translate="managementStatus.managementStatus">�긽�깭</span></a> + </li> + <li class="d-none d-sm-block d-md-block d-lg-block" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKFLOW')"> + <a ui-sref="workflows.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-ui-92"></div> + </div> + <span translate="managementWorkflow.managementWorkflow">�썙�겕�뵆濡쒖슦 愿�由�</span></a> + </li> + <li class="sub-header" ng-if="$root.checkMngPermissionSettings()"> + <span>custom task type</span> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')"> + <a ui-sref="customFields.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-users"></div> + </div> + <span translate="common.customField">�궗�슜�옄 �젙�쓽 �븘�뱶</span></a> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_TYPE')"> + <a ui-sref="issueTypes.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-phone-21"></div> + </div> + <span translate="managementType.managementIssueType">�씪媛� �쑀�삎 愿�由�</span></a> + </li> + <li class="sub-header" ng-if="$root.checkMngPermissionManager()"> + <span>Management</span> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_USER')"> + <a ui-sref="manageuser.manageuser" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-users"></div> + </div> + <span translate="manageUser.manageUser">�궗�슜�옄 愿�由�</span></a> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_NOTICE')"> + <a ui-sref="notices.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-agenda-1"></div> + </div> + <span translate="notice.notice">怨듭��궗�빆</span></a> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_FAQ')"> + <a ui-sref="faqs.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-ui-92"></div> + </div> + <span translate="FAQ.manageFAQ">FAQ 愿�由�</span></a> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_QNA')"> + <a ui-sref="qna.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-phone-21"></div> + </div> + <span translate="QNA.manageQNA">QnA 愿�由�</span></a> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_EVENT')"> + <a ui-sref="event.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-phone-21"></div> + </div> + <span translate="event.manageEvent">�씠踰ㅽ듃 愿�由�</span></a> + </li> + <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_GUIDE')"> + <a ui-sref="guide.list" tabindex="-1"> + <div class="icon-w"> + <div class="os-icon os-icon-phone-21"></div> + </div> + <span translate="guide.manageGuide">媛��씠�뱶 愿�由�</span></a> + </li> + </ul> +<!-- <div class="side-menu-magic" style="padding:10px;width:100%;height:300px;">--> +<!-- <embed style="width:100%;height:100%;" type="text/html" src="../../assets/clientWeb/clientevent.html">--> +<!-- </div>--> +</div> diff --git a/src/main/webapp/views/customField/customFieldAdd.html b/src/main/webapp/views/customField/customFieldAdd.html new file mode 100644 index 0000000..53a0e7a --- /dev/null +++ b/src/main/webapp/views/customField/customFieldAdd.html @@ -0,0 +1,115 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="customField.createCustomField">�궗�슜�옄 �젙�쓽 �븘�뱶 留뚮뱾湲�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="customFieldAddForm"> + <div class="form-group"> + <label for="customFieldAddForm1"><span translate="customField.customFieldName">�궗�슜�옄 �젙�쓽 �븘�뱶 紐�</span> <code + class="highlighter-rouge">*</code></label> + <input id="customFieldAddForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + autocomplete="off" + ng-model="vm.form.name" + maxlength="15" + ng-maxlength="15" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + required> + <small ng-show="customFieldAddForm.name.$error.maxlength" translate="common.upTo15Characters"> + 理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <small translate="customField.limitNameToSpecialCharacters">�궗�슜�옄 �젙�쓽 �븘�뱶 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label for="customFieldAddForm2"><span translate="customField.fieldType">�븘�뱶 �쑀�삎</span> <code + class="highlighter-rouge">*</code></label> + <select id="customFieldAddForm2" class="form-control" ng-model="vm.form.customFieldType" + ng-change="fn.changeFieldType()"> + <option value="INPUT" translate="common.stringField">臾몄옄�뿴 �븘�뱶</option> + <option value="SINGLE_SELECT" translate="common.singleSelectionField">�떒�씪 �꽑�깮 �븘�뱶</option> + <option value="MULTI_SELECT" translate="common.multipleSelectionField">�떎以� �꽑�깮 �븘�뱶</option> + </select> + </div> + + <div class="form-group" ng-show="vm.form.customFieldType != 'INPUT'"> + <label ng-show="vm.form.customFieldType == 'SINGLE_SELECT'"><span + translate="customField.createSingleFieldList">�떒�씪 �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�</span> <code + class="highlighter-rouge">*</code></label> + <label ng-show="vm.form.customFieldType == 'MULTI_SELECT'"><span + translate="customField.createMultiFieldList">�떎以� �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�</span> <code + class="highlighter-rouge">*</code></label> + <div class="input-group"> + <input id="optionAdd" + type="text" + name="options" + class="form-control" + maxlength="15" + kr-input + ng-model="vm.form.optionText" + autocomplete="off"> + <div class="input-group-prepend"> + <button type="button" class="btn btn-secondary" ng-click="fn.addOption()"><span + translate="common.add">異붽�</span></button> + </div> + </div> + <small translate="common.upTo15Characters"> + 紐⑸줉 媛믪� 理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + </div> + + <div ng-repeat="option in vm.form.options" ng-show="vm.form.customFieldType != 'INPUT'"> + <span class="select3-selection__choice"> + <span>{{option}}</span> + <span class="select3-selection__choice__remove" ng-click="fn.removeOption($index)">횞</span> + </span> + </div> + + <div class="form-group"> + <label for="customFieldAddForm3"><span translate="customField.defaultValue">湲곕낯媛�</span> </label> + <input id="customFieldAddForm3" + type="text" + name="defaultValue" + class="form-control" + ng-model="vm.form.defaultValue" + maxlength="100" + kr-input + ng-maxlength="100" + autocomplete="off"> + <small ng-show="vm.form.customFieldType == 'INPUT'" translate="common.upTo100Characters"> + 理쒕� 100湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'SINGLE_SELECT'" + translate="customField.selectSingleFieldListHashTag"> + �떒�씪 �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) #���긽媛� + </div> + <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'MULTI_SELECT'" + translate="customField.selectMultiFieldListHashTag"> + �떎以� �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) #���긽媛�#���긽媛� + </div> + </div> + + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(customFieldAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(customFieldAddForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/customField/customFieldList.html b/src/main/webapp/views/customField/customFieldList.html new file mode 100644 index 0000000..0328c0f --- /dev/null +++ b/src/main/webapp/views/customField/customFieldList.html @@ -0,0 +1,121 @@ +<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="customField.createField">�븘�뱶 留뚮뱾湲�</span> + </button> + </div> + <h6 class="element-header" translate="common.customField"> + �궗�슜�옄 �젙�쓽 �븘�뱶 + </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="customField.customFieldName">�궗�슜�옄 �젙�쓽 �븘�뱶 紐�</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-3"> + <div class="form-group"> + <label><span translate="customField.fieldType">�븘�뱶 �쑀�삎</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="customFieldTypes" + selected-model="vm.search.customFieldTypes" + extra-settings="{ stringTypeOption : true }" + options="vm.options.customFieldTypes"></ng-dropdown-multiselect> + </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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </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="<" + next-text=">" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/customField/customFieldModify.html b/src/main/webapp/views/customField/customFieldModify.html new file mode 100644 index 0000000..8c9ac73 --- /dev/null +++ b/src/main/webapp/views/customField/customFieldModify.html @@ -0,0 +1,117 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="customField.modifyCustomFields">�궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="customFieldModifyForm"> + <div class="form-group"> + <label for="customFieldModifyForm1"><span translate="customField.customFieldName">�궗�슜�옄 �젙�쓽 �븘�뱶紐�</span> + <code class="highlighter-rouge">*</code></label> + <input id="customFieldModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + autocomplete="off" + ng-model="vm.form.name" + maxlength="15" + ng-maxlength="15" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + required> + <small ng-show="customFieldModifyForm.name.$error.maxlength" class="help-block form-text text-danger" + translate="common.upTo15Characters"> + 理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <small translate="customField.limitNameToSpecialCharacters">�궗�슜�옄 �젙�쓽 �븘�뱶 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label for="customFieldModifyForm2"><span translate="customField.fieldType">�븘�뱶 �쑀�삎</span><code + class="highlighter-rouge">*</code></label> + <select id="customFieldModifyForm2" class="form-control" ng-model="vm.form.customFieldType" + ng-change="fn.changeCustomFieldType()"> + <option value="INPUT" translate="common.stringField">臾몄옄�뿴 �븘�뱶</option> + <option value="SINGLE_SELECT" translate="common.singleSelectionField">�떒�씪 �꽑�깮 �븘�뱶</option> + <option value="MULTI_SELECT" translate="common.multipleSelectionField">�떎以� �꽑�깮 �븘�뱶</option> + </select> + </div> + + <div class="form-group" ng-show="vm.form.customFieldType != 'INPUT'"> + <label ng-show="vm.form.customFieldType == 'SINGLE_SELECT'"><span + translate="customField.createSingleFieldList">�떒�씪 �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�</span> <code + class="highlighter-rouge">*</code></label> + <label ng-show="vm.form.customFieldType == 'MULTI_SELECT'"><span + translate="customField.createMultiFieldList">�떎以� �꽑�깮 �븘�뱶 紐⑸줉 留뚮뱾湲�</span> <code + class="highlighter-rouge">*</code></label> + <div class="input-group"> + <input id="optionAdd" + type="text" + name="options" + class="form-control" + maxlength="15" + kr-input + ng-model="vm.form.optionText" + autocomplete="off"> + <div class="input-group-prepend"> + <button type="button" class="btn btn-secondary" ng-click="fn.addOption()"><span + translate="common.add">異붽�</span></button> + </div> + </div> + <small translate="common.upTo15Characters"> + 紐⑸줉 媛믪� 理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + </div> + + <div ng-repeat="option in vm.form.options" ng-show="vm.form.customFieldType != 'INPUT'"> + <span class="select3-selection__choice"> + <span>{{option}}</span> + <span class="select3-selection__choice__remove" ng-click="fn.removeOption($index)">횞</span> + </span> + </div> + + <div class="form-group"> + <label for="customFieldModifyForm3"><span translate="customField.defaultValue">湲곕낯媛�</span> </label> + <input id="customFieldModifyForm3" + type="text" + name="defaultValue" + class="form-control" + ng-model="vm.form.defaultValue" + maxlength="100" + kr-input + ng-maxlength="100" + autocomplete="off"> + <small ng-show="customFieldModifyForm.defaultValue.$error.maxlength" + class="help-block form-text text-danger" translate="common.upTo100Characters"> + 理쒕� 100湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'SINGLE_SELECT'" + translate="customField.selectSingleFieldListHashTag"> + �떒�씪 �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) #���긽媛� + </div> + <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'MULTI_SELECT'" + translate="customField.selectMultiFieldListHashTag"> + �떎以� �꽑�깮 �븘�뱶 紐⑸줉�뿉 �엳�뒗 媛믪쓣 湲곕낯�쟻�쑝濡� �꽑�깮�븯怨� �떢�쓣 �븣�뒗 �빐�떆�깭洹몃�� �궗�슜�빐�빞�빀�땲�떎. ex) #���긽媛�#���긽媛� + </div> + </div> + + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(customFieldModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(customFieldModifyForm.$invalid)" + ng-click="fn.formSubmit()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/event/eventAdd.html b/src/main/webapp/views/event/eventAdd.html new file mode 100644 index 0000000..a055c13 --- /dev/null +++ b/src/main/webapp/views/event/eventAdd.html @@ -0,0 +1,76 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="event.registerEvent">�씠踰ㅽ듃 �벑濡�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="eventAddForm"> + <div class="form-group"> + <label for="eventAddForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="eventAddForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="event.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label><span translate="common.period">湲곌컙</span> <code class="highlighter-rouge">*</code></label> + <input type="text" + class="form-control input-readonly" + ng-model="vm.form.startEndDateRange" + modal-form-auto-scroll + parent-el="'#createdWidget'" + range-type="date" + onfocus="this.blur()" + date-range-picker> + <div class="row"> + <div class="col-xs-12"> + <div id="createdWidget" class="bootstrap-datepicker"></div> + </div> + </div> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(eventAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(eventAddForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/event/eventList.html b/src/main/webapp/views/event/eventList.html new file mode 100644 index 0000000..dcfee29 --- /dev/null +++ b/src/main/webapp/views/event/eventList.html @@ -0,0 +1,117 @@ +<div class="row"> + <div class="col-sm-12"> + + <div class="element-wrapper"> + <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_EVENT')"> + <button ng-click="fn.add()" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> + <span translate="event.registerEvent">�씠踰ㅽ듃 �벑濡�</span> + </button> + + <!-- + <form class="form-inline justify-content-sm-end pull-right" + method="post" + action="/user/downloadExcel" + name="userListForm"> + <input type="hidden" name="conditions"> + <button type="button" class="btn btn-info btn-xlg" + form-submit="userListForm" + make-search-conditions="fn.makeSearchConditions()"> + <span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span> + </button> + </form> + --> + </div> + + <h6 class="element-header" translate="event.event"> + 媛��씠�뱶 + </h6> + + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="eventListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label for="eventListForm1"> + <span translate="common.title">�젣紐�</span> + </label> + <input type="text" + name="title" + id="eventListForm1" + autocomplete="off" + kr-input + owl-auto-focus + maxlength="50" + class="form-control" + ng-model="vm.search.title"> + </div> + </div> + + <div class="col-lg-8"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + </div> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + + </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="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> + diff --git a/src/main/webapp/views/event/eventModify.html b/src/main/webapp/views/event/eventModify.html new file mode 100644 index 0000000..64acfb7 --- /dev/null +++ b/src/main/webapp/views/event/eventModify.html @@ -0,0 +1,77 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="event.modifyEvent">�씠踰ㅽ듃 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="eventModifyForm"> + <div class="form-group"> + <label for="eventModifyForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="eventModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="event.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label for="projectModifyForm2"><span translate="common.period">湲곌컙</span> <code class="highlighter-rouge">*</code></label> + <input id="projectModifyForm2" + type="text" + class="form-control input-readonly" + ng-model="vm.form.startEndDateRange" + modal-form-auto-scroll + parent-el="'#createdWidget'" + range-type="date" + onfocus="this.blur()" + date-range-picker> + <div class="row"> + <div class="col-xs-12"> + <div id="createdWidget" class="bootstrap-datepicker"></div> + </div> + </div> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(eventModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(eventModifyForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_EVENT')"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/event/eventView.html b/src/main/webapp/views/event/eventView.html new file mode 100644 index 0000000..df9bc0b --- /dev/null +++ b/src/main/webapp/views/event/eventView.html @@ -0,0 +1,20 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong class="bold">{{vm.viewer.title}}</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <div ng-bind-html="$root.$sce.trustAsHtml(vm.viewer.description)"></div> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"> + <span translate="common.close">�떕湲�</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/faq/faqAdd.html b/src/main/webapp/views/faq/faqAdd.html new file mode 100644 index 0000000..98e95f8 --- /dev/null +++ b/src/main/webapp/views/faq/faqAdd.html @@ -0,0 +1,59 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="FAQ.registerFAQ">FAQ �벑濡�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="faqAddForm"> + <div class="form-group"> + <label for="faqAddForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="faqAddForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="FAQ.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(faqAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(faqAddForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/faq/faqList.html b/src/main/webapp/views/faq/faqList.html new file mode 100644 index 0000000..7a260d1 --- /dev/null +++ b/src/main/webapp/views/faq/faqList.html @@ -0,0 +1,117 @@ +<div class="row"> + <div class="col-sm-12"> + + <div class="element-wrapper"> + <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_FAQ')"> + <button ng-click="fn.add()" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> + <span translate="FAQ.registerFAQ">FAQ �벑濡�</span> + </button> + + <!-- + <form class="form-inline justify-content-sm-end pull-right" + method="post" + action="/user/downloadExcel" + name="userListForm"> + <input type="hidden" name="conditions"> + <button type="button" class="btn btn-info btn-xlg" + form-submit="userListForm" + make-search-conditions="fn.makeSearchConditions()"> + <span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span> + </button> + </form> + --> + </div> + + <h6 class="element-header" translate="FAQ.FAQ"> + FAQ + </h6> + + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="faqListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label for="faqListForm1"> + <span translate="common.title">�젣紐�</span> + </label> + <input type="text" + name="title" + id="faqListForm1" + autocomplete="off" + kr-input + owl-auto-focus + maxlength="50" + class="form-control" + ng-model="vm.search.title"> + </div> + </div> + + <div class="col-lg-8"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + </div> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + + </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="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> + diff --git a/src/main/webapp/views/faq/faqModify.html b/src/main/webapp/views/faq/faqModify.html new file mode 100644 index 0000000..434d9b1 --- /dev/null +++ b/src/main/webapp/views/faq/faqModify.html @@ -0,0 +1,59 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="FAQ.modifyFAQ">FAQ �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="faqModifyForm"> + <div class="form-group"> + <label for="faqModifyForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="faqModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="FAQ.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(faqModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(faqModifyForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/faq/faqView.html b/src/main/webapp/views/faq/faqView.html new file mode 100644 index 0000000..df9bc0b --- /dev/null +++ b/src/main/webapp/views/faq/faqView.html @@ -0,0 +1,20 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong class="bold">{{vm.viewer.title}}</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <div ng-bind-html="$root.$sce.trustAsHtml(vm.viewer.description)"></div> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"> + <span translate="common.close">�떕湲�</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/gantt/gantt.html b/src/main/webapp/views/gantt/gantt.html new file mode 100644 index 0000000..c7d8336 --- /dev/null +++ b/src/main/webapp/views/gantt/gantt.html @@ -0,0 +1,312 @@ +<div class="row"> + <div class="col-sm-12"> + <div class="element-wrapper"> + <h6 class="element-header" translate="gantt.chartTitle"> + 媛꾪듃 李⑦듃 + </h6> + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="issueSearchForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-sm-6"> + <div class="input-group"> + <input class="form-control" + type="text" + tabindex="-1" + maxlength="300" + kr-input + owl-auto-focus + ng-model="vm.search.title" + placeholder="{{'issue.pleaseEnterIssueName' | translate}}"> + <div class="input-group-prepend ml-10"> + <button class="btn btn-navy" ng-click="fn.getPageList(0)"> <span translate="common.search">寃��깋</span></button> + </div> + </div> + </div> + </div> + + <div class="row"> + <div class="col-sm-12"> + <div class="tabfilter"> + <div translate="common.selectedSearchCriteria">�꽑�깮�븳 寃��깋 議곌굔</div> + <!-- �봽濡쒖젥�듃 --> + <issue-search-array-view-element lists="vm.projects" + type="'project'"></issue-search-array-view-element> + + <!-- �씠�뒋 ���엯 --> + <issue-search-field-key-view-element lists="vm.issueTypes" + keys="vm.search.issueTypeIds"></issue-search-field-key-view-element> + + <!-- �씠�뒋 �긽�깭 --> + <issue-search-field-key-view-element lists="vm.issueStatuses" + keys="vm.search.issueStatusIds"></issue-search-field-key-view-element> + + <!-- �씠�뒋 踰덊샇 --> + <p ng-if="$root.isDefined(vm.search.combinationIssueNumber)"> + {{vm.search.combinationIssueNumber}} + <span ng-click="vm.search.combinationIssueNumber = ''">횞</span> + </p> + + <!-- �씠�뒋 �궡�슜 --> + <p ng-if="$root.isDefined(vm.search.description)"> + {{vm.search.description}} + <span ng-click="vm.search.description = ''">횞</span> + </p> + + <!-- �슦�꽑 �닚�쐞 --> + <issue-search-field-key-view-element lists="vm.priorities" + keys="vm.search.priorityIds"></issue-search-field-key-view-element> + + <!-- 以묒슂�룄 --> + <issue-search-field-key-view-element lists="vm.severities" + keys="vm.search.severityIds"></issue-search-field-key-view-element> + + <!-- �떞�떦�옄 --> + <issue-search-array-view-element lists="vm.users" + type="'user'"></issue-search-array-view-element> + + <!-- �벑濡앹옄 --> + <issue-search-array-view-element lists="vm.registers" + type="'user'"></issue-search-array-view-element> + + <!-- �떆�옉�씪 --> + <p ng-if="$root.isDefined(vm.search.startDateRange)"> + {{vm.search.startDateRange}} + <span ng-click="vm.search.startDateRange = ''">횞</span> + </p> + + <!-- 醫낅즺�씪 --> + <p ng-if="$root.isDefined(vm.search.completeDateRange)"> + {{vm.search.completeDateRange}} + <span ng-click="vm.search.completeDateRange = ''">횞</span> + </p> + + <!-- �벑濡앹씪 --> + <p ng-if="$root.isDefined(vm.search.registerDateRange)"> + {{vm.search.registerDateRange}} + <span ng-click="vm.search.registerDateRange = ''">횞</span> + </p> + + <!-- �뀓�뒪�듃 �엯�젰 �븘�뱶 --> + <issue-search-custom-field-view-element + custom-fields="vm.customFields"></issue-search-custom-field-view-element> + </div> + </div> + </div> + + + <div class=""> + <label class="issue-search-label" ng-class="{ 'icon-reverse' : vm.searchView }" + ng-click="vm.searchView = !vm.searchView"> + <span translate="common.detailedSearch">�긽�꽭寃��깋</span> + </label> + <div ng-if="vm.searchView"> + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.project">�봽濡쒖젥�듃</span></label> + <js-autocomplete-multi data-input-name="projects" + selected-model="vm.projects" + search="vm.projectName" + input-disabled="false" + translation-texts="{ empty : 'common.emptyProject', selectList : 'common.' }" + source="fn.getProjectList(vm.projectName, vm.projects, null, null, ['01', '02', '03'])" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 100}"></js-autocomplete-multi> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueType">�씠�뒋 ���엯</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="issueStatuses" + selected-model="vm.search.issueTypeIds" + options="::vm.issueTypes"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueStatus">�씠�뒋 �긽�깭</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="issueStatuses" + selected-model="vm.search.issueStatusIds" + options="::vm.issueStatuses"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueNumber">�씠�뒋 踰덊샇</span></label> + <input type="text" + name="name" + class="form-control input-sm" + autocomplete="off" + kr-input + maxlength="20" + ng-model="vm.search.combinationIssueNumber"> + </div> + </div> + </div> + + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueContent">�씠�뒋 �궡�슜</span></label> + <input type="text" + name="description" + class="form-control input-sm" + kr-input + maxlength="20" + autocomplete="off" + ng-model="vm.search.description"> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.priority">�슦�꽑 �닚�쐞</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="priorities" + selected-model="vm.search.priorityIds" + options="::vm.priorities"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.importance">以묒슂�룄</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="severities" + selected-model="vm.search.severityIds" + options="::vm.severities"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.assignee">�떞�떦�옄</span></label> + <js-autocomplete-multi data-input-name="users" + selected-model="vm.users" + search="vm.userName" + input-disabled="false" + source="fn.getUserList(vm.userName, vm.users)" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"> + </js-autocomplete-multi> + </div> + </div> + </div> + + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.register">�벑濡앹옄</span></label> + <js-autocomplete-multi data-input-name="registers" + selected-model="vm.registers" + search="vm.registerName" + input-disabled="false" + source="fn.getUserList(vm.registerName, vm.registers)" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"> + </js-autocomplete-multi> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.registrationDate">�벑濡앹씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.registerDateRange" + modal-form-auto-scroll + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.startDate">�떆�옉�씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.startDateRange" + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.endDate">醫낅즺�씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.completeDateRange" + modal-form-auto-scroll + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3" ng-repeat="customField in vm.customFields"> + <label>{{::customField.name}}</label> + + <div ng-switch on="customField.customFieldType"> + <div ng-switch-when="INPUT"> + <input type="text" class="form-control input-sm" + ng-model="customField.useValues" + maxlength="100"> + </div> + + <div ng-switch-default> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="customField.name" + selected-model="customField.useValues" + extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', 'stopRemoveBodyEvent' : 'true' }" + options="::customField.customFieldValueVos"></ng-dropdown-multiselect> + </div> + </div> + </div> + + </div> + + <div class="row"> + <div class="col-sm-12"> + <div class="form-buttons-w text-center mb-20"> + <button class="btn btn-xlg btn-navy" ng-click="fn.getPageList(0)"> + <i class="os-icon os-icon-ui-37"></i> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </div> + </div> + </form> + </div> + </div> + </div> + <div class="controls-above-table mt-30"> + <div class="row"> + <div id="chart_div"></div> +<!-- <div class="text-center" ng-if="!vm.useGantt">--> +<!-- <span translate="common.noData">�씪媛먯씠 �뾾�뒿�땲�떎.</span>--> +<!-- </div>--> + </div> + </div> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/guide/guideAdd.html b/src/main/webapp/views/guide/guideAdd.html new file mode 100644 index 0000000..1c9fddf --- /dev/null +++ b/src/main/webapp/views/guide/guideAdd.html @@ -0,0 +1,59 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="guide.registerGuide">媛��씠�뱶 �벑濡�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="guideAddForm"> + <div class="form-group"> + <label for="guideAddForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="guideAddForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="guide.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(guideAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(guideAddForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/guide/guideList.html b/src/main/webapp/views/guide/guideList.html new file mode 100644 index 0000000..11d8d66 --- /dev/null +++ b/src/main/webapp/views/guide/guideList.html @@ -0,0 +1,117 @@ +<div class="row"> + <div class="col-sm-12"> + + <div class="element-wrapper"> + <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_GUIDE')"> + <button ng-click="fn.add()" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> + <span translate="guide.registerGuide">媛��씠�뱶 �벑濡�</span> + </button> + + <!-- + <form class="form-inline justify-content-sm-end pull-right" + method="post" + action="/user/downloadExcel" + name="userListForm"> + <input type="hidden" name="conditions"> + <button type="button" class="btn btn-info btn-xlg" + form-submit="userListForm" + make-search-conditions="fn.makeSearchConditions()"> + <span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span> + </button> + </form> + --> + </div> + + <h6 class="element-header" translate="guide.guide"> + 媛��씠�뱶 + </h6> + + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="guideListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label for="guideListForm1"> + <span translate="common.title">�젣紐�</span> + </label> + <input type="text" + name="title" + id="guideListForm1" + autocomplete="off" + kr-input + owl-auto-focus + maxlength="50" + class="form-control" + ng-model="vm.search.title"> + </div> + </div> + + <div class="col-lg-8"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + </div> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + + </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="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> + diff --git a/src/main/webapp/views/guide/guideModify.html b/src/main/webapp/views/guide/guideModify.html new file mode 100644 index 0000000..b8fe010 --- /dev/null +++ b/src/main/webapp/views/guide/guideModify.html @@ -0,0 +1,59 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="guide.modifyGuide">媛��씠�뱶 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="guideModifyForm"> + <div class="form-group"> + <label for="guideModifyForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="guideModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="guide.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(guideModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(guideModifyForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_GUIDE')"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/guide/guideView.html b/src/main/webapp/views/guide/guideView.html new file mode 100644 index 0000000..df9bc0b --- /dev/null +++ b/src/main/webapp/views/guide/guideView.html @@ -0,0 +1,20 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong class="bold">{{vm.viewer.title}}</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <div ng-bind-html="$root.$sce.trustAsHtml(vm.viewer.description)"></div> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"> + <span translate="common.close">�떕湲�</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueAdd.html b/src/main/webapp/views/issue/issueAdd.html new file mode 100644 index 0000000..0eccfe0 --- /dev/null +++ b/src/main/webapp/views/issue/issueAdd.html @@ -0,0 +1,307 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.createIssue">�씠�뒋 留뚮뱾湲�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueAddForm"> + <div class="form-group mb10"> + <label for="issueAddForm1" class="issue-label"><span translate="issue.issueTitle">�씠�뒋 �젣紐�</span> <code + class="highlighter-rouge">*</code></label> + <input id="issueAddForm1" + class="form-control input-sm" + ng-model="vm.form.title" + name="title" + required + kr-input + maxlength="300" + autocomplete="off" + autofocus + owl-auto-focus> + <small class="help-block form-text text-danger" + ng-if="issueAddForm.title.$touched && issueAddForm.title.$error.required" + translate="issue.requireIssueTitle">�씠�뒋 �젣紐⑹쓣 �엯�젰�븯�꽭�슂. + </small> + </div> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group mb10"> + <label class="issue-label"> <span translate="common.project">�봽濡쒖젥�듃</span> <code + class="highlighter-rouge">*</code></label> + <js-autocomplete-single data-input-name="project" + selected-model="vm.form.projects" + search="vm.projectName" + 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" + translation-texts="{ empty : 'common.emptyProject' }" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + </div> + </div> + + <div class="col-lg-8 bdl1"> + <div class="row"> + <div class="col-md-4"> + <div class="form-group mb10"> + <label for="issueAddForm4" class="issue-label"> <span + translate="issue.issueType">�씠�뒋 ���엯</span> + <code class="highlighter-rouge">*</code></label> + <select id="issueAddForm4" + name="issueType" + class="form-control input-sm issue-select-label" + ng-model="vm.form.issueTypeId" + ng-change="fn.getIssueTypeCustomFields()" + ng-style="{ 'color' : fn.getOptionColor(vm.issueTypes, vm.form.issueTypeId) }" + required> + <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"><span + translate="common.selectTarget">���긽 �꽑�깮</span> + </option> + <option ng-repeat="issueType in vm.issueTypes" + ng-style="{ 'color' : issueType.color, 'font-weight': 600 }" + value="{{issueType.id}}">�뿈 {{issueType.name}} + </option> + </select> + </div> + </div> + <div class="col-md-4"> + <div class="form-group mb10"> + <label for="issueAddForm2" class="issue-label"> + <span translate="common.priority">�슦�꽑 �닚�쐞</span> + <code class="highlighter-rouge">*</code> + </label> + <select id="issueAddForm2" + name="priority" + class="form-control input-sm issue-select-label" + ng-model="vm.form.priorityId" + ng-style="{ 'color' : fn.getOptionColor(vm.priorities, vm.form.priorityId) }" + required> + <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"> + <span translate="common.selectTarget">���긽 �꽑�깮</span> + </option> + <option ng-repeat="priority in vm.priorities" + ng-style="{ 'color' : priority.color, 'font-weight': 600 }" + value="{{priority.id}}" + translate="{{priority.name}}"> + </option> + </select> + </div> + </div> + <div class="col-md-4"> + <div class="form-group mb10"> + <label for="issueAddForm3" class="issue-label"> <span + translate="common.importance">以묒슂�룄</span> <code + class="highlighter-rouge">*</code></label> + <select id="issueAddForm3" + name="severity" + class="form-control input-sm issue-select-label" + ng-model="vm.form.severityId" + ng-style="{ 'color' : fn.getOptionColor(vm.severities, vm.form.severityId) }" + required> + <option value="" translate="common.selectTarget" ng-style="{ color : '#353535' }"> + <span translate="common.selectTarget">���긽 �꽑�깮</span> + </option> + <option ng-repeat="severity in vm.severities" + ng-style="{ color : severity.color, 'font-weight': 600 }" + value="{{severity.id}}" + translate="{{severity.name}}"> + </option> + </select> + </div> + </div> + </div> + </div> + + </div> + + <div class="form-group mb10"> + <label class="issue-label"><span translate="common.content">�궡�슜</span></label> + <summernote + class="summernote" + lang="ko-KR" + summer-note-auto-focus + ng-model="vm.form.description" + data-editor="vm.summerNote.editor" + data-editable="vm.summerNote.editable" + on-image-upload="fn.imageUpload(files)" + target=".note-editable"></summernote> + </div> + + <div class="row"> + <div class="col-lg-4"> + <div class="form-group mb10"> + <label class="issue-label"> <span translate="common.assignee">�떞�떦�옄</span> </label> + <js-input-autocomplete data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" + input-disabled="vm.form.projects.length == 0" + translation-texts="{ empty : 'common.emptyUser'}" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', + type : 'user', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete> + + <small translate="issue.setUpUsersParticipatingInProject">�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �궗�슜�옄瑜� �꽕�젙�빀�땲�떎.</small> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" + ng-click="fn.removeManager($index)">횞</span> + </span> + </div> + </div> + + <div class="form-group mb10"> + <label for="issueAddForm5" class="issue-label"> <span translate="common.period">湲곌컙</span> + </label> + <input id="issueAddForm5" + tabindex="-1" + type="text" + readonly + class="form-control cursor" + placeholder="{{'issue.clickToSelectDate' | translate}}" + ng-model="vm.form.startCompleteDateRange" + modal-form-auto-scroll + date-format="YYYY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + <div class="row"> + <div class="col-xs-12"> + <div id="createdWidget" class="bootstrap-datepicker"></div> + </div> + </div> + </div> + + <div class="form-group mgb5"> + <label class="issue-label"><span translate="common.attachFiles">�뙆�씪 泥⑤�</span></label> + <div class="filebox input-group"> + <input class="upload-name form-control" + placeholder="{{'users.pleaseSelectFile' | translate}}" + tabindex="-1" + disabled="disabled"> + <label for="uploadFileField"><span + translate="common.selectFile">�뙆�씪�꽑�깮</span></label> + <input id="uploadFileField" + tabindex="-1" + type="file" + class="form-control" + multiple + ng-file-select="fn.onFileSelect($files)"> + </div> + <small translate="issue.attachOnlyFiles">hwp, jpg, png, txt, pptx, ppt, pdf, xlsx, xls, docx, + zip, gif, jpeg, doc, tif, bmp, wmv, avi, mp4, mkv, mov �뙆�씪留� 泥⑤��븷 �닔 �엳�뒿�땲�떎. + </small> + + <div class="select2-selection__choicediv"> + <div class="select2-selection__choice2" ng-repeat="file in vm.form.files"> + <div class="select2-selection__choice2__remove" ng-click="fn.removeUploadFile($index)"> + 횞 + </div> + <div class="ssg-items ssg-items-blocks"> + <div class="ssg-item"> + <div class="item-icon"> + <!-- 臾몄꽌 --> + <i class="os-icon os-icon-file-text" ng-if="file.fileType == 'DOC'"></i> + <!-- 誘몃뵒�뼱 --> + <i class="os-icon os-icon-film" ng-if="file.fileType == 'MEDIA'"></i> + <!-- �씠誘몄�(�뾽濡쒕뱶 �쟾) --> + <i class="os-icon os-icon-documents-07" + ng-if="file.fileType == 'IMAGE'"></i> + <!-- 湲고� --> + <i class="os-icon os-icon-ui-51" ng-if="file.fileType == 'ETC'"></i> + </div> + <div class="item-name"> + <small>{{file.name}}</small> + </div> + <div class="item-amount"> + ({{file.size/1024/1024 | number:2}} MB) + </div> + </div> + </div> + </div> + </div> + </div> + </div> + + <div class="col-lg-8 bdl1"> + <div class="row"> + <div class="col-md-12"> + <div class="form-group mgb5" ng-show="vm.form.issueCustomFields.length < 1"> + <label class="issue-label" translate="issue.notIssueTypeCustomFields">�씠�뒋 ���엯�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 + �븘�뱶媛� �뾾�뒿�땲�떎.</label> + </div> + </div> + + <div class="col-md-6" ng-repeat="issueCustomField in vm.form.issueCustomFields"> + <div class="form-group mgb5"> + <label class="issue-label">{{issueCustomField.customFieldVo.name}}</label> + + <div ng-switch on="issueCustomField.customFieldVo.customFieldType"> + <!-- 湲곕낯 �엯�젰 --> + <div ng-switch-when="INPUT"> + <input type="text" class="form-control input-sm" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-required="issueCustomField.fieldOption == '01'"> + </div> + + <!-- �떒�씪 ���젆�듃 --> + <div ng-switch-when="SINGLE_SELECT"> + <select class="form-control input-sm issue-select-label" + ng-required="issueCustomField.fieldOption == '01'" + ng-model="issueCustomField.useValues"> + <option value="" value="" translate="common.choose">�꽑�깮�븯�꽭�슂.</option> + <option ng-repeat="customFieldValueVo in issueCustomField.customFieldVo.customFieldValueVos" + value="{{customFieldValueVo.value}}" + ng-selected="$root.selectOption(issueCustomField.useValues, customFieldValueVo.value)"> + {{customFieldValueVo.value}} + </option> + </select> + </div> + + <!-- 硫��떚 ���젆�듃 --> + <div ng-switch-when="MULTI_SELECT"> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="" + modal-form-auto-scroll + selected-model="issueCustomField.useValues" + extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', stopRemoveBodyEvent : true }" + options="issueCustomField.customFieldVo.customFieldValueVos"></ng-dropdown-multiselect> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </form> + </div> +</div> + +<div class="modal-footer buttons-on-right"> + <div class="pull-left"> + <label> + <input class="form-control issue-continue-checkbox pull-left" type="checkbox" ng-model="vm.infiniteAdd" + tabindex="-1"> + <span translate="issue.continueCreateIssue">�씠 �솕硫댁뿉�꽌 �씠�뒋瑜� 怨꾩냽 �깮�꽦�빀�땲�떎.</span> + </label> + </div> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()" tabindex="-1"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueAddForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> +</div> diff --git a/src/main/webapp/views/issue/issueAddTableConfig.html b/src/main/webapp/views/issue/issueAddTableConfig.html new file mode 100644 index 0000000..81506ba --- /dev/null +++ b/src/main/webapp/views/issue/issueAddTableConfig.html @@ -0,0 +1,95 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.setIssueTableDisplay">�씠�뒋 �뀒�씠釉� �몴�떆 �꽕�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueTableConfigForm"> + <table class="table table-dash table-lightborder table-layout-fixed"> + <thead> + <tr> + <th class="text-center width-80-p"> + <span translate="issue.columnName">而щ읆紐�</span> + </th> + <th class="text-center width-80-p"> + <span translate="issue.area">�꼻�씠</span> + </th> + <th class="text-center width-80-p"> + <span translate="issue.displayed">�몴�떆 �뿬遺�</span> + </th> + <th class="text-center width-40-p"> + <span translate="issue.sequence">�닚�꽌</span> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class="text-center"> + <span class="bold" translate="issue.issueTitle">�씠�뒋 �젣紐�</span> + </td> + <td class="text-center" colspan="3"> + <span class="text-danger bold" translate="issue.cannotChangedIssueTitle">�씠�뒋 �젣紐⑹� 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.</span> + </td> + </tr> + <tr ng-repeat="issueTableConfig in vm.issueTableConfigs"> + <td class="text-center"> + <span class="bold">{{issueTableConfig.name}}</span> + </td> + <td class="text-center"> + <select class="form-control" ng-model="issueTableConfig.width"> + <option>�꽑�깮�븯�꽭�슂.</option> + <option value="width-20-p">20px</option> + <option value="width-30-p">30px</option> + <option value="width-40-p">40px</option> + <option value="width-50-p">50px</option> + <option value="width-60-p">60px</option> + <option value="width-70-p">70px</option> + <option value="width-80-p">80px</option> + <option value="width-90-p">90px</option> + <option value="width-100-p">100px</option> + <option value="width-110-p">110px</option> + <option value="width-120-p">120px</option> + <option value="width-130-p">130px</option> + <option value="width-140-p">140px</option> + <option value="width-150-p">150px</option> + <option value="width-160-p">160px</option> + <option value="width-170-p">170px</option> + <option value="width-180-p">180px</option> + <option value="width-190-p">190px</option> + <option value="width-200-p">200px</option> + <option value="width-220-p">220px</option> + <option value="width-240-p">240px</option> + <option value="width-260-p">260px</option> + <option value="width-280-p">280px</option> + <option value="width-300-p">300px</option> + <option value="width-20">20%</option> + <option value="width-30">30%</option> + <option value="width-40">40%</option> + <option value="width-50">50%</option> + </select> + </td> + <td class="text-center"> + <label class='switch'><input type='checkbox' ng-model='issueTableConfig.display'><span class='slider round'></span></label> + </td> + <td class="text-center"> + <input type="text" class="form-control" ng-model="issueTableConfig.position" maxlength="2" input-regex="[^0-9]"> + </td> + </tr> + </tbody> + </table> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.close">�떕湲�</span></button> + <button type="button" class="btn btn-md btn-primary bold" + ng-disabled="fn.formCheck(issueTableConfigForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html new file mode 100644 index 0000000..7913e9c --- /dev/null +++ b/src/main/webapp/views/issue/issueDetail.html @@ -0,0 +1,509 @@ +<div class="support-tickets"> + <div class="support-tickets-header"> +<!-- <div class="tickets-control">--> +<!-- <h5 translate="issue.issueList">--> +<!-- �씠�뒋 紐⑸줉--> +<!-- </h5>--> +<!-- </div>--> + + <div class="tickets-filter"> + <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 class="form-check stick-right"> + <form class="form-inline justify-content-sm-end" method="post" action="/issue/downloadExcel" + name="issueListForm"> + <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" + x-placement="bottom-start" + style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;"> + <a class="dropdown-item cursor" form-submit="issueListForm" + make-search-conditions="fn.makeSearchConditions()"> <span + translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span></a> + <a class="dropdown-item cursor" ng-click="fn.importExcel()"> <span + translate="common.importExcel">Excel Import</span></a> + <a class="dropdown-item cursor" ng-click="fn.modifyMultiIssueStatus()"> <span + translate="common.updateIssueStatus">�씠�뒋 �긽�깭 蹂�寃�</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="support-ticket "> + <div class="st-body"> + <div class="table-responsive"> + <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" + event="tableEvent" detail-view="vm.detailView"></js-table> + </div> + </div> + </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="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> +</div> + +<!-- �긽�꽭 �솕硫� --> +<div class="support-ticket-content-w" ng-controller="issueDetailController"> + <div class="support-ticket-content"> + <div class="support-ticket-content-header issue-detail-word-break"> + <h3 class="ticket-header"> + <div class="tasks-header-w mb-10"> + <span class="tags"> + <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}}</span> + </span> + </div> + {{vm.viewer.title}} + </h3> + + <a class="show-ticket-info cursor"> + <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)" data-toggle="tooltip" data-placement="right" title="�떎瑜� �궗�슜�옄�뿉寃� �씠�뒋 蹂대궡湲�"></i> + <i class="os-icon os-icon-airplay mr-20" ng-click="fn.versionView(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="�씠�뒋 蹂�寃� �씠�젰 �긽�꽭 蹂닿린"></i> + <i class="os-icon os-icon-calendar-time mr-20" ng-if="vm.viewer.modifyPermissionCheck" + ng-click="fn.reservation(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="�씠�뒋 諛쒖깮 �삁�빟 �븯湲�"></i> + <i class="os-icon os-icon-edit-1 mr-20" ng-click="fn.modify(vm.viewer.id)" + ng-if="vm.viewer.modifyPermissionCheck && vm.viewer.issueStatusVo.issueStatusType != 'CLOSE'" data-toggle="tooltip" data-placement="left" title="�씠�뒋 �닔�젙 �븯湲�"></i> + <span class="issue-close" ng-click="fn.listView()"><i class="os-icon os-icon-close" data-toggle="tooltip" data-placement="left" title="�긽�꽭 �솕硫� �떕湲�"></i></span> + </a> + </div> + + <div class="ticket-thread"> + <div class="todo-content"> + <h6 class="todo-content-subheader mt-20" translate="common.detailInformation">�긽�꽭 �젙蹂�</h6> + <div class="row mt-20"> + <div class="col-md-4"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="common.importance">以묒슂�룄</span></label> + <div class=""> + <span class="badge" + ng-style="{'background-color' : vm.viewer.severityVo.color, 'border-color' : vm.viewer.severityVo.color, 'color' : '#FFFFFF' }" + translate="{{vm.viewer.severityVo.name}}"></span> + </div> + </div> + </div> + + <div class="col-md-4"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="common.priority">�슦�꽑 �닚�쐞</span></label> + <div class=""> + <span class="badge" + ng-style="{'background-color' : vm.viewer.priorityVo.color, 'border-color' : vm.viewer.priorityVo.color, 'color' : '#FFFFFF' }" + translate="{{vm.viewer.priorityVo.name}}"></span> + </div> + </div> + </div> + + <div class="col-md-4"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="issue.issueStatus">�씠�뒋 �긽�깭</span></label> + <!-- 沅뚰븳�쓣 媛뽮퀬 �엳�쓣 �븣 --> + <div ng-if="vm.viewer.modifyPermissionCheck"> + <span class="editForm badge mr-5" + ng-style="{'background-color' : vm.viewer.issueStatusVo.color, 'border-color' : vm.viewer.issueStatusVo.color, 'color' : '#FFFFFF' }">{{vm.viewer.issueStatusVo.name}}</span> + <i class="fa fa-edit fa-2x issue-status-edit cursor" + ng-click="fn.modifyIssueStatus()" data-toggle="tooltip" data-placement="right" title="�씪媛� �긽�깭 蹂�寃� �븯湲�"></i> + </div> + + <!-- 沅뚰븳�씠 �뾾�쓣 �븣 --> + <div ng-if="!vm.viewer.modifyPermissionCheck"> + <span class="editForm badge mr-5" + ng-style="{'background-color' : vm.viewer.issueStatusVo.color, 'border-color' : vm.viewer.issueStatusVo.color, 'color' : '#FFFFFF' }">{{vm.viewer.issueStatusVo.name}}</span> + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-4"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="issue.issueType">�씠�뒋 ���엯</span> </label> + <div class=""> + <span class="status-pill smaller" + ng-style="{'background-color': vm.viewer.issueTypeVo.color }"></span><span>{{vm.viewer.issueTypeVo.name}}</span> + </div> + </div> + </div> + + <div class="col-md-4"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="common.period">湲곌컙</span></label> + <div class=""> + <span translate="{{vm.viewer.startDate}}"></span> ~ <span + translate="{{vm.viewer.completeDate}}"></span> + </div> + </div> + </div> + <div class="col-md-4"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="common.changeDate">蹂�寃쎌씪</span> </label> + <div class=""> + {{vm.viewer.modifyDate}} + </div> + </div> + </div> + </div> + + <div class="row"> + <div class="col-md-4"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="common.registrationDate">�벑濡앹씪</span> + </label> + <div class=""> + {{vm.viewer.registerDate}} + </div> + </div> + </div> + + <div class="col-md-4"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="common.register">�벑濡앹옄</span></label> + <div class=""> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice"> + <span class="avatar-w"><img ng-src="{{vm.viewer.registerVo.profile}}"></span> + <span>{{vm.viewer.registerVo.byName}}</span> + </span> + </div> + </div> + </div> + </div> + </div> + + <div class="row"> + <div class="col-xxl-12"> + <div class="form-group"> + <label class="issue-detail-label"><span translate="common.assignee">�떞�떦�옄</span> </label> + <div class=""> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="user in vm.viewer.userVos"> + <span class="avatar-w"><img ng-src="{{::user.profile}}"></span> + <span>{{::user.byName}}</span> + </span> + + <span ng-if="vm.viewer.userVos.length < 1" translate="common.noAssignee"> + �떞�떦�옄媛� �뾾�뒿�땲�떎. + </span> + <i class="fa fa-edit fa-2x issue-status-edit cursor" + ng-click="fn.modifyIssueUser()" data-toggle="tooltip" data-placement="right" title="�떞�떦�옄 蹂�寃� �븯湲�"></i> + </div> + </div> + </div> + </div> + </div> + + <div class="row"> + <div class="col-md-4" ng-repeat="issueCustomField in vm.viewer.issueCustomFields"> + <label class="issue-detail-label">{{::issueCustomField.customFieldVo.name}}</label> + + <div ng-switch on="issueCustomField.customFieldVo.customFieldType"> + <!-- 湲곕낯 �엯�젰 --> + <div ng-switch-when="INPUT" class="form-group"> + <!-- �씫湲� 紐⑤뱶 --> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <!-- �떒�씪 ���젆�듃 --> + <div ng-switch-when="SINGLE_SELECT" class="form-group"> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <!-- 硫��떚 ���젆�듃 --> + <div ng-switch-when="MULTI_SELECT" class="form-group"> + <span class="issue-detail-word-break" + ng-repeat="useValue in issueCustomField.useValues">{{::useValue.value}}, </span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + </div> + </div> + </div> + + <h6 class="todo-content-subheader mt-20" translate="issue.relationIssue">�뿰愿� �씪媛�</h6> + + <!-- �뀒�씠釉� --> + <div class="mt-10 issue-detail-word-break width-100"> + <js-table data="vm.viewer.issueRelationVos" table-configs="vm.relTableConfigs" + event="relTableEvent" detail-view="true" hide-header="false" use-sort="false"></js-table> + + <div class="row"> + <div class="col-sm-4"> + <select id="relationIssueType" + name="relationIssueType" + class="form-control input-sm" + ng-options="option.name for option in vm.relationIssueTypes track by option.id" + ng-model="vm.relationIssueType" + required> + </select> + + </div> + + <div class="col-sm-6"> + <js-autocomplete-single data-input-name="issue" + selected-model="vm.form.issues" + search="vm.issueName" + source="fn.getIssueList(vm.issueName, vm.form.issues, vm.autoCompletePage.issue.page, fn.getIssueListCallBack)" + page="vm.autoCompletePage.issue.page" + total-page="vm.autoCompletePage.issue.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyIssue' }" + extra-settings="{ displayProp : 'title' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single> + </div> + <div class="col-auto vertical-middle"> + <button type="button" class="btn btn-primary form-control input-sm" + ng-click="fn.addRelationIssue()" + translate="issue.addRelationIssue">異붽�</button> + </div> + + </div> + </div> + + + <h6 class="todo-content-subheader mt-20" translate="common.content">�궡�슜</h6> + <div class="box mt-10 issue-detail-word-break width-100" > + <div ng-bind-html="$root.$sce.trustAsHtml(vm.viewer.description)"></div> + <span class="fc-grey" ng-if="!$root.isDefined(vm.viewer.description)" translate="common.noContent"> + �궡�슜�씠 �뾾�뒿�땲�떎. + </span> + </div> + + <h6 class="todo-content-subheader mt-20" translate="common.attachFiles">�뙆�씪 泥⑤�</h6> + + <!-- 泥⑤��뙆�씪 --> + <div class="select2-selection__choicediv"> + <div class="select2-selection__choice2" ng-repeat="file in vm.viewer.attachedFileVos"> + <a href="attached/download?id={{file.id}}"> + <div class="ssg-items ssg-items-blocks"> + <div class="ssg-item"> + <div class="item-icon"> + <!-- 臾몄꽌 --> + <i class="os-icon os-icon-file-text" ng-if="file.fileType == 'DOC'"></i> + <!-- 誘몃뵒�뼱 --> + <i class="os-icon os-icon-film" ng-if="file.fileType == 'MEDIA'"></i> + <!-- �씠誘몄�(�뾽濡쒕뱶 �쟾) --> + <i class="os-icon os-icon-documents-07" + ng-if="file.fileType == 'IMAGE' && !$root.isDefined(file.path)"></i> + <!-- �씠誘몄�(�뾽濡쒕뱶 �썑) --> + <span class="attached-media-w" + ng-if="file.fileType == 'IMAGE' && $root.isDefined(file.path)"> + <img ng-src="{{file.path}}"> + </span> + <!-- 湲고� --> + <i class="os-icon os-icon-ui-51" ng-if="file.fileType == 'ETC'"></i> + </div> + <div class="item-name"> + <small>{{::file.name}}</small> + </div> + <div class="item-amount"> + ({{::file.size/1024/1024 | number:2}} MB) + </div> + </div> + </div> + </a> + </div> + + <div ng-show="vm.viewer.attachedFileVos.length < 1" class="detail-not-elements"> + <span translate="common.noAttachedFile">泥⑤��맂 �뙆�씪�씠 �뾾�뒿�땲�떎.</span> + </div> + </div> + + <div class="row"> + <div class="col-sm-12"> + <h6 class="todo-content-subheader mt-20"><span translate="issue.previewImage">�씠誘몄� 誘몃━ 蹂닿린</span> + </h6> + <div class="pdt10"> + <issue-detail-image-preview images="vm.images"></issue-detail-image-preview> + </div> + </div> + <div ng-show="vm.images.length < 1" class="detail-not-elements width-100"> + <span translate="common.noImage">泥⑤��맂 �씠誘몄�媛� �뾾�뒿�땲�떎.</span> + </div> + + </div> + + <!-- �솢�룞 �궡�뿭 --> + <div class="row"> + <div class="col-sm-12"> + <h6 class="todo-content-subheader mt-20" translate="common.activityLogs">�솢�룞 �궡�뿭</h6> + <div class="os-tabs-w"> + <div class="os-tabs-controls"> + <ul class="nav nav-tabs smaller"> + <li class="nav-item cursor"> + <a class="nav-link" ng-class="{ 'active' : vm.activeTab == 'ALL' }" + ng-click="fn.updateActiveHistory()"><span + translate="common.fullView">�쟾泥대낫湲�</span></a> + </li> + <li class="nav-item cursor"> + <a class="nav-link" ng-class="{ 'active' : vm.activeTab == 'REPLY' }" + ng-click="vm.activeTab = 'REPLY'"><span translate="common.comments">�뙎湲�</span></a> + </li> + <li class="nav-item cursor"> + <a class="nav-link" ng-class="{ 'active' : vm.activeTab == 'RECODE' }" + ng-click="vm.activeTab = 'RECODE'"><span translate="common.record">湲곕줉</span></a> + </li> + </ul> + </div> + + <div class="tab-content"> + <!-- �쟾泥� 湲곕줉 蹂닿린 --> + <div ng-if="vm.activeTab == 'ALL'"> + <div class="ae-item" ng-repeat="activeHistory in vm.viewer.activeHistory"> + <!-- 湲곕줉�씤 寃쎌슦 --> + <div class="aei-content" + ng-if="$root.isDefined(activeHistory.issueHistoryType)"> + <h6 ng-if="activeHistory.issueHistoryType == 'TOTAL'" + translate="issue.summaryIssueActivity">�씠�뒋 �솢�룞 �궡�뿭 �슂�빟 <i + class="os-icon os-icon-arrow-down"></i></h6> + <div dom-append dom="activeHistory.description"></div> + </div> + <!-- �뙎湲��씤 寃쎌슦 --> + <div class="aei-image" ng-if="!$root.isDefined(activeHistory.issueHistoryType)"> + <div class="user-avatar-w"> + <img alt="image" ng-src="{{::activeHistory.profile}}"> + </div> + </div> + <div class="aei-content" + ng-if="!$root.isDefined(activeHistory.issueHistoryType)"> + <h6 class="aei-title"> + {{::activeHistory.registerName}} + </h6> + <div class="date-break"> + <span>{{::activeHistory.registerDate}}</span> + </div> + <div class="aei-delete" + ng-click="fn.removeComment(comment)" + ng-show="$root.user.id == comment.registerId"> + <i class="os-icon os-icon-close"></i> + </div> + <div class="chat-messages"> + <div class="message"> + <div class="message-content"> + <span class="issue-detail-word-break">{{::activeHistory.description}}</span> + </div> + </div> + + </div> + </div> + </div> + </div> + + <!-- �뙎湲� 蹂닿린 --> + <div ng-if="vm.activeTab == 'REPLY'"> + <div class="no-cont2" ng-if="vm.viewer.issueCommentVos.length < 1" + translate="common.noComments"> + �뙎湲��씠 �뾾�뒿�땲�떎. + </div> + <div class="ae-item" ng-repeat="comment in vm.viewer.issueCommentVos"> + <div class="aei-image"> + <div class="user-avatar-w"> + <img alt="image" ng-src="{{::comment.profile}}"> + </div> + </div> + <div class="aei-content"> + <h6 class="aei-title"> + {{::comment.registerName}} + </h6> + <div class="date-break"> + <span>{{::comment.registerDate}}</span> + </div> + <div class="aei-delete" + ng-click="fn.removeComment(comment)" + ng-show="$root.user.id == comment.registerId"> + <i class="os-icon os-icon-close"></i> + </div> + <div class="chat-messages"> + <div class="message"> + <div class="message-content"> + <span class="issue-detail-word-break">{{::comment.description}}</span> + </div> + </div> + + </div> + </div> + </div> + <form name="commentForm" ng-enter="fn.addComment()"> + <div class="form-group row "> + <div class="col-sm-12"> + <div class="input-group"> + <input class="form-control" + kr-input + maxlength="300" + placeholder="{{'common.pleaseEnterComments' | translate}}" + ng-model="vm.viewer.comment" + type="text"> + <div class="input-group-prepend"> + <div class="input-group-text2" + ng-class="{ 'disable' : !$root.isDefined(vm.viewer.comment) }" + ng-click="fn.addComment()"> + <i class="os-icon os-icon-mail-18"></i> + </div> + </div> + </div> + </div> + </div> + </form> + </div> + + <!-- 湲곕줉 蹂닿린 --> + <div ng-if="vm.activeTab == 'RECODE'"> + <div class="no-cont2" + ng-if="vm.viewer.issueHistoryVos.length < 1" + translate="common.noRecord"> + 湲곕줉�씠 �뾾�뒿�땲�떎. + </div> + + <div class="activity-item" + ng-repeat="issueHistory in vm.viewer.issueHistoryVos"> + <h6 ng-if="issueHistory.issueHistoryType == 'TOTAL'" + translate="issue.summaryIssueActivity">�씠�뒋 �솢�룞 �궡�뿭 �슂�빟 + <i class="os-icon os-icon-arrow-down"></i> + </h6> + <div class="activity-content"> + <div dom-append dom="issueHistory.description"></div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueExcelImport.html b/src/main/webapp/views/issue/issueExcelImport.html new file mode 100644 index 0000000..4d66c0d --- /dev/null +++ b/src/main/webapp/views/issue/issueExcelImport.html @@ -0,0 +1,164 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.registerExcelIssues">�뿊��濡� �씠�뒋 �벑濡앺븯湲�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueExcelImportFrom"> + <div class="row"> + <div class="col-lg-5"> + <div class="form-group"> + <label for=""> <span translate="common.project">�봽濡쒖젥�듃</span> <code + class="highlighter-rouge">*</code></label> + <js-autocomplete-single data-input-name="project" + selected-model="vm.form.projects" + search="vm.projectName" + source="fn.getProjectList(vm.projectName, vm.form.projects)" + page="vm.autoCompletePage.project.page" + total-page="vm.autoCompletePage.project.totalPage" + input-disabled="false" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single> + </div> + + <div class="form-group"> + <label for="issueExcelImportFrom3"> <span translate="issue.issueType">�씠�뒋 ���엯</span> <code + class="highlighter-rouge">*</code></label> + <select id="issueExcelImportFrom3" + name="issueType" + class="form-control input-sm" + ng-model="vm.form.issueTypeId" + ng-style="{ 'color' : fn.getOptionColor(vm.issueTypes, vm.form.issueTypeId) }"> + <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }">���긽 �꽑�깮 + </option> + <option ng-repeat="issueType in vm.issueTypes" + ng-style="{ 'color' : issueType.color }" + value="{{issueType.id}}">�뿈 {{issueType.name}} + </option> + </select> + <small translate="issue.selectProjectAndIssueTypeDownloadExcel">�봽濡쒖젥�듃, �씠�뒋 ���엯�쓣 �꽑�깮�븯硫� �빐�떦 �븯�뒗 �뼇�떇�쓽 �뿊���쓣 + �떎�슫濡쒕뱶 �븷 �닔 �엳�뒿�땲�떎. + </small> + </div> + + <button type="button" + class="btn btn-success" + ng-show="vm.form.projects.length > 0 && $root.isDefined(vm.form.issueTypeId)" + form-submit="issueExcelImportForm" make-search-conditions="fn.makeSearchConditions()" + style="width:100%;"><i class="fa fa-file-excel-o"></i> <span + translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span> + </button> + + <div class="form-group pdt10"> + <div class="filebox input-group"> + <input class="upload-name form-control" + placeholder="{{'users.pleaseSelectFile' | translate}}" + tabindex="-1" + disabled="disabled" + ng-model="vm.form.fileName"> + <label for="uploadFileField"><span translate="common.uploadExcel">�뿊�� �뾽濡쒕뱶</span></label> + <input id="uploadFileField" + class="form-control" + type="file" + ng-file-select="fn.onFileSelect($files)"/> + </div> + </div> + + <button type="button" class="btn btn-md btn-primary bold" + ng-show="$root.isDefined(vm.form.file)" + style="width:100%;" + ng-disabled="fn.formCheck()" + ng-click="fn.formSubmit()"><span + translate="common.registerExcelUploadIssue">�뿊�� �뾽濡쒕뱶 �씠�뒋 �벑濡�</span> + </button> + </div> + + <div class="col-lg-7 bdl1"> + <div class="os-tabs-w"> + <div class="os-tabs-controls"> + <ul class="nav nav-tabs smaller"> + <li class="nav-item cursor"> + <a class="nav-link" ng-class="{ 'active' : vm.tab == 'VIDEO' }" + ng-click="vm.tab = 'VIDEO'"><span + translate="issue.videoExample">�룞�쁺�긽 �삁�젣</span></a> + </li> + <!--<li class="nav-item cursor"> + <a class="nav-link" ng-class="{ 'active' : vm.tab == 'DESCRIPTION' }" + ng-click="vm.tab = 'DESCRIPTION'"><span + translate="issue.writeWaring">�옉�꽦 �슂�졊</span></a> + </li>--> + </ul> + </div> + + <div class="tab-content"> + <div ng-show="vm.tab == 'VIDEO'"> + <video style="width:100%;" width="100%" height="300px" + src="/excelTemplate/excelExample_new.mp4" controls autoplay loop muted + preload="auto"></video> + </div> + + <!--<div ng-show="vm.tab == 'DESCRIPTION'" class="pdt10"> + <div class="excel-notice" translate="common.writeWaring2"> + <ul> + <li>�젣紐� 而щ읆�� 理쒕� 300湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.</li> + <li>�궡�슜 而щ읆�� 理쒕� 5000湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.</li> + <li>�봽濡쒖젥�듃 而щ읆�� �봽濡쒖젥�듃 �궎瑜� �엯�젰�빐�빞 �빀�땲�떎. + <dl> + <dt>�봽濡쒖젥�듃 �궎�뒗 �봽濡쒖젥�듃 紐⑸줉�뿉�꽌 �솗�씤�븷 �닔 �엳�뒿�땲�떎.</dt> + </dl> + </li> + <li>�씠�뒋 ���엯 而щ읆�� �씠�뒋 而щ읆 紐낆쓣 �엯�젰�빐�빞 �빀�땲�떎. + <dl> + <dt>�씠�뒋 ���엯 紐낆� �씠�뒋 ���엯 紐⑸줉�뿉�꽌 �솗�씤�븷 �닔 �엳�뒿�땲�떎.</dt> + </dl> + </li> + <li>�슦�꽑�닚�쐞 而щ읆�� �궙�쓬, 蹂댄넻, �넂�쓬 以묒뿉�꽌 1媛쒕쭔 �엯�젰�빐�빞 �빀�땲�떎.</li> + <li>以묒슂�룄 而щ읆�� �궙�쓬, 蹂댄넻, �떖媛� 以묒뿉�꽌 1媛쒕쭔 �엯�젰�빐�빞 �빀�땲�떎.</li> + <li>�떞�떦�옄�뒗 �씠硫붿씪濡� 吏��젙�븷 �닔 �엳�뒿�땲�떎. + <dl> + <dt>�뿬�윭 �떞�떦�옄瑜� 吏��젙�븯�젮硫� #�쑝濡� 援щ텇�븯�뿬 �벑濡앺븷 �닔 �엳�뒿�땲�떎.</dt> + <dt>ex) wisestoneowl@gmail.com#support@wisestone.kr</dt> + <dt>�빐�떦 �떞�떦�옄媛� �벑濡앺븯�젮�뒗 �씠�뒋�쓽 �봽濡쒖젥�듃�뿉 李몄뿬�븯怨� �엳�뼱�빞 �빀�땲�떎.</dt> + </dl> + </li> + <li>�떆�옉�씪�� �떎�쓬怨� 媛숈� �삎�떇�쑝濡� �엯�젰�빐�빞 �빀�땲�떎. + <dl> + <dt>�궇吏� �엯�젰 媛� 寃곌낵 2018-11-22 10:30:00 AM O</dt> + </dl> + </li> + <li>J 而щ읆遺��꽣�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶 �엯�땲�떎. �썝�븯�뒗 �븘�뱶 媛믪쓣 �엯�젰�빐�빞 �빀�땲�떎. + <dl> + <dt>�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶媛� 臾몄옄�뿴 �엯�젰 �븘�뱶�씪 寃쎌슦 理쒕� 100湲��옄源뚯� �엯�젰 媛��뒫�빀�땲�떎.</dt> + <dt>�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �떎以� �꽑�깮 �븘�뱶硫� #瑜� �궗�슜�븯�뿬 �뿬�윭 媛믪쓣 �엯�젰�븷 �닔 �엳�뒿�땲�떎.</dt> + <dt>ex) �샃�뀡 媛믪씠 怨좎뼇�씠, 媛뺤븘吏�, �넗�겮�씪 寃쎌슦 怨좎뼇�씠�� �넗�겮瑜� 媛믪쑝濡� �젙�븯湲� �쐞�빐�꽌�뒗 <span + class="fc-blue">怨좎뼇�씠#�넗�겮</span>�� 媛숈씠 �엯�젰�빐�빞 �빀�땲�떎. + </dt> + </dl> + </li> + </ul> + </div> + </div>--> + </div> + </div> + </div> + </div> + </form> + <!-- �씠�뒋 Excel Import �뀥�뵆由� �떎�슫濡쒕뱶 �뤌 --> + <form class="form-inline justify-content-sm-end" + method="post" + action="/issue/downloadExcelTemplate" + name="issueExcelImportForm"> + <input type="hidden" name="conditions"> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.close">�떕湲�</span></button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueList.html b/src/main/webapp/views/issue/issueList.html new file mode 100644 index 0000000..50d4a57 --- /dev/null +++ b/src/main/webapp/views/issue/issueList.html @@ -0,0 +1,29 @@ +<h6 class="element-header" translate="issue.managementIssue"> + �씠�뒋 愿�由� +</h6> + +<div class="os-tabs-w"> + <div class="os-tabs-controls"> + <ul class="nav nav-tabs upper"> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'ISSUE_LIST' }" ng-click="fn.changeTab('ISSUE_LIST')" translate="issue.normalList">�씪媛� 紐⑸줉</a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'ISSUE_TIMELINE' }" ng-click="fn.changeTab('ISSUE_TIMELINE')" translate="issue.timeLine">���엫 �씪�씤</a> + </li> + </ul> + </div> +</div> + +<div class="tab-content mt-30"> + + <div ng-show="vm.tab == 'ISSUE_LIST'"> + <div ng-include include-replace src="'views/issue/issueListNormal.html'"></div> + </div> + + <div ng-show="vm.tab == 'ISSUE_TIMELINE'"> + <div ng-include include-replace src="'views/issue/issueListTimeline.html'"></div> + </div> +</div> + + diff --git a/src/main/webapp/views/issue/issueListNormal.html b/src/main/webapp/views/issue/issueListNormal.html new file mode 100644 index 0000000..8ebb4a0 --- /dev/null +++ b/src/main/webapp/views/issue/issueListNormal.html @@ -0,0 +1,371 @@ +<div class="container-fluid" ng-controller="issueListController"> + <div class="row"> + <div class="col-sm-12" > + <div class="element-wrapper" ng-if="!vm.detailView"> + <div class="element-box"> + <div class="row" > + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="issueSearchForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-sm-6"> + <div class="input-group"> + <input class="form-control" + type="text" + tabindex="-1" + maxlength="300" + kr-input + owl-auto-focus + ng-model="vm.search.title" + placeholder="{{'issue.pleaseEnterIssueName' | translate}}"> + <div class="input-group-prepend ml-10"> + <button class="btn btn-navy" ng-click="fn.getPageList(0)"> <span translate="common.search">寃��깋</span></button> + </div> + </div> + </div> + </div> + + <div class="row"> + <div class="col-sm-12"> + <div class="tabfilter"> + <div translate="common.selectedSearchCriteria">�꽑�깮�븳 寃��깋 議곌굔</div> + <!-- �봽濡쒖젥�듃 --> + <issue-search-array-view-element lists="vm.projects" + type="'project'"></issue-search-array-view-element> + + <!-- �씠�뒋 ���엯 --> + <issue-search-field-key-view-element lists="vm.issueTypes" + keys="vm.search.issueTypeIds"></issue-search-field-key-view-element> + + <!-- �씠�뒋 �긽�깭 --> + <issue-search-field-key-view-element lists="vm.issueStatuses" + keys="vm.search.issueStatusIds"></issue-search-field-key-view-element> + + <!-- �씠�뒋 踰덊샇 --> + <p ng-if="$root.isDefined(vm.search.combinationIssueNumber)"> + {{vm.search.combinationIssueNumber}} + <span ng-click="vm.search.combinationIssueNumber = ''">횞</span> + </p> + + <!-- �씠�뒋 �궡�슜 --> + <p ng-if="$root.isDefined(vm.search.description)"> + {{vm.search.description}} + <span ng-click="vm.search.description = ''">횞</span> + </p> + + <!-- �슦�꽑 �닚�쐞 --> + <issue-search-field-key-view-element lists="vm.priorities" + keys="vm.search.priorityIds"></issue-search-field-key-view-element> + + <!-- 以묒슂�룄 --> + <issue-search-field-key-view-element lists="vm.severities" + keys="vm.search.severityIds"></issue-search-field-key-view-element> + + <!-- �떞�떦�옄 --> + <issue-search-array-view-element lists="vm.users" + type="'user'"></issue-search-array-view-element> + + <!-- �벑濡앹옄 --> + <issue-search-array-view-element lists="vm.registers" + type="'user'"></issue-search-array-view-element> + + <!-- �떆�옉�씪 --> + <p ng-if="$root.isDefined(vm.search.startDateRange)"> + {{vm.search.startDateRange}} + <span ng-click="vm.search.startDateRange = ''">횞</span> + </p> + + <!-- 醫낅즺�씪 --> + <p ng-if="$root.isDefined(vm.search.completeDateRange)"> + {{vm.search.completeDateRange}} + <span ng-click="vm.search.completeDateRange = ''">횞</span> + </p> + + <!-- �벑濡앹씪 --> + <p ng-if="$root.isDefined(vm.search.registerDateRange)"> + {{vm.search.registerDateRange}} + <span ng-click="vm.search.registerDateRange = ''">횞</span> + </p> + + <!-- �뀓�뒪�듃 �엯�젰 �븘�뱶 --> + <issue-search-custom-field-view-element + custom-fields="vm.customFields"></issue-search-custom-field-view-element> + </div> + </div> + </div> + + + <div class=""> + <label class="issue-search-label" ng-class="{ 'icon-reverse' : vm.searchView }" + ng-click="vm.searchView = !vm.searchView"> + <span translate="common.detailedSearch">�긽�꽭寃��깋</span> + </label> + <div ng-if="vm.searchView"> + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.project">�봽濡쒖젥�듃</span></label> + <js-autocomplete-multi data-input-name="projects" + selected-model="vm.projects" + search="vm.projectName" + input-disabled="false" + translation-texts="{ empty : 'common.emptyProject', selectList : 'common.' }" + source="fn.getProjectList(vm.projectName, vm.projects, null, null, ['01', '02', '03'])" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 100}"></js-autocomplete-multi> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueType">�씠�뒋 ���엯</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="issueStatuses" + selected-model="vm.search.issueTypeIds" + options="::vm.issueTypes"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueStatus">�씠�뒋 �긽�깭</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="issueStatuses" + selected-model="vm.search.issueStatusIds" + options="::vm.issueStatuses"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueNumber">�씠�뒋 踰덊샇</span></label> + <input type="text" + name="name" + class="form-control input-sm" + autocomplete="off" + kr-input + maxlength="20" + ng-model="vm.search.combinationIssueNumber"> + </div> + </div> + </div> + + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueContent">�씠�뒋 �궡�슜</span></label> + <input type="text" + name="description" + class="form-control input-sm" + kr-input + maxlength="20" + autocomplete="off" + ng-model="vm.search.description"> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.priority">�슦�꽑 �닚�쐞</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="priorities" + selected-model="vm.search.priorityIds" + options="::vm.priorities"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.importance">以묒슂�룄</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="severities" + selected-model="vm.search.severityIds" + options="::vm.severities"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.assignee">�떞�떦�옄</span></label> + <js-autocomplete-multi data-input-name="users" + selected-model="vm.users" + search="vm.userName" + input-disabled="false" + source="fn.getUserList(vm.userName, vm.users)" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"> + </js-autocomplete-multi> + </div> + </div> + </div> + + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.register">�벑濡앹옄</span></label> + <js-autocomplete-multi data-input-name="registers" + selected-model="vm.registers" + search="vm.registerName" + input-disabled="false" + source="fn.getUserList(vm.registerName, vm.registers)" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"> + </js-autocomplete-multi> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.registrationDate">�벑濡앹씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.registerDateRange" + modal-form-auto-scroll + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.startDate">�떆�옉�씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.startDateRange" + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.endDate">醫낅즺�씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.completeDateRange" + modal-form-auto-scroll + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3" ng-repeat="customField in vm.customFields"> + <label>{{::customField.name}}</label> + + <div ng-switch on="customField.customFieldType"> + <div ng-switch-when="INPUT"> + <input type="text" class="form-control input-sm" + ng-model="customField.useValues" + maxlength="100"> + </div> + + <div ng-switch-default> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="customField.name" + selected-model="customField.useValues" + extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', 'stopRemoveBodyEvent' : 'true' }" + options="::customField.customFieldValueVos"></ng-dropdown-multiselect> + </div> + </div> + </div> + + </div> + + <div class="row"> + <div class="col-sm-12"> + <div class="form-buttons-w text-center mb-20"> + <button class="btn btn-xlg btn-navy" ng-click="fn.getPageList(0)"> + <i class="os-icon os-icon-ui-37"></i> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </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" + tabindex="-1" + 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 " > + <form class="form-inline justify-content-sm-end pull-right" method="post" action="/issue/downloadExcel" name="issueListForm" > + <!--span class="badge-tip" function-tool-tip data-placement="top" data-toggle="tooltip" data-original-title="�뿊�� �떎�슫濡쒕뱶, �씪愿� 蹂�寃� �벑 �떎�뼇�븳 湲곕뒫�쓣 �젣怨듯빀�땲�떎.">?</span--> + <input type="hidden" name="conditions"> + <div class="btn-group"> + <button aria-expanded="false" aria-haspopup="true" + tabindex="-1" + 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="issueListForm" make-search-conditions="fn.makeSearchConditions()"> <span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span></a> + + <a class="dropdown-item cursor" ng-click="fn.importExcel()"> <span translate="common.importExcel">Excel Import</span></a> + <a class="dropdown-item cursor" ng-click="fn.modifyMultiIssueStatus()"> <span translate="common.updateIssueStatus">�씠�뒋 �긽�깭 蹂�寃�</span></a> + <a class="dropdown-item cursor" ng-click="fn.addIssueTableConfig()"> <span translate="issue.settingTableDisplay">�뀒�씠釉� �몴�떆 �꽕�젙</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" detail-view="vm.detailView"></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="<" + next-text=">" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> + </div> + + <div class="row support-index" ng-show="vm.detailView"> + <div ng-include include-replace src="'views/issue/issueDetail.html'"></div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/issue/issueListTimeline.html b/src/main/webapp/views/issue/issueListTimeline.html new file mode 100644 index 0000000..65f51d0 --- /dev/null +++ b/src/main/webapp/views/issue/issueListTimeline.html @@ -0,0 +1,309 @@ +<div class="row" ng-controller="issueListTimelineController" ng-init="init()"> + <div class="col-sm-12"> + <div class="element-wrapper"> + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="issueSearchForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-sm-6"> + <div class="input-group"> + <input class="form-control" + type="text" + tabindex="-1" + maxlength="300" + kr-input + owl-auto-focus + ng-model="vm.search.title" + placeholder="{{'issue.pleaseEnterIssueName' | translate}}"> + <div class="input-group-prepend ml-10"> + <button class="btn btn-navy" ng-click="fn.getPageList(0)"> <span translate="common.search">寃��깋</span></button> + </div> + </div> + </div> + </div> + + <div class="row"> + <div class="col-sm-12"> + <div class="tabfilter"> + <div translate="common.selectedSearchCriteria">�꽑�깮�븳 寃��깋 議곌굔</div> + <!-- �봽濡쒖젥�듃 --> + <issue-search-array-view-element lists="vm.projects" + type="'project'"></issue-search-array-view-element> + + <!-- �씠�뒋 ���엯 --> + <issue-search-field-key-view-element lists="vm.issueTypes" + keys="vm.search.issueTypeIds"></issue-search-field-key-view-element> + + <!-- �씠�뒋 �긽�깭 --> + <issue-search-field-key-view-element lists="vm.issueStatuses" + keys="vm.search.issueStatusIds"></issue-search-field-key-view-element> + + <!-- �씠�뒋 踰덊샇 --> + <p ng-if="$root.isDefined(vm.search.combinationIssueNumber)"> + {{vm.search.combinationIssueNumber}} + <span ng-click="vm.search.combinationIssueNumber = ''">횞</span> + </p> + + <!-- �씠�뒋 �궡�슜 --> + <p ng-if="$root.isDefined(vm.search.description)"> + {{vm.search.description}} + <span ng-click="vm.search.description = ''">횞</span> + </p> + + <!-- �슦�꽑 �닚�쐞 --> + <issue-search-field-key-view-element lists="vm.priorities" + keys="vm.search.priorityIds"></issue-search-field-key-view-element> + + <!-- 以묒슂�룄 --> + <issue-search-field-key-view-element lists="vm.severities" + keys="vm.search.severityIds"></issue-search-field-key-view-element> + + <!-- �떞�떦�옄 --> + <issue-search-array-view-element lists="vm.users" + type="'user'"></issue-search-array-view-element> + + <!-- �벑濡앹옄 --> + <issue-search-array-view-element lists="vm.registers" + type="'user'"></issue-search-array-view-element> + + <!-- �떆�옉�씪 --> + <p ng-if="$root.isDefined(vm.search.startDateRange)"> + {{vm.search.startDateRange}} + <span ng-click="vm.search.startDateRange = ''">횞</span> + </p> + + <!-- 醫낅즺�씪 --> + <p ng-if="$root.isDefined(vm.search.completeDateRange)"> + {{vm.search.completeDateRange}} + <span ng-click="vm.search.completeDateRange = ''">횞</span> + </p> + + <!-- �벑濡앹씪 --> + <p ng-if="$root.isDefined(vm.search.registerDateRange)"> + {{vm.search.registerDateRange}} + <span ng-click="vm.search.registerDateRange = ''">횞</span> + </p> + + <!-- �뀓�뒪�듃 �엯�젰 �븘�뱶 --> + <issue-search-custom-field-view-element + custom-fields="vm.customFields"></issue-search-custom-field-view-element> + </div> + </div> + </div> + + + <div class=""> + <label class="issue-search-label" ng-class="{ 'icon-reverse' : vm.searchView }" + ng-click="vm.searchView = !vm.searchView"> + <span translate="common.detailedSearch">�긽�꽭寃��깋</span> + </label> + <div ng-if="vm.searchView"> + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.project">�봽濡쒖젥�듃</span></label> + <js-autocomplete-multi data-input-name="projects" + selected-model="vm.projects" + search="vm.projectName" + input-disabled="false" + translation-texts="{ empty : 'common.emptyProject', selectList : 'common.' }" + source="fn.getProjectList(vm.projectName, vm.projects, null, null, ['01', '02', '03'])" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 100}"></js-autocomplete-multi> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueType">�씠�뒋 ���엯</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="issueStatuses" + selected-model="vm.search.issueTypeIds" + options="::vm.issueTypes"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueStatus">�씠�뒋 �긽�깭</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="issueStatuses" + selected-model="vm.search.issueStatusIds" + options="::vm.issueStatuses"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueNumber">�씠�뒋 踰덊샇</span></label> + <input type="text" + name="name" + class="form-control input-sm" + autocomplete="off" + kr-input + maxlength="20" + ng-model="vm.search.combinationIssueNumber"> + </div> + </div> + </div> + + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="issue.issueContent">�씠�뒋 �궡�슜</span></label> + <input type="text" + name="description" + class="form-control input-sm" + kr-input + maxlength="20" + autocomplete="off" + ng-model="vm.search.description"> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.priority">�슦�꽑 �닚�쐞</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="priorities" + selected-model="vm.search.priorityIds" + options="::vm.priorities"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.importance">以묒슂�룄</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="severities" + selected-model="vm.search.severityIds" + options="::vm.severities"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.assignee">�떞�떦�옄</span></label> + <js-autocomplete-multi data-input-name="users" + selected-model="vm.users" + search="vm.userName" + input-disabled="false" + source="fn.getUserList(vm.userName, vm.users)" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"> + </js-autocomplete-multi> + </div> + </div> + </div> + + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.register">�벑濡앹옄</span></label> + <js-autocomplete-multi data-input-name="registers" + selected-model="vm.registers" + search="vm.registerName" + input-disabled="false" + source="fn.getUserList(vm.registerName, vm.registers)" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"> + </js-autocomplete-multi> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.registrationDate">�벑濡앹씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.registerDateRange" + modal-form-auto-scroll + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.startDate">�떆�옉�씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.startDateRange" + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.endDate">醫낅즺�씪</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.completeDateRange" + modal-form-auto-scroll + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> + + <div class="col-lg-3" ng-repeat="customField in vm.customFields"> + <label>{{::customField.name}}</label> + + <div ng-switch on="customField.customFieldType"> + <div ng-switch-when="INPUT"> + <input type="text" class="form-control input-sm" + ng-model="customField.useValues" + maxlength="100"> + </div> + + <div ng-switch-default> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="customField.name" + selected-model="customField.useValues" + extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', 'stopRemoveBodyEvent' : 'true' }" + options="::customField.customFieldValueVos"></ng-dropdown-multiselect> + </div> + </div> + </div> + + </div> + + <div class="row"> + <div class="col-sm-12"> + <div class="form-buttons-w text-center mb-20"> + <button class="btn btn-xlg btn-navy" ng-click="fn.getPageList(0)"> + <i class="os-icon os-icon-ui-37"></i> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </div> + </div> + </form> + </div> + </div> + </div> + <div class="controls-above-table mt-30"> + <div class="row"> + <div id="chart_div"></div> + <!-- <div class="text-center" ng-if="!vm.useGantt">--> + <!-- <span translate="common.noData">�씪媛먯씠 �뾾�뒿�땲�떎.</span>--> + <!-- </div>--> + </div> + </div> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/issue/issueModify.html b/src/main/webapp/views/issue/issueModify.html new file mode 100644 index 0000000..01bd3db --- /dev/null +++ b/src/main/webapp/views/issue/issueModify.html @@ -0,0 +1,304 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.modifyIssues">�씠�뒋 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueModifyForm"> + <div class="form-group mb10"> + <label for="issueModifyForm1" class="issue-label"><span translate="issue.issueTitle">�씠�뒋 �젣紐�</span> <code + class="highlighter-rouge">*</code></label> + <input id="issueModifyForm1" + class="form-control input-sm" + ng-model="vm.form.title" + name="title" + required + kr-input + maxlength="300" + autocomplete="off" + autofocus + owl-auto-focus> + <small class="help-block form-text text-danger" ng-if="issueModifyForm.title.$touched && issueModifyForm.title.$error.required" translate="issue.requireIssueTitle">�씠�뒋 �젣紐⑹쓣 �엯�젰�븯�꽭�슂.</small> + </div> + + <div class="row"> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label class="issue-label"> <span translate="common.project">�봽濡쒖젥�듃</span> <code + class="highlighter-rouge">*</code></label> + <js-autocomplete-single data-input-name="project" + selected-model="vm.form.projects" + search="vm.projectName" + 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" + translation-texts="{ empty : 'common.emptyProject' }" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + <small translate="issue.initializedAssigneeCustomField">�봽濡쒖젥�듃瑜� 蹂�寃쏀븯硫� �떞�떦�옄, �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪씠 珥덇린�솕 �맗�땲�떎.</small> + </div> + </div> + + <div class="col-lg-8 bdl1"> + <div class="row"> + <div class="col-md-4"> + <div class="form-group mgb5"> + <label for="issueModifyForm4" class="issue-label"> <span translate="issue.issueType">�씠�뒋 ���엯</span> + <code + class="highlighter-rouge">*</code></label> + <select id="issueModifyForm4" + name="issueType" + class="form-control input-sm" + ng-model="vm.form.issueTypeId" + ng-change="fn.getIssueTypeCustomFields()" + ng-style="{ 'color' : fn.getOptionColor(vm.issueTypes, vm.form.issueTypeId) }" + required> + <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"> + <span translate="common.selectTarget">���긽 �꽑�깮</span> + </option> + <option ng-repeat="issueType in vm.issueTypes" + ng-style="{ 'color' : issueType.color, 'font-weight': 600 }" + value="{{issueType.id}}">�뿈 {{issueType.name}} + </option> + </select> + <small translate="issue.initializedIssueStatus">�씠�뒋 ���엯�쓣 蹂�寃쏀븷 寃쎌슦 �궗�슜�옄 �젙�쓽 �븘�뱶, �씠�뒋 �긽�깭媛� 珥덇린�솕 + �맗�땲�떎. + </small> + </div> + </div> + + <div class="col-md-4"> + <div class="form-group mb10"> + <label for="issueModifyForm2" class="issue-label"> + <span translate="common.priority">�슦�꽑 �닚�쐞</span> + <code class="highlighter-rouge">*</code> + </label> + <select id="issueModifyForm2" + name="priority" + class="form-control input-sm issue-select-label" + ng-model="vm.form.priorityId" + ng-style="{ 'color' : fn.getOptionColor(vm.priorities, vm.form.priorityId) }" + required> + <option value="" translate="common.selectTarget" ng-style="{ color : '#353535' }"> + <span translate="common.selectTarget">���긽 �꽑�깮</span> + </option> + <option ng-repeat="priority in vm.priorities" + ng-style="{ 'color' : priority.color, 'font-weight': 600 }" + value="{{priority.id}}" + translate="{{priority.name}}"> + </option> + </select> + </div> + </div> + + <div class="col-md-4"> + <div class="form-group mb10"> + <label for="issueModifyForm3" class="issue-label"> <span translate="common.importance">以묒슂�룄</span> + <code class="highlighter-rouge">*</code></label> + <select id="issueModifyForm3" + name="severity" + class="form-control input-sm issue-select-label" + ng-model="vm.form.severityId" + ng-style="{ 'color' : fn.getOptionColor(vm.severities, vm.form.severityId)}" + required> + <option value="" translate="common.selectTarget" ng-style="{ color : '#353535' }"> + <span translate="common.selectTarget">���긽 �꽑�깮</span> + </option> + <option ng-repeat="severity in vm.severities" + ng-style="{ color : severity.color, 'font-weight': 600 }" + value="{{severity.id}}" + translate="{{severity.name}}"> + </option> + </select> + </div> + </div> + </div> + </div> + </div> + + <div class="form-group mb10"> + <label class="issue-label"><span translate="common.content">�궡�슜</span></label> + <summernote + class="summernote" + lang="ko-KR" + summer-note-auto-focus + ng-model="vm.form.description" + data-editor="vm.summerNote.editor" + data-editable="vm.summerNote.editable" + on-image-upload="fn.imageUpload(files)" + target=".note-editable"></summernote> + </div> + + <div class="row"> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label class="issue-label"> <span translate="common.assignee">�떞�떦�옄</span> </label> + <js-input-autocomplete data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" + translation-texts="{ empty : 'common.emptyUser'}" + input-disabled="vm.form.projects.length == 0" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', + type : 'user', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete> + + <small translate="common.setParticipatingInProject">�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �궗�슜�옄瑜� �꽕�젙�빀�땲�떎.</small> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" + ng-click="fn.removeManager($index)">횞</span> + </span> + </div> + </div> + + <div class="form-group mgb5"> + <label for="issueModifyForm5" class="issue-label"> <span translate="common.period">湲곌컙</span> + </label> + <input id="issueModifyForm5" + type="text" + readonly + class="form-control cursor" + placeholder="{{'issue.clickToSelectDate' | translate}}" + ng-model="vm.form.startCompleteDateRange" + modal-form-auto-scroll + date-format="YYYY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + <div class="row"> + <div class="col-xs-12"> + <div id="createdWidget" class="bootstrap-datepicker"></div> + </div> + </div> + </div> + + <div class="form-group mgb5"> + <label class="issue-label"><span translate="common.attachFiles">�뙆�씪 泥⑤�</span></label> + <div class="filebox input-group"> + <input class="upload-name form-control" + placeholder="{{'users.pleaseSelectFile' | translate}}" + tabindex="-1" + disabled="disabled"> + <label for="uploadFileField"><span translate="common.selectFile">�뙆�씪�꽑�깮</span></label> + <input id="uploadFileField" + tabindex="-1" + type="file" + class="form-control" + multiple + ng-file-select="fn.onFileSelect($files)"> + </div> + <small translate="issue.attachOnlyFiles">hwp, jpg, png, txt, pptx, ppt, pdf, xlsx, xls, + docx, zip, gif, jpeg, doc, tif, bmp, wmv, avi, mp4, mkv, mov �뙆�씪留� 泥⑤��븷 �닔 �엳�뒿�땲�떎. + </small> + + <div class="select2-selection__choicediv"> + <div class="select2-selection__choice2" ng-repeat="file in vm.form.files"> + <div class="select2-selection__choice2__remove" + ng-click="fn.removeUploadFile($index)"> + 횞 + </div> + <div class="ssg-items ssg-items-blocks"> + <div class="ssg-item"> + <div class="item-icon"> + <!-- 臾몄꽌 --> + <i class="os-icon os-icon-file-text" ng-if="file.fileType == 'DOC'"></i> + <!-- 誘몃뵒�뼱 --> + <i class="os-icon os-icon-film" ng-if="file.fileType == 'MEDIA'"></i> + <!-- �씠誘몄�(�뾽濡쒕뱶 �쟾) --> + <i class="os-icon os-icon-documents-07" + ng-if="file.fileType == 'IMAGE' && !$root.isDefined(file.path)"></i> + <!-- �씠誘몄�(�뾽濡쒕뱶 �썑) --> + <span class="attached-media-w" + ng-if="file.fileType == 'IMAGE' && $root.isDefined(file.path)"> + <img ng-src="{{file.path}}"> + </span> + <!-- 湲고� --> + <i class="os-icon os-icon-ui-51" ng-if="file.fileType == 'ETC'"></i> + </div> + <div class="item-name"> + <small>{{file.name}}</small> + </div> + <div class="item-amount"> + ({{file.size/1024/1024 | number:2}} MB) + </div> + </div> + </div> + </div> + </div> + </div> + </div> + + <div class="col-lg-8 bdl1"> + <div class="row"> + <div class="col-md-12"> + <div class="form-group mgb5" ng-show="vm.form.issueCustomFields.length < 1"> + <label class="issue-label" translate="issue.notIssueTypeCustomFields">�씠�뒋 ���엯�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �뾾�뒿�땲�떎.</label> + </div> + </div> + + <div class="col-md-6" ng-repeat="issueCustomField in vm.form.issueCustomFields"> + <div class="form-group mgb5"> + <label class="issue-label">{{issueCustomField.customFieldVo.name}}</label> + + <div ng-switch on="issueCustomField.customFieldVo.customFieldType"> + <!-- 湲곕낯 �엯�젰 --> + <div ng-switch-when="INPUT"> + <input type="text" class="form-control input-sm" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-required="issueCustomField.fieldOption == '01'"> + </div> + + <!-- �떒�씪 ���젆�듃 --> + <div ng-switch-when="SINGLE_SELECT"> + <select class="form-control input-sm" + ng-required="issueCustomField.fieldOption == '01'" + ng-model="issueCustomField.useValues"> + <option value="">�꽑�깮�븯�꽭�슂.</option> + <option ng-repeat="customFieldValueVo in issueCustomField.customFieldVo.customFieldValueVos" + value="{{customFieldValueVo.value}}" + ng-selected="$root.selectOption(issueCustomField.useValues, customFieldValueVo.value)"> + {{customFieldValueVo.value}} + </option> + </select> + </div> + + <!-- 硫��떚 ���젆�듃 --> + <div ng-switch-when="MULTI_SELECT"> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="" + selected-model="issueCustomField.useValues" + extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', stopRemoveBodyEvent : true }" + options="issueCustomField.customFieldVo.customFieldValueVos"></ng-dropdown-multiselect> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()" tabindex="-1"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueModifyForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueModifyStatus.html b/src/main/webapp/views/issue/issueModifyStatus.html new file mode 100644 index 0000000..01c760e --- /dev/null +++ b/src/main/webapp/views/issue/issueModifyStatus.html @@ -0,0 +1,56 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="common.updateIssueStatus">�씠�뒋 �긽�깭 蹂�寃�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueMultiStatusModifyForm"> + <div class="form-group"> + <label for="issueMultiStatusModifyForm1"><span translate="common.updatableStatus">蹂�寃� 媛��뒫�븳 �긽�깭</span> <code + class="highlighter-rouge">*</code></label> + <select id="issueMultiStatusModifyForm1" + class="form-control" + issue-status-auto-focus + list="vm.issueStatusList" + required + ng-model="vm.form.issueStatusId"> + <option value="" translate="common.selectTarget">���긽 �꽑�깮</option> + <option value="{{issueStatus.id}}" ng-repeat="issueStatus in vm.issueStatusList"> + {{issueStatus.name}} + </option> + </select> + <div class="help-block form-text text-danger" ng-if="vm.issueStatusList.length < 1" + translate="common.noUpdatedStatus"> + 蹂�寃쏀븷 �닔 �엳�뒗 �긽�깭媛� �뾾�뒿�땲�떎. + </div> + </div> + + <div class="form-group"> + <label for="issueMultiStatusModifyForm2"><span translate="common.changeReason">蹂�寃� �궗�쑀</span> </label> + <input class="form-control input-sm" + id="issueMultiStatusModifyForm2" + kr-input + autocomplete="off" + maxlength="300" + ng-model="vm.form.comment" + type="text"> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueMultiStatusModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueMultiStatusModifyForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueModifyUser.html b/src/main/webapp/views/issue/issueModifyUser.html new file mode 100644 index 0000000..80fab2f --- /dev/null +++ b/src/main/webapp/views/issue/issueModifyUser.html @@ -0,0 +1,51 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.updateIssueUser">�씠�뒋 �떞�떦�옄 蹂�寃�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueUserModifyForm"> + <div class="form-group"> + <div class="form-group mgb5"> + <label class="issue-label"> <span translate="common.assignee">�떞�떦�옄</span> </label> + <js-input-autocomplete data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" + translation-texts="{ empty : 'common.emptyUser'}" + input-disabled="vm.form.projects.length == 0" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', + type : 'user', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete> + + <small translate="common.setParticipatingInProject">�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �궗�슜�옄瑜� �꽕�젙�빀�땲�떎.</small> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" + ng-click="fn.removeManager($index)">횞</span> + </span> + </div> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueMultiStatusModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueMultiStatusModifyForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueReservation.html b/src/main/webapp/views/issue/issueReservation.html new file mode 100644 index 0000000..67b2875 --- /dev/null +++ b/src/main/webapp/views/issue/issueReservation.html @@ -0,0 +1,135 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.issueReservation">�씠�뒋 諛쒖깮 �삁�빟</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueReservationForm"> + <div class="form-group"> + <label for="issueReservationForm1"><span translate="issue.issueReservationType">�씠�뒋 諛쒖깮 �쑀�삎</span> </label> + <select id="issueReservationForm1" class="form-control" ng-model="vm.form.issueReservationType" + ng-change="fn.initReservation()"> + <option value="" translate="common.choose">�꽑�깮�븯�꽭�슂.</option> + <option value="DAY" translate="issue.everyDay">留ㅼ씪</option> + <option value="WEEK" translate="issue.everyWeek">留ㅼ<</option> + <option value="MONTH" translate="issue.everyMonth">留ㅼ썡</option> + <option value="YEAR" translate="issue.everyYear">留ㅻ뀈</option> + </select> + <small translate="issue.issueReservationDescription">�씠�뒋瑜� �듅�젙�씪�뿉 �떎�떆 諛쒖깮�떆�궗 �닔 �엳�뒿�땲�떎. <br>諛섎났�쟻�쑝濡� �닔�뻾�빐�빞 �븷 �씠�뒋媛� �엳�쓣 �븣 + �쑀�슜�븯寃� �궗�슜�븷 �닔 �엳�뒿�땲�떎. + </small> + </div> + + <!-- 留ㅼ< �씪 �븣 --> + <div class="form-group" ng-if="vm.form.issueReservationType == 'WEEK'"> + <label for="issueReservationForm2"><span translate="issue.scheduledDate">�씠�뒋 諛쒖깮 �삁�젙�씪</span> <code + class="highlighter-rouge">*</code></label> + <select class="form-control" + id="issueReservationForm2" + required + ng-model="vm.form.reservation"> + <option value="" translate="common.choose">�꽑�깮�븯�꽭�슂.</option> + <option value="1" translate="issue.sunday">�씪</option> + <option value="2" translate="issue.monday">�썡</option> + <option value="3" translate="issue.tuesday">�솕</option> + <option value="4" translate="issue.wednesday">�닔</option> + <option value="5" translate="issue.thursday">紐�</option> + <option value="6" translate="issue.friday">湲�</option> + <option value="7" translate="issue.saturday">�넗</option> + </select> + </div> + + <!-- 留ㅼ썡 �씪 �븣 --> + <div class="form-group" ng-if="vm.form.issueReservationType == 'MONTH'"> + <label for="issueReservationForm3"><span translate="issue.scheduledDate">�씠�뒋 諛쒖깮 �삁�젙�씪</span> + <code class="highlighter-rouge">*</code> + </label> + <div class="input-group"> + <input class="form-control" + type="text" + name="reservation" + id="issueReservationForm3" + ng-pattern="/^[0-9]{0,2}$/" + required + autocomplete="off" + maxlength="2" + ng-model="vm.form.reservation"> + <div class="input-group-prepend"> + <button class="btn btn-navy" style="cursor:default;"><span translate="common.d">�씪</span> + </button> + </div> + </div> + <div ng-show="issueReservationForm.reservation.$error.pattern" class="help-block form-text text-danger" + translate="issue.enterOnlyNumbers"> + �닽�옄留� �엯�젰 媛��뒫 �빀�땲�떎. + </div> + </div> + + <!-- 留ㅻ뀈 �씪�븣 --> + <div class="form-group" ng-if="vm.form.issueReservationType == 'YEAR'"> + <label><span translate="issue.scheduledDate">�씠�뒋 諛쒖깮 �삁�젙�씪</span> + <code class="highlighter-rouge">*</code> + </label> + <div class="input-group"> + <select class="form-control width-60-p" + required + ng-model="vm.form.reservationMonth"> + <option value="" translate="common.select">�꽑�깮�븯�꽭�슂.</option> + <option value="1" translate="issue.january">1�썡</option> + <option value="2" translate="issue.february">2�썡</option> + <option value="3" translate="issue.march">3�썡</option> + <option value="4" translate="issue.april">4�썡</option> + <option value="5" translate="issue.may">5�썡</option> + <option value="6" translate="issue.june">6�썡</option> + <option value="7" translate="issue.july">7�썡</option> + <option value="8" translate="issue.august">8�썡</option> + <option value="9" translate="issue.september">9�썡</option> + <option value="10" translate="issue.october">10�썡</option> + <option value="11" translate="issue.november">11�썡</option> + <option value="12" translate="issue.december">12�썡</option> + </select> + + <div class="input-group-prepend"> + <button class="btn btn-navy" style="cursor:default;"><span translate="common.m">�썡</span> + </button> + </div> + <input class="form-control" + type="text" + ng-pattern="/^[0-9]{0,2}$/" + required + name="reservationDay" + autocomplete="off" + maxlength="2" + ng-model="vm.form.reservationDay"> + + <div class="input-group-prepend"> + <button class="btn btn-navy" style="cursor:default;"><span translate="common.d">�씪</span> + </button> + </div> + </div> + <div ng-show="issueReservationForm.reservationDay.$error.pattern" + class="help-block form-text text-danger" translate="issue.enterOnlyNumbers"> + �닽�옄留� �엯�젰 媛��뒫 �빀�땲�떎 + </div> + </div> + + + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueReservationForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueReservationForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueSendMail.html b/src/main/webapp/views/issue/issueSendMail.html new file mode 100644 index 0000000..d9998ff --- /dev/null +++ b/src/main/webapp/views/issue/issueSendMail.html @@ -0,0 +1,47 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.selectSendIssueMail">�씠�뒋 硫붿씪 諛쒖넚 ���긽�옄 �꽑�깮</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueSendForm"> + <div class="form-group"> + <small translate="issue.sendIssueSelectedUsers">�봽濡쒖젥�듃�뿉 李몄뿬�븯怨� �엳�뒗 �떎瑜� �궗�슜�옄�뿉寃� �씠�뒋 �젙蹂대�� 蹂대깄�땲�떎.</small> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" + ng-click="fn.removeManager($index)">횞</span> + </span> + </div> + <js-input-autocomplete data-input-name="users" + owl-auto-focus + target=".auto-complete-input" + selected-model="vm.form.users" + search="vm.userName" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" + translation-texts="{ empty : 'common.emptyUser'}" + input-disabled="vm.form.projects.length == 0" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', + type : 'user', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + ng-disabled="fn.formCheck(issueSendForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="issue.sendMail">�씠硫붿씪 諛쒖넚</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueVersionView.html b/src/main/webapp/views/issue/issueVersionView.html new file mode 100644 index 0000000..798628c --- /dev/null +++ b/src/main/webapp/views/issue/issueVersionView.html @@ -0,0 +1,19 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.changedHistory">�씠�뒋 蹂�寃� �씠�젰 �긽�꽭�젙蹂�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <js-html-diff issue-version="vm.issueVersion"></js-html-diff> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.close">�떕湲�</span></button> + </div> +</div> diff --git a/src/main/webapp/views/issueStatus/issueStatusAdd.html b/src/main/webapp/views/issueStatus/issueStatusAdd.html new file mode 100644 index 0000000..6e1fe46 --- /dev/null +++ b/src/main/webapp/views/issueStatus/issueStatusAdd.html @@ -0,0 +1,72 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementStatus.createIssueStatus">�씠�뒋 �긽�깭 留뚮뱾湲�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueStatusAddForm"> + <div class="form-group"> + <label for="issueStatusAddForm1"><span translate="managementStatus.issueStatusName">�씠�뒋 �긽�깭 紐�</span> <code class="highlighter-rouge">*</code></label> + <input id="issueStatusAddForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + maxlength="20" + ng-model="vm.form.name" + ng-maxlength="20" + required> + <small ng-show="issueStatusAddForm.name.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo20Characters"> + 理쒕� 20湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <small translate="managementStatus.limitNameToSpecialCharacters">�씠�뒋 �긽�깭 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label for="issueStatusAddForm2"><span translate="managementStatus.statusProperties">�긽�깭 �냽�꽦</span> <code class="highlighter-rouge">*</code></label> + <select id="issueStatusAddForm2" class="form-control" ng-model="vm.form.issueStatusType"> + <option value="READY" translate="common.wait">��湲�</option> + <option value="OPEN" translate="common.progress">吏꾪뻾</option> + <option value="CLOSE" translate="common.end">醫낅즺</option> + </select> + <div class="form-text text-danger" translate="managementStatus.updateNotStatusProperties"> + �깮�꽦 �썑�뿉�뒗 �긽�깭 �냽�꽦�쓣 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎. + </div> + </div> + + <div class="form-group"> + <label for="issueStatusAddForm3"><span translate="common.color">�깋�긽</span> <code class="highlighter-rouge">*</code></label> + <div class="input-group"> + <input id="issueStatusAddForm3" + type="text" + name="color" + class="form-control" + disabled + ng-model="vm.form.color" + required> + <div color-palette-picker target="vm.form.color"> + <span class="color-picker"></span> + </div> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueStatusAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueStatusAddForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issueStatus/issueStatusList.html b/src/main/webapp/views/issueStatus/issueStatusList.html new file mode 100644 index 0000000..012c43a --- /dev/null +++ b/src/main/webapp/views/issueStatus/issueStatusList.html @@ -0,0 +1,129 @@ +<div class="row"> + <div class="col-sm-12"> + <div class="element-wrapper"> + <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_STATUS')"> + <button ng-click="fn.add()" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span + translate="managementStatus.createStatus">�긽�깭 留뚮뱾湲�</span> + </button> + </div> + <h6 class="element-header" translate="managementStatus.managementStatus"> + �긽�깭 愿�由� + </h6> + + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="issueStatusListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label for="issueStatusListForm1"><span + translate="managementStatus.issueStatusName">�씠�뒋 �긽�깭 紐�</span></label> + <input type="text" + name="name" + id="issueStatusListForm1" + autocomplete="off" + owl-auto-focus + kr-input + maxlength="20" + class="form-control" + ng-model="vm.search.name" + placeholder="{{'managementStatus.pleaseEnterIssueStatusName' | translate}}"> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label><span + translate="managementStatus.statusProperties">�긽�깭 �냽�꽦</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="issueStatusTypes" + selected-model="vm.search.issueStatusTypes" + extra-settings="{ stringTypeOption : true }" + options="vm.options.issueStatusTypes"></ng-dropdown-multiselect> + </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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </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_ISSUE_STATUS')"> + <form class="form-inline justify-content-sm-end pull-right" method="post" + action="/issueStatus/downloadExcel" + name="issueStatusListForm"> + <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="issueStatusListForm" + 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="<" + next-text=">" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/issueStatus/issueStatusModify.html b/src/main/webapp/views/issueStatus/issueStatusModify.html new file mode 100644 index 0000000..597a55e --- /dev/null +++ b/src/main/webapp/views/issueStatus/issueStatusModify.html @@ -0,0 +1,76 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementStatus.modifyIssueStatus">�씠�뒋 �긽�깭 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueStatusModifyForm"> + <div class="form-group"> + <label for="issueStatusModifyForm1"><span translate="managementStatus.issueStatusName">�씠�뒋 �긽�깭 紐�</span> <code class="highlighter-rouge">*</code></label> + <input id="issueStatusModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + autocomplete="off" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + ng-model="vm.form.name" + maxlength="20" + kr-input + ng-maxlength="20" + required> + <small ng-show="issueStatusModifyForm.name.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo20Characters"> + 理쒕� 20湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <div class="help-block form-text text-danger" ng-show="vm.form.useYn" translate="managementStatus.useInTheWorkflow"> + �썙�겕�뵆濡쒖슦�뿉�꽌 �씠�뒋 �긽�깭媛� �궗�슜以묒엯�땲�떎. �씠由� 蹂�寃쎌떆 �씠�뒋 �긽�깭瑜� �궗�슜�븯�뒗 紐⑤뱺 �썙�겕�뵆濡쒖슦�뿉 �씠�뒋 �긽�깭 紐낆씠 蹂�寃쎈맗�땲�떎. + </div> + <small translate="managementStatus.limitNameToSpecialCharacters">�씠�뒋 �긽�깭 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label for="issueStatusModifyForm2"><span translate="managementStatus.statusProperties">�긽�깭 �냽�꽦</span> <code class="highlighter-rouge">*</code></label> + <select id="issueStatusModifyForm2" + class="form-control" + ng-model="vm.form.issueStatusType" + disabled> + <option value="READY" translate="common.wait">��湲�</option> + <option value="OPEN" translate="common.progress">吏꾪뻾</option> + <option value="CLOSE" translate="common.end">醫낅즺</option> + </select> + <div class="form-text text-danger" translate="managementStatus.builtInIssueStatus">�긽�깭 �냽�꽦�쓣 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.</div> + </div> + + <div class="form-group"> + <label for="issueStatusModifyForm3"><span translate="common.color">�깋�긽</span> <code class="highlighter-rouge">*</code></label> + <div class="input-group"> + <input id="issueStatusModifyForm3" + type="text" + name="color" + class="form-control" + disabled + ng-model="vm.form.color" + required> + <div color-palette-picker target="vm.form.color"> + <span class="color-picker"></span> + </div> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueStatusModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueStatusModifyForm.$invalid)" + ng-click="fn.formSubmit()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_STATUS')"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issueType/issueTypeAdd.html b/src/main/webapp/views/issueType/issueTypeAdd.html new file mode 100644 index 0000000..b4896ce --- /dev/null +++ b/src/main/webapp/views/issueType/issueTypeAdd.html @@ -0,0 +1,92 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementType.createIssueType">�씠�뒋 ���엯 留뚮뱾湲�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueTypeAddForm"> + <div class="form-group"> + <label for="issueTypeAddForm1"><span translate="managementType.issueTypeName">�씠�뒋 ���엯 紐�</span> <code class="highlighter-rouge">*</code></label> + <input id="issueTypeAddForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.name" + ng-maxlength="15" + maxlength="15" + required> + <small ng-show="issueTypeAddForm.name.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo15Characters"> + 理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <small translate="managementType.limitNameToSpecialCharacters">�씠�뒋 ���엯 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label><span translate="common.workflow">�썙�겕�뵆濡쒖슦</span> <code class="highlighter-rouge">*</code></label> + <js-autocomplete-single data-input-name="workflow" + selected-model="vm.form.workflows" + search="vm.workflowName" + source="fn.getWorkflowList(vm.workflowName, vm.form.workflows, vm.autoCompletePage.workflow.page, fn.getWorkflowListCallBack)" + page="vm.autoCompletePage.workflow.page" + total-page="vm.autoCompletePage.workflow.totalPage" + input-disabled="false" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 200, autoResize : false }"></js-autocomplete-single> + </div> + + <div class="form-group"> + <label for="issueTypeAddForm2"><span translate="common.color">�깋�긽</span> <code class="highlighter-rouge">*</code></label> + <div class="input-group"> + <input id="issueTypeAddForm2" + type="text" + name="color" + class="form-control" + disabled + ng-model="vm.form.color" + required> + <div color-palette-picker target="vm.form.color"> + <span class="color-picker"> + <a class="" data-toggle="dropdown" ng-style="{ color : vm.form.color }" + modal-form-auto-scroll><i class="fa fa-paint-brush fa-lg"></i></a> + <ul class="dropdown-menu dropdown-menu-right"> + <li></li> + </ul> + </span> + </div> + </div> + </div> + + <div class="form-group"> + <label><span translate="managementType.template">�뀥�뵆由�</span></label> + <summernote + class="summernote" + lang="ko-KR" + config="vm.options" + summer-note-auto-focus + ng-model="vm.form.description" + target=".note-editable"></summernote> + <small class="form-text" translate="managementType.registerAnIssueTemplate"> + �뀥�뵆由우쓣 誘몃━ �옉�꽦�븯�뿬 �씠�뒋瑜� �벑濡앺븷 �븣 �궡�슜 �븘�뱶�뿉 �궗�슜�븷 �닔 �엳�뒿�땲�떎. + </small> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueTypeAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueTypeAddForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issueType/issueTypeList.html b/src/main/webapp/views/issueType/issueTypeList.html new file mode 100644 index 0000000..7621cf9 --- /dev/null +++ b/src/main/webapp/views/issueType/issueTypeList.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_ISSUE_TYPE')"> + <button ng-click="fn.add()" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span translate="managementType.createIssueType">�씠�뒋 ���엯 留뚮뱾湲�</span> + </button> + </div> + <h6 class="element-header" translate="managementType.managementIssueType"> + �씠�뒋 ���엯 愿�由� + </h6> + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="issueTypeForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label for="issueTypeForm1"><span translate="managementType.issueTypeName">�씠�뒋 ���엯 紐�</span></label> + <input type="text" + name="name" + id="issueTypeForm1" + autocomplete="off" + owl-auto-focus + kr-input + maxlength="15" + class="form-control" + ng-model="vm.search.name" placeholder="{{'managementType.enterIssueTypeName' | translate}}"> + </div> + </div> + + <div class="col-lg-8"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </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_ISSUE_TYPE')"> + <form class="form-inline justify-content-sm-end pull-right" method="post" + action="/issueType/downloadExcel" + name="issueTypeListForm"> + <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="issueTypeListForm" 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="<" + next-text=">" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/issueType/issueTypeModify.html b/src/main/webapp/views/issueType/issueTypeModify.html new file mode 100644 index 0000000..cfeb4e4 --- /dev/null +++ b/src/main/webapp/views/issueType/issueTypeModify.html @@ -0,0 +1,95 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementType.modifyIssueType">�씠�뒋 ���엯 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueTypeModifyForm"> + <div class="form-group"> + <label for="issueTypeModifyForm1"><span translate="managementType.issueTypeName">�씠�뒋 ���엯 紐�</span> <code class="highlighter-rouge">*</code></label> + <input id="issueTypeModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + autocomplete="off" + ng-model="vm.form.name" + ng-maxlength="15" + maxlength="15" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + required> + <small ng-show="issueTypeModifyForm.name.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo15Characters"> + 理쒕� 15湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <small translate="managementType.limitNameToSpecialCharacters">�씠�뒋 ���엯 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label><span translate="common.workflow">�썙�겕�뵆濡쒖슦</span> <code class="highlighter-rouge">*</code></label> + <js-autocomplete-single data-input-name="workflow" + selected-model="vm.form.workflows" + search="vm.workflowName" + source="fn.getWorkflowList(vm.workflowName, vm.form.workflows, vm.autoCompletePage.workflow.page, fn.getWorkflowListCallBack)" + page="vm.autoCompletePage.workflow.page" + total-page="vm.autoCompletePage.workflow.totalPage" + input-disabled="false" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 200, autoResize : false }"></js-autocomplete-single> + <div class="help-block form-text text-danger" translate="managementType.updateWorkflowIssueStatusStandby"> + �썙�겕�뵆濡쒖슦瑜� 蹂�寃쏀븷 寃쎌슦 蹂�寃쏀븯�젮�뒗 �썙�겕�뵆濡쒖슦�뿉 �씠�뒋 �긽�깭媛� 議댁옱�븯吏� �븡�쑝硫� �씠�뒋�쓽 �긽�깭媛� �긽�깭 �냽�꽦 '��湲�' �씤 �긽�깭濡� 蹂�寃쎈맗�땲�떎. + </div> + </div> + + <div class="form-group"> + <label for="issueTypeModifyForm2"><span translate="common.color">�깋�긽</span> <code class="highlighter-rouge">*</code></label> + <div class="input-group"> + <input id="issueTypeModifyForm2" + type="text" + name="color" + class="form-control" + disabled + ng-model="vm.form.color" + required> + <div color-palette-picker target="vm.form.color"> + <span class="color-picker"> + <a class="" data-toggle="dropdown" ng-style="{ color : vm.form.color }" + modal-form-auto-scroll><i class="fa fa-paint-brush fa-lg"></i></a> + <ul class="dropdown-menu dropdown-menu-right"> + <li></li> + </ul> + </span> + </div> + </div> + </div> + + <div class="form-group"> + <label><span translate="managementType.template">�뀥�뵆由�</span></label> + <summernote + class="summernote" + lang="ko-KR" + config="vm.options" + summer-note-auto-focus + ng-model="vm.form.description" + target=".note-editable"></summernote> + <small class="form-text" translate="managementType.registerAnIssueTemplate"> + �뀥�뵆由우쓣 誘몃━ �옉�꽦�븯�뿬 �씠�뒋瑜� �벑濡앺븷 �븣 �궡�슜 �븘�뱶�뿉 �궗�슜�븷 �닔 �엳�뒿�땲�떎. + </small> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueTypeModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueTypeModifyForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_ISSUE_TYPE')"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/login/facebook.html b/src/main/webapp/views/login/facebook.html new file mode 100644 index 0000000..add1f12 --- /dev/null +++ b/src/main/webapp/views/login/facebook.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>�럹�씠�뒪遺� �뿰�룞</title> +</head> +<body> +<script> + location.href = "https://www.facebook.com/v3.1/dialog/oauth?" + + "client_id=1967163700251105&" + + "redirect_uri=https%3A%2F%2Fwww.owlsolution.io%2FfacebookOAuth2CallBack&" + + "state=state_parameter_owl_its_value"; +</script> +</body> +</html> \ No newline at end of file diff --git a/src/main/webapp/views/login/google.html b/src/main/webapp/views/login/google.html new file mode 100644 index 0000000..2a87056 --- /dev/null +++ b/src/main/webapp/views/login/google.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>援ш� �뿰�룞</title> +</head> +<body> +<script> + /*location.href = "https://accounts.google.com/o/oauth2/v2/auth?" + + "scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.login%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.me%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&" + + "access_type=offline&" + + "include_granted_scopes=true&" + + "state=state_parameter_owl_its_value&" + + "redirect_uri=http%3A%2F%2Flocalhost%3A8080%2FgoogleOAuth2CallBack&" + + "response_type=code&" + + "client_id=545115864261-lumkhr0qhei643koiva5b130410s032e.apps.googleusercontent.com";*/ + location.href = "https://accounts.google.com/o/oauth2/v2/auth?" + + "scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.login%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.me%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&" + + "access_type=offline&" + + "include_granted_scopes=true&" + + "state=state_parameter_owl_its_value&" + + "redirect_uri=https%3A%2F%2Fowlsolution.io%2FgoogleOAuth2CallBack&" + + "response_type=code&" + + "client_id=555830465708-9d50teb7cqgovfp9pqf3ouc4a3lc215f.apps.googleusercontent.com"; +</script> +</body> +</html> diff --git a/src/main/webapp/views/login/kakao.html b/src/main/webapp/views/login/kakao.html new file mode 100644 index 0000000..3c12a2f --- /dev/null +++ b/src/main/webapp/views/login/kakao.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>移댁뭅�삤 �뿰�룞</title> +</head> +<body> +<script> + /*location.href = "https://kauth.kakao.com/oauth/authorize?" + + "client_id=8db70e7979edc86b76c7b1d33312282d&" + + "redirect_uri=http%3A%2F%2Flocalhost%3A8080%2FkakaoOAuth2CallBack&" + + "response_type=code&" + + "state=state_parameter_owl_its_value";*/ + + location.href = "https://kauth.kakao.com/oauth/authorize?" + + "client_id=13d56a63b9b9b1003d779261ce1651e3&" + + "redirect_uri=https%3A%2F%2Fwww.owlsolution.io%2FkakaoOAuth2CallBack&" + + "response_type=code&" + + "state=state_parameter_owl_its_value"; +</script> +</body> +</html> diff --git a/src/main/webapp/views/login/login.html b/src/main/webapp/views/login/login.html new file mode 100644 index 0000000..a1f510e --- /dev/null +++ b/src/main/webapp/views/login/login.html @@ -0,0 +1,137 @@ +<div class="content-i"> + <div class="content-box"> + <div class="row mt-30"> + <div class="m-0"> + <div class="flex"> + <div class="loginbackdiv"> + <div class="loginback"> + <img src="/assets/images/loginlogo.png"/> + <div class="stardiv"> + <div class="stars"></div> + <div class="twinkling"></div> + </div> + <div class="bgdiv"> + </div> + <div class="login-circle"> + <div class="circle1"></div> + <div class="circle2"></div> + <div class="circle3"></div> + </div> + </div> + </div> + <div class="logincont"> + <div class="auth-box-w"> + <h3 class="auth-header"> + <img alt="" src="/assets/images/logineyes.png"> + LOG IN + </h3> + <form role="form" ng-enter="fn.login()" name="loginForm"> + <div class="form-group"> + <label for="loginForm1" class="bold"><span + translate="common.email">�씠硫붿씪</span></label> + <input id="loginForm1" + type="text" + class="form-control" + placeholder="{{'users.enterAnEmail' | translate}}" + ng-model="vm.form.account" + style="ime-mode:inactive;" + maxlength="50" + kr-input + ng-keydown="vm.authenticationError = false" + autofocus + owl-auto-focus + autocomplete="off"> + <div class="pre-icon os-icon os-icon-user-male-circle"></div> + </div> + + <div class="form-group"> + <label for="loginForm2" class="bold"><span + translate="common.password">鍮꾨�踰덊샇</span></label> + <input id="loginForm2" + type="password" + class="form-control" + placeholder="{{'users.enterAnPassword' | translate}}" + ng-model="vm.form.password" + ng-keydown="vm.authenticationError = false" + kr-input + maxlength="20" + autocomplete="off"> + <div class="pre-icon os-icon os-icon-fingerprint"></div> + + <div class="help-block form-text text-danger" ng-show="vm.authenticationError" + translate="users.loginFailed"> + 濡쒓렇�씤�뿉 �떎�뙣�븯���뒿�땲�떎. + </div> + </div> + <div class="buttons-w"> + <div class="form-check-inline mb-10"> + <label class="form-check-label cursor"> + <input class="form-check-input login-email-save" type="checkbox" ng-model="vm.form.rememberMe"> + <span translate="users.rememberMe">濡쒓렇�씤 �긽�깭 �쑀吏�</span> + </label> + </div> + <a class="pull-right btn mb-10 underline fc-blue" + ng-click="fn.searchPassword()"><span translate="users.findPassword">鍮꾨�踰덊샇 + 李얘린</span></a> + + <button class="btn btn-block btn-xlg btn-navy" ng-click="fn.login()" + ng-disabled="fn.formCheck()"> + <span translate="users.login">濡쒓렇�씤</span> + </button> + + <div class="form-group mt-30"> + <!-- + <h6 translate="users.logInSocialAccount">�냼�뀥 怨꾩젙�쑝濡� 濡쒓렇�씤..</h6> + <div class="btn-google" ng-click="fn.addSocial('google')"> + <span class="icon"></span> + <span class="label">Log in with Google</span> + </div> + <div class="btn-naver" ng-click="fn.addSocial('naver')"> + <span class="icon"></span> + <span class="label">Log in with NAVER</span> + </div> + <div class="btn-kakao" ng-click="fn.addSocial('kakao')"> + <span class="icon"></span> + <span class="label">Log in with Kakao</span> + </div> + --> + <!--<div class="btn-facebook" ng-click="fn.addSocial('facebook')"> + <span class="icon"></span> + <span class="label">Log in with Facebook</span> + </div>--> + </div> + </div> + <span translate="users.createAccountNow">吏�湲� 怨꾩젙�쓣 留뚮뱾�뼱 蹂댁꽭�슂!</span> + <button class="btn btn-primary" + ui-sref="join" + translate="users.join"> �쉶�썝媛��엯 + </button> + + </form> + </div> + <div class="side-menu-magic" style="width:100%;height:100%;"> + <!--<embed style="width:100%;height:100%;" type="text/html" src="../../assets/clientWeb/clientnotice.html">--> + </div> + </div> + </div> + <!-- + <div class="footer-s" translate="common.companyInformation2" > + (二�)���씠利덉뒪�넠 <span>|</span> �궗�뾽�옄 �벑濡앸쾲�샇: 220-87-50221 <span>|</span> ���몴�씠�궗 �씠�쁺�꽍<br/> + 蹂몄궗 : �꽌�슱�듅蹂꾩떆 �꽌珥덇뎄 媛뺣궓��濡� 291 �궓媛뺣퉴�뵫 6痢� <span>|</span> <span>|</span> E-mail: <a + href="mailto:supportowl@wisestone.kr">supportowl@wisestone.kr </a><br/> + <small>CopyRight WISESTONE All rights reserved.</small> + </div> + --> + <div> + <button class="btn btn-light" + ui-sref="superJoin" + translate="users.workspaceJoin"> �쉶�썝媛��엯 + </button> + </div> + <div class="footer-s" > + <small>CopyRight WISESTONE All rights reserved.</small> + </div> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/login/naver.html b/src/main/webapp/views/login/naver.html new file mode 100644 index 0000000..060e08f --- /dev/null +++ b/src/main/webapp/views/login/naver.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>�꽕�씠踰� �뿰�룞</title> +</head> +<body> +<script> + location.href = "https://nid.naver.com/oauth2.0/authorize?" + + "client_id=Trl8vV30ctsUDlgGoWqZ&"+ + "response_type=code&" + + "redirect_uri=https%3A%2F%2Fowlsolution.io%2FnaverOAuth2CallBack&" + + "state=state_parameter_owl_its_value"; +</script> +</body> +</html> \ No newline at end of file diff --git a/src/main/webapp/views/login/socialConnect.html b/src/main/webapp/views/login/socialConnect.html new file mode 100644 index 0000000..f690771 --- /dev/null +++ b/src/main/webapp/views/login/socialConnect.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>CONNECT-FAIL</title> + <link type="text/css" rel="stylesheet" href="/assets/styles/main.css"> +</head> +<body class="full-screen"> +<div class="withdraw-acc all-wrapper"> + <h3><i class="os-icon os-icon-cancel-circle"></i></h3> + <h4>�냼�뀥濡� 媛��엯�븳 �젙蹂닿� �뾾�뒿�땲�떎.</h4> + <img src="/assets/images/loginlogo.png"> +</div> + +<script> + window.close(); + alert("湲곗〈�뿉 媛��엯�븯�떊 怨꾩젙�� �꽑�깮�븳 �냼�뀥濡� 媛��엯�븳 �젙蹂닿� �뾾�뒿�땲�떎. �떎�떆 �솗�씤 �썑 濡쒓렇�씤 �빐二쇱꽭�슂."); +</script> +</body> +</html> \ No newline at end of file diff --git a/src/main/webapp/views/login/socialFail.html b/src/main/webapp/views/login/socialFail.html new file mode 100644 index 0000000..37c7907 --- /dev/null +++ b/src/main/webapp/views/login/socialFail.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>LOGIN-FAIL</title> + <link type="text/css" rel="stylesheet" href="/assets/styles/main.css"> +</head> +<body class="full-screen"> +<div class="withdraw-acc all-wrapper"> + <h3><i class="os-icon os-icon-cancel-circle"></i></h3> + <h4>�냼�뀥 �뿰�룞�쓣 �떎�뙣�뻽�뒿�땲�떎.</h4> + <img src="/assets/images/loginlogo.png"> +</div> +<script> + alert("�냼�뀥 �뿰�룞�쓣 �떎�뙣�뻽�뒿�땲�떎. �쉶�썝 媛��엯�쑝濡� 吏꾪뻾 �빐二쇱꽭�슂."); +</script> +</body> +</html> \ No newline at end of file diff --git a/src/main/webapp/views/login/socialFailNotEmail.html b/src/main/webapp/views/login/socialFailNotEmail.html new file mode 100644 index 0000000..b159993 --- /dev/null +++ b/src/main/webapp/views/login/socialFailNotEmail.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>LOGIN-FAIL</title> + <link type="text/css" rel="stylesheet" href="/assets/styles/main.css"> +</head> +<body class="full-screen"> +<div class="withdraw-acc all-wrapper"> + <h3><i class="os-icon os-icon-cancel-circle"></i></h3> + <h4>�냼�뀥 �뿰�룞�쓣 �떎�뙣�뻽�뒿�땲�떎.</h4> + <img src="/assets/images/loginlogo.png"> +</div> +<script> + alert("�씠硫붿씪 �젙蹂대�� �젣怨듯븯吏� �븡�쑝硫� �쉶�썝 媛��엯�쓣 �븷 �닔 �뾾�뒿�땲�떎. �빐�떦 �냼�뀥�뿉�꽌 �뿰寃� �젙蹂대�� �빐�젣�븳 �썑 �떎�떆 �뿰�룞�쓣 吏꾪뻾�빐二쇱꽭�슂."); + window.close(); +</script> +</body> +</html> \ No newline at end of file diff --git a/src/main/webapp/views/login/socialOk.html b/src/main/webapp/views/login/socialOk.html new file mode 100644 index 0000000..6f0f4af --- /dev/null +++ b/src/main/webapp/views/login/socialOk.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>CONNECT-SUCCESS</title> + <link type="text/css" rel="stylesheet" href="/assets/styles/main.css"> +</head> +<body class="full-screen"> +<div class="withdraw-acc all-wrapper"> + <h3><i class="os-icon os-icon-cancel-circle"></i></h3> + <h4>�냼�뀥 �뿰�룞�씠 �셿猷뚮릺�뿀�뒿�땲�떎.</h4> + <img src="/assets/images/loginlogo.png"> +</div> + +<script> + opener.parent.location = "/#/dashboards/dashboard"; + window.close(); +</script> +</body> +</html> \ No newline at end of file diff --git a/src/main/webapp/views/login/terms.html b/src/main/webapp/views/login/terms.html new file mode 100644 index 0000000..36eb7b1 --- /dev/null +++ b/src/main/webapp/views/login/terms.html @@ -0,0 +1,10 @@ +<div class="row"> + <div class="col-sm-12"> + <div class="form-group"> + <label>媛쒖씤�젙蹂� 泥섎━諛⑹묠1 <code class="highlighter-rouge">*</code></label> + <div class="col-sm-12"> + <embed style="width:100%;height:100%;" type="text/html" src="../assests/1client-terms.html/"> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/login/terms_origin.html b/src/main/webapp/views/login/terms_origin.html new file mode 100644 index 0000000..ba58b0e --- /dev/null +++ b/src/main/webapp/views/login/terms_origin.html @@ -0,0 +1,162 @@ +<div class="row"> + <div class="col-sm-12"> + <div class="form-group"> + <label>媛쒖씤�젙蹂� 泥섎━諛⑹묠 <code class="highlighter-rouge">*</code></label> + <div class="col-sm-12"> + 媛쒖씤�젙蹂� 泥섎━諛⑹묠<br><br> + 二쇱떇�쉶�궗 ���씠利덉뒪�넠(�씠�븯 �쒗쉶�궗��)�� 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� 留ㅼ슦 以묒슂�떆�븯硫�, �젙蹂댄넻�떊留� �씠�슜珥됱쭊 諛� �젙蹂대낫�샇�뿉 愿��븳 踰뺣쪧�쓣 以��닔�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 怨듦컻瑜� �넻�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂닿� + �뼱�뼚�븳 紐⑹쟻怨� 諛⑹떇�쑝濡� �씠�슜�릺怨� �엳�쑝硫� 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 �뼱�뼚�븳 議곗튂媛� 痍⑦빐吏�怨� �엳�뒗吏�瑜� �븣�젮 �뱶由쎈땲�떎. 蹂� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 愿��젴 踰뺣졊�쓽 媛쒖젙�씠�굹 �쉶�궗 �궡遺�諛⑹묠�뿉 �쓽�빐 蹂�寃쎈맆 �닔 �엳�뒿�땲�떎. 蹂�寃쎈맆 �떆�뿉�뒗 + �뼵�젣�뱺吏� 洹� �궡�슜怨� �씠�쑀瑜� �돺寃� �븣 �닔 �엳�룄濡� 怨듭��궗�빆�쓣 �넻�븯�뿬 �븣�젮�뱶由ш쿋�뒿�땲�떎.<br> + + �젣 1議� (媛쒖씤�젙蹂댁쓽 �닔吏묓빆紐� 諛� �씠�슜紐⑹쟻)<br> + 怨좉컼�씠 �룞�쓽�븳 �씠�슜�빟愿��뿉 �뵲�씪 OWL �꽌鍮꾩뒪(OWL solution �궗�씠�듃 諛� OWL ITS �씠�븯 �쏰WL �꽌鍮꾩뒪��)�쓽 �떎�뼇�븳 湲곕뒫�쓣 �젣怨듯븯湲� �쐞�빐�꽌, �쉶�궗�뒗 怨좉컼�떂�쑝濡쒕��꽣 �떎�쓬怨� 媛숈� 媛쒖씤�젙蹂�(�룷愿꾪븯�뿬 �씠�븯 + �쒓컻�씤�젙蹂닳��)瑜� �닔吏�, 蹂닿��븯怨� �엳�뒿�땲�떎.<br> + (1) �븘�닔�엯�젰�궗�빆<br> + �몺 �쉶�썝媛��엯 �떆 �닔吏묓빆紐�: �씠硫붿씪, �씠由�<br> + (2) �꽑�깮�엯�젰�빆紐�<br> + �몺 �궗吏�<br> + (3) �꽌鍮꾩뒪 �씠�슜 �삉�뒗 �궗�뾽泥섎━ 怨쇱젙�뿉�꽌 �깮�꽦 �닔吏묐릺�뒗 媛곸쥌 嫄곕옒 諛� 媛쒖씤 �꽦�뼢 �젙蹂�<br> + �몺 �꽌鍮꾩뒪 �씠�슜湲곕줉, �젒�냽濡쒓렇, 荑좏궎, �젒�냽 IP�젙蹂�, 寃곗젣湲곕줉, 遺덈웾�씠�슜湲곕줉<br> + (4) �닔吏묅���씠�슜紐⑹쟻<br> + �몺 �꽌鍮꾩뒪(�젣�뭹) 臾몄쓽 �벑�뿉 ���븳 �긽�떞�씠�굹 �쓳��瑜� �쐞�븳 �솢�룞<br> + �몼 �쉶�썝�젣 �꽌鍮꾩뒪 �씠�슜�뿉 �뵲瑜� 蹂몄씤�솗�씤, 媛쒖씤�떇蹂�, 遺덈웾�쉶�썝�쓽 遺��젙 �씠�슜諛⑹��� 鍮꾩씤媛� �궗�슜諛⑹�, 媛��엯�쓽�궗 �솗�씤, 遺꾩웳議곗젙�쓣 �쐞�븳 湲곕줉蹂댁〈, 遺덈쭔泥섎━ �벑 誘쇱썝泥섎━, 怨좎��궗�빆 �쟾�떖<br> + �몾 �꽌鍮꾩뒪 �젣怨듭뿉 愿��븳 怨꾩빟�씠�뻾 諛� �꽌鍮꾩뒪 �젣怨듭뿉 �뵲瑜� �슂湲덉젙�궛 諛� �듅�젙 留욎땄�꽌鍮꾩뒪 �젣怨�(泥�援ъ꽌 �벑 諛쒖넚, �슂湲덇껐�젣)<br> + �몿 �떊洹� �꽌鍮꾩뒪(�젣�뭹) 媛쒕컻 �넻怨꾪븰�쟻 �듅�꽦�뿉 �뵲瑜� �꽌鍮꾩뒪 �젣怨�, �듅�솕, �씠踰ㅽ듃 �벑 愿묎퀬�꽦 �젙蹂댁쟾�떖 諛� 李몄뿬湲고쉶 �젣怨�, �꽌鍮꾩뒪�쓽 �쑀�슚�꽦 �솗�씤, �젒�냽 鍮덈룄 �뙆�븙 �삉�뒗 �쉶�썝�쓽 �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 �넻怨�<br> + + �젣 2議� (媛쒖씤�젙蹂댁쓽 �닔吏묐갑踰�)<br> + �솃�럹�씠吏� �쉶�썝媛��엯, �쉶�썝�젙蹂댁닔�젙, �쟾�솕, �씠硫붿씪, �꽭誘몃굹/�꽕臾�/�씠踰ㅽ듃 �떊泥�, 臾몄쓽 諛� �긽�떞, �젣�쑕臾몄쓽, �깮�꽦�젙蹂� �닔吏� �댋 �벑�쓣 �넻�븯�뿬 �룞�쓽�븳 寃쎌슦�뿉留� 媛쒖씤�젙蹂대�� �닔吏묓빀�땲�떎.<br> + + �젣 3議� (媛쒖씤�젙蹂� �옄�룞�닔吏묒옣移섏쓽 �꽕移� �슫�쁺 諛� 洹� 嫄곕�諛⑸쾿)<br> + �쉶�궗�뒗 怨좉컼�씠 �솃�럹�씠吏�瑜� �씠�슜�븯�뒗 寃쎌슦 怨좉컼�쓽 �젙蹂대�� �닔�떆濡� ���옣�븯怨� 李얠븘�궡�뒗 "荑좏궎(cookie)"�� �솃�럹�씠吏� �궗�슜湲곕줉(�씠�븯 "�넻怨꾨뜲�씠�꽣")�쓣 �옄�룞�쑝濡� �닔吏묓븯�뒗 �옣移섎�� �꽕移섃���슫�쁺�븷 �닔 �엳�뒿�땲�떎.<br> + (1) 荑좏궎(cookie)��?<br> + 荑좏궎�뒗 �솃�럹�씠吏�媛� 怨좉컼�쓽 �쎒 釉뚮씪�슦��濡� �쟾�넚�븯�뒗 �냼�웾�쓽 �젙蹂댁엯�땲�떎. 怨좉컼�씠 �솃�럹�씠吏��뿉 �젒�냽�븯硫� �쉶�궗�쓽 而댄벂�꽣�뒗 怨좉컼�쓽 釉뚮씪�슦���뿉 �엳�뒗 荑좏궎�쓽 �궡�슜�쓣 �씫怨�, 怨좉컼�쓽 異붽��젙蹂대�� 怨좉컼�쓽 而댄벂�꽣�뿉�꽌 李얠븘 �젒�냽�뿉 �뵲瑜� + �꽦紐� �벑�쓽 異붽� �엯�젰 �뾾�씠 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �엳�뒿�땲�떎. �삉�븳, 怨좉컼�� 荑좏궎�뿉 ���븳 �꽑�깮沅뚯씠 �엳�뒿�땲�떎. �쎒 釉뚮씪�슦�� �긽�떒�쓽 "�룄援�> �씤�꽣�꽬 �샃�뀡 �꺆�뿉�꽌 紐⑤뱺 荑좏궎瑜� �떎 諛쏆븘�뱾�씠嫄곕굹, 荑좏궎媛� �꽕移섎맆 �븣 �넻吏�瑜� + 蹂대궡�룄濡� �븯嫄곕굹, �븘�땲硫� 紐⑤뱺 荑좏궎瑜� 嫄곕��븷 �닔 �엳�뒗 �꽑�깮沅뚯쓣 媛�吏� �닔 �엳�뒿�땲�떎. �떒, 怨좉컼�뿉寃뚯꽌 荑좏궎�꽕移섎�� 嫄곕��븯���쓣 寃쎌슦 �꽌鍮꾩뒪 �씠�슜�뿉 遺덊렪�씠 �엳嫄곕굹, �꽌鍮꾩뒪 �젣怨듭뿉 �뼱�젮���씠 �엳�쓣 �닔 �엳�뒿�땲�떎<br> + (2) �넻怨꾨뜲�씠�꽣��?<br> + �솃�럹�씠吏�, �씠�룞�쟾�솕 �벑�쓽 �꽌鍮꾩뒪 �씠�슜 �떆 而댄벂�꽣 諛� �떒留먭린�쓽 �듅�젙�쁺�뿭�뿉 ���옣�릺怨�, 二쇨린�쟻�쑝濡� �쉶�궗�쓽 �꽌踰꾨줈 �쟾�떖�릺�뒗 �븘�옒�� 媛숈� �젙蹂댁엯�땲�떎.<br> + �몺 �꽌鍮꾩뒪 �궗�슜�넻怨�(�샇�젒�냽, �샇�젅�떒, �샇�떎�뙣 �떆 留앺솚寃�, �떎�슫濡쒕뱶 �떎�뻾�삤瑜�, �쑀/臾댁씤�꽣�꽬 �젒�냽�떎�뙣 諛� �젒�냽�떆媛� �벑)<br> + �몼 �궗�슜 �뙣�꽩 �젙蹂�(怨좉컼�쓽 硫붾돱 �씠�룞寃쎈줈, 二쇰줈 �씠�슜�븯�뒗 �꽌鍮꾩뒪, �꽌鍮꾩뒪 �씠�슜�슏�닔, 諛⑸Ц湲곕줉 �벑)<br> + (3) �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �슫�쁺<br> + �쉶�궗�뒗 怨좉컼�쓽 �렪�쓽瑜� �쐞�븯�뿬 荑좏궎, �넻怨꾨뜲�씠�꽣瑜� �슫�쁺�빀�땲�떎. �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �궗�슜紐⑹쟻�� �떎�쓬怨� 媛숈뒿�땲�떎.<br> + �몺 愿��떖 �엳寃� �몮�윭蹂� �궡�슜�뱾�뿉 ���븳 �옄痍⑤�� 異붿쟻�븯�뿬 �떎�쓬 踰� �젒�냽 �븣 媛쒖씤 留욎땄 �꽌鍮꾩뒪瑜� �젣怨�<br> + �몼 �쉶�썝怨� 鍮꾪쉶�썝�쓽 �젒�냽鍮덈룄 �삉�뒗 癒몃Ц �떆媛� �벑�쓣 遺꾩꽍�븯�뿬 怨좉컼�쓽 痍⑦뼢怨� 愿��떖遺꾩빞瑜� �뙆�븙�븯怨� �쉶�썝�뱾�쓽 �뒿愿��쓣 遺꾩꽍�븯�뿬 �꽌鍮꾩뒪 媛쒗렪 �떆 湲곗��쑝濡� �씠�슜 ��源�(target) 留덉��똿�뿉 �솢�슜<br> + �몾 �쑀猷뚯꽌鍮꾩뒪 �씠�슜 �떆 �씠�슜湲곌컙 �븞�궡<br> + �몿 臾몄쓽 諛� �긽�떞 湲� �벑濡� �렪�쓽�꽦 �젣怨�<br> + + �젣 4議� (媛쒖씤�젙蹂댁쓽 �씠�슜 諛� �젣3�옄 �젣怨�)<br> + (1) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 媛��엯�떊泥��꽌, �씠�슜�빟愿�, 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 "媛쒖씤�젙蹂� �닔吏묅���씠�슜 紐⑹쟻�긽 怨좎��븳 踰붿쐞 �궡�뿉�꽌 �씠�슜 諛� �젣怨듯븯硫�, 洹� 踰붿쐞瑜� �꽆�뼱�꽌 �씠�슜�븯嫄곕굹 �젣怨듯븯吏� �븡�뒿�땲�떎. �듅�엳, �떎�쓬�쓽 + 寃쎌슦�뒗 二쇱쓽瑜� 湲곗슱�뿬 媛쒖씤�젙蹂대�� �씠�슜 諛� �젣怨듯븷 寃껋엯�땲�떎.<br> + �몺 �젣�쑕愿�怨�<br> + 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂대�� �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨� �븷 �닔 �엳�뒿�땲�떎. �씠 寃쎌슦 �궗�쟾�뿉 怨좉컼�뿉寃� �젣�쑕�궗媛� �늻援ъ씤吏�, 怨듭쑀 �삉�뒗 �젣怨듬릺�뒗 媛쒖씤�젙蹂댁쓽 �빆紐⑹씠 臾댁뾿�씤吏�, �뼱�뼚�븳 + �씠�쑀�뿉�꽌 媛쒖씤�젙蹂닿� 怨듭쑀�릺嫄곕굹 �젣怨듬릺�뼱�빞 �븯�뒗吏�, 洹몃━怨� �뼱�뼸寃� �뼵�젣源뚯� 蹂닿���愿�由щ릺�뒗吏��뿉 愿��븯�뿬 媛쒕퀎�쟻�쑝濡� �쟾�옄�쟻 諛⑸쾿�씠�굹, �쟾�솕, �꽌硫�, �뙥�뒪, �슦�렪 �벑�쓣 �넻�빐 怨좎��븯�뿬 �룞�쓽瑜� 援ы븯�뒗 �젅李⑤�� 嫄곗튂寃� �릺硫�, + 怨좉컼�씠 �룞�쓽�븯吏� �븡�뒗 寃쎌슦�뿉�뒗 �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨듬릺吏� �븡�뒿�땲�떎.<br> + (2) �쉶�궗�뒗 �꽌鍮꾩뒪�쓽 �젣怨듭뿉 愿��븳 怨꾩빟�쓣 �씠�뻾�븯湲� �쐞�븯�뿬 �븘�슂�븳 媛쒖씤�젙蹂대줈�꽌 湲곗닠�쟻��寃쎌젣�쟻�씤 �궗�쑀濡� �넻�긽�쟻�씤 �룞�쓽瑜� 諛쏅뒗 寃껋씠 �슌�졆�븯寃� 怨ㅻ��븳 寃쎌슦�뿉�뒗 怨좉컼�쓽 �룞�쓽媛� �뾾�뜑�씪�룄 媛쒖씤�젙蹂대�� �닔吏묅���씠�슜�븷 �닔 + �엳�뒿�땲�떎.<br> + (3) �떎�쓬�쓽 寃쎌슦�뿉�뒗 愿��젴 踰뺣졊�쓽 洹쒖젙�뿉 �쓽�븯�뿬 �쉶�썝�쓽 �룞�쓽 �뾾�씠 媛쒖씤�젙蹂대�� �젣怨듯븯�뒗 寃껋씠 媛��뒫�빀�땲�떎.<br> + �몺 �꽌鍮꾩뒪�젣怨듭뿉 �뵲瑜� �슂湲� �젙�궛�쓣 �쐞�븯�뿬 �븘�슂�븳 寃쎌슦<br> + �몼 �넻怨꾩옉�꽦���븰�닠�뿰援� �삉�뒗 �떆�옣議곗궗瑜� �쐞�븯�뿬 �븘�슂�븳 寃쎌슦濡쒖꽌 �듅�젙 媛쒖씤�쓣 �븣�븘蹂� �닔 �뾾�뒗 �삎�깭濡� 媛�怨듯븯�뿬 �젣怨듯븯�뒗 寃쎌슦<br> + �몾 湲덉쑖 �떎紐� 嫄곕옒 諛� 鍮꾨�蹂댁옣�뿉 愿��븳 踰뺣쪧, �떊�슜�젙蹂댁쓽 �씠�슜 諛� 蹂댄샇�뿉 愿��븳 踰뺣쪧, �쟾湲고넻�떊湲곕낯踰�, �쟾湲고넻�떊�궗�뾽踰�, 吏�諛⑹꽭踰�, �냼鍮꾩옄蹂댄샇踰�, �븳援����뻾踰�, �삎�궗�냼�넚踰� �벑 踰뺣쪧�뿉 �듅蹂꾪븳 洹쒖젙�씠 �엳�뒗 寃쎌슦<br> + �몿 �닔�궗 紐⑹쟻�쑝濡� 踰뺣졊�뿉 �젙�빐吏� �젅李⑥� 諛⑸쾿�뿉 �뵲�씪 �닔�궗湲곌��쓽 �슂援ш� �엳�뒗 寃쎌슦<br> + �뫀 怨좉컼�씠 �궗�쟾�뿉 �룞�쓽�븳 寃쎌슦<br> + + �젣 5議� (媛쒖씤�젙蹂댁쓽 泥섎━�쐞�긽)<br> + (1) �쉶�궗�뒗 怨좉컼�렪�쓽 �젣怨듦낵 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨� �벑 �뾽臾� �닔�뻾�쓣 �썝�솢�븯寃� �븯湲� �쐞�븯�뿬 �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂댁뿉 ���븳 �닔吏묅��蹂닿���泥섎━���씠�슜���젣怨듈��愿�由р���뙆湲� �벑(�씠�븯 �쒖쿂由р��)�쓣 �쐞�긽�븷 �닔 + �엳�뒿�땲�떎.<br> + (2) �쉶�궗媛� �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯�뒗 寃쎌슦 洹� �쐞�긽�뾽臾댁쓽 �궡�슜, �닔�긽�옄�뒗 �떎�쓬 �몴�� 媛숈뒿�땲�떎.<br> + <媛쒖씤�젙蹂� �젣3�옄 �젣怨� 諛� �쐞�긽�쁽�솴><br> + �닔�긽�뾽泥� �굹�씠�뒪�젙蹂댄넻�떊�닚<br> + �쐞�긽�뾽臾대궡�슜 �떊�슜移대뱶 寃곗젣<br> + 蹂댁쑀 諛� �씠�슜湲곌컙 �쉶�썝 �깉�눜 �떆 �샊�� �쐞�긽怨꾩빟 醫낅즺 �떆源뚯�<br> + (3) �쉶�궗�뒗 怨좉컼�쓽 �룞�쓽 �뾾�씠 �꽌鍮꾩뒪 �젣怨� �씠�쇅�쓽 紐⑹쟻�쑝濡� 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯吏� �븡�뒗 寃껋쓣 �썝移숈쑝濡� �빀�땲�떎. �떎留�, 洹몃윭�븳 �븘�슂媛� �깮湲곕뒗 寃쎌슦 �쐞�긽�뾽臾댁쓽 �궡�슜怨� �닔�긽�옄瑜� 怨좉컼�뿉寃� 怨좎��븯怨� �룞�쓽瑜� + 諛쏆뒿�땲�떎.<br> + + �젣 6議� (媛쒖씤�젙蹂댁쓽 �씠�슜��蹂닿� 湲곌컙)<br> + 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 �룞�쓽瑜� 諛쏆� 媛쒖씤�젙蹂댁쓽 �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�릺硫� 踰뺣졊 �삉�뒗 �궡遺�諛⑹묠�뿉 �쓽�빐 蹂댁〈�븷 �븘�슂媛� �엳�뒗 寃쎌슦瑜� �젣�쇅�븯怨좊뒗 吏�泥� �뾾�씠 �뙆湲곕맗�땲�떎.<br> + (1) 臾대텇蹂꾪븳 �쉶�썝�깉�눜�� �옱媛��엯�쑝濡� �씤�븳 �뵾�빐 理쒖냼�솕, �쉶�썝�깉�눜 �썑 蹂��떖�뿉 �쓽�븳 誘쇱썝泥섎━ �벑�쓣 泥섎━�븯湲� �쐞�븯�뿬 �쉶�썝�깉�눜 �썑 1�뀈媛� �쉶�썝�젙蹂대�� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br> + (2) 蹂댁쑀 湲곌컙�쓣 誘몃━ 怨좎��븯怨� 蹂꾨룄�쓽 �룞�쓽瑜� 諛쏆� 寃쎌슦 �빐�떦 蹂댁쑀湲곌컙源뚯� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br> + (3) �쉶�궗媛� 踰뺣졊�뿉 �뵲�씪 蹂닿��븯�뒗 媛쒖씤�젙蹂� 諛� �빐�떦 踰뺣졊�� �븘�옒 �몴�� 媛숈뒿�땲�떎.<br> + + 蹂댁〈 �빆紐�: 怨꾩빟 �삉�뒗 泥��빟泥좏쉶 �벑�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: ��湲덇껐�젣 諛� �옱�솕 �벑�쓽 怨듦툒�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �냼鍮꾩옄�쓽 遺덈쭔 �삉�뒗 遺꾩웳泥섎━�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 3�뀈<br> + 蹂댁〈 �빆紐�: �몴�떆/愿묎퀬�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 6媛쒖썡<br> + 蹂댁〈 �빆紐�: �꽭踰뺤씠 洹쒖젙�븯�뒗 紐⑤뱺 嫄곕옒�뿉 愿��븳 �옣遺� 諛� 利앸튃�꽌瑜�<br> + 洹쇨굅 踰뺣졊: 援��꽭湲곕낯踰�<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �쟾�옄湲덉쑖 嫄곕옒�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄湲덉쑖嫄곕옒踰�<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �꽌鍮꾩뒪 諛⑸Ц湲곕줉<br> + 洹쇨굅 踰뺣졊: �넻�떊鍮꾨�蹂댄샇踰�<br> + 蹂댁〈 湲곌컙: 3媛쒖썡<br> + + (4) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 怨좉컼�쓽 �쉶�썝媛��엯 怨꾩젙�쓣 �궗�슜怨꾩젙怨� �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯�뿬 愿�由ы빀�땲�떎. OWL �꽌鍮꾩뒪瑜� 1�뀈 �룞�븞 濡쒓렇�씤 �삉�뒗 �씠�슜�궡�뿭�씠 �뾾�쓣 寃쎌슦 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� �쐞�빐 + �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯怨� 怨좉컼 媛쒖씤�젙蹂댁쓽 �솢�슜 諛� �젣�쑕�궗 (�젣3�옄 �룞�쓽�븳 �젣�쑕�궗)�뿉 怨좉컼�쓽 �젙蹂대�� �젣怨듯븯吏� �븡�뒿�땲�떎.<br> + + �젣 7議� (媛쒖씤�젙蹂댁쓽 �뙆湲곗젅李� 諛� 諛⑸쾿)<br> + (1) 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 怨좉컼�쑝濡쒕��꽣 �룞�쓽瑜� 諛쏆� �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�맂 �븣�뿉�뒗 蹂꾨룄�쓽 DB濡� �삷寃⑥졇(醫낆씠�쓽 寃쎌슦 蹂꾨룄�쓽 �꽌瑜섑븿) 愿�怨� 踰뺣졊�뿉�꽌 �젙�븳 �씪�젙�븳 湲곌컙 �룞�븞 蹂닿��븳 �떎�쓬 �뙆湲고빀�땲�떎.<br> + (2) 醫낆씠�뿉 異쒕젰�맂 媛쒖씤�젙蹂대뒗 遺꾩뇙湲곕줈 遺꾩뇙�븯嫄곕굹 �냼媛곸쓣 �넻�븯�뿬 �뙆湲고븯怨�, �쟾�옄�쟻 �뙆�씪 �삎�깭濡� ���옣�맂 媛쒖씤�젙蹂대뒗 湲곕줉�쓣 �옱�깮�븷 �닔 �뾾�뒗 湲곗닠�쟻 諛⑸쾿�쓣 �궗�슜�븯�뿬 �궘�젣�빀�땲�떎.<br> + + �젣 8議� (怨좉컼�쓽 沅뚮━�� 洹� �뻾�궗諛⑸쾿)<br> + (1) 怨좉컼(留� 14�꽭 誘몃쭔�씤 寃쎌슦 踰뺤젙 ��由ъ씤)�� �뼵�젣�뱺吏� OWL �꽌鍮꾩뒪 �궡�뿉�꽌 怨좉컼�쓽 媛쒖씤�젙蹂대�� �뿴�엺 �삉�뒗 蹂�寃쏀븷 �닔 �엳�쑝硫�, 怨좉컼�� �븘�슱 �꽌鍮꾩뒪�쓽 �씠�슜�빟愿��뿉 �뵲�씪 怨좉컼�쓽 媛쒖씤�젙蹂� �닔吏� 諛� �씠�슜�뿉 ���븯�뿬 + �쉶�궗�뿉 �룞�쓽 泥좏쉶瑜� �슂援ы븯嫄곕굹 OWL �꽌鍮꾩뒪�뿉�꽌 �깉�눜�떆耳� 以� 寃껋쓣 �슂援ы븷 �닔 �엳�뒿�땲�떎<br> + (2) �삩�씪�씤 媛��엯�젙蹂댁쓽 �뿴�엺 諛� �젙�젙�쓣 �븯怨좎옄 �븯�뒗 怨좉컼�쓽 寃쎌슦�뿉�뒗 �솃�럹�씠吏� �궡�쓽 "�쉶�썝�젙蹂�"瑜� �겢由��븯�뿬 吏곸젒 �뿴�엺 諛� �젙�젙�쓣 �븯嫄곕굹, 怨좉컼�꽱�꽣瑜� �넻�빐 �꽌硫�, �쟾�솕 �삉�뒗 �씠硫붿씪濡� �뿰�씫�븯�떆硫� 吏�泥� �뾾�씠 + 議곗튂�븯寃좎뒿�땲�떎.<br> + (3) �쉶�궗�뒗 ��由ъ씤�씠 諛⑸Ц�븯�뿬 �뿴�엺��利앸챸�쓣 �슂援ы븯�뒗 寃쎌슦�뿉�뒗 �쟻踰뺥븳 �쐞�엫�쓣 諛쏆븯�뒗吏� �솗�씤�븷 �닔 �엳�뒗 �쐞�엫�옣 諛� 蹂몄씤�쓽 �씤媛먯쬆紐낆꽌�� ��由ъ씤�쓽 �떊遺꾩쬆 �벑�쓣 �젣異� 諛쏆븘 �젙�솗�엳 ��由ъ씤 �뿬遺�瑜� �솗�씤�빀�땲�떎.<br> + (4) 怨좉컼�씠 媛쒖씤�젙蹂댁쓽 �삤瑜섏뿉 ���븳 �젙�젙�쓣 �슂泥��븯�떊 寃쎌슦 �쉶�궗�뒗 �젙�젙�쓣 �셿猷뚰븯湲� �쟾源뚯� �빐�떦 媛쒖씤�젙蹂대�� �씠�슜 �삉�뒗 �젣怨듯븯吏� �븡�뒿�땲�떎. �삉�븳 �쉶�궗�뒗 �옒紐삳맂 媛쒖씤�젙蹂대�� �씠誘� �젣3�옄�뿉寃� �젣怨듯븳 寃쎌슦 洹� �젙�젙 + 泥섎━寃곌낵瑜� �젣3�옄�뿉寃� 吏�泥� �뾾�씠 �넻吏��븯�뿬 �젙�젙�븯�룄濡� �빀�땲�떎. + (5) 怨좉컼�� 媛쒖씤�젙蹂대�� 理쒖떊�쓽 �긽�깭濡� �젙�솗�븯寃� �엯�젰�븯怨� 蹂��룞 �궗�빆�씠 �엳�뒗 寃쎌슦, �씠瑜� �쉶�궗�뿉 �넻蹂댄븯�뿬�빞 �븯硫�, �뒪�뒪濡� 遺��젙�솗�븳 �젙蹂대�� �엯�젰�븯嫄곕굹, �쉶�궗�뿉 �넻蹂댄븯吏� �븡�븘�꽌 �쉶�궗媛� �븣 �닔 �뾾�뒗 怨좉컼�젙蹂댁쓽 + 蹂��룞�쑝濡� �씤�븳 梨낆엫�� 怨좉컼 �옄�떊�뿉寃� 洹��냽�맗�땲�떎.<br> + (6) 怨좉컼�씠 ���씤 �젙蹂댁쓽 �룄�슜�씠�굹 移⑦빐, �뿀�쐞�젙蹂대�� �엯�젰�븯�뒗 寃쎌슦 �꽌鍮꾩뒪 �빐吏� 諛� �쉶�썝�옄寃⑹씠 �긽�떎�맆 �닔 �엳�쑝硫� 踰� �벑 愿��젴 踰뺣졊�뿉 �뵲�씪 泥섎쾶諛쏆쓣 �닔 �엳�뒿�땲�떎.<br> + + �젣 9議� (媛쒖씤�젙蹂대낫�샇瑜� �쐞�븳 湲곗닠�쟻 愿�由ъ쟻 ��梨�)<br> + �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂닿� 遺꾩떎, �룄�궃, �늻異�, 蹂�議� �삉�뒗 �쎕�넀�릺吏� �븡�룄濡� �븯湲� �쐞�빐�꽌 �떎�쓬怨� 媛숈� 湲곗닠�쟻/愿�由ъ쟻 ��梨낆쓣 媛뺢뎄�븯怨� �엳�뒿�땲�떎.<br> + (1) 湲곗닠�쟻 ��梨�<br> + �몺 �젒�냽湲곕줉�쓽 �쐞��蹂�議� 諛⑹� 議곗튂瑜� 痍⑦븯怨� �엳�뒿�땲�떎.<br> + �몼 媛쒖씤�젙蹂대뒗 洹� 醫낅쪟�뿉 �뵲�씪 愿��젴 踰뺣졊�씠 �슂援ы븯�뒗 �닔以��쓽 �븫�샇�솕 ���옣 �삉�뒗 �쟾�넚 �떆 �븫�샇�솕 湲곗닠�쓽 �쟻�슜�븯�뿬 愿�由ы빀�땲�떎.<br> + �몾 諛깆떊�봽濡쒓렇�옩�쓣 �씠�슜�븯�뿬 而댄벂�꽣 諛붿씠�윭�뒪�뿉 �쓽�븳 �뵾�빐瑜� 諛⑹��븯湲� �쐞�븳 議곗튂瑜� 痍⑦븯怨� �엳�쑝硫�, 諛깆떊�봽濡쒓렇�옩�쓣 二쇨린�쟻�쑝濡� �뾽�뜲�씠�듃�븯怨� 媛묒옉�뒪�윭�슫 諛붿씠�윭�뒪 異쒗쁽 �떆�뿉 諛깆떊�씠 �굹�삤�뒗 利됱떆 �씠瑜� �젣怨듯븿�쑝濡쒖뜥 + 媛쒖씤�젙蹂닿� 移⑦빐�릺�뒗 寃껋쓣 諛⑹��븯怨� �엳�뒿�땲�떎.<br> + �몿 �븫�샇�븣怨좊━利섏쓣 �씠�슜�븯�뿬 �꽕�듃�썙�겕�긽 媛쒖씤�젙蹂대�� �븞�쟾�븯寃� �쟾�넚�븯�뒗 蹂댁븞�옣移�(SSL �벑)瑜� 梨꾪깮�븯怨� �엳�뒿�땲�떎.<br> + �뫀 �빐�궧 �벑 �쇅遺� 移⑥엯�뿉 ��鍮꾪븯�뿬 媛� �꽌踰꾨쭏�떎 移⑥엯李⑤떒�떆�뒪�뀥 諛� 痍⑥빟�젏遺꾩꽍�떆�뒪�뀥�쓣 �씠�슜�븯�뿬 蹂댁븞�뿉 理쒖꽑�쓣 �떎�븯怨� �엳�뒿�땲�떎.<br> + + (2) 愿�由ъ쟻 ��梨�<br> + �몺 �쉶�궗�뒗 媛쒖씤�젙蹂� 蹂댄샇�뿉 愿��븳 �궡遺�愿�由ш퀎�쉷�쓣 �닔由�, �떆�뻾�븯怨� �엳�뒿�땲�떎.<br> + �몼 �쉶�궗�뒗 媛쒖씤�젙蹂댁뿉 ���븳 �젒洹쇨텒�븳�쓣 �븘�슂��理쒖냼�븳�쓽 �씤�썝�쑝濡� �젣�븳�븯怨� �엳�뒿�땲�떎.<br> + �몾 �쉶�궗�뒗 媛쒖씤�젙蹂닿��젴 痍④툒 吏곸썝�� �떞�떦�옄�뿉寃� �븳�젙�떆�궎怨� �엳怨� �씠瑜� 蹂꾨룄�쓽 鍮꾨�踰덊샇瑜� 遺��뿬�븯�뿬 �젙湲곗쟻�쑝濡� 媛깆떊�븯怨� �엳�쑝硫�, �떞�떦�옄�뿉 ���븳 �닔�떆 援먯쑁�쓣 �넻�븯�뿬 �쉶�궗 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 以��닔瑜� �빆�긽 媛뺤“�븯怨� + �엳�뒿�땲�떎.<br> + �몿 �쉶�궗�뒗 怨좉컼�쓽 �떎�닔�굹 湲곕낯�쟻�씤 �씤�꽣�꽬�쓽 �쐞�뿕�꽦 �븣臾몄뿉 �씪�뼱�굹�뒗 �씪�뱾�뿉 ���빐 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎. 怨좉컼 �뒪�뒪濡쒓� 蹂몄씤�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯湲� �쐞�빐�꽌 �옄�떊�쓽 �씠硫붿씪怨� 鍮꾨�踰덊샇瑜� �쟻�젅�븯寃� 愿�由ы븯怨� �뒪�뒪濡� 梨낆엫�쓣 + �졇�빞 �빀�땲�떎.<br> + + �젣 10議� (媛쒖씤�젙蹂� 蹂댄샇梨낆엫�옄 諛� �떞�떦�옄�쓽 �뿰�씫泥�)<br> + �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯怨� 媛쒖씤�젙蹂댁� 愿��젴�븳 遺덈쭔�쓣 泥섎━�븯湲� �쐞�븯�뿬 �븘�옒�� 媛숈씠 愿��젴 遺��꽌 諛� 媛쒖씤�젙蹂닿�由ъ콉�엫�옄瑜� 吏��젙�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 怨좉컼�쓽 紐⑹냼由ъ뿉 洹� 湲곗슱�씠怨� �떊�냽�븯怨� 異⑸텇�븳 �떟蹂��쓣 �뱶由� �닔 + �엳�룄濡� 理쒖꽑�쓣 �떎�븯寃좎뒿�땲�떎.<br> + + <媛쒖씤�젙蹂대낫�샇 梨낆엫�옄><br> + 愿�由� 梨낆엫�옄: �씠�젙�꽑 ���옣 | 愿�由� �떞�떦�옄: 源��쑀吏� 二쇱엫<br> + �떞�떦遺��꽌: �뀒�뒪�똿 �넄猷⑥뀡�꽱�꽣 �냼�봽�듃�썾�뼱 媛쒕컻��<br> + �뿰�씫泥�: jslee1@wisestone.kr<br> + + 湲고� 媛쒖씤�젙蹂댁묠�빐�뿉 ���븳 �떊怨좊굹 �긽�떞�씠 �븘�슂�븯�떊 寃쎌슦�뿉�뒗 �븘�옒 湲곌��뿉 臾몄쓽�븯�떆湲� 諛붾엻�땲�떎.<br> + + �몺 媛쒖씤�젙蹂댁묠�빐�떊怨좎꽱�꽣: �쟾�솕 118 / �씠硫붿씪 privacy@kisa.or.kr / http://privacy.kisa.or.kr<br> + �몼 �젙蹂대낫�샇留덊겕 �씤利앹쐞�썝�쉶: �쟾�솕 02-580-0533~4 / http://www.eprivacy.or.kr<br> + �몾 ��寃�李곗껌 �궗�씠踰꾨쾾二꾩닔�궗�떒: �쟾�솕 02-3480-3571 / �씠硫붿씪 cybercid@spo.go.kr / http://www.spo.go.kr<br> + �몿 寃쎌같泥� �궗�씠踰꾪뀒�윭 ���쓳�꽱�꽣: �쟾�솕 1566-0112 / http://cyber.go.kr<br> + + �젣 11議� (怨좎��쓽 �쓽臾�)<br> + �쉶�궗�뒗 踰뺣쪧�씠�굹 �꽌鍮꾩뒪�쓽 蹂�寃쎌궗�빆�쓣 諛섏쁺�븯湲� �쐞�븳 紐⑹쟻 �벑�쑝濡� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓣 �닔�젙�븷 �닔 �엳�뒿�땲�떎. 媛쒖씤�젙蹂� 泥섎━諛⑹묠�씠 蹂�寃쎈릺�뒗 寃쎌슦 �쉶�궗�뒗 蹂�寃� �궗�빆�쓣 寃뚯떆�븯硫�, 蹂�寃쎈맂 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 寃뚯떆�븳 + �궇濡쒕��꽣 7�씪 �썑遺��꽣 �슚�젰�씠 諛쒖깮�빀�땲�떎. �븯吏�留�, �뵾移� 紐삵븯寃� �뿬�윭遺꾩쓽 沅뚮━�뿉 以묒슂�븳 蹂�寃쎌씠 �엳�쓣 寃쎌슦 蹂�寃쎈맆 �궡�슜�쓣 30�씪 �쟾�뿉 誘몃━ �븣�젮�뱶由ш쿋�뒿�땲�떎.<br> + + �� �떆�뻾�씪�옄 : 2018�뀈 11�썡 09�씪<br><br> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/login/withDrawSocialAccount.html b/src/main/webapp/views/login/withDrawSocialAccount.html new file mode 100644 index 0000000..8dad9a4 --- /dev/null +++ b/src/main/webapp/views/login/withDrawSocialAccount.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>LOGIN-FAIL</title> + <link type="text/css" rel="stylesheet" href="/assets/styles/main.css"> +</head> +<body class="full-screen"> +<div class="withdraw-acc all-wrapper"> + <h3><i class="os-icon os-icon-cancel-circle"></i></h3> + <h4>�빐�떦 �냼�뀥 怨꾩젙��<br/> �깉�눜�맂 怨꾩젙�엯�땲�떎.</h4> + <h5>�깉�눜 怨꾩젙�쑝濡� �옱媛��엯�� 遺덇��뒫�빀�땲�떎.</h5> + <img src="/assets/images/loginlogo.png"> +</div> +</body> +</html> \ No newline at end of file diff --git a/src/main/webapp/views/manageUser/manageUser.html b/src/main/webapp/views/manageUser/manageUser.html new file mode 100644 index 0000000..f6f0e5f --- /dev/null +++ b/src/main/webapp/views/manageUser/manageUser.html @@ -0,0 +1,114 @@ +<div class="row"> + <div class="col-lg-12"> + <div class="element-wrapper"> + <h6 class="element-header" translate="manageUser.manageUser"> + �궗�슜�옄 愿�由� + </h6> + </div> + + <div class="element-box"> + <div class="searchdiv"> + <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)"> + <div class="row"> + <div class="col-xl-4"> + <div class="form-group"> + <label translate="common.name">�씠由�</label> + <input class="form-control" type="text" ng-model="vm.search.name" maxlength="10"> + </div> + </div> + + <!-- + <div class="col-xl-3"> + <div class="form-group"> + <label translate="common.status">�긽�깭</label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="statuses" + selected-model="vm.search.statuses" + extra-settings="{ stringTypeOption : true }" + options="vm.options.statuses"></ng-dropdown-multiselect> + </div> + </div> + --> + + <div class="col-xl-4"> + <div class="form-group"> + <label translate="common.email">�씠硫붿씪</label> + <input class="form-control" type="text" ng-model="vm.search.account" maxlength="50"> + </div> + </div> + + <div class="col-xl-4"> + <div class="form-group form-buttons-w2"> + <button class="btn btn-xlg btn-navy" ng-click="fn.getUserWorkspaceList(0)"> + <i class="os-icon os-icon-ui-37"></i> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + <div class="btn-group"> + <button aria-expanded="false" + aria-haspopup="true" + class="btn btn-secondary dropdown-toggle" + data-toggle="dropdown" + type="button">異붽�湲곕뒫 + </button> + <div aria-labelledby="dropdownMenuButton2" + class="dropdown-menu" + x-placement="bottom-start" + style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;"> + <a class="dropdown-item" href="#"> �궘�젣</a> + </div> + </div> + </div>--> + </div> + </div> + + <div class="table-responsive"> + <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" + event="vm.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.getUserWorkspaceList(vm.page.selectedPage-1)" + class="pagination pagination-sm" + previous-text="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/notice/noticeAdd.html b/src/main/webapp/views/notice/noticeAdd.html new file mode 100644 index 0000000..65497f3 --- /dev/null +++ b/src/main/webapp/views/notice/noticeAdd.html @@ -0,0 +1,59 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="notice.registerNotice">怨듭� �궗�빆 �벑濡�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="noticeAddForm"> + <div class="form-group"> + <label for="noticeAddForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="noticeAddForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(noticeAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(noticeAddForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/notice/noticeList.html b/src/main/webapp/views/notice/noticeList.html new file mode 100644 index 0000000..b46a997 --- /dev/null +++ b/src/main/webapp/views/notice/noticeList.html @@ -0,0 +1,115 @@ +<div class="row"> + <div class="col-sm-12"> + + <div class="element-wrapper"> + <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_NOTICE')"> + <button ng-click="fn.add()" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> + <span translate="notice.registerNotice">怨듭��궗�빆 �벑濡�</span> + </button> + + <form class="form-inline justify-content-sm-end pull-right" + method="post" + action="/user/downloadExcel" + name="userListForm"> + <input type="hidden" name="conditions"> + <button type="button" class="btn btn-info btn-xlg" + form-submit="userListForm" + make-search-conditions="fn.makeSearchConditions()"> + <span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span> + </button> + </form> + </div> + + <h6 class="element-header" translate="notice.notice"> + 怨듭��궗�빆 + </h6> + + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="noticeListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label for="noticeListForm1"> + <span translate="common.title">�젣紐�</span> + </label> + <input type="text" + name="title" + id="noticeListForm1" + autocomplete="off" + kr-input + owl-auto-focus + maxlength="50" + class="form-control" + ng-model="vm.search.title"> + </div> + </div> + + <div class="col-lg-8"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + </div> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + + </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="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> + diff --git a/src/main/webapp/views/notice/noticeModify.html b/src/main/webapp/views/notice/noticeModify.html new file mode 100644 index 0000000..a6a4bbb --- /dev/null +++ b/src/main/webapp/views/notice/noticeModify.html @@ -0,0 +1,59 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="notice.modifyNotice">怨듭� �궗�빆 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="noticeModifyForm"> + <div class="form-group"> + <label for="noticeModifyForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="noticeModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(noticeModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(noticeModifyForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_NOTICE')"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/notice/noticeView.html b/src/main/webapp/views/notice/noticeView.html new file mode 100644 index 0000000..df9bc0b --- /dev/null +++ b/src/main/webapp/views/notice/noticeView.html @@ -0,0 +1,20 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong class="bold">{{vm.viewer.title}}</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <div ng-bind-html="$root.$sce.trustAsHtml(vm.viewer.description)"></div> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"> + <span translate="common.close">�떕湲�</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/popup/notice.html b/src/main/webapp/views/popup/notice.html new file mode 100644 index 0000000..373327f --- /dev/null +++ b/src/main/webapp/views/popup/notice.html @@ -0,0 +1,57 @@ +<style> + .notice-modal { + width: 402px !important; + height: 542px !important; + margin: 0; + padding: 0; + left: 10px; + top: 10px; + } + + .modal-dialog { + margin: 0; + padding: 0; + border: 1px solid black; + } + + .modal-body { + margin: 0; + padding: 0; + } + + .modal-footer { + height: 40px; + } + + .modal-content { + margin: 0; + padding: 0; + border-radius: 0px 0px / 0px 0px !important + } + + .modal-open { + overflow: auto; + } + + .pull-left { + float: left !important; + } + + .pull-right { + float: right !important; + } +</style> + +<div class="modal-body"> + <a href="https://blog.naver.com/wisestone2007/222256073212" target="_blank"><img src="/assets/images/event-pop-voucher.jpg"></a> +</div> + +<div class="modal-footer"> + <div class="pull-left"> + <input class="issue-continue-checkbox pull-left" type="checkbox" tabindex="-1" ng-model="notcieModel.isChecked" /> + <span>�삤�뒛 �뿴吏� �븡湲�</span> + </div> + <div class="pull-right"> + <button type="button" class="btn btn-secondary" ng-click="fn.closeModal()">�떕湲�</button> + </div> +</div> diff --git a/src/main/webapp/views/project/projectAdd.html b/src/main/webapp/views/project/projectAdd.html new file mode 100644 index 0000000..c2393b0 --- /dev/null +++ b/src/main/webapp/views/project/projectAdd.html @@ -0,0 +1,164 @@ +<div class="formModal" xmlns:cursor="http://www.w3.org/1999/xhtml"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="project.createProject">�봽濡쒖젥�듃 留뚮뱾湲�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="projectAddForm"> + <div class="form-group"> + <label for="projectAddForm1"><span translate="common.projectName">�봽濡쒖젥�듃紐�</span> <code class="highlighter-rouge">*</code></label> + <input id="projectAddForm1" + name="name" + type="text" + class="form-control" + autofocus + autocomplete="off" + ng-model="vm.form.name" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + ng-maxlength="50" + maxlength="50" + kr-input + required> + <small ng-show="projectAddForm.name.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo50Characters"> + 理쒕� 50湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <small translate="project.limitNameToSpecialCharacters">�봽濡쒖젥�듃 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label for="projectAddForm2"><span translate="project.projectKey">�봽濡쒖젥�듃 �궎</span> <code class="highlighter-rouge">*</code></label> + <input id="projectAddForm2" + name="projectKey" + type="text" + class="form-control" + autocomplete="off" + maxlength="10" + ng-model="vm.form.projectKey" + ng-minlength="3" + ng-maxlength="10" + ng-trim="false" + ng-pattern="/^[a-zA-Z][a-zA-Z0-9]{0,10}$/" + input-regex="[^a-zA-Z0-9]" + owl-project-key + kr-input + required> + <small ng-show="projectAddForm.projectKey.$error.minlength" class="help-block form-text text-danger" translate="common.least3Characters"> + 理쒖냼 3湲��옄�씠�긽 �엯�젰�빐�빞 �빀�땲�떎. + </small> + + <small ng-show="projectAddForm.projectKey.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo10Characters"> + 理쒕� 10湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + + <small ng-show="projectAddForm.projectKey.$error.pattern" class="help-block form-text text-danger" translate="project.failedToProjectKeyPattern"> + �봽濡쒖젥�듃 �궎�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎. + </small> + + <small translate="common.beginEnglishTheProject"> + �봽濡쒖젥�듃 �궎�뒗 �쁺臾몄쑝濡� �떆�옉�빐�빞�빀�땲�떎. + </small> + </div> + + <div class="row"> + <div class="col-lg-6"> + <div class="form-group"> + <label><span translate="common.period">湲곌컙</span> <code class="highlighter-rouge">*</code></label> + <input type="text" + class="form-control input-readonly" + ng-model="vm.form.startEndDateRange" + modal-form-auto-scroll + parent-el="'#createdWidget'" + range-type="date" + onfocus="this.blur()" + date-range-picker> + <div class="row"> + <div class="col-xs-12"> + <div id="createdWidget" class="bootstrap-datepicker"></div> + </div> + </div> + </div> + </div> + <div class="col-lg-6"> + <div class="form-group mb10"> + <label> <span translate="common.parentProject">�긽�쐞 �봽濡쒖젥�듃</span></label> + <js-autocomplete-single data-input-name="project" + selected-model="vm.form.projects" + search="vm.projectName" + 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" + translation-texts="{ empty : 'common.emptyProject' }" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"> + </js-autocomplete-single> + </div> + </div> + </div> + + + <div class="form-group"> + <label><span translate="project.projectStatus">�봽濡쒖젥�듃 �긽�깭</span> <code class="highlighter-rouge">*</code></label> + <ul class="nav nav-pills smaller d-lg-flex"> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{active : vm.form.status == '01'}" data-toggle="tab" ng-click="vm.form.status = '01'"> <span translate="common.wait">��湲�</span></a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{active : vm.form.status == '02'}" data-toggle="tab" ng-click="vm.form.status = '02'"> <span translate="common.progress">吏꾪뻾</span></a> + </li> + </ul> + </div> + + <!--<div class="form-group"> + <label><span translate="project.projectType">�봽濡쒖젥�듃 ���엯</span> <code class="highlighter-rouge">*</code></label> + <select class="form-control" ng-model="vm.form.projectType"> + <option value="BTS_PROJECT" translate="common.btsProject">�씠�뒋 愿�由� �봽濡쒖젥�듃</option> + </select> + </div>--> + + <div class="form-group"> + <label for="projectAddForm3"><span translate="project.projectAdmin">�봽濡쒖젥�듃 愿�由ъ옄</span> <code class="highlighter-rouge">*</code></label> + <input id="projectAddForm3" + type="text" + name="leader" + class="form-control" + disabled + ng-model="$root.user.name"> + </div> + + <div class="form-group"> + <label><span translate="project.projectTeam">�봽濡쒖젥�듃 ���썝</span> </label> + <js-autocomplete-multi data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + source="fn.getUserList(vm.userName, vm.form.users.concat(vm.form.managers))" + input-disabled="false" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100, autoResize : true }"></js-autocomplete-multi> + + <div class="select3-selection__choicediv mt-10"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" ng-click="fn.removeUsr($index)">횞</span> + </span> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(projectAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(projectAddForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/project/projectCustomFieldConfig.html b/src/main/webapp/views/project/projectCustomFieldConfig.html new file mode 100644 index 0000000..fe77c1e --- /dev/null +++ b/src/main/webapp/views/project/projectCustomFieldConfig.html @@ -0,0 +1,97 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="project.settingCustomFields">�궗�슜�옄 �젙�쓽 �븘�뱶 �꽕�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="projectCustomFieldConfigForm"> + <div class="form-group"> + <label for="projectCustomFieldConfigForm1"><span translate="issue.issueType">�씠�뒋 ���엯</span> <code class="highlighter-rouge">*</code></label> + <select id="projectCustomFieldConfigForm1" + name="issueType" + class="form-control" + required + ng-model="vm.form.issueTypeId" + ng-change="fn.issueTypeChange()"> + <option value="" translate="common.choose">�꽑�깮�븯�꽭�슂.</option> + <option ng-value="issueType.id" ng-repeat="issueType in vm.issueTypes">{{::issueType.name}}</option> + </select> + </div> + + <p class="mt-20" ng-show="$root.isDefined(vm.form.issueTypeId)" ><span translate="project.selectCustomField">�궗�슜�옄 �젙�쓽 �븘�뱶 �꽑�깮</span> + <small class="fc-grey">(Use Drag and Drop)</small> + </p> + + <div class="row" ng-show="$root.isDefined(vm.form.issueTypeId)"> + <div class="col-lg-6"> + <div class="pipeline white"> + <h6 class="pipeline-name text-center fs-09 bold " translate="project.availableFields"> + �궗�슜媛��뒫�븳 �븘�뱶 + </h6> + <div class="pipeline-body" style="height:200px; overflow-y:auto;"> + <ul class="connectList" + ui-sortable="fn.activeSortable" + ng-model="vm.customFields" + style="padding-left:0px; min-height:300px; list-style:none;"> + <li class="" + ng-repeat="customField in vm.customFields"> + <div class="pipeline-item"> + <div class="pi-name"> + {{customField.name}} + </div> + <small class="fc-grey" ng-show="customField.customFieldType == 'INPUT'" translate="common.stringField">臾몄옄�뿴 �븘�뱶</small> + <small class="fc-grey" ng-show="customField.customFieldType == 'MULTI_SELECT'" translate="common.multipleSelectionField">�떎以� �꽑�깮 �븘�뱶</small> + <small class="fc-grey" ng-show="customField.customFieldType == 'SINGLE_SELECT'" translate="common.singleSelectionField">�떒�씪 �꽑�깮 �븘�뱶</small> + </div> + + <!--<span>{{customField.name}}</span> <input type="checkbox" ng-model="customField.checked">--> + </li> + </ul> + </div> + </div> + </div> + + <div class="col-lg-6"> + <div class="pipeline blue"> + <h6 class="pipeline-name text-center fs-09 bold " translate="project.inUseField"> + �궗�슜以묒씤 �븘�뱶 + </h6> + <div class="pipeline-body" style="height:200px; overflow-y:auto;"> + <ul class="connectList" + style="padding-left:0px; min-height:300px; list-style:none;" + ui-sortable="fn.activeSortable" + ng-model="vm.relationCustomFields"> + <li class="" + ng-repeat="relationCustomField in vm.relationCustomFields"> + <div class="pipeline-item"> + <div class="pi-name"> + {{relationCustomField.name}} + </div> + <small class="fc-grey" ng-show="relationCustomField.customFieldType == 'INPUT'" translate="common.stringField">臾몄옄�뿴 �븘�뱶</small> + <small class="fc-grey" ng-show="relationCustomField.customFieldType == 'MULTI_SELECT'" translate="common.multipleSelectionField">�떎以� �꽑�깮 �븘�뱶</small> + <small class="fc-grey" ng-show="relationCustomField.customFieldType == 'SINGLE_SELECT'" translate="common.singleSelectionField">�떒�씪 �꽑�깮 �븘�뱶</small> + </div> + <!--<span>{{relationCustomField.name}}</span> <input type="checkbox" + ng-model="relationCustomField.checked">--> + </li> + </ul> + </div> + </div> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.close">�떕湲�</span></button> + <button type="button" class="btn btn-md btn-primary bold" + ng-disabled="fn.formCheck(projectCustomFieldConfigForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/project/projectList.html b/src/main/webapp/views/project/projectList.html new file mode 100644 index 0000000..5713f13 --- /dev/null +++ b/src/main/webapp/views/project/projectList.html @@ -0,0 +1,40 @@ +<div class="row"> + <div class="col-sm-12"> + <div class="element-wrapper"> + <div class="element-actions"> + <button ng-click="fn.add()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_PROJECT')" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span + translate="project.createProject">�봽濡쒖젥�듃 留뚮뱾湲�</span> + </button> + </div> + <h6 class="element-header" translate="common.project"> + �봽濡쒖젥�듃 + </h6> + </div> + </div> +</div> + +<div class="os-tabs-w"> + <div class="os-tabs-controls"> + <ul class="nav nav-tabs upper"> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'PROJECT_LIST' }" ng-click="fn.changeTab('PROJECT_LIST')" translate="project.normalList">�씪媛� 紐⑸줉</a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'PROJECT_TIMELINE' }" ng-click="fn.changeTab('PROJECT_TIMELINE')" translate="project.timeLine">���엫 �씪�씤</a> + </li> + </ul> + </div> +</div> + +<div class="tab-content mt-30"> + + <div ng-show="vm.tab == 'PROJECT_LIST'"> + <div ng-include include-replace src="'views/project/projectListNormal.html'"></div> + </div> + + <div ng-show="vm.tab == 'PROJECT_TIMELINE'"> + <div ng-include include-replace src="'views/project/projectListTimeline.html'"></div> + </div> +</div> + diff --git a/src/main/webapp/views/project/projectListNormal.html b/src/main/webapp/views/project/projectListNormal.html new file mode 100644 index 0000000..cc4558e --- /dev/null +++ b/src/main/webapp/views/project/projectListNormal.html @@ -0,0 +1,127 @@ +<div class="row" ng-controller="projectListController"> + <div class="col-sm-12"> + <div class="element-wrapper"> + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="projectListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label for="projectListForm1"><span + translate="common.projectName">�봽濡쒖젥�듃紐�</span></label> + <input type="text" + name="name" + id="projectListForm1" + autocomplete="off" + tabindex="-1" + kr-input + owl-auto-focus + maxlength="50" + class="form-control" + ng-model="vm.search.name" + placeholder="{{'project.pleaseEnterProjectName' | translate}}"> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label><span translate="common.status">�긽�깭</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="statuses" + selected-model="vm.search.statuses" + extra-settings="{ stringTypeOption : true }" + options="vm.options.statuses"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-4"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> +<!-- <div class="col-lg-2 text-right">--> +<!-- <div class="form-group form-buttons-w2">--> +<!-- <input type="checkbox" ng-model="vm.viewSub" ng-change="fn.setViewSub()" name="viewSub" id="viewSub">--> +<!-- <label for="viewSub"><span translate="project.viewSub"></span></label>--> +<!-- </div>--> +<!-- </div>--> + </div> + </form> + </div> + </div> + </div> + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-8"> + <div class="dataTables_length"> + <label> + <select name="pageRow" + tabindex="-1" + 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><span ng-if="vm.childCount > 0"> + {{vm.childCount}}</span> + </label> + </div> + </div> + <div class="col-4 text-right"> + <form class="form-inline justify-content-sm-end pull-right" method="post" + action="/project/downloadExcel" + name="projectListForm"> + <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="projectListForm" + 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="<" + next-text=">" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/project/projectListTimeline.html b/src/main/webapp/views/project/projectListTimeline.html new file mode 100644 index 0000000..b9718c1 --- /dev/null +++ b/src/main/webapp/views/project/projectListTimeline.html @@ -0,0 +1,73 @@ +<div class="row" ng-controller="projectTimelineController" ng-init="init()"> + <div class="col-sm-12"> + <div class="element-wrapper"> + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="projectListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-3"> + <div class="form-group"> + <label for="projectListForm1"><span + translate="common.projectName">�봽濡쒖젥�듃紐�</span></label> + <input type="text" + name="name" + id="projectListForm1" + autocomplete="off" + tabindex="-1" + kr-input + owl-auto-focus + maxlength="50" + class="form-control" + ng-model="vm.search.name" + placeholder="{{'project.pleaseEnterProjectName' | translate}}"> + </div> + </div> + + <div class="col-lg-3"> + <div class="form-group"> + <label><span translate="common.status">�긽�깭</span></label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="statuses" + selected-model="vm.search.statuses" + extra-settings="{ stringTypeOption : true }" + options="vm.options.statuses"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-lg-4"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> +<!-- <div class="col-lg-2 text-right">--> +<!-- <div class="form-group form-buttons-w2">--> +<!-- <input type="checkbox" ng-model="vm.viewSub" ng-change="fn.setViewSub()" name="viewSub" id="viewSub">--> +<!-- <label for="viewSub"><span translate="project.viewSub"></span></label>--> +<!-- </div>--> +<!-- </div>--> + </div> + </form> + </div> + </div> + </div> + <div class="controls-above-table mt-30"> + <div class="row"> + <div id="chart_div"></div> + <!-- <div class="text-center" ng-if="!vm.useGantt">--> + <!-- <span translate="common.noData">�씪媛먯씠 �뾾�뒿�땲�떎.</span>--> + <!-- </div>--> + </div> + </div> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/project/projectModify.html b/src/main/webapp/views/project/projectModify.html new file mode 100644 index 0000000..0ba8561 --- /dev/null +++ b/src/main/webapp/views/project/projectModify.html @@ -0,0 +1,138 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="project.modifyProject">�봽濡쒖젥�듃 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="projectModifyForm"> + <div class="form-group"> + <label for="projectModifyForm1"><span translate="common.projectName">�봽濡쒖젥�듃紐�</span> <code class="highlighter-rouge">*</code></label> + <input id="projectModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + autocomplete="off" + ng-model="vm.form.name" + ng-maxlength="50" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + maxlength="50" + kr-input + required> + <small ng-show="projectModifyForm.name.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo50Characters"> + 理쒕� 50湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + <small translate="project.limitNameToSpecialCharacters">�봽濡쒖젥�듃 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="row"> + <div class="col-lg-6"> + <div class="form-group"> + <label for="projectModifyForm2"><span translate="common.period">湲곌컙</span> <code class="highlighter-rouge">*</code></label> + <input id="projectModifyForm2" + type="text" + class="form-control input-readonly" + ng-model="vm.form.startEndDateRange" + modal-form-auto-scroll + parent-el="'#createdWidget'" + range-type="date" + onfocus="this.blur()" + date-range-picker> + <div class="row"> + <div class="col-xs-12"> + <div id="createdWidget" class="bootstrap-datepicker"></div> + </div> + </div> + </div> + </div> + <div class="col-lg-6"> + <div class="form-group mb10"> + <label> <span translate="common.parentProject">�긽�쐞 �봽濡쒖젥�듃</span></label> + <js-autocomplete-single data-input-name="project" + selected-model="vm.form.parentProjects" + search="vm.projectName" + source="fn.getProjectList(vm.projectName, vm.form.parentProjects, vm.autoCompletePage.project.page, fn.getProjectListCallBack)" + page="vm.autoCompletePage.project.page" + total-page="vm.autoCompletePage.project.totalPage" + input-disabled="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> + </div> + </div> + </div> + <div class="form-group"> + <label><span translate="project.projectStatus">�봽濡쒖젥�듃 �긽�깭</span> <code class="highlighter-rouge">*</code></label> + <ul class="nav nav-pills smaller d-lg-flex"> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{active : vm.form.status == '01'}" data-toggle="tab" + ng-click="vm.form.status = '01'"> <span translate="common.wait">��湲�</span></a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{active : vm.form.status == '02'}" data-toggle="tab" + ng-click="vm.form.status = '02'"> <span translate="common.progress">吏꾪뻾</span></a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{active : vm.form.status == '03'}" data-toggle="tab" + ng-click="vm.form.status = '03'"> <span translate="common.end">醫낅즺</span></a> + </li> + </ul> + </div> + + <div class="form-group"> + <label><span translate="project.projectAdmin">�봽濡쒖젥�듃 愿�由ъ옄</span> <code class="highlighter-rouge">*</code></label> + <js-autocomplete-single data-input-name="managers" + selected-model="vm.form.managers" + search="vm.managerName" + source="fn.getUserList(vm.managerName, vm.form.managers.concat(vm.form.users), vm.autoCompletePage.manager.page, fn.getManagerListCallBack)" + page="vm.autoCompletePage.manager.page" + total-page="vm.autoCompletePage.manager.totalPage" + input-disabled="false" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"></js-autocomplete-single> + + <div class="select3-selection__choicediv mt-10"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.managers"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" ng-click="fn.removeManager($index)">횞</span> + </span> + </div> + </div> + + <div class="form-group"> + <label><span translate="project.projectTeam">�봽濡쒖젥�듃 ���썝</span> </label> + <js-autocomplete-multi data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + source="fn.getUserList(vm.userName, vm.form.users.concat(vm.form.managers))" + input-disabled="false" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100, autoResize : true }"></js-autocomplete-multi> + + <div class="select3-selection__choicediv mt-10"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" ng-click="fn.removeUsr($index)">횞</span> + </span> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(projectModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(projectModifyForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/qna/qnaAdd.html b/src/main/webapp/views/qna/qnaAdd.html new file mode 100644 index 0000000..bf32bfb --- /dev/null +++ b/src/main/webapp/views/qna/qnaAdd.html @@ -0,0 +1,59 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="QNA.registerQNA">QnA �벑濡�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="qnaAddForm"> + <div class="form-group"> + <label for="qnaAddForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="qnaAddForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="QNA.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(qnaAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(qnaAddForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/qna/qnaList.html b/src/main/webapp/views/qna/qnaList.html new file mode 100644 index 0000000..33bddd3 --- /dev/null +++ b/src/main/webapp/views/qna/qnaList.html @@ -0,0 +1,117 @@ +<div class="row"> + <div class="col-sm-12"> + + <div class="element-wrapper"> + <div class="element-actions"> + <button ng-click="fn.add()" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> + <span translate="QNA.registerQNA">QnA �벑濡�</span> + </button> + + <!-- + <form class="form-inline justify-content-sm-end pull-right" + method="post" + action="/user/downloadExcel" + name="userListForm"> + <input type="hidden" name="conditions"> + <button type="button" class="btn btn-info btn-xlg" + form-submit="userListForm" + make-search-conditions="fn.makeSearchConditions()"> + <span translate="common.downloadExcel">�뿊�� �떎�슫濡쒕뱶</span> + </button> + </form> + --> + </div> + + <h6 class="element-header" translate="QNA.QNA"> + QnA + </h6> + + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="qnaListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label for="qnaListForm1"> + <span translate="common.title">�젣紐�</span> + </label> + <input type="text" + name="title" + id="qnaListForm1" + autocomplete="off" + kr-input + owl-auto-focus + maxlength="50" + class="form-control" + ng-model="vm.search.title"> + </div> + </div> + + <div class="col-lg-8"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + </div> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + + </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="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> + diff --git a/src/main/webapp/views/qna/qnaModify.html b/src/main/webapp/views/qna/qnaModify.html new file mode 100644 index 0000000..4b8d839 --- /dev/null +++ b/src/main/webapp/views/qna/qnaModify.html @@ -0,0 +1,59 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="QNA.modifyQNA">QNA �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="qnaModifyForm"> + <div class="form-group"> + <label for="qnaModifyForm1"> + <span translate="common.title">�젣紐�</span> + <code class="highlighter-rouge">*</code> + </label> + <input id="qnaModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.form.title" + ng-maxlength="200" + maxlength="200" + required> + <small translate="QNA.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + + <div class="form-group"> + <label> + <span translate="common.content">�궡�슜</span> + <code class="highlighter-rouge">*</code> + </label> + <summernote + class="summernote" + lang="ko-KR" + required + config="vm.options" + ng-model="vm.form.description" + target=".note-editable"></summernote> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(qnaModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(qnaModifyForm.$invalid) || vm.isolationWorkflow" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/qna/qnaView.html b/src/main/webapp/views/qna/qnaView.html new file mode 100644 index 0000000..df9bc0b --- /dev/null +++ b/src/main/webapp/views/qna/qnaView.html @@ -0,0 +1,20 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong class="bold">{{vm.viewer.title}}</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <div ng-bind-html="$root.$sce.trustAsHtml(vm.viewer.description)"></div> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"> + <span translate="common.close">�떕湲�</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/support/support.html b/src/main/webapp/views/support/support.html new file mode 100644 index 0000000..d2ac404 --- /dev/null +++ b/src/main/webapp/views/support/support.html @@ -0,0 +1,25 @@ +<h6 class="element-header" translate="support.support"> + Support +</h6> +<div class="os-tabs-w"> + <div class="os-tabs-controls"> + <ul class="nav nav-tabs upper"> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'FAQ_TAB' }" ng-click="fn.changeTab('FAQ_TAB')" translate="support.supportFAQ"> FAQ</a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'QNA_TAB' }" ng-click="fn.changeTab('QNA_TAB')" translate="support.supportQNA"> QnA</a> + </li> + </ul> + </div> +</div> + +<div class="tab-content mt-30"> + <div ng-show="vm.tab == 'FAQ_TAB'"> + <div ng-include include-replace src="'views/faq/faqList.html'"></div> + </div> + + <div ng-show="vm.tab == 'QNA_TAB'"> + <div ng-include include-replace src="'views/qna/qnaList.html'"></div> + </div> +</div> diff --git a/src/main/webapp/views/task/taskAgileBoard.html b/src/main/webapp/views/task/taskAgileBoard.html new file mode 100644 index 0000000..2b08381 --- /dev/null +++ b/src/main/webapp/views/task/taskAgileBoard.html @@ -0,0 +1,83 @@ +<div class="row"> + <div class="col-sm-12"> + <div class="element-wrapper"> + <h6 class="element-header" translate="tasks.agileBoardTitle"> + 媛꾪듃 李⑦듃 + </h6> + <div class="element-box"> + + <div class="pipelines-w"> + <div class="pipeline-blockdiv"> + <div class="pipeline-block" ng-repeat="workflowStatus in vm.workflowStatus"> + <div class="pipeline white lined-none" + ng-style="{ 'border-color' : workflowStatus.borderColor }"> + <div class="pipeline-header"> + <h5 class="pipeline-name cursor" ng-click="fn.modifyStatus(workflowStatus.id)"> + {{::workflowStatus.name}} + </h5> + <div class="pipeline-settings"> + {{workflowStatus.taskVos.length}}媛� + </div> + </div> + <div class="pipeline-scrolldiv"> + <div class="pipeline-scroll"> + <div class="pipeline-body" card-textarea> + <textarea class="form-control task-textarea taskheight" + rows="2" + name="title" + owl-auto-text-height + placeholder="+ �븷 �씪�쓣 �엯�젰�븯�꽭�슂" + kr-input + ng-model="workflowStatus.taskTitle"></textarea> + <div class="pi-btn"> + <button class="mr-2 btn btn-danger btn-sm task-textarea-btn hide task-add-btn" + type="button" + tabindex="0" + ng-click="fn.taskAdd(workflowStatus);" + owl-task-auto-button> + <i class="os-icon os-icon-check"></i> + </button> + <button class="btn btn-secondary btn-sm task-textarea-btn hide" + type="button" ng-click="workflowStatus.taskTitle = ''" + owl-task-auto-button> + <i class="os-icon os-icon-close"></i> + </button> + </div> + + <ul class="connectList" + style="padding-left:0px; min-height:300px;" + owl-profile-over + agile-card-sortable + id="status_{{::workflowStatus.id}}" + data-status-id="{{::workflowStatus.id}}"> + <li class="temp-pipeline-item" + ng-repeat="row in workflowStatus.taskVos" + ng-click="fn.taskModify(row)" + card-content="row" + data-temp-status-id="{{::workflowStatus.id}}" + data-task-id="{{::row.id}}"></li> + </ul> + + </div> + </div> + </div> + </div> + </div> + <!-- + <div class="pipeline-block"> + <div class="pipeline-block"> + <div class="pipeline add "> + <button class="btn btn-pipeadd" type="button"> + <img src="/assets/styles/images/pipe-add.png"><br> + <span>�긽�깭瑜� 異붽��븯�꽭�슂</span> + </button> + + </div> + </div> + </div>--> + </div> + </div> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/task/taskExcelImport.html b/src/main/webapp/views/task/taskExcelImport.html new file mode 100644 index 0000000..52f0df4 --- /dev/null +++ b/src/main/webapp/views/task/taskExcelImport.html @@ -0,0 +1,50 @@ +<div class="formModal"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" + aria-hidden="true" ng-click="fn.cancel()">횞 + </button> + <h4 class="modal-title">Excel Import</h4> + </div> + <div class="modal-body"> + <form name="excelTemplateDownload" method="post" action="/task/excelTemplateDownload"></form> + + <form role="form" name="taskExcelImportForm"> + <button type="button" class="btn btn-sm btn-primary" ng-click="fn.excelTemplateDownload()">�뿊�� �뼇�떇 �떎�슫濡쒕뱶 + </button> + + <button type="button" class="btn btn-sm btn-danger" ng-click="vm.videoView = !vm.videoView"><i class="fa fa-youtube-play" aria-hidden="true"></i> �룞�쁺�긽 �삁�젣</button> + + <div ng-show="vm.videoView" class="pdt5"> + <video style="width:100%;" src="/excelTemplate/excelExample.mp4" controls autoplay loop muted preload="auto"></video> + </div> + + <div class="form-group mgt10"> + <label>�뿊�� �뾽濡쒕뱶</label> + <input class="form-control" type="file" + ng-file-select="fn.onFileSelect($files)"/> + </div> + + <div class="form-group"> + <label>�떞�떦�옄</label> + <js-input-autocomplete data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" + input-disabled="vm.form.projects.length == 0" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100, autoResize : true }"></js-input-autocomplete> + <span class="help-block m-b-none">�떞�떦�옄�쓽 �씠硫붿씪 二쇱냼瑜� �솗�씤�븷 �닔 �엳�뒿�땲�떎.</span> + + <owl-table data="vm.form.users" table-configs="vm.userTableConfigs" event="userTableEvent"></owl-table> + </div> + </form> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-white" ng-click="fn.cancel()">痍⑥냼</button> + <button type="button" class="btn btn-primary" + ng-disabled="fn.formCheck(taskExcelImportForm.$invalid)" + ng-click="fn.formSubmit()">�쟾�넚 + </button> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/task/taskModify.html b/src/main/webapp/views/task/taskModify.html new file mode 100644 index 0000000..c5cd66a --- /dev/null +++ b/src/main/webapp/views/task/taskModify.html @@ -0,0 +1,176 @@ +<div class="modal-header2 faded smaller "> + <div class="modal-title"> + <textarea class="form-control2" + placeholder="�깭�뒪�겕 �젣紐⑹쓣 �엯�젰�븯�꽭�슂" + name="title" + owl-auto-text-height + kr-input + ng-model="vm.form.title" + ng-blur="fn.formSubmit()"></textarea> + + <button aria-label="Close" class="close close2" data-dismiss="modal" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-bytxt"> + <!--btn-outline �뱾�뼱媛� 遺�遺꾩씠 �뀒�몢由� 踰꾪듉�엫--> + �긽�깭: + <div class="btn-group"> + <button type="button" class="btn btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false" + ng-class="vm.form.workflowStatusColor">{{vm.form.workflowStatusName}}<span class="caret"></span> + </button> + <ul class="dropdown-menu text-center" role="menu"> + <li ng-repeat="workflowStatus in vm.workflowStatus"> + <a class="btn btn-sm btn-block " ng-click="fn.changeStatus(workflowStatus)" + ng-class="::workflowStatus.color">{{::workflowStatus.name}}</a> + </li> + </ul> + </div> + 以묒슂�룄: + <div class="btn-group"> + <button type="button" class="btn btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false" + ng-class="vm.form.priorityColor">{{vm.form.priorityName}} + <span class="caret"></span> + </button> + <ul class="dropdown-menu text-center" role="menu"> + <li ng-repeat="priority in $root.priorities"> + <a class="btn btn-sm btn-block" ng-class="::priority.color" ng-click="fn.changePriority(priority)"> + {{::priority.fieldValue}} </a> + </li> + </ul> + </div> + + <span class="writer ml-2"><a href="" ng-click="fn.taskRemove()"><i class="os-icon os-icon-ui-15"></i> �깭�뒪�겕 �궘�젣</a></span> + <span class="writer">by {{vm.form.registerName}} at {{vm.form.registerDate}}</span> + + </div> +</div> +<div class="modal-body"> + <div class="row"> + <div class="col-sm-6"> + <div class="form-group"> + <label for="taskModifyForm1"><i class="os-icon os-icon-newspaper"></i> �깭�뒪�겕 �꽕紐�</label> + <textarea id="taskModifyForm1" + class="form-control" + name="description" + rows="3" + kr-input + ng-model="vm.form.description" + ng-blur="fn.formSubmit()"></textarea> + </div> + <div class="form-group"> + <label><i class="os-icon os-icon-user-male-circle"></i> �떞�떦�옄</label> + <js-autocomplete-multi data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + broad-cast="taskUserUpdate" + input-disabled="false" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"></js-autocomplete-multi> + + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="select3-selection__choice__remove" ng-click="fn.taskUserRemove(user.id)">횞</span> + <span class="avatar-w"><img src="assets/styles/images/avatar7.jpg"></span> + <span>{{user.name}}({{user.account}})</span> + </span> + </div> + </div> + <div class="form-group"> + <label for="taskModifyForm2"> <i class="os-icon os-icon-ui-51"></i> �뙆�씪 泥⑤�</label> + <div class="filebox input-group"> + <input class="upload-name form-control" value="�뙆�씪�쓣 �꽑�깮�븯�꽭�슂" disabled="disabled"> + <label for="ex_filename">�뙆�씪�꽑�깮</label> + <input type="file" id="ex_filename" class="upload-hidden" id="taskModifyForm2" + class="form-control" + multiple + ng-file-select="fn.onFileSelect($files)"> + </div> + + <div class="select2-selection__choicediv"> + <div class="select2-selection__choice" ng-repeat="attachedFile in vm.form.attachedFiles"> + <div class="select2-selection__choice__remove" ng-click="fn.fileRemove(attachedFile)">횞</div> + <a href="attached/download?id={{attachedFile.id}}" style="text-decoration: none!important;"> + <div class="ssg-items ssg-items-blocks"> + <div class="ssg-item" > + <div class="item-icon" owl-attached-file-type="attachedFile"></div> + <div class="item-name"> + <small>{{attachedFile.name}}</small> + </div> + </div> + </div> + </a> + </div> + </div> + </div> + </div> + <div class="col-sm-6"> + <div class="form-group"> + <label for="taskModifyForm3"> <i class="os-icon os-icon-calendar"></i> �떆�옉�씪 ~ 醫낅즺�씪</label> + <div class="date-input"> + <input type="text" + id="taskModifyForm3" + class="form-control" + ng-model="vm.form.startCompleteDateRange" + parent-el="'#createdWidget'" + range-type="date" + date-format="YYYY-MM-DD" + broad-cast="dateUpdate" + date-range-picker> + <div class="row"> + <div class="col-xs-12"> + <div id="createdWidget" class="bootstrap-datepicker"></div> + </div> + </div> + </div> + </div> + + <div class="form-group"> + <label for="taskModifyForm4"> <i class="os-icon os-icon-mail-07"></i> �뙎湲�</label> + <div class="ae-item" ng-repeat="taskComment in vm.form.taskComments"> + <div class="aei-image"> + <div class="user-avatar-w"> + <img alt="image" ng-src="{{::taskComment.profile}}"> + </div> + </div> + <div class="aei-content"> + <div class="aei-delete" ng-click="fn.removeComment(taskComment)" ng-show="taskComment.registerId == $root.user.id"> + <i class="os-icon os-icon-close"></i> + </div> + <div class="aei-timestamp"> + {{::taskComment.registerDate}} + </div> + <h6 class="aei-title"> + {{::taskComment.registerName}} + </h6> + <div class="aei-text"> + {{::taskComment.comment}} + </div> + </div> + </div> + + <div class="form-group"> + <div class="input-group"> + <form role="form" ng-enter="fn.addComment()" class="comment-form"> + <input class="form-control" + id="taskModifyForm4" + placeholder="�뙎湲��쓣 �엯�젰�븯�꽭�슂..." + type="text" + kr-input + ng-model="vm.form.comment"> + </form> + <div class="input-group-prepend"> + <div class="input-group-text" ng-click="fn.addComment()"> + <i class="os-icon os-icon-mail-18"></i> + </div> + </div> + </div> + </div> + + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/user/superUserAdd.html b/src/main/webapp/views/user/superUserAdd.html new file mode 100644 index 0000000..d6e6596 --- /dev/null +++ b/src/main/webapp/views/user/superUserAdd.html @@ -0,0 +1,178 @@ +<div class="content-box"> + <div class="row"> + <div class="join-box"> + <a href="http://owlsolution.co.kr" target="_self"><img alt="" src="/assets/images/logo-owl-dark.png" class="join-logo"></a> + <div class="join"> + <h4 translate="users.setupOWLITSMembership">OWL ITS 理쒓퀬愿�由ъ옄 �깮�꽦</h4> + <form name="userAddForm"> + <div class="row"> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm1"> <span translate="common.email">�씠硫붿씪</span> <code + class="highlighter-rouge">*</code></label> + <input id="userAddForm1" + type="email" + class="form-control" + name="email" + autocomplete="off" + maxLength="50" + autofocus + owl-auto-focus + ng-model="vm.form.account" + kr-input + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + required> + <div ng-show="userAddForm.email.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + <small class="fc-grey" translate="users.enterYourEmailAddress">�엯�젰�븳 �씠硫붿씪濡� �븣由쇱씠 諛쒖넚�맗�땲�떎. 瑗� �궗�슜�븯�떆�뒗 �씠硫붿씪濡� + �엯�젰�븯�꽭�슂. + </small> + </div> + </div> + + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm5"> <span translate="common.name">�씠由�</span> <code + class="highlighter-rouge">*</code></label> + <input id="userAddForm5" + type="text" + class="form-control" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + ng-model="vm.form.name" + kr-input + autocomplete="off" + maxLength="10" + required> + </div> + </div> + </div> + <div class="row"> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm3"> <span translate="common.password">鍮꾨�踰덊샇</span> <code + class="highlighter-rouge">*</code></label> + <input id="userAddForm3" + type="password" + class="form-control" + name="password" + kr-input + autocomplete="off" + ng-model="vm.form.password" + minlength="4" + maxLength="20" + required> + <div ng-show="userAddForm.password.$error.minlength" class="help-block form-text text-danger" + translate="users.least4CharactersPassword">鍮꾨�踰덊샇�뒗 理쒖냼 4�옄 �씠�긽 �엯�젰�빐�빞 �빀�땲�떎. + </div> + <small class="fc-grey" translate="users.enter4CharactersPassword">鍮꾨�踰덊샇�뒗 4�옄 �씠�긽�쑝濡� �엯�젰�븯�꽭�슂.</small> + </div> + </div> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm4"><span translate="users.checkPassword">鍮꾨�踰덊샇�솗�씤</span> <code + class="highlighter-rouge">*</code></label> + <input id="userAddForm4" + type="password" + class="form-control" + name="passwordConfirm" + kr-input + autocomplete="off" + ng-model="vm.form.passwordConfirm" + minlength="4" + maxLength="20" + required> + <div class="help-block form-text text-danger" ng-show="(vm.form.password != vm.form.passwordConfirm) && + (vm.form.password.length > 3 && vm.form.passwordConfirm.length > 3)" + translate="users.differentPassword">鍮꾨�踰덊샇媛� �떎由낅땲�떎. + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-sm-6"> + <div class="form-group"> + <div class="form-group"> + <label for="userAddForm10"> <span>License Key</span></label> + <input id="userAddForm10" + type="text" + class="form-control" + ng-model="vm.form.licensekey" + kr-input + autocomplete="off" + maxLength="20"> + <small class="fc-grey">Insert License Key. + </small> + </div> + </div> + </div> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm7"> <span translate="common.workspace">�뾽臾닿났媛�</span></label> + <input id="userAddForm7" + type="text" + class="form-control" + ng-model="vm.form.workspaceName" + kr-input + autocomplete="off" + maxLength="20" + > + <small class="fc-grey" translate="users.enterTheNameInWorkspace">�궗�슜�븯怨� �떢�� �뾽臾닿났媛꾩쓽 �씠由꾩쓣 �엯�젰�븯�꽭�슂. + </small> + </div> + </div> + + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm6"><span translate="users.phoneNumber">�뿰�씫泥�</span> </label> + <input id="userAddForm6" + type="text" + maxLength="20" + class="form-control" + input-regex="[^0-9]" + kr-input + autocomplete="off" + ng-model="vm.form.phone"> + <small class="fc-grey"><span translate="users.contactedEnterPhone">�뿰�씫媛��뒫�븳 �빖�뱶�룿 踰덊샇瑜� �엯�젰�븯�꽭�슂.</span> + </small> + </div> + </div> + </div> + + <div class="row"> + <div class="col-sm-12"> + <div class="form-group"> + <label for="userAddForm8"> <span translate="common.profilePicture">�봽濡쒗븘 �궗吏�</span> </label> + <div class="filebox input-group"> + <input class="upload-name form-control" + placeholder="{{'users.pleaseSelectFile' | translate}}" disabled="disabled" + ng-model="vm.form.profileImageName" tabindex="-1"> + <label for="userAddForm8"><span translate="common.selectFile">�뙆�씪�꽑�깮</span></label> + <input type="file" + id="userAddForm8" + class="form-control" + accept=".jpg, .png" + tabindex="-1" + ng-file-select="fn.onFileSelect($files)"> + <div class="fc-blue mt-5"> + {{::vm.form.profileImageName}} + </div> + </div> + + <small class="fc-grey" translate="users.selectProfileShowOther">�떎瑜� �궗�슜�옄�뱾�뿉寃� 蹂댁뿬以� �봽濡쒗븘�쓣 �꽑�깮�븯�꽭�슂. + </small> + </div> + </div> + </div> + + </form> + <button class="btn btn-lg btn-block btn-primary joinbtn" + js-short-cut + js-short-cut-action="(fn.formCheck(userAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(userAddForm.$invalid)" + type="button" + ng-click="fn.formSubmit()"><span translate="users.superJoin">理쒓퀬愿�由ъ옄 怨꾩젙 �깮�꽦</span></button> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/user/userAdd.html b/src/main/webapp/views/user/userAdd.html new file mode 100644 index 0000000..38b8cb0 --- /dev/null +++ b/src/main/webapp/views/user/userAdd.html @@ -0,0 +1,389 @@ + <div class="content-box"> + <div class="row"> + <div class="join-box"> + <a href="http://owlsolution.co.kr" target="_self"><img alt="" src="/assets/images/logo-owl-dark.png" class="join-logo"></a> + <span class="login-btn"><span translate="users.usedAccount">�씠誘� 怨꾩젙�씠 �엳�쑝�떊媛��슂?</span> + <a class="link" ui-sref="login">Log in</a> + </span> + <div class="join"> + <h4 translate="users.joinOWLITSMembership">OWL ITS �쉶�썝媛��엯</h4> + <form name="userAddForm"> + <div class="row"> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm1"> <span translate="common.email">�씠硫붿씪</span> <code + class="highlighter-rouge">*</code></label> + <input id="userAddForm1" + type="email" + class="form-control" + name="email" + autocomplete="off" + maxLength="50" + autofocus + owl-auto-focus + ng-model="vm.form.account" + kr-input + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + required> + <div ng-show="userAddForm.email.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + <small class="fc-grey" translate="users.enterYourEmailAddress">�엯�젰�븳 �씠硫붿씪濡� �븣由쇱씠 諛쒖넚�맗�땲�떎. 瑗� �궗�슜�븯�떆�뒗 �씠硫붿씪濡� + �엯�젰�븯�꽭�슂. + </small> + </div> + </div> + + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm5"> <span translate="common.name">�씠由�</span> <code + class="highlighter-rouge">*</code></label> + <input id="userAddForm5" + type="text" + class="form-control" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + ng-model="vm.form.name" + kr-input + autocomplete="off" + maxLength="10" + required> + </div> + </div> + </div> + <div class="row"> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm3"> <span translate="common.password">鍮꾨�踰덊샇</span> <code + class="highlighter-rouge">*</code></label> + <input id="userAddForm3" + type="password" + class="form-control" + name="password" + kr-input + autocomplete="off" + ng-model="vm.form.password" + minlength="4" + maxLength="20" + required> + <div ng-show="userAddForm.password.$error.minlength" class="help-block form-text text-danger" + translate="users.least4CharactersPassword">鍮꾨�踰덊샇�뒗 理쒖냼 4�옄 �씠�긽 �엯�젰�빐�빞 �빀�땲�떎. + </div> + <small class="fc-grey" translate="users.enter4CharactersPassword">鍮꾨�踰덊샇�뒗 4�옄 �씠�긽�쑝濡� �엯�젰�븯�꽭�슂.</small> + </div> + </div> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm4"><span translate="users.checkPassword">鍮꾨�踰덊샇�솗�씤</span> <code + class="highlighter-rouge">*</code></label> + <input id="userAddForm4" + type="password" + class="form-control" + name="passwordConfirm" + kr-input + autocomplete="off" + ng-model="vm.form.passwordConfirm" + minlength="4" + maxLength="20" + required> + <div class="help-block form-text text-danger" ng-show="(vm.form.password != vm.form.passwordConfirm) && + (vm.form.password.length > 3 && vm.form.passwordConfirm.length > 3)" + translate="users.differentPassword">鍮꾨�踰덊샇媛� �떎由낅땲�떎. + </div> + </div> + </div> + </div> + <div class="row" ng-if="!$root.checkHasPrimaryWorkspace()"> + <div class="col-sm-6"> + <div class="form-group"> + <div class="form-group"> + <label for="userAddForm10"> <span>License Key</span></label> + <input id="userAddForm10" + type="text" + class="form-control" + ng-model="vm.form.licensekey" + kr-input + autocomplete="off" + maxLength="20"> + <small class="fc-grey">Insert License Key. + </small> + </div> + </div> + </div> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm7"> <span translate="common.workspace">�뾽臾닿났媛�</span></label> + <input id="userAddForm7" + type="text" + class="form-control" + ng-model="vm.form.workspaceName" + kr-input + autocomplete="off" + maxLength="20"> + <small class="fc-grey" translate="users.enterTheNameInWorkspace">�궗�슜�븯怨� �떢�� �뾽臾닿났媛꾩쓽 �씠由꾩쓣 �엯�젰�븯�꽭�슂. + </small> + </div> + </div> + </div> + <div class="row"> + <div class="col-sm-6"> + </div> + + <div class="col-sm-6"> + <div class="form-group"> + <label for="userAddForm6"><span translate="users.phoneNumber">�뿰�씫泥�</span> </label> + <input id="userAddForm6" + type="text" + maxLength="20" + class="form-control" + input-regex="[^0-9]" + kr-input + autocomplete="off" + ng-model="vm.form.phone"> + <small class="fc-grey"><span translate="users.contactedEnterPhone">�뿰�씫媛��뒫�븳 �빖�뱶�룿 踰덊샇瑜� �엯�젰�븯�꽭�슂.</span> + </small> + </div> + </div> + </div> + <div class="row"> + <div class="col-sm-12"> + <div class="form-group"> + <label for="userAddForm8"> <span translate="common.profilePicture">�봽濡쒗븘 �궗吏�</span> </label> + <div class="filebox input-group"> + <input class="upload-name form-control" + placeholder="{{'users.pleaseSelectFile' | translate}}" disabled="disabled" + ng-model="vm.form.profileImageName" tabindex="-1"> + <label for="userAddForm8"><span translate="common.selectFile">�뙆�씪�꽑�깮</span></label> + <input type="file" + id="userAddForm8" + class="form-control" + accept=".jpg, .png" + tabindex="-1" + ng-file-select="fn.onFileSelect($files)"> + <div class="fc-blue mt-5"> + {{::vm.form.profileImageName}} + </div> + </div> + + <small class="fc-grey" translate="users.selectProfileShowOther">�떎瑜� �궗�슜�옄�뱾�뿉寃� 蹂댁뿬以� �봽濡쒗븘�쓣 �꽑�깮�븯�꽭�슂. + </small> + </div> + </div> + </div> + <!-- + <div class="row"> + <div class="col-sm-12"> + <div class="form-group"> + <label><span translate="users.privacyPolicy">媛쒖씤�젙蹂� 泥섎━諛⑹묠</span> <code + class="highlighter-rouge">*</code></label> + <div style="background-color:#f7f7f7; border:1px solid #ddd;width:100%; height:100px; font-size:0.69rem; line-height:1.3; color:#333; overflow-x: auto; padding:7px;" + class="col-sm-12" translate="users.privacyPolicy1"> + 媛쒖씤�젙蹂� 泥섎━諛⑹묠<br><br> + 二쇱떇�쉶�궗 ���씠利덉뒪�넠(�씠�븯 �쒗쉶�궗��)�� 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� 留ㅼ슦 以묒슂�떆�븯硫�, �젙蹂댄넻�떊留� �씠�슜珥됱쭊 諛� �젙蹂대낫�샇�뿉 愿��븳 踰뺣쪧�쓣 以��닔�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 媛쒖씤�젙蹂� + 泥섎━諛⑹묠�쓽 怨듦컻瑜� �넻�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂닿� + �뼱�뼚�븳 紐⑹쟻怨� 諛⑹떇�쑝濡� �씠�슜�릺怨� �엳�쑝硫� 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 �뼱�뼚�븳 議곗튂媛� 痍⑦빐吏�怨� �엳�뒗吏�瑜� �븣�젮 �뱶由쎈땲�떎. 蹂� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 愿��젴 踰뺣졊�쓽 媛쒖젙�씠�굹 �쉶�궗 + �궡遺�諛⑹묠�뿉 �쓽�빐 蹂�寃쎈맆 �닔 �엳�뒿�땲�떎. 蹂�寃쎈맆 �떆�뿉�뒗 + �뼵�젣�뱺吏� 洹� �궡�슜怨� �씠�쑀瑜� �돺寃� �븣 �닔 �엳�룄濡� 怨듭��궗�빆�쓣 �넻�븯�뿬 �븣�젮�뱶由ш쿋�뒿�땲�떎.<br> + + �젣 1議� (媛쒖씤�젙蹂댁쓽 �닔吏묓빆紐� 諛� �씠�슜紐⑹쟻)<br> + 怨좉컼�씠 �룞�쓽�븳 �씠�슜�빟愿��뿉 �뵲�씪 OWL �꽌鍮꾩뒪(OWL solution �궗�씠�듃 諛� OWL ITS �씠�븯 �쏰WL �꽌鍮꾩뒪��)�쓽 �떎�뼇�븳 湲곕뒫�쓣 �젣怨듯븯湲� �쐞�빐�꽌, �쉶�궗�뒗 + 怨좉컼�떂�쑝濡쒕��꽣 �떎�쓬怨� 媛숈� 媛쒖씤�젙蹂�(�룷愿꾪븯�뿬 �씠�븯 + �쒓컻�씤�젙蹂닳��)瑜� �닔吏�, 蹂닿��븯怨� �엳�뒿�땲�떎.<br> + (1) �븘�닔�엯�젰�궗�빆<br> + �몺 �쉶�썝媛��엯 �떆 �닔吏묓빆紐�: �씠硫붿씪, �씠由�<br> + (2) �꽑�깮�엯�젰�빆紐�<br> + �몺 �궗吏�<br> + (3) �꽌鍮꾩뒪 �씠�슜 �삉�뒗 �궗�뾽泥섎━ 怨쇱젙�뿉�꽌 �깮�꽦 �닔吏묐릺�뒗 媛곸쥌 嫄곕옒 諛� 媛쒖씤 �꽦�뼢 �젙蹂�<br> + �몺 �꽌鍮꾩뒪 �씠�슜湲곕줉, �젒�냽濡쒓렇, 荑좏궎, �젒�냽 IP�젙蹂�, 寃곗젣湲곕줉, 遺덈웾�씠�슜湲곕줉<br> + (4) �닔吏묅���씠�슜紐⑹쟻<br> + �몺 �꽌鍮꾩뒪(�젣�뭹) 臾몄쓽 �벑�뿉 ���븳 �긽�떞�씠�굹 �쓳��瑜� �쐞�븳 �솢�룞<br> + �몼 �쉶�썝�젣 �꽌鍮꾩뒪 �씠�슜�뿉 �뵲瑜� 蹂몄씤�솗�씤, 媛쒖씤�떇蹂�, 遺덈웾�쉶�썝�쓽 遺��젙 �씠�슜諛⑹��� 鍮꾩씤媛� �궗�슜諛⑹�, 媛��엯�쓽�궗 �솗�씤, 遺꾩웳議곗젙�쓣 �쐞�븳 湲곕줉蹂댁〈, 遺덈쭔泥섎━ �벑 誘쇱썝泥섎━, + 怨좎��궗�빆 �쟾�떖<br> + �몾 �꽌鍮꾩뒪 �젣怨듭뿉 愿��븳 怨꾩빟�씠�뻾 諛� �꽌鍮꾩뒪 �젣怨듭뿉 �뵲瑜� �슂湲덉젙�궛 諛� �듅�젙 留욎땄�꽌鍮꾩뒪 �젣怨�(泥�援ъ꽌 �벑 諛쒖넚, �슂湲덇껐�젣)<br> + �몿 �떊洹� �꽌鍮꾩뒪(�젣�뭹) 媛쒕컻 �넻怨꾪븰�쟻 �듅�꽦�뿉 �뵲瑜� �꽌鍮꾩뒪 �젣怨�, �듅�솕, �씠踰ㅽ듃 �벑 愿묎퀬�꽦 �젙蹂댁쟾�떖 諛� 李몄뿬湲고쉶 �젣怨�, �꽌鍮꾩뒪�쓽 �쑀�슚�꽦 �솗�씤, �젒�냽 鍮덈룄 �뙆�븙 �삉�뒗 + �쉶�썝�쓽 �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 �넻怨�<br> + + �젣 2議� (媛쒖씤�젙蹂댁쓽 �닔吏묐갑踰�)<br> + �솃�럹�씠吏� �쉶�썝媛��엯, �쉶�썝�젙蹂댁닔�젙, �쟾�솕, �씠硫붿씪, �꽭誘몃굹/�꽕臾�/�씠踰ㅽ듃 �떊泥�, 臾몄쓽 諛� �긽�떞, �젣�쑕臾몄쓽, �깮�꽦�젙蹂� �닔吏� �댋 �벑�쓣 �넻�븯�뿬 �룞�쓽�븳 寃쎌슦�뿉留� 媛쒖씤�젙蹂대�� + �닔吏묓빀�땲�떎.<br> + + �젣 3議� (媛쒖씤�젙蹂� �옄�룞�닔吏묒옣移섏쓽 �꽕移� �슫�쁺 諛� 洹� 嫄곕�諛⑸쾿)<br> + �쉶�궗�뒗 怨좉컼�씠 �솃�럹�씠吏�瑜� �씠�슜�븯�뒗 寃쎌슦 怨좉컼�쓽 �젙蹂대�� �닔�떆濡� ���옣�븯怨� 李얠븘�궡�뒗 "荑좏궎(cookie)"�� �솃�럹�씠吏� �궗�슜湲곕줉(�씠�븯 "�넻怨꾨뜲�씠�꽣")�쓣 �옄�룞�쑝濡� �닔吏묓븯�뒗 + �옣移섎�� �꽕移섃���슫�쁺�븷 �닔 �엳�뒿�땲�떎.<br> + (1) 荑좏궎(cookie)��?<br> + 荑좏궎�뒗 �솃�럹�씠吏�媛� 怨좉컼�쓽 �쎒 釉뚮씪�슦��濡� �쟾�넚�븯�뒗 �냼�웾�쓽 �젙蹂댁엯�땲�떎. 怨좉컼�씠 �솃�럹�씠吏��뿉 �젒�냽�븯硫� �쉶�궗�쓽 而댄벂�꽣�뒗 怨좉컼�쓽 釉뚮씪�슦���뿉 �엳�뒗 荑좏궎�쓽 �궡�슜�쓣 �씫怨�, 怨좉컼�쓽 + 異붽��젙蹂대�� 怨좉컼�쓽 而댄벂�꽣�뿉�꽌 李얠븘 �젒�냽�뿉 �뵲瑜� + �꽦紐� �벑�쓽 異붽� �엯�젰 �뾾�씠 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �엳�뒿�땲�떎. �삉�븳, 怨좉컼�� 荑좏궎�뿉 ���븳 �꽑�깮沅뚯씠 �엳�뒿�땲�떎. �쎒 釉뚮씪�슦�� �긽�떒�쓽 "�룄援�> �씤�꽣�꽬 �샃�뀡 �꺆�뿉�꽌 紐⑤뱺 荑좏궎瑜� + �떎 諛쏆븘�뱾�씠嫄곕굹, 荑좏궎媛� �꽕移섎맆 �븣 �넻吏�瑜� + 蹂대궡�룄濡� �븯嫄곕굹, �븘�땲硫� 紐⑤뱺 荑좏궎瑜� 嫄곕��븷 �닔 �엳�뒗 �꽑�깮沅뚯쓣 媛�吏� �닔 �엳�뒿�땲�떎. �떒, 怨좉컼�뿉寃뚯꽌 荑좏궎�꽕移섎�� 嫄곕��븯���쓣 寃쎌슦 �꽌鍮꾩뒪 �씠�슜�뿉 遺덊렪�씠 �엳嫄곕굹, �꽌鍮꾩뒪 + �젣怨듭뿉 �뼱�젮���씠 �엳�쓣 �닔 �엳�뒿�땲�떎<br> + (2) �넻怨꾨뜲�씠�꽣��?<br> + �솃�럹�씠吏�, �씠�룞�쟾�솕 �벑�쓽 �꽌鍮꾩뒪 �씠�슜 �떆 而댄벂�꽣 諛� �떒留먭린�쓽 �듅�젙�쁺�뿭�뿉 ���옣�릺怨�, 二쇨린�쟻�쑝濡� �쉶�궗�쓽 �꽌踰꾨줈 �쟾�떖�릺�뒗 �븘�옒�� 媛숈� �젙蹂댁엯�땲�떎.<br> + �몺 �꽌鍮꾩뒪 �궗�슜�넻怨�(�샇�젒�냽, �샇�젅�떒, �샇�떎�뙣 �떆 留앺솚寃�, �떎�슫濡쒕뱶 �떎�뻾�삤瑜�, �쑀/臾댁씤�꽣�꽬 �젒�냽�떎�뙣 諛� �젒�냽�떆媛� �벑)<br> + �몼 �궗�슜 �뙣�꽩 �젙蹂�(怨좉컼�쓽 硫붾돱 �씠�룞寃쎈줈, 二쇰줈 �씠�슜�븯�뒗 �꽌鍮꾩뒪, �꽌鍮꾩뒪 �씠�슜�슏�닔, 諛⑸Ц湲곕줉 �벑)<br> + (3) �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �슫�쁺<br> + �쉶�궗�뒗 怨좉컼�쓽 �렪�쓽瑜� �쐞�븯�뿬 荑좏궎, �넻怨꾨뜲�씠�꽣瑜� �슫�쁺�빀�땲�떎. �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �궗�슜紐⑹쟻�� �떎�쓬怨� 媛숈뒿�땲�떎.<br> + �몺 愿��떖 �엳寃� �몮�윭蹂� �궡�슜�뱾�뿉 ���븳 �옄痍⑤�� 異붿쟻�븯�뿬 �떎�쓬 踰� �젒�냽 �븣 媛쒖씤 留욎땄 �꽌鍮꾩뒪瑜� �젣怨�<br> + �몼 �쉶�썝怨� 鍮꾪쉶�썝�쓽 �젒�냽鍮덈룄 �삉�뒗 癒몃Ц �떆媛� �벑�쓣 遺꾩꽍�븯�뿬 怨좉컼�쓽 痍⑦뼢怨� 愿��떖遺꾩빞瑜� �뙆�븙�븯怨� �쉶�썝�뱾�쓽 �뒿愿��쓣 遺꾩꽍�븯�뿬 �꽌鍮꾩뒪 媛쒗렪 �떆 湲곗��쑝濡� �씠�슜 + ��源�(target) 留덉��똿�뿉 �솢�슜<br> + �몾 �쑀猷뚯꽌鍮꾩뒪 �씠�슜 �떆 �씠�슜湲곌컙 �븞�궡<br> + �몿 臾몄쓽 諛� �긽�떞 湲� �벑濡� �렪�쓽�꽦 �젣怨�<br> + + �젣 4議� (媛쒖씤�젙蹂댁쓽 �씠�슜 諛� �젣3�옄 �젣怨�)<br> + (1) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 媛��엯�떊泥��꽌, �씠�슜�빟愿�, 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 "媛쒖씤�젙蹂� �닔吏묅���씠�슜 紐⑹쟻�긽 怨좎��븳 踰붿쐞 �궡�뿉�꽌 �씠�슜 諛� �젣怨듯븯硫�, 洹� 踰붿쐞瑜� �꽆�뼱�꽌 + �씠�슜�븯嫄곕굹 �젣怨듯븯吏� �븡�뒿�땲�떎. �듅�엳, �떎�쓬�쓽 + 寃쎌슦�뒗 二쇱쓽瑜� 湲곗슱�뿬 媛쒖씤�젙蹂대�� �씠�슜 諛� �젣怨듯븷 寃껋엯�땲�떎.<br> + �몺 �젣�쑕愿�怨�<br> + 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂대�� �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨� �븷 �닔 �엳�뒿�땲�떎. �씠 寃쎌슦 �궗�쟾�뿉 怨좉컼�뿉寃� �젣�쑕�궗媛� �늻援ъ씤吏�, 怨듭쑀 �삉�뒗 �젣怨듬릺�뒗 + 媛쒖씤�젙蹂댁쓽 �빆紐⑹씠 臾댁뾿�씤吏�, �뼱�뼚�븳 + �씠�쑀�뿉�꽌 媛쒖씤�젙蹂닿� 怨듭쑀�릺嫄곕굹 �젣怨듬릺�뼱�빞 �븯�뒗吏�, 洹몃━怨� �뼱�뼸寃� �뼵�젣源뚯� 蹂닿���愿�由щ릺�뒗吏��뿉 愿��븯�뿬 媛쒕퀎�쟻�쑝濡� �쟾�옄�쟻 諛⑸쾿�씠�굹, �쟾�솕, �꽌硫�, �뙥�뒪, �슦�렪 �벑�쓣 �넻�빐 + 怨좎��븯�뿬 �룞�쓽瑜� 援ы븯�뒗 �젅李⑤�� 嫄곗튂寃� �릺硫�, + 怨좉컼�씠 �룞�쓽�븯吏� �븡�뒗 寃쎌슦�뿉�뒗 �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨듬릺吏� �븡�뒿�땲�떎.<br> + (2) �쉶�궗�뒗 �꽌鍮꾩뒪�쓽 �젣怨듭뿉 愿��븳 怨꾩빟�쓣 �씠�뻾�븯湲� �쐞�븯�뿬 �븘�슂�븳 媛쒖씤�젙蹂대줈�꽌 湲곗닠�쟻��寃쎌젣�쟻�씤 �궗�쑀濡� �넻�긽�쟻�씤 �룞�쓽瑜� 諛쏅뒗 寃껋씠 �슌�졆�븯寃� 怨ㅻ��븳 寃쎌슦�뿉�뒗 怨좉컼�쓽 + �룞�쓽媛� �뾾�뜑�씪�룄 媛쒖씤�젙蹂대�� �닔吏묅���씠�슜�븷 �닔 + �엳�뒿�땲�떎.<br> + (3) �떎�쓬�쓽 寃쎌슦�뿉�뒗 愿��젴 踰뺣졊�쓽 洹쒖젙�뿉 �쓽�븯�뿬 �쉶�썝�쓽 �룞�쓽 �뾾�씠 媛쒖씤�젙蹂대�� �젣怨듯븯�뒗 寃껋씠 媛��뒫�빀�땲�떎.<br> + �몺 �꽌鍮꾩뒪�젣怨듭뿉 �뵲瑜� �슂湲� �젙�궛�쓣 �쐞�븯�뿬 �븘�슂�븳 寃쎌슦<br> + �몼 �넻怨꾩옉�꽦���븰�닠�뿰援� �삉�뒗 �떆�옣議곗궗瑜� �쐞�븯�뿬 �븘�슂�븳 寃쎌슦濡쒖꽌 �듅�젙 媛쒖씤�쓣 �븣�븘蹂� �닔 �뾾�뒗 �삎�깭濡� 媛�怨듯븯�뿬 �젣怨듯븯�뒗 寃쎌슦<br> + �몾 湲덉쑖 �떎紐� 嫄곕옒 諛� 鍮꾨�蹂댁옣�뿉 愿��븳 踰뺣쪧, �떊�슜�젙蹂댁쓽 �씠�슜 諛� 蹂댄샇�뿉 愿��븳 踰뺣쪧, �쟾湲고넻�떊湲곕낯踰�, �쟾湲고넻�떊�궗�뾽踰�, 吏�諛⑹꽭踰�, �냼鍮꾩옄蹂댄샇踰�, �븳援����뻾踰�, �삎�궗�냼�넚踰� + �벑 踰뺣쪧�뿉 �듅蹂꾪븳 洹쒖젙�씠 �엳�뒗 寃쎌슦<br> + �몿 �닔�궗 紐⑹쟻�쑝濡� 踰뺣졊�뿉 �젙�빐吏� �젅李⑥� 諛⑸쾿�뿉 �뵲�씪 �닔�궗湲곌��쓽 �슂援ш� �엳�뒗 寃쎌슦<br> + �뫀 怨좉컼�씠 �궗�쟾�뿉 �룞�쓽�븳 寃쎌슦<br> + + �젣 5議� (媛쒖씤�젙蹂댁쓽 泥섎━�쐞�긽)<br> + (1) �쉶�궗�뒗 怨좉컼�렪�쓽 �젣怨듦낵 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨� �벑 �뾽臾� �닔�뻾�쓣 �썝�솢�븯寃� �븯湲� �쐞�븯�뿬 �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂댁뿉 ���븳 + �닔吏묅��蹂닿���泥섎━���씠�슜���젣怨듈��愿�由р���뙆湲� �벑(�씠�븯 �쒖쿂由р��)�쓣 �쐞�긽�븷 �닔 + �엳�뒿�땲�떎.<br> + (2) �쉶�궗媛� �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯�뒗 寃쎌슦 洹� �쐞�긽�뾽臾댁쓽 �궡�슜, �닔�긽�옄�뒗 �떎�쓬 �몴�� 媛숈뒿�땲�떎.<br> + <媛쒖씤�젙蹂� �젣3�옄 �젣怨� 諛� �쐞�긽�쁽�솴><br> + �닔�긽�뾽泥� �굹�씠�뒪�젙蹂댄넻�떊�닚<br> + �쐞�긽�뾽臾대궡�슜 �떊�슜移대뱶 寃곗젣<br> + 蹂댁쑀 諛� �씠�슜湲곌컙 �쉶�썝 �깉�눜 �떆 �샊�� �쐞�긽怨꾩빟 醫낅즺 �떆源뚯�<br> + (3) �쉶�궗�뒗 怨좉컼�쓽 �룞�쓽 �뾾�씠 �꽌鍮꾩뒪 �젣怨� �씠�쇅�쓽 紐⑹쟻�쑝濡� 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯吏� �븡�뒗 寃껋쓣 �썝移숈쑝濡� �빀�땲�떎. �떎留�, 洹몃윭�븳 �븘�슂媛� �깮湲곕뒗 寃쎌슦 �쐞�긽�뾽臾댁쓽 �궡�슜怨� + �닔�긽�옄瑜� 怨좉컼�뿉寃� 怨좎��븯怨� �룞�쓽瑜� + 諛쏆뒿�땲�떎.<br> + + �젣 6議� (媛쒖씤�젙蹂댁쓽 �씠�슜��蹂닿� 湲곌컙)<br> + 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 �룞�쓽瑜� 諛쏆� 媛쒖씤�젙蹂댁쓽 �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�릺硫� 踰뺣졊 �삉�뒗 �궡遺�諛⑹묠�뿉 �쓽�빐 蹂댁〈�븷 �븘�슂媛� �엳�뒗 寃쎌슦瑜� �젣�쇅�븯怨좊뒗 吏�泥� �뾾�씠 �뙆湲곕맗�땲�떎.<br> + (1) 臾대텇蹂꾪븳 �쉶�썝�깉�눜�� �옱媛��엯�쑝濡� �씤�븳 �뵾�빐 理쒖냼�솕, �쉶�썝�깉�눜 �썑 蹂��떖�뿉 �쓽�븳 誘쇱썝泥섎━ �벑�쓣 泥섎━�븯湲� �쐞�븯�뿬 �쉶�썝�깉�눜 �썑 1�뀈媛� �쉶�썝�젙蹂대�� 蹂댁쑀�븷 �닔 + �엳�뒿�땲�떎.<br> + (2) 蹂댁쑀 湲곌컙�쓣 誘몃━ 怨좎��븯怨� 蹂꾨룄�쓽 �룞�쓽瑜� 諛쏆� 寃쎌슦 �빐�떦 蹂댁쑀湲곌컙源뚯� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br> + (3) �쉶�궗媛� 踰뺣졊�뿉 �뵲�씪 蹂닿��븯�뒗 媛쒖씤�젙蹂� 諛� �빐�떦 踰뺣졊�� �븘�옒 �몴�� 媛숈뒿�땲�떎.<br> + + 蹂댁〈 �빆紐�: 怨꾩빟 �삉�뒗 泥��빟泥좏쉶 �벑�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: ��湲덇껐�젣 諛� �옱�솕 �벑�쓽 怨듦툒�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �냼鍮꾩옄�쓽 遺덈쭔 �삉�뒗 遺꾩웳泥섎━�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 3�뀈<br> + 蹂댁〈 �빆紐�: �몴�떆/愿묎퀬�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 6媛쒖썡<br> + 蹂댁〈 �빆紐�: �꽭踰뺤씠 洹쒖젙�븯�뒗 紐⑤뱺 嫄곕옒�뿉 愿��븳 �옣遺� 諛� 利앸튃�꽌瑜�<br> + 洹쇨굅 踰뺣졊: 援��꽭湲곕낯踰�<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �쟾�옄湲덉쑖 嫄곕옒�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄湲덉쑖嫄곕옒踰�<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �꽌鍮꾩뒪 諛⑸Ц湲곕줉<br> + 洹쇨굅 踰뺣졊: �넻�떊鍮꾨�蹂댄샇踰�<br> + 蹂댁〈 湲곌컙: 3媛쒖썡<br> + + (4) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 怨좉컼�쓽 �쉶�썝媛��엯 怨꾩젙�쓣 �궗�슜怨꾩젙怨� �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯�뿬 愿�由ы빀�땲�떎. OWL �꽌鍮꾩뒪瑜� 1�뀈 �룞�븞 濡쒓렇�씤 �삉�뒗 �씠�슜�궡�뿭�씠 �뾾�쓣 + 寃쎌슦 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� �쐞�빐 + �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯怨� 怨좉컼 媛쒖씤�젙蹂댁쓽 �솢�슜 諛� �젣�쑕�궗 (�젣3�옄 �룞�쓽�븳 �젣�쑕�궗)�뿉 怨좉컼�쓽 �젙蹂대�� �젣怨듯븯吏� �븡�뒿�땲�떎.<br> + + �젣 7議� (媛쒖씤�젙蹂댁쓽 �뙆湲곗젅李� 諛� 諛⑸쾿)<br> + (1) 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 怨좉컼�쑝濡쒕��꽣 �룞�쓽瑜� 諛쏆� �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�맂 �븣�뿉�뒗 蹂꾨룄�쓽 DB濡� �삷寃⑥졇(醫낆씠�쓽 寃쎌슦 蹂꾨룄�쓽 �꽌瑜섑븿) 愿�怨� 踰뺣졊�뿉�꽌 �젙�븳 �씪�젙�븳 湲곌컙 + �룞�븞 蹂닿��븳 �떎�쓬 �뙆湲고빀�땲�떎.<br> + (2) 醫낆씠�뿉 異쒕젰�맂 媛쒖씤�젙蹂대뒗 遺꾩뇙湲곕줈 遺꾩뇙�븯嫄곕굹 �냼媛곸쓣 �넻�븯�뿬 �뙆湲고븯怨�, �쟾�옄�쟻 �뙆�씪 �삎�깭濡� ���옣�맂 媛쒖씤�젙蹂대뒗 湲곕줉�쓣 �옱�깮�븷 �닔 �뾾�뒗 湲곗닠�쟻 諛⑸쾿�쓣 �궗�슜�븯�뿬 + �궘�젣�빀�땲�떎.<br> + + �젣 8議� (怨좉컼�쓽 沅뚮━�� 洹� �뻾�궗諛⑸쾿)<br> + (1) 怨좉컼(留� 14�꽭 誘몃쭔�씤 寃쎌슦 踰뺤젙 ��由ъ씤)�� �뼵�젣�뱺吏� OWL �꽌鍮꾩뒪 �궡�뿉�꽌 怨좉컼�쓽 媛쒖씤�젙蹂대�� �뿴�엺 �삉�뒗 蹂�寃쏀븷 �닔 �엳�쑝硫�, 怨좉컼�� �븘�슱 �꽌鍮꾩뒪�쓽 �씠�슜�빟愿��뿉 + �뵲�씪 怨좉컼�쓽 媛쒖씤�젙蹂� �닔吏� 諛� �씠�슜�뿉 ���븯�뿬 + �쉶�궗�뿉 �룞�쓽 泥좏쉶瑜� �슂援ы븯嫄곕굹 OWL �꽌鍮꾩뒪�뿉�꽌 �깉�눜�떆耳� 以� 寃껋쓣 �슂援ы븷 �닔 �엳�뒿�땲�떎<br> + (2) �삩�씪�씤 媛��엯�젙蹂댁쓽 �뿴�엺 諛� �젙�젙�쓣 �븯怨좎옄 �븯�뒗 怨좉컼�쓽 寃쎌슦�뿉�뒗 �솃�럹�씠吏� �궡�쓽 "�쉶�썝�젙蹂�"瑜� �겢由��븯�뿬 吏곸젒 �뿴�엺 諛� �젙�젙�쓣 �븯嫄곕굹, 怨좉컼�꽱�꽣瑜� �넻�빐 �꽌硫�, �쟾�솕 + �삉�뒗 �씠硫붿씪濡� �뿰�씫�븯�떆硫� 吏�泥� �뾾�씠 + 議곗튂�븯寃좎뒿�땲�떎.<br> + (3) �쉶�궗�뒗 ��由ъ씤�씠 諛⑸Ц�븯�뿬 �뿴�엺��利앸챸�쓣 �슂援ы븯�뒗 寃쎌슦�뿉�뒗 �쟻踰뺥븳 �쐞�엫�쓣 諛쏆븯�뒗吏� �솗�씤�븷 �닔 �엳�뒗 �쐞�엫�옣 諛� 蹂몄씤�쓽 �씤媛먯쬆紐낆꽌�� ��由ъ씤�쓽 �떊遺꾩쬆 �벑�쓣 �젣異� 諛쏆븘 + �젙�솗�엳 ��由ъ씤 �뿬遺�瑜� �솗�씤�빀�땲�떎.<br> + (4) 怨좉컼�씠 媛쒖씤�젙蹂댁쓽 �삤瑜섏뿉 ���븳 �젙�젙�쓣 �슂泥��븯�떊 寃쎌슦 �쉶�궗�뒗 �젙�젙�쓣 �셿猷뚰븯湲� �쟾源뚯� �빐�떦 媛쒖씤�젙蹂대�� �씠�슜 �삉�뒗 �젣怨듯븯吏� �븡�뒿�땲�떎. �삉�븳 �쉶�궗�뒗 �옒紐삳맂 媛쒖씤�젙蹂대�� + �씠誘� �젣3�옄�뿉寃� �젣怨듯븳 寃쎌슦 洹� �젙�젙 + 泥섎━寃곌낵瑜� �젣3�옄�뿉寃� 吏�泥� �뾾�씠 �넻吏��븯�뿬 �젙�젙�븯�룄濡� �빀�땲�떎. + (5) 怨좉컼�� 媛쒖씤�젙蹂대�� 理쒖떊�쓽 �긽�깭濡� �젙�솗�븯寃� �엯�젰�븯怨� 蹂��룞 �궗�빆�씠 �엳�뒗 寃쎌슦, �씠瑜� �쉶�궗�뿉 �넻蹂댄븯�뿬�빞 �븯硫�, �뒪�뒪濡� 遺��젙�솗�븳 �젙蹂대�� �엯�젰�븯嫄곕굹, �쉶�궗�뿉 �넻蹂댄븯吏� + �븡�븘�꽌 �쉶�궗媛� �븣 �닔 �뾾�뒗 怨좉컼�젙蹂댁쓽 + 蹂��룞�쑝濡� �씤�븳 梨낆엫�� 怨좉컼 �옄�떊�뿉寃� 洹��냽�맗�땲�떎.<br> + (6) 怨좉컼�씠 ���씤 �젙蹂댁쓽 �룄�슜�씠�굹 移⑦빐, �뿀�쐞�젙蹂대�� �엯�젰�븯�뒗 寃쎌슦 �꽌鍮꾩뒪 �빐吏� 諛� �쉶�썝�옄寃⑹씠 �긽�떎�맆 �닔 �엳�쑝硫� 踰� �벑 愿��젴 踰뺣졊�뿉 �뵲�씪 泥섎쾶諛쏆쓣 �닔 + �엳�뒿�땲�떎.<br> + + �젣 9議� (媛쒖씤�젙蹂대낫�샇瑜� �쐞�븳 湲곗닠�쟻 愿�由ъ쟻 ��梨�)<br> + �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂닿� 遺꾩떎, �룄�궃, �늻異�, 蹂�議� �삉�뒗 �쎕�넀�릺吏� �븡�룄濡� �븯湲� �쐞�빐�꽌 �떎�쓬怨� 媛숈� 湲곗닠�쟻/愿�由ъ쟻 ��梨낆쓣 媛뺢뎄�븯怨� �엳�뒿�땲�떎.<br> + (1) 湲곗닠�쟻 ��梨�<br> + �몺 �젒�냽湲곕줉�쓽 �쐞��蹂�議� 諛⑹� 議곗튂瑜� 痍⑦븯怨� �엳�뒿�땲�떎.<br> + �몼 媛쒖씤�젙蹂대뒗 洹� 醫낅쪟�뿉 �뵲�씪 愿��젴 踰뺣졊�씠 �슂援ы븯�뒗 �닔以��쓽 �븫�샇�솕 ���옣 �삉�뒗 �쟾�넚 �떆 �븫�샇�솕 湲곗닠�쓽 �쟻�슜�븯�뿬 愿�由ы빀�땲�떎.<br> + �몾 諛깆떊�봽濡쒓렇�옩�쓣 �씠�슜�븯�뿬 而댄벂�꽣 諛붿씠�윭�뒪�뿉 �쓽�븳 �뵾�빐瑜� 諛⑹��븯湲� �쐞�븳 議곗튂瑜� 痍⑦븯怨� �엳�쑝硫�, 諛깆떊�봽濡쒓렇�옩�쓣 二쇨린�쟻�쑝濡� �뾽�뜲�씠�듃�븯怨� 媛묒옉�뒪�윭�슫 諛붿씠�윭�뒪 異쒗쁽 �떆�뿉 + 諛깆떊�씠 �굹�삤�뒗 利됱떆 �씠瑜� �젣怨듯븿�쑝濡쒖뜥 + 媛쒖씤�젙蹂닿� 移⑦빐�릺�뒗 寃껋쓣 諛⑹��븯怨� �엳�뒿�땲�떎.<br> + �몿 �븫�샇�븣怨좊━利섏쓣 �씠�슜�븯�뿬 �꽕�듃�썙�겕�긽 媛쒖씤�젙蹂대�� �븞�쟾�븯寃� �쟾�넚�븯�뒗 蹂댁븞�옣移�(SSL �벑)瑜� 梨꾪깮�븯怨� �엳�뒿�땲�떎.<br> + �뫀 �빐�궧 �벑 �쇅遺� 移⑥엯�뿉 ��鍮꾪븯�뿬 媛� �꽌踰꾨쭏�떎 移⑥엯李⑤떒�떆�뒪�뀥 諛� 痍⑥빟�젏遺꾩꽍�떆�뒪�뀥�쓣 �씠�슜�븯�뿬 蹂댁븞�뿉 理쒖꽑�쓣 �떎�븯怨� �엳�뒿�땲�떎.<br> + + (2) 愿�由ъ쟻 ��梨�<br> + �몺 �쉶�궗�뒗 媛쒖씤�젙蹂� 蹂댄샇�뿉 愿��븳 �궡遺�愿�由ш퀎�쉷�쓣 �닔由�, �떆�뻾�븯怨� �엳�뒿�땲�떎.<br> + �몼 �쉶�궗�뒗 媛쒖씤�젙蹂댁뿉 ���븳 �젒洹쇨텒�븳�쓣 �븘�슂��理쒖냼�븳�쓽 �씤�썝�쑝濡� �젣�븳�븯怨� �엳�뒿�땲�떎.<br> + �몾 �쉶�궗�뒗 媛쒖씤�젙蹂닿��젴 痍④툒 吏곸썝�� �떞�떦�옄�뿉寃� �븳�젙�떆�궎怨� �엳怨� �씠瑜� 蹂꾨룄�쓽 鍮꾨�踰덊샇瑜� 遺��뿬�븯�뿬 �젙湲곗쟻�쑝濡� 媛깆떊�븯怨� �엳�쑝硫�, �떞�떦�옄�뿉 ���븳 �닔�떆 援먯쑁�쓣 �넻�븯�뿬 �쉶�궗 + 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 以��닔瑜� �빆�긽 媛뺤“�븯怨� + �엳�뒿�땲�떎.<br> + �몿 �쉶�궗�뒗 怨좉컼�쓽 �떎�닔�굹 湲곕낯�쟻�씤 �씤�꽣�꽬�쓽 �쐞�뿕�꽦 �븣臾몄뿉 �씪�뼱�굹�뒗 �씪�뱾�뿉 ���빐 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎. 怨좉컼 �뒪�뒪濡쒓� 蹂몄씤�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯湲� �쐞�빐�꽌 �옄�떊�쓽 �씠硫붿씪怨� + 鍮꾨�踰덊샇瑜� �쟻�젅�븯寃� 愿�由ы븯怨� �뒪�뒪濡� 梨낆엫�쓣 + �졇�빞 �빀�땲�떎.<br> + + �젣 10議� (媛쒖씤�젙蹂� 蹂댄샇梨낆엫�옄 諛� �떞�떦�옄�쓽 �뿰�씫泥�)<br> + �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯怨� 媛쒖씤�젙蹂댁� 愿��젴�븳 遺덈쭔�쓣 泥섎━�븯湲� �쐞�븯�뿬 �븘�옒�� 媛숈씠 愿��젴 遺��꽌 諛� 媛쒖씤�젙蹂닿�由ъ콉�엫�옄瑜� 吏��젙�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 怨좉컼�쓽 紐⑹냼由ъ뿉 + 洹� 湲곗슱�씠怨� �떊�냽�븯怨� 異⑸텇�븳 �떟蹂��쓣 �뱶由� �닔 + �엳�룄濡� 理쒖꽑�쓣 �떎�븯寃좎뒿�땲�떎.<br> + + <媛쒖씤�젙蹂대낫�샇 梨낆엫�옄><br> + 愿�由� 梨낆엫�옄: �씠�젙�꽑 ���옣 | 愿�由� �떞�떦�옄: 源��쑀吏� 二쇱엫<br> + �떞�떦遺��꽌: �뀒�뒪�똿 �넄猷⑥뀡�꽱�꽣 �냼�봽�듃�썾�뼱 媛쒕컻��<br> + �뿰�씫泥�: jslee1@wisestone.kr<br> + + 湲고� 媛쒖씤�젙蹂댁묠�빐�뿉 ���븳 �떊怨좊굹 �긽�떞�씠 �븘�슂�븯�떊 寃쎌슦�뿉�뒗 �븘�옒 湲곌��뿉 臾몄쓽�븯�떆湲� 諛붾엻�땲�떎.<br> + + �몺 媛쒖씤�젙蹂댁묠�빐�떊怨좎꽱�꽣: �쟾�솕 118 / �씠硫붿씪 privacy@kisa.or.kr / http://privacy.kisa.or.kr<br> + �몼 �젙蹂대낫�샇留덊겕 �씤利앹쐞�썝�쉶: �쟾�솕 02-580-0533~4 / http://www.eprivacy.or.kr<br> + �몾 ��寃�李곗껌 �궗�씠踰꾨쾾二꾩닔�궗�떒: �쟾�솕 02-3480-3571 / �씠硫붿씪 cybercid@spo.go.kr / http://www.spo.go.kr<br> + �몿 寃쎌같泥� �궗�씠踰꾪뀒�윭 ���쓳�꽱�꽣: �쟾�솕 1566-0112 / http://cyber.go.kr<br> + + �젣 11議� (怨좎��쓽 �쓽臾�)<br> + �쉶�궗�뒗 踰뺣쪧�씠�굹 �꽌鍮꾩뒪�쓽 蹂�寃쎌궗�빆�쓣 諛섏쁺�븯湲� �쐞�븳 紐⑹쟻 �벑�쑝濡� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓣 �닔�젙�븷 �닔 �엳�뒿�땲�떎. 媛쒖씤�젙蹂� 泥섎━諛⑹묠�씠 蹂�寃쎈릺�뒗 寃쎌슦 �쉶�궗�뒗 蹂�寃� �궗�빆�쓣 + 寃뚯떆�븯硫�, 蹂�寃쎈맂 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 寃뚯떆�븳 + �궇濡쒕��꽣 7�씪 �썑遺��꽣 �슚�젰�씠 諛쒖깮�빀�땲�떎. �븯吏�留�, �뵾移� 紐삵븯寃� �뿬�윭遺꾩쓽 沅뚮━�뿉 以묒슂�븳 蹂�寃쎌씠 �엳�쓣 寃쎌슦 蹂�寃쎈맆 �궡�슜�쓣 30�씪 �쟾�뿉 誘몃━ �븣�젮�뱶由ш쿋�뒿�땲�떎.<br> + + �� �떆�뻾�씪�옄 : 2018�뀈 11�썡 09�씪<br><br> + </div> + <div class="mt-10 text-center"> + <label for="userAddForm9"> + <input id="userAddForm9" type="checkbox" class="form-control agree-term" + ng-model="vm.form.agreeTerm"> + <span class="cursor" for="userAddForm9" translate="users.agreePrivacyPolicy">媛쒖씤�젙蹂� 泥섎━諛⑹묠�뿉 �룞�쓽�빀�땲�떎.</span> + </label> + </div> + </div> + + </div> + </div> + --> + </form> + <button class="btn btn-lg btn-block btn-primary joinbtn" + js-short-cut + js-short-cut-action="(fn.formCheck(userAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(userAddForm.$invalid)" + type="button" + ng-click="fn.formSubmit()"><span translate="users.join">媛��엯�븯湲�</span></button> + </div> + </div> + </div> + </div> diff --git a/src/main/webapp/views/user/userDetail.html b/src/main/webapp/views/user/userDetail.html new file mode 100644 index 0000000..eaed8e9 --- /dev/null +++ b/src/main/webapp/views/user/userDetail.html @@ -0,0 +1,92 @@ +<h6 class="element-header" translate="common.profile"> + �봽濡쒗븘 +</h6> +<div class="row"> + <div class="col-xl-5"> + <div class="element-wrapper"> + <div class="element-box"> + <div class="full-chat-w"> + <div class="user-intro"> + <div class="avatar"> + <img alt="" ng-src="{{$root.user.profile}}"> + </div> + <div class="user-intro-info"> + <h5 class="user-name issue-detail-word-break"> + {{$root.user.name}} <br/>({{$root.user.account}}) + </h5> + <div class="user-sub" ng-if="$root.isDefined($root.user.phone)"> + <span translate="users.phoneNumber">�뿰�씫泥�</span> : {{$root.user.phone}} + </div> + <div class="mt-30"> + <a class="btn btn-primary btn-sm" href="" ng-click="fn.modify($root.user.id)"> + <i class="os-icon os-icon-edit-1"></i> + <span translate="users.modifyInformation">�젙蹂� �닔�젙</span> + </a> + <a class="btn btn-secondary btn-sm" href="" data-toggle="modal" ng-click="fn.modifyPassword($root.user.id)" ng-if="!$root.isDefined($root.user.socialType)"> + <i class="os-icon os-icon-lock"></i> + <span translate="users.updatePassword">鍮꾨�踰덊샇 蹂�寃�</span> + </a> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + + <div class="col-xl-7"> + <div class="element-wrapper"> + <div class="element-box"> + <div class="bar-label-left mb-30"> + <h5 translate="common.overallIssueHandlingStatus">�쟾泥� �씠�뒋 泥섎━�쁽�솴 </h5> + <div> + <select class="form-control form-control-sm rounded width-30 d-inline-block mb-10" ng-model="vm.search.searchPeriod" ng-change="fn.changeSearchPeriod()"> + <option value="LAST_SEVEN_DAYS" translate="common.last7Days">理쒓렐 7�씪</option> + <option value="THIS_WEEK" translate="common.thisWeek">�씠踰� 二�</option> + <option value="LAST_WEEK" translate="common.lastWeek">吏��궃 二�</option> + <option value="THIS_MONTH" translate="common.thisMonth">�씠踰� �떖</option> + <option value="LAST_MONTH" translate="common.lastMonth">吏��궃 �떖(1�씪~留먯씪)</option> + <option value="LAST_THIRTY_DAYS" translate="common.last30Days">理쒓렐 30�씪</option> + <option value="CUSTOM_INPUT" translate="common.directInput">吏곸젒�엯�젰</option> + </select> + + <input type="text" + ng-show="vm.search.searchPeriod == 'CUSTOM_INPUT'" + class="form-control form-control-sm rounded col-md-4 d-inline-block input-readonly" + ng-model="vm.search.startEndDateRange" + modal-form-auto-scroll + parent-el="'#createdWidget'" + range-type="date" + onfocus="this.blur()" + style="height: 32px !important; padding: 0.25rem 0.5rem; font-size: 0.8rem; line-height: 1.5;" + date-range-picker> + <div class="row"> + <div class="col-xs-12"> + <div id="createdWidget" class="bootstrap-datepicker"></div> + </div> + </div> + </div> + + </div> + <div class="timed-activities compact"> + <div class="timed-activity" ng-repeat="issueHistoryDate in vm.issueHistoryDates"> + <div class="ta-date"> + <span>{{::issueHistoryDate}}</span> + </div> + + <div class="ta-record-w"> + <div class="ta-record" ng-repeat="issueHistory in vm.issueHistoryVos[issueHistoryDate]"> + <div class="ta-activity"> + <span class="text-primary issue-detail-word-break">[{{::issueHistory.projectName}}]</span> + <span class="text-primary issue-detail-word-break">({{::issueHistory.projectKey}}-{{::issueHistory.issueNumber}})</span> + <span class="text-primary issue-detail-word-break">({{::issueHistory.issueTitle}})</span> + <div class="" dom-append dom="issueHistory.description"></div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/user/userModify.html b/src/main/webapp/views/user/userModify.html new file mode 100644 index 0000000..0fc73c9 --- /dev/null +++ b/src/main/webapp/views/user/userModify.html @@ -0,0 +1,100 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="users.modifyInformation">�젙蹂� �닔�젙</strong> + </div> + <button aria-label="Close" class="close" data-dismiss="modal" type="button" ng-click="fn.cancel()"><span + aria-hidden="true"> ×</span></button> + </div> + + <div class="modal-body"> + <form role="form" name="userModifyForm"> + <div class="row"> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userModifyForm1"> <span translate="common.name">�씠由�</span> <code class="highlighter-rouge">*</code></label> + <input class="form-control" + id="userModifyForm1" + type="text" + required + maxLength="10" + ng-model="vm.form.name" + kr-input> + </div> + </div> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userModifyForm2"><span translate="common.email">�씠硫붿씪</span> <code class="highlighter-rouge">*</code></label> + <input class="form-control" id="userModifyForm2" type="text" ng-model="vm.form.account" + disabled> + <small class="fc-grey" translate="common.emailCannotBeChanged">�씠硫붿씪�� 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + </div> + </div> + + <div class="row"> + <div class="col-sm-6"> + <div class="form-group"> + <label for="userModifyForm3"><span translate="users.setEmailNotificationTime">�씠硫붿씪 �븣由� �떆媛� �꽕�젙</span> <code class="highlighter-rouge">*</code></label> + <input class="form-control" + type="text" + id="userModifyForm3" + date-time-picker + option="Y" + required + ng-model="vm.form.reservationNotifyTime"> + </div> + </div> + + <div class="col-sm-6"> + <div class="form-group"> + <label for="userModifyForm4"><span translate="users.phoneNumber">�뿰�씫泥�</span> </label> + <input class="form-control" + type="text" + id="userModifyForm4" + maxLength="20" + kr-input + input-regex="[^0-9]" + ng-model="vm.form.phone"> + </div> + </div> + </div> + + <div class="form-group"> + <label for="userModifyForm5"> <span translate="common.profilePicture">�봽濡쒗븘 �궗吏�</span> </label> + <small class="fc-grey" translate="users.selectProfileShowOther">�떎瑜� �궗�슜�옄�뱾�뿉寃� 蹂댁뿬以� �봽濡쒗븘�쓣 �꽑�깮�븯�꽭�슂.</small> + <div class="filebox input-group"> + <input class="upload-name form-control" + placeholder="{{'users.pleaseSelectFile' | translate}}" + disabled="disabled" + ng-model="vm.form.profileImageName"> + <label for="userModifyForm5"><span translate="common.selectFile">�뙆�씪�꽑�깮</span></label> + <input type="file" + id="userModifyForm5" + class="form-control" + accept=".jpg, .png" + ng-file-select="fn.onFileSelect($files)"> + </div> + </div> + <div class="row"> + <div class="col-sm-12"> + <label> <span translate="users.membershipWithdrawal">�쉶�썝�깉�눜</span> </label> + <small class="fc-grey" translate="users.signOutNotRecovered">�쉶�썝 �깉�눜 �떆 �뾽臾� 怨듦컙�쓽 紐⑤뱺 �뜲�씠�꽣媛� �궗�씪吏�怨� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. </small> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.withDraw()"><span translate="users.membershipWithdrawal">�쉶�썝�깉�눜</span></button> + </div> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(userModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(userModifyForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/user/userModifyPassword.html b/src/main/webapp/views/user/userModifyPassword.html new file mode 100644 index 0000000..7e5a8c7 --- /dev/null +++ b/src/main/webapp/views/user/userModifyPassword.html @@ -0,0 +1,71 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="users.updatePassword">鍮꾨�踰덊샇 蹂�寃�</strong> + </div> + <button aria-label="Close" class="close" data-dismiss="modal" type="button" ng-click="fn.cancel()"><span + aria-hidden="true"> ×</span></button> + </div> + + <div class="modal-body"> + <form role="form" name="userPasswordForm"> + <div class="row"> + <div class="col-sm-12"> + <div class="form-group"> + <label for="userPasswordForm1"> <span translate="users.existingPassword">湲곗〈 鍮꾨�踰덊샇</span> <code class="highlighter-rouge">*</code></label> + <input class="form-control" + id="userPasswordForm1" + type="password" + maxlength="20" + autocomplete="off" + autofocus + owl-auto-focus + kr-input + required + ng-model="vm.form.currentPassword"> + </div> + <div class="form-group"> + <label for="userPasswordForm2"><span translate="users.newPassword">�떊洹� 鍮꾨�踰덊샇</span> <code class="highlighter-rouge">*</code></label> + <input id="userPasswordForm2" + type="password" + class="form-control" + name="password" + kr-input + autocomplete="off" + minlength="4" + ng-model="vm.form.password" + maxlength="20" + required> + <div class="help-block form-text text-danger" ng-show="userPasswordForm.password.$error.minlength"><span translate="users.least4CharactersPassword">鍮꾨�踰덊샇�뒗 理쒖냼 4�옄 �씠�긽 �엯�젰�빐�빞 �빀�땲�떎.</span></div> + <small class="fc-grey" translate="users.pleaseEnterPassword4Characters">鍮꾨�踰덊샇�뒗 4�옄 �씠�긽�쑝濡� �엯�젰�븯�꽭�슂.</small> + </div> + <div class="form-group"> + <label for="userPasswordForm3"><span translate="users.confirmNewPassword">�떊洹� 鍮꾨�踰덊샇 �솗�씤</span> <code class="highlighter-rouge">*</code></label> + <input id="userPasswordForm3" + type="password" + class="form-control" + name="passwordConfirm" + kr-input + autocomplete="off" + ng-model="vm.form.passwordConfirm" + minlength="4" + maxlength="20" + required> + <div class="help-block form-text text-danger" ng-show="(vm.form.password != vm.form.passwordConfirm) && + (vm.form.password.length > 3 && vm.form.passwordConfirm.length > 3)"><span translate="users.differentPassword">鍮꾨�踰덊샇媛� �떎由낅땲�떎.</span></div> + </div> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(userPasswordForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(userPasswordForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/user/userPassword.html b/src/main/webapp/views/user/userPassword.html new file mode 100644 index 0000000..6f6219b --- /dev/null +++ b/src/main/webapp/views/user/userPassword.html @@ -0,0 +1,42 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="users.findPassword">鍮꾨�踰덊샇 李얘린</strong> + </div> + <button aria-label="Close" class="close" data-dismiss="modal" type="button" ng-click="fn.cancel()"><span + aria-hidden="true"> ×</span></button> + </div> + <div class="modal-body"> + <form name="userPasswordForm"> + <h4 translate="users.forgetYourPassword">鍮꾨�踰덊샇瑜� �엸�쑝�뀲�굹�슂?</h4> + <p translate="users.sendingYouTemporaryPassword">媛��엯�븯�떊 �씠硫붿씪濡� <strong class="text-primary">�엫�떆 鍮꾨�踰덊샇</strong>瑜� 蹂대궡�뱶由쎈땲�떎.</p> + <div class="form-group"> + <label for="userPasswordForm1"> <span translate="common.email">�씠硫붿씪</span></label> + <input id="userPasswordForm1" + type="email" + class="form-control" + name="email" + autocomplete="off" + maxLength="50" + ng-model="vm.form.account" + kr-input + owl-auto-focus + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + required> + <div ng-show="userPasswordForm.email.$error.pattern" class="help-block form-text text-danger" translate="users.incorrectEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� + �븡�뒿�땲�떎. + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-left"> + <button class="btn btn-lg btn-block btn-primary" + js-short-cut + js-short-cut-action="(fn.formCheck(userPasswordForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(userPasswordForm.$invalid)" + ng-click="fn.formSubmit()" + type="button"> <span translate="common.send">蹂대궡湲�</span> + </button> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/userInvite/userInvite.html b/src/main/webapp/views/userInvite/userInvite.html new file mode 100644 index 0000000..0a90ff8 --- /dev/null +++ b/src/main/webapp/views/userInvite/userInvite.html @@ -0,0 +1,97 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementWorkspace.inviteUser">�궗�슜�옄 珥덈�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form name="userInviteForm"> + <div class="form-group"> + <label for="userInviteForm1"><span translate="managementWorkspace.emailAddress">�씠硫붿씪 二쇱냼濡� 珥덈�</span> </label> + <div class="input-group"> + <input id="userInviteForm1" + type="text" + class="form-control" + name="email" + autocomplete="off" + maxLength="50" + autofocus + owl-auto-focus + ng-model="vm.form.email" + kr-input> + <div class="input-group-prepend"> + <button class="btn btn-secondary" ng-click="fn.addEmail()"><span + translate="common.add">異붽�</span></button> + </div> + </div> + <small translate="users.enterYourEmailAddress">�엯�젰�븳 �씠硫붿씪濡� �븣由쇱씠 諛쒖넚�맗�땲�떎. 瑗� �궗�슜�븯�떆�뒗 + �씠硫붿씪濡� �엯�젰�븯�꽭�슂. + </small> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="email in vm.form.emails"> + <span>{{email}}</span> + <span class="select3-selection__choice__remove" + ng-click="fn.removeEmail($index)">횞</span> + </span> + </div> + </div> + + <!--<div class="form-group"> + <label><span>�떆�뒪�뀥�뿉 媛��엯�맂 �궗�슜�옄 珥덈�</span> </label> + <js-autocomplete-multi data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + source="fn.getAllUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + broad-cast="" + input-disabled="false" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : '', type : 'user', maxlength : 200, autoResize : true }"></js-autocomplete-multi> + <small>�떆�뒪�뀥�뿉 �씠誘� 媛��엯�맂 �궗�슜�옄瑜� �뾽臾� 怨듦컙�뿉 珥덈��빀�땲�떎. </small> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" + ng-click="fn.removeUser($index)">횞</span> + </span> + </div> + </div>--> + + + <div class="form-group"> + <label><span translate="managementWorkspace.projectToInvolved">李몄뿬�떆�궗 �봽濡쒖젥�듃</span> <code class="highlighter-rouge">*</code></label> + <js-autocomplete-multi data-input-name="projects" + selected-model="vm.form.projects" + search="vm.projectName" + source="fn.getProjectList(vm.projectName, vm.form.projects, vm.autoCompletePage.project.page, fn.getProjectListCallBack, null, ['02'])" + page="vm.autoCompletePage.project.page" + total-page="vm.autoCompletePage.project.totalPage" + broad-cast + input-disabled="false" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : 'project', maxlength : 200, autoResize : true }"></js-autocomplete-multi> + <div class="tabfilter pdl0"> + <issue-search-array-view-element lists="vm.form.projects" + type="'project'"></issue-search-array-view-element> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button class="btn btn-md btn-grey" type="button" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button class="btn btn-md btn-primary bold" + type="button" + js-short-cut + js-short-cut-action="(fn.formCheck(userInviteForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(userInviteForm.$invalid)" + ng-click="fn.formSubmit()"> + <span translate="managementWorkspace.invite">珥덈�</span> + </button> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/widget/widgetDashBoard.html b/src/main/webapp/views/widget/widgetDashBoard.html new file mode 100644 index 0000000..c934e93 --- /dev/null +++ b/src/main/webapp/views/widget/widgetDashBoard.html @@ -0,0 +1,68 @@ +<div class="row" ng-if="$root.dashboard == 0"> + <!-- �쟾泥� �씠�뒋 �쁽�솴 --> + <issue-statistics-widget issue-statistics-widget="vm.issueStatisticsWidget"></issue-statistics-widget> + + <!-- �쟾泥� �씠�뒋 泥섎━ �쁽�솴 --> + <issue-complete-widget issue-complete-widget="vm.issueCompleteWidget"></issue-complete-widget> + + <!-- 吏꾪뻾 以묒씤 �봽濡쒖젥�듃 �쁽�솴 --> + <project-progress-widget project-progress-widget="vm.projectProgressWidget"></project-progress-widget> + + <!-- �굹�뿉寃� �븷�떦�맂 �씠�뒋 --> + <my-assignee-issue-widget my-assignee-issue-widget="vm.myAssigneeIssueWidget"></my-assignee-issue-widget> + + <!-- �쐞�뿕 愿�由� --> + <risk-issue-widget risk-issue-widget="vm.riskIssueWidget"></risk-issue-widget> + + <!-- �궡媛� �벑濡앺븳 �씠�뒋 �쁽�솴 --> + <register-issue-widget register-issue-widget="vm.registerIssueWidget"></register-issue-widget> + + <!-- 吏��뿰 以묒씤 �씠�뒋 --> + <delay-issue-widget delay-issue-widget="vm.delayIssueWidget"></delay-issue-widget> + + <!-- �긽�깭蹂� �씠�뒋 �쁽�솴 --> + <issue-status-widget issue-status-widget="vm.issueStatusWidget"></issue-status-widget> + + <!-- �썙�겕�뵆濡쒖슦 --> + <!--<workflow-widget workflow-widget="vm.workflowWidget"></workflow-widget>--> + + <!-- �씠�뒋 �쑀�삎 蹂� �씠�뒋 �쁽�솴 --> + <issue-type-widget issue-type-widget="vm.issueTypeWidget"></issue-type-widget> + + <!-- 硫ㅻ쾭蹂� �쁽�솴 --> + <member-progress-widget member-progress-widget="vm.memberProgressWidget"></member-progress-widget> + + <!-- �굹�쓽 �씠�뒋 �쁽�솴 --> + <my-issue-widget my-issue-widget="vm.myIssueWidget"></my-issue-widget> + + <!-- 以묒슂�룄 蹂� �씠�뒋 �쁽�솴 --> + <!--<severity-issue-widget severity-issue-widget="vm.severityIssueWidget"></severity-issue-widget>--> +</div> +<div class="row" ng-if="$root.dashboard == 1"> + <!-- �쟾泥� �씠�뒋 �쁽�솴 --> + <issue-statistics-widget issue-statistics-widget="vm.issueStatisticsWidget"></issue-statistics-widget> + + <!-- �굹�뿉寃� �븷�떦�맂 �씠�뒋 --> + <my-assignee-issue-widget my-assignee-issue-widget="vm.myAssigneeIssueWidget"></my-assignee-issue-widget> + + <!-- �궡媛� �벑濡앺븳 �씠�뒋 �쁽�솴 --> + <register-issue-widget register-issue-widget="vm.registerIssueWidget"></register-issue-widget> + + <!-- �쐞�뿕 愿�由� --> + <risk-issue-widget risk-issue-widget="vm.riskIssueWidget"></risk-issue-widget> + + <!-- 吏��뿰 以묒씤 �씠�뒋 --> + <delay-issue-widget delay-issue-widget="vm.delayIssueWidget"></delay-issue-widget> + + <!-- �긽�깭蹂� �씠�뒋 �쁽�솴 --> + <issue-status-widget issue-status-widget="vm.issueStatusWidget"></issue-status-widget> + + <!-- �씠�뒋 �쑀�삎 蹂� �씠�뒋 �쁽�솴 --> + <issue-type-widget issue-type-widget="vm.issueTypeWidget"></issue-type-widget> + + <!-- 硫ㅻ쾭蹂� �쁽�솴 --> + <member-progress-widget member-progress-widget="vm.memberProgressWidget"></member-progress-widget> + + <!-- 以묒슂�룄 蹂� �씠�뒋 �쁽�솴 --> + <severity-issue-widget severity-issue-widget="vm.severityIssueWidget"></severity-issue-widget> +</div> diff --git a/src/main/webapp/views/workflow/workflowAdd.html b/src/main/webapp/views/workflow/workflowAdd.html new file mode 100644 index 0000000..9faf9cd --- /dev/null +++ b/src/main/webapp/views/workflow/workflowAdd.html @@ -0,0 +1,55 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementWorkflow.createWorkflow">�썙�겕�뵆濡쒖슦 留뚮뱾湲�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="workflowAddForm"> + <div class="row"> + <div class="col-lg-12"> + <div class="form-group"> + <label for="workflowAddForm1"><span translate="managementWorkflow.workflowName">�썙�겕�뵆濡쒖슦 紐�</span> <code class="highlighter-rouge">*</code></label> + <input id="workflowAddForm1" + name="name" + type="text" + class="form-control" + autofocus + autocomplete="off" + ng-model="vm.form.name" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + maxlength="20" + kr-input + ng-maxlength="20" + required> + <small ng-show="workflowAddForm.name.$error.maxlength" class="help-block form-text text-danger"> + <span translate="common.upTo20Characters">理쒕� 20湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.</span> + </small> + <small translate="managementWorkflow.limitNameToSpecialCharacters">�썙�겕�뵆濡쒖슦 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + </div> + </div> + + <js-workflow ng-model="vm.form" + issue-status-list="vm.issueStatusVos" + first-status-exist="vm.firstStatusExist" + middle-status-exist="vm.middleStatusExist" + last-status-exist="vm.lastStatusExist" + isolation-workflow="vm.isolationWorkflow"></js-workflow> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(workflowAddForm.$invalid) || vm.isolationWorkflow || vm.firstStatusExist || vm.middleStatusExist || vm.lastStatusExist || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(workflowAddForm.$invalid) || vm.isolationWorkflow || vm.firstStatusExist || vm.middleStatusExist || vm.lastStatusExist" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/workflow/workflowList.html b/src/main/webapp/views/workflow/workflowList.html new file mode 100644 index 0000000..7a8c2cb --- /dev/null +++ b/src/main/webapp/views/workflow/workflowList.html @@ -0,0 +1,112 @@ +<link type="text/css" rel="stylesheet" href="custom_components/js-workflow/js-workflow.css"> + +<div class="row"> + <div class="col-sm-12"> + <div class="element-wrapper"> + <div class="element-actions" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKFLOW')"> + <button ng-click="fn.add()" + class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span translate="managementWorkflow.createWorkflow">�썙�겕�뵆濡쒖슦 留뚮뱾湲�</span> + </button> + </div> + <h6 class="element-header" translate="managementWorkflow.managementWorkflow"> + �썙�겕�뵆濡쒖슦 愿�由� + </h6> + <div class="element-box"> + <div class="row"> + <div class="col-sm-12"> + <div class="searchdiv"> + <form name="workflowListForm" role="form" ng-enter="fn.getPageList(0)"> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label for="workflowListForm1"><span translate="managementWorkflow.workflowName">�썙�겕�뵆濡쒖슦 紐�</span></label> + <input type="text" + name="name" + id="workflowListForm1" + autocomplete="off" + owl-auto-focus + kr-input + maxlength="20" + class="form-control" + ng-model="vm.search.name" placeholder="{{'managementWorkflow.pleaseEnterWorkflowName' | translate}}"> + </div> + </div> + + <div class="col-lg-8"> + <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> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </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_WORKFLOW')"> + <form class="form-inline justify-content-sm-end pull-right" method="post" + action="/workflow/downloadExcel" + name="workflowListForm"> + <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="workflowListForm" 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="<" + next-text=">" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> + </div> +</div> diff --git a/src/main/webapp/views/workflow/workflowModify.html b/src/main/webapp/views/workflow/workflowModify.html new file mode 100644 index 0000000..631a365 --- /dev/null +++ b/src/main/webapp/views/workflow/workflowModify.html @@ -0,0 +1,61 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementWorkflow.modifyWorkflow">�썙�겕�뵆濡쒖슦 �닔�젙</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="workflowModifyForm"> + <div class="row"> + <div class="col-lg-12"> + <div class="form-group"> + <label for="workflowModifyForm1"><span translate="managementWorkflow.workflowName">�썙�겕�뵆濡쒖슦 紐�</span> <code class="highlighter-rouge">*</code></label> + <input id="workflowModifyForm1" + name="name" + type="text" + class="form-control" + autofocus + autocomplete="off" + ng-model="vm.form.name" + maxlength="20" + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + kr-input + ng-maxlength="20" + required> + <small ng-show="workflowModifyForm.name.$error.maxlength" class="help-block form-text text-danger" translate="common.upTo20Characters"> + 理쒕� 20湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎. + </small> + + <small translate="managementWorkflow.limitNameToSpecialCharacters">�썙�겕�뵆濡쒖슦 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small> + </div> + </div> + </div> + + <js-workflow ng-model="vm.form" + issue-status-list="vm.issueStatusVos" + first-status-exist="vm.firstStatusExist" + middle-status-exist="vm.middleStatusExist" + last-status-exist="vm.lastStatusExist" + isolation-workflow="vm.isolationWorkflow"></js-workflow> + <small class="help-block form-text text-danger text-center" translate="managementWorkflow.deleteIssueStatusInTheUse" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKFLOW')"> + �궗�슜�릺怨� �엳�뒗 �씠�뒋 �긽�깭瑜� �궘�젣�븷 寃쎌슦 �쁽�옱 �썙�겕�뵆濡쒖슦瑜� �궗�슜�븯怨� �엳�뒗 �씠�뒋�쓽 �긽�깭媛� �긽�깭 �냽�꽦 '��湲�'�씤 �씠�뒋 �긽�깭濡� 蹂�寃쎈맗�땲�떎. + </small> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(workflowModifyForm.$invalid) || vm.isolationWorkflow || vm.firstStatusExist || vm.middleStatusExist || vm.lastStatusExist || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(workflowModifyForm.$invalid) || vm.isolationWorkflow || vm.firstStatusExist || vm.middleStatusExist || vm.lastStatusExist" + ng-click="fn.formSubmit()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKFLOW')"><span translate="common.save">���옣</span> + </button> + </div> +</div> + + diff --git a/src/main/webapp/views/workspace/workspace.html b/src/main/webapp/views/workspace/workspace.html new file mode 100644 index 0000000..9787eea --- /dev/null +++ b/src/main/webapp/views/workspace/workspace.html @@ -0,0 +1,39 @@ +<h6 class="element-header" translate="managementWorkspace.myWorkspace"> + �굹�쓽 �뾽臾닿났媛� 愿�由� +</h6> +<div class="os-tabs-w"> + <div class="os-tabs-controls"> + <ul class="nav nav-tabs upper"> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'PAYMENT_EXECUTE' }" ng-click="fn.changeTab('PAYMENT_EXECUTE')" translate="managementWorkspace.workspaceInformation"> �뾽臾� 怨듦컙 �젙蹂�</a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'USER_LEVEL_CONFIG' }" ng-click="fn.changeTab('USER_LEVEL_CONFIG')" translate="managementWorkspace.workspaceUserLevelManagement">�궗�슜�옄 �벑湲� 愿�由�</a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'DEPARTMENT_CONFIG' }" ng-click="fn.changeTab('DEPARTMENT_CONFIG')" translate="managementWorkspace.departmentManagement">遺��꽌 愿�由�</a> + </li> + <li class="nav-item"> + <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'USER_CONFIG' }" ng-click="fn.changeTab('USER_CONFIG')" translate="managementWorkspace.workspaceUserManagement"> �뾽臾� 怨듦컙 �궗�슜�옄 愿�由�</a> + </li> + </ul> + </div> +</div> + +<div class="tab-content mt-30"> + <div ng-show="vm.tab == 'PAYMENT_EXECUTE'"> + <div ng-include include-replace src="'views/workspace/workspacePaymentExecute.html'"></div> + </div> + + <div ng-show="vm.tab == 'USER_LEVEL_CONFIG'"> + <div ng-include include-replace src="'views/workspace/workspaceUserLevelConfig.html'"></div> + </div> + + <div ng-show="vm.tab == 'DEPARTMENT_CONFIG'"> + <div ng-include include-replace src="'views/workspace/workspaceDepartmentConfig.html'"></div> + </div> + + <div ng-show="vm.tab == 'USER_CONFIG'"> + <div ng-include include-replace src="'views/workspace/workspaceUserConfig.html'"></div> + </div> +</div> diff --git a/src/main/webapp/views/workspace/workspaceDepartmentConfig.html b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html new file mode 100644 index 0000000..cb4b263 --- /dev/null +++ b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html @@ -0,0 +1,176 @@ +<div class="row" ng-controller="workspaceDepartmentConfigController"> + <div class="col-lg-12"> + <div class="projects-list"> + <div class="project-box"> + <div class="project-head"> + <div class="project-title"> + <h5 class="bold"> + <span class="text-primary">{{vm.workspaceVo.name}}</span> <span translate="common.information">�젙蹂�</span> + </h5> + </div> + </div> + <div class="project-info"> + <div class="row align-items-center"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-lg-3 text-center b-r"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.numberOfParticipants"> + 李몄뿬 媛��뒫 �씤�썝 + </div> + <div class="value text-danger"> + {{vm.workspaceVo.maxUser}} <span translate="common.userNum">紐�</span> + </div> + + </div> + </div> + <div class="col-lg-3 text-center b-r"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.participation"> + 李몄뿬 + </div> + <div class="value text-primary"> + {{vm.workspaceVo.activeUser}}<span translate="common.userNum">紐�</span> + </div> + </div> + </div> + <div class="col-lg-3 text-center b-r"> + <div class="el-tablo highlight"> + <!-- + <div class="label" translate="managementWorkspace.waitForParticipation"> + 李몄뿬 ��湲� + </div> + --> + <div class="label" translate="managementWorkspace.withdrawal"> + �깉�눜 + </div> + <div class="value text-secondary"> + {{vm.workspaceVo.standByUser}}<span translate="common.userNum">紐�</span> + </div> + </div> + </div> + <div class="col-lg-3 text-center"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.canParticipate"> + 李몄뿬 媛��뒫 + </div> + <div class="value text-success"> + {{vm.workspaceVo.includeUserCount}}<span translate="common.userNum">紐�</span> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</div> + +<div class="row"> + <div class="col-lg-12"> + <div class="element-box"> + <div class="searchdiv"> + <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)"> + <div class="row"> + <div class="col-xl-2"> + <div class="form-group"> + <label translate="common.name">�씠由�</label> + <input class="form-control" type="text" ng-model="vm.search.name" maxlength="10"> + </div> + </div> + + <div class="col-xl-3"> + <div class="form-group"> + <label translate="common.status">�긽�깭</label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="statuses" + selected-model="vm.search.statuses" + extra-settings="{ stringTypeOption : true }" + options="vm.options.statuses"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-xl-3"> + <div class="form-group"> + <label translate="common.email">�씠硫붿씪</label> + <input class="form-control" type="text" ng-model="vm.search.account" maxlength="50"> + </div> + </div> + + <div class="col-xl-4"> + <div class="form-group form-buttons-w2"> + <button class="btn btn-xlg btn-navy" ng-click="fn.getUserWorkspaceList(0)"> + <i class="os-icon os-icon-ui-37"></i> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + <div class="btn-group"> + <button aria-expanded="false" + aria-haspopup="true" + class="btn btn-secondary dropdown-toggle" + data-toggle="dropdown" + type="button">異붽�湲곕뒫 + </button> + <div aria-labelledby="dropdownMenuButton2" + class="dropdown-menu" + x-placement="bottom-start" + style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;"> + <a class="dropdown-item" href="#"> �궘�젣</a> + </div> + </div> + </div>--> + </div> + </div> + + <div class="table-responsive"> + <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" + event="vm.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.getUserWorkspaceList(vm.page.selectedPage-1)" + class="pagination pagination-sm" + previous-text="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/workspace/workspacePaymentAdd.html b/src/main/webapp/views/workspace/workspacePaymentAdd.html new file mode 100644 index 0000000..ac710b5 --- /dev/null +++ b/src/main/webapp/views/workspace/workspacePaymentAdd.html @@ -0,0 +1,149 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong>�궗�슜�옄 異붽� 寃곗젣</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="paymentAddForm"> + <table class="table table-lightborder"> + <tr> + <td> + <span translate="managementWorkspace.numberOfUsers">�궗�슜�옄 �닔</span> + </td> + <td> + <div class="input-group mb-2 mr-sm-2 mb-sm-0"> + <input class="form-control" placeholder="{{'managementWorkspace.pleaseEnterNumberOfUsers' | translate}}" + type="number" + number-only + ng-model="vm.form.buyUser" + maxlength="3" + autofocus + required> + <button class="btn btn-primary ml-1" type="button" ng-click="fn.changeBuyUser('PLUS')"><i class="os-icon os-icon-plus"></i></button> + <button class="btn btn-info ml-1" type="button" ng-click="fn.changeBuyUser('MINUS')"><i class="os-icon os-icon-minus"></i></button> + </div> + </td> + </tr> + <tr> + <td colspan="2" class="text-right bold"> + <span translate="managementWorkspace.paymentScheduledAmount">寃곗젣 �삁�젙湲덉븸</span> : <span class="text-danger">₩ {{vm.form.paymentAmountTemp | number}} <span translate="managementWorkspace.includesVAT">(遺�媛��꽭�룷�븿)</span></span> + <br><small>�궗�슜�옄 異붽� 寃곗젣瑜� 吏꾪뻾�븯�떆硫� �떎�쓬 �젙湲� 寃곗젣遺��꽣 寃곗젣 湲덉븸�씠 蹂��룞�맗�땲�떎.</small> + </td> + </tr> + <tr> + <td> + <span translate="managementWorkspace.paymentType">寃곗젣 �쑀�삎</span> + </td> + <td> + <select class="form-control" ng-model="vm.form.type"> + <option value="MONTH" translate="managementWorkspace.monthly">留ㅼ썡</option> + </select> + </td> + </tr> + <tr> + <td translate="managementWorkspace.cardNumber"> + 移대뱶踰덊샇 + </td> + <td> + <div class="input-group"> + <input class="form-control width-20-p" type="tel" + number-only ng-model="vm.form.cardNumber1" + maxlength="4"> <span + class="mt-2 mr-1 ml-1"> - </span> + <input class="form-control width-20-p" type="tel" + number-only ng-model="vm.form.cardNumber2" + maxlength="4"> <span + class="mt-2 mr-1 ml-1"> - </span> + <input class="form-control width-20-p" type="tel" + number-only ng-model="vm.form.cardNumber3" + maxlength="4"> <span + class="mt-2 mr-1 ml-1"> - </span> + <input class="form-control width-20-p" type="tel" + number-only ng-model="vm.form.cardNumber4" + maxlength="4"> + </div> + </td> + </tr> + <tr> + <td translate="managementWorkspace.validity"> + �쑀�슚湲곌컙 + </td> + <td> + <div class="input-group mb-2 mr-sm-2 mb-sm-0"> + <input class="form-control width-20-p" type="tel" number-only + placeholder="MM" ng-model="vm.form.expireMonth" + maxlength="2"> + <span class="mt-2 mr-2 ml-2"> / </span> + <input class="form-control width-20-p" type="tel" number-only + placeholder="YY" ng-model="vm.form.expireYearTmp" + maxlength="2"> + </div> + </td> + </tr> + <tr> + <td translate="common.password"> + 鍮꾨�踰덊샇 + </td> + <td> + <div class="input-group mb-2 mr-sm-2 mb-sm-0"> + <input class="form-control width-20-p" type="tel" number-only + placeholder="{{'managementWorkspace.FirstTwoDigits' | translate}}" ng-model="vm.form.cardPwd" + maxlength="2"> <span + class="mt-2 mr-2 ml-2"> ** </span> + </div> + </td> + + </tr> + <tr> + <td> + <span translate="managementWorkspace.dateOfOnesBirth">�깮�뀈�썡�씪</span><br> + <small translate="managementWorkspace.brn">(�궗�뾽�옄踰덊샇)</small> + </td> + <td> + <input class="form-control" type="tel" number-only + ng-model="vm.form.birth" maxlength="10"> + </td> + </tr> + <tr> + <td colspan="2"> + <!--<small>�궗�슜�옄 異붽� 寃곗젣瑜� 吏꾪뻾�븯�떆硫� �떎�쓬�떖 �젙湲� 寃곗젣 湲덉븸�씠 蹂�寃쎈맗�땲�떎.</small>--> + <div class="mt-10 text-center"> + <label for="paymentAddForm9"> + <input id="paymentAddForm9" type="checkbox" class="form-control agree-term" + ng-model="vm.form.confirm"> + <small for="paymentAddForm9" translate="managementWorkspace.agreeMyPersonalInformation">蹂몄씤�쓽 媛쒖씤�젙蹂대�� 寃곗젣 �꽌鍮꾩뒪�뾽泥댁뿉 �젣怨듯븿�뿉 �룞�쓽�빀�땲�떎.</small> + <a href="" ng-click="vm.viewAgreeTerm = !vm.viewAgreeTerm"> + <small translate="managementWorkspace.termsAndConditions" >�빟愿�</small> + </a> + <small translate="managementWorkspace.agreeToMakeThePayment">�뿉 �룞�쓽�븯�뀛�빞 寃곗젣媛� 媛��뒫�빀�땲�떎.</small> + </label> + </div> + <div style="border:1px solid #eee; height:200px; overflow-y: scroll; padding:10px; font-size:0.71rem;" ng-if="vm.viewAgreeTerm"> + <strong translate="users.privacyPolicy"></strong><br><br> + <span translate="users.privacyPolicy1"></span> + </div> + <div style="border:1px solid #eee; height:200px; overflow-y: scroll; padding:10px; font-size:0.71rem; margin-top:15px;" ng-if="vm.viewAgreeTerm"> + <strong translate="managementWorkspace.termsOfUse"></strong><br><br> + <span translate="managementWorkspace.termsOfUse1"></span> + </div> + </td> + </tr> + </table> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(paymentAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(paymentAddForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/workspace/workspacePaymentAgreeTerm.html b/src/main/webapp/views/workspace/workspacePaymentAgreeTerm.html new file mode 100644 index 0000000..b7dfc87 --- /dev/null +++ b/src/main/webapp/views/workspace/workspacePaymentAgreeTerm.html @@ -0,0 +1,376 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementWorkspace.privacyPolicyAndTermsOfUse">媛쒖씤 �젙蹂� 泥섎━ 諛⑹묠 諛� �씠�슜�빟愿�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <div style="border:1px solid #eee; height:200px; overflow-y: scroll; padding:10px; font-size:0.71rem;"> + <strong translate="users.privacyPolicy">媛쒖씤�젙蹂� 泥섎━諛⑹묠</strong><br><br> + <span translate="users.privacyPolicy1">二쇱떇�쉶�궗 ���씠利덉뒪�넠(�씠�븯 �쒗쉶�궗��)�� 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� 留ㅼ슦 以묒슂�떆�븯硫�, �젙蹂댄넻�떊留� �씠�슜珥됱쭊 諛� �젙蹂대낫�샇�뿉 愿��븳 踰뺣쪧�쓣 以��닔�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 怨듦컻瑜� �넻�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂닿� + �뼱�뼚�븳 紐⑹쟻怨� 諛⑹떇�쑝濡� �씠�슜�릺怨� �엳�쑝硫� 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 �뼱�뼚�븳 議곗튂媛� 痍⑦빐吏�怨� �엳�뒗吏�瑜� �븣�젮 �뱶由쎈땲�떎. 蹂� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 愿��젴 踰뺣졊�쓽 媛쒖젙�씠�굹 �쉶�궗 �궡遺�諛⑹묠�뿉 �쓽�빐 蹂�寃쎈맆 �닔 �엳�뒿�땲�떎. 蹂�寃쎈맆 �떆�뿉�뒗 + �뼵�젣�뱺吏� 洹� �궡�슜怨� �씠�쑀瑜� �돺寃� �븣 �닔 �엳�룄濡� 怨듭��궗�빆�쓣 �넻�븯�뿬 �븣�젮�뱶由ш쿋�뒿�땲�떎.<br> + + �젣 1議� (媛쒖씤�젙蹂댁쓽 �닔吏묓빆紐� 諛� �씠�슜紐⑹쟻)<br> + 怨좉컼�씠 �룞�쓽�븳 �씠�슜�빟愿��뿉 �뵲�씪 OWL �꽌鍮꾩뒪(OWL solution �궗�씠�듃 諛� OWL ITS �씠�븯 �쏰WL �꽌鍮꾩뒪��)�쓽 �떎�뼇�븳 湲곕뒫�쓣 �젣怨듯븯湲� �쐞�빐�꽌, �쉶�궗�뒗 怨좉컼�떂�쑝濡쒕��꽣 �떎�쓬怨� 媛숈� 媛쒖씤�젙蹂�(�룷愿꾪븯�뿬 �씠�븯 + �쒓컻�씤�젙蹂닳��)瑜� �닔吏�, 蹂닿��븯怨� �엳�뒿�땲�떎.<br> + (1) �븘�닔�엯�젰�궗�빆<br> + �몺 �쉶�썝媛��엯 �떆 �닔吏묓빆紐�: �씠硫붿씪, �씠由�<br> + (2) �꽑�깮�엯�젰�빆紐�<br> + �몺 �궗吏�<br> + (3) �꽌鍮꾩뒪 �씠�슜 �삉�뒗 �궗�뾽泥섎━ 怨쇱젙�뿉�꽌 �깮�꽦 �닔吏묐릺�뒗 媛곸쥌 嫄곕옒 諛� 媛쒖씤 �꽦�뼢 �젙蹂�<br> + �몺 �꽌鍮꾩뒪 �씠�슜湲곕줉, �젒�냽濡쒓렇, 荑좏궎, �젒�냽 IP�젙蹂�, 寃곗젣湲곕줉, 遺덈웾�씠�슜湲곕줉<br> + (4) �닔吏묅���씠�슜紐⑹쟻<br> + �몺 �꽌鍮꾩뒪(�젣�뭹) 臾몄쓽 �벑�뿉 ���븳 �긽�떞�씠�굹 �쓳��瑜� �쐞�븳 �솢�룞<br> + �몼 �쉶�썝�젣 �꽌鍮꾩뒪 �씠�슜�뿉 �뵲瑜� 蹂몄씤�솗�씤, 媛쒖씤�떇蹂�, 遺덈웾�쉶�썝�쓽 遺��젙 �씠�슜諛⑹��� 鍮꾩씤媛� �궗�슜諛⑹�, 媛��엯�쓽�궗 �솗�씤, 遺꾩웳議곗젙�쓣 �쐞�븳 湲곕줉蹂댁〈, 遺덈쭔泥섎━ �벑 誘쇱썝泥섎━, 怨좎��궗�빆 �쟾�떖<br> + �몾 �꽌鍮꾩뒪 �젣怨듭뿉 愿��븳 怨꾩빟�씠�뻾 諛� �꽌鍮꾩뒪 �젣怨듭뿉 �뵲瑜� �슂湲덉젙�궛 諛� �듅�젙 留욎땄�꽌鍮꾩뒪 �젣怨�(泥�援ъ꽌 �벑 諛쒖넚, �슂湲덇껐�젣)<br> + �몿 �떊洹� �꽌鍮꾩뒪(�젣�뭹) 媛쒕컻 �넻怨꾪븰�쟻 �듅�꽦�뿉 �뵲瑜� �꽌鍮꾩뒪 �젣怨�, �듅�솕, �씠踰ㅽ듃 �벑 愿묎퀬�꽦 �젙蹂댁쟾�떖 諛� 李몄뿬湲고쉶 �젣怨�, �꽌鍮꾩뒪�쓽 �쑀�슚�꽦 �솗�씤, �젒�냽 鍮덈룄 �뙆�븙 �삉�뒗 �쉶�썝�쓽 �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 �넻怨�<br> + + �젣 2議� (媛쒖씤�젙蹂댁쓽 �닔吏묐갑踰�)<br> + �솃�럹�씠吏� �쉶�썝媛��엯, �쉶�썝�젙蹂댁닔�젙, �쟾�솕, �씠硫붿씪, �꽭誘몃굹/�꽕臾�/�씠踰ㅽ듃 �떊泥�, 臾몄쓽 諛� �긽�떞, �젣�쑕臾몄쓽, �깮�꽦�젙蹂� �닔吏� �댋 �벑�쓣 �넻�븯�뿬 �룞�쓽�븳 寃쎌슦�뿉留� 媛쒖씤�젙蹂대�� �닔吏묓빀�땲�떎.<br> + + �젣 3議� (媛쒖씤�젙蹂� �옄�룞�닔吏묒옣移섏쓽 �꽕移� �슫�쁺 諛� 洹� 嫄곕�諛⑸쾿)<br> + �쉶�궗�뒗 怨좉컼�씠 �솃�럹�씠吏�瑜� �씠�슜�븯�뒗 寃쎌슦 怨좉컼�쓽 �젙蹂대�� �닔�떆濡� ���옣�븯怨� 李얠븘�궡�뒗 "荑좏궎(cookie)"�� �솃�럹�씠吏� �궗�슜湲곕줉(�씠�븯 "�넻怨꾨뜲�씠�꽣")�쓣 �옄�룞�쑝濡� �닔吏묓븯�뒗 �옣移섎�� �꽕移섃���슫�쁺�븷 �닔 �엳�뒿�땲�떎.<br> + (1) 荑좏궎(cookie)��?<br> + 荑좏궎�뒗 �솃�럹�씠吏�媛� 怨좉컼�쓽 �쎒 釉뚮씪�슦��濡� �쟾�넚�븯�뒗 �냼�웾�쓽 �젙蹂댁엯�땲�떎. 怨좉컼�씠 �솃�럹�씠吏��뿉 �젒�냽�븯硫� �쉶�궗�쓽 而댄벂�꽣�뒗 怨좉컼�쓽 釉뚮씪�슦���뿉 �엳�뒗 荑좏궎�쓽 �궡�슜�쓣 �씫怨�, 怨좉컼�쓽 異붽��젙蹂대�� 怨좉컼�쓽 而댄벂�꽣�뿉�꽌 李얠븘 �젒�냽�뿉 �뵲瑜� + �꽦紐� �벑�쓽 異붽� �엯�젰 �뾾�씠 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �엳�뒿�땲�떎. �삉�븳, 怨좉컼�� 荑좏궎�뿉 ���븳 �꽑�깮沅뚯씠 �엳�뒿�땲�떎. �쎒 釉뚮씪�슦�� �긽�떒�쓽 "�룄援�> �씤�꽣�꽬 �샃�뀡 �꺆�뿉�꽌 紐⑤뱺 荑좏궎瑜� �떎 諛쏆븘�뱾�씠嫄곕굹, 荑좏궎媛� �꽕移섎맆 �븣 �넻吏�瑜� + 蹂대궡�룄濡� �븯嫄곕굹, �븘�땲硫� 紐⑤뱺 荑좏궎瑜� 嫄곕��븷 �닔 �엳�뒗 �꽑�깮沅뚯쓣 媛�吏� �닔 �엳�뒿�땲�떎. �떒, 怨좉컼�뿉寃뚯꽌 荑좏궎�꽕移섎�� 嫄곕��븯���쓣 寃쎌슦 �꽌鍮꾩뒪 �씠�슜�뿉 遺덊렪�씠 �엳嫄곕굹, �꽌鍮꾩뒪 �젣怨듭뿉 �뼱�젮���씠 �엳�쓣 �닔 �엳�뒿�땲�떎<br> + (2) �넻怨꾨뜲�씠�꽣��?<br> + �솃�럹�씠吏�, �씠�룞�쟾�솕 �벑�쓽 �꽌鍮꾩뒪 �씠�슜 �떆 而댄벂�꽣 諛� �떒留먭린�쓽 �듅�젙�쁺�뿭�뿉 ���옣�릺怨�, 二쇨린�쟻�쑝濡� �쉶�궗�쓽 �꽌踰꾨줈 �쟾�떖�릺�뒗 �븘�옒�� 媛숈� �젙蹂댁엯�땲�떎.<br> + �몺 �꽌鍮꾩뒪 �궗�슜�넻怨�(�샇�젒�냽, �샇�젅�떒, �샇�떎�뙣 �떆 留앺솚寃�, �떎�슫濡쒕뱶 �떎�뻾�삤瑜�, �쑀/臾댁씤�꽣�꽬 �젒�냽�떎�뙣 諛� �젒�냽�떆媛� �벑)<br> + �몼 �궗�슜 �뙣�꽩 �젙蹂�(怨좉컼�쓽 硫붾돱 �씠�룞寃쎈줈, 二쇰줈 �씠�슜�븯�뒗 �꽌鍮꾩뒪, �꽌鍮꾩뒪 �씠�슜�슏�닔, 諛⑸Ц湲곕줉 �벑)<br> + (3) �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �슫�쁺<br> + �쉶�궗�뒗 怨좉컼�쓽 �렪�쓽瑜� �쐞�븯�뿬 荑좏궎, �넻怨꾨뜲�씠�꽣瑜� �슫�쁺�빀�땲�떎. �쉶�궗�쓽 荑좏궎, �넻怨꾨뜲�씠�꽣 �궗�슜紐⑹쟻�� �떎�쓬怨� 媛숈뒿�땲�떎.<br> + �몺 愿��떖 �엳寃� �몮�윭蹂� �궡�슜�뱾�뿉 ���븳 �옄痍⑤�� 異붿쟻�븯�뿬 �떎�쓬 踰� �젒�냽 �븣 媛쒖씤 留욎땄 �꽌鍮꾩뒪瑜� �젣怨�<br> + �몼 �쉶�썝怨� 鍮꾪쉶�썝�쓽 �젒�냽鍮덈룄 �삉�뒗 癒몃Ц �떆媛� �벑�쓣 遺꾩꽍�븯�뿬 怨좉컼�쓽 痍⑦뼢怨� 愿��떖遺꾩빞瑜� �뙆�븙�븯怨� �쉶�썝�뱾�쓽 �뒿愿��쓣 遺꾩꽍�븯�뿬 �꽌鍮꾩뒪 媛쒗렪 �떆 湲곗��쑝濡� �씠�슜 ��源�(target) 留덉��똿�뿉 �솢�슜<br> + �몾 �쑀猷뚯꽌鍮꾩뒪 �씠�슜 �떆 �씠�슜湲곌컙 �븞�궡<br> + �몿 臾몄쓽 諛� �긽�떞 湲� �벑濡� �렪�쓽�꽦 �젣怨�<br> + + �젣 4議� (媛쒖씤�젙蹂댁쓽 �씠�슜 諛� �젣3�옄 �젣怨�)<br> + (1) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 媛��엯�떊泥��꽌, �씠�슜�빟愿�, 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 "媛쒖씤�젙蹂� �닔吏묅���씠�슜 紐⑹쟻�긽 怨좎��븳 踰붿쐞 �궡�뿉�꽌 �씠�슜 諛� �젣怨듯븯硫�, 洹� 踰붿쐞瑜� �꽆�뼱�꽌 �씠�슜�븯嫄곕굹 �젣怨듯븯吏� �븡�뒿�땲�떎. �듅�엳, �떎�쓬�쓽 + 寃쎌슦�뒗 二쇱쓽瑜� 湲곗슱�뿬 媛쒖씤�젙蹂대�� �씠�슜 諛� �젣怨듯븷 寃껋엯�땲�떎.<br> + �몺 �젣�쑕愿�怨�<br> + 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�븯�뿬 怨좉컼�쓽 媛쒖씤�젙蹂대�� �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨� �븷 �닔 �엳�뒿�땲�떎. �씠 寃쎌슦 �궗�쟾�뿉 怨좉컼�뿉寃� �젣�쑕�궗媛� �늻援ъ씤吏�, 怨듭쑀 �삉�뒗 �젣怨듬릺�뒗 媛쒖씤�젙蹂댁쓽 �빆紐⑹씠 臾댁뾿�씤吏�, �뼱�뼚�븳 + �씠�쑀�뿉�꽌 媛쒖씤�젙蹂닿� 怨듭쑀�릺嫄곕굹 �젣怨듬릺�뼱�빞 �븯�뒗吏�, 洹몃━怨� �뼱�뼸寃� �뼵�젣源뚯� 蹂닿���愿�由щ릺�뒗吏��뿉 愿��븯�뿬 媛쒕퀎�쟻�쑝濡� �쟾�옄�쟻 諛⑸쾿�씠�굹, �쟾�솕, �꽌硫�, �뙥�뒪, �슦�렪 �벑�쓣 �넻�빐 怨좎��븯�뿬 �룞�쓽瑜� 援ы븯�뒗 �젅李⑤�� 嫄곗튂寃� �릺硫�, + 怨좉컼�씠 �룞�쓽�븯吏� �븡�뒗 寃쎌슦�뿉�뒗 �젣�쑕�궗�� 怨듭쑀�븯嫄곕굹 �젣�쑕�궗�뿉 �젣怨듬릺吏� �븡�뒿�땲�떎.<br> + (2) �쉶�궗�뒗 �꽌鍮꾩뒪�쓽 �젣怨듭뿉 愿��븳 怨꾩빟�쓣 �씠�뻾�븯湲� �쐞�븯�뿬 �븘�슂�븳 媛쒖씤�젙蹂대줈�꽌 湲곗닠�쟻��寃쎌젣�쟻�씤 �궗�쑀濡� �넻�긽�쟻�씤 �룞�쓽瑜� 諛쏅뒗 寃껋씠 �슌�졆�븯寃� 怨ㅻ��븳 寃쎌슦�뿉�뒗 怨좉컼�쓽 �룞�쓽媛� �뾾�뜑�씪�룄 媛쒖씤�젙蹂대�� �닔吏묅���씠�슜�븷 �닔 + �엳�뒿�땲�떎.<br> + (3) �떎�쓬�쓽 寃쎌슦�뿉�뒗 愿��젴 踰뺣졊�쓽 洹쒖젙�뿉 �쓽�븯�뿬 �쉶�썝�쓽 �룞�쓽 �뾾�씠 媛쒖씤�젙蹂대�� �젣怨듯븯�뒗 寃껋씠 媛��뒫�빀�땲�떎.<br> + �몺 �꽌鍮꾩뒪�젣怨듭뿉 �뵲瑜� �슂湲� �젙�궛�쓣 �쐞�븯�뿬 �븘�슂�븳 寃쎌슦<br> + �몼 �넻怨꾩옉�꽦���븰�닠�뿰援� �삉�뒗 �떆�옣議곗궗瑜� �쐞�븯�뿬 �븘�슂�븳 寃쎌슦濡쒖꽌 �듅�젙 媛쒖씤�쓣 �븣�븘蹂� �닔 �뾾�뒗 �삎�깭濡� 媛�怨듯븯�뿬 �젣怨듯븯�뒗 寃쎌슦<br> + �몾 湲덉쑖 �떎紐� 嫄곕옒 諛� 鍮꾨�蹂댁옣�뿉 愿��븳 踰뺣쪧, �떊�슜�젙蹂댁쓽 �씠�슜 諛� 蹂댄샇�뿉 愿��븳 踰뺣쪧, �쟾湲고넻�떊湲곕낯踰�, �쟾湲고넻�떊�궗�뾽踰�, 吏�諛⑹꽭踰�, �냼鍮꾩옄蹂댄샇踰�, �븳援����뻾踰�, �삎�궗�냼�넚踰� �벑 踰뺣쪧�뿉 �듅蹂꾪븳 洹쒖젙�씠 �엳�뒗 寃쎌슦<br> + �몿 �닔�궗 紐⑹쟻�쑝濡� 踰뺣졊�뿉 �젙�빐吏� �젅李⑥� 諛⑸쾿�뿉 �뵲�씪 �닔�궗湲곌��쓽 �슂援ш� �엳�뒗 寃쎌슦<br> + �뫀 怨좉컼�씠 �궗�쟾�뿉 �룞�쓽�븳 寃쎌슦<br> + + �젣 5議� (媛쒖씤�젙蹂댁쓽 泥섎━�쐞�긽)<br> + (1) �쉶�궗�뒗 怨좉컼�렪�쓽 �젣怨듦낵 蹂대떎 �굹�� �꽌鍮꾩뒪 �젣怨� �벑 �뾽臾� �닔�뻾�쓣 �썝�솢�븯寃� �븯湲� �쐞�븯�뿬 �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂댁뿉 ���븳 �닔吏묅��蹂닿���泥섎━���씠�슜���젣怨듈��愿�由р���뙆湲� �벑(�씠�븯 �쒖쿂由р��)�쓣 �쐞�긽�븷 �닔 + �엳�뒿�땲�떎.<br> + (2) �쉶�궗媛� �쇅遺� �쟾臾몄뾽泥댁뿉 怨좉컼�쓽 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯�뒗 寃쎌슦 洹� �쐞�긽�뾽臾댁쓽 �궡�슜, �닔�긽�옄�뒗 �떎�쓬 �몴�� 媛숈뒿�땲�떎.<br> + <媛쒖씤�젙蹂� �젣3�옄 �젣怨� 諛� �쐞�긽�쁽�솴><br> + �닔�긽�뾽泥� �굹�씠�뒪�젙蹂댄넻�떊�닚<br> + �쐞�긽�뾽臾대궡�슜 �떊�슜移대뱶 寃곗젣<br> + 蹂댁쑀 諛� �씠�슜湲곌컙 �쉶�썝 �깉�눜 �떆 �샊�� �쐞�긽怨꾩빟 醫낅즺 �떆源뚯�<br> + (3) �쉶�궗�뒗 怨좉컼�쓽 �룞�쓽 �뾾�씠 �꽌鍮꾩뒪 �젣怨� �씠�쇅�쓽 紐⑹쟻�쑝濡� 媛쒖씤�젙蹂대�� 泥섎━ �쐞�긽�븯吏� �븡�뒗 寃껋쓣 �썝移숈쑝濡� �빀�땲�떎. �떎留�, 洹몃윭�븳 �븘�슂媛� �깮湲곕뒗 寃쎌슦 �쐞�긽�뾽臾댁쓽 �궡�슜怨� �닔�긽�옄瑜� 怨좉컼�뿉寃� 怨좎��븯怨� �룞�쓽瑜� + 諛쏆뒿�땲�떎.<br> + + �젣 6議� (媛쒖씤�젙蹂댁쓽 �씠�슜��蹂닿� 湲곌컙)<br> + 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 �룞�쓽瑜� 諛쏆� 媛쒖씤�젙蹂댁쓽 �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�릺硫� 踰뺣졊 �삉�뒗 �궡遺�諛⑹묠�뿉 �쓽�빐 蹂댁〈�븷 �븘�슂媛� �엳�뒗 寃쎌슦瑜� �젣�쇅�븯怨좊뒗 吏�泥� �뾾�씠 �뙆湲곕맗�땲�떎.<br> + (1) 臾대텇蹂꾪븳 �쉶�썝�깉�눜�� �옱媛��엯�쑝濡� �씤�븳 �뵾�빐 理쒖냼�솕, �쉶�썝�깉�눜 �썑 蹂��떖�뿉 �쓽�븳 誘쇱썝泥섎━ �벑�쓣 泥섎━�븯湲� �쐞�븯�뿬 �쉶�썝�깉�눜 �썑 1�뀈媛� �쉶�썝�젙蹂대�� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br> + (2) 蹂댁쑀 湲곌컙�쓣 誘몃━ 怨좎��븯怨� 蹂꾨룄�쓽 �룞�쓽瑜� 諛쏆� 寃쎌슦 �빐�떦 蹂댁쑀湲곌컙源뚯� 蹂댁쑀�븷 �닔 �엳�뒿�땲�떎.<br> + (3) �쉶�궗媛� 踰뺣졊�뿉 �뵲�씪 蹂닿��븯�뒗 媛쒖씤�젙蹂� 諛� �빐�떦 踰뺣졊�� �븘�옒 �몴�� 媛숈뒿�땲�떎.<br> + + 蹂댁〈 �빆紐�: 怨꾩빟 �삉�뒗 泥��빟泥좏쉶 �벑�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: ��湲덇껐�젣 諛� �옱�솕 �벑�쓽 怨듦툒�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �냼鍮꾩옄�쓽 遺덈쭔 �삉�뒗 遺꾩웳泥섎━�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 3�뀈<br> + 蹂댁〈 �빆紐�: �몴�떆/愿묎퀬�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄�긽嫄곕옒 �벑�뿉�꽌�쓽 �냼鍮꾩옄蹂댄샇�뿉 愿��븳 踰뺣쪧<br> + 蹂댁〈 湲곌컙: 6媛쒖썡<br> + 蹂댁〈 �빆紐�: �꽭踰뺤씠 洹쒖젙�븯�뒗 紐⑤뱺 嫄곕옒�뿉 愿��븳 �옣遺� 諛� 利앸튃�꽌瑜�<br> + 洹쇨굅 踰뺣졊: 援��꽭湲곕낯踰�<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �쟾�옄湲덉쑖 嫄곕옒�뿉 愿��븳 湲곕줉<br> + 洹쇨굅 踰뺣졊: �쟾�옄湲덉쑖嫄곕옒踰�<br> + 蹂댁〈 湲곌컙: 5�뀈<br> + 蹂댁〈 �빆紐�: �꽌鍮꾩뒪 諛⑸Ц湲곕줉<br> + 洹쇨굅 踰뺣졊: �넻�떊鍮꾨�蹂댄샇踰�<br> + 蹂댁〈 湲곌컙: 3媛쒖썡<br> + + (4) �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대낫�샇瑜� �쐞�빐 怨좉컼�쓽 �쉶�썝媛��엯 怨꾩젙�쓣 �궗�슜怨꾩젙怨� �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯�뿬 愿�由ы빀�땲�떎. OWL �꽌鍮꾩뒪瑜� 1�뀈 �룞�븞 濡쒓렇�씤 �삉�뒗 �씠�슜�궡�뿭�씠 �뾾�쓣 寃쎌슦 怨좉컼�쓽 媛쒖씤�젙蹂� 蹂댄샇瑜� �쐞�빐 + �쑕硫닿퀎�젙�쑝濡� 援щ텇�븯怨� 怨좉컼 媛쒖씤�젙蹂댁쓽 �솢�슜 諛� �젣�쑕�궗 (�젣3�옄 �룞�쓽�븳 �젣�쑕�궗)�뿉 怨좉컼�쓽 �젙蹂대�� �젣怨듯븯吏� �븡�뒿�땲�떎.<br> + + �젣 7議� (媛쒖씤�젙蹂댁쓽 �뙆湲곗젅李� 諛� 諛⑸쾿)<br> + (1) 怨좉컼�쓽 媛쒖씤�젙蹂대뒗 怨좉컼�쑝濡쒕��꽣 �룞�쓽瑜� 諛쏆� �닔吏� 諛� �씠�슜紐⑹쟻�씠 �떖�꽦�맂 �븣�뿉�뒗 蹂꾨룄�쓽 DB濡� �삷寃⑥졇(醫낆씠�쓽 寃쎌슦 蹂꾨룄�쓽 �꽌瑜섑븿) 愿�怨� 踰뺣졊�뿉�꽌 �젙�븳 �씪�젙�븳 湲곌컙 �룞�븞 蹂닿��븳 �떎�쓬 �뙆湲고빀�땲�떎.<br> + (2) 醫낆씠�뿉 異쒕젰�맂 媛쒖씤�젙蹂대뒗 遺꾩뇙湲곕줈 遺꾩뇙�븯嫄곕굹 �냼媛곸쓣 �넻�븯�뿬 �뙆湲고븯怨�, �쟾�옄�쟻 �뙆�씪 �삎�깭濡� ���옣�맂 媛쒖씤�젙蹂대뒗 湲곕줉�쓣 �옱�깮�븷 �닔 �뾾�뒗 湲곗닠�쟻 諛⑸쾿�쓣 �궗�슜�븯�뿬 �궘�젣�빀�땲�떎.<br> + + �젣 8議� (怨좉컼�쓽 沅뚮━�� 洹� �뻾�궗諛⑸쾿)<br> + (1) 怨좉컼(留� 14�꽭 誘몃쭔�씤 寃쎌슦 踰뺤젙 ��由ъ씤)�� �뼵�젣�뱺吏� OWL �꽌鍮꾩뒪 �궡�뿉�꽌 怨좉컼�쓽 媛쒖씤�젙蹂대�� �뿴�엺 �삉�뒗 蹂�寃쏀븷 �닔 �엳�쑝硫�, 怨좉컼�� �븘�슱 �꽌鍮꾩뒪�쓽 �씠�슜�빟愿��뿉 �뵲�씪 怨좉컼�쓽 媛쒖씤�젙蹂� �닔吏� 諛� �씠�슜�뿉 ���븯�뿬 + �쉶�궗�뿉 �룞�쓽 泥좏쉶瑜� �슂援ы븯嫄곕굹 OWL �꽌鍮꾩뒪�뿉�꽌 �깉�눜�떆耳� 以� 寃껋쓣 �슂援ы븷 �닔 �엳�뒿�땲�떎<br> + (2) �삩�씪�씤 媛��엯�젙蹂댁쓽 �뿴�엺 諛� �젙�젙�쓣 �븯怨좎옄 �븯�뒗 怨좉컼�쓽 寃쎌슦�뿉�뒗 �솃�럹�씠吏� �궡�쓽 "�쉶�썝�젙蹂�"瑜� �겢由��븯�뿬 吏곸젒 �뿴�엺 諛� �젙�젙�쓣 �븯嫄곕굹, 怨좉컼�꽱�꽣瑜� �넻�빐 �꽌硫�, �쟾�솕 �삉�뒗 �씠硫붿씪濡� �뿰�씫�븯�떆硫� 吏�泥� �뾾�씠 + 議곗튂�븯寃좎뒿�땲�떎.<br> + (3) �쉶�궗�뒗 ��由ъ씤�씠 諛⑸Ц�븯�뿬 �뿴�엺��利앸챸�쓣 �슂援ы븯�뒗 寃쎌슦�뿉�뒗 �쟻踰뺥븳 �쐞�엫�쓣 諛쏆븯�뒗吏� �솗�씤�븷 �닔 �엳�뒗 �쐞�엫�옣 諛� 蹂몄씤�쓽 �씤媛먯쬆紐낆꽌�� ��由ъ씤�쓽 �떊遺꾩쬆 �벑�쓣 �젣異� 諛쏆븘 �젙�솗�엳 ��由ъ씤 �뿬遺�瑜� �솗�씤�빀�땲�떎.<br> + (4) 怨좉컼�씠 媛쒖씤�젙蹂댁쓽 �삤瑜섏뿉 ���븳 �젙�젙�쓣 �슂泥��븯�떊 寃쎌슦 �쉶�궗�뒗 �젙�젙�쓣 �셿猷뚰븯湲� �쟾源뚯� �빐�떦 媛쒖씤�젙蹂대�� �씠�슜 �삉�뒗 �젣怨듯븯吏� �븡�뒿�땲�떎. �삉�븳 �쉶�궗�뒗 �옒紐삳맂 媛쒖씤�젙蹂대�� �씠誘� �젣3�옄�뿉寃� �젣怨듯븳 寃쎌슦 洹� �젙�젙 + 泥섎━寃곌낵瑜� �젣3�옄�뿉寃� 吏�泥� �뾾�씠 �넻吏��븯�뿬 �젙�젙�븯�룄濡� �빀�땲�떎. + (5) 怨좉컼�� 媛쒖씤�젙蹂대�� 理쒖떊�쓽 �긽�깭濡� �젙�솗�븯寃� �엯�젰�븯怨� 蹂��룞 �궗�빆�씠 �엳�뒗 寃쎌슦, �씠瑜� �쉶�궗�뿉 �넻蹂댄븯�뿬�빞 �븯硫�, �뒪�뒪濡� 遺��젙�솗�븳 �젙蹂대�� �엯�젰�븯嫄곕굹, �쉶�궗�뿉 �넻蹂댄븯吏� �븡�븘�꽌 �쉶�궗媛� �븣 �닔 �뾾�뒗 怨좉컼�젙蹂댁쓽 + 蹂��룞�쑝濡� �씤�븳 梨낆엫�� 怨좉컼 �옄�떊�뿉寃� 洹��냽�맗�땲�떎.<br> + (6) 怨좉컼�씠 ���씤 �젙蹂댁쓽 �룄�슜�씠�굹 移⑦빐, �뿀�쐞�젙蹂대�� �엯�젰�븯�뒗 寃쎌슦 �꽌鍮꾩뒪 �빐吏� 諛� �쉶�썝�옄寃⑹씠 �긽�떎�맆 �닔 �엳�쑝硫� 踰� �벑 愿��젴 踰뺣졊�뿉 �뵲�씪 泥섎쾶諛쏆쓣 �닔 �엳�뒿�땲�떎.<br> + + �젣 9議� (媛쒖씤�젙蹂대낫�샇瑜� �쐞�븳 湲곗닠�쟻 愿�由ъ쟻 ��梨�)<br> + �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂닿� 遺꾩떎, �룄�궃, �늻異�, 蹂�議� �삉�뒗 �쎕�넀�릺吏� �븡�룄濡� �븯湲� �쐞�빐�꽌 �떎�쓬怨� 媛숈� 湲곗닠�쟻/愿�由ъ쟻 ��梨낆쓣 媛뺢뎄�븯怨� �엳�뒿�땲�떎.<br> + (1) 湲곗닠�쟻 ��梨�<br> + �몺 �젒�냽湲곕줉�쓽 �쐞��蹂�議� 諛⑹� 議곗튂瑜� 痍⑦븯怨� �엳�뒿�땲�떎.<br> + �몼 媛쒖씤�젙蹂대뒗 洹� 醫낅쪟�뿉 �뵲�씪 愿��젴 踰뺣졊�씠 �슂援ы븯�뒗 �닔以��쓽 �븫�샇�솕 ���옣 �삉�뒗 �쟾�넚 �떆 �븫�샇�솕 湲곗닠�쓽 �쟻�슜�븯�뿬 愿�由ы빀�땲�떎.<br> + �몾 諛깆떊�봽濡쒓렇�옩�쓣 �씠�슜�븯�뿬 而댄벂�꽣 諛붿씠�윭�뒪�뿉 �쓽�븳 �뵾�빐瑜� 諛⑹��븯湲� �쐞�븳 議곗튂瑜� 痍⑦븯怨� �엳�쑝硫�, 諛깆떊�봽濡쒓렇�옩�쓣 二쇨린�쟻�쑝濡� �뾽�뜲�씠�듃�븯怨� 媛묒옉�뒪�윭�슫 諛붿씠�윭�뒪 異쒗쁽 �떆�뿉 諛깆떊�씠 �굹�삤�뒗 利됱떆 �씠瑜� �젣怨듯븿�쑝濡쒖뜥 + 媛쒖씤�젙蹂닿� 移⑦빐�릺�뒗 寃껋쓣 諛⑹��븯怨� �엳�뒿�땲�떎.<br> + �몿 �븫�샇�븣怨좊━利섏쓣 �씠�슜�븯�뿬 �꽕�듃�썙�겕�긽 媛쒖씤�젙蹂대�� �븞�쟾�븯寃� �쟾�넚�븯�뒗 蹂댁븞�옣移�(SSL �벑)瑜� 梨꾪깮�븯怨� �엳�뒿�땲�떎.<br> + �뫀 �빐�궧 �벑 �쇅遺� 移⑥엯�뿉 ��鍮꾪븯�뿬 媛� �꽌踰꾨쭏�떎 移⑥엯李⑤떒�떆�뒪�뀥 諛� 痍⑥빟�젏遺꾩꽍�떆�뒪�뀥�쓣 �씠�슜�븯�뿬 蹂댁븞�뿉 理쒖꽑�쓣 �떎�븯怨� �엳�뒿�땲�떎.<br> + + (2) 愿�由ъ쟻 ��梨�<br> + �몺 �쉶�궗�뒗 媛쒖씤�젙蹂� 蹂댄샇�뿉 愿��븳 �궡遺�愿�由ш퀎�쉷�쓣 �닔由�, �떆�뻾�븯怨� �엳�뒿�땲�떎.<br> + �몼 �쉶�궗�뒗 媛쒖씤�젙蹂댁뿉 ���븳 �젒洹쇨텒�븳�쓣 �븘�슂��理쒖냼�븳�쓽 �씤�썝�쑝濡� �젣�븳�븯怨� �엳�뒿�땲�떎.<br> + �몾 �쉶�궗�뒗 媛쒖씤�젙蹂닿��젴 痍④툒 吏곸썝�� �떞�떦�옄�뿉寃� �븳�젙�떆�궎怨� �엳怨� �씠瑜� 蹂꾨룄�쓽 鍮꾨�踰덊샇瑜� 遺��뿬�븯�뿬 �젙湲곗쟻�쑝濡� 媛깆떊�븯怨� �엳�쑝硫�, �떞�떦�옄�뿉 ���븳 �닔�떆 援먯쑁�쓣 �넻�븯�뿬 �쉶�궗 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓽 以��닔瑜� �빆�긽 媛뺤“�븯怨� + �엳�뒿�땲�떎.<br> + �몿 �쉶�궗�뒗 怨좉컼�쓽 �떎�닔�굹 湲곕낯�쟻�씤 �씤�꽣�꽬�쓽 �쐞�뿕�꽦 �븣臾몄뿉 �씪�뼱�굹�뒗 �씪�뱾�뿉 ���빐 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎. 怨좉컼 �뒪�뒪濡쒓� 蹂몄씤�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯湲� �쐞�빐�꽌 �옄�떊�쓽 �씠硫붿씪怨� 鍮꾨�踰덊샇瑜� �쟻�젅�븯寃� 愿�由ы븯怨� �뒪�뒪濡� 梨낆엫�쓣 + �졇�빞 �빀�땲�떎.<br> + + �젣 10議� (媛쒖씤�젙蹂� 蹂댄샇梨낆엫�옄 諛� �떞�떦�옄�쓽 �뿰�씫泥�)<br> + �쉶�궗�뒗 怨좉컼�쓽 媛쒖씤�젙蹂대�� 蹂댄샇�븯怨� 媛쒖씤�젙蹂댁� 愿��젴�븳 遺덈쭔�쓣 泥섎━�븯湲� �쐞�븯�뿬 �븘�옒�� 媛숈씠 愿��젴 遺��꽌 諛� 媛쒖씤�젙蹂닿�由ъ콉�엫�옄瑜� 吏��젙�븯怨� �엳�뒿�땲�떎. �쉶�궗�뒗 怨좉컼�쓽 紐⑹냼由ъ뿉 洹� 湲곗슱�씠怨� �떊�냽�븯怨� 異⑸텇�븳 �떟蹂��쓣 �뱶由� �닔 + �엳�룄濡� 理쒖꽑�쓣 �떎�븯寃좎뒿�땲�떎.<br> + + <媛쒖씤�젙蹂대낫�샇 梨낆엫�옄><br> + 愿�由� 梨낆엫�옄: �씠�젙�꽑 ���옣 | 愿�由� �떞�떦�옄: 源��쑀吏� 二쇱엫<br> + �떞�떦遺��꽌: �뀒�뒪�똿 �넄猷⑥뀡�꽱�꽣 �냼�봽�듃�썾�뼱 媛쒕컻��<br> + �뿰�씫泥�: jslee1@wisestone.kr<br> + + 湲고� 媛쒖씤�젙蹂댁묠�빐�뿉 ���븳 �떊怨좊굹 �긽�떞�씠 �븘�슂�븯�떊 寃쎌슦�뿉�뒗 �븘�옒 湲곌��뿉 臾몄쓽�븯�떆湲� 諛붾엻�땲�떎.<br> + + �몺 媛쒖씤�젙蹂댁묠�빐�떊怨좎꽱�꽣: �쟾�솕 118 / �씠硫붿씪 privacy@kisa.or.kr / http://privacy.kisa.or.kr<br> + �몼 �젙蹂대낫�샇留덊겕 �씤利앹쐞�썝�쉶: �쟾�솕 02-580-0533~4 / http://www.eprivacy.or.kr<br> + �몾 ��寃�李곗껌 �궗�씠踰꾨쾾二꾩닔�궗�떒: �쟾�솕 02-3480-3571 / �씠硫붿씪 cybercid@spo.go.kr / http://www.spo.go.kr<br> + �몿 寃쎌같泥� �궗�씠踰꾪뀒�윭 ���쓳�꽱�꽣: �쟾�솕 1566-0112 / http://cyber.go.kr<br> + + �젣 11議� (怨좎��쓽 �쓽臾�)<br> + �쉶�궗�뒗 踰뺣쪧�씠�굹 �꽌鍮꾩뒪�쓽 蹂�寃쎌궗�빆�쓣 諛섏쁺�븯湲� �쐞�븳 紐⑹쟻 �벑�쑝濡� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�쓣 �닔�젙�븷 �닔 �엳�뒿�땲�떎. 媛쒖씤�젙蹂� 泥섎━諛⑹묠�씠 蹂�寃쎈릺�뒗 寃쎌슦 �쉶�궗�뒗 蹂�寃� �궗�빆�쓣 寃뚯떆�븯硫�, 蹂�寃쎈맂 媛쒖씤�젙蹂� 泥섎━諛⑹묠�� 寃뚯떆�븳 + �궇濡쒕��꽣 7�씪 �썑遺��꽣 �슚�젰�씠 諛쒖깮�빀�땲�떎. �븯吏�留�, �뵾移� 紐삵븯寃� �뿬�윭遺꾩쓽 沅뚮━�뿉 以묒슂�븳 蹂�寃쎌씠 �엳�쓣 寃쎌슦 蹂�寃쎈맆 �궡�슜�쓣 30�씪 �쟾�뿉 誘몃━ �븣�젮�뱶由ш쿋�뒿�땲�떎.<br> + + �� �떆�뻾�씪�옄 : 2018�뀈 11�썡 09�씪<br><br><br></span> + </div> + <div style="border:1px solid #eee; height:200px; overflow-y: scroll; padding:10px; font-size:0.71rem; margin-top:15px;"> + <strong translate="managementWorkspace.termsOfUse">�씠�슜�빟愿�</strong><br><br> + <span translate="managementWorkspace.termsOfUse1">�젣 1議� (紐⑹쟻)<br> + �씠 �빟愿��� 二쇱떇�쉶�궗 ���씠利덉뒪�넠(�씠�븯 '�쉶�궗'�씪 �빀�땲�떎)�씠 �젣怨듯븯�뒗 OWL �꽌鍮꾩뒪(OWL solution �궗�씠�듃 諛� OWL ITS �씠�븯 �쏰WL + �꽌鍮꾩뒪��)�쓽 �씠�슜愿��젴�븯�뿬 �쉶�궗�� �쉶�썝媛꾩쓽 沅뚮━, �쓽臾� 諛� 梨낆엫�궗�빆, �씠�슜議곌굔 諛� �젅李� �벑 �븘�슂�궗�빆�쓣 洹쒖젙�븿�쓣 紐⑹쟻�쑝濡� �빀�땲�떎.<br> <br> + + �젣 2議� (�젙�쓽)<br> + �씠 �빟愿��뿉�꽌 �궗�슜�븯�뒗 �슜�뼱�쓽 + �젙�쓽�뒗 �떎�쓬怨� 媛숈뒿�땲�떎.<br> + (1) \"�꽌鍮꾩뒪\"�씪 �븿�� 援ы쁽�릺�뒗 �떒留먭린(PC, �쑕���삎�떒留먭린 �벑�쓽 媛곸쥌 �쑀臾댁꽑 �옣移섎�� �룷�븿)�� �긽愿��뾾�씠 \"�쉶�썝\"�씠 �씠�슜�븷 �닔 �엳�뒗 OWL �꽌鍮꾩뒪�� 愿��젴 �젣諛� �꽌鍮꾩뒪瑜� �쓽誘명빀�땲�떎.<br> + (2) �쏰WL ITS�앸씪 �븿�� �쒗쉶�썝�앷낵 援ъ꽦�썝�뱾媛꾩뿉 �뾽臾대�� 吏꾪뻾�븯硫댁꽌 諛쒖깮�븯�뒗 �뿬�윭 臾몄젣瑜� �떆�뒪�뀥�뿉 �벑濡앺븯怨� 吏꾪뻾 �긽�솴�쓣 湲곕줉�븯�뒗 �뵆�옯�뤌�쓣 �쓽誘명빀�땲�떎.<br> + (3) \"�쉶�썝\"�씠�씪 �븿�� �쉶�궗�쓽 \"�꽌鍮꾩뒪\"�뿉 �젒�냽�븯�뿬 �씠 �빟愿��뿉 �뵲�씪 \"�쉶�궗\"�� �씠�슜怨꾩빟�쓣 泥닿껐�븯怨� \"�쉶�궗\"媛� �젣怨듯븯�뒗 \"�꽌鍮꾩뒪\"瑜� �씠�슜�븯�뒗 怨좉컼�쓣 留먰빀�땲�떎.<br> + (4) \"鍮꾨�踰덊샇\"�씪 �븿�� \"�쉶�썝\"�씠 遺��뿬 諛쏆� �씠硫붿씪 二쇱냼�� �씪移섎릺�뒗 \"�쉶�썝\"�엫�쓣 �솗�씤�븯怨� 鍮꾨�蹂댄샇瑜� �쐞�빐 \"�쉶�썝\" �옄�떊�씠 �젙�븳 臾몄옄 �삉�뒗 �닽�옄�쓽 議고빀�쓣 �쓽誘명빀�땲�떎.<br> + (5) �쒓뎄�꽦�썝�앹씠�씪 �븿�� �쒗쉶�썝�앹쑝濡쒕��꽣 �쏰WL ITS�� �씠�슜沅뚰븳�쓣 遺��뿬諛쏆븘 �쒗쉶�썝�� 愿�由ы븯�뿉 �쏰WL ITS�앸�� �씠�슜�븯�뒗 �옄瑜� �쓽誘명븯�뿬, �쒗쉶�썝�앹쑝濡쒕��꽣 遺��뿬諛쏆� 沅뚰븳�뿉 �뵲�씪 �떎�쓬怨� 媛숈씠 �쒖뾽臾� 怨듦컙 + 愿�由ъ옄�� 諛� �쒖씪諛� 援ъ꽦�썝�앹쑝濡� 援щ텇�맗�땲�떎. + �떎留� �쒗쉶�썝�앹씠 �쒖뾽臾� 怨듦컙 愿�由ъ옄�앹씤 寃쎌슦�쒓뎄�꽦�썝�앹� �쒖씪諛� 援ъ꽦�썝�앹쑝濡� 援щ텇�맗�땲�떎.<br> + (6) \"�뾽臾� 怨듦컙 愿�由ъ옄\"�씪 �븿�� \"OWL ITS\"�쓽 �옄�떊�쓽 �뾽臾� 怨듦컙�뿉 ���빐 紐⑤뱺 愿�由� 湲곕뒫�쓣 �씠�슜�븷 �닔 �엳怨�, \"OWL ITS\" �씠�슜怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒗 \"�쉶�썝\" 蹂몄씤�쓣 + �쓽誘명빀�땲�떎.<br> + (7) \"�씪諛� 援ъ꽦�썝\"�씠�씪 �븿�� 蹂꾨떎瑜� 愿�由� 沅뚰븳 �뾾�씠 \"OWL ITS\"�쓣 �씠�슜�븯�뒗 \"援ъ꽦�썝\"�쓣 �쓽誘명빀�땲�떎.<br> + (8) �쒓퀎�젙�앹씠�씪 �븿�� �쒗쉶�썝�앹씠 OWL �꽌鍮꾩뒪瑜� �씠�슜�븯湲� �쐞�븯�뿬 �븘�슂�븳 �씠硫붿씪 二쇱냼 諛� �쒕퉬諛�踰덊샇�앸�� 湲곗큹濡� �븯�뿬 �깮�꽦�맂 濡쒓렇�씤 �쒓퀎�젙�앹씠�굹 �떎瑜� �꽌鍮꾩뒪�� �뿰�룞�릺�뒗 �꽌鍮꾩뒪�쓽 怨꾩젙�쓣 �쓽誘명빀�땲�떎.<br> + (9) �쒖뾽臾� 怨듦컙�앹씠�씪 �븿�� �쏰WL ITS�앸�� �씠�슜�븯湲� �쐞�븯�뿬 �깮�꽦�맂 �꽌鍮꾩뒪 怨꾩젙�쑝濡� �삊�뾽�씠 媛��뒫�븳 怨듦컙�쓣 �쓽誘명빀�땲�떎. �쒗쉶�썝�앹쓽 �쒓퀎�젙�앹� �뿬�윭 �뾽臾닿났媛꾩뿉 �냽�븷 �닔 �엳�뒿�땲�떎.<br> + (10)�쒓쾶�떆臾쇄�앹씠�씪 �븿�� �쒗쉶�썝�앹씠 �쒖꽌鍮꾩뒪�앸�� �씠�슜�븿�뿉 �엳�뼱 �쒖꽌鍮꾩뒪�앹긽�뿉 寃뚯떆�븳 遺��샇��臾몄옄���룞�쁺�긽 �벑�쓽 �젙蹂� �삎�깭�쓽 湲�, �궗吏�, �룞�쁺�긽 諛� 媛곸쥌 �뙆�씪怨� 留곹겕 �벑�쓣 �쓽誘명빀�땲�떎.<br> + (11) �쒖긽�뭹�앹씠�씪 �븿�� �쒗쉶�썝�앹씠 �쒖꽌鍮꾩뒪�앹쓽 �썝�솢�븳 �씠�슜�쓣 �쐞�빐 �쒗쉶�궗�앷� 吏��젙�븳 �슂湲덉젣�뿉 �뵲�씪 �쒗쉶�썝�앹씠 �꽑�깮�븯怨� 怨꾩빟�븳 �꽌鍮꾩뒪 �븳 醫낅쪟瑜� �쓽誘명빀�땲�떎. + �쒗쉶�썝�� �꽑�깮�븷 �닔 �엳�뒗 �쒖긽�뭹�앹� �슂湲� 吏�遺덉씠 �븘�슂 �뾾�뒗 臾대즺�긽�뭹怨� �씠�슜�슂湲덉쓣 吏�遺덊빐�빞 �븯�뒗 �쑀猷뚯긽�뭹�쑝濡� �쉶�썝�뿉寃� �젣怨듬맆 �닔 �엳�뒿�땲�떎.<br> + (14) \"寃곗젣\"�씪 �븿�� \"�쉶�썝\"�씠 \"OWL ITS\"�쓽 �쑀猷� 湲곕뒫�쓣 �씠�슜�븯湲� �쐞�븯�뿬 鍮꾩슜�쓣 \"�쉶�궗\"�뿉 吏�湲됲븯�뒗 寃껋쓣 �쓽誘명빀�땲�떎.<br> + (15) \"�젙湲곌껐�젣\"�씪 �븿�� 留ㅻ떖 �옄�룞寃곗젣�씪�뿉 �씠�슜�슂湲덉씠 \"寃곗젣\"�릺�뼱 OWL ITS �쑀猷� 湲곕뒫�쓣 �씠�슜�븷 �닔 �엳�뒗 諛⑹떇�쓣 留먰빀�땲�떎.<br> + (16) \"利됱떆寃곗젣\"�씪 �븿�� 1�쉶�꽦 �쒓껐�젣�앸줈 寃곗젣�씪 以묎컙�뿉 �쒖씪諛� 援ъ꽦�썝�앹쓣 利됱떆 異붽��븯湲� �쐞�븳 �쒓껐�젣�앸갑�떇�쓣 �쓽誘명빀�땲�떎.<br> <br> + + �젣 3議� (�빟愿� 寃뚯떆�� 媛쒖젙)<br> + (1) �쉶�궗�뒗 蹂� �빟愿��쓽 �궡�슜�쓣 �쉶�썝�씠 �돺寃� �븣 �닔 �엳�룄濡� OWL �꽌鍮꾩뒪 珥덇린�솕硫댁뿉 寃뚯떆�빀�땲�떎.<br> + (2) �쉶�궗�뒗 �븘�슂�븳 寃쎌슦 愿��젴踰뺣졊�쓣 �쐞諛고븯吏� �븡�뒗 踰붿쐞 �궡�뿉�꽌 蹂� �빟愿��쓣 蹂�寃쏀븷 �닔 �엳�뒿�땲�떎.<br> + (3)) �쉶�궗媛� 蹂� �빟愿��쓣 媛쒖젙�븯�뒗 寃쎌슦�뿉�뒗 �쟻�슜�씪�옄 諛� 媛쒖젙�궗�쑀瑜� 紐낆떆�븯�뿬 �쁽�뻾 �빟愿�怨� �븿猿� OWL �꽌鍮꾩뒪 怨듭��궗�빆 寃뚯떆�뙋�뿉 �쟻�슜�씪�옄 15�씪 �쟾遺��꽣 �쟻�슜�씪�옄 �쟾�씪源뚯� 怨듭��빀�땲�떎. �떒, �뵾移� 紐삵븯寃� �쉶�썝�뿉寃� + 遺덈━�븳 �궡�슜�쑝濡� �빟愿��씠 媛쒖젙�릺�뒗 + 寃쎌슦�뿉�뒗 怨듭� �쇅�뿉 �쉶�썝�씠 �쉶�썝媛��엯 �떆 湲곗옱�븳 �씠硫붿씪 二쇱냼濡� �씠硫붿씪 諛쒖넚, 濡쒓렇�씤 �떆 �븣由� �뙘�뾽李� �삉�뒗 �룞�쓽李� �벑�쓽 �쟾�옄�쟻 �닔�떒�쓣 �넻�빐 �쟻�슜�씪�옄 30�씪 �쟾�뿉 �뵲濡� 紐낇솗�엳 �넻吏��빀�땲�떎.<br> + (4) �쉶�궗媛� �쟾�빆�뿉 �뵲�씪 媛쒖젙�빟愿��쓣 怨듭� �삉�뒗 �넻吏��븯硫댁꽌 �쉶�썝�뿉寃� 30�씪 湲곌컙 �궡�뿉 �쓽�궗�몴�떆瑜� �븯吏� �븡�쑝硫� �쓽�궗�몴�떆媛� �몴紐낅맂 寃껋쑝濡� 蹂몃떎�뒗 �쑜�쓣 紐낇솗�븯寃� 怨듭� �삉�뒗 �넻吏��븯���쓬�뿉�룄 �쉶�썝�씠 紐낆떆�쟻�쑝濡� 嫄곕��쓽 + �쓽�궗�몴�떆瑜� �븯吏� + �븘�땲�븳 寃쎌슦 �쉶�썝�씠 媛쒖젙�빟愿��뿉 �룞�쓽�븳 寃껋쑝濡� 遊낅땲�떎.<br> + (5) �쉶�썝�씠 媛쒖젙�빟愿��뿉 �룞�쓽�븯吏� �븡�쓣 寃쎌슦 �쉶�궗�뒗 媛쒖젙 �빟愿��쓽 �궡�슜�쓣 �쟻�슜�븷 �닔 �뾾�쑝硫�, �씠 寃쎌슦 �쉶�썝�� �씠�슜怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒿�땲�떎. �떎留�, 湲곗〈 �빟愿��쓣 �쟻�슜�븷 �닔 �뾾�뒗 �듅蹂꾪븳 �궗�젙�씠 �엳�뒗 寃쎌슦 �쉶�궗�뒗 + �씠�슜怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒿�땲�떎.<br> <br> + + �젣 4議� (�빟愿� �쇅 以�移�)<br> 蹂� �빟愿��뿉 紐낆떆�릺吏� �븡�� �궗�빆�� �쟾湲고넻�떊湲곕낯踰�, �쟾湲고넻�떊�궗�뾽踰� 諛� 湲고� 愿��젴 踰뺣졊�쓽 洹쒖젙, 蹂� �빟愿��쓽 痍⑥� 諛� �룞醫� �뾽怨꾩쓽 �씪諛섏쟻�씤 愿��뻾�뿉 �뵲�씪�꽌 �빐�꽍�븯�뿬 �쟻�슜�빀�땲�떎.<br> + <br> + + �젣 5議� (�씠�슜怨꾩빟 泥닿껐)<br> + (1) OWL �꽌鍮꾩뒪 �씠�슜怨꾩빟�� �쉶�썝�씠 �릺怨좎옄 �븯�뒗 �옄媛� 蹂� �빟愿� �궡�슜�뿉 �룞�쓽�븯怨� �씠硫붿씪二쇱냼�� 鍮꾨�踰덊샇瑜� �벑濡앺븳 �썑 �쉶�썝媛��엯�떊泥��쓣 �븯硫� �쉶�궗媛� �씠硫붿씪二쇱냼 �쑀�슚 �씤利� �썑 �듅�굺�븿�쑝濡쒖뜥 泥닿껐�맗�땲�떎.<br> + (2) 怨꾩젙�쑝濡� �벑濡앸맂 �씠硫붿씪二쇱냼�뒗 蹂�寃쎌씠 遺덇��뒫�빀�땲�떎.<br> + (3) 媛��엯 �씠�썑 紐낆떆�쟻�쑝濡� �꽌鍮꾩뒪瑜� �빐吏��븯湲� �쟾源뚯��뒗 �뼵�젣�뱺吏� 援ъ꽦�썝 異붽� 諛� �꽌鍮꾩뒪 �씠�슜湲곌컙 異붽� �떊泥�/寃곗젣�븯�뿬 �꽌鍮꾩뒪瑜� �씠�슜�븷 �닔 �엳�뒿�땲�떎.<br> + �몺 �씠�슜 怨꾩빟 留뚮즺 �썑 �씠�슜�븷 �닔 �엳�뒗 湲곕뒫�� �씪遺� �젣�븳�쟻�씠硫� 1媛쒖썡 寃쎄낵 �썑 �꽌鍮꾩뒪 �씠�슜�젙蹂닿� �궘�젣�맗�땲�떎.<br> + (4) �쉶�궗�뒗 臾대즺濡� �젣怨듬릺�뒗 �꽌鍮꾩뒪�쓽 �씪遺� �삉�뒗 �쟾遺�瑜� �쉶�궗�쓽 �젙梨� 諛� �슫�쁺�쓽 �븘�슂�긽 �닔�젙, 以묐떒, 蹂�寃쏀븷 �닔 �엳�쑝硫�, �씠�뿉 ���븯�뿬 愿��젴踰뺤뿉 �듅蹂꾪븳 洹쒖젙�씠 �뾾�뒗 �븳 �쉶�썝�뿉寃� 蹂꾨룄�쓽 蹂댁긽�쓣 �븯吏� + �븡�뒿�땲�떎.<br> + (5) �쉶�궗�뒗 �떎�쓬 媛� �샇�뿉 �빐�떦�븯�뒗 �떊泥��뿉 ���빐�꽌�뒗 �듅�굺�쓣 �븯吏� �븡嫄곕굹 �궗�썑�뿉 �씠�슜 怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒿�땲�떎.<br> + �몺 蹂� �빟愿� �젣 10議� �젣 3�빆�뿉 �쓽�븯�뿬 �쉶�궗媛� �씠�슜怨꾩빟�쓣 �빐吏��븯���뜕 �쉶�썝�씠 �떎�떆 �쉶�썝媛��엯 �떊泥��쓣 �븯�뒗 寃쎌슦<br> + �몼 ���씤�쓽 媛쒖씤�젙蹂대�� �씠�슜�븳 寃쎌슦<br> + �몾 �뿀�쐞�쓽 �젙蹂대�� 湲곗옱�븯嫄곕굹 �쉶�궗媛� �븘�닔�궗�빆�쑝濡� �젣�떆�븳 �젙蹂대�� 湲곗옱�븯吏� �븡�뒗 寃쎌슦<br> + �몿 湲고� 愿��젴踰뺣졊�뿉 �쐞諛곕릺嫄곕굹 �꽭遺�吏�移� �벑 �쉶�궗媛� �젙�븳 湲곗��뿉 諛섑븯�뒗 寃쎌슦<br> <br> + (6) �쉶�궗�뒗 �븘�옒 媛� �샇�쓽 寃쎌슦�뿉�뒗 �쉶�썝媛��엯 �떊泥��옄�쓽 怨꾩젙 �깮�꽦�쓣 �쑀蹂댄븷 �닔 �엳�뒿�땲�떎.<br> + �몺 �젣怨� �꽌鍮꾩뒪 �꽕鍮� �슜�웾�뿉 �쁽�떎�쟻�씤 �뿬�쑀媛� �뾾�뒗 寃쎌슦<br> + �몼 �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�븳 湲곗닠�쟻�씤 遺�遺꾩뿉 臾몄젣媛� �엳�떎怨� �뙋�떒�릺�뒗 寃쎌슦<br> + �몾 湲고� �쉶�궗媛� �옱�젙�쟻, 湲곗닠�쟻�쑝濡� �븘�슂�븯�떎怨� �씤�젙�븯�뒗 寃쎌슦<br> <br> + + �젣 6議� (�쉶�썝�젙蹂댁쓽 愿�由�)<br> + (1) �쉶�썝�쓽 怨꾩젙, 鍮꾨�踰덊샇�뿉 ���븳 愿�由ъ콉�엫�� �쉶�썝�뿉寃� �엳�쑝硫�, �씠瑜� �젣 3 �옄媛� �씠�슜�븯�룄濡� �뿀�씫�븷 �닔 �뾾�뒿�땲�떎.<br> + (2) �쉶�썝�� 怨꾩젙 諛� 鍮꾨�踰덊샇媛� �룄�슜�릺嫄곕굹 �젣 3 �옄媛� �궗�슜�븯怨� �엳�쓬�쓣 �씤吏��븳 寃쎌슦�뿉�뒗 �씠瑜� 利됱떆 �쉶�궗�뿉寃� �넻吏��븯怨� �쉶�궗�쓽 �븞�궡�뿉 �뵲�씪�빞 �빀�땲�떎.<br> + (3) �쟾 �빆�쓽 寃쎌슦�뿉 �빐�떦 �쉶�썝�씠 �쉶�궗�뿉 �빐�떦 �궗�떎�쓣 �넻吏��븯吏� �븡嫄곕굹 �넻吏��븳 寃쎌슦�뿉�룄 �쉶�궗�쓽 �븞�궡�뿉 �뵲瑜댁� �븡�븘 諛쒖깮�븳 �넀�빐�뿉 ���븯�뿬 �쉶�궗�뒗 梨낆엫吏�吏� �븡�뒿�땲�떎.<br> + (4) �쉶�썝�� OWL �꽌鍮꾩뒪 �궡 怨꾩젙 愿�由� 湲곕뒫�쓣 �넻�븯�뿬 �뼵�젣�뱺吏� 蹂몄씤�쓽 媛쒖씤�젙蹂대�� �뿴�엺�븯怨� �닔�젙�븷 �닔 �엳�뒿�땲�떎. �쉶�썝�씠 蹂몄씤�쓽 �젙蹂대�� �쟻�젅�븯寃� �닔�젙�븯吏� �븡�븘 諛쒖깮�븯�뒗 遺덉씠�씡�뿉 ���븯�뿬 �쉶�궗�뒗 梨낆엫�쓣 遺��떞�븯吏� + �븡�뒿�땲�떎.<br> <br> + + �젣 7議� (�쉶�궗�쓽 �쓽臾�)<br> + (1) �쉶�궗�뒗 OWL �꽌鍮꾩뒪 �젣怨� 諛� 蹂댁븞怨� 愿��젴�맂 �꽕鍮꾨�� 吏��냽�쟻�씠怨� �븞�젙�쟻�씤 �꽌鍮꾩뒪 �젣怨듭뿉 �쟻�빀�븯�룄濡� �쑀吏�, �젏寃� �삉�뒗 蹂듦뎄 �벑�쓽 議곗튂瑜� �꽦�떎�엳 �씠�뻾�븯湲� �쐞�빐 �끂�젰�빀�땲�떎.<br> + (2) �쉶�궗�뒗 �쉶�썝�씠 �닔�떊 �룞�쓽瑜� �븯吏� �븡�� �쁺由� 紐⑹쟻�쓽 愿묎퀬�꽦 �씠硫붿씪, �븣由� 硫붿떆吏� �벑�쓣 諛쒖넚�븯吏� �븘�땲�빀�땲�떎.<br> + (3) �쉶�궗�뒗 OWL �꽌鍮꾩뒪�쓽 �젣怨듦낵 愿��젴�븯�뿬 �븣寃� �맂 �쉶�썝�쓽 媛쒖씤�젙蹂대�� 蹂몄씤�쓽 �듅�굺 �뾾�씠 �젣 3 �옄�뿉寃� �늻�꽕, 諛고룷�븯吏� �븡怨�, �씠瑜� 蹂댄샇�븯湲� �쐞�븯�뿬 �끂�젰�빀�땲�떎. �쉶�썝�쓽 媛쒖씤�젙蹂대낫�샇�뿉 愿��븳 湲고��쓽 �궗�빆�� + �젙蹂댄넻�떊留앸쾿 諛� �쉶�궗媛� 蹂꾨룄濡� �젙�븳 \"媛쒖씤�젙蹂� 泥섎━諛⑹묠\"�뿉 �뵲由낅땲�떎.<br><br> + + �젣 8議� (�쉶�썝�쓽 �쓽臾�)<br> + (1) �쉶�썝�� �븘�옒 媛� �샇�쓽 �뻾�쐞瑜� �븯�뿬�꽌�뒗 �븞�맗�땲�떎.<br> + �몺 �쉶�썝媛��엯 �떊泥� �삉�뒗 �쉶�썝�젙蹂� 蹂�寃� �떆 �뿀�쐞 �궡�슜�쓽 �벑濡�<br> + �몼 ���씤�쓽 �젙蹂대룄�슜<br> + �몾 �쉶�궗媛� 寃뚯떆�븳 �젙蹂댁쓽 蹂�寃�<br> + �몿 �쉶�궗媛� �젙�븳 �젙蹂� �씠�쇅�쓽 �젙蹂�(而댄벂�꽣 �봽濡쒓렇�옩 �벑) �벑�쓽 �넚�떊 �삉�뒗 寃뚯떆<br> + �뫀 �쉶�궗�� 湲고� �젣3�옄�쓽 ���옉沅� �벑 吏��쟻�옱�궛沅뚯쓣 移⑦빐�븯�뒗 �뻾�쐞<br> + �뫁 �쉶�궗 諛� 湲고� �젣3�옄�쓽 紐낆삁瑜� �쎕�넀�븯嫄곕굹 �뾽臾대�� 諛⑺빐�븯�뒗 �뻾�쐞<br> + �뫂 �쇅�꽕 �삉�뒗 �룺�젰�쟻�씤 硫붿떆吏�, �솕�긽, �쓬�꽦, 湲고� 怨듭꽌�뼇�냽�뿉 諛섑븯�뒗 �젙蹂대�� OWL �꽌鍮꾩뒪�뿉 怨듦컻 �삉�뒗 寃뚯떆�븯�뒗 �뻾�쐞<br> + �뫃 �쉶�궗�쓽 �룞�쓽 �뾾�씠 �쁺由щ�� 紐⑹쟻�쑝濡� OWL �꽌鍮꾩뒪瑜� �씠�슜�븯�뒗 �뻾�쐞<br> + �뫅 �떎瑜� �꽌鍮꾩뒪 �씠�슜�옄�쓽 �젙蹂대�� 臾대떒�쑝濡� �닔吏�, �씠�슜�븯嫄곕굹 �떎瑜� �궗�엺�뱾�뿉寃� �젣怨듯븯�뒗 �뻾�쐞<br> + �뫆 �쉶�궗�쓽 �룞�쓽 �뾾�씠 OWL �꽌鍮꾩뒪 �삉�뒗 �씠�뿉 �룷�븿�맂 �냼�봽�듃�썾�뼱�쓽 �씪遺�瑜� 蹂듭궗, �닔�젙, 諛고룷, �뙋留�, �뼇�룄, ���뿬, �떞蹂댁젣怨듯븯嫄곕굹 ���씤�뿉寃� 洹� �씠�슜�쓣 �뿀�씫�븯�뒗 �뻾�쐞�� �냼�봽�듃�썾�뼱瑜� �뿭�꽕怨꾪븯嫄곕굹 �냼�뒪 肄붾뱶�쓽 + 異붿텧�쓣 �떆�룄�븯�뒗 + �벑 OWL �꽌鍮꾩뒪瑜� 蹂듭젣, 遺꾪빐 �삉�뒗 紐⑤갑�븯嫄곕굹 湲고� 蹂��삎�븯�뒗 �뻾�쐞<br> + �뫇 �쉶�궗媛� �븞�궡�븯�뒗 諛⑸쾿 �씠�쇅�쓽 �떎瑜� 諛⑸쾿�쓣 �궗�슜�븯�뿬 OWL �꽌鍮꾩뒪�뿉 �젒洹쇳븯�뒗 �뻾�쐞<br> + �뫉 蹂몄씤怨� 愿��젴 �뾾�뒗 OWL �꽌釉뚮룄硫붿씤�쓣 �깮�꽦 �꽑�젏�븯�뿬 ���씤�쓽 OWL �꽌鍮꾩뒪 �궗�슜�쓣 諛⑺빐�븯�뒗 �뻾�쐞<br> + �뫊 �옄�떊�쓽 OWL �꽌鍮꾩뒪 �씠�슜沅뚰븳, 湲고� �씠�슜怨꾩빟�긽 吏��쐞瑜� ���씤�뿉寃� �뼇�룄쨌利앹뿬�븯嫄곕굹 �떞蹂대줈 �젣怨듯븯�뒗 �뻾�쐞<br> + �뫋 湲고� 遺덈쾿�쟻�씠嫄곕굹 遺��떦�븳 �뻾�쐞<br> <br> + (2) �쉶�썝�씠 愿��젴 踰뺣졊, 蹂� �빟愿� �삉�뒗 �섏꽭遺�吏�移ⓥ�숈쓣 以��닔�븯吏� �븡�뒗 寃쎌슦 �쉶�궗�뒗 �쉶�썝�쓽 �쐞諛섑뻾�쐞 �벑�쓣 議곗궗�븯嫄곕굹 �쉶�썝�쓽 OWL �꽌鍮꾩뒪 �씠�슜�쓣 �씪�떆 �삉�뒗 怨꾩냽�븯�뿬 以묐떒�븯嫄곕굹, �옱媛��엯�뿉 �젣�븳�쓣 �몮 �닔�룄 + �엳�뒿�땲�떎. �씠濡� �씤�븳 �빐吏� �썑 諛쒖깮�맂 �젙蹂� �넀�떎�뿉 ���븳 梨낆엫�� �쉶�썝�뿉寃� �엳�뒿�땲�떎.<br> + (3) �쉶�궗�뒗 愿��젴 踰뺣졊�뿉�꽌 �젙�븯�뒗 湲곌컙 �룞�븞 �쉶�썝�씠 �꽌鍮꾩뒪瑜� �씠�슜�븯湲� �쐞�빐 濡쒓렇�씤 �샊�� �젒�냽�븳 湲곕줉�씠 �뾾�뒗 寃쎌슦 �쉶�썝�씠 �벑濡앺븳 OWL 怨꾩젙 �씠硫붿씪 二쇱냼 �벑 湲고� �쑀�슚�븳 �닔�떒�쑝濡� �넻吏� �썑 �뿬�윭遺꾩쓽 �젙蹂대�� + �뙆湲고븯嫄곕굹 遺꾨━ 蹂닿��븷 �닔 �엳�쑝硫�, �씠濡� �씤�빐 OWL �꽌鍮꾩뒪 �씠�슜�쓣 �쐞�븳 �븘�닔�쟻�씤 �젙蹂닿� 遺�議깊븷 寃쎌슦 �씠�슜怨꾩빟�씠 �빐吏��맆 �닔�룄 �엳�뒿�땲�떎.<br> + (4) �쉶�썝�� �쑀猷� �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 ��媛�濡� 蹂� �빟愿��쓣 洹쇨굅濡� �쉶�궗媛� �젙�븳 �슂湲덉쓣 �궔遺��븷 �쓽臾닿� �엳�쑝硫�, �슂湲� 誘몃궔�쑝濡� �씤�빐 諛쒖깮�븯�뒗 臾몄젣�뿉 ���븯�뿬 �쉶�궗�쓽 怨쇱떎�씠�굹 �쉶�궗媛� �씤�젙�븳 �궗�쑀�뿉 �쓽�븳 寃쎌슦瑜� �젣�쇅�븯怨� + 紐⑤뱺 梨낆엫�� �쉶�썝�뿉寃� �엳�뒿�땲�떎.<br> <br> + + �젣 9議� (�꽌鍮꾩뒪�쓽 蹂�寃� 諛� 以묐떒)<br> + (1) �쉶�궗�뒗 OWL �꽌鍮꾩뒪瑜� 365 �씪, 24 �떆媛� �돩吏� �븡怨� �젣怨듯븯湲� �쐞�븯�뿬 理쒖꽑�쓽 �끂�젰�쓣 �떎�빀�땲�떎. �떎留�, �옣鍮꾩쓽 �쑀吏�쨌蹂댁닔瑜� �쐞�븳 �젙湲� �삉�뒗 �엫�떆 �젏寃� �삉�뒗 �떎瑜� �긽�떦�븳 �씠�쑀濡� �꽌鍮꾩뒪�쓽 �젣怨듭씠 �씪�떆 + 以묐떒�맆 �닔 �엳�쑝硫�, �씠 寃쎌슦 誘몃━ �꽌鍮꾩뒪 �젣怨� �솕硫댁뿉 怨듭��빀�땲�떎. 留뚯빟, �쉶�궗濡쒖꽌�룄 �삁痢≫븷 �닔 �뾾�뒗 �씠�쑀濡� OWL �꽌鍮꾩뒪媛� 以묐떒�맂 �븣�뿉�뒗 �쉶�궗媛� �긽�솴�쓣 �뙆�븙�븯�뒗 利됱떆 理쒕��븳 鍮좊Ⅸ �떆�씪 �궡�뿉 �꽌鍮꾩뒪瑜� 蹂듦뎄�븯�룄濡� + �끂�젰�빀�땲�떎.<br> + (2) �쉶�궗�뒗 �슫�쁺�긽, 湲곗닠�긽�쓽 �븘�슂�뿉 �뵲�씪 OWL �꽌鍮꾩뒪�쓽 �쟾遺� �삉�뒗 �씪遺� �궡�슜�쓣 蹂�寃� �삉�뒗 以묐떒�븷 �닔 �엳�쑝硫�, �꽌鍮꾩뒪 蹂�寃� �삉�뒗 以묐떒 �쟾�뿉 OWL �꽌鍮꾩뒪 珥덇린�솕硫� �삉�뒗 怨듭��궗�빆���뿉 寃뚯떆�븯�뿬 �쉶�썝�뿉寃� + 怨듭��빀�땲�떎. �쉶�썝�뿉寃� 以묐��븳 �쁺�뼢�쓣 誘몄튂�뒗 �꽌鍮꾩뒪 蹂�寃� �궗�빆�씠�굹 以묐떒�� 怨듭� �쇅�뿉 �쉶�썝�씠 �쉶�썝媛��엯 �떆 �벑濡앺븳 �씠硫붿씪二쇱냼濡� �씠硫붿씪 諛쒖넚, 濡쒓렇�씤 �떆 �븣由� �뙘�뾽李� �삉�뒗 �룞�쓽李� �벑�쓽 �쟾�옄�쟻 �닔�떒�쓣 �넻�빐 �쟻�슜�씪�옄 + 30�씪 �쟾�뿉 �뵲濡� 紐낇솗�엳 �넻吏��빀�땲�떎.<br> + (3) �쉶�궗�뒗 �떎�쓬�쓽 寃쎌슦�뿉�뒗 OWL �꽌鍮꾩뒪 �젣怨듭쓣 以묒��븷 �닔 �엳�뒿�땲�떎.<br> + �몺 援�媛�鍮꾩긽�긽�깭, �꽌鍮꾩뒪 �꽕鍮꾩쓽 �옣�븷, �꽌鍮꾩뒪 �씠�슜�쓽 �룺二� �벑 �젙�긽�쟻 �꽌鍮꾩뒪�뿉 吏��옣�씠 諛쒖깮�븷 �슦�젮媛� �엳�쓣 寃쎌슦<br> + �몼 泥쒖옱吏�蹂� �벑 �쉶�궗媛� �뵾�븷 �닔 �뾾�뒗 �궗�쑀濡� �꽌鍮꾩뒪 �젣怨듭씠 �궗�떎�긽 遺덇��뒫�븳 寃쎌슦<br> + �몾 �쟾湲고넻�떊�궗�뾽踰뺤뿉 洹쒖젙�맂 湲곌컙�넻�떊 �궗�뾽�옄媛� �쟾湲고넻�떊 �꽌鍮꾩뒪瑜� 以묒��뻽�쓣 寃쎌슦<br> <br> + + �젣 10議� (�떆�뒪�뀥 媛쒖꽑�뿉 �뵲瑜� 怨좉컼 �뜲�씠�꽣 �씠�쟾)<br> + (1) �쉶�궗�뒗 ��洹쒕え �떆�뒪�뀥 媛쒖꽑 �벑 遺덇��뵾 �븳 寃쎌슦 怨좉컼�쓽 �룞�쓽�굹 �떊泥��젅李⑥뾾�씠 湲곗〈 �떆�뒪�뀥�뿉 ���옣�맂 怨좉컼�쓽 �뜲�씠�꽣瑜� �떊洹쒖떆�뒪�뀥�쑝濡� �씠�쟾�븯�뿬 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �엳�뒿�땲�떎.<br> <br> + + �젣 11議� (�꽌鍮꾩뒪 �빐吏�)<br> + (1) �꽌鍮꾩뒪 媛��엯 �빐吏��뿉�뒗 �쉶�썝�쓽 �꽌鍮꾩뒪 �빐吏� �떊泥��뿉 �쓽�븳 �빐吏��� �쉶�궗�쓽 吏곴텒�뿉 �쓽�븳 �빐吏�媛� �엳�뒿�땲�떎.<br> + (2) �쉶�썝�� �뼵�젣�뱺吏� OWL �꽌鍮꾩뒪 �궡 �젣怨듬릺�뒗 硫붾돱瑜� �씠�슜�븯�뿬 �꽌鍮꾩뒪 �빐吏� �떊泥��쓣 �븷 �닔 �엳�쑝硫�, �뾽臾� 怨듦컙 �빐吏� �떆�뿉留� �븘�옒�뿉 媛� �샇�뿉 �뵲�씪 泥섎━�맗�땲�떎.<br> + �몺 �뾽臾� 怨듦컙�쓽 �꽌鍮꾩뒪 �빐吏��뒗 �빐�떦 �뾽臾� 怨듦컙�쓽 愿�由ъ옄留뚯씠 媛��뒫�빀�땲�떎.<br> + �몼 �쑀猷� 湲곕뒫�씠 �룷�븿�맂 �뾽臾� 怨듦컙 怨꾩빟�빐吏� �떆�뿉�뒗 �옄�룞�쑝濡� �젙湲� 寃곗젣 �뿰�룞�씠 痍⑥냼�맗�땲�떎.<br> + (2) �쉶�궗�뒗 愿��젴 踰뺣졊�씠 �젙�븯�뒗 諛붿뿉 �뵲�씪 �씠�슜怨꾩빟 �빐吏� �떊泥��쓣 �떊�냽�엳 泥섎━�빀�땲�떎. �떒, 寃곗젣 二쇨린媛� �썡 �떒�쐞濡� �꽕�젙�맂 �젙湲� 寃곗젣�쓽 寃쎌슦�뒗 �븘�옒�쓽 媛� �샇�뿉 �뵲�씪 怨꾩빟�빐吏�媛� 泥섎━�맗�땲�떎.<br> + �몺 �썡 �떒�쐞�씤 寃쎌슦�뿉�뒗 �떦�썡 �젙湲� 寃곗젣�씪�뿉 �꽌鍮꾩뒪 怨꾩빟�빐吏�媛� 泥섎━�맗�땲�떎.<br> + �몼 �쉶�썝�씠 �꽌鍮꾩뒪 怨꾩빟�빐吏� �떊泥��븳 �씪�옄媛� �떦�썡 �젙湲곌껐�젣�씪 �룄�옒 �쟾�씠�씪硫� �궓�� �궗�슜湲곌컙�씠 紐⑤몢 �냼吏꾨맂 �씠�썑�뿉 怨꾩빟�빐吏�媛� 泥섎━�맗�땲�떎. 洹몃━怨� 洹� �궓�� �궗�슜湲곌컙 �룞�븞�뿉 �쉶�썝�� OWL �꽌鍮꾩뒪瑜� �젙�긽�쟻�쑝濡� �씠�슜�븷 �닔 + �엳�뒿�땲�떎.<br> + (3) �쑀猷� �꽌鍮꾩뒪瑜� �씠�슜以묒씤 �쉶�썝�� OWL �꽌鍮꾩뒪 �쉶�썝�깉�눜 �쟾�뿉 OWL �꽌鍮꾩뒪 �궡�뿉�꽌 蹂몄씤�씠 �옉�꽦�븳 寃뚯떆臾쇱쓣 吏곸젒 �궘�젣�븯�뿬�빞 �빀�땲�떎. �떒, �쉶�썝 蹂몄씤�씠 媛쒖꽕�븳 �뾽臾� 怨듦컙�씠 �꽌鍮꾩뒪 �빐吏��맂 寃쎌슦�뿉�뒗 寃뚯떆臾쇰룄 + �쟾遺� �옄�룞�궘�젣 �맗�땲�떎.<br> + (4) �씪諛� 援ъ꽦�썝�씤 �쉶�썝�씠 寃뚯떆臾쇱쓣 �궘�젣�븯吏� �븡怨� �쉶�썝 �깉�눜瑜� �븯�뒗 寃쎌슦 OWL �꽌鍮꾩뒪 �뾽臾� 怨듦컙 �궡�뿉 寃뚯떆臾쇱� �궘�젣�릺吏� �븡怨� �궓�븘�엳寃� �릺誘�濡� �깉�눜 �씠�쟾�뿉 二쇱쓽 源딄쾶 �솗�씤�븯�뿬�빞 �빀�땲�떎.<br> + (5) �씠�슜怨꾩빟�씠 �빐吏��릺硫� �쉶�썝�씠 �궘�젣�븯吏� �븡�� 寃뚯떆臾� 諛� 愿��젴 踰뺣졊 諛� 媛쒖씤�젙蹂� 泥섎━諛⑹묠�뿉 �뵲�씪 �쉶�썝�쓽 �씪�젙�븳 �젙蹂대�� 蹂댁쑀�븯�뒗 寃쎌슦瑜� �젣�쇅�븯怨좊뒗 �쉶�썝�쓽 �젙蹂대뒗 紐⑤몢 �궘�젣�맗�땲�떎.<br> + (6) �쉶�썝�씠 蹂� �빟愿� �젣 8議� �젣 1�빆�쓣 �쐞諛섑븳 寃쎌슦 以묐��븳 �쐞諛섏쑝濡� 蹂댁븘 �쉶�궗�뒗 �빐�떦 �쉶�썝�뿉 ���븯�뿬 �씠�슜怨꾩빟�쓣 �빐吏��븷 �닔 �엳�뒿�땲�떎. �씠 寃쎌슦 �쉶�궗�뒗 �깉�눜 泥섎━ �쟾�뿉 泥섎━�궗�쑀 諛� �꽭遺� �궡�슜�쓣 湲곗옱�븯�뿬 �쉶�썝�쓽 + OWL 怨꾩젙 �씠硫붿씪二쇱냼濡� �씠硫붿씪�쓣 諛쒖넚�븯�뿬 �넻吏��빀�땲�떎. + �쉶�썝�� �쉶�궗�쓽 �넻吏�瑜� 諛쏆� �궇濡쒕��꽣 30 �씪 �씠�궡�뿉 �씠�쓽瑜� �젣湲고븷 �닔 �엳�쑝硫�, �쉶�궗�뒗 �쉶�썝�쓽 �씠�쓽媛� �젙�떦�븯�떎怨� �씤�젙�븯�뒗 寃쎌슦 �쉶�썝怨쇱쓽 �꽌鍮꾩뒪 �씠�슜怨꾩빟�쓣 �옱媛쒗빀�땲�떎.<br> + + �젣 12議� (�옄猷뚯쓽 蹂닿�)<br> + (1) �씠�슜怨꾩빟湲곌컙�씠 留뚮즺�맂 �쉶�썝�쓽 �옄猷뚮뒗 湲곌컙 留뚮즺�씪濡쒕��꽣 1媛쒖썡 蹂닿��쓣 �썝移숈쑝濡� �븯硫�, 1媛쒖썡 �씠�궡�뿉 湲곌컙�뿰�옣 �긽�뭹�쓣 援щℓ�븯吏� �븡�쓣 寃쎌슦 �뜲�씠�꽣媛� �궘�젣�맗�땲�떎.<br> + (2) 臾대즺 �꽌鍮꾩뒪瑜� �씠�슜以묒씤 �쉶�썝�쓽 �옄猷뚮뒗 �꽌鍮꾩뒪 �빐吏� �썑 利됱떆 �궘�젣�빀�땲�떎.<br> + (3) �떎�쓬�쓽 寃쎌슦 �씠�슜怨꾩빟湲곌컙 留뚮즺 �삉�뒗 媛��엯 �빐吏��맂 �쉶�썝�쓽 �옄猷뚮�� 怨꾩냽 蹂닿��븷 �닔 �엳�뒿�땲�떎.<br> + �몺 �쉶�궗媛� 媛��엯 �빐吏� �떊泥� �쉶�썝�쓽 �슂湲� �벑 �씠�젰�솗�씤�쓣 �쐞�븯�뿬 �씪�젙 湲곌컙 �룞�븞 �젙蹂� 蹂닿��씠 �븘�슂�븯�떎怨� �뙋�떒�릺�뒗 寃쎌슦<br> + (4) �꽌鍮꾩뒪 �씠�슜�쑝濡� 諛쒖깮�븳 �옄猷� 以� �옉�뾽濡쒓렇�뒗 6媛쒖썡媛� 蹂닿��릺硫� �씠�쟾 �옉�뾽濡쒓렇�뒗 �옄�룞 �궘�젣�맗�땲�떎.<br> <br> + + �젣 13議� + (�젙蹂댁쓽 �쟾�떖)<br> + (1) �쉶�궗�뒗 �쉶�썝�쓽 �룞�쓽 �븯�뿉 �꽌鍮꾩뒪�쓽 �떊洹� 湲곕뒫 諛� 媛곸쥌 �쑀�슜�븳 �젙蹂대�� �쉶�썝�씠 �벑濡앺븳 �씠硫붿씪 �삉�뒗 臾몄옄硫붿떆吏�瑜� �넻�븯�뿬 �쉶�썝�뿉寃� �쟾�넚�븷 �닔 �엳�뒿�땲�떎.<br> + (2) �쉶�궗�뒗 �꽌鍮꾩뒪 �씠�슜湲곌컙�쓽 留뚮즺 �떆�젏, �빐吏� �븞�궡�� 媛숈� �븘�닔�쟾�떖 �젙蹂대�� �쉶�썝�쓽 �룞�쓽�� 臾닿��븯寃� �쉶�썝�뿉寃� �쟾�넚�븷 �닔 �엳�뒿�땲�떎.<br> <br> + + �젣 14議� (�꽌鍮꾩뒪 �씠�슜�쓽 �젙吏�)<br> + (1) �쉶�궗�뒗 �쉶�썝�씠 蹂� �빟愿��긽 �옄�떊�쓽 �쓽臾대�� �쐞諛섑븯嫄곕굹 OWL �꽌鍮꾩뒪�쓽 �젙�긽�쟻�씤 �슫�쁺�쓣 諛⑺빐�븳 寃쎌슦�뿉�뒗, �씠�뿉 ���븳 媛쒖꽑�쓣 �슂援ы븷 �닔 �엳�쑝硫� 媛쒖꽑�릺吏� �븡�쓣 寃쎌슦�뿉�뒗 �궗�쟾 �넻吏� �뾾�씠 �꽌鍮꾩뒪 �씠�슜�쓣 �젙吏��떆�궗 �닔 + �엳�뒿�땲�떎. + �쉶�궗�뒗 �쉶�썝�쓽 洹�梨낆궗�쑀媛� �빐�냼�릺�뿀�떎怨� �뙋�떒�릺�뿀�쓣 寃쎌슦�뿉�뒗 �꽌鍮꾩뒪瑜� �옱媛쒗븷 �닔 �엳�뒿�땲�떎.<br> + (2) OWL �꽌鍮꾩뒪 �씠�슜 �젙吏� 湲곌컙�� OWL �꽌鍮꾩뒪 �젣怨� 湲곌컙�뿉 �룷�븿�맗�땲�떎.<br> <br> + + �젣 15議� + (�긽�뭹�쓽 �꽕紐�)<br> + (1) OWL �꽌鍮꾩뒪 �긽�뭹�� �쉶�썝�씠 �떎瑜� �쉶�썝怨쇱쓽 �삊�뾽�쓣 �쐞�빐 �깮�꽦�븯�뒗 �뾽臾닿났媛꾩뿉 �쟻�슜�릺硫�, 愿�由ъ옄 沅뚰븳�쓣 媛�吏� 援ъ꽦�썝�뿉 �쓽�빐 �긽�뭹�쓣 援щℓ�븷 �닔 �엳�뒿�땲�떎.<br> + (2) �쉶�썝�씠 �뾽臾� 怨듦컙�쓣 �깮�꽦�븳 寃쎌슦 臾대즺�긽�뭹�씤 FREE(臾대즺泥댄뿕)�뿉 媛��엯�릺硫�, 臾대즺�긽�뭹�쓽 議곌굔�씤 �뾽臾� 怨듦컙�쓽 �슜�웾怨� 援ъ꽦�썝�쓽 �닔 �벑�쓽 �젣�빟�쓣 珥덇낵�븯�뒗 寃쎌슦 �쑀猷뚯긽�뭹�쓣 援щℓ�븯�뿬 �꽌鍮꾩뒪 �씠�슜�뿉 ���븳 �젣�빟�쓣 + �빐寃고븷 �닔 �엳�뒿�땲�떎.<br> + (3) �쉶�궗媛� �젣怨듯븯�뒗 �긽�뭹�쓽 醫낅쪟�� 媛�寃� �벑�쓽 �븞�궡�뒗 �꽌鍮꾩뒪 �젣怨� �씤�꽣�꽬 �궗�씠�듃(www.owlsolution.io)�뿉 怨좎떆 寃뚯옱�빀�땲�떎.<br> <br> + + �젣 16議� (�긽�뭹�쓽 怨꾩빟)<br> + (1) �긽�뭹�쓽 怨꾩빟�� �뾽臾닿났媛� 援ъ꽦�썝 以묒뿉�꽌 愿�由ъ옄 沅뚰븳�쓣 媛�吏� 愿�由�`�옄媛� �쉶�궗媛� �젣�떆�븯�뒗 �긽�뭹�쓣 �떊泥��븯怨�, 吏��젙�맂 寃곗젣�닔�떒�쓣 �씠�슜�븯�뿬 寃곗젣媛� �셿猷뚮릺硫� 怨꾩빟�씠 泥닿껐�맗�땲�떎.<br> + (2) �뾽臾닿났媛꾩� �쉶�궗媛� �긽�뭹 �씠�슜 �떊泥��쓣 �듅�굺�븳 �떆�젏遺��꽣 �긽�뭹�뿉 �빐�떦�븯�뒗 �궗�슜�웾�쓣 �씠�슜�븷 �닔 �엳�뒿�땲�떎. �씠 �떆�젏�� �쑀猷뚯긽�뭹�쓣 寃곗젣�븯�뿬 �긽�뭹�쓣 �쟾�솚�븳 �썑瑜� �쓽誘명빀�땲�떎.<br> + (3) �쑀猷뚯긽�뭹�쑝濡쒖쓽 蹂�寃� �떊泥��� �씠�슜��湲� 寃곗젣 �셿猷뚯� �룞�떆�뿉 �씠猷⑥뼱吏묐땲�떎.<br> + (4) �쑀猷뚯긽�뭹�쓣 臾대즺�긽�뭹�쑝濡� 蹂�寃쎌� 遺덇��뒫�빀�땲�떎.<br> <br> + + �젣 17議� (�슂湲덉쓽 怨꾩궛)<br> + OWL �꽌鍮꾩뒪 �씠�슜猷뚯쓽 怨쇨툑媛쒖떆�씪�� �쉶�궗媛� �꽌鍮꾩뒪 �떊泥��쓣 �듅�굺�븳�떆�젏遺��꽣 �엯�땲�떎.<br> + (1) �씪�씪 �슂湲덉쓽 怨꾩궛�� 00�떆 00遺꾨��꽣 24�떆 00遺꾧퉴吏�瑜� 1�씪濡� �븯硫�, �꽌鍮꾩뒪 �젣怨듭쓽 媛쒖떆 �떆媛� �삉�뒗 醫낅즺 �떆媛꾩씠 1�씪�쓽 以묐룄�씤 寃쎌슦�뿉�뒗 �씠瑜� 1�씪濡� 媛꾩<�빀�땲�떎.<br> + (2) �쉶�썝�� OWL �꽌鍮꾩뒪�쓽 �쑀猷� �꽌鍮꾩뒪 湲곕뒫�쓣 �떊泥��븷 �븣, �썡 �삉�뒗 �뿰 �떒�쐞�쓽 �젙湲곌껐�젣 諛⑹떇留� �꽑�깮�븯�떎 �닔 �엳�뒿�땲�떎.<br> + �몺 �쑀猷� �꽌鍮꾩뒪 寃곗젣 �떆 �궗�슜�옄 �닔�뿉 �뵲�씪 �슂湲덉씠 �젙�빐吏묐땲�떎.<br> + �몼 �쑀猷� �꽌鍮꾩뒪�뒗 寃곗젣�븳 �궗�슜�옄 �닔 �씠�궡�쓽 �쉶�썝�쓣 �솢�꽦�솕�븯�뿬 �궗�슜�븷 �닔 �엳�뒿�땲�떎.<br> + �몾 �쑀猷� �꽌鍮꾩뒪 �궗�슜 以� �궗�슜�옄 異붽��뿉 �뵲瑜� 寃곗젣媛� 媛��뒫�빀�땲�떎. 湲곗〈 �젙湲곌껐�젣�씪源뚯� �궓�� �씪�닔�� 異붽� �떊泥��맂 �궗�슜�옄 �닔�뿉 ���븳 �슂湲덉쓣 利됱떆寃곗젣�븯�뿬 �꽌鍮꾩뒪瑜� 諛붾줈 �씠�슜 �븷 �닔 �엳�뒿�땲�떎. + 利됱떆寃곗젣�뒗 1�쉶�꽦 寃곗젣�씠硫�, 寃곗젣 �씠�썑 �옄�룞�쑝濡� �떎�쓬 �젙湲곌껐�젣�뿉 異붽��맂 �궗�슜�옄 �닔媛� 諛섏쁺�맗�땲�떎.<br> <br> + + �젣 18議� (�슂湲� �솚遺�)<br> + (1) OWL �꽌鍮꾩뒪�뒗 �꽑遺� 吏�湲됰갑�떇�쑝濡� �슂湲덉� 踰뺣쪧�긽 �븘�슂�븳 寃쎌슦瑜� �젣�쇅�븯怨� �솚遺덈릺吏� �븡�뒿�땲�떎. �떒, �븘�옒 媛� �샇�뿉 �빐�떦�븯�뒗 寃쎌슦�뿉�뒗 洹몄뿉 留욌뒗 �솚遺� �떊泥� 諛� 泥섎━媛� + 媛��뒫�빀�땲�떎.<br> + �몺 �꽌鍮꾩뒪 媛��엯 �떦�씪�뿉 痍⑥냼 �슂泥� �떆 寃곗젣 痍⑥냼瑜� �쟻�슜�빀�땲�떎.<br> + �몼 �뿰 �꽑遺� �슂湲덉쓽 �꽌鍮꾩뒪 �빐吏� �슂泥� �떆 �빐吏��씪 �씡�씪濡쒕��꽣 �옍�뿬�씪�닔源뚯��뿉 �빐�떦�븯�뒗 湲덉븸�뿉�꽌 珥� �씠�슜湲덉븸(�젙�긽媛�濡� 怨꾩궛)�쓽 10%(�빐吏��닔�닔猷�)瑜� 怨듭젣 �썑 �솚遺덊빀�땲�떎.<br> + �몾 �솚遺� 湲덉븸�� �쉶�썝�씠 �솚遺� �떊泥� �떆 吏��젙�븳 怨꾩쥖濡� �쁽湲� �엯湲덈맗�땲�떎.<br> + �몿 �빐吏� �슂湲� �솚遺� �떆湲곕뒗 媛��엯 �빐吏��씪 湲곗� 15�씪 �씠�궡 吏�湲됲븯�뒗 寃껋쑝濡� �빀�땲�떎.<br> <br> + + �젣 19議� (�넀�빐諛곗긽)<br> + (1) �쉶�궗�쓽 �꽌鍮꾩뒪 �젣怨듦낵 愿��젴�븯�뿬 �쉶�궗�쓽 怨좎쓽 �삉�뒗 以묎낵�떎濡� �씤�븯�뿬 �쉶�썝�씠 �꽌鍮꾩뒪 �씠�슜�뿉 �넀�빐瑜� �엯�� 寃쎌슦 �빀�떦�븯怨� �쟻�젅�븳 蹂댁긽�쓣 諛쏆쓣 �닔 �엳�뒿�땲�떎. + �넀�빐諛곗긽�쓣 泥�援ы븯怨좎옄 �븯�뒗 寃쎌슦 �씠�뿉 ���븳 �궗�쑀, 泥�援ъ븸 諛� �궛異쒓렐嫄곕�� 湲곗옱�븯�뿬 �꽌硫댁쑝濡� �떊泥��븯�뿬�빞 �빀�땲�떎.<br> <br> + + �젣 20議� (硫댁콉議고빆)<br> + (1) 泥쒖옱吏�蹂�, �쟾�웳 諛� 湲고� �씠�뿉 以��븯�뒗 遺덇��빆�젰�쑝濡� �씤�븯�뿬 �꽌鍮꾩뒪瑜� �젣怨듯븷 �닔 �뾾�뒗 寃쎌슦<br> + (2) 湲곌컙�넻�떊 �궗�뾽�옄媛� �쟾湲고넻�떊 �꽌鍮꾩뒪瑜� 以묒��븯嫄곕굹 �젙�긽�쟻�쑝濡� �젣怨듯븯吏� �븘�땲�븯�뿬 �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br> + (3) �쉶�썝�쓽 洹�梨낆궗�쑀濡� �씤�븳 �꽌鍮꾩뒪 �씠�슜�쓽 �옣�븷 �삉�뒗 �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br> + (4) �꽌鍮꾩뒪�슜 �꽕鍮꾩쓽 蹂댁닔, 援먯껜, �젙湲곗젏寃�, 怨듭궗 �벑 遺��뱷�씠�븳 �궗�쑀濡� �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br> + (5) �쟾湲고넻�떊�궗�뾽踰� 諛� �떆�뻾�졊 洹쒖젙�뿉 �쓽�븯�뿬 �꽌鍮꾩뒪瑜� �씠�슜�븯�뿬 �쓬��臾쇱씠�굹 遺덉삩�븳 �궡�슜, �뿀�쐞�궗�떎�뿉 �쓽�븳 紐낆삁�쎕�넀, 遺덈쾿蹂듭젣 �벑 吏��쟻�옱�궛沅� 移⑦빐, 援�媛�湲곕� 移⑦빐, 泥��냼�뀈 �쑀�빐 留ㅼ껜臾� �벑�쓣 �쟾�넚, ���옣, + 議고쉶�븿�쑝濡쒖뜥 + 諛쒖깮�븯�뒗 �쉶�썝�쓽 �넀�빐�뿉 踰뺤쟻�씤 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎.<br> + (6) �뒪�넗由ъ� ���옣 �씠�쟾�뿉 �꽕�듃�썙�겕 �벑�쓽 �떆�꽕 �옣�븷濡� �꽌鍮꾩뒪 �씠�슜�씠 以묐떒�릺嫄곕굹 �뜲�씠�꽣 �넀�떎, �뿉�윭 �벑�씠 諛쒖깮�븳 寃쎌슦<br> + (7) 鍮꾩젙�긽�쟻�쑝濡� ���옣�맂 �옄猷뚯씤 寃쎌슦. �떒, \"�젙�긽�쟻�쑝濡� ���옣�맂 �옄猷�\"�씪 �븿�� �쉶�썝�씠 �옄猷뚮�� �쟾�넚�븳 �썑 �슜�웾 利앷컧�씠�굹 �젣諛� �냽�꽦蹂�寃� �뾾�씠 �젙�긽�쟻�쑝濡� �뒪�넗由ъ��뿉 ���옣�맖�쓣 �쓽誘명빀�땲�떎.<br> + (8) �쉶�썝�쓽 �떎�닔�굹 �꽌鍮꾩뒪�뿉 ���븳 遺덉땐遺꾪븳 �씠�빐濡� �씤�빐 �쉶�썝�뿉寃� �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br> + (9) �쉶�궗�뒗 �쉶�썝�씠 �씠�슜怨꾩빟�쓣 �빐吏��븯嫄곕굹, �긽�뭹�쓽 蹂�寃�, �궗�슜�옄�굹 �뾽臾� 怨듦컙�쓽 �빐吏�濡� �씤�븳 �뜲�씠�꽣 �냼�떎 �벑�뿉 ���빐�꽌�뒗 梨낆엫�쓣 吏�吏� �븡�뒿�땲�떎.<br> + (10) �쉶�썝�씠 �옄�떊�쓽 �븘�씠�뵒/鍮꾨�踰덊샇瑜� ���씤�뿉寃� 怨듦컻�븯嫄곕굹, 愿�由� �냼��濡� �븘�씠�뵒/鍮꾨�踰덊샇媛� �끂異쒕릺�뼱 �쉶�썝�뿉寃� �뼱�뼚�븳 �넀�빐媛� 諛쒖깮�븳 寃쎌슦<br> + (11) �썝�솢�븳 �꽌鍮꾩뒪 �젣怨듭쓣 �쐞�빐 �젙湲곗젏寃��씠�굹 湲닿툒�젏寃� �떆�뻾 �떆 �궗�쟾怨듭� �썑 �씪�떆�쟻�쑝濡� �꽌鍮꾩뒪瑜� 以묒��븷 �닔 �엳�쑝硫� �씠�뿉 �뵲�씪 �꽌鍮꾩뒪瑜� �씠�슜�븯吏� 紐삵븿�쑝濡� �씤�빐 諛쒖깮�븳 �넀�빐�쓽 寃쎌슦 梨낆엫�씠 硫댁콉�맗�땲�떎.<br> + (12) �쉶�궗�뒗 �쉶�썝 �긽�샇媛�, �쉶�썝�쓽 愿�怨� �쉶�궗 �삉�뒗 �젣 3�옄 �긽�샇媛꾩뿉 �꽌鍮꾩뒪瑜� 留ㅺ컻濡� 諛쒖깮�븳 遺꾩웳�뿉 ���빐�꽌�뒗 媛쒖엯�븷 �쓽臾닿� �뾾�쑝硫�, �씠濡� �씤�븳 �넀�빐瑜� 諛곗긽�븷 梨낆엫�씠 �뾾�뒿�땲�떎.<br> <br> + + �젣 21議� (以�嫄곕쾿 諛� 愿��븳)<br> + (1) �쉶�궗�� �쉶�썝�� �꽌鍮꾩뒪�� 愿��젴�븯�뿬 諛쒖깮�븳 遺꾩웳�쓣 �썝留뚰븯寃� �빐寃고븯湲� �쐞�븯�뿬 �긽�샇媛꾩쓽 理쒖꽑�쓽 �끂�젰�쓣 �빐�빞 �빀�땲�떎.<br> + (2) �쉶�궗媛� �젙�븯�뒗 �젙梨� �삉�뒗 �씠�슜�빟愿��뿉 紐낆떆�릺吏� �븘�땲�븳 �궗�빆�뿉 ���빐�꽌�뒗 �쟾湲고넻�떊�궗�뾽踰�, �젙蹂댄넻�떊留� �씠�슜珥됱쭊 �벑�뿉 愿��븳 踰뺣쪧 諛� 湲고� 愿��젴 踰뺣졊�쓽 洹쒖젙, 蹂� �빟愿��쓽 痍⑥� 諛� �룞醫� �뾽怨꾩쓽<br> + �씪諛섏쟻�씤 愿��뻾�뿉 �뵲�씪 �빐�꽍 �쟻�슜�맗�땲�떎.<br> + (3) �쉶�궗�� �쉶�썝媛� �꽌鍮꾩뒪 �씠�슜�뿉 愿��빐 諛쒖깮�븳 遺꾩웳�씠 �썝留뚰븯寃� �빐寃곕릺吏� �븘�땲�븳 寃쎌슦 愿��젴 �냼�넚�쓽 愿��븷�� �쉶�궗 蹂몄젏 �냼�옱吏�瑜� 愿��븷�븯�뒗 踰뺤썝�쑝濡� �빀�땲�떎.<br> + + �� �떆�뻾�씪�옄 : 2018�뀈11�썡 09�씪</span> + </div> + </div> +</div> + + diff --git a/src/main/webapp/views/workspace/workspacePaymentExecute.html b/src/main/webapp/views/workspace/workspacePaymentExecute.html new file mode 100644 index 0000000..9ca23df --- /dev/null +++ b/src/main/webapp/views/workspace/workspacePaymentExecute.html @@ -0,0 +1,377 @@ +<div class="row" ng-controller="workspacePaymentExecuteController"> + <div class="col-lg-12"> + <div class="projects-list"> + <div class="project-box"> + <div class="project-head"> + <div class="project-title"> + <h5 ng-show="!vm.edit"> + <span class="text-primary bold">{{vm.workspaceVo.name}}</span> <span translate="common.information">�젙蹂�</span> + <a href="" class="ml-10" title="�뾽臾닿났媛� �씠由꾨�寃�" ng-click="vm.edit = true"> + <i class="os-icon os-icon-edit-1 fc-grey"></i> + </a> + </h5> + <div class="input-group mb-2 mr-sm-2 mb-sm-0" ng-show="vm.edit"> + <input type="text" class="form-control" ng-model="vm.workspaceVo.name" kr-input maxlength="20"> + <button type="button" class="btn btn-md btn-primary bold" ng-click="fn.modifyWorkspace()" ng-disabled="!$root.isDefined(vm.workspaceVo.name)"><span translate="common.save">���옣</span></button> + </div> + </div> + </div> + + <div class="project-info"> + <div class="row align-items-center"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-lg-2 text-center b-r"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.serviceStatus"> + �꽌鍮꾩뒪 �긽�깭 + </div> + <div class="value2"> + <span class="text-secondary" ng-if="vm.workspaceVo.packageType == '0'">OWL Trial</span> + <span class="text-secondary" ng-if="vm.workspaceVo.packageType == '1'">OWL Lite</span> + <span class="text-secondary" ng-if="vm.workspaceVo.packageType == '2'">OWL Medium</span> + <span class="text-secondary" ng-if="vm.workspaceVo.packageType == '3'">OWL Enterprise</span> + <br/> + <span class="text-primary" ng-show="vm.workspaceVo.serviceType == 'USE'" translate="managementWorkspace.inUse">�궗�슜以�</span> + <span class="text-danger" ng-show="vm.workspaceVo.serviceType == 'UNUSED'" translate="managementWorkspace.expiredUse">�궗�슜 留뚮즺</span> + </div> + </div> + </div> + + <div class="col-lg-2 text-center b-r"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.numberOfUsers"> + �궗�슜�옄 �닔 + </div> + <div class="value2"> + <span class="text-primary">{{vm.workspaceVo.activeUser | number}}<span translate="common.userNum">紐�</span></span> + / {{vm.workspaceVo.maxUser | number}}<span translate="common.userNum">紐�</span> + </div> + </div> + </div> + <div class="col-lg-2 text-center b-r"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.useStorageSize"> + �궗�슜 �슜�웾 + </div> + <div class="value2"> + <span class="text-primary">{{(vm.workspaceVo.useStorageSize/1024/1024/1024) | number : 1}}G</span> + <span ng-if="vm.workspaceVo.packageType == '0'"> + / {{(vm.workspaceVo.storageSize/1024/1024/1024) | number : 1}}G + </span> + </div> + </div> + </div> + <div class="col-lg-3 text-center b-r"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.usageTraffic"> + �궗�슜 �듃�옒�뵿 + </div> + <div class="value2"> + <span class="text-primary">{{(vm.workspaceVo.useTraffic/1024/1024) | number : 0}}MB</span> + <span ng-if="vm.workspaceVo.packageType == '0'"> + / {{((vm.workspaceVo.storageSize * 3)/1024/1024/1024) | number : 0}}G <br> + </span> + <span class="text-danger" ng-show="(vm.workspaceVo.useTraffic >= (vm.workspaceVo.storageSize * 3)) && (vm.workspaceVo.useTraffic > 0)">�듃�옒�뵿 珥덇낵</span> + </div> + </div> + </div> + + <div class="col-lg-3 text-center"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.duration"> + �궗�슜 湲곌컙 + </div> + <div class="value2"> + <span ng-if="vm.workspaceVo.packageType == '0'"> + {{vm.workspaceVo.startDate | limitTo : 10}} ~ + {{vm.workspaceVo.expireDate | limitTo : 10}}<br/> + <span class="text-primary">({{vm.workspaceVo.totalDate}}<span translate="managementWorkspace.daysLeft">�씪 �궓�쓬)</span></span> + </span> + <span ng-if="vm.workspaceVo.packageType != '0'"> + <span class="text-primary"><span translate="managementWorkspace.daysLeftUnlimited"></span></span> + </span> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + + </div> + </div> + </div> + + +<!-- + <div class="col-lg-12"> + <div class="projects-list"> + <div class="project-box"> + <div class="project-head"> + <div class="project-title"> + <h5 class="bold" translate="managementWorkspace.pay"> + 寃곗젣�븯湲� + </h5> + <span>(臾댄넻�옣�엯湲덉씠�굹 �꽭湲덇퀎�궛�꽌 �벑 寃곗젣 愿��젴 臾몄쓽�뒗 �븯�떒 <strong>臾몄쓽�븯湲�</strong>瑜� �씠�슜�빐二쇱꽭�슂.)</span> + </div> + </div> + + <div class="project-info"> + <div class="row align-items-center"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-xl-4" ng-if="vm.view.price == 0"> + <table class="table table-lightborder"> + <thead> + <tr> + <th colspan="2" class="text-center bold" translate="managementWorkspace.paymentInformation"> + 寃곗젣 �젙蹂� + </th> + </tr> + </thead> + <tbody> + <tr> + <td translate="managementWorkspace.cardNumber"> + 移대뱶踰덊샇 + </td> + <td> + <div class="input-group"> + <input class="form-control width-20-p" type="tel" + number-only ng-model="vm.form.cardNumber1" + maxlength="4"> <span + class="mt-2 mr-1 ml-1"> - </span> + <input class="form-control width-20-p" type="tel" + number-only ng-model="vm.form.cardNumber2" + maxlength="4"> <span + class="mt-2 mr-1 ml-1"> - </span> + <input class="form-control width-20-p" type="tel" + number-only ng-model="vm.form.cardNumber3" + maxlength="4"> <span + class="mt-2 mr-1 ml-1"> - </span> + <input class="form-control width-20-p" type="tel" + number-only ng-model="vm.form.cardNumber4" + maxlength="4"> + </div> + </td> + </tr> + <tr> + <td translate="managementWorkspace.validity"> + �쑀�슚湲곌컙 + </td> + <td> + <div class="input-group mb-2 mr-sm-2 mb-sm-0"> + <input class="form-control width-20-p" type="tel" number-only + placeholder="MM" ng-model="vm.form.expireMonth" + maxlength="2"> + <span class="mt-2 mr-2 ml-2"> / </span> + <input class="form-control width-20-p" type="tel" number-only + placeholder="YY" ng-model="vm.form.expireYearTmp" + maxlength="2"> + </div> + </td> + </tr> + <tr> + <td translate="common.password"> + 鍮꾨�踰덊샇 + </td> + <td> + <div class="input-group mb-2 mr-sm-2 mb-sm-0"> + <input class="form-control width-20-p" type="tel" number-only + placeholder="{{'managementWorkspace.FirstTwoDigits' | translate}}" ng-model="vm.form.cardPwd" + maxlength="2"> <span + class="mt-2 mr-2 ml-2"> ** </span> + </div> + </td> + + </tr> + <tr> + <td> + <span translate="managementWorkspace.dateOfOnesBirth">�깮�뀈�썡�씪</span><br> + <small translate="managementWorkspace.brn">(�궗�뾽�옄踰덊샇)</small> + </td> + <td> + <input class="form-control" type="tel" number-only + ng-model="vm.form.birth" maxlength="10"> + <small translate="managementWorkspace.exampleBirthInput">�깮�뀈�썡�씪�� 6�옄由щ줈 �엯�젰�빐二쇱꽭�슂.</small> + </td> + </tr> + </tbody> + </table> + <p> + <small> + <label><input type="checkbox" class="form-control" + style="vertical-align: middle" + ng-model="vm.form.confirm"> <span translate="managementWorkspace.agreeMyPersonalInformation">蹂몄씤�쓽 媛쒖씤�젙蹂대�� 寃곗젣 �꽌鍮꾩뒪�뾽泥댁뿉 �젣怨듯븿�뿉 + �룞�쓽�빀�땲�떎.</span></label> + <br> <a href="" class="btn-underlined" ng-click="fn.agreeTerm()"><span translate="managementWorkspace.termsAndConditions">�빟愿�</span></a><span translate="managementWorkspace.agreeToMakeThePayment">�뿉 �룞�쓽�븯�뀛�빞 寃곗젣媛� 媛��뒫�빀�땲�떎.</span> + </small> + </p> + </div> + + <div class="col-xl-4" ng-if="vm.view.price == 0"> + <table class="table table-lightborder"> + <thead> + <tr> + <th class="text-center bold" colspan="2"> + <span translate="managementWorkspace.productInformation">�긽�뭹 �젙蹂�</span> + </th> + </tr> + </thead> + <tbody> + <tr> + <td width="30%"> + <span translate="managementWorkspace.numberOfUsers">�궗�슜�옄 �닔</span> + </td> + <td> + <div class="input-group mb-2 mr-sm-2 mb-sm-0"> + <input class="form-control" ng-model="vm.form.buyUser" + type="number" number-only placeholder="{{'managementWorkspace.pleaseEnterNumberOfUsers' | translate}}" + maxlength="3"> + <button class="btn btn-primary ml-1" type="button" + ng-click="fn.changeBuyUser('PLUS')"><i + class="os-icon os-icon-plus"></i></button> + <button class="btn btn-info ml-1" type="button" + ng-click="fn.changeBuyUser('MINUS')"><i + class="os-icon os-icon-minus"></i></button> + </div> + </td> + </tr> + <tr> + <td translate="managementWorkspace.paymentType"> + 寃곗젣 �쑀�삎 + </td> + <td> + <select class="form-control" ng-model="vm.form.type"> + <option value="MONTH" translate="managementWorkspace.monthly">留ㅼ썡</option> + --> <!-- <option value="YEAR">留ㅻ뀈</option> --> + <!-- + </select> + </td> + </tr> + <tr> + <td translate="managementWorkspace.paymentMethod"> + 寃곗젣 �닔�떒 + </td> + <td> + <select class="form-control"> + <option selected translate="managementWorkspace.creditCard">�떊�슜移대뱶</option> + </select> + </td> + </tr> + </tbody> + <tfoot> + <tr> + <td colspan="2" class="text-right bold"> + <span translate="managementWorkspace.paymentAmount">寃곗젣 湲덉븸</span> : <span class="text-danger">₩ {{vm.form.paymentAmountTemp | number}}</span> <span class="text-danger" translate="managementWorkspace.includesVAT">(遺�媛��꽭�룷�븿)</span> + </td> + </tr> + <tr> + <td colspan="2" class="text-right bold"> + <button class="btn btn-lg btn-block btn-danger" + ng-click="fn.paymentOneTime()" + ng-disabled="fn.formCheck()"> <br/><span translate="managementWorkspace.regularPayment">�젙湲� 寃곗젣�븯湲�</span><br/> + </button> + </td> + </tr> + </tfoot> + </table> + </div> + + <div class="col-xxl-4 col-xl-6 text-center" ng-if="vm.view.price > 0"> + <table class="table table-lightborder"> + <thead> + <tr> + <th class="text-center bold" colspan="2"> + <span translate="managementWorkspace.regularPaymentInformation">�젙湲� 寃곗젣 �젙蹂�</span> + </th> + </tr> + </thead> + <tbody> + <tr> + <td> + <span translate="managementWorkspace.numberOfUsers">�궗�슜�옄 �닔</span> + </td> + <td> + {{vm.view.buyUser | number}} + </td> + </tr> + <tr> + <td> + <span translate="managementWorkspace.paymentType">寃곗젣 �쑀�삎</span> + </td> + <td> + <span ng-if="vm.view.type == 'MONTH'" translate="managementWorkspace.monthly">留ㅼ썡</span> + <span ng-if="vm.view.type == 'YEAR'" translate="managementWorkspace.yearly">留ㅻ뀈</span> + </td> + </tr> + <tr> + <td> + <span translate="managementWorkspace.paymentDate">寃곗젣�씪</span> + </td> + <td> + {{vm.workspaceVo.expireDate | limitTo : 10}} + </td> + </tr> + + </tbody> + <tfoot> + <tr> + <td colspan="2" class="text-right bold"> + <span translate="managementWorkspace.paymentScheduledAmount">寃곗젣 �삁�젙湲덉븸</span> : <span class="text-danger">₩ {{vm.view.price | number}} <span translate="managementWorkspace.includesVAT">(遺�媛��꽭�룷�븿)</span></span> + </td> + </tr> + <tr> + <td colspan="2" class="text-right bold"> + <button class="btn btn-secondary" ng-click="fn.cancelNextPayment()"> + <span translate="managementWorkspace.cancelRegularPayment">�젙湲� 寃곗젣 痍⑥냼</span> + </button> + <button class="btn btn-primary" ng-click="fn.modify()"> + <span translate="managementWorkspace.updateRegularPayment">�젙湲� 寃곗젣 蹂�寃�</span> + </button> + <button class="btn btn-success" ng-click="fn.add()"> + <span>�궗�슜�옄 異붽� 寃곗젣</span> + </button> + </td> + </tr> + </tfoot> + </table> + </div> + + <div class="col-xxl4 col-xl-4"> + <table class="table table-lightborder"> + <thead> + <tr> + <th class="text-center bold" colspan="2"> + <span translate="managementWorkspace.priceInformation">媛�寃� �젙蹂�</span> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class="bold"> + <span class="text-danger" translate="managementWorkspace.1to10People">1 ~ 10 �씤</span> + </td> + <td class="bold"> + ₩ {{(9 * vm.workspaceVo.usdKrw) | number}} + </td> + </tr> + <tr> + <td> + <span translate="managementWorkspace.11orMore">11�씤 �씠�긽 ~ </span> + </td> + <td> + <span translate="managementWorkspace.perPerson">1�씤�떦</span> - ₩ <span class="bold">{{(6 * vm.workspaceVo.usdKrw) | number}}</span> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> --> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/workspace/workspacePaymentModify.html b/src/main/webapp/views/workspace/workspacePaymentModify.html new file mode 100644 index 0000000..0ed7b7e --- /dev/null +++ b/src/main/webapp/views/workspace/workspacePaymentModify.html @@ -0,0 +1,81 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="managementWorkspace.updateRegularPayment">�젙湲� 寃곗젣 蹂�寃�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="paymentModifyForm"> + <table class="table table-lightborder"> + <tr> + <td> + <span translate="managementWorkspace.numberOfUsers">�궗�슜�옄 �닔</span> + </td> + <td> + <div class="input-group mb-2 mr-sm-2 mb-sm-0"> + <input class="form-control" placeholder="{{'managementWorkspace.pleaseEnterNumberOfUsers' | translate}}" type="number" number-only ng-model="vm.form.buyUser" maxlength="3" required> + <button class="btn btn-primary ml-1" type="button" ng-click="fn.changeBuyUser('PLUS')"><i class="os-icon os-icon-plus"></i></button> + <button class="btn btn-info ml-1" type="button" ng-click="fn.changeBuyUser('MINUS')"><i class="os-icon os-icon-minus"></i></button> + </div> + </td> + </tr> + <tr> + <td> + <span translate="managementWorkspace.paymentType">寃곗젣 �쑀�삎</span> + </td> + <td> + <select class="form-control" ng-model="vm.form.type"> + <option value="MONTH" translate="managementWorkspace.monthly">留ㅼ썡</option> + <!--<option value="YEAR">留ㅻ뀈</option>--> + </select> + </td> + </tr> + <tr> + <td colspan="2"> + <span translate="managementWorkspace.scheduleUserWaitingToJoin">李몄뿬 ��湲� �궗�슜�옄 �삁�빟</span><br/> + <small translate="managementWorkspace.schedulePeopleWaitingToParticipate">寃곗젣�븯�뒗 �궗�슜�옄 �닔媛� 以꾩뼱�뱾 寃쎌슦 李몄뿬 ��湲� �긽�깭媛� �릺�뒗 �궗�슜�옄瑜� 誘몃━ �삁�빟�븷 �닔 �엳�뒿�땲�떎.</small> + </td> + </tr> + <tr> + <td colspan="2"> + <js-autocomplete-multi data-input-name="managers" + selected-model="vm.form.users" + search="vm.userName" + source="fn.getUserList(vm.userName, vm.form.users.concat(vm.form.workspaceManager), vm.autoCompletePage.user.page, fn.getUserListCallBack)" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + broad-cast="" + modal-form-auto-scroll + input-disabled="false" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100 }"></js-autocomplete-multi> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="select3-selection__choicediv"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> + <span class="avatar-w"><img ng-src="{{user.profile}}"></span> + <span>{{user.name}}({{user.account}})</span> + <span class="select3-selection__choice__remove" ng-click="fn.removeUsr($index)">횞</span> + </span> + </div> + </td> + </tr> + </table> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(paymentModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(paymentModifyForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/workspace/workspaceUserConfig.html b/src/main/webapp/views/workspace/workspaceUserConfig.html new file mode 100644 index 0000000..10de62f --- /dev/null +++ b/src/main/webapp/views/workspace/workspaceUserConfig.html @@ -0,0 +1,176 @@ +<div class="row" ng-controller="workspaceUserConfigController"> + <div class="col-lg-12"> + <div class="projects-list"> + <div class="project-box"> + <div class="project-head"> + <div class="project-title"> + <h5 class="bold"> + <span class="text-primary">{{vm.workspaceVo.name}}</span> <span translate="common.information">�젙蹂�</span> + </h5> + </div> + </div> + <div class="project-info"> + <div class="row align-items-center"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-lg-3 text-center b-r"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.numberOfParticipants"> + 李몄뿬 媛��뒫 �씤�썝 + </div> + <div class="value text-danger"> + {{vm.workspaceVo.maxUser}} <span translate="common.userNum">紐�</span> + </div> + + </div> + </div> + <div class="col-lg-3 text-center b-r"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.participation"> + 李몄뿬 + </div> + <div class="value text-primary"> + {{vm.workspaceVo.activeUser}}<span translate="common.userNum">紐�</span> + </div> + </div> + </div> + <div class="col-lg-3 text-center b-r"> + <div class="el-tablo highlight"> + <!-- + <div class="label" translate="managementWorkspace.waitForParticipation"> + 李몄뿬 ��湲� + </div> + --> + <div class="label" translate="managementWorkspace.withdrawal"> + �깉�눜 + </div> + <div class="value text-secondary"> + {{vm.workspaceVo.standByUser}}<span translate="common.userNum">紐�</span> + </div> + </div> + </div> + <div class="col-lg-3 text-center"> + <div class="el-tablo highlight"> + <div class="label" translate="managementWorkspace.canParticipate"> + 李몄뿬 媛��뒫 + </div> + <div class="value text-success"> + {{vm.workspaceVo.includeUserCount}}<span translate="common.userNum">紐�</span> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</div> + +<div class="row"> + <div class="col-lg-12"> + <div class="element-box"> + <div class="searchdiv"> + <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)"> + <div class="row"> + <div class="col-xl-2"> + <div class="form-group"> + <label translate="common.name">�씠由�</label> + <input class="form-control" type="text" ng-model="vm.search.name" maxlength="10"> + </div> + </div> + + <div class="col-xl-3"> + <div class="form-group"> + <label translate="common.status">�긽�깭</label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="statuses" + selected-model="vm.search.statuses" + extra-settings="{ stringTypeOption : true }" + options="vm.options.statuses"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-xl-3"> + <div class="form-group"> + <label translate="common.email">�씠硫붿씪</label> + <input class="form-control" type="text" ng-model="vm.search.account" maxlength="50"> + </div> + </div> + + <div class="col-xl-4"> + <div class="form-group form-buttons-w2"> + <button class="btn btn-xlg btn-navy" ng-click="fn.getUserWorkspaceList(0)"> + <i class="os-icon os-icon-ui-37"></i> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + <div class="btn-group"> + <button aria-expanded="false" + aria-haspopup="true" + class="btn btn-secondary dropdown-toggle" + data-toggle="dropdown" + type="button">異붽�湲곕뒫 + </button> + <div aria-labelledby="dropdownMenuButton2" + class="dropdown-menu" + x-placement="bottom-start" + style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;"> + <a class="dropdown-item" href="#"> �궘�젣</a> + </div> + </div> + </div>--> + </div> + </div> + + <div class="table-responsive"> + <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" + event="vm.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.getUserWorkspaceList(vm.page.selectedPage-1)" + class="pagination pagination-sm" + previous-text="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/views/workspace/workspaceUserLevelConfig.html b/src/main/webapp/views/workspace/workspaceUserLevelConfig.html new file mode 100644 index 0000000..5d2e541 --- /dev/null +++ b/src/main/webapp/views/workspace/workspaceUserLevelConfig.html @@ -0,0 +1,109 @@ +<div class="row" ng-controller="workspaceUserLevelController"> +</div> + +<div class="row"> + <div class="col-lg-12"> + <div class="element-box"> + <div class="searchdiv"> + <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)"> + <div class="row"> + <div class="col-xl-2"> + <div class="form-group"> + <label translate="common.name">�씠由�</label> + <input class="form-control" type="text" ng-model="vm.search.name" maxlength="10"> + </div> + </div> + + <div class="col-xl-3"> + <div class="form-group"> + <label translate="common.status">�긽�깭</label> + <ng-dropdown-multiselect class="multiSelect cursor" + data-input-name="statuses" + selected-model="vm.search.statuses" + extra-settings="{ stringTypeOption : true }" + options="vm.options.statuses"></ng-dropdown-multiselect> + </div> + </div> + + <div class="col-xl-3"> + <div class="form-group"> + <label translate="common.email">�씠硫붿씪</label> + <input class="form-control" type="text" ng-model="vm.search.account" maxlength="50"> + </div> + </div> + + <div class="col-xl-4"> + <div class="form-group form-buttons-w2"> + <button class="btn btn-xlg btn-navy" ng-click="fn.getUserWorkspaceList(0)"> + <i class="os-icon os-icon-ui-37"></i> + <span translate="common.search">寃��깋</span> + </button> + <button class="btn btn-xlg btn-white" ng-click="fn.initSearch()"> + <i class="os-icon os-icon-grid-18"></i> + <span translate="common.reset">珥덇린�솕</span> + </button> + </div> + </div> + </div> + </form> + </div> + + <div class="controls-above-table mt-30"> + <div class="row"> + <div class="col-sm-6"> + <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-sm-6 text-right"> + <div class="btn-group"> + <button aria-expanded="false" + aria-haspopup="true" + class="btn btn-secondary dropdown-toggle" + data-toggle="dropdown" + type="button">異붽�湲곕뒫 + </button> + <div aria-labelledby="dropdownMenuButton2" + class="dropdown-menu" + x-placement="bottom-start" + style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;"> + <a class="dropdown-item" href="#"> �궘�젣</a> + </div> + </div> + </div>--> + </div> + </div> + + <div class="table-responsive"> + <js-table data="vm.responseData.data" table-configs="vm.tableConfigs" + event="vm.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.getUserWorkspaceList(vm.page.selectedPage-1)" + class="pagination pagination-sm" + previous-text="Prev" + next-text="Next" + first-text="" + last-text=""> + </ul> + </div> + </div> + </div> +</div> \ No newline at end of file -- Gitblit v1.8.0