.gitignore

This commit is contained in:
KNKIM 2021-07-28 13:23:05 +09:00
parent d45d320c2a
commit 7ab7de6b16
105 changed files with 14912 additions and 15146 deletions

View File

@ -1,42 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"> <classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes> <attributes>
<attribute name="optional" value="true"/> <attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"> <classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes> <attributes>
<attribute name="optional" value="true"/> <attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"> <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v8.5"> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v8.5">
<attributes> <attributes>
<attribute name="owner.project.facets" value="jst.web"/> <attribute name="owner.project.facets" value="jst.web"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="output" path="target/classes"/> <classpathentry kind="output" path="target/classes"/>
</classpath> </classpath>

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="src/main/webapp"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>

View File

@ -1,3 +0,0 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/test/java=UTF-8

View File

@ -1,8 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.8

File diff suppressed because one or more lines are too long

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="nlib-1.0.0">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<property name="java-output-path" value="/nlib2/build/classes"/>
<property name="context-root" value="nlib"/>
</wb-module>
</project-modules>

View File

@ -1,12 +0,0 @@
<root>
<facet id="jst.jsf">
<node name="libprov">
<attribute name="provider-id" value="jsf-no-op-library-provider"/>
</node>
</facet>
<facet id="jst.jaxrs">
<node name="libprov">
<attribute name="provider-id" value="jaxrs-no-op-library-provider"/>
</node>
</facet>
</root>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v8.5"/>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.8"/>
<installed facet="jst.web" version="2.5"/>
<installed facet="jst.jsf" version="2.2"/>
<installed facet="jst.jaxrs" version="2.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

View File

@ -1 +0,0 @@
org.eclipse.wst.jsdt.launching.baseBrowserLibrary

View File

@ -1 +0,0 @@
Window

View File

@ -1,2 +0,0 @@
disabled=06target
eclipse.preferences.version=1

View File

@ -1,78 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_GET.xml --> <!-- uac.service.board.qna_GET.xml -->
<result> <result>
<page>1</page> <page>1</page>
<totPages>15</totPages> <totPages>15</totPages>
<records>125</records> <records>125</records>
<results> <results>
<articleNo>1</articleNo> <articleNo>1</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>답변완료</replyStatus> <replyStatus>답변완료</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>2</articleNo> <articleNo>2</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>답변완료</replyStatus> <replyStatus>답변완료</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>3</articleNo> <articleNo>3</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>답변완료</replyStatus> <replyStatus>답변완료</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>4</articleNo> <articleNo>4</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>대기</replyStatus> <replyStatus>대기</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>5</articleNo> <articleNo>5</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>대기</replyStatus> <replyStatus>대기</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>6</articleNo> <articleNo>6</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>답변완료</replyStatus> <replyStatus>답변완료</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>7</articleNo> <articleNo>7</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>답변완료</replyStatus> <replyStatus>답변완료</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>8</articleNo> <articleNo>8</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>답변완료</replyStatus> <replyStatus>답변완료</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>9</articleNo> <articleNo>9</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>답변완료</replyStatus> <replyStatus>답변완료</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
<results> <results>
<articleNo>10</articleNo> <articleNo>10</articleNo>
<title>질문있습니다.</title> <title>질문있습니다.</title>
<writerName>김길동</writerName> <writerName>김길동</writerName>
<replyStatus>답변완료</replyStatus> <replyStatus>답변완료</replyStatus>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
</results> </results>
</result> </result>

View File

@ -1,41 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_GET.xml --> <!-- uac.service.board.qna_GET.xml -->
<result> <result>
<!-- 상세내용 --> <!-- 상세내용 -->
<articleNo>5</articleNo> <articleNo>5</articleNo>
<articleType>101</articleType> <articleType>101</articleType>
<title>공지사항 테스트</title> <title>공지사항 테스트</title>
<articlePassword>111</articlePassword> <articlePassword>111</articlePassword>
<readCount>15</readCount> <readCount>15</readCount>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
<regUserName>김아무</regUserName> <regUserName>김아무</regUserName>
<repStatus>답변완료</repStatus> <repStatus>답변완료</repStatus>
<email>myid@digitalship.co.kr</email> <email>myid@digitalship.co.kr</email>
<contentQeust>질문이 있습니다.</contentQeust> <contentQeust>질문이 있습니다.</contentQeust>
<contentQeustFile>111111=화면캡쳐.jpg;222222=화면캡쳐2.jpg;</contentQeustFile> <contentQeustFile>111111=화면캡쳐.jpg;222222=화면캡쳐2.jpg;</contentQeustFile>
<contentReply>이렇게 답변 드립니다.</contentReply> <contentReply>이렇게 답변 드립니다.</contentReply>
<contentReplyFile>333333=결과확인.jpg;</contentReplyFile> <contentReplyFile>333333=결과확인.jpg;</contentReplyFile>
<!-- 이전글, 다음글 --> <!-- 이전글, 다음글 -->
<page>1</page> <page>1</page>
<totPages>1</totPages> <totPages>1</totPages>
<records>2</records> <records>2</records>
<results> <results>
<articleNo>4</articleNo> <articleNo>4</articleNo>
<articleType>101</articleType> <articleType>101</articleType>
<title>이전의 글제목입니다.</title> <title>이전의 글제목입니다.</title>
<regDate>2021-07-19</regDate> <regDate>2021-07-19</regDate>
<regUserName>김아무</regUserName> <regUserName>김아무</regUserName>
<repStatus>답변완료</repStatus> <repStatus>답변완료</repStatus>
</results> </results>
<results> <results>
<articleNo>6</articleNo> <articleNo>6</articleNo>
<articleType>102</articleType> <articleType>102</articleType>
<title>다음의 글제목입니다.</title> <title>다음의 글제목입니다.</title>
<regDate>2021-07-20</regDate> <regDate>2021-07-20</regDate>
<regUserName>홍아무</regUserName> <regUserName>홍아무</regUserName>
<repStatus>답변완료</repStatus> <repStatus>답변완료</repStatus>
</results> </results>
</result> </result>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_POST.xml --> <!-- uac.service.board.qna_POST.xml -->
<result> <result>
<!-- 상세내용 --> <!-- 상세내용 -->
<articleNo>10</articleNo> <articleNo>10</articleNo>
</result> </result>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_PUT.xml --> <!-- uac.service.board.qna_PUT.xml -->
<result> <result>
<!-- 상세내용 --> <!-- 상세내용 -->
<articleNo>10</articleNo> <articleNo>10</articleNo>
</result> </result>

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_GET.xml --> <!-- uac.service.board.qna_GET.xml -->
<result> <result>
<records>3</records> <records>3</records>
<results> <results>
<code>010</code> <code>010</code>
<name>10개씩</name> <name>10개씩</name>
</results> </results>
<results> <results>
<code>050</code> <code>050</code>
<name>50개씩</name> <name>50개씩</name>
</results> </results>
<results> <results>
<code>100</code> <code>100</code>
<name>100개씩</name> <name>100개씩</name>
</results> </results>
</result> </result>

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_PUT.xml --> <!-- uac.service.board.qna_PUT.xml -->
<result> <result>
<!-- 상세내용 --> <!-- 상세내용 -->
<deptName>마포문화원</deptName> <deptName>마포문화원</deptName>
<logoUrl>https://www.mapocc.or.kr/image/common/logo.gif</logoUrl> <logoUrl>https://www.mapocc.or.kr/image/common/logo.gif</logoUrl>
<informContent> <informContent>
<![CDATA[ <![CDATA[
마포문화원은 1998년 10월 13일에 개원하였으며 시청각실, 문화강좌실, 생활체육실 등 시설을 갖추고 있다.<br> 마포문화원은 1998년 10월 13일에 개원하였으며 시청각실, 문화강좌실, 생활체육실 등 시설을 갖추고 있다.<br>
또한, 구민 누구나 무료로 이용할 수 있는 각종 전문서적과 비디오, 오디오, 인터넷 시스템을 갖춘 상설정보센터를 운영을 하고 있으며, 또한, 구민 누구나 무료로 이용할 수 있는 각종 전문서적과 비디오, 오디오, 인터넷 시스템을 갖춘 상설정보센터를 운영을 하고 있으며,
지역향토사 관련하여 향토사연구소 운영을 통해 매년 향토사료집 발간을 하고 있다.<br> 지역향토사 관련하여 향토사연구소 운영을 통해 매년 향토사료집 발간을 하고 있다.<br>
2006년 마포향토문화해설사 양성교육을 통하여 초, 중, 고등학교에 지역역사문화탐방을 실시하며 어린이 및 청소년들에게 우리지역 향토역사에 대한 교육도 실시하고 있다.<br> 2006년 마포향토문화해설사 양성교육을 통하여 초, 중, 고등학교에 지역역사문화탐방을 실시하며 어린이 및 청소년들에게 우리지역 향토역사에 대한 교육도 실시하고 있다.<br>
또한, 각종문화행사시 향토해설사들의 활동을 통하여 구민들에게 알리는 활동도 활발하게 진행되어지고 있다. 또한, 각종문화행사시 향토해설사들의 활동을 통하여 구민들에게 알리는 활동도 활발하게 진행되어지고 있다.
]]> ]]>
</informContent> </informContent>
</result> </result>

View File

@ -1,79 +1,79 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_PUT.xml --> <!-- uac.service.board.qna_PUT.xml -->
<result> <result>
<zipcode>04173</zipcode> <zipcode>04173</zipcode>
<addr1>서울 마포구 삼개로 16</addr1> <addr1>서울 마포구 삼개로 16</addr1>
<addr2>근신빌딩</addr2> <addr2>근신빌딩</addr2>
<tel>02-1111-2222</tel> <tel>02-1111-2222</tel>
<fax>02-1111-2223</fax> <fax>02-1111-2223</fax>
<!-- * Daum 지도 - 지도퍼가기 --> <!-- * Daum 지도 - 지도퍼가기 -->
<!-- 1. 지도 노드 --> <!-- 1. 지도 노드 -->
<div id="daumRoughmapContainer1533889304207" class="root_daum_roughmap root_daum_roughmap_landing"></div> <div id="daumRoughmapContainer1533889304207" class="root_daum_roughmap root_daum_roughmap_landing"></div>
<!-- <!--
2. 설치 스크립트 2. 설치 스크립트
* 지도 퍼가기 서비스를 2개 이상 넣을 경우, 설치 스크립트는 하나만 삽입합니다. * 지도 퍼가기 서비스를 2개 이상 넣을 경우, 설치 스크립트는 하나만 삽입합니다.
--> -->
<script charset="UTF-8" class="daum_roughmap_loader_script" src="https://ssl.daumcdn.net/dmaps/map_js_init/roughmapLoader.js"></script> <script charset="UTF-8" class="daum_roughmap_loader_script" src="https://ssl.daumcdn.net/dmaps/map_js_init/roughmapLoader.js"></script>
<!-- 3. 실행 스크립트 --> <!-- 3. 실행 스크립트 -->
<script charset="UTF-8"> <script charset="UTF-8">
new daum.roughmap.Lander({ new daum.roughmap.Lander({
"timestamp" : "1533889304207", "timestamp" : "1533889304207",
"key" : "pguk", "key" : "pguk",
"mapWidth" : "760", "mapWidth" : "760",
"mapHeight" : "350" "mapHeight" : "350"
}).render(); }).render();
</script> </script>
<informContent> <informContent>
<![CDATA[ <![CDATA[
<div id="cts106"> <div id="cts106">
<h2>오시는길 상세정보</h2> <h2>오시는길 상세정보</h2>
<ul class="bu"> <ul class="bu">
<li>주소 : 서울시 마포구 지역문화원로 60(OO동 54-1) (우)11338</li> <li>주소 : 서울시 마포구 지역문화원로 60(OO동 54-1) (우)11338</li>
<li>전화 : 031) 860-3261~2</li> <li>전화 : 031) 860-3261~2</li>
<li>팩스 : 031) 860-2568</li> <li>팩스 : 031) 860-2568</li>
</ul> </ul>
<h2>교통</h2> <h2>교통</h2>
<h3>도보로 오실 경우(20~25분 소요)</h3> <h3>도보로 오실 경우(20~25분 소요)</h3>
<ul class="bu"> <ul class="bu">
<li>마포역 1번 출구에서 나와 OO방향으로 직진, 마포교 다리를 건너 주공아파트쪽으로 직진해서 걸어오시면 오른쪽에 위치한 건물이 마포구립도서관입니다.</li> <li>마포역 1번 출구에서 나와 OO방향으로 직진, 마포교 다리를 건너 주공아파트쪽으로 직진해서 걸어오시면 오른쪽에 위치한 건물이 마포구립도서관입니다.</li>
</ul> </ul>
<h3>대중교통 이용 시</h3> <h3>대중교통 이용 시</h3>
<h4>OO운수 17번</h4> <h4>OO운수 17번</h4>
<ul class="bu"> <ul class="bu">
<li>OOO주유소 OOO</li> <li>OOO주유소 OOO</li>
</ul> </ul>
<div class="indent"> <div class="indent">
<table summary="17번 버스 배차시간 및 소요간격 정보를 제공" class="table_t1"> <table summary="17번 버스 배차시간 및 소요간격 정보를 제공" class="table_t1">
<caption>17번 버스 배차시간 및 소요간격 안내표</caption> <caption>17번 버스 배차시간 및 소요간격 안내표</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">출발지</th> <th scope="col">출발지</th>
<th scope="col">출발시간</th> <th scope="col">출발시간</th>
<th scope="col">소요시간</th> <th scope="col">소요시간</th>
</tr> </tr>
</thead> </thead>
<tbody class="text_center"> <tbody class="text_center">
<tr> <tr>
<th scope="row">시립도서관</th> <th scope="row">시립도서관</th>
<td>09:20 / 11:40 / 14:50 / 17:10 / 20:00</td> <td>09:20 / 11:40 / 14:50 / 17:10 / 20:00</td>
<td rowspan="2">약 15분</td> <td rowspan="2">약 15분</td>
</tr> </tr>
<tr> <tr>
<th scope="row">마포역역</th> <th scope="row">마포역역</th>
<td>07:25 / 08:50 / 11:15 / 14:25 / 16:45 / 19:35</td> <td>07:25 / 08:50 / 11:15 / 14:25 / 16:45 / 19:35</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<p>운행상황에 따라 시간오차가 있을 수 있음</p> <p>운행상황에 따라 시간오차가 있을 수 있음</p>
</div> </div>
]]> ]]>
</informContent> </informContent>
</result> </result>

View File

@ -1,78 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_PUT.xml --> <!-- uac.service.board.qna_PUT.xml -->
<result> <result>
<!-- 상세내용 --> <!-- 상세내용 -->
<informContent> <informContent>
<![CDATA[ <![CDATA[
<h2 id="tab0">정기휴관일</h2> <h2 id="tab0">정기휴관일</h2>
<ul class="bu"> <ul class="bu">
<li>어린이누리실, 책누리실 : 1월1일, 설날연휴, 추석연휴, 법정 공휴일, 매주 월요일</li> <li>어린이누리실, 책누리실 : 1월1일, 설날연휴, 추석연휴, 법정 공휴일, 매주 월요일</li>
<li>커뮤니티실 및 학습실 : 1월1일, 설날연휴, 추석연휴</li> <li>커뮤니티실 및 학습실 : 1월1일, 설날연휴, 추석연휴</li>
</ul> </ul>
<h2 id="tab1">이용시간</h2> <h2 id="tab1">이용시간</h2>
<table cellspacing="0" border="1" summary="이용시간" class="table_t1"> <table cellspacing="0" border="1" summary="이용시간" class="table_t1">
<caption> <caption>
이용시간 이용시간
</caption> </caption>
<colgroup> <colgroup>
<col width="30%" /> <col width="30%" />
<col /> <col />
<col /> <col />
<col /> <col />
<col /> <col />
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th scope="col">구분</th> <th scope="col">구분</th>
<th scope="col">월, 법정공휴일(평일,주말)</th> <th scope="col">월, 법정공휴일(평일,주말)</th>
<th scope="col">화요일~금요일</th> <th scope="col">화요일~금요일</th>
<th scope="col">토요일~일요일</th> <th scope="col">토요일~일요일</th>
<th scope="col">비고</th> <th scope="col">비고</th>
</tr> </tr>
</thead> </thead>
<tbody class="text_center"> <tbody class="text_center">
<tr> <tr>
<td>어린이누리실(1층)<br /> <td>어린이누리실(1층)<br />
책누리실(2층)<br/> 책누리실(2층)<br/>
(정보원문검색코너)</td> (정보원문검색코너)</td>
<td>휴실</td> <td>휴실</td>
<td>09:00 ~ 18:00</td> <td>09:00 ~ 18:00</td>
<td>09:00 ~ 18:00</td> <td>09:00 ~ 18:00</td>
<td> </td> <td> </td>
</tr> </tr>
<tr> <tr>
<td>커뮤니티실(3층)</td> <td>커뮤니티실(3층)</td>
<td>08:00 ~ 18:00</td> <td>08:00 ~ 18:00</td>
<td>08:00 ~ 22:00</td> <td>08:00 ~ 22:00</td>
<td>08:00 ~ 18:00</td> <td>08:00 ~ 18:00</td>
<td> </td> <td> </td>
</tr> </tr>
<tr> <tr>
<td>학습실(3층)</td> <td>학습실(3층)</td>
<td>08:00 ~ 18:00</td> <td>08:00 ~ 18:00</td>
<td>08:00 ~ 22:00</td> <td>08:00 ~ 22:00</td>
<td>08:00 ~ 22:00</td> <td>08:00 ~ 22:00</td>
<td> </td> <td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<li>※ 현재 코로나19와 관련하여 11.25. ~ 상황변동시까지 단축 운영중입니다.<br>※ 자세한 운영시간은 메인화면 [도서관 이용시간 안내]를 확인하시기 바랍니다.</li> <li>※ 현재 코로나19와 관련하여 11.25. ~ 상황변동시까지 단축 운영중입니다.<br>※ 자세한 운영시간은 메인화면 [도서관 이용시간 안내]를 확인하시기 바랍니다.</li>
<h2 id="tab2">도서대출/반납</h2> <h2 id="tab2">도서대출/반납</h2>
<ul class="bu"> <ul class="bu">
<li><strong>대출권수 :</strong> 1인 1회 10권</li> <li><strong>대출권수 :</strong> 1인 1회 10권</li>
<li><strong>대출기간 :</strong> 14일(7일 연장 가능-전화)</li> <li><strong>대출기간 :</strong> 14일(7일 연장 가능-전화)</li>
<li><strong></strong> 책이음 가입 도서관 전체 최대 20권, 스마트도서관 3권</li> <li><strong></strong> 책이음 가입 도서관 전체 최대 20권, 스마트도서관 3권</li>
<li><strong>도서연장 :</strong> 홈페이지 로그인 후 신청하거나 모바일 도서관인 리브로피아에서 1회(7일) 연장 가능</li> <li><strong>도서연장 :</strong> 홈페이지 로그인 후 신청하거나 모바일 도서관인 리브로피아에서 1회(7일) 연장 가능</li>
<li><strong>책이음 서비스운영 :</strong> 1개의 회원증으로 8개 도서관 (OO시립, 꿈나무정보, 어수정 작은도서관, 종합운동장 지혜의 등대, 소요초등학교 지혜의 등대, 사동초등학교 지혜의 집, 남산모루 작은도서관, 스마트도서관) 대출 가능<br/></li> <li><strong>책이음 서비스운영 :</strong> 1개의 회원증으로 8개 도서관 (OO시립, 꿈나무정보, 어수정 작은도서관, 종합운동장 지혜의 등대, 소요초등학교 지혜의 등대, 사동초등학교 지혜의 집, 남산모루 작은도서관, 스마트도서관) 대출 가능<br/></li>
<li><strong>대출정지 :</strong> 대출도서의 반납기한이 초과되었을 경우 연체된 일수 만큼 대출이 정지<br/> <li><strong>대출정지 :</strong> 대출도서의 반납기한이 초과되었을 경우 연체된 일수 만큼 대출이 정지<br/>
※ 연체될 경우 5개 도서관(시립,정보,어수정 작은도서관,종합운동장 지혜의 등대,남산모루 작은도서관) 모두 동일하게 연체일수 적용됨 </li> ※ 연체될 경우 5개 도서관(시립,정보,어수정 작은도서관,종합운동장 지혜의 등대,남산모루 작은도서관) 모두 동일하게 연체일수 적용됨 </li>
<li><strong>도서변상 :</strong> 대출도서의 분실 또는 훼손시에는 동일도서로 변상</li> <li><strong>도서변상 :</strong> 대출도서의 분실 또는 훼손시에는 동일도서로 변상</li>
<li>OO시 도서관 이용시 반드시 <em class="em_b_orange">본인 명의의 카드</em>를 지참하셔야 대출이 가능합니다.<br />(가족카드이용시에도 지참해야 함)</li> <li>OO시 도서관 이용시 반드시 <em class="em_b_orange">본인 명의의 카드</em>를 지참하셔야 대출이 가능합니다.<br />(가족카드이용시에도 지참해야 함)</li>
</ul> </ul>
]]> ]]>
</informContent> </informContent>
</result> </result>

View File

@ -1,133 +1,133 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_PUT.xml --> <!-- uac.service.board.qna_PUT.xml -->
<result> <result>
<!-- 상세내용 --> <!-- 상세내용 -->
<informContent> <informContent>
<![CDATA[ <![CDATA[
<p>OO시 도서관 홈페이지에서는 기본적인 회원 서비스 제공을 위한 필수정보와 정보주체 각각의 기호와 필요에 맞는 서비스를 제공하기 위한 선택정보로 구분하여 다음의 정보를 수집하고 있습니다. <p>OO시 도서관 홈페이지에서는 기본적인 회원 서비스 제공을 위한 필수정보와 정보주체 각각의 기호와 필요에 맞는 서비스를 제공하기 위한 선택정보로 구분하여 다음의 정보를 수집하고 있습니다.
선택정보를 입력하지 않은 경우에도 서비스 이용에는 제한이 없습니다.</p> 선택정보를 입력하지 않은 경우에도 서비스 이용에는 제한이 없습니다.</p>
<h4>1. 개인정보의 수집항목 및 수집방법</h4> <h4>1. 개인정보의 수집항목 및 수집방법</h4>
<h5>가. 수집하는 개인정보의 항목</h5> <h5>가. 수집하는 개인정보의 항목</h5>
<h6>컴퓨터에 의해 자동으로 수집되는 정보</h6> <h6>컴퓨터에 의해 자동으로 수집되는 정보</h6>
<p class="indent">홈페이지를 이용할 경우 다음의 정보는 로그인 기록을 통하여 자동적으로 수집ㆍ저장됩니다.</p> <p class="indent">홈페이지를 이용할 경우 다음의 정보는 로그인 기록을 통하여 자동적으로 수집ㆍ저장됩니다.</p>
<ul class="bu"> <ul class="bu">
<li>필수항목 : 사용자ID, 비밀번호, 이름</li> <li>필수항목 : 사용자ID, 비밀번호, 이름</li>
<li>선택항목 : 이메일, 주소, 전화번호, 휴대폰</li> <li>선택항목 : 이메일, 주소, 전화번호, 휴대폰</li>
</ul> </ul>
<table summary="개인정보의 수집하는 필수항목,선택항목,본인인증정보,가입정보를 제공" class="table_t1"> <table summary="개인정보의 수집하는 필수항목,선택항목,본인인증정보,가입정보를 제공" class="table_t1">
<caption>개인정보의 수집ㆍ이용목적 및 보유ㆍ이용기간</caption> <caption>개인정보의 수집ㆍ이용목적 및 보유ㆍ이용기간</caption>
<colgroup> <colgroup>
<col width="50%" /> <col width="50%" />
<col /> <col />
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th scope="col">필수항목</th> <th scope="col">필수항목</th>
<th scope="col">선택항목</th> <th scope="col">선택항목</th>
</tr> </tr>
</thead> </thead>
<tbody class="text_center"> <tbody class="text_center">
<tr> <tr>
<td>이름, 아이디, 비밀번호</td> <td>이름, 아이디, 비밀번호</td>
<td>이메일, 주소, 전화번호, 휴대폰</td> <td>이메일, 주소, 전화번호, 휴대폰</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h5>나. 개인정보 수집방법</h5> <h5>나. 개인정보 수집방법</h5>
<h6>홈페이지 회원가입을 통한 수집</h6> <h6>홈페이지 회원가입을 통한 수집</h6>
<h4>2. 개인정보의 수집ㆍ이용목적 및 보유ㆍ이용기간</h4> <h4>2. 개인정보의 수집ㆍ이용목적 및 보유ㆍ이용기간</h4>
<p>OO시 도서관 홈페이지에서는 정보주체의 회원 가입일로부터 서비스를 제공하는 기간 동안에 한하여 OO시 도서관 홈페이지 서비스를 이용하기 위한 최소한의 개인정보를 보유 및 이용 하게 됩니다. 회원가입 등을 통해 개인정보의 수집ㆍ이용, 제공 등에 대해 동의하신 내용은 언제든지 철회하실 수 있습니다. 회원 탈퇴를 요청하거나 수집/이용목적을 달성하거나 보유/ 이용기간이 종료한 경우, 사업 폐지 등의 사유발생시 당해 개인정보를 지체없이 파기합니다.</p> <p>OO시 도서관 홈페이지에서는 정보주체의 회원 가입일로부터 서비스를 제공하는 기간 동안에 한하여 OO시 도서관 홈페이지 서비스를 이용하기 위한 최소한의 개인정보를 보유 및 이용 하게 됩니다. 회원가입 등을 통해 개인정보의 수집ㆍ이용, 제공 등에 대해 동의하신 내용은 언제든지 철회하실 수 있습니다. 회원 탈퇴를 요청하거나 수집/이용목적을 달성하거나 보유/ 이용기간이 종료한 경우, 사업 폐지 등의 사유발생시 당해 개인정보를 지체없이 파기합니다.</p>
<table summary="수집하는 개인정보의 항목,개인정보의 수집ㆍ이용 목적,개인정보의 보유 및 이용기간을 제공" class="table_t1"> <table summary="수집하는 개인정보의 항목,개인정보의 수집ㆍ이용 목적,개인정보의 보유 및 이용기간을 제공" class="table_t1">
<caption>수집하는 개인정보의 항목</caption> <caption>수집하는 개인정보의 항목</caption>
<colgroup> <colgroup>
<col width="27%" /> <col width="27%" />
<col /> <col />
<col width="17%" /> <col width="17%" />
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th scope="col">수집하는 개인정보의 항목</th> <th scope="col">수집하는 개인정보의 항목</th>
<th scope="col">개인정보의 수집ㆍ이용 목적</th> <th scope="col">개인정보의 수집ㆍ이용 목적</th>
<th>개인정보의 보유 및 이용기간</th> <th>개인정보의 보유 및 이용기간</th>
</tr> </tr>
</thead> </thead>
<tbody class="text_center"> <tbody class="text_center">
<tr> <tr>
<td>이름</td> <td>이름</td>
<td>홈페이지 이용에 따른 본인 식별</td> <td>홈페이지 이용에 따른 본인 식별</td>
<!-- <td rowspan="3"><em class="em_b_blue">2년</em></td> --> <!-- <td rowspan="3"><em class="em_b_blue">2년</em></td> -->
<td rowspan="3"><em class="em_b_blue large">회원 탈퇴시까지</em></td> <td rowspan="3"><em class="em_b_blue large">회원 탈퇴시까지</em></td>
</tr> </tr>
<tr> <tr>
<td>아이디, 비밀번호, 가입인증정보 이름(가입자명), 생년월일, 연락처, 이메일주소</td> <td>아이디, 비밀번호, 가입인증정보 이름(가입자명), 생년월일, 연락처, 이메일주소</td>
<td>홈페이지 서비스 이용 및 회원관리, 불량회원의 부정 이용 방지, 비인가 사용방지, 민원 신청 및 처리, 고지사항 전달, 게시물 등록, 자료 다운로드, 시설물 예약 및 문화강좌 신청결과의 안내, 전자민원, 본인 의사 확인, 원활한 의사소통 경로의 확보, 정기간행물 발송, 도서대출, 공공행사 및 공공서비스 이용 안내, 설문 등의 목적으로 OO시 도서관 패밀리 사이트에서 공동 이용</td> <td>홈페이지 서비스 이용 및 회원관리, 불량회원의 부정 이용 방지, 비인가 사용방지, 민원 신청 및 처리, 고지사항 전달, 게시물 등록, 자료 다운로드, 시설물 예약 및 문화강좌 신청결과의 안내, 전자민원, 본인 의사 확인, 원활한 의사소통 경로의 확보, 정기간행물 발송, 도서대출, 공공행사 및 공공서비스 이용 안내, 설문 등의 목적으로 OO시 도서관 패밀리 사이트에서 공동 이용</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<p>정보주체는 개인정보의 수집ㆍ이용목적에 대한 동의를 거부할 수 있으며, 동의 거부시 OO시 도서관 홈페이지에 회원가입이 되지 않으며, OO시 도서관 홈페이지 홈페이지에서 제공하는 서비스를 이용할 수 없습니다.</p> <p>정보주체는 개인정보의 수집ㆍ이용목적에 대한 동의를 거부할 수 있으며, 동의 거부시 OO시 도서관 홈페이지에 회원가입이 되지 않으며, OO시 도서관 홈페이지 홈페이지에서 제공하는 서비스를 이용할 수 없습니다.</p>
<div class="title"><label for="agree_txt3">수집한 개인정보의 제 3자 제공 동의</label></div> <div class="title"><label for="agree_txt3">수집한 개인정보의 제 3자 제공 동의</label></div>
<p>OO시 도서관 홈페이지에서는 아래의 경우 제3자 제공을 하고 있으며, 개인정보의 취급 위탁은 하지 않습니다. 실명확인 및 공공 I-PIN 인증시에 제공하는 개인정보는 개인정보보호법 제22조 제2항에 따라 정보주체와의 계약체결 등을 위하여 정보주체의 동의 없이 처리할 수 있는 개인정보로 지정 합니다.</p> <p>OO시 도서관 홈페이지에서는 아래의 경우 제3자 제공을 하고 있으며, 개인정보의 취급 위탁은 하지 않습니다. 실명확인 및 공공 I-PIN 인증시에 제공하는 개인정보는 개인정보보호법 제22조 제2항에 따라 정보주체와의 계약체결 등을 위하여 정보주체의 동의 없이 처리할 수 있는 개인정보로 지정 합니다.</p>
<p>OO시 도서관 홈페이지 회원 서비스 제공을 위해 개인정보를 제공하는 기관 아래에 해당하는 개인정보는 회원가입시 실명인증 및 공공 I-PIN 인증시에만 제3자 제공을 하고 있으며 정보주체의 동의 없이는 제공되지 않습니다.</p> <p>OO시 도서관 홈페이지 회원 서비스 제공을 위해 개인정보를 제공하는 기관 아래에 해당하는 개인정보는 회원가입시 실명인증 및 공공 I-PIN 인증시에만 제3자 제공을 하고 있으며 정보주체의 동의 없이는 제공되지 않습니다.</p>
<table summary="개인정보 제3자 제공에 관한 안내로 제공받는 자,제공받는 자의 개인정보 이용 목적,제공하는 개인정보의 항목,제공받는 자의 개인정보 보유 및 이용 기간을 제공" class="table_t1"> <table summary="개인정보 제3자 제공에 관한 안내로 제공받는 자,제공받는 자의 개인정보 이용 목적,제공하는 개인정보의 항목,제공받는 자의 개인정보 보유 및 이용 기간을 제공" class="table_t1">
<caption>개인정보 제3자 제공</caption> <caption>개인정보 제3자 제공</caption>
<colgroup> <colgroup>
<col width="15%" /> <col width="15%" />
<col width="20%" /> <col width="20%" />
<col width="25%" /> <col width="25%" />
<col /> <col />
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th scope="col">제공받는 자</th> <th scope="col">제공받는 자</th>
<th scope="col">제공받는 자의 개인정보 이용 목적</th> <th scope="col">제공받는 자의 개인정보 이용 목적</th>
<th scope="col">제공하는 개인정보의 항목</th> <th scope="col">제공하는 개인정보의 항목</th>
<th scope="col">제공받는 자의 개인정보 보유 및 이용 기간</th> <th scope="col">제공받는 자의 개인정보 보유 및 이용 기간</th>
</tr> </tr>
</thead> </thead>
<tbody class="text_center"> <tbody class="text_center">
<tr> <tr>
<td class="em_b_blue large">행정안전부</td> <td class="em_b_blue large">행정안전부</td>
<td class="em_b_blue large">공공 I-PIN 인증</td> <td class="em_b_blue large">공공 I-PIN 인증</td>
<td>I-PIN(개인식별번호), 법정대리인(I-PIN(개인식별번호))</td> <td>I-PIN(개인식별번호), 법정대리인(I-PIN(개인식별번호))</td>
<td class="em_b_blue large">행정안전부에서는 이미 보유하고 있는 개인정보이기 때문에 별도로 저장하지 않음</td> <td class="em_b_blue large">행정안전부에서는 이미 보유하고 있는 개인정보이기 때문에 별도로 저장하지 않음</td>
</tr> </tr>
<tr> <tr>
<td class="em_b_blue large">한국모바일인증(주)</td> <td class="em_b_blue large">한국모바일인증(주)</td>
<td class="em_b_blue large">실명인증</td> <td class="em_b_blue large">실명인증</td>
<td>성명, 휴대폰번호, 생년월일, 성별</td> <td>성명, 휴대폰번호, 생년월일, 성별</td>
<td class="em_b_blue large">신용평가 기관에서 이미 보유하고 있는 개인정보이기 때문에 별도로 저장하지 않음</td> <td class="em_b_blue large">신용평가 기관에서 이미 보유하고 있는 개인정보이기 때문에 별도로 저장하지 않음</td>
</tr> </tr>
<tr> <tr>
<td class="em_b_blue large">LG U+</td> <td class="em_b_blue large">LG U+</td>
<td class="em_b_blue large">전자결제</td> <td class="em_b_blue large">전자결제</td>
<td>성명, 이메일</td> <td>성명, 이메일</td>
<td class="em_b_blue large">전자결제 서비스 계약해지시</td> <td class="em_b_blue large">전자결제 서비스 계약해지시</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<p>단, 다음에 해당하는 경우에는 예외로 제공 할 수 있습니다. [관련근거: 개인정보보호법 제18조 제2항]</p> <p>단, 다음에 해당하는 경우에는 예외로 제공 할 수 있습니다. [관련근거: 개인정보보호법 제18조 제2항]</p>
<ul class="indent"> <ul class="indent">
<li>1. 정보주체로부터 별도의 동의를 받은 경우</li> <li>1. 정보주체로부터 별도의 동의를 받은 경우</li>
<li>2. 다른 법률에 특별한 규정이 있는 경우</li> <li>2. 다른 법률에 특별한 규정이 있는 경우</li>
<li>3. 정보주체 또는 그 법정대리인이 의사표시를 할 수 없는 상태에 있거나 주소불명 등으로 사전 동의를 받을 수 없는 경우로서 명백히 정보주체 또는 제3자의 급박한 생명, 신체, 재산의 이익을 위하여 필요하다고 인정되는 경우</li> <li>3. 정보주체 또는 그 법정대리인이 의사표시를 할 수 없는 상태에 있거나 주소불명 등으로 사전 동의를 받을 수 없는 경우로서 명백히 정보주체 또는 제3자의 급박한 생명, 신체, 재산의 이익을 위하여 필요하다고 인정되는 경우</li>
<li>4. 통계작성 및 학술연구 등의 목적을 위하여 필요한 경우로서 특정 개인을 알아볼 수 없는 형태로 개인정보를 제공하는 경우</li> <li>4. 통계작성 및 학술연구 등의 목적을 위하여 필요한 경우로서 특정 개인을 알아볼 수 없는 형태로 개인정보를 제공하는 경우</li>
<li>5. 개인정보를 목적 외의 용도로 이용하거나 이를 제3자에게 제공하지 아니하면 다른 법률에서 정하는 소관업무를 수행할 수 없는 경우로서 보호위원회의 심의ㆍ의결을 거친 경우</li> <li>5. 개인정보를 목적 외의 용도로 이용하거나 이를 제3자에게 제공하지 아니하면 다른 법률에서 정하는 소관업무를 수행할 수 없는 경우로서 보호위원회의 심의ㆍ의결을 거친 경우</li>
<li>6. 조약, 그 밖의 국제협정의 이행을 위하여 외국정부 또는 국제기구에 제공하기 위하여 필요한 경우</li> <li>6. 조약, 그 밖의 국제협정의 이행을 위하여 외국정부 또는 국제기구에 제공하기 위하여 필요한 경우</li>
<li>7. 범죄의 수사와 공소의 제기 및 유지를 위하여 필요한 경우</li> <li>7. 범죄의 수사와 공소의 제기 및 유지를 위하여 필요한 경우</li>
<li>8. 법원의 재판업무 수행을 위하여 필요한 경우</li> <li>8. 법원의 재판업무 수행을 위하여 필요한 경우</li>
<li>9. 형(刑) 및 감호, 보호처분의 집행을 위하여 필요한 경우</li> <li>9. 형(刑) 및 감호, 보호처분의 집행을 위하여 필요한 경우</li>
</ul> </ul>
<p>정보주체는 개인정보의 제3자 제공에 대한 동의를 거부할 수 있으며, 동의 거부시 OO시 도서관 홈페이지에 회원가입이 되지 않으며, OO시 도서관 홈페이지에서 제공하는 서비스를 이용할 수 없습니다.</p> <p>정보주체는 개인정보의 제3자 제공에 대한 동의를 거부할 수 있으며, 동의 거부시 OO시 도서관 홈페이지에 회원가입이 되지 않으며, OO시 도서관 홈페이지에서 제공하는 서비스를 이용할 수 없습니다.</p>
</div> </div>
]]> ]]>
</informContent> </informContent>
</result> </result>

View File

@ -1,114 +1,114 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.board.qna_PUT.xml --> <!-- uac.service.board.qna_PUT.xml -->
<result> <result>
<!-- 상세내용 --> <!-- 상세내용 -->
<informContent> <informContent>
<![CDATA[ <![CDATA[
<h4>제 1 장 총칙</h4> <h4>제 1 장 총칙</h4>
<h5>제 1 조 (목적)</h5> <h5>제 1 조 (목적)</h5>
<p class="indent">본 약관은 OO시 도서관 홈페이지가 제공하는 모든 서비스(이하 "서비스")의 이용조건 및 절차, 이용자와 OO시 도서관 홈페이지의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을 목적으로 합니다.</p> <p class="indent">본 약관은 OO시 도서관 홈페이지가 제공하는 모든 서비스(이하 "서비스")의 이용조건 및 절차, 이용자와 OO시 도서관 홈페이지의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을 목적으로 합니다.</p>
<h5>제 2 조 (약관의 효력과 변경)</h5> <h5>제 2 조 (약관의 효력과 변경)</h5>
<ul class="indent"> <ul class="indent">
<li>1. OO시 도서관 홈페이지는 귀하가 본 약관 내용에 동의하는 경우, OO시 도서관 홈페이지의 서비스 제공 행위 및 귀하의 서비스 사용 행위에 본 약관이 우선적으로 적용됩니다.</li> <li>1. OO시 도서관 홈페이지는 귀하가 본 약관 내용에 동의하는 경우, OO시 도서관 홈페이지의 서비스 제공 행위 및 귀하의 서비스 사용 행위에 본 약관이 우선적으로 적용됩니다.</li>
<li>2. OO시 도서관 홈페이지는 본 약관을 사전 고지 없이 변경할 수 있고, 변경된 약관은 OO시 도서관 홈페이지 내에 공지하거나 e-mail을 통해 회원에게 공지하며, 공지와 동시에 그 효력이 발생됩니다. 이용자가 변경된 약관에 동의하지 않는 경우, 이용자는 본인의 회원등록을 취소(회원탈퇴)할 수 있으며 계속 사용의 경우는 약관 변경에 대한 동의로 간주됩니다.</li> <li>2. OO시 도서관 홈페이지는 본 약관을 사전 고지 없이 변경할 수 있고, 변경된 약관은 OO시 도서관 홈페이지 내에 공지하거나 e-mail을 통해 회원에게 공지하며, 공지와 동시에 그 효력이 발생됩니다. 이용자가 변경된 약관에 동의하지 않는 경우, 이용자는 본인의 회원등록을 취소(회원탈퇴)할 수 있으며 계속 사용의 경우는 약관 변경에 대한 동의로 간주됩니다.</li>
</ul> </ul>
<h5>제 3 조 (약관 외 준칙)</h5> <h5>제 3 조 (약관 외 준칙)</h5>
<ul class="indent"> <ul class="indent">
<li>1. 본 약관에 명시되지 않은 사항은 전기통신기본법, 전기통신사업법, 정보통신윤리위원회 심의규정, 정보통신 윤리강령, 프로그램보호법 및 기타 관련 법령의 규정에 의합니다.</li> <li>1. 본 약관에 명시되지 않은 사항은 전기통신기본법, 전기통신사업법, 정보통신윤리위원회 심의규정, 정보통신 윤리강령, 프로그램보호법 및 기타 관련 법령의 규정에 의합니다.</li>
</ul> </ul>
<h5>제 4 조 (용어의 정의)</h5> <h5>제 4 조 (용어의 정의)</h5>
<p class="indent">본 약관에서 사용하는 용어의 정의는 다음과 같습니다.</p> <p class="indent">본 약관에서 사용하는 용어의 정의는 다음과 같습니다.</p>
<ul class="indent"> <ul class="indent">
<li>1. 이용자 : 본 약관에 따라 OO시 도서관 홈페이지가 제공하는 서비스를 받는 자.</li> <li>1. 이용자 : 본 약관에 따라 OO시 도서관 홈페이지가 제공하는 서비스를 받는 자.</li>
<li>2. 가입 : OO시 도서관 홈페이지가 제공하는 신청서 양식에 해당 정보를 기입하고, 본 약관에 동의하여 서비스 이용계약을 완료시키는 행위.</li> <li>2. 가입 : OO시 도서관 홈페이지가 제공하는 신청서 양식에 해당 정보를 기입하고, 본 약관에 동의하여 서비스 이용계약을 완료시키는 행위.</li>
<li>3. 회원 : OO시 도서관 홈페이지에 개인 정보를 제공하여 회원 등록을 한 자로서 OO시 도서관 홈페이지가 제공하는 서비스를 이용할 수 있는 자.</li> <li>3. 회원 : OO시 도서관 홈페이지에 개인 정보를 제공하여 회원 등록을 한 자로서 OO시 도서관 홈페이지가 제공하는 서비스를 이용할 수 있는 자.</li>
<li>4. 비밀번호 : 이용자와 회원ID가 일치하는지를 확인하고 통신상의 자신의 비밀보호를 위하여 이용자 자신이 선정한 문자와 숫자의 조합.</li> <li>4. 비밀번호 : 이용자와 회원ID가 일치하는지를 확인하고 통신상의 자신의 비밀보호를 위하여 이용자 자신이 선정한 문자와 숫자의 조합.</li>
<li>5. 탈퇴 : 회원이 이용계약을 종료시키는 행위.</li> <li>5. 탈퇴 : 회원이 이용계약을 종료시키는 행위.</li>
</ul> </ul>
<h4>제 2 장 서비스 제공 및 이용</h4> <h4>제 2 장 서비스 제공 및 이용</h4>
<h5>제 5 조 (이용계약의 성립)</h5> <h5>제 5 조 (이용계약의 성립)</h5>
<ul class="indent"> <ul class="indent">
<li>1. 이용계약은 신청자가 온라인으로 OO시 도서관 홈페이지에서 제공하는 소정의 가입신청 양식에서 요구하는 사항을 기록하여 가입을 완료하는 것으로 성립됩니다.</li> <li>1. 이용계약은 신청자가 온라인으로 OO시 도서관 홈페이지에서 제공하는 소정의 가입신청 양식에서 요구하는 사항을 기록하여 가입을 완료하는 것으로 성립됩니다.</li>
<li>2. OO시 도서관 홈페이지는 다음 각 호에 해당하는 이용계약에 대하여는 가입을 취소할 수 있습니다. <li>2. OO시 도서관 홈페이지는 다음 각 호에 해당하는 이용계약에 대하여는 가입을 취소할 수 있습니다.
<ul class="indent"> <ul class="indent">
<li>1) 다른 사람의 명의를 사용하여 신청하였을 때</li> <li>1) 다른 사람의 명의를 사용하여 신청하였을 때</li>
<li>2) 이용계약 신청서의 내용을 허위로 기재하였거나 신청하였을 때</li> <li>2) 이용계약 신청서의 내용을 허위로 기재하였거나 신청하였을 때</li>
<li>3) 다른 사람의 OO시 도서관 홈페이지 서비스 이용을 방해하거나 그 정보를 도용하는 등의 행위를 하였을 때</li> <li>3) 다른 사람의 OO시 도서관 홈페이지 서비스 이용을 방해하거나 그 정보를 도용하는 등의 행위를 하였을 때</li>
<li>4) OO시 도서관 홈페이지를 이용하여 법령과 본 약관이 금지하는 행위를 하는 경우</li> <li>4) OO시 도서관 홈페이지를 이용하여 법령과 본 약관이 금지하는 행위를 하는 경우</li>
<li>5) 기타 OO시 도서관 홈페이지가 정한 이용신청요건이 미비 되었을 때</li> <li>5) 기타 OO시 도서관 홈페이지가 정한 이용신청요건이 미비 되었을 때</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h5>제 6 조 (회원정보 사용에 대한 동의)</h5> <h5>제 6 조 (회원정보 사용에 대한 동의)</h5>
<ul class="indent"> <ul class="indent">
<li>1. 회원의 개인정보는 개인정보보호법에 의해 보호됩니다.</li> <li>1. 회원의 개인정보는 개인정보보호법에 의해 보호됩니다.</li>
<li>2. OO시 도서관 홈페이지의 회원 정보는 다음과 같이 사용, 관리, 보호됩니다. <li>2. OO시 도서관 홈페이지의 회원 정보는 다음과 같이 사용, 관리, 보호됩니다.
<ul class="indent"> <ul class="indent">
<li>1) 개인정보의 사용 : OO시 도서관 홈페이지는 서비스 제공과 관련해서 수집된 회원의 신상 정보를 본인의 승낙 없이 제3자에게 누설, 배포하지 않습니다.<br /> <li>1) 개인정보의 사용 : OO시 도서관 홈페이지는 서비스 제공과 관련해서 수집된 회원의 신상 정보를 본인의 승낙 없이 제3자에게 누설, 배포하지 않습니다.<br />
단, 개인정보보호법 등 법률의 규정에 의해 국가기관의 요구가 있는 경우, 범죄에 대한 수사 상의 목적이 있거나 정보통신윤리 위원회의 요청이 있는 경우 또는 기타 관계법령에서 정한 절차에 따른 요청이 있는 경우, 귀하가 OO시 도서관 홈페이지에 제공한 개인정보를 스스로 공개한 경우에는 그러하지 않습니다.</li> 단, 개인정보보호법 등 법률의 규정에 의해 국가기관의 요구가 있는 경우, 범죄에 대한 수사 상의 목적이 있거나 정보통신윤리 위원회의 요청이 있는 경우 또는 기타 관계법령에서 정한 절차에 따른 요청이 있는 경우, 귀하가 OO시 도서관 홈페이지에 제공한 개인정보를 스스로 공개한 경우에는 그러하지 않습니다.</li>
<li>2) 개인정보의 관리 : 귀하는 개인정보의 보호 및 관리를 위하여 서비스의 개인정보관리에서 수시로 귀하의 개인정보를 수정/삭제할 수 있습니다.<br /> <li>2) 개인정보의 관리 : 귀하는 개인정보의 보호 및 관리를 위하여 서비스의 개인정보관리에서 수시로 귀하의 개인정보를 수정/삭제할 수 있습니다.<br />
단, 자료대출회원가입과 홈페이지 회원가입 조건을 동시에 충족한 정회원인 경우, 홈페이지 관리자에게 수정 및 탈퇴를 요청하시면 처리해드립니다.</li> 단, 자료대출회원가입과 홈페이지 회원가입 조건을 동시에 충족한 정회원인 경우, 홈페이지 관리자에게 수정 및 탈퇴를 요청하시면 처리해드립니다.</li>
<li>3) 개인정보의 보호 : 귀하의 개인정보는 오직 귀하만이 열람/수정/삭제 할 수 있으며, 이는 전적으로 귀하의 ID와 비밀번호에 의해 관리되고 있습니다. 따라서 타인에게 본인의 ID와 비밀번호를 알려주어서는 안되며, 작업 종료시에는 반드시 로그아웃 해주시기 바랍니다.</li> <li>3) 개인정보의 보호 : 귀하의 개인정보는 오직 귀하만이 열람/수정/삭제 할 수 있으며, 이는 전적으로 귀하의 ID와 비밀번호에 의해 관리되고 있습니다. 따라서 타인에게 본인의 ID와 비밀번호를 알려주어서는 안되며, 작업 종료시에는 반드시 로그아웃 해주시기 바랍니다.</li>
</ul> </ul>
</li> </li>
<li>3. 회원이 본 약관에 따라 이용신청을 하는 것은, OO시 도서관 사이트가 신청서에 기재된 회원 정보를 수집, 이용하는 것에 동의하는 것으로 간주됩니다.</li> <li>3. 회원이 본 약관에 따라 이용신청을 하는 것은, OO시 도서관 사이트가 신청서에 기재된 회원 정보를 수집, 이용하는 것에 동의하는 것으로 간주됩니다.</li>
</ul> </ul>
<h5>제 7 조 (사용자의 정보 보안)</h5> <h5>제 7 조 (사용자의 정보 보안)</h5>
<ul class="indent"> <ul class="indent">
<li>1. 가입 신청자가 OO시 도서관 홈페이지 서비스 가입 절차를 완료하는 순간부터 귀하는 입력한 정보의 비밀을 유지할 책임이 있으며, 회원의 ID와 비밀번호를 사용하여 발생하는 모든 결과에 대한 책임은 회원 본인에게 있습니다.</li> <li>1. 가입 신청자가 OO시 도서관 홈페이지 서비스 가입 절차를 완료하는 순간부터 귀하는 입력한 정보의 비밀을 유지할 책임이 있으며, 회원의 ID와 비밀번호를 사용하여 발생하는 모든 결과에 대한 책임은 회원 본인에게 있습니다.</li>
<li>2. ID와 비밀번호에 관한 모든 관리의 책임은 회원에게 있으며, 회원의 ID나 비밀번호가 부정하게 사용되었다는 사실을 발견한 경우에는 즉시 OO시 도서관 홈페이지에 신고하여야 합니다. 신고를 하지 않음으로 인한 모든 책임은 회원 본인에게 있습니다.</li> <li>2. ID와 비밀번호에 관한 모든 관리의 책임은 회원에게 있으며, 회원의 ID나 비밀번호가 부정하게 사용되었다는 사실을 발견한 경우에는 즉시 OO시 도서관 홈페이지에 신고하여야 합니다. 신고를 하지 않음으로 인한 모든 책임은 회원 본인에게 있습니다.</li>
<li>3. 이용자는 OO시 도서관 홈페이지 서비스의 사용 종료시 마다 정확히 접속을 종료해야 하며, 정확히 종료하지 아니함으로써 제3자가 귀하에 관한 정보를 이용하게 되는 등의 결과로 인해 발생하는 손해 및 손실에 대하여 OO시 도서관 홈페이지는 책임을 부담하지 아니합니다.</li> <li>3. 이용자는 OO시 도서관 홈페이지 서비스의 사용 종료시 마다 정확히 접속을 종료해야 하며, 정확히 종료하지 아니함으로써 제3자가 귀하에 관한 정보를 이용하게 되는 등의 결과로 인해 발생하는 손해 및 손실에 대하여 OO시 도서관 홈페이지는 책임을 부담하지 아니합니다.</li>
</ul> </ul>
<h5>제 8 조 (서비스의 중지)</h5> <h5>제 8 조 (서비스의 중지)</h5>
<ul class="indent"> <ul class="indent">
<li>1. OO시 도서관 홈페이지는 이용자가 본 약관의 내용에 위배되는 행동을 한 경우, 임의로 서비스 사용을 제한 및 중지할 수 있습니다.</li> <li>1. OO시 도서관 홈페이지는 이용자가 본 약관의 내용에 위배되는 행동을 한 경우, 임의로 서비스 사용을 제한 및 중지할 수 있습니다.</li>
</ul> </ul>
<h5>제 9 조 (서비스의 변경 및 해지)</h5> <h5>제 9 조 (서비스의 변경 및 해지)</h5>
<ul class="indent"> <ul class="indent">
<li>1. OO시 도서관 홈페이지는 귀하가 서비스를 이용하여 기대하는 손익이나 서비스를 통하여 얻은 자료로 인한 손해에 관하여 책임을 지지 않으며, 회원이 본 서비스에 게재한 정보, 자료, 사실의 신뢰도, 정확성 등 내용에 관하여는 책임을 지지 않습니다.</li> <li>1. OO시 도서관 홈페이지는 귀하가 서비스를 이용하여 기대하는 손익이나 서비스를 통하여 얻은 자료로 인한 손해에 관하여 책임을 지지 않으며, 회원이 본 서비스에 게재한 정보, 자료, 사실의 신뢰도, 정확성 등 내용에 관하여는 책임을 지지 않습니다.</li>
<li>2. OO시 도서관 홈페이지는 서비스 이용과 관련하여 가입자에게 발생한 손해 중 가입자의 고의, 과실에 의한 손해에 대하여 책임을 부담하지 아니합니다.</li> <li>2. OO시 도서관 홈페이지는 서비스 이용과 관련하여 가입자에게 발생한 손해 중 가입자의 고의, 과실에 의한 손해에 대하여 책임을 부담하지 아니합니다.</li>
</ul> </ul>
<h5>제 10 조 (게시물의 저작권)</h5> <h5>제 10 조 (게시물의 저작권)</h5>
<ul class="indent"> <ul class="indent">
<li>1. 귀하가 게시한 게시물의 내용에 대한 권리는 귀하에게 있습니다.</li> <li>1. 귀하가 게시한 게시물의 내용에 대한 권리는 귀하에게 있습니다.</li>
<li>2. OO시 도서관 홈페이지는 게시된 내용을 사전 통지 없이 편집, 이동할 수 있는 권리를 보유하며, 게시판운영원칙에 따라 사전 통지 없이 삭제할 수 있습니다.</li> <li>2. OO시 도서관 홈페이지는 게시된 내용을 사전 통지 없이 편집, 이동할 수 있는 권리를 보유하며, 게시판운영원칙에 따라 사전 통지 없이 삭제할 수 있습니다.</li>
<li>3. 귀하의 게시물이 타인의 저작권을 침해함으로써 발생하는 민, 형사상의 책임은 전적으로 귀하가 부담하여야 합니다.</li> <li>3. 귀하의 게시물이 타인의 저작권을 침해함으로써 발생하는 민, 형사상의 책임은 전적으로 귀하가 부담하여야 합니다.</li>
</ul> </ul>
<h4>제 3 장 의무 및 책임</h4> <h4>제 3 장 의무 및 책임</h4>
<h5>제 11 조 (OO시 도서관 홈페이지의 의무)</h5> <h5>제 11 조 (OO시 도서관 홈페이지의 의무)</h5>
<ul class="indent"> <ul class="indent">
<li>1. OO시 도서관 홈페이지는 회원의 개인 신상 정보를 본인의 승낙없이 타인에게 누설, 배포하지 않습니다. 다만, 전기통신관련법령 등 관계법령에 의하여 관계 국가기관 등의 요구가 있는 경우에는 그러하지 아니합니다.</li> <li>1. OO시 도서관 홈페이지는 회원의 개인 신상 정보를 본인의 승낙없이 타인에게 누설, 배포하지 않습니다. 다만, 전기통신관련법령 등 관계법령에 의하여 관계 국가기관 등의 요구가 있는 경우에는 그러하지 아니합니다.</li>
</ul> </ul>
<h5>제 12 조 (회원의 의무)</h5> <h5>제 12 조 (회원의 의무)</h5>
<ul class="indent"> <ul class="indent">
<li>1. 회원 가입시에 요구되는 정보는 정확하게 기입하여야 합니다. 또한 이미 제공된 귀하에 대한 정보가 정확한 정보가 되도록 유지, 갱신하여야 하며, 회원은 자신의 ID 및 비밀번호를 제3자에게 이용하게 해서는 안됩니다.</li> <li>1. 회원 가입시에 요구되는 정보는 정확하게 기입하여야 합니다. 또한 이미 제공된 귀하에 대한 정보가 정확한 정보가 되도록 유지, 갱신하여야 하며, 회원은 자신의 ID 및 비밀번호를 제3자에게 이용하게 해서는 안됩니다.</li>
<li>2. 회원은 OO시 도서관 홈페이지의 사전 승낙 없이 서비스를 이용하여 어떠한 영리행위도 할 수 없습니다.</li> <li>2. 회원은 OO시 도서관 홈페이지의 사전 승낙 없이 서비스를 이용하여 어떠한 영리행위도 할 수 없습니다.</li>
</ul> </ul>
<h4>제 4 장 기타</h4> <h4>제 4 장 기타</h4>
<h5>제 13 조 (양도금지)</h5> <h5>제 13 조 (양도금지)</h5>
<ul class="indent"> <ul class="indent">
<li>1. 회원이 서비스의 이용권한, 기타 이용계약 상 지위를 타인에게 양도, 증여할 수 없습니다.</li> <li>1. 회원이 서비스의 이용권한, 기타 이용계약 상 지위를 타인에게 양도, 증여할 수 없습니다.</li>
</ul> </ul>
<h5>제 14 조 (손해배상)</h5> <h5>제 14 조 (손해배상)</h5>
<ul class="indent"> <ul class="indent">
<li>1. OO시 도서관 홈페이지는 무료로 제공되는 서비스와 관련하여 회원에게 어떠한 손해가 발생하더라도 OO시 도서관 홈페이지가 고의로 행한 범죄행위를 제외하고 이에 대하여 책임을 부담하지 아니합니다.</li> <li>1. OO시 도서관 홈페이지는 무료로 제공되는 서비스와 관련하여 회원에게 어떠한 손해가 발생하더라도 OO시 도서관 홈페이지가 고의로 행한 범죄행위를 제외하고 이에 대하여 책임을 부담하지 아니합니다.</li>
</ul> </ul>
<h5>제 15 조 (면책조항)</h5> <h5>제 15 조 (면책조항)</h5>
<ul class="indent"> <ul class="indent">
<li>1. OO시 도서관 홈페이지는 회원이나 제3자에 의해 표출된 의견을 승인하거나 반대하거나 수정하지 않습니다. OO시 도서관 홈페이지는 어떠한 경우라도 회원이 서비스에 담긴 정보에 의존해 얻은 이득이나 입은 손해에 대해 책임이 없습니다.</li> <li>1. OO시 도서관 홈페이지는 회원이나 제3자에 의해 표출된 의견을 승인하거나 반대하거나 수정하지 않습니다. OO시 도서관 홈페이지는 어떠한 경우라도 회원이 서비스에 담긴 정보에 의존해 얻은 이득이나 입은 손해에 대해 책임이 없습니다.</li>
<li>2. OO시 도서관 홈페이지는 회원간 또는 회원과 제3자간에 서비스를 매개로 하여 물품거래 혹은 금전적 거래 등과 관련하여 어떠한 책임도 부담하지 아니하고, 회원이 서비스의 이용과 관련하여 기대하는 이익에 관하여 책임을 부담하지 않습니다.</li> <li>2. OO시 도서관 홈페이지는 회원간 또는 회원과 제3자간에 서비스를 매개로 하여 물품거래 혹은 금전적 거래 등과 관련하여 어떠한 책임도 부담하지 아니하고, 회원이 서비스의 이용과 관련하여 기대하는 이익에 관하여 책임을 부담하지 않습니다.</li>
</ul> </ul>
<h5>제 16 조 (재판관할)</h5> <h5>제 16 조 (재판관할)</h5>
<ul class="indent"> <ul class="indent">
<li>1. OO시 도서관 홈페이지와 이용자간에 발생한 서비스 이용에 관한 분쟁에 대하여는 대한민국 법을 적용하며, 본 분쟁으로 인한 소는 대한민국의 법원에 제기합니다.</li> <li>1. OO시 도서관 홈페이지와 이용자간에 발생한 서비스 이용에 관한 분쟁에 대하여는 대한민국 법을 적용하며, 본 분쟁으로 인한 소는 대한민국의 법원에 제기합니다.</li>
</ul> </ul>
]]> ]]>
</informContent> </informContent>
</result> </result>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- uac.service.exports.xml --> <!-- uac.service.exports.xml -->
<result> <result>
<userId>admin@digitalship.coom</userId> <userId>admin@digitalship.coom</userId>
<userName>홍길동</userName> <userName>홍길동</userName>
<password>XohImNooBHFR0OVvjcYpJ3NgPQ1qq73WKhHvch0VQtg=</password> <password>XohImNooBHFR0OVvjcYpJ3NgPQ1qq73WKhHvch0VQtg=</password>
<uniqId>100000001</uniqId> <uniqId>100000001</uniqId>
<authorities>ROLE_USER,ROLE_ADMIN</authorities> <authorities>ROLE_USER,ROLE_ADMIN</authorities>
</result> </result>

View File

@ -1,265 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<net.java.amateras.uml.model.RootModel> <net.java.amateras.uml.model.RootModel>
<backgroundColor> <backgroundColor>
<red>255</red> <red>255</red>
<green>255</green> <green>255</green>
<blue>206</blue> <blue>206</blue>
</backgroundColor> </backgroundColor>
<foregroundColor> <foregroundColor>
<red>0</red> <red>0</red>
<green>0</green> <green>0</green>
<blue>0</blue> <blue>0</blue>
</foregroundColor> </foregroundColor>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/> <source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<sourceConnections/> <sourceConnections/>
<targetConnections/> <targetConnections/>
<children> <children>
<net.java.amateras.uml.classdiagram.model.ClassModel> <net.java.amateras.uml.classdiagram.model.ClassModel>
<backgroundColor reference="../../../backgroundColor"/> <backgroundColor reference="../../../backgroundColor"/>
<foregroundColor reference="../../../foregroundColor"/> <foregroundColor reference="../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>142</x> <x>142</x>
<y>106</y> <y>106</y>
</constraint> </constraint>
<sourceConnections/> <sourceConnections/>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>144</x> <x>144</x>
<y>221</y> <y>221</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>384</x> <x>384</x>
<y>213</y> <y>213</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections/> <targetConnections/>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class17</name> <name>Class17</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class16</name> <name>Class16</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class15</name> <name>Class15</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</net.java.amateras.uml.classdiagram.model.ClassModel> </net.java.amateras.uml.classdiagram.model.ClassModel>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
</children> </children>
<filterProperty/> <filterProperty/>
</net.java.amateras.uml.model.RootModel> </net.java.amateras.uml.model.RootModel>

View File

@ -1,265 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<net.java.amateras.uml.model.RootModel> <net.java.amateras.uml.model.RootModel>
<backgroundColor> <backgroundColor>
<red>255</red> <red>255</red>
<green>255</green> <green>255</green>
<blue>206</blue> <blue>206</blue>
</backgroundColor> </backgroundColor>
<foregroundColor> <foregroundColor>
<red>0</red> <red>0</red>
<green>0</green> <green>0</green>
<blue>0</blue> <blue>0</blue>
</foregroundColor> </foregroundColor>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/> <source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<sourceConnections/> <sourceConnections/>
<targetConnections/> <targetConnections/>
<children> <children>
<net.java.amateras.uml.classdiagram.model.ClassModel> <net.java.amateras.uml.classdiagram.model.ClassModel>
<backgroundColor reference="../../../backgroundColor"/> <backgroundColor reference="../../../backgroundColor"/>
<foregroundColor reference="../../../foregroundColor"/> <foregroundColor reference="../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>142</x> <x>142</x>
<y>106</y> <y>106</y>
</constraint> </constraint>
<sourceConnections/> <sourceConnections/>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>144</x> <x>144</x>
<y>221</y> <y>221</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>384</x> <x>384</x>
<y>213</y> <y>213</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections/> <targetConnections/>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class17</name> <name>Class17</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class16</name> <name>Class16</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class15</name> <name>Class15</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</net.java.amateras.uml.classdiagram.model.ClassModel> </net.java.amateras.uml.classdiagram.model.ClassModel>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
</children> </children>
<filterProperty/> <filterProperty/>
</net.java.amateras.uml.model.RootModel> </net.java.amateras.uml.model.RootModel>

View File

@ -1,265 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<net.java.amateras.uml.model.RootModel> <net.java.amateras.uml.model.RootModel>
<backgroundColor> <backgroundColor>
<red>255</red> <red>255</red>
<green>255</green> <green>255</green>
<blue>206</blue> <blue>206</blue>
</backgroundColor> </backgroundColor>
<foregroundColor> <foregroundColor>
<red>0</red> <red>0</red>
<green>0</green> <green>0</green>
<blue>0</blue> <blue>0</blue>
</foregroundColor> </foregroundColor>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/> <source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<sourceConnections/> <sourceConnections/>
<targetConnections/> <targetConnections/>
<children> <children>
<net.java.amateras.uml.classdiagram.model.ClassModel> <net.java.amateras.uml.classdiagram.model.ClassModel>
<backgroundColor reference="../../../backgroundColor"/> <backgroundColor reference="../../../backgroundColor"/>
<foregroundColor reference="../../../foregroundColor"/> <foregroundColor reference="../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>142</x> <x>142</x>
<y>106</y> <y>106</y>
</constraint> </constraint>
<sourceConnections/> <sourceConnections/>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>144</x> <x>144</x>
<y>221</y> <y>221</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>384</x> <x>384</x>
<y>213</y> <y>213</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections/> <targetConnections/>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class17</name> <name>Class17</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class16</name> <name>Class16</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class15</name> <name>Class15</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</net.java.amateras.uml.classdiagram.model.ClassModel> </net.java.amateras.uml.classdiagram.model.ClassModel>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
</children> </children>
<filterProperty/> <filterProperty/>
</net.java.amateras.uml.model.RootModel> </net.java.amateras.uml.model.RootModel>

View File

@ -1,265 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<net.java.amateras.uml.model.RootModel> <net.java.amateras.uml.model.RootModel>
<backgroundColor> <backgroundColor>
<red>255</red> <red>255</red>
<green>255</green> <green>255</green>
<blue>206</blue> <blue>206</blue>
</backgroundColor> </backgroundColor>
<foregroundColor> <foregroundColor>
<red>0</red> <red>0</red>
<green>0</green> <green>0</green>
<blue>0</blue> <blue>0</blue>
</foregroundColor> </foregroundColor>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/> <source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<sourceConnections/> <sourceConnections/>
<targetConnections/> <targetConnections/>
<children> <children>
<net.java.amateras.uml.classdiagram.model.ClassModel> <net.java.amateras.uml.classdiagram.model.ClassModel>
<backgroundColor reference="../../../backgroundColor"/> <backgroundColor reference="../../../backgroundColor"/>
<foregroundColor reference="../../../foregroundColor"/> <foregroundColor reference="../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>142</x> <x>142</x>
<y>106</y> <y>106</y>
</constraint> </constraint>
<sourceConnections/> <sourceConnections/>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>144</x> <x>144</x>
<y>221</y> <y>221</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>384</x> <x>384</x>
<y>213</y> <y>213</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections/> <targetConnections/>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class17</name> <name>Class17</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class16</name> <name>Class16</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class15</name> <name>Class15</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</net.java.amateras.uml.classdiagram.model.ClassModel> </net.java.amateras.uml.classdiagram.model.ClassModel>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
</children> </children>
<filterProperty/> <filterProperty/>
</net.java.amateras.uml.model.RootModel> </net.java.amateras.uml.model.RootModel>

View File

@ -1,265 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<net.java.amateras.uml.model.RootModel> <net.java.amateras.uml.model.RootModel>
<backgroundColor> <backgroundColor>
<red>255</red> <red>255</red>
<green>255</green> <green>255</green>
<blue>206</blue> <blue>206</blue>
</backgroundColor> </backgroundColor>
<foregroundColor> <foregroundColor>
<red>0</red> <red>0</red>
<green>0</green> <green>0</green>
<blue>0</blue> <blue>0</blue>
</foregroundColor> </foregroundColor>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/> <source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<sourceConnections/> <sourceConnections/>
<targetConnections/> <targetConnections/>
<children> <children>
<net.java.amateras.uml.classdiagram.model.ClassModel> <net.java.amateras.uml.classdiagram.model.ClassModel>
<backgroundColor reference="../../../backgroundColor"/> <backgroundColor reference="../../../backgroundColor"/>
<foregroundColor reference="../../../foregroundColor"/> <foregroundColor reference="../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>142</x> <x>142</x>
<y>106</y> <y>106</y>
</constraint> </constraint>
<sourceConnections/> <sourceConnections/>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>144</x> <x>144</x>
<y>221</y> <y>221</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>384</x> <x>384</x>
<y>213</y> <y>213</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections/> <targetConnections/>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class17</name> <name>Class17</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class16</name> <name>Class16</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class15</name> <name>Class15</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</net.java.amateras.uml.classdiagram.model.ClassModel> </net.java.amateras.uml.classdiagram.model.ClassModel>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
</children> </children>
<filterProperty/> <filterProperty/>
</net.java.amateras.uml.model.RootModel> </net.java.amateras.uml.model.RootModel>

View File

@ -1,265 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<net.java.amateras.uml.model.RootModel> <net.java.amateras.uml.model.RootModel>
<backgroundColor> <backgroundColor>
<red>255</red> <red>255</red>
<green>255</green> <green>255</green>
<blue>206</blue> <blue>206</blue>
</backgroundColor> </backgroundColor>
<foregroundColor> <foregroundColor>
<red>0</red> <red>0</red>
<green>0</green> <green>0</green>
<blue>0</blue> <blue>0</blue>
</foregroundColor> </foregroundColor>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/> <source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<sourceConnections/> <sourceConnections/>
<targetConnections/> <targetConnections/>
<children> <children>
<net.java.amateras.uml.classdiagram.model.ClassModel> <net.java.amateras.uml.classdiagram.model.ClassModel>
<backgroundColor reference="../../../backgroundColor"/> <backgroundColor reference="../../../backgroundColor"/>
<foregroundColor reference="../../../foregroundColor"/> <foregroundColor reference="../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>142</x> <x>142</x>
<y>106</y> <y>106</y>
</constraint> </constraint>
<sourceConnections/> <sourceConnections/>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>144</x> <x>144</x>
<y>221</y> <y>221</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>384</x> <x>384</x>
<y>213</y> <y>213</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections/> <targetConnections/>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class17</name> <name>Class17</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class16</name> <name>Class16</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class15</name> <name>Class15</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</net.java.amateras.uml.classdiagram.model.ClassModel> </net.java.amateras.uml.classdiagram.model.ClassModel>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
</children> </children>
<filterProperty/> <filterProperty/>
</net.java.amateras.uml.model.RootModel> </net.java.amateras.uml.model.RootModel>

View File

@ -1,265 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<net.java.amateras.uml.model.RootModel> <net.java.amateras.uml.model.RootModel>
<backgroundColor> <backgroundColor>
<red>255</red> <red>255</red>
<green>255</green> <green>255</green>
<blue>206</blue> <blue>206</blue>
</backgroundColor> </backgroundColor>
<foregroundColor> <foregroundColor>
<red>0</red> <red>0</red>
<green>0</green> <green>0</green>
<blue>0</blue> <blue>0</blue>
</foregroundColor> </foregroundColor>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/> <source class="net.java.amateras.uml.model.RootModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<sourceConnections/> <sourceConnections/>
<targetConnections/> <targetConnections/>
<children> <children>
<net.java.amateras.uml.classdiagram.model.ClassModel> <net.java.amateras.uml.classdiagram.model.ClassModel>
<backgroundColor reference="../../../backgroundColor"/> <backgroundColor reference="../../../backgroundColor"/>
<foregroundColor reference="../../../foregroundColor"/> <foregroundColor reference="../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>142</x> <x>142</x>
<y>106</y> <y>106</y>
</constraint> </constraint>
<sourceConnections/> <sourceConnections/>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>144</x> <x>144</x>
<y>221</y> <y>221</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections> <targetConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel> <net.java.amateras.uml.classdiagram.model.AggregationModel>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.AggregationModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel"> <source class="net.java.amateras.uml.classdiagram.model.ClassModel">
<backgroundColor reference="../../../../../../../../../backgroundColor"/> <backgroundColor reference="../../../../../../../../../backgroundColor"/>
<foregroundColor reference="../../../../../../../../../foregroundColor"/> <foregroundColor reference="../../../../../../../../../foregroundColor"/>
<showIcon>true</showIcon> <showIcon>true</showIcon>
<parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/> <parent class="net.java.amateras.uml.model.RootModel" reference="../../../../../../../../.."/>
<listeners serialization="custom"> <listeners serialization="custom">
<java.beans.PropertyChangeSupport> <java.beans.PropertyChangeSupport>
<default> <default>
<source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/> <source class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../../.."/>
<propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion> <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
</default> </default>
<null/> <null/>
</java.beans.PropertyChangeSupport> </java.beans.PropertyChangeSupport>
</listeners> </listeners>
<constraint> <constraint>
<height>-1</height> <height>-1</height>
<width>-1</width> <width>-1</width>
<x>384</x> <x>384</x>
<y>213</y> <y>213</y>
</constraint> </constraint>
<sourceConnections> <sourceConnections>
<net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/> <net.java.amateras.uml.classdiagram.model.AggregationModel reference="../../.."/>
</sourceConnections> </sourceConnections>
<targetConnections/> <targetConnections/>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class17</name> <name>Class17</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class16</name> <name>Class16</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</source> </source>
<target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/> <target class="net.java.amateras.uml.classdiagram.model.ClassModel" reference="../../.."/>
<bendpoints/> <bendpoints/>
<stereoType></stereoType> <stereoType></stereoType>
<fromMultiplicity></fromMultiplicity> <fromMultiplicity></fromMultiplicity>
<toMultiplicity></toMultiplicity> <toMultiplicity></toMultiplicity>
</net.java.amateras.uml.classdiagram.model.AggregationModel> </net.java.amateras.uml.classdiagram.model.AggregationModel>
</targetConnections> </targetConnections>
<children/> <children/>
<filterProperty/> <filterProperty/>
<propertyDescriptors> <propertyDescriptors>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_stereo_type</id> <id class="string">_stereo_type</id>
<display>Stereo Type</display> <display>Stereo Type</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_simpleEntityName</id> <id class="string">_simpleEntityName</id>
<display>Simple Name</display> <display>Simple Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.TextPropertyDescriptor> <org.eclipse.ui.views.properties.TextPropertyDescriptor>
<id class="string">_entityName</id> <id class="string">_entityName</id>
<display>Name</display> <display>Name</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.TextPropertyDescriptor> </org.eclipse.ui.views.properties.TextPropertyDescriptor>
<org.eclipse.ui.views.properties.ColorPropertyDescriptor> <org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<id class="string">_background</id> <id class="string">_background</id>
<display>Background Color</display> <display>Background Color</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.ColorPropertyDescriptor> </org.eclipse.ui.views.properties.ColorPropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_attrs</id> <id class="string">_attrs</id>
<display>Attributes...</display> <display>Attributes...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<org.eclipse.ui.views.properties.PropertyDescriptor> <org.eclipse.ui.views.properties.PropertyDescriptor>
<id class="string">_operations</id> <id class="string">_operations</id>
<display>Operations...</display> <display>Operations...</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</org.eclipse.ui.views.properties.PropertyDescriptor> </org.eclipse.ui.views.properties.PropertyDescriptor>
<net.java.amateras.uml.properties.BooleanPropertyDescriptor> <net.java.amateras.uml.properties.BooleanPropertyDescriptor>
<id class="string">_abstract</id> <id class="string">_abstract</id>
<display>abstract</display> <display>abstract</display>
<incompatible>false</incompatible> <incompatible>false</incompatible>
</net.java.amateras.uml.properties.BooleanPropertyDescriptor> </net.java.amateras.uml.properties.BooleanPropertyDescriptor>
</propertyDescriptors> </propertyDescriptors>
<stereoType></stereoType> <stereoType></stereoType>
<name>Class15</name> <name>Class15</name>
<isAbstract>false</isAbstract> <isAbstract>false</isAbstract>
</net.java.amateras.uml.classdiagram.model.ClassModel> </net.java.amateras.uml.classdiagram.model.ClassModel>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
<net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/> <net.java.amateras.uml.classdiagram.model.ClassModel reference="../net.java.amateras.uml.classdiagram.model.ClassModel/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source/targetConnections/net.java.amateras.uml.classdiagram.model.AggregationModel/source"/>
</children> </children>
<filterProperty/> <filterProperty/>
</net.java.amateras.uml.model.RootModel> </net.java.amateras.uml.model.RootModel>

View File

@ -1,56 +1,56 @@
package nlib.bbs.service; package nlib.bbs.service;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
/** /**
* <pre> * <pre>
* @Class Name : BoardService.java * @Class Name : BoardService.java
* *
* @Description : 게시물 관리 클래스 * @Description : 게시물 관리 클래스
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 19. KNKIM 최초 생성 * @ 2021. 7. 19. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 19. * @since 2021. 7. 19.
* @version 1.0 * @version 1.0
* *
*/ */
public interface BoardService public interface BoardService
{ {
public DataApiResVO listNotices(DataApiReqVO reqVO); public DataApiResVO listNotices(DataApiReqVO reqVO);
public DataApiResVO selectNotice(DataApiReqVO reqVO); public DataApiResVO selectNotice(DataApiReqVO reqVO);
public DataApiResVO listFAQs(DataApiReqVO reqVO); public DataApiResVO listFAQs(DataApiReqVO reqVO);
/** /**
* 묻고답하기 목록 조회한다. * 묻고답하기 목록 조회한다.
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO listQnAs(DataApiReqVO reqVO); public DataApiResVO listQnAs(DataApiReqVO reqVO);
public DataApiResVO selectQnA(DataApiReqVO reqVO); public DataApiResVO selectQnA(DataApiReqVO reqVO);
public DataApiResVO insertQnA(DataApiReqVO reqVO); public DataApiResVO insertQnA(DataApiReqVO reqVO);
public DataApiResVO verifyWriter(DataApiReqVO reqVO); public DataApiResVO verifyWriter(DataApiReqVO reqVO);
public DataApiResVO updateQnA(DataApiReqVO reqVO); public DataApiResVO updateQnA(DataApiReqVO reqVO);
public DataApiResVO deleteQnA(DataApiReqVO reqVO); public DataApiResVO deleteQnA(DataApiReqVO reqVO);
} }

View File

@ -1,70 +1,70 @@
package nlib.bbs.service.impl; package nlib.bbs.service.impl;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import nlib.cmm.web.MainController; import nlib.cmm.web.MainController;
import nlib.restful.DataApi; import nlib.restful.DataApi;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
@Repository("boardDAO") @Repository("boardDAO")
public class BoardDAO extends DataApi public class BoardDAO extends DataApi
{ {
private static final Logger log = LoggerFactory.getLogger(BoardDAO.class); private static final Logger log = LoggerFactory.getLogger(BoardDAO.class);
/** /**
* 자원의 URI * 자원의 URI
*/ */
public static final String RESOURCE_URI = "/uac/service/board/qna"; public static final String RESOURCE_URI = "/uac/service/board/qna";
public DataApiResVO listNotices(DataApiReqVO reqVO) { public DataApiResVO listNotices(DataApiReqVO reqVO) {
return null; return null;
} }
public DataApiResVO selectNotice(DataApiReqVO reqVO) { public DataApiResVO selectNotice(DataApiReqVO reqVO) {
return null; return null;
} }
public DataApiResVO listFAQs(DataApiReqVO reqVO) { public DataApiResVO listFAQs(DataApiReqVO reqVO) {
return null; return null;
} }
/** /**
* 묻고답하기 목록 조회한다. * 묻고답하기 목록 조회한다.
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO listQnAs(DataApiReqVO reqVO) { public DataApiResVO listQnAs(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list"); reqVO.setReqUrl(RESOURCE_URI + "/list");
return get(reqVO); return get(reqVO);
} }
public DataApiResVO selectQnA(DataApiReqVO reqVO) { public DataApiResVO selectQnA(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI); reqVO.setReqUrl(RESOURCE_URI);
return get(reqVO); return get(reqVO);
} }
public DataApiResVO verifyWriter(DataApiReqVO reqVO) { public DataApiResVO verifyWriter(DataApiReqVO reqVO) {
return null; return null;
} }
public DataApiResVO updateQnA(DataApiReqVO reqVO) { public DataApiResVO updateQnA(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI); reqVO.setReqUrl(RESOURCE_URI);
return post(reqVO); return post(reqVO);
} }
public DataApiResVO deleteQnA(DataApiReqVO reqVO) { public DataApiResVO deleteQnA(DataApiReqVO reqVO) {
return null; return null;
} }
public DataApiResVO insertQnA(DataApiReqVO reqVO) { public DataApiResVO insertQnA(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI); reqVO.setReqUrl(RESOURCE_URI);
return put(reqVO); return put(reqVO);
} }
} }

View File

@ -1,66 +1,66 @@
package nlib.bbs.service.impl; package nlib.bbs.service.impl;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import nlib.bbs.service.BoardService; import nlib.bbs.service.BoardService;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
@Service("boardService") @Service("boardService")
public class BoardServiceImpl implements BoardService public class BoardServiceImpl implements BoardService
{ {
private static final Logger log = LoggerFactory.getLogger(BoardServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(BoardServiceImpl.class);
@Resource(name = "boardDAO") @Resource(name = "boardDAO")
private BoardDAO boardDAO; private BoardDAO boardDAO;
public DataApiResVO listNotices(DataApiReqVO reqVO) { public DataApiResVO listNotices(DataApiReqVO reqVO) {
return null; return null;
} }
public DataApiResVO selectNotice(DataApiReqVO reqVO) { public DataApiResVO selectNotice(DataApiReqVO reqVO) {
return null; return null;
} }
public DataApiResVO listFAQs(DataApiReqVO reqVO) { public DataApiResVO listFAQs(DataApiReqVO reqVO) {
return null; return null;
} }
/* /*
* 묻고답하기 목록 조회한다. * 묻고답하기 목록 조회한다.
* *
* (non-Javadoc) * (non-Javadoc)
* @see nlib.bbs.service.BoardService#listQnAs(nlib.restful.service.DataApiReqVO) * @see nlib.bbs.service.BoardService#listQnAs(nlib.restful.service.DataApiReqVO)
*/ */
public DataApiResVO listQnAs(DataApiReqVO reqVO) { public DataApiResVO listQnAs(DataApiReqVO reqVO) {
return boardDAO.listQnAs(reqVO); return boardDAO.listQnAs(reqVO);
} }
public DataApiResVO selectQnA(DataApiReqVO reqVO) { public DataApiResVO selectQnA(DataApiReqVO reqVO) {
return boardDAO.selectQnA(reqVO); return boardDAO.selectQnA(reqVO);
} }
public DataApiResVO insertQnA(DataApiReqVO reqVO) { public DataApiResVO insertQnA(DataApiReqVO reqVO) {
return boardDAO.insertQnA(reqVO); return boardDAO.insertQnA(reqVO);
} }
public DataApiResVO verifyWriter(DataApiReqVO reqVO) { public DataApiResVO verifyWriter(DataApiReqVO reqVO) {
return null; return null;
} }
public DataApiResVO updateQnA(DataApiReqVO reqVO) { public DataApiResVO updateQnA(DataApiReqVO reqVO) {
return boardDAO.updateQnA(reqVO); return boardDAO.updateQnA(reqVO);
} }
public DataApiResVO deleteQnA(DataApiReqVO reqVO) { public DataApiResVO deleteQnA(DataApiReqVO reqVO) {
return null; return null;
} }
} }

View File

@ -1,411 +1,411 @@
package nlib.bbs.web; package nlib.bbs.web;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import nlib.bbs.service.BoardService; import nlib.bbs.service.BoardService;
import nlib.cmm.NlibCommonController; import nlib.cmm.NlibCommonController;
import nlib.cmm.crypto.AriaCrypto; import nlib.cmm.crypto.AriaCrypto;
import nlib.cmm.crypto.NlibPasswordEncoder; import nlib.cmm.crypto.NlibPasswordEncoder;
import nlib.cmm.service.CodeService; import nlib.cmm.service.CodeService;
import nlib.cmm.service.NlibProperty; import nlib.cmm.service.NlibProperty;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.user.service.NlibLoginVO; import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil; import nlib.util.StringUtil;
@Controller @Controller
public class BoardController extends NlibCommonController public class BoardController extends NlibCommonController
{ {
private static final Logger log = LoggerFactory.getLogger(BoardController.class); private static final Logger log = LoggerFactory.getLogger(BoardController.class);
static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size");
@Resource(name = "boardService") @Resource(name = "boardService")
private BoardService boardService; private BoardService boardService;
@Resource(name = "nlibPasswordEncoder") @Resource(name = "nlibPasswordEncoder")
private NlibPasswordEncoder nlibPasswordEncoder; private NlibPasswordEncoder nlibPasswordEncoder;
@Resource(name = "ariaCrypto") @Resource(name = "ariaCrypto")
private AriaCrypto ariaCrypto; private AriaCrypto ariaCrypto;
@Resource(name = "codeService") @Resource(name = "codeService")
private CodeService codeService; private CodeService codeService;
@Autowired @Autowired
private AuthenticationManager authenticationManager; private AuthenticationManager authenticationManager;
/** /**
* 공지사항 목록 조회한다. * 공지사항 목록 조회한다.
* *
* @param req * @param req
* @return * @return
*/ */
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@RequestMapping("/board/listNotices.do") @RequestMapping("/board/listNotices.do")
public String listNotices(HttpServletRequest req) { public String listNotices(HttpServletRequest req) {
return "nlib/board/listNotices"; return "nlib/board/listNotices";
} }
/** /**
* 공지사항 상세 내용 조회한다. * 공지사항 상세 내용 조회한다.
* @param req * @param req
* @return * @return
*/ */
@RequestMapping("/board/selectNotice.do") @RequestMapping("/board/selectNotice.do")
public String selectNotice(HttpServletRequest req) { public String selectNotice(HttpServletRequest req) {
return "nlib/board/selectNotice"; return "nlib/board/selectNotice";
} }
/** /**
* FAQ 목록 조회한다. * FAQ 목록 조회한다.
* *
* @param req * @param req
* @return * @return
*/ */
@RequestMapping("/board/listFAQs.do") @RequestMapping("/board/listFAQs.do")
public String listFAQs(HttpServletRequest req) { public String listFAQs(HttpServletRequest req) {
return "nlib/board/listFAQs"; return "nlib/board/listFAQs";
} }
/** /**
* 묻고답하기 목록 조회 화면을 구성한다. * 묻고답하기 목록 조회 화면을 구성한다.
* *
* @param req * @param req
* @return * @return
*/ */
@RequestMapping("/board/listQnAs.do") @RequestMapping("/board/listQnAs.do")
public String listQnAs(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) { public String listQnAs(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) {
String searchKeyword = paramMap.get("searchKeyword"); String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
log.debug("listQnAs > pageIndex = " + pageIndex); log.debug("listQnAs > pageIndex = " + pageIndex);
log.debug("listQnAs > pageSize = " + pageSize); log.debug("listQnAs > pageSize = " + pageSize);
log.debug("listQnAs > searchKeyword = " + searchKeyword); log.debug("listQnAs > searchKeyword = " + searchKeyword);
// 페이징 사이즈 코드 목록 조회 // 페이징 사이즈 코드 목록 조회
DataApiReqVO reqVOforPageSize = new DataApiReqVO(); DataApiReqVO reqVOforPageSize = new DataApiReqVO();
reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); reqVOforPageSize.setAuthKey(createAuthKey(req, authentication));
reqVOforPageSize.setPageSize(0); reqVOforPageSize.setPageSize(0);
reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE");
DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize);
// 반환 정보 // 반환 정보
model.addAttribute("pageIndex" , pageIndex); model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize); model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword); model.addAttribute("searchKeyword", searchKeyword);
model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); model.addAttribute("pageSizeCodes", resVOforPageSize.getList());
return "nlib/board/listQnAs"; return "nlib/board/listQnAs";
} }
/** /**
* 묻고답하기 목록 조회한다. * 묻고답하기 목록 조회한다.
* *
* @param req * @param req
* @return * @return
*/ */
@RequestMapping(value="/board/listQnAsAjax.do") @RequestMapping(value="/board/listQnAsAjax.do")
public ResponseEntity<String> listQnAsAjax(HttpServletRequest req, public ResponseEntity<String> listQnAsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> paramMap) { Authentication authentication, @RequestBody Map<String, String> paramMap) {
String searchKeyword = paramMap.get("searchKeyword"); String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
log.debug("listQnAsAjax > pageIndex = " + pageIndex); log.debug("listQnAsAjax > pageIndex = " + pageIndex);
log.debug("listQnAsAjax > pageSize = " + pageSize); log.debug("listQnAsAjax > pageSize = " + pageSize);
log.debug("listQnAsAjax > searchKeyword = " + searchKeyword); log.debug("listQnAsAjax > searchKeyword = " + searchKeyword);
//------------------------------- //-------------------------------
// REQ VO 구성 // REQ VO 구성
//------------------------------- //-------------------------------
DataApiReqVO reqVO = new DataApiReqVO(); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setAuthKey(createAuthKey(req, authentication));
reqVO.setPageIndex(pageIndex); reqVO.setPageIndex(pageIndex);
reqVO.setPageSize(pageSize); reqVO.setPageSize(pageSize);
reqVO.addInfoItem("searchKeyword", searchKeyword); reqVO.addInfoItem("searchKeyword", searchKeyword);
// 요청 // 요청
DataApiResVO resVO = boardService.listQnAs(reqVO); DataApiResVO resVO = boardService.listQnAs(reqVO);
//------------------------------- //-------------------------------
// JSON변환 응답 처리 // JSON변환 응답 처리
//------------------------------- //-------------------------------
// JS-GRID 페이징 처리를 포함한 응답값 처리 // JS-GRID 페이징 처리를 포함한 응답값 처리
// {data: [{...}], // {data: [{...}],
// itemsCount: 255 // itemsCount: 255
// } // }
HashMap<String, Object> retMap = new HashMap<String, Object>(); HashMap<String, Object> retMap = new HashMap<String, Object>();
retMap.put("data", resVO.getList()); retMap.put("data", resVO.getList());
retMap.put("itemsCount", resVO.getRecordTotCount()); retMap.put("itemsCount", resVO.getRecordTotCount());
return makeResponseEntityJson(retMap); return makeResponseEntityJson(retMap);
} }
/** /**
* 묻고답하기 상세 내용 조회한다. * 묻고답하기 상세 내용 조회한다.
* *
* @param req * @param req
* @return * @return
*/ */
@RequestMapping("/board/selectQnA.do") @RequestMapping("/board/selectQnA.do")
public String selectQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) { public String selectQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) {
// 목록 이동시 전달할 매개변수 // 목록 이동시 전달할 매개변수
String searchKeyword = paramMap.get("searchKeyword"); String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = paramMap.get("pageIndex"); String pageIndex = paramMap.get("pageIndex");
String pageSize = paramMap.get("pageSize"); String pageSize = paramMap.get("pageSize");
// 게시물 번호 // 게시물 번호
String articleNo = paramMap.get("articleNo"); String articleNo = paramMap.get("articleNo");
log.debug("selectQnA > pageIndex = " + pageIndex); log.debug("selectQnA > pageIndex = " + pageIndex);
log.debug("selectQnA > pageSize = " + pageSize); log.debug("selectQnA > pageSize = " + pageSize);
log.debug("selectQnA > searchKeyword = " + searchKeyword); log.debug("selectQnA > searchKeyword = " + searchKeyword);
log.debug("selectQnA > articleNo = " + articleNo); log.debug("selectQnA > articleNo = " + articleNo);
//------------------------------- //-------------------------------
// REQ VO 구성 // REQ VO 구성
//------------------------------- //-------------------------------
DataApiReqVO reqVO = new DataApiReqVO(); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setAuthKey(createAuthKey(req, authentication));
reqVO.setPageIndex(pageIndex); reqVO.setPageIndex(pageIndex);
reqVO.setPageSize(pageSize); reqVO.setPageSize(pageSize);
// 추가 정보 설정 : 게시판ID, 게시물번호 // 추가 정보 설정 : 게시판ID, 게시물번호
HashMap<String, Object> info = new HashMap<String, Object>(); HashMap<String, Object> info = new HashMap<String, Object>();
info.put("boardNo", "QNA"); info.put("boardNo", "QNA");
info.put("articleNo", articleNo); info.put("articleNo", articleNo);
reqVO.setInfo(info); reqVO.setInfo(info);
// 요청 // 요청
DataApiResVO resVO = boardService.selectQnA(reqVO); DataApiResVO resVO = boardService.selectQnA(reqVO);
// 반환 정보 // 반환 정보
model.addAttribute("articleNo" , articleNo); model.addAttribute("articleNo" , articleNo);
model.addAttribute("article" , resVO.getInfo()); model.addAttribute("article" , resVO.getInfo());
model.addAttribute("preArticle" , resVO.getList().get(0)); model.addAttribute("preArticle" , resVO.getList().get(0));
model.addAttribute("nextArticle" , resVO.getList().get(1)); model.addAttribute("nextArticle" , resVO.getList().get(1));
model.addAttribute("pageIndex" , pageIndex); model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize); model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword); model.addAttribute("searchKeyword", searchKeyword);
return "nlib/board/selectQnA"; return "nlib/board/selectQnA";
} }
/** /**
* 묻고답하기 글작성화면을 표출한다. * 묻고답하기 글작성화면을 표출한다.
* *
* @param req * @param req
* @return * @return
*/ */
@RequestMapping("/board/insertQnAForm.do") @RequestMapping("/board/insertQnAForm.do")
public String insertQnAForm(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) { public String insertQnAForm(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) {
NlibLoginVO loginVO = getNlibLoginVO(authentication); NlibLoginVO loginVO = getNlibLoginVO(authentication);
model.addAttribute("regUserName", loginVO.getName()); model.addAttribute("regUserName", loginVO.getName());
model.addAttribute("email", loginVO.getEmail()); model.addAttribute("email", loginVO.getEmail());
return "nlib/board/insertQnAForm"; return "nlib/board/insertQnAForm";
} }
@RequestMapping("/board/insertQnA.do") @RequestMapping("/board/insertQnA.do")
public String insertQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) { public String insertQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) {
NlibLoginVO loginVO = getNlibLoginVO(authentication); NlibLoginVO loginVO = getNlibLoginVO(authentication);
log.debug("paramMap > " + paramMap); log.debug("paramMap > " + paramMap);
String message = null; String message = null;
String authKey = createAuthKey(req, authentication); String authKey = createAuthKey(req, authentication);
//------------------------------- //-------------------------------
// REQ VO 구성 // REQ VO 구성
//------------------------------- //-------------------------------
DataApiReqVO reqVO = new DataApiReqVO(); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(authKey); reqVO.setAuthKey(authKey);
reqVO.addInfoItem("boardNo" , "QNA"); reqVO.addInfoItem("boardNo" , "QNA");
reqVO.addInfoItem("title" , paramMap.get("title")); reqVO.addInfoItem("title" , paramMap.get("title"));
reqVO.addInfoItem("regUserName" , paramMap.get("regUserName")); reqVO.addInfoItem("regUserName" , paramMap.get("regUserName"));
reqVO.addInfoItem("email" , paramMap.get("email")); reqVO.addInfoItem("email" , paramMap.get("email"));
reqVO.addInfoItem("contentQeust", paramMap.get("contentQeust")); reqVO.addInfoItem("contentQeust", paramMap.get("contentQeust"));
// 요청 // 요청
DataApiResVO resVO = boardService.insertQnA(reqVO); DataApiResVO resVO = boardService.insertQnA(reqVO);
// 처리결과 확인 // 처리결과 확인
if(!resVO.isSuccess()) { if(!resVO.isSuccess()) {
message = resVO.getResultMessage(); message = resVO.getResultMessage();
return "redirect:/board/insertQnAForm.do"; return "redirect:/board/insertQnAForm.do";
} }
return "redirect:nlib/board/listQnAs"; return "redirect:nlib/board/listQnAs";
} }
@RequestMapping("/board/verifyWriter.do") @RequestMapping("/board/verifyWriter.do")
public String verifyWriter(HttpServletRequest req) { public String verifyWriter(HttpServletRequest req) {
return "nlib/board/verifyWriter"; return "nlib/board/verifyWriter";
} }
@RequestMapping("/board/updateQnAForm.do") @RequestMapping("/board/updateQnAForm.do")
public String updateQnAForm(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) { public String updateQnAForm(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) {
// 목록 이동시 전달할 매개변수 // 목록 이동시 전달할 매개변수
String searchKeyword = paramMap.get("searchKeyword"); String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = paramMap.get("pageIndex"); String pageIndex = paramMap.get("pageIndex");
String pageSize = paramMap.get("pageSize"); String pageSize = paramMap.get("pageSize");
// 게시물 번호 // 게시물 번호
String articleNo = paramMap.get("articleNo"); String articleNo = paramMap.get("articleNo");
String articlePassword = paramMap.get("articlePassword"); String articlePassword = paramMap.get("articlePassword");
log.debug("updateQnAForm > pageIndex = " + pageIndex); log.debug("updateQnAForm > pageIndex = " + pageIndex);
log.debug("updateQnAForm > pageSize = " + pageSize); log.debug("updateQnAForm > pageSize = " + pageSize);
log.debug("updateQnAForm > searchKeyword = " + searchKeyword); log.debug("updateQnAForm > searchKeyword = " + searchKeyword);
log.debug("updateQnAForm > articleNo = " + articleNo); log.debug("updateQnAForm > articleNo = " + articleNo);
log.debug("updateQnAForm > articlePassword = " + articlePassword); log.debug("updateQnAForm > articlePassword = " + articlePassword);
if(StringUtil.isEmpty(articlePassword)) { if(StringUtil.isEmpty(articlePassword)) {
model.addAttribute("message", "비밀빈호가 올바르지 않습니다.(1)"); model.addAttribute("message", "비밀빈호가 올바르지 않습니다.(1)");
return "redirect:/board/selectQnA.do"; return "redirect:/board/selectQnA.do";
} }
//------------------------------- //-------------------------------
// REQ VO 구성 // REQ VO 구성
//------------------------------- //-------------------------------
DataApiReqVO reqVO = new DataApiReqVO(); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setAuthKey(createAuthKey(req, authentication));
reqVO.setPageIndex(pageIndex); reqVO.setPageIndex(pageIndex);
reqVO.setPageSize(pageSize); reqVO.setPageSize(pageSize);
// 추가 정보 설정 : 게시판ID, 게시물번호 // 추가 정보 설정 : 게시판ID, 게시물번호
HashMap<String, Object> info = new HashMap<String, Object>(); HashMap<String, Object> info = new HashMap<String, Object>();
info.put("boardNo", "QNA"); info.put("boardNo", "QNA");
info.put("articleNo", articleNo); info.put("articleNo", articleNo);
reqVO.setInfo(info); reqVO.setInfo(info);
// 요청 // 요청
DataApiResVO resVO = boardService.selectQnA(reqVO); DataApiResVO resVO = boardService.selectQnA(reqVO);
// 비밀번호 확인 // 비밀번호 확인
HashMap<String, Object> article = resVO.getInfo(); HashMap<String, Object> article = resVO.getInfo();
if(!articlePassword.equals(article.get("articlePassword"))) { if(!articlePassword.equals(article.get("articlePassword"))) {
model.addAttribute("message", "비밀빈호가 올바르지 않습니다.(1)"); model.addAttribute("message", "비밀빈호가 올바르지 않습니다.(1)");
return "redirect:/board/selectQnA.do"; return "redirect:/board/selectQnA.do";
} }
// 반환 정보 // 반환 정보
model.addAttribute("articleNo" , articleNo); model.addAttribute("articleNo" , articleNo);
model.addAttribute("article" , resVO.getInfo()); model.addAttribute("article" , resVO.getInfo());
// 게시글 비밀번호 처리 // 게시글 비밀번호 처리
String shaArticlePassword = nlibPasswordEncoder.encode(articlePassword); String shaArticlePassword = nlibPasswordEncoder.encode(articlePassword);
String encArticlePassword = ariaCrypto.encode(shaArticlePassword, createAuthKey(req, authentication)); String encArticlePassword = ariaCrypto.encode(shaArticlePassword, createAuthKey(req, authentication));
model.addAttribute("encArticlePassword", encArticlePassword); model.addAttribute("encArticlePassword", encArticlePassword);
// 검색 정보 // 검색 정보
model.addAttribute("pageIndex" , pageIndex); model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize); model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword); model.addAttribute("searchKeyword", searchKeyword);
return "nlib/board/updateQnAForm"; return "nlib/board/updateQnAForm";
} }
@RequestMapping("/board/updateQnA.do") @RequestMapping("/board/updateQnA.do")
public String updateQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) { public String updateQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) {
log.debug("paramMap > " + paramMap); log.debug("paramMap > " + paramMap);
String message = null; String message = null;
String authKey = createAuthKey(req, authentication); String authKey = createAuthKey(req, authentication);
// 목록 이동시 전달할 매개변수 // 목록 이동시 전달할 매개변수
String searchKeyword = paramMap.get("searchKeyword"); String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = paramMap.get("pageIndex"); String pageIndex = paramMap.get("pageIndex");
String pageSize = paramMap.get("pageSize"); String pageSize = paramMap.get("pageSize");
// 게시물 번호 // 게시물 번호
String articleNo = paramMap.get("articleNo"); String articleNo = paramMap.get("articleNo");
String encArticlePassword = paramMap.get("encArticlePassword"); String encArticlePassword = paramMap.get("encArticlePassword");
String checkArticlePassword = ariaCrypto.decode(encArticlePassword, authKey); String checkArticlePassword = ariaCrypto.decode(encArticlePassword, authKey);
//------------------------------- //-------------------------------
// 비밀번호 유효 체크 // 비밀번호 유효 체크
//------------------------------- //-------------------------------
// 기존 정보 조회 // 기존 정보 조회
DataApiReqVO reqVO = new DataApiReqVO(); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(authKey); reqVO.setAuthKey(authKey);
reqVO.addInfoItem("articleNo", articleNo); reqVO.addInfoItem("articleNo", articleNo);
DataApiResVO resVO = boardService.selectQnA(reqVO); DataApiResVO resVO = boardService.selectQnA(reqVO);
String oldArticlePassword = resVO.getInfoItem("articlePassword"); String oldArticlePassword = resVO.getInfoItem("articlePassword");
if(checkArticlePassword == null || !checkArticlePassword.equals(oldArticlePassword)) { if(checkArticlePassword == null || !checkArticlePassword.equals(oldArticlePassword)) {
message = "잘못된 접근입니다."; message = "잘못된 접근입니다.";
// TODO 수정화면으로 다시 redirect 시킬것 // TODO 수정화면으로 다시 redirect 시킬것
return "redirect:/board/updateQnAForm.do"; return "redirect:/board/updateQnAForm.do";
} }
//------------------------------- //-------------------------------
// REQ VO 구성 // REQ VO 구성
//------------------------------- //-------------------------------
DataApiReqVO updateReqVO = new DataApiReqVO(); DataApiReqVO updateReqVO = new DataApiReqVO();
updateReqVO.setAuthKey(authKey); updateReqVO.setAuthKey(authKey);
updateReqVO.addInfoItem("boardNo" , "QNA"); updateReqVO.addInfoItem("boardNo" , "QNA");
updateReqVO.addInfoItem("articleNo" , articleNo); updateReqVO.addInfoItem("articleNo" , articleNo);
updateReqVO.addInfoItem("title" , paramMap.get("title")); updateReqVO.addInfoItem("title" , paramMap.get("title"));
updateReqVO.addInfoItem("regUserName" , paramMap.get("regUserName")); updateReqVO.addInfoItem("regUserName" , paramMap.get("regUserName"));
updateReqVO.addInfoItem("email" , paramMap.get("email")); updateReqVO.addInfoItem("email" , paramMap.get("email"));
updateReqVO.addInfoItem("contentQeust", paramMap.get("contentQeust")); updateReqVO.addInfoItem("contentQeust", paramMap.get("contentQeust"));
// 요청 // 요청
DataApiResVO updateResVO = boardService.updateQnA(updateReqVO); DataApiResVO updateResVO = boardService.updateQnA(updateReqVO);
// 처리결과 확인 // 처리결과 확인
if(!updateResVO.isSuccess()) { if(!updateResVO.isSuccess()) {
message = updateResVO.getResultMessage(); message = updateResVO.getResultMessage();
return "redirect:/board/updateQnAForm.do"; return "redirect:/board/updateQnAForm.do";
} }
// 반환 정보 // 반환 정보
model.addAttribute("articleNo" , updateResVO.getInfoItem("articleNo")); // 신규등록된 게시물 ID model.addAttribute("articleNo" , updateResVO.getInfoItem("articleNo")); // 신규등록된 게시물 ID
model.addAttribute("article" , resVO.getInfo()); model.addAttribute("article" , resVO.getInfo());
// 검색 정보 // 검색 정보
model.addAttribute("pageIndex" , pageIndex); model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize); model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword); model.addAttribute("searchKeyword", searchKeyword);
return "redirect:nlib/board/selectQnA"; return "redirect:nlib/board/selectQnA";
} }
@RequestMapping("/board/deleteQnA.do") @RequestMapping("/board/deleteQnA.do")
public String deleteQnA(HttpServletRequest req) { public String deleteQnA(HttpServletRequest req) {
return "nlib/board/deleteQnA"; return "nlib/board/deleteQnA";
} }
} }

View File

@ -1,178 +1,178 @@
package nlib.cmm; package nlib.cmm;
import java.util.Base64; import java.util.Base64;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import nlib.bbs.web.BoardController; import nlib.bbs.web.BoardController;
import nlib.cmm.exception.ErrorMessage; import nlib.cmm.exception.ErrorMessage;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.security.SecUserVO; import nlib.security.SecUserVO;
import nlib.user.service.NlibLoginVO; import nlib.user.service.NlibLoginVO;
/** /**
* <pre> * <pre>
* @Class Name : NlibCommonController.java * @Class Name : NlibCommonController.java
* *
* @Description : 컨트롤러의 공통적인 기능을 제공하는 컨트롤러 상위 클래스 * @Description : 컨트롤러의 공통적인 기능을 제공하는 컨트롤러 상위 클래스
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 23. KNKIM 최초 생성 * @ 2021. 7. 23. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 23. * @since 2021. 7. 23.
* @version 1.0 * @version 1.0
* *
*/ */
public class NlibCommonController { public class NlibCommonController {
private static final Logger log = LoggerFactory.getLogger(BoardController.class); private static final Logger log = LoggerFactory.getLogger(BoardController.class);
/** /**
* AuthKey 생성 , 로그인하지 않은 사용자의 AuthKey 생성시 사용되는 접두어 * AuthKey 생성 , 로그인하지 않은 사용자의 AuthKey 생성시 사용되는 접두어
*/ */
static final String ANONYMOUS_AUTH_KEY_PREFIX = "GST-"; static final String ANONYMOUS_AUTH_KEY_PREFIX = "GST-";
/** /**
* 스프링 시큐리티 Authentication를 통해서 사용자로그인정보 NlibLoginVO를 리턴한다. * 스프링 시큐리티 Authentication를 통해서 사용자로그인정보 NlibLoginVO를 리턴한다.
* *
* @param authentication * @param authentication
* @return * @return
*/ */
public NlibLoginVO getNlibLoginVO(Authentication authentication) { public NlibLoginVO getNlibLoginVO(Authentication authentication) {
if(authentication == null) return null; if(authentication == null) return null;
return (NlibLoginVO)authentication.getPrincipal(); return (NlibLoginVO)authentication.getPrincipal();
} }
/** /**
* 스프링 시큐리티 Authentication를 통해서 사용자로그인정보 SecUserVO를 리턴한다. * 스프링 시큐리티 Authentication를 통해서 사용자로그인정보 SecUserVO를 리턴한다.
* *
* @param authentication * @param authentication
* @return * @return
*/ */
public SecUserVO getSecLoginVO(Authentication authentication) { public SecUserVO getSecLoginVO(Authentication authentication) {
if(authentication == null) return null; if(authentication == null) return null;
return (SecUserVO)authentication.getPrincipal(); return (SecUserVO)authentication.getPrincipal();
} }
/** /**
* 통합자료시스템 요청 , 제공할 사용자정보 auth key 생성 * 통합자료시스템 요청 , 제공할 사용자정보 auth key 생성
* - 로그인 경우 : 사용자ID를 BASE64로 인코딩한 * - 로그인 경우 : 사용자ID를 BASE64로 인코딩한
* - 로그인하지 않은 경우 : GST-세션ID * - 로그인하지 않은 경우 : GST-세션ID
* *
* @param request * @param request
* @param authentication * @param authentication
* @return * @return
*/ */
public String createAuthKey(HttpServletRequest request, Authentication authentication) { public String createAuthKey(HttpServletRequest request, Authentication authentication) {
String userId = null; String userId = null;
String authKey = null; String authKey = null;
if(authentication != null) { if(authentication != null) {
userId = ((NlibLoginVO)authentication.getPrincipal()).getId(); userId = ((NlibLoginVO)authentication.getPrincipal()).getId();
} }
if(nlib.util.StringUtil.isEmpty(userId)) { if(nlib.util.StringUtil.isEmpty(userId)) {
authKey = ANONYMOUS_AUTH_KEY_PREFIX + request.getSession().getId(); authKey = ANONYMOUS_AUTH_KEY_PREFIX + request.getSession().getId();
} else { } else {
authKey = Base64.getEncoder().encodeToString(userId.getBytes()); authKey = Base64.getEncoder().encodeToString(userId.getBytes());
} }
log.debug("createAuthKey > " + authKey); log.debug("createAuthKey > " + authKey);
return authKey; return authKey;
} }
public ResponseEntity<String> makeResponseEntityJson(DataApiResVO resVO) { public ResponseEntity<String> makeResponseEntityJson(DataApiResVO resVO) {
// Convert Json // Convert Json
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
String jsonStr = null; String jsonStr = null;
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8"); headers.add(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8");
try { try {
jsonStr = mapper.writeValueAsString(resVO); jsonStr = mapper.writeValueAsString(resVO);
log.debug("RETURN DATA > json:" + jsonStr); log.debug("RETURN DATA > json:" + jsonStr);
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
ErrorMessage eMsg = new ErrorMessage("ERR_JSON_CONVERT", "응답객체를 JSON으로 변환 처리 중 오류가 발생하였습니다. : " + e.toString()); ErrorMessage eMsg = new ErrorMessage("ERR_JSON_CONVERT", "응답객체를 JSON으로 변환 처리 중 오류가 발생하였습니다. : " + e.toString());
try { jsonStr = mapper.writeValueAsString(eMsg); } catch (JsonProcessingException ee) {} try { jsonStr = mapper.writeValueAsString(eMsg); } catch (JsonProcessingException ee) {}
e.printStackTrace(); e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).headers(headers).body(jsonStr); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).headers(headers).body(jsonStr);
} }
return ResponseEntity.ok().headers(headers).body(jsonStr); return ResponseEntity.ok().headers(headers).body(jsonStr);
} }
public ResponseEntity<String> makeResponseEntityJson(List<HashMap<String,String>> list) { public ResponseEntity<String> makeResponseEntityJson(List<HashMap<String,String>> list) {
// Convert Json // Convert Json
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
String jsonStr = null; String jsonStr = null;
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8"); headers.add(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8");
try { try {
jsonStr = mapper.writeValueAsString(list); jsonStr = mapper.writeValueAsString(list);
log.debug("RETURN DATA > json:" + jsonStr); log.debug("RETURN DATA > json:" + jsonStr);
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
ErrorMessage eMsg = new ErrorMessage("ERR_JSON_CONVERT", "응답객체를 JSON으로 변환 처리 중 오류가 발생하였습니다. : " + e.toString()); ErrorMessage eMsg = new ErrorMessage("ERR_JSON_CONVERT", "응답객체를 JSON으로 변환 처리 중 오류가 발생하였습니다. : " + e.toString());
try { jsonStr = mapper.writeValueAsString(eMsg); } catch (JsonProcessingException ee) {} try { jsonStr = mapper.writeValueAsString(eMsg); } catch (JsonProcessingException ee) {}
e.printStackTrace(); e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).headers(headers).body(jsonStr); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).headers(headers).body(jsonStr);
} }
return ResponseEntity.ok().headers(headers).body(jsonStr); return ResponseEntity.ok().headers(headers).body(jsonStr);
} }
public ResponseEntity<String> makeResponseEntityJson(HashMap<String,Object> retMap) { public ResponseEntity<String> makeResponseEntityJson(HashMap<String,Object> retMap) {
// Convert Json // Convert Json
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
String jsonStr = null; String jsonStr = null;
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8"); headers.add(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8");
try { try {
jsonStr = mapper.writeValueAsString(retMap); jsonStr = mapper.writeValueAsString(retMap);
log.debug("RETURN DATA > json:" + jsonStr); log.debug("RETURN DATA > json:" + jsonStr);
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
ErrorMessage eMsg = new ErrorMessage("ERR_JSON_CONVERT", "응답객체를 JSON으로 변환 처리 중 오류가 발생하였습니다. : " + e.toString()); ErrorMessage eMsg = new ErrorMessage("ERR_JSON_CONVERT", "응답객체를 JSON으로 변환 처리 중 오류가 발생하였습니다. : " + e.toString());
try { jsonStr = mapper.writeValueAsString(eMsg); } catch (JsonProcessingException ee) {} try { jsonStr = mapper.writeValueAsString(eMsg); } catch (JsonProcessingException ee) {}
e.printStackTrace(); e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).headers(headers).body(jsonStr); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).headers(headers).body(jsonStr);
} }
return ResponseEntity.ok().headers(headers).body(jsonStr); return ResponseEntity.ok().headers(headers).body(jsonStr);
} }
} }

View File

@ -1,131 +1,131 @@
package nlib.cmm.crypto; package nlib.cmm.crypto;
import org.apache.tomcat.util.codec.binary.Base64; import org.apache.tomcat.util.codec.binary.Base64;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import egovframework.rte.fdl.cryptography.EgovPasswordEncoder; import egovframework.rte.fdl.cryptography.EgovPasswordEncoder;
import egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl; import egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl;
import nlib.cmm.service.NlibProperty; import nlib.cmm.service.NlibProperty;
import nlib.sample.web.SampleEncoderController; import nlib.sample.web.SampleEncoderController;
import nlib.util.StringUtil; import nlib.util.StringUtil;
/** /**
* <pre> * <pre>
* @Class Name : AriaCrypto.java * @Class Name : AriaCrypto.java
* *
* @Description : 양방향 Aria 알고리즘 암복호화 처리 클래스 (egov Aria 알고리즘 구현체 사용) * @Description : 양방향 Aria 알고리즘 암복호화 처리 클래스 (egov Aria 알고리즘 구현체 사용)
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 8. KNKIM 최초 생성 * @ 2021. 7. 8. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 8. * @since 2021. 7. 8.
* @version 1.0 * @version 1.0
* *
*/ */
@Component("ariaCrypto") @Component("ariaCrypto")
public class AriaCrypto { public class AriaCrypto {
private static final Logger log = LoggerFactory.getLogger(AriaCrypto.class); private static final Logger log = LoggerFactory.getLogger(AriaCrypto.class);
/** /**
* 암호처리 , 기본 * 암호처리 , 기본
*/ */
private static String ARIA_DEFAULT_KEY = NlibProperty.getProperty("crypto.aria.defaultKey"); private static String ARIA_DEFAULT_KEY = NlibProperty.getProperty("crypto.aria.defaultKey");
/** /**
* 기본키를 가지고 암호화한다. * 기본키를 가지고 암호화한다.
* *
* @param value * @param value
* @return * @return
*/ */
public static String encode(String value) { public static String encode(String value) {
log.info("encode : 암호화에 사용할 키 정보가 없으므로 기본키 정보를 사용합니다 : " + ARIA_DEFAULT_KEY); log.info("encode : 암호화에 사용할 키 정보가 없으므로 기본키 정보를 사용합니다 : " + ARIA_DEFAULT_KEY);
return encode(value, ARIA_DEFAULT_KEY); return encode(value, ARIA_DEFAULT_KEY);
} }
/** /**
* 전달받은 key(사용자고유번호 혹은 메일주소 salt값) 암호화한다. * 전달받은 key(사용자고유번호 혹은 메일주소 salt값) 암호화한다.
* *
* @param value * @param value
* @param key * @param key
* @return * @return
*/ */
public static String encode(String value, String key) { public static String encode(String value, String key) {
if(StringUtil.isEmpty(value)) { if(StringUtil.isEmpty(value)) {
log.error("encode : 암호화할 문자열 정보가 없습니다."); log.error("encode : 암호화할 문자열 정보가 없습니다.");
return null; return null;
} }
if(StringUtil.isEmpty(key)) { if(StringUtil.isEmpty(key)) {
log.error("encode : 암호화에 사용할 키 정보가 없습니다."); log.error("encode : 암호화에 사용할 키 정보가 없습니다.");
return null; return null;
} }
EgovPasswordEncoder egovPasswordEncoder = new EgovPasswordEncoder(); EgovPasswordEncoder egovPasswordEncoder = new EgovPasswordEncoder();
String hashedPassword = egovPasswordEncoder.encryptPassword(key); String hashedPassword = egovPasswordEncoder.encryptPassword(key);
egovPasswordEncoder.setHashedPassword(hashedPassword); egovPasswordEncoder.setHashedPassword(hashedPassword);
egovPasswordEncoder.setAlgorithm("SHA-256"); egovPasswordEncoder.setAlgorithm("SHA-256");
EgovARIACryptoServiceImpl egovARIACryptoServiceImpl = new EgovARIACryptoServiceImpl(); EgovARIACryptoServiceImpl egovARIACryptoServiceImpl = new EgovARIACryptoServiceImpl();
egovARIACryptoServiceImpl.setPasswordEncoder(egovPasswordEncoder); egovARIACryptoServiceImpl.setPasswordEncoder(egovPasswordEncoder);
egovARIACryptoServiceImpl.setBlockSize(1025); egovARIACryptoServiceImpl.setBlockSize(1025);
return Base64.encodeBase64String(egovARIACryptoServiceImpl.encrypt(value.getBytes(), key)); return Base64.encodeBase64String(egovARIACryptoServiceImpl.encrypt(value.getBytes(), key));
} }
/** /**
* 기본키를 가지고 복호화한다. * 기본키를 가지고 복호화한다.
* *
* @param value * @param value
* @return * @return
*/ */
public static String decode(String value) { public static String decode(String value) {
log.info("decode : 복호화에 사용할 키 정보가 없으므로 기본키 정보를 사용합니다 : " + ARIA_DEFAULT_KEY); log.info("decode : 복호화에 사용할 키 정보가 없으므로 기본키 정보를 사용합니다 : " + ARIA_DEFAULT_KEY);
return decode(value, ARIA_DEFAULT_KEY); return decode(value, ARIA_DEFAULT_KEY);
} }
/** /**
* 전달받은 key(사용자고유번호 혹은 메일주소 salt값) 복호화한다. * 전달받은 key(사용자고유번호 혹은 메일주소 salt값) 복호화한다.
* @param value * @param value
* @param key * @param key
* @return * @return
*/ */
public static String decode(String value, String key) { public static String decode(String value, String key) {
if(StringUtil.isEmpty(value)) { if(StringUtil.isEmpty(value)) {
log.error("decode : 복호화할 암호문자열 정보가 없습니다."); log.error("decode : 복호화할 암호문자열 정보가 없습니다.");
return null; return null;
} }
if(StringUtil.isEmpty(key)) { if(StringUtil.isEmpty(key)) {
log.error("decode : 복호화에 사용할 키 정보가 없습니다."); log.error("decode : 복호화에 사용할 키 정보가 없습니다.");
return null; return null;
} }
EgovPasswordEncoder egovPasswordEncoder = new EgovPasswordEncoder(); EgovPasswordEncoder egovPasswordEncoder = new EgovPasswordEncoder();
String hashedPassword = egovPasswordEncoder.encryptPassword(key); String hashedPassword = egovPasswordEncoder.encryptPassword(key);
egovPasswordEncoder.setHashedPassword(hashedPassword); egovPasswordEncoder.setHashedPassword(hashedPassword);
egovPasswordEncoder.setAlgorithm("SHA-256"); egovPasswordEncoder.setAlgorithm("SHA-256");
EgovARIACryptoServiceImpl egovARIACryptoServiceImpl = new EgovARIACryptoServiceImpl(); EgovARIACryptoServiceImpl egovARIACryptoServiceImpl = new EgovARIACryptoServiceImpl();
egovARIACryptoServiceImpl.setPasswordEncoder(egovPasswordEncoder); egovARIACryptoServiceImpl.setPasswordEncoder(egovPasswordEncoder);
egovARIACryptoServiceImpl.setBlockSize(1025); egovARIACryptoServiceImpl.setBlockSize(1025);
return new String(egovARIACryptoServiceImpl.decrypt(Base64.decodeBase64(value), key)); return new String(egovARIACryptoServiceImpl.decrypt(Base64.decodeBase64(value), key));
} }
} }

View File

@ -1,68 +1,68 @@
package nlib.cmm.crypto; package nlib.cmm.crypto;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cryptography.EgovPasswordEncoder; import egovframework.rte.fdl.cryptography.EgovPasswordEncoder;
/** /**
* <pre> * <pre>
* @Class Name : NlibPasswordEncoder.java * @Class Name : NlibPasswordEncoder.java
* *
* @Description : 스프링 시큐리티 비밀번호 암호화 처리를 위하여 전자정부 프레임워크의 SHA256 알고리즘 구현체를 사용한 비밀번호 인코더 클래스 * @Description : 스프링 시큐리티 비밀번호 암호화 처리를 위하여 전자정부 프레임워크의 SHA256 알고리즘 구현체를 사용한 비밀번호 인코더 클래스
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 9. KNKIM 최초 생성 * @ 2021. 7. 9. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 9. * @since 2021. 7. 9.
* @version 1.0 * @version 1.0
* *
*/ */
@Component("nlibPasswordEncoder") @Component("nlibPasswordEncoder")
public class NlibPasswordEncoder implements PasswordEncoder { /* extends EgovPasswordEncoder */ public class NlibPasswordEncoder implements PasswordEncoder { /* extends EgovPasswordEncoder */
private static final Logger log = LoggerFactory.getLogger(NlibPasswordEncoder.class); private static final Logger log = LoggerFactory.getLogger(NlibPasswordEncoder.class);
@Resource(name = "egovEnvPasswordEncoderService") @Resource(name = "egovEnvPasswordEncoderService")
EgovPasswordEncoder egovPasswordEncoder; EgovPasswordEncoder egovPasswordEncoder;
/* 비밀번호를 SHA-256 알고리즘을 사용하여 암호화한다. /* 비밀번호를 SHA-256 알고리즘을 사용하여 암호화한다.
* *
* (non-Javadoc) * (non-Javadoc)
* @see org.springframework.security.crypto.password.PasswordEncoder#encode(java.lang.CharSequence) * @see org.springframework.security.crypto.password.PasswordEncoder#encode(java.lang.CharSequence)
*/ */
@Override @Override
public String encode(CharSequence rawPassword) { public String encode(CharSequence rawPassword) {
return egovPasswordEncoder.encryptPassword(rawPassword.toString()); return egovPasswordEncoder.encryptPassword(rawPassword.toString());
} }
/* 입력된 비밀번호가 일치하는 확인한다. /* 입력된 비밀번호가 일치하는 확인한다.
* - rawPassword : 입력된 비밀번호로 암호화되지 않은 비밀번호 * - rawPassword : 입력된 비밀번호로 암호화되지 않은 비밀번호
* - encodedPassword : 암호화된 비밀번호 (사용자DB에서 읽어온 ) * - encodedPassword : 암호화된 비밀번호 (사용자DB에서 읽어온 )
* *
* (non-Javadoc) * (non-Javadoc)
* @see org.springframework.security.crypto.password.PasswordEncoder#matches(java.lang.CharSequence, java.lang.String) * @see org.springframework.security.crypto.password.PasswordEncoder#matches(java.lang.CharSequence, java.lang.String)
*/ */
@Override @Override
public boolean matches(CharSequence rawPassword, String encodedPassword) { public boolean matches(CharSequence rawPassword, String encodedPassword) {
return egovPasswordEncoder.checkPassword(rawPassword.toString(), encodedPassword); return egovPasswordEncoder.checkPassword(rawPassword.toString(), encodedPassword);
} }
} }

View File

@ -1,186 +1,186 @@
package nlib.cmm.fileupload; package nlib.cmm.fileupload;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import egovframework.com.cmm.EgovWebUtil; import egovframework.com.cmm.EgovWebUtil;
import egovframework.com.cmm.service.FileVO; import egovframework.com.cmm.service.FileVO;
import nlib.cmm.exception.ErrorMessage; import nlib.cmm.exception.ErrorMessage;
import nlib.cmm.service.NlibProperty; import nlib.cmm.service.NlibProperty;
import nlib.util.FileUtil; import nlib.util.FileUtil;
import nlib.util.StringUtil; import nlib.util.StringUtil;
import nlib.util.UUID; import nlib.util.UUID;
/** /**
* <pre> * <pre>
* @Class Name : FileUploadController.java * @Class Name : FileUploadController.java
* *
* @Description : 파일 업로드를 처리하는 컨트롤러 * @Description : 파일 업로드를 처리하는 컨트롤러
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 15. KNKIM 최초 생성 * @ 2021. 7. 15. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 15. * @since 2021. 7. 15.
* @version 1.0 * @version 1.0
* *
*/ */
@Controller @Controller
public class FileUploadController { public class FileUploadController {
private static final Logger log = LoggerFactory.getLogger(FileUploadController.class); private static final Logger log = LoggerFactory.getLogger(FileUploadController.class);
@Resource(name="nlibProperty") @Resource(name="nlibProperty")
NlibProperty nlibProperty; NlibProperty nlibProperty;
/** /**
* 첨부파일이 저장되는 최상위 위치 * 첨부파일이 저장되는 최상위 위치
*/ */
@Value("#{properties['fileupload.base.path']}") @Value("#{properties['fileupload.base.path']}")
private String FILEUPLOAD_BASE_PATH; private String FILEUPLOAD_BASE_PATH;
/** /**
* 첨부파일 임시 저장 위치 * 첨부파일 임시 저장 위치
*/ */
@Value("#{properties['fileupload.temp.subpath']}") @Value("#{properties['fileupload.temp.subpath']}")
private String FILEUPLOAD_TEMP_SUBPATH; private String FILEUPLOAD_TEMP_SUBPATH;
@ResponseBody @ResponseBody
@RequestMapping(value="/fileupload/uploadFilesAjax.do", produces="application/json") @RequestMapping(value="/fileupload/uploadFilesAjax.do", produces="application/json")
public ResponseEntity uploadFilesAjax( public ResponseEntity uploadFilesAjax(
final MultipartHttpServletRequest multiRequest final MultipartHttpServletRequest multiRequest
, @RequestParam("subPathKey") String subPathKey , @RequestParam("subPathKey") String subPathKey
, HttpServletResponse response) { , HttpServletResponse response) {
// TODO : 권한 체크 추가할 // TODO : 권한 체크 추가할
List<FileVO> result = new ArrayList<FileVO>(); List<FileVO> result = new ArrayList<FileVO>();
try { try {
// 최상위 위치 // 최상위 위치
if(FileUtil.isNotValid(FILEUPLOAD_BASE_PATH)) throw new Exception("첨부파일이 저장되는 최상위 위치값이 적절하지 않습니다."); if(FileUtil.isNotValid(FILEUPLOAD_BASE_PATH)) throw new Exception("첨부파일이 저장되는 최상위 위치값이 적절하지 않습니다.");
// 서브 위치 // 서브 위치
if(StringUtil.isEmpty(subPathKey)) throw new Exception("첨부파일이 저장되는 위치정보값이 정확하지 않습니다."); if(StringUtil.isEmpty(subPathKey)) throw new Exception("첨부파일이 저장되는 위치정보값이 정확하지 않습니다.");
String subPath = nlibProperty.getProperty(subPathKey); String subPath = nlibProperty.getProperty(subPathKey);
if(FileUtil.isNotValid(subPath)) throw new Exception("첨부파일 서브 위치값이 적절하지 않습니다."); if(FileUtil.isNotValid(subPath)) throw new Exception("첨부파일 서브 위치값이 적절하지 않습니다.");
final Map<String, MultipartFile> files = multiRequest.getFileMap(); final Map<String, MultipartFile> files = multiRequest.getFileMap();
log.debug("uploadFilesAjax : 진입 " + (files == null ? " files null " : files.size())); log.debug("uploadFilesAjax : 진입 " + (files == null ? " files null " : files.size()));
File dir = new File(FILEUPLOAD_BASE_PATH + subPath); File dir = new File(FILEUPLOAD_BASE_PATH + subPath);
if(!dir.exists() || !dir.isDirectory()) dir.mkdirs(); if(!dir.exists() || !dir.isDirectory()) dir.mkdirs();
if(!files.isEmpty()) { if(!files.isEmpty()) {
Iterator<Entry<String, MultipartFile>> itr = files.entrySet().iterator(); Iterator<Entry<String, MultipartFile>> itr = files.entrySet().iterator();
MultipartFile file; MultipartFile file;
String filePath = ""; String filePath = "";
FileVO fvo; FileVO fvo;
int fileKey = 1; int fileKey = 1;
while (itr.hasNext()) { while (itr.hasNext()) {
Entry<String, MultipartFile> entry = itr.next(); Entry<String, MultipartFile> entry = itr.next();
file = entry.getValue(); file = entry.getValue();
String orginFileName = file.getOriginalFilename(); String orginFileName = file.getOriginalFilename();
//-------------------------------------- //--------------------------------------
// 파일명이 없는 경우 처리 // 파일명이 없는 경우 처리
// (첨부가 되지 않은 input file type) // (첨부가 되지 않은 input file type)
//-------------------------------------- //--------------------------------------
if ("".equals(orginFileName)) { if ("".equals(orginFileName)) {
continue; continue;
} }
////------------------------------------ ////------------------------------------
int index = orginFileName.lastIndexOf("."); int index = orginFileName.lastIndexOf(".");
//String fileName = orginFileName.substring(0, index); //String fileName = orginFileName.substring(0, index);
String fileExt = orginFileName.substring(index + 1); String fileExt = orginFileName.substring(index + 1);
//String newName = KeyStr + getTimeStamp() + fileKey; //String newName = KeyStr + getTimeStamp() + fileKey;
String newName = UUID.getPhysicalFileName(); String newName = UUID.getPhysicalFileName();
long size = file.getSize(); long size = file.getSize();
log.debug("FILE UPLOAD : File New Name=" + newName); log.debug("FILE UPLOAD : File New Name=" + newName);
if (!"".equals(orginFileName)) { if (!"".equals(orginFileName)) {
filePath = FILEUPLOAD_BASE_PATH + subPath + "/" + newName; filePath = FILEUPLOAD_BASE_PATH + subPath + "/" + newName;
log.debug("FILE UPLOAD : filePath=" + filePath); log.debug("FILE UPLOAD : filePath=" + filePath);
file.transferTo(new File(EgovWebUtil.filePathBlackList(filePath))); file.transferTo(new File(EgovWebUtil.filePathBlackList(filePath)));
} }
fvo = new FileVO(); fvo = new FileVO();
fvo.setFileExtsn(fileExt); fvo.setFileExtsn(fileExt);
//fvo.setFileStreCours(storePathString); //fvo.setFileStreCours(storePathString);
fvo.setFileMg(Long.toString(size)); fvo.setFileMg(Long.toString(size));
fvo.setOrignlFileNm(orginFileName); fvo.setOrignlFileNm(orginFileName);
fvo.setStreFileNm(newName); fvo.setStreFileNm(newName);
//fvo.setAtchFileId(atchFileIdString); //fvo.setAtchFileId(atchFileIdString);
fvo.setFileSn(String.valueOf(fileKey)); fvo.setFileSn(String.valueOf(fileKey));
result.add(fvo); result.add(fvo);
fileKey++; fileKey++;
} }
} }
} catch(Exception e) { } catch(Exception e) {
ErrorMessage errorMessage = new ErrorMessage("ERROR", "처리에 실패하였습니다 : " + e.toString()); ErrorMessage errorMessage = new ErrorMessage("ERROR", "처리에 실패하였습니다 : " + e.toString());
e.printStackTrace(); e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorMessage); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorMessage);
} }
// Convert Json // Convert Json
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
String json; String json;
try { try {
json = mapper.writeValueAsString(result); json = mapper.writeValueAsString(result);
log.debug("RETURN DATA > json:" + json); log.debug("RETURN DATA > json:" + json);
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
json = null; json = null;
e.printStackTrace(); e.printStackTrace();
} }
HttpHeaders responseHeaders = new HttpHeaders(); HttpHeaders responseHeaders = new HttpHeaders();
//responseHeaders.set("Content-Type", "application/json; charset=UTF-8"); //responseHeaders.set("Content-Type", "application/json; charset=UTF-8");
ResponseEntity ret = ResponseEntity.ok().headers(responseHeaders).body(json); ResponseEntity ret = ResponseEntity.ok().headers(responseHeaders).body(json);
return ret; return ret;
} }
} }

View File

@ -1,41 +1,41 @@
package nlib.cmm.fileupload; package nlib.cmm.fileupload;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
public class FileUploadDomain implements Serializable { public class FileUploadDomain implements Serializable {
private String name; private String name;
private String description; private String description;
private List<MultipartFile> images; private List<MultipartFile> images;
public String getName() { public String getName() {
return name; return name;
} }
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
public String getDescription() { public String getDescription() {
return description; return description;
} }
public void setDescription(String description) { public void setDescription(String description) {
this.description = description; this.description = description;
} }
public List<MultipartFile> getImages() { public List<MultipartFile> getImages() {
return images; return images;
} }
public void setImages(List<MultipartFile> images) { public void setImages(List<MultipartFile> images) {
this.images = images; this.images = images;
} }
} }

View File

@ -1,28 +1,28 @@
package nlib.cmm.service.impl; package nlib.cmm.service.impl;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import nlib.cmm.web.MainController; import nlib.cmm.web.MainController;
import nlib.restful.DataApi; import nlib.restful.DataApi;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
@Repository("codeDAO") @Repository("codeDAO")
public class CodeDAO extends DataApi public class CodeDAO extends DataApi
{ {
private static final Logger log = LoggerFactory.getLogger(CodeDAO.class); private static final Logger log = LoggerFactory.getLogger(CodeDAO.class);
/** /**
* 자원의 URI * 자원의 URI
*/ */
public static final String RESOURCE_URI = "/uac/service/code/list"; public static final String RESOURCE_URI = "/uac/service/code/list";
public DataApiResVO listCodes(DataApiReqVO reqVO) { public DataApiResVO listCodes(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/" + reqVO.getInfoItem("codeUpperId")); reqVO.setReqUrl(RESOURCE_URI + "/" + reqVO.getInfoItem("codeUpperId"));
return get(reqVO); return get(reqVO);
} }
} }

View File

@ -1,87 +1,87 @@
package nlib.cmm.web; package nlib.cmm.web;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import nlib.cmm.NlibCommonController; import nlib.cmm.NlibCommonController;
import nlib.cmm.service.CodeService; import nlib.cmm.service.CodeService;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.util.StringUtil; import nlib.util.StringUtil;
@Controller @Controller
public class CodeController extends NlibCommonController { public class CodeController extends NlibCommonController {
private static final Logger log = LoggerFactory.getLogger(CodeController.class); private static final Logger log = LoggerFactory.getLogger(CodeController.class);
@Resource(name="codeService") @Resource(name="codeService")
private CodeService codeService; private CodeService codeService;
@RequestMapping(value="/code/listCodesAjax.do") @RequestMapping(value="/code/listCodesAjax.do")
public ResponseEntity<String> listCodeAjax(HttpServletRequest req, public ResponseEntity<String> listCodeAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> paramMap) { Authentication authentication, @RequestBody Map<String, String> paramMap) {
String codeSearchKeyword = paramMap.get("codeSearchKeyword"); String codeSearchKeyword = paramMap.get("codeSearchKeyword");
String codePageIndex = paramMap.get("codePageIndex"); String codePageIndex = paramMap.get("codePageIndex");
String codePageSize = paramMap.get("codePageSize"); String codePageSize = paramMap.get("codePageSize");
String codeUpperId = paramMap.get("codeUpperId"); String codeUpperId = paramMap.get("codeUpperId");
log.debug("listCodeAjax > codeSearchKeyword = " + codeSearchKeyword); log.debug("listCodeAjax > codeSearchKeyword = " + codeSearchKeyword);
log.debug("listCodeAjax > codePageIndex = " + codePageIndex); log.debug("listCodeAjax > codePageIndex = " + codePageIndex);
log.debug("listCodeAjax > codePageSize = " + codePageSize); log.debug("listCodeAjax > codePageSize = " + codePageSize);
log.debug("listCodeAjax > codeUpperId = " + codeUpperId); log.debug("listCodeAjax > codeUpperId = " + codeUpperId);
//------------------------------- //-------------------------------
// REQ VO 구성 // REQ VO 구성
//------------------------------- //-------------------------------
DataApiReqVO reqVO = new DataApiReqVO(); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setAuthKey(createAuthKey(req, authentication));
reqVO.setPageIndex(codePageIndex); reqVO.setPageIndex(codePageIndex);
reqVO.setPageSize(codePageSize); reqVO.setPageSize(codePageSize);
// 추가 정보 설정 // 추가 정보 설정
reqVO.addInfoItem("searchKeyword", codeSearchKeyword); reqVO.addInfoItem("searchKeyword", codeSearchKeyword);
reqVO.addInfoItem("codeUpperId", codeUpperId); reqVO.addInfoItem("codeUpperId", codeUpperId);
// 요청 // 요청
DataApiResVO resVO = codeService.listCodes(reqVO); DataApiResVO resVO = codeService.listCodes(reqVO);
//------------------------------- //-------------------------------
// JSON변환 응답 처리 // JSON변환 응답 처리
//------------------------------- //-------------------------------
// JS-GRID 페이징 처리를 포함한 응답값 처리 // JS-GRID 페이징 처리를 포함한 응답값 처리
// (1) 페이징을 서버단에서 처리하는 경우 (pagingloading = false) // (1) 페이징을 서버단에서 처리하는 경우 (pagingloading = false)
// {data: [{...}], // {data: [{...}],
// itemsCount: 255 // itemsCount: 255
// } // }
// (2) 페이징을 클라이언트에서 처리하는 경우 (pagingloading = true) // (2) 페이징을 클라이언트에서 처리하는 경우 (pagingloading = true)
// {data: [{...}], // {data: [{...}],
// itemsCount: 255 // itemsCount: 255
// } // }
// 코드 페이징 사이즈값이 없거나 0인 경우, 서버에서 페이징 처리하지 않고 전체 데이터 전송 // 코드 페이징 사이즈값이 없거나 0인 경우, 서버에서 페이징 처리하지 않고 전체 데이터 전송
if(StringUtil.isEmpty(codePageSize) || Integer.parseInt(codePageSize) <= 0) { if(StringUtil.isEmpty(codePageSize) || Integer.parseInt(codePageSize) <= 0) {
return makeResponseEntityJson(resVO.getList()); return makeResponseEntityJson(resVO.getList());
} }
// 코드 페이징 처리되는 경우 // 코드 페이징 처리되는 경우
HashMap<String, Object> retMap = new HashMap<String, Object>(); HashMap<String, Object> retMap = new HashMap<String, Object>();
retMap.put("data", resVO.getList()); retMap.put("data", resVO.getList());
retMap.put("itemsCount", resVO.getRecordTotCount()); retMap.put("itemsCount", resVO.getRecordTotCount());
return makeResponseEntityJson(retMap); return makeResponseEntityJson(retMap);
} }
} }

View File

@ -1,139 +1,139 @@
package nlib.restful.service; package nlib.restful.service;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* <pre> * <pre>
* @Class Name : DataApiReqVO.java * @Class Name : DataApiReqVO.java
* *
* @Description : RESTful API 요청 VO * @Description : RESTful API 요청 VO
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 22. KNKIM 최초 생성 * @ 2021. 6. 22. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 22. * @since 2021. 6. 22.
* @version 1.0 * @version 1.0
* *
*/ */
public class DataApiReqVO { public class DataApiReqVO {
public static final int DEFAULT_PAGE_SIZE = 10; public static final int DEFAULT_PAGE_SIZE = 10;
public static final int DEFAULT_PAGE_INDEX = 1; public static final int DEFAULT_PAGE_INDEX = 1;
/* 처리결과 */ /* 처리결과 */
private String authKey; /* 로그인키 */ private String authKey; /* 로그인키 */
/* 페이징 정보 */ /* 페이징 정보 */
private int pageIndex = 0; /* 요청 페이지 번호 */ private int pageIndex = 0; /* 요청 페이지 번호 */
private int pageSize = 0; /* 페이지별 표출할 레코드 수 */ private int pageSize = 0; /* 페이지별 표출할 레코드 수 */
/* 기본정보 */ /* 기본정보 */
private HashMap<String, Object> info = null; private HashMap<String, Object> info = null;
public boolean hasInfo() { public boolean hasInfo() {
return (info != null && info.size() > 0); return (info != null && info.size() > 0);
} }
/* 요청업무ID 및 처리URI */ /* 요청업무ID 및 처리URI */
int reqMethod; /* 요청메소드구분값 */ int reqMethod; /* 요청메소드구분값 */
String reqUrl; /* 요청업무ID에 대한 통합시스템의 응답 처리 프로그램 URI */ String reqUrl; /* 요청업무ID에 대한 통합시스템의 응답 처리 프로그램 URI */
// GET/SET // GET/SET
public String getAuthKey() { public String getAuthKey() {
return authKey; return authKey;
} }
public void setAuthKey(String authKey) { public void setAuthKey(String authKey) {
this.authKey = authKey; this.authKey = authKey;
} }
public int getPageIndex() { public int getPageIndex() {
return (pageIndex < 1 ? DEFAULT_PAGE_INDEX : pageIndex); return (pageIndex < 1 ? DEFAULT_PAGE_INDEX : pageIndex);
} }
public void setPageIndex(int pageIndex) { public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex; this.pageIndex = pageIndex;
} }
public void setPageIndex(String pageIndex) { public void setPageIndex(String pageIndex) {
try { try {
this.pageIndex = Integer.parseInt(pageIndex); this.pageIndex = Integer.parseInt(pageIndex);
} catch(Exception e) { } catch(Exception e) {
this.pageIndex = DEFAULT_PAGE_INDEX; this.pageIndex = DEFAULT_PAGE_INDEX;
} }
} }
public int getPageSize() { public int getPageSize() {
return (pageSize < 1 ? DEFAULT_PAGE_SIZE : pageSize); return (pageSize < 1 ? DEFAULT_PAGE_SIZE : pageSize);
} }
public void setPageSize(String pageSize) { public void setPageSize(String pageSize) {
try { try {
this.pageSize = Integer.parseInt(pageSize); this.pageSize = Integer.parseInt(pageSize);
} catch(Exception e) { } catch(Exception e) {
this.pageSize = DEFAULT_PAGE_SIZE; this.pageSize = DEFAULT_PAGE_SIZE;
} }
} }
public void setPageSize(int pageSize) { public void setPageSize(int pageSize) {
this.pageSize = pageSize; this.pageSize = pageSize;
} }
public HashMap<String, Object> getInfo() { public HashMap<String, Object> getInfo() {
return info; return info;
} }
public void setInfo(HashMap<String, Object> info) { public void setInfo(HashMap<String, Object> info) {
this.info = info; this.info = info;
} }
public String getReqUrl() { public String getReqUrl() {
return reqUrl; return reqUrl;
} }
public void setReqUrl(String reqUrl) { public void setReqUrl(String reqUrl) {
this.reqUrl = reqUrl; this.reqUrl = reqUrl;
} }
public int getReqMethod() { public int getReqMethod() {
return reqMethod; return reqMethod;
} }
public void setReqMethod(int reqMethod) { public void setReqMethod(int reqMethod) {
this.reqMethod = reqMethod; this.reqMethod = reqMethod;
} }
public void addInfoItem(String key, String value) { public void addInfoItem(String key, String value) {
if(key == null) return; if(key == null) return;
if(info == null) info = new HashMap<String, Object>(); if(info == null) info = new HashMap<String, Object>();
info.put(key, value); info.put(key, value);
} }
public String getInfoItem(String key) { public String getInfoItem(String key) {
if(key == null) return null; if(key == null) return null;
if(info == null) return null; if(info == null) return null;
return (String)info.get(key); return (String)info.get(key);
} }
public void removeInfoItem(String key) { public void removeInfoItem(String key) {
if(key == null) return; if(key == null) return;
if(info == null) return; if(info == null) return;
info.remove(key); info.remove(key);
} }
} }

View File

@ -1,134 +1,134 @@
package nlib.restful.service; package nlib.restful.service;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import nlib.util.StringUtil; import nlib.util.StringUtil;
/** /**
* <pre> * <pre>
* @Class Name : DataApiResVO.java * @Class Name : DataApiResVO.java
* *
* @Description : RESTful API 응답 VO * @Description : RESTful API 응답 VO
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 22. KNKIM 최초 생성 * @ 2021. 6. 22. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 22. * @since 2021. 6. 22.
* @version 1.0 * @version 1.0
* *
*/ */
public class DataApiResVO { public class DataApiResVO {
/** /**
* 생성자 * 생성자
*/ */
public DataApiResVO() { public DataApiResVO() {
super(); super();
} }
/** /**
* 생성자 * 생성자
* *
* @param resultCode * @param resultCode
* @param resultMessage * @param resultMessage
*/ */
public DataApiResVO(String resultCode, String resultMessage) { public DataApiResVO(String resultCode, String resultMessage) {
this.resultCode = resultCode; this.resultCode = resultCode;
this.resultMessage = resultMessage; this.resultMessage = resultMessage;
} }
/* 처리결과 */ /* 처리결과 */
String resultCode; /* 결과코드 */ String resultCode; /* 결과코드 */
String resultMessage; /* 결과내용(오류내용) */ String resultMessage; /* 결과내용(오류내용) */
/* 페이징 정보 */ /* 페이징 정보 */
int pageIndex = 0; /* 요청 페이지 번호 (page) */ int pageIndex = 0; /* 요청 페이지 번호 (page) */
int pageLastIndex = 0; /* 마지막페이지번호 (totPages) */ int pageLastIndex = 0; /* 마지막페이지번호 (totPages) */
/* 기본/추가 정보 */ /* 기본/추가 정보 */
HashMap<String, Object> info = null; HashMap<String, Object> info = null;
/* 목록정보 */ /* 목록정보 */
int recordTotCount = 0; /* 총 레코드수 (records) */ int recordTotCount = 0; /* 총 레코드수 (records) */
/** /**
* 응답 처리결과가 성공인지의 여부를 리턴한다. * 응답 처리결과가 성공인지의 여부를 리턴한다.
* 결과코드(resultCode) 값이 "S" 시작하는 경우 true 리턴한다. * 결과코드(resultCode) 값이 "S" 시작하는 경우 true 리턴한다.
* *
* @return * @return
*/ */
public boolean isSuccess() { public boolean isSuccess() {
if(StringUtil.isEmpty(resultCode)) return false; if(StringUtil.isEmpty(resultCode)) return false;
return (resultCode.trim().charAt(0) == 'S'); return (resultCode.trim().charAt(0) == 'S');
} }
// GET/SET // GET/SET
public String getResultCode() { public String getResultCode() {
return resultCode; return resultCode;
} }
public void setResultCode(String resultCode) { public void setResultCode(String resultCode) {
this.resultCode = resultCode; this.resultCode = resultCode;
} }
public String getResultMessage() { public String getResultMessage() {
return resultMessage; return resultMessage;
} }
public void setResultMessage(String resultMessage) { public void setResultMessage(String resultMessage) {
this.resultMessage = resultMessage; this.resultMessage = resultMessage;
} }
public int getPageIndex() { public int getPageIndex() {
return pageIndex; return pageIndex;
} }
public void setPageIndex(int pageIndex) { public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex; this.pageIndex = pageIndex;
} }
public int getPageLastIndex() { public int getPageLastIndex() {
return pageLastIndex; return pageLastIndex;
} }
public void setPageLastIndex(int pageLastIndex) { public void setPageLastIndex(int pageLastIndex) {
this.pageLastIndex = pageLastIndex; this.pageLastIndex = pageLastIndex;
} }
public HashMap<String, Object> getInfo() { public HashMap<String, Object> getInfo() {
return info; return info;
} }
public void setInfo(HashMap<String, Object> info) { public void setInfo(HashMap<String, Object> info) {
this.info = info; this.info = info;
} }
public int getRecordTotCount() { public int getRecordTotCount() {
return recordTotCount; return recordTotCount;
} }
public void setRecordTotCount(int recordTotCount) { public void setRecordTotCount(int recordTotCount) {
this.recordTotCount = recordTotCount; this.recordTotCount = recordTotCount;
} }
/** /**
* 반복되는 목록용 리스트 정보를 가져온다. * 반복되는 목록용 리스트 정보를 가져온다.
* - RESTful API : "<results>"요소로 반복되는 요소를 반환한다. * - RESTful API : "<results>"요소로 반복되는 요소를 반환한다.
* *
* @return * @return
*/ */
public List<HashMap<String, String>> getList() { public List<HashMap<String, String>> getList() {
if(info == null) return null; if(info == null) return null;
return (List<HashMap<String, String>>)info.get("results"); return (List<HashMap<String, String>>)info.get("results");
} }
public String getInfoItem(String key) { public String getInfoItem(String key) {
if(key == null) return null; if(key == null) return null;
if(info == null) return null; if(info == null) return null;
return (String)info.get(key); return (String)info.get(key);
} }
} }

View File

@ -1,239 +1,239 @@
package nlib.restful.service; package nlib.restful.service;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.StartElement; import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent; import javax.xml.stream.events.XMLEvent;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import nlib.sample.web.SampleEncoderController; import nlib.sample.web.SampleEncoderController;
import nlib.util.StringUtil; import nlib.util.StringUtil;
public class XmlConverter { public class XmlConverter {
private static final Logger log = LoggerFactory.getLogger(XmlConverter.class); private static final Logger log = LoggerFactory.getLogger(XmlConverter.class);
public static HashMap<String, Object> convert(String xmlStr) throws Exception { public static HashMap<String, Object> convert(String xmlStr) throws Exception {
if(xmlStr == null) return null; if(xmlStr == null) return null;
ByteArrayInputStream bIn = new ByteArrayInputStream(xmlStr.getBytes()); ByteArrayInputStream bIn = new ByteArrayInputStream(xmlStr.getBytes());
HashMap<String, Object> resMap = new HashMap<String, Object>(); HashMap<String, Object> resMap = new HashMap<String, Object>();
try { try {
XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLEventReader eventReader = inputFactory.createXMLEventReader(bIn); XMLEventReader eventReader = inputFactory.createXMLEventReader(bIn);
resMap = getElementValue("result", eventReader, null); resMap = getElementValue("result", eventReader, null);
log.debug("Converting XML to HashMap : Done >> " + resMap); log.debug("Converting XML to HashMap : Done >> " + resMap);
} catch (XMLStreamException e) { } catch (XMLStreamException e) {
e.printStackTrace(); e.printStackTrace();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return resMap; return resMap;
} }
/** /**
* @param rootElementName * @param rootElementName
* @param eventReader * @param eventReader
* @param alreadyRootOpened : 부모 요소 찾기 없이 작업 진행할지 여부. false인 경우, rootElementName 요소를 찾아서 이후 추출 수행 * @param alreadyRootOpened : 부모 요소 찾기 없이 작업 진행할지 여부. false인 경우, rootElementName 요소를 찾아서 이후 추출 수행
* @param startElement * @param startElement
* @return * @return
* @throws Exception * @throws Exception
*/ */
public static HashMap<String, Object> getElementValue( public static HashMap<String, Object> getElementValue(
String rootElementName String rootElementName
, XMLEventReader eventReader , XMLEventReader eventReader
, XMLEvent firstChildElement) throws Exception { , XMLEvent firstChildElement) throws Exception {
HashMap<String, Object> retMap = new HashMap<String, Object>(); HashMap<String, Object> retMap = new HashMap<String, Object>();
try { try {
int depth = (firstChildElement == null ? 0 : 1); int depth = (firstChildElement == null ? 0 : 1);
StartElement startElement = null; StartElement startElement = null;
XMLEvent event = firstChildElement; XMLEvent event = firstChildElement;
String upperElementName = null; String upperElementName = null;
String elementName = null; //(firstChildElement == null ? null : firstChildElement.asStartElement().getName().getLocalPart()); String elementName = null; //(firstChildElement == null ? null : firstChildElement.asStartElement().getName().getLocalPart());
String content = null; String content = null;
String elementValue = ""; String elementValue = "";
HashMap<String, String> elementValues = null; HashMap<String, String> elementValues = null;
boolean hasSubElements = false; boolean hasSubElements = false;
boolean isFirst = true; boolean isFirst = true;
while (eventReader.hasNext()) { while (eventReader.hasNext()) {
// 이벤트가 함께 매개변수로 넘어온 경우, 처음 읽기 생략 // 이벤트가 함께 매개변수로 넘어온 경우, 처음 읽기 생략
if(!isFirst || event == null) { if(!isFirst || event == null) {
event = eventReader.nextEvent(); event = eventReader.nextEvent();
} }
if(isFirst) isFirst = false; if(isFirst) isFirst = false;
// 1 레벨 엘리먼트 찾기 // 1 레벨 엘리먼트 찾기
if (depth == 0 && event.isStartElement() && event.asStartElement().getName().getLocalPart().equals(rootElementName)) { if (depth == 0 && event.isStartElement() && event.asStartElement().getName().getLocalPart().equals(rootElementName)) {
depth++; depth++;
continue; continue;
} }
// 1 레벨 엘리먼트내의 2 레벨 엘리먼트 찾기 // 1 레벨 엘리먼트내의 2 레벨 엘리먼트 찾기
if(depth == 1 && elementName == null && event.isStartElement()) { if(depth == 1 && elementName == null && event.isStartElement()) {
elementName = event.asStartElement().getName().getLocalPart(); elementName = event.asStartElement().getName().getLocalPart();
elementValue = ""; elementValue = "";
elementValues = null; elementValues = null;
hasSubElements = false; hasSubElements = false;
depth++; depth++;
continue; continue;
} }
// 2 레벨 엘리먼트 내용 찾기 // 2 레벨 엘리먼트 내용 찾기
if(depth == 2 && elementName != null && event.isCharacters()) { if(depth == 2 && elementName != null && event.isCharacters()) {
content = event.asCharacters().getData(); content = event.asCharacters().getData();
if(StringUtil.isNotEmpty(content)) { if(StringUtil.isNotEmpty(content)) {
elementValue += content; elementValue += content;
} }
continue; continue;
} }
// 2 레벨 엘리먼트 종료 // 2 레벨 엘리먼트 종료
if(depth == 2 && elementName != null && event.isEndElement()) { if(depth == 2 && elementName != null && event.isEndElement()) {
if(!elementName.equals(event.asEndElement().getName().getLocalPart())) { if(!elementName.equals(event.asEndElement().getName().getLocalPart())) {
throw new Exception("XML문의 요소 시작/종료 태그가 일치하지 않습니다. : " + elementName + " 요소가 " + event.asEndElement().getName().getLocalPart() + "로 종료되었습니다."); throw new Exception("XML문의 요소 시작/종료 태그가 일치하지 않습니다. : " + elementName + " 요소가 " + event.asEndElement().getName().getLocalPart() + "로 종료되었습니다.");
} }
addValue(retMap, elementName, elementValue); addValue(retMap, elementName, elementValue);
//log.debug(elementName + " : -" + elementValue + "_"); //log.debug(elementName + " : -" + elementValue + "_");
elementName = null; elementName = null;
elementValue = ""; elementValue = "";
depth--; depth--;
} }
// 2 레벨 엘리먼트 > 하위 엘리먼트 존재하는 경우 // 2 레벨 엘리먼트 > 하위 엘리먼트 존재하는 경우
if(depth == 2 && elementName != null && event.isStartElement()) { if(depth == 2 && elementName != null && event.isStartElement()) {
HashMap<String, Object> subMap = getElementValue(elementName, eventReader, event); HashMap<String, Object> subMap = getElementValue(elementName, eventReader, event);
addValue(retMap, elementName, subMap); addValue(retMap, elementName, subMap);
depth--; depth--;
elementName = null; elementName = null;
} }
// 1 레벨 엘리먼트 종료된 경우, 돌아가기 // 1 레벨 엘리먼트 종료된 경우, 돌아가기
if(depth == 1 && elementName == null && event.isEndElement() && rootElementName.equals(event.asEndElement().getName().getLocalPart())) { if(depth == 1 && elementName == null && event.isEndElement() && rootElementName.equals(event.asEndElement().getName().getLocalPart())) {
depth--; depth--;
return retMap; return retMap;
} }
} // while } // while
} catch (XMLStreamException e) { } catch (XMLStreamException e) {
e.printStackTrace(); e.printStackTrace();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
System.out.println("END"); System.out.println("END");
return retMap; return retMap;
} }
public static void addValue(HashMap<String, Object> map, String key, Object value) throws Exception { public static void addValue(HashMap<String, Object> map, String key, Object value) throws Exception {
if(map == null) throw new Exception("값을 넣을 Map 변수가 초기화되지 않았습니다."); if(map == null) throw new Exception("값을 넣을 Map 변수가 초기화되지 않았습니다.");
if(key == null) return; if(key == null) return;
if(value == null) return; if(value == null) return;
Object curValObj = map.get(key); Object curValObj = map.get(key);
if(curValObj == null) { if(curValObj == null) {
map.put(key, value); map.put(key, value);
return; return;
} }
if(curValObj instanceof String || curValObj instanceof HashMap) { if(curValObj instanceof String || curValObj instanceof HashMap) {
List<Object> values = new ArrayList<Object>(); List<Object> values = new ArrayList<Object>();
values.add(curValObj); values.add(curValObj);
values.add(value); values.add(value);
map.put(key, values); map.put(key, values);
} else if(curValObj instanceof List) { } else if(curValObj instanceof List) {
((ArrayList<Object>)curValObj).add(value); ((ArrayList<Object>)curValObj).add(value);
} }
return; return;
} }
/* /*
public static void main(String argv[]) throws Exception { public static void main(String argv[]) throws Exception {
XmlConverter xmlConverter = new XmlConverter(); XmlConverter xmlConverter = new XmlConverter();
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n" + String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n" +
"<!-- uac.service.board.qna_GET.xml -->\r\n" + "<!-- uac.service.board.qna_GET.xml -->\r\n" +
"<result>\r\n" + "<result>\r\n" +
" <code>S</code>\r\n" + " <code>S</code>\r\n" +
" <message>성공적으로 조회되었습니다.</message>\r\n" + " <message>성공적으로 조회되었습니다.</message>\r\n" +
" <records>10</records>\r\n" + " <records>10</records>\r\n" +
" <page>1</page>\r\n" + " <page>1</page>\r\n" +
" <totPages>15</totPages>\r\n" + " <totPages>15</totPages>\r\n" +
" <record>\r\n" + " <record>\r\n" +
" <noticeNo>1</noticeNo>\r\n" + " <noticeNo>1</noticeNo>\r\n" +
" <noticeType>101</noticeType>\r\n" + " <noticeType>101</noticeType>\r\n" +
" <title>공지사항 테스트</title>\r\n" + " <title>공지사항 테스트</title>\r\n" +
" <readCount>15</readCount>\r\n" + " <readCount>15</readCount>\r\n" +
" <regDate>2021-07-19</regDate>\r\n" + " <regDate>2021-07-19</regDate>\r\n" +
" </record>\r\n" + " </record>\r\n" +
" <record>\r\n" + " <record>\r\n" +
" <noticeNo>2</noticeNo>\r\n" + " <noticeNo>2</noticeNo>\r\n" +
" <noticeType>101</noticeType>\r\n" + " <noticeType>101</noticeType>\r\n" +
" <title>공지사항 테스트</title>\r\n" + " <title>공지사항 테스트</title>\r\n" +
" <readCount>55</readCount>\r\n" + " <readCount>55</readCount>\r\n" +
" <regDate>2021-07-19</regDate>\r\n" + " <regDate>2021-07-19</regDate>\r\n" +
" </record>\r\n" + " </record>\r\n" +
" <record>\r\n" + " <record>\r\n" +
" <noticeNo>3</noticeNo>\r\n" + " <noticeNo>3</noticeNo>\r\n" +
" <noticeType>101</noticeType>\r\n" + " <noticeType>101</noticeType>\r\n" +
" <title>공지사항 테스트</title>\r\n" + " <title>공지사항 테스트</title>\r\n" +
" <readCount>55</readCount>\r\n" + " <readCount>55</readCount>\r\n" +
" <regDate>2021-07-19</regDate>\r\n" + " <regDate>2021-07-19</regDate>\r\n" +
" </record>\r\n" + " </record>\r\n" +
" <record>\r\n" + " <record>\r\n" +
" <noticeNo>4</noticeNo>\r\n" + " <noticeNo>4</noticeNo>\r\n" +
" <noticeType>101</noticeType>\r\n" + " <noticeType>101</noticeType>\r\n" +
" <title>공지사항 테스트</title>\r\n" + " <title>공지사항 테스트</title>\r\n" +
" <readCount>55</readCount>\r\n" + " <readCount>55</readCount>\r\n" +
" <regDate>2021-07-19</regDate>\r\n" + " <regDate>2021-07-19</regDate>\r\n" +
" </record>\r\n" + " </record>\r\n" +
" <record>\r\n" + " <record>\r\n" +
" <noticeNo>5</noticeNo>\r\n" + " <noticeNo>5</noticeNo>\r\n" +
" <noticeType>101</noticeType>\r\n" + " <noticeType>101</noticeType>\r\n" +
" <title>공지사항 테스트</title>\r\n" + " <title>공지사항 테스트</title>\r\n" +
" <readCount>55</readCount>\r\n" + " <readCount>55</readCount>\r\n" +
" <regDate>2021-07-19</regDate>\r\n" + " <regDate>2021-07-19</regDate>\r\n" +
" </record>\r\n" + " </record>\r\n" +
" <record>\r\n" + " <record>\r\n" +
" <noticeNo>6</noticeNo>\r\n" + " <noticeNo>6</noticeNo>\r\n" +
" <noticeType>101</noticeType>\r\n" + " <noticeType>101</noticeType>\r\n" +
" <title>공지사항 테스트</title>\r\n" + " <title>공지사항 테스트</title>\r\n" +
" <readCount>55</readCount>\r\n" + " <readCount>55</readCount>\r\n" +
" <regDate>2021-07-19</regDate>\r\n" + " <regDate>2021-07-19</regDate>\r\n" +
" </record>\r\n" + " </record>\r\n" +
" <end>3333</end>\r\n" + " <end>3333</end>\r\n" +
"</result>"; "</result>";
HashMap<String, Object> resMap = xmlConverter.convert(xmlStr); HashMap<String, Object> resMap = xmlConverter.convert(xmlStr);
} }
*/ */
} }

View File

@ -1,168 +1,168 @@
package nlib.restful.service.impl; package nlib.restful.service.impl;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.restful.service.DataApiInterface; import nlib.restful.service.DataApiInterface;
import nlib.util.StringUtil; import nlib.util.StringUtil;
/** /**
* <pre> * <pre>
* @Class Name : DataApiRESTful.java * @Class Name : DataApiRESTful.java
* *
* @Description : 통합자료관리시스템에 RESTful API를 통해 질의/응답을 처리한다. * @Description : 통합자료관리시스템에 RESTful API를 통해 질의/응답을 처리한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 22. KNKIM 최초 생성 * @ 2021. 6. 22. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 22. * @since 2021. 6. 22.
* @version 1.0 * @version 1.0
* *
*/ */
public class DataApiRESTful implements DataApiInterface { public class DataApiRESTful implements DataApiInterface {
private static final Logger log = LoggerFactory.getLogger(DataApiRESTful.class); private static final Logger log = LoggerFactory.getLogger(DataApiRESTful.class);
/* DataApi 접속 서버 정보 */ /* DataApi 접속 서버 정보 */
@Value("#{properties['dataapi.server.ip']}") @Value("#{properties['dataapi.server.ip']}")
private String DAPI_SERVER_IP; private String DAPI_SERVER_IP;
@Value("#{properties['dataapi.server.port']}") @Value("#{properties['dataapi.server.port']}")
private String DAPI_SERVER_PORT; private String DAPI_SERVER_PORT;
@Value("#{properties['dataapi.server.protocol']}") @Value("#{properties['dataapi.server.protocol']}")
private String DAPI_SERVER_PROTOCOL; private String DAPI_SERVER_PROTOCOL;
/** /**
* 조회 * 조회
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO get(DataApiReqVO reqVO) { public DataApiResVO get(DataApiReqVO reqVO) {
return send(reqVO, HttpMethod.GET); return send(reqVO, HttpMethod.GET);
} }
/** /**
* 등록 * 등록
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO put(DataApiReqVO reqVO) { public DataApiResVO put(DataApiReqVO reqVO) {
return send(reqVO, HttpMethod.PUT); return send(reqVO, HttpMethod.PUT);
} }
/** /**
* 수정 * 수정
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO post(DataApiReqVO reqVO) { public DataApiResVO post(DataApiReqVO reqVO) {
return send(reqVO, HttpMethod.POST); return send(reqVO, HttpMethod.POST);
} }
/** /**
* 삭제 * 삭제
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO delete (DataApiReqVO reqVO) { public DataApiResVO delete (DataApiReqVO reqVO) {
return send(reqVO, HttpMethod.DELETE); return send(reqVO, HttpMethod.DELETE);
} }
/** /**
* 실제 RESTful API 서버로 요청을 전송하고, 응답받은 자료를 응답VO에 담아서 리턴한다. * 실제 RESTful API 서버로 요청을 전송하고, 응답받은 자료를 응답VO에 담아서 리턴한다.
* *
* @param reqVO * @param reqVO
* @param method * @param method
* @return * @return
*/ */
public DataApiResVO send(DataApiReqVO reqVO, HttpMethod method) { public DataApiResVO send(DataApiReqVO reqVO, HttpMethod method) {
DataApiResVO resVO = null; DataApiResVO resVO = null;
try { try {
//----------------------------------- //-----------------------------------
// 입력값 검증작업 // 입력값 검증작업
//----------------------------------- //-----------------------------------
resVO = DataApiInterface.checkReqCommonParams(reqVO); resVO = DataApiInterface.checkReqCommonParams(reqVO);
if(resVO != null) return resVO; if(resVO != null) return resVO;
if(method == null) return new DataApiResVO("ERR_NO_METHOD", "HTTP 요청 Method가 유효하지 않습니다."); if(method == null) return new DataApiResVO("ERR_NO_METHOD", "HTTP 요청 Method가 유효하지 않습니다.");
//----------------------------------- //-----------------------------------
// 파라메터 생성 작업 // 파라메터 생성 작업
//----------------------------------- //-----------------------------------
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> parameters = DataApiInterface.makeParamMap(reqVO); MultiValueMap<String, String> parameters = DataApiInterface.makeParamMap(reqVO);
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity(parameters, headers); HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity(parameters, headers);
//----------------------------------- //-----------------------------------
// 요청 처리 // 요청 처리
//----------------------------------- //-----------------------------------
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
String url = DAPI_SERVER_PROTOCOL + "://" + DAPI_SERVER_IP + ("80".equals(DAPI_SERVER_PORT) ? "" : ":" + DAPI_SERVER_PORT) + reqVO.getReqUrl(); String url = DAPI_SERVER_PROTOCOL + "://" + DAPI_SERVER_IP + ("80".equals(DAPI_SERVER_PORT) ? "" : ":" + DAPI_SERVER_PORT) + reqVO.getReqUrl();
log.debug("REQ URL : " + reqVO.getReqUrl()); log.debug("REQ URL : " + reqVO.getReqUrl());
ResponseEntity<String> responseEntity = restTemplate.exchange(url, method, requestEntity, String.class); ResponseEntity<String> responseEntity = restTemplate.exchange(url, method, requestEntity, String.class);
//----------------------------------- //-----------------------------------
// 응답 처리 // 응답 처리
//----------------------------------- //-----------------------------------
HttpStatus statusCode = responseEntity.getStatusCode(); HttpStatus statusCode = responseEntity.getStatusCode();
log.debug("RES StatusCode : " + statusCode); log.debug("RES StatusCode : " + statusCode);
String resultXML = ""; String resultXML = "";
resultXML = responseEntity.getBody(); resultXML = responseEntity.getBody();
log.debug("RES resultXML : " + resultXML); log.debug("RES resultXML : " + resultXML);
// 응답 자료 객체화 // 응답 자료 객체화
resVO = DataApiInterface.convertXmlToResVO(resultXML); resVO = DataApiInterface.convertXmlToResVO(resultXML);
// 처리결과 코드 확인 // 처리결과 코드 확인
if(StringUtil.isEmpty(resVO.getResultCode())) { if(StringUtil.isEmpty(resVO.getResultCode())) {
if (statusCode == HttpStatus.OK) { if (statusCode == HttpStatus.OK) {
resVO.setResultCode("S_HTTP_STATUS_OK"); resVO.setResultCode("S_HTTP_STATUS_OK");
resVO.setResultMessage("정상처리되었습니다."); resVO.setResultMessage("정상처리되었습니다.");
} else { } else {
resVO.setResultCode("E_STATUS_CODE_FAIL"); resVO.setResultCode("E_STATUS_CODE_FAIL");
resVO.setResultMessage(String.format("처리에 실패하였습니다. (HTTP상태코드 : %s)", statusCode.toString())); resVO.setResultMessage(String.format("처리에 실패하였습니다. (HTTP상태코드 : %s)", statusCode.toString()));
} }
} }
//log.debug("RES resVO : " + resVO); //log.debug("RES resVO : " + resVO);
} catch(Exception e) { } catch(Exception e) {
e.printStackTrace(); e.printStackTrace();
return DataApiInterface.makeErrorRes("E_REQ_EXCEPTION", e.toString()); return DataApiInterface.makeErrorRes("E_REQ_EXCEPTION", e.toString());
} }
return resVO; return resVO;
} }
} }

View File

@ -1,216 +1,216 @@
package nlib.restful.service.impl; package nlib.restful.service.impl;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.restful.service.DataApiServerResponseVO; import nlib.restful.service.DataApiServerResponseVO;
import nlib.restful.service.DataApiInterface; import nlib.restful.service.DataApiInterface;
import nlib.util.StringUtil; import nlib.util.StringUtil;
/** /**
* <pre> * <pre>
* @Class Name : DataApiTempXml.java * @Class Name : DataApiTempXml.java
* *
* @Description : DataAPI의 요청에 대해서 로컬의 테스트용 XML 파일을 읽어서 응답을 처리한다. (자체 선개발 진행용) * @Description : DataAPI의 요청에 대해서 로컬의 테스트용 XML 파일을 읽어서 응답을 처리한다. (자체 선개발 진행용)
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 9. KNKIM 최초 생성 * @ 2021. 7. 9. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 9. * @since 2021. 7. 9.
* @version 1.0 * @version 1.0
* *
*/ */
public class DataApiTempXml implements DataApiInterface { public class DataApiTempXml implements DataApiInterface {
private static final Logger log = LoggerFactory.getLogger(DataApiTempXml.class); private static final Logger log = LoggerFactory.getLogger(DataApiTempXml.class);
/* DataApi 접속 서버 정보 */ /* DataApi 접속 서버 정보 */
@Value("#{properties['dataapi.temp.xml.path']}") @Value("#{properties['dataapi.temp.xml.path']}")
private String DAPI_TEMP_XML_PATH; private String DAPI_TEMP_XML_PATH;
/** /**
* 조회 * 조회
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO get(DataApiReqVO reqVO) { public DataApiResVO get(DataApiReqVO reqVO) {
return send(reqVO, HttpMethod.GET); return send(reqVO, HttpMethod.GET);
} }
/** /**
* 등록 * 등록
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO put(DataApiReqVO reqVO) { public DataApiResVO put(DataApiReqVO reqVO) {
return send(reqVO, HttpMethod.PUT); return send(reqVO, HttpMethod.PUT);
} }
/** /**
* 수정 * 수정
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO post(DataApiReqVO reqVO) { public DataApiResVO post(DataApiReqVO reqVO) {
return send(reqVO, HttpMethod.POST); return send(reqVO, HttpMethod.POST);
} }
/** /**
* 삭제 * 삭제
* *
* @param reqVO * @param reqVO
* @return * @return
*/ */
public DataApiResVO delete (DataApiReqVO reqVO) { public DataApiResVO delete (DataApiReqVO reqVO) {
return send(reqVO, HttpMethod.DELETE); return send(reqVO, HttpMethod.DELETE);
} }
/** /**
* 실제 RESTful API 서버로 요청을 전송하고, 응답받은 자료를 응답VO에 담아서 리턴한다. * 실제 RESTful API 서버로 요청을 전송하고, 응답받은 자료를 응답VO에 담아서 리턴한다.
* *
* @param reqVO * @param reqVO
* @param method * @param method
* @return * @return
*/ */
public DataApiResVO send(DataApiReqVO reqVO, HttpMethod method) { public DataApiResVO send(DataApiReqVO reqVO, HttpMethod method) {
DataApiResVO resVO = null; DataApiResVO resVO = null;
try { try {
//----------------------------------- //-----------------------------------
// 입력값 검증작업 // 입력값 검증작업
//----------------------------------- //-----------------------------------
resVO = DataApiInterface.checkReqCommonParams(reqVO); resVO = DataApiInterface.checkReqCommonParams(reqVO);
if(resVO != null) return resVO; if(resVO != null) return resVO;
if(method == null) return new DataApiResVO("ERR_NO_METHOD", "HTTP 요청 Method가 유효하지 않습니다."); if(method == null) return new DataApiResVO("ERR_NO_METHOD", "HTTP 요청 Method가 유효하지 않습니다.");
//----------------------------------- //-----------------------------------
// 파라메터 생성 작업 // 파라메터 생성 작업
//----------------------------------- //-----------------------------------
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> parameters = DataApiInterface.makeParamMap(reqVO); MultiValueMap<String, String> parameters = DataApiInterface.makeParamMap(reqVO);
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity(parameters, headers); HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity(parameters, headers);
//----------------------------------- //-----------------------------------
// 응답 처리 // 응답 처리
//----------------------------------- //-----------------------------------
HttpStatus statusCode = HttpStatus.OK; HttpStatus statusCode = HttpStatus.OK;
String resultXML = getTempDataFromXmlFile(reqVO, method); String resultXML = getTempDataFromXmlFile(reqVO, method);
//log.debug("RES resultXML : " + resultXML); //log.debug("RES resultXML : " + resultXML);
// 응답 자료 객체화 // 응답 자료 객체화
resVO = DataApiInterface.convertXmlToResVO(resultXML); resVO = DataApiInterface.convertXmlToResVO(resultXML);
// 처리결과 코드 확인 // 처리결과 코드 확인
if(StringUtil.isEmpty(resVO.getResultCode())) { if(StringUtil.isEmpty(resVO.getResultCode())) {
if (statusCode == HttpStatus.OK) { if (statusCode == HttpStatus.OK) {
resVO.setResultCode("S_HTTP_STATUS_OK"); resVO.setResultCode("S_HTTP_STATUS_OK");
resVO.setResultMessage("정상처리되었습니다."); resVO.setResultMessage("정상처리되었습니다.");
} else { } else {
resVO.setResultCode("E_STATUS_CODE_FAIL"); resVO.setResultCode("E_STATUS_CODE_FAIL");
resVO.setResultMessage(String.format("처리에 실패하였습니다. (HTTP상태코드 : %s)", statusCode.toString())); resVO.setResultMessage(String.format("처리에 실패하였습니다. (HTTP상태코드 : %s)", statusCode.toString()));
} }
} }
//log.debug("RES resVO : " + resVO); //log.debug("RES resVO : " + resVO);
} catch(Exception e) { } catch(Exception e) {
e.printStackTrace(); e.printStackTrace();
return DataApiInterface.makeErrorRes("E_REQ_EXCEPTION", e.toString()); return DataApiInterface.makeErrorRes("E_REQ_EXCEPTION", e.toString());
} }
return resVO; return resVO;
} }
/** /**
* 요청 URI와 메소드를 기반으로 임시 응답 XML 파일을 찾아서 내용을 문자열로 리턴한다. * 요청 URI와 메소드를 기반으로 임시 응답 XML 파일을 찾아서 내용을 문자열로 리턴한다.
* *
* @param reqVO * @param reqVO
* @param method * @param method
* @return * @return
* @throws Exception * @throws Exception
*/ */
private String getTempDataFromXmlFile(DataApiReqVO reqVO, HttpMethod method) throws Exception { private String getTempDataFromXmlFile(DataApiReqVO reqVO, HttpMethod method) throws Exception {
String fileName = reqVO.getReqUrl().substring(1).replaceAll("/", "."); String fileName = reqVO.getReqUrl().substring(1).replaceAll("/", ".");
String xmlPath = DAPI_TEMP_XML_PATH + "/" + fileName + "_" + method.toString().toUpperCase() + ".xml"; String xmlPath = DAPI_TEMP_XML_PATH + "/" + fileName + "_" + method.toString().toUpperCase() + ".xml";
String returnXmlStr = null; String returnXmlStr = null;
log.info("XML FILE PATH : " + xmlPath); log.info("XML FILE PATH : " + xmlPath);
DataApiServerResponseVO resVO = null; DataApiServerResponseVO resVO = null;
File xmlFile = new File(xmlPath); File xmlFile = new File(xmlPath);
if(!xmlFile.exists()) { if(!xmlFile.exists()) {
resVO = new DataApiServerResponseVO("-20", String.format("%s 파일을 찾을 수 없습니다.",xmlPath)); resVO = new DataApiServerResponseVO("-20", String.format("%s 파일을 찾을 수 없습니다.",xmlPath));
XmlMapper mapper = new XmlMapper(); XmlMapper mapper = new XmlMapper();
returnXmlStr = mapper.writer().withRootName("result").writeValueAsString(resVO); returnXmlStr = mapper.writer().withRootName("result").writeValueAsString(resVO);
} }
if(resVO == null && !xmlFile.isFile()) { if(resVO == null && !xmlFile.isFile()) {
resVO = new DataApiServerResponseVO("-21", String.format("%s는 파일이어야 합니다.",xmlPath)); resVO = new DataApiServerResponseVO("-21", String.format("%s는 파일이어야 합니다.",xmlPath));
XmlMapper mapper = new XmlMapper(); XmlMapper mapper = new XmlMapper();
returnXmlStr = mapper.writer().withRootName("result").writeValueAsString(resVO); returnXmlStr = mapper.writer().withRootName("result").writeValueAsString(resVO);
} }
if(resVO == null) { if(resVO == null) {
StringBuilder strBd = new StringBuilder(); StringBuilder strBd = new StringBuilder();
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(xmlPath),StandardCharsets.UTF_8))) { try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(xmlPath),StandardCharsets.UTF_8))) {
String line; String line;
int i = 0; int i = 0;
while ((line = br.readLine()) != null) { while ((line = br.readLine()) != null) {
strBd.append(line + "\n"); strBd.append(line + "\n");
} }
returnXmlStr = strBd.toString(); returnXmlStr = strBd.toString();
} catch (IOException e) { } catch (IOException e) {
log.error("XML 파일 읽는 중 오류 발생 : " + e.toString()); log.error("XML 파일 읽는 중 오류 발생 : " + e.toString());
e.printStackTrace(); e.printStackTrace();
resVO = new DataApiServerResponseVO("-22", String.format("%s 파일을 읽는 중 오류가 발생하였습니다(%s). ",xmlPath, e.toString())); resVO = new DataApiServerResponseVO("-22", String.format("%s 파일을 읽는 중 오류가 발생하였습니다(%s). ",xmlPath, e.toString()));
XmlMapper mapper = new XmlMapper(); XmlMapper mapper = new XmlMapper();
returnXmlStr = mapper.writer().withRootName("result").writeValueAsString(resVO); returnXmlStr = mapper.writer().withRootName("result").writeValueAsString(resVO);
} }
} }
log.info("RESUTN XML STR : " + returnXmlStr); log.info("RESUTN XML STR : " + returnXmlStr);
return returnXmlStr; return returnXmlStr;
} }
} }

View File

@ -1,32 +1,32 @@
package nlib.sample.service; package nlib.sample.service;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
/** /**
* <pre> * <pre>
* @Class Name : SampleDataApiService.java * @Class Name : SampleDataApiService.java
* *
* @Description : RESTful API 호출 샘플 * @Description : RESTful API 호출 샘플
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 22. KNKIM 최초 생성 * @ 2021. 6. 22. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 22. * @since 2021. 6. 22.
* @version 1.0 * @version 1.0
* *
*/ */
public interface SampleDataApiService { public interface SampleDataApiService {
public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception; public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception;
} }

View File

@ -1,47 +1,47 @@
package nlib.sample.service.impl; package nlib.sample.service.impl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import nlib.restful.DataApi; import nlib.restful.DataApi;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
/** /**
* <pre> * <pre>
* @Class Name : SampleDataApiDAO.java * @Class Name : SampleDataApiDAO.java
* *
* @Description : RESTful API 호출 샘플 * @Description : RESTful API 호출 샘플
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 22. KNKIM 최초 생성 * @ 2021. 6. 22. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 22. * @since 2021. 6. 22.
* @version 1.0 * @version 1.0
* *
*/ */
@Repository("sampleDataApiDAO") @Repository("sampleDataApiDAO")
public class SampleDataApiDAO extends DataApi { public class SampleDataApiDAO extends DataApi {
/** /**
* 자원의 URI * 자원의 URI
*/ */
public static final String RESOURCE_URI = "/uac/service/exports"; public static final String RESOURCE_URI = "/uac/service/exports";
public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception { public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception {
// URI가 다른 경우, 해당 URI 설정 // URI가 다른 경우, 해당 URI 설정
reqVO.setReqUrl(RESOURCE_URI); reqVO.setReqUrl(RESOURCE_URI);
return get(reqVO); return get(reqVO);
} }
} }

View File

@ -1,44 +1,44 @@
package nlib.sample.service.impl; package nlib.sample.service.impl;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.sample.service.SampleDataApiService; import nlib.sample.service.SampleDataApiService;
/** /**
* <pre> * <pre>
* @Class Name : SampleDataApiServiceImpl.java * @Class Name : SampleDataApiServiceImpl.java
* *
* @Description : RESTful API 호출 샘플 * @Description : RESTful API 호출 샘플
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 22. KNKIM 최초 생성 * @ 2021. 6. 22. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 22. * @since 2021. 6. 22.
* @version 1.0 * @version 1.0
* *
*/ */
@Service("sampleDataApiService") @Service("sampleDataApiService")
public class SampleDataApiServiceImpl implements SampleDataApiService { public class SampleDataApiServiceImpl implements SampleDataApiService {
/** SampleDataApiDAO */ /** SampleDataApiDAO */
@Resource(name = "sampleDataApiDAO") @Resource(name = "sampleDataApiDAO")
private SampleDataApiDAO sampleDataApiDAO; private SampleDataApiDAO sampleDataApiDAO;
public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception { public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception {
return sampleDataApiDAO.getSampleInfo(reqVO); return sampleDataApiDAO.getSampleInfo(reqVO);
} }
} }

View File

@ -1,104 +1,104 @@
package nlib.sample.web; package nlib.sample.web;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.security.access.annotation.Secured; import org.springframework.security.access.annotation.Secured;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import nlib.cmm.qrcode.QRCodeUtil; import nlib.cmm.qrcode.QRCodeUtil;
import nlib.user.service.NlibLoginVO; import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil; import nlib.util.StringUtil;
@Controller @Controller
public class BarcodeController { public class BarcodeController {
private static final Logger log = LoggerFactory.getLogger(BarcodeController.class); private static final Logger log = LoggerFactory.getLogger(BarcodeController.class);
/** QRCodeService */ /** QRCodeService */
@Resource(name = "qrCodeService") @Resource(name = "qrCodeService")
private QRCodeUtil qrCodeService; private QRCodeUtil qrCodeService;
/** /**
* 샘플 : 회원정보를 입력받을 있는 폼을 구성하여 표출한다. * 샘플 : 회원정보를 입력받을 있는 폼을 구성하여 표출한다.
* *
* @param request * @param request
* @param response * @param response
* @return * @return
* @throws Exception * @throws Exception
*/ */
@RequestMapping(value="/sample/barcode/getMemberQRCodeForm.do", produces=MediaType.IMAGE_JPEG_VALUE) @RequestMapping(value="/sample/barcode/getMemberQRCodeForm.do", produces=MediaType.IMAGE_JPEG_VALUE)
@Secured("ROLE_ADMIN") @Secured("ROLE_ADMIN")
public String getMemberQRCodeForm(@ModelAttribute("loginVO") NlibLoginVO loginVO, ModelMap model) throws Exception { public String getMemberQRCodeForm(@ModelAttribute("loginVO") NlibLoginVO loginVO, ModelMap model) throws Exception {
log.debug("getMemberQRCodeForm : loginVO=" + loginVO.toString()); log.debug("getMemberQRCodeForm : loginVO=" + loginVO.toString());
if(StringUtil.isEmpty(loginVO.getUniqId())) loginVO.setUniqId("USER0001-000001"); if(StringUtil.isEmpty(loginVO.getUniqId())) loginVO.setUniqId("USER0001-000001");
if(StringUtil.isEmpty(loginVO.getEmail())) loginVO.setEmail("myid@digitalship.co.kr"); if(StringUtil.isEmpty(loginVO.getEmail())) loginVO.setEmail("myid@digitalship.co.kr");
if(StringUtil.isEmpty(loginVO.getName())) loginVO.setName("홍길동"); if(StringUtil.isEmpty(loginVO.getName())) loginVO.setName("홍길동");
model.addAttribute("loginVO", loginVO); model.addAttribute("loginVO", loginVO);
return "nlib/sample/getMemberInfoFromQRCode"; return "nlib/sample/getMemberInfoFromQRCode";
} }
/** /**
* 샘플 : 입력받은 회원정보를 가지고 QR 2D 바코드를 생성하는 예를 보여준다. * 샘플 : 입력받은 회원정보를 가지고 QR 2D 바코드를 생성하는 예를 보여준다.
* 결과값은 JPG 바코드 이미지 이다. (Zxing Lib 사용) * 결과값은 JPG 바코드 이미지 이다. (Zxing Lib 사용)
* *
* @param request * @param request
* @param response * @param response
* @return * @return
* @throws Exception * @throws Exception
*/ */
@RequestMapping(value="/sample/barcode/getMemberQRCode.do", produces=MediaType.IMAGE_JPEG_VALUE) @RequestMapping(value="/sample/barcode/getMemberQRCode.do", produces=MediaType.IMAGE_JPEG_VALUE)
public @ResponseBody byte[] getMemberQRCode(@ModelAttribute("loginVO") NlibLoginVO loginVO, HttpServletRequest request, HttpServletResponse response) throws Exception { public @ResponseBody byte[] getMemberQRCode(@ModelAttribute("loginVO") NlibLoginVO loginVO, HttpServletRequest request, HttpServletResponse response) throws Exception {
log.debug("getMemberQRCode : loginVO=" + loginVO.toString()); log.debug("getMemberQRCode : loginVO=" + loginVO.toString());
BufferedImage bufferedImage = qrCodeService.generateMemberQRCodeImage(loginVO); BufferedImage bufferedImage = qrCodeService.generateMemberQRCodeImage(loginVO);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write( bufferedImage , "jpg", byteArrayOutputStream); ImageIO.write( bufferedImage , "jpg", byteArrayOutputStream);
byte[] bs = byteArrayOutputStream.toByteArray(); byte[] bs = byteArrayOutputStream.toByteArray();
response.setContentLength(bs.length); response.setContentLength(bs.length);
return byteArrayOutputStream.toByteArray(); return byteArrayOutputStream.toByteArray();
} }
/** /**
* 샘플 : 회원정보 QR 2D 바코드 내용을 입력받아 사용자VO 정보를 추출하는 예를 보여준다. * 샘플 : 회원정보 QR 2D 바코드 내용을 입력받아 사용자VO 정보를 추출하는 예를 보여준다.
* *
* @param request * @param request
* @param response * @param response
* @return * @return
* @throws Exception * @throws Exception
*/ */
@RequestMapping(value="/sample/barcode/getMemberInfoFromQRCode.do") @RequestMapping(value="/sample/barcode/getMemberInfoFromQRCode.do")
public String getMemberInfoFromQRCode(@RequestParam String barcodeText, ModelMap model) throws Exception { public String getMemberInfoFromQRCode(@RequestParam String barcodeText, ModelMap model) throws Exception {
log.debug("getMemberInfoFromQRCode : barcodeText=" + barcodeText); log.debug("getMemberInfoFromQRCode : barcodeText=" + barcodeText);
NlibLoginVO loginVO = qrCodeService.getMemberInfoFromQRCode(barcodeText); NlibLoginVO loginVO = qrCodeService.getMemberInfoFromQRCode(barcodeText);
log.debug("getMemberInfoFromQRCode : loginVO=" + loginVO.toString()); log.debug("getMemberInfoFromQRCode : loginVO=" + loginVO.toString());
model.addAttribute("loginVO", loginVO); model.addAttribute("loginVO", loginVO);
return "nlib/sample/getMemberInfoFromQRCode"; return "nlib/sample/getMemberInfoFromQRCode";
} }
} }

View File

@ -1,85 +1,85 @@
package nlib.sample.web; package nlib.sample.web;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.sample.service.SampleDataApiService; import nlib.sample.service.SampleDataApiService;
/** /**
* <pre> * <pre>
* @Class Name : SampleDataApiController.java * @Class Name : SampleDataApiController.java
* *
* @Description : RESTful API 호출 샘플 * @Description : RESTful API 호출 샘플
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 22. KNKIM 최초 생성 * @ 2021. 6. 22. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 22. * @since 2021. 6. 22.
* @version 1.0 * @version 1.0
* *
*/ */
@Controller @Controller
public class SampleDataApiController { public class SampleDataApiController {
/** SampleDataApiService */ /** SampleDataApiService */
@Resource(name = "sampleDataApiService") @Resource(name = "sampleDataApiService")
private SampleDataApiService sampleDataApiService; private SampleDataApiService sampleDataApiService;
/* DataApi 접속 서버 정보 */ /* DataApi 접속 서버 정보 */
@Value("#{properties['dataapi.server.ip']}") @Value("#{properties['dataapi.server.ip']}")
private String dataapiServerIp; private String dataapiServerIp;
@Value("#{properties['dataapi.server.port']}") @Value("#{properties['dataapi.server.port']}")
private String dataapiServerPort; private String dataapiServerPort;
@Value("#{properties['dataapi.server.protocol']}") @Value("#{properties['dataapi.server.protocol']}")
private String dataapiServerProtocol; private String dataapiServerProtocol;
@RequestMapping("/sample/getSampleInfoForm.do") @RequestMapping("/sample/getSampleInfoForm.do")
public String getSampleInfoForm(ModelMap model) throws Exception { public String getSampleInfoForm(ModelMap model) throws Exception {
model.addAttribute("serverProtocol", dataapiServerIp); model.addAttribute("serverProtocol", dataapiServerIp);
model.addAttribute("serverIp", dataapiServerPort); model.addAttribute("serverIp", dataapiServerPort);
model.addAttribute("serverPort", dataapiServerProtocol); model.addAttribute("serverPort", dataapiServerProtocol);
return "nlib/sample/getSampleInfoForm"; return "nlib/sample/getSampleInfoForm";
} }
@RequestMapping("/sample/getSampleInfo.do") @RequestMapping("/sample/getSampleInfo.do")
public String getSampleInfo(@RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception { public String getSampleInfo(@RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception {
String authKey = (String) commandMap.get("authKey"); String authKey = (String) commandMap.get("authKey");
String page = (String) commandMap.get("page"); String page = (String) commandMap.get("page");
String rows = (String) commandMap.get("rows"); String rows = (String) commandMap.get("rows");
DataApiReqVO reqVO = new DataApiReqVO(); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(authKey); reqVO.setAuthKey(authKey);
reqVO.setPageIndex(page); reqVO.setPageIndex(page);
reqVO.setPageSize(rows); reqVO.setPageSize(rows);
DataApiResVO resVO = sampleDataApiService.getSampleInfo(reqVO); DataApiResVO resVO = sampleDataApiService.getSampleInfo(reqVO);
model.addAttribute("result", resVO); model.addAttribute("result", resVO);
return "nlib/sample/getSampleInfo"; return "nlib/sample/getSampleInfo";
} }
} }

View File

@ -1,108 +1,108 @@
package nlib.sample.web; package nlib.sample.web;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import egovframework.rte.fdl.cryptography.EgovEnvCryptoService; import egovframework.rte.fdl.cryptography.EgovEnvCryptoService;
import egovframework.rte.fdl.cryptography.EgovPasswordEncoder; import egovframework.rte.fdl.cryptography.EgovPasswordEncoder;
import egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl; import egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl;
import nlib.cmm.crypto.AriaCrypto; import nlib.cmm.crypto.AriaCrypto;
import nlib.util.StringUtil; import nlib.util.StringUtil;
/** /**
* <pre> * <pre>
* @Class Name : SampleEncoderController.java * @Class Name : SampleEncoderController.java
* *
* @Description : 비밀번호 인코딩값 조회/생성 * @Description : 비밀번호 인코딩값 조회/생성
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 8. KNKIM 최초 생성 * @ 2021. 7. 8. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 8. * @since 2021. 7. 8.
* @version 1.0 * @version 1.0
* *
*/ */
@Controller @Controller
public class SampleEncoderController { public class SampleEncoderController {
private static final Logger log = LoggerFactory.getLogger(SampleEncoderController.class); private static final Logger log = LoggerFactory.getLogger(SampleEncoderController.class);
/** 암호화서비스 */ /** 암호화서비스 */
@Resource(name = "egovEnvCryptoService") @Resource(name = "egovEnvCryptoService")
EgovEnvCryptoService cryptoService; EgovEnvCryptoService cryptoService;
@Resource(name = "egovEnvPasswordEncoderService") @Resource(name = "egovEnvPasswordEncoderService")
EgovPasswordEncoder egovPasswordEncoder; EgovPasswordEncoder egovPasswordEncoder;
@Resource(name = "ariaCrypto") @Resource(name = "ariaCrypto")
AriaCrypto ariaCrypto; AriaCrypto ariaCrypto;
@Value("#{properties['dataapi.server.ip']}") @Value("#{properties['dataapi.server.ip']}")
private String dataapiServerIp; private String dataapiServerIp;
@RequestMapping("/sample/password/getSampleEncoder.do") @RequestMapping("/sample/password/getSampleEncoder.do")
public String getSampleInfoForm(ModelMap model public String getSampleInfoForm(ModelMap model
, @RequestParam(required=false) String hash , @RequestParam(required=false) String hash
, @RequestParam(required=false) String plainText , @RequestParam(required=false) String plainText
, @RequestParam(required=false) String key , @RequestParam(required=false) String key
) throws Exception { ) throws Exception {
String msg = null; String msg = null;
String encodedText = null; String encodedText = null;
String decodedText = null; String decodedText = null;
if(StringUtil.isEmpty(hash)) { if(StringUtil.isEmpty(hash)) {
msg = "암호화 알고리즘을 선택하여 주시기 바랍니다."; msg = "암호화 알고리즘을 선택하여 주시기 바랍니다.";
} else if(StringUtil.isEmpty(plainText)) { } else if(StringUtil.isEmpty(plainText)) {
msg = "암호화할 문자열을 입력하여 주시기 바랍니다."; msg = "암호화할 문자열을 입력하여 주시기 바랍니다.";
} else { } else {
log.debug("암호화 처리 시작 =" + plainText + "="); log.debug("암호화 처리 시작 =" + plainText + "=");
if("sha-256".equals(hash)) { if("sha-256".equals(hash)) {
encodedText = egovPasswordEncoder.encryptPassword(plainText); encodedText = egovPasswordEncoder.encryptPassword(plainText);
} else if("aria".equals(hash)) { } else if("aria".equals(hash)) {
if(StringUtil.isEmpty(key)) encodedText = ariaCrypto.encode(plainText); if(StringUtil.isEmpty(key)) encodedText = ariaCrypto.encode(plainText);
else encodedText = ariaCrypto.encode(plainText, key); else encodedText = ariaCrypto.encode(plainText, key);
log.debug(" Aria plainText=" + plainText); log.debug(" Aria plainText=" + plainText);
log.debug(" Aria encodedText=" + encodedText); log.debug(" Aria encodedText=" + encodedText);
if(StringUtil.isEmpty(key)) decodedText = ariaCrypto.decode(encodedText); if(StringUtil.isEmpty(key)) decodedText = ariaCrypto.decode(encodedText);
else decodedText = ariaCrypto.decode(encodedText, key); else decodedText = ariaCrypto.decode(encodedText, key);
log.debug(" Aria after decoding, decodedText=" + decodedText); log.debug(" Aria after decoding, decodedText=" + decodedText);
} else { } else {
msg = "암호화 알고리즘이 적합하지 않습니다."; msg = "암호화 알고리즘이 적합하지 않습니다.";
} }
} }
model.addAttribute("msg", msg); model.addAttribute("msg", msg);
model.addAttribute("hash", hash); model.addAttribute("hash", hash);
model.addAttribute("plainText", plainText); model.addAttribute("plainText", plainText);
model.addAttribute("encodedText", encodedText); model.addAttribute("encodedText", encodedText);
model.addAttribute("decodedText", decodedText); model.addAttribute("decodedText", decodedText);
model.addAttribute("key", key); model.addAttribute("key", key);
return "nlib/sample/getSampleEncoder"; return "nlib/sample/getSampleEncoder";
} }
} }

View File

@ -1,77 +1,77 @@
package nlib.user.web; package nlib.user.web;
import java.util.HashMap; import java.util.HashMap;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.security.SecUserVO; import nlib.security.SecUserVO;
/** /**
* <pre> * <pre>
* @Class Name : userInfoController.java * @Class Name : userInfoController.java
* *
* @Description : 회원 정보 controller * @Description : 회원 정보 controller
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 14. JSYOO 최초 생성 * @ 2021. 7. 14. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 14. * @since 2021. 7. 14.
* @version 1.0 * @version 1.0
* *
*/ */
@Controller @Controller
public class userInfoController { public class userInfoController {
/** /**
* 정보 조회 * 정보 조회
* @exception Exception * @exception Exception
*/ */
@RequestMapping(value="/userInfo/getMyInfo.do") @RequestMapping(value="/userInfo/getMyInfo.do")
public String getMyInfo(HttpServletResponse response,HttpServletRequest request) throws Exception{ public String getMyInfo(HttpServletResponse response,HttpServletRequest request) throws Exception{
return "nlib/userInfo/getMyInfo"; return "nlib/userInfo/getMyInfo";
} }
/** /**
* 정보 수정 * 정보 수정
* @exception Exception * @exception Exception
*/ */
@RequestMapping(value="/userInfo/putMyInfo.do") @RequestMapping(value="/userInfo/putMyInfo.do")
public String putMyInfo(HttpServletResponse response,HttpServletRequest request,Authentication authentication,ModelMap model) throws Exception{ public String putMyInfo(HttpServletResponse response,HttpServletRequest request,Authentication authentication,ModelMap model) throws Exception{
SecUserVO vo=(SecUserVO) authentication.getPrincipal(); SecUserVO vo=(SecUserVO) authentication.getPrincipal();
HashMap map = new HashMap(); HashMap map = new HashMap();
map.put("id", vo.getId()); map.put("id", vo.getId());
//회원 ID로 회원의 정보를 조회해온다. //회원 ID로 회원의 정보를 조회해온다.
DataApiReqVO reqvo=new DataApiReqVO(); DataApiReqVO reqvo=new DataApiReqVO();
reqvo.setInfo(map); reqvo.setInfo(map);
model.addAttribute("result",vo); model.addAttribute("result",vo);
return "nlib/userInfo/putMyInfo"; return "nlib/userInfo/putMyInfo";
} }
/** /**
* 정보 수정 password 인증 * 정보 수정 password 인증
* @exception Exception * @exception Exception
*/ */
@RequestMapping(value="/userInfo/pwCertMyInfo.do") @RequestMapping(value="/userInfo/pwCertMyInfo.do")
public String pwCertMyInfo(HttpServletResponse response,HttpServletRequest request) throws Exception{ public String pwCertMyInfo(HttpServletResponse response,HttpServletRequest request) throws Exception{
return "nlib/userInfo/pwCertMyInfo"; return "nlib/userInfo/pwCertMyInfo";
} }
} }

View File

@ -1,48 +1,48 @@
package nlib.util; package nlib.util;
import egovframework.com.utl.fcc.service.EgovFormBasedFileUtil; import egovframework.com.utl.fcc.service.EgovFormBasedFileUtil;
import egovframework.com.utl.fcc.service.EgovFormBasedUUID; import egovframework.com.utl.fcc.service.EgovFormBasedUUID;
/** /**
* <pre> * <pre>
* @Class Name : UUID.java * @Class Name : UUID.java
* *
* @Description : UUID를 생성한다. * @Description : UUID를 생성한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 13. KNKIM 최초 생성 * @ 2021. 7. 13. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 13. * @since 2021. 7. 13.
* @version 1.0 * @version 1.0
* *
*/ */
public class UUID { public class UUID {
/** /**
* 새로운 UUID를 생성하여 리턴한다. * 새로운 UUID를 생성하여 리턴한다.
* *
* @return * @return
*/ */
public static String getNewUUID() { public static String getNewUUID() {
return EgovFormBasedUUID.randomUUID().toString(); return EgovFormBasedUUID.randomUUID().toString();
} }
/** /**
* 파일용 UUID로 생성한 파일명을 리턴한다. * 파일용 UUID로 생성한 파일명을 리턴한다.
* *
* @return * @return
*/ */
public static String getPhysicalFileName() { public static String getPhysicalFileName() {
return "F" + StringUtil.getTimeStamp() + "_" + getNewUUID().replaceAll("-", "").toUpperCase(); return "F" + StringUtil.getTimeStamp() + "_" + getNewUUID().replaceAll("-", "").toUpperCase();
} }
} }

View File

@ -1,77 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans <beans
xmlns="http://www.springframework.org/schema/beans" xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation=" xsi:schemaLocation="
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.0.xsd http://www.springframework.org/schema/util/spring-util-4.0.xsd
"> ">
<context:component-scan base-package="egovframework, nlib"> <context:component-scan base-package="egovframework, nlib">
<!-- <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> --> <!-- <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> -->
</context:component-scan> </context:component-scan>
<context:annotation-config /> <context:annotation-config />
<!-- NLIB PROPERTIES 추가 (DIGITALSHIP 2021.06.17) --> <!-- NLIB PROPERTIES 추가 (DIGITALSHIP 2021.06.17) -->
<util:properties id="properties" location="classpath:nlib/nlib.properties" /> <util:properties id="properties" location="classpath:nlib/nlib.properties" />
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames"> <property name="basenames">
<list> <list>
<value>classpath:/egovframework/message/message-common</value> <value>classpath:/egovframework/message/message-common</value>
<value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value> <value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value>
<value>classpath:/egovframework/rte/fdl/property/messages/properties</value> <value>classpath:/egovframework/rte/fdl/property/messages/properties</value>
</list> </list>
</property> </property>
<property name="cacheSeconds"> <property name="cacheSeconds">
<value>60</value> <value>60</value>
</property> </property>
</bean> </bean>
<bean id="leaveaTrace" class="egovframework.rte.fdl.cmmn.trace.LeaveaTrace"> <bean id="leaveaTrace" class="egovframework.rte.fdl.cmmn.trace.LeaveaTrace">
<property name="traceHandlerServices"> <property name="traceHandlerServices">
<list> <list>
<ref bean="traceHandlerService" /> <ref bean="traceHandlerService" />
</list> </list>
</property> </property>
</bean> </bean>
<bean id="traceHandlerService" class="egovframework.rte.fdl.cmmn.trace.manager.DefaultTraceHandleManager"> <bean id="traceHandlerService" class="egovframework.rte.fdl.cmmn.trace.manager.DefaultTraceHandleManager">
<property name="reqExpMatcher"> <property name="reqExpMatcher">
<ref bean="antPathMater" /> <ref bean="antPathMater" />
</property> </property>
<property name="patterns"> <property name="patterns">
<list> <list>
<value>*</value> <value>*</value>
</list> </list>
</property> </property>
<property name="handlers"> <property name="handlers">
<list> <list>
<ref bean="defaultTraceHandler" /> <ref bean="defaultTraceHandler" />
</list> </list>
</property> </property>
</bean> </bean>
<bean id="antPathMater" class="org.springframework.util.AntPathMatcher" /> <bean id="antPathMater" class="org.springframework.util.AntPathMatcher" />
<bean id="defaultTraceHandler" class="egovframework.rte.fdl.cmmn.trace.handler.DefaultTraceHandler" /> <bean id="defaultTraceHandler" class="egovframework.rte.fdl.cmmn.trace.handler.DefaultTraceHandler" />
<!-- MULTIPART RESOLVERS --> <!-- MULTIPART RESOLVERS -->
<!-- regular spring resolver --> <!-- regular spring resolver -->
<bean id="spring.RegularCommonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <bean id="spring.RegularCommonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="600000000" /> <property name="maxUploadSize" value="600000000" />
<property name="maxInMemorySize" value="100000000" /> <property name="maxInMemorySize" value="100000000" />
</bean> </bean>
<alias name="spring.RegularCommonsMultipartResolver" alias="multipartResolver" /> <alias name="spring.RegularCommonsMultipartResolver" alias="multipartResolver" />
</beans> </beans>

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- <bean id="beanValidator" class="org.springmodules.validation.commons.DefaultBeanValidator"> <!-- <bean id="beanValidator" class="org.springmodules.validation.commons.DefaultBeanValidator">
<property name="validatorFactory" ref="validatorFactory"/> <property name="validatorFactory" ref="validatorFactory"/>
</bean> --> </bean> -->
<!-- <!--
<bean id="validatorFactory" class="org.springmodules.validation.commons.DefaultValidatorFactory"> <bean id="validatorFactory" class="org.springmodules.validation.commons.DefaultValidatorFactory">
<property name="validationConfigLocations"> <property name="validationConfigLocations">
<list> <list>
<value>/WEB-INF/config/egovframework/validator/validator-rules.xml</value> <value>/WEB-INF/config/egovframework/validator/validator-rules.xml</value>
<value>/WEB-INF/config/egovframework/validator/validator.xml</value> <value>/WEB-INF/config/egovframework/validator/validator.xml</value>
</list> </list>
</property> </property>
</bean> --> </bean> -->
</beans> </beans>

View File

@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Configuration> <Configuration>
<Appenders> <Appenders>
<Console name="console" target="SYSTEM_OUT"> <Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %5p [%c] %m%n" /> <PatternLayout pattern="%d %5p [%c] %m%n" />
</Console> </Console>
</Appenders> </Appenders>
<Loggers> <Loggers>
<Logger name="java.sql" level="INFO" additivity="false"> <Logger name="java.sql" level="INFO" additivity="false">
<AppenderRef ref="console" /> <AppenderRef ref="console" />
</Logger> </Logger>
<Logger name="egovframework" level="DEBUG" additivity="false"> <Logger name="egovframework" level="DEBUG" additivity="false">
<AppenderRef ref="console" /> <AppenderRef ref="console" />
</Logger> </Logger>
<!-- log SQL with timing information, post execution --> <!-- log SQL with timing information, post execution -->
<Logger name="jdbc.sqltiming" level="INFO" additivity="false"> <Logger name="jdbc.sqltiming" level="INFO" additivity="false">
<AppenderRef ref="console" /> <AppenderRef ref="console" />
</Logger> </Logger>
<Logger name="org.springframework" level="DEBUG" additivity="false"> <Logger name="org.springframework" level="DEBUG" additivity="false">
<AppenderRef ref="console" /> <AppenderRef ref="console" />
</Logger> </Logger>
<Root level="DEBUG"> <Root level="DEBUG">
<AppenderRef ref="console" /> <AppenderRef ref="console" />
</Root> </Root>
</Loggers> </Loggers>
</Configuration> </Configuration>

View File

@ -1,62 +1,62 @@
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# #
# nlib.properties : \uc628\ub77c\uc778\uc790\ub8cc\ub300\ucd9c\uad00\ub9ac\uc2dc\uc2a4\ud15c # nlib.properties : \uc628\ub77c\uc778\uc790\ub8cc\ub300\ucd9c\uad00\ub9ac\uc2dc\uc2a4\ud15c
# #
# @\ud504\ub85c\uc81d\ud2b8\uba85: \uc9c0\ubc29\ubb38\ud654\uc6d0 \ud1b5\ud569\uc790\ub8cc\uad00\ub9ac\uc2dc\uc2a4\ud15c \uad6c\ucd95\uc0ac\uc5c5 (2021) # @\ud504\ub85c\uc81d\ud2b8\uba85: \uc9c0\ubc29\ubb38\ud654\uc6d0 \ud1b5\ud569\uc790\ub8cc\uad00\ub9ac\uc2dc\uc2a4\ud15c \uad6c\ucd95\uc0ac\uc5c5 (2021)
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. # 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4.
# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 # 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5
# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 # 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5
# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) # 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9)
# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) # 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428)
# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' # 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/'
# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 # 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9
# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 # 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
#---------------------------------------- #----------------------------------------
# DataAPI \uc811\uc18d\uc815\ubcf4 # DataAPI \uc811\uc18d\uc815\ubcf4
#---------------------------------------- #----------------------------------------
# \uac1c\ubc1c \uc11c\ubc84 # \uac1c\ubc1c \uc11c\ubc84
#dataapi.server.ip = 210.181.197.70 #dataapi.server.ip = 210.181.197.70
#dataapi.server.port = 80 #dataapi.server.port = 80
#dataapi.server.protocol = http #dataapi.server.protocol = http
# \ub85c\uceec \uc11c\ubc84 # \ub85c\uceec \uc11c\ubc84
dataapi.server.ip = localhost dataapi.server.ip = localhost
dataapi.server.port = 8088 dataapi.server.port = 8088
dataapi.server.protocol = http dataapi.server.protocol = http
# \ub85c\uceec \uac1c\ubc1c\uc6a9 XML \ud30c\uc77c \uc704\uce58 # \ub85c\uceec \uac1c\ubc1c\uc6a9 XML \ud30c\uc77c \uc704\uce58
dataapi.temp.xml.path = C:/iams/workspace/nlib/data/dataxml dataapi.temp.xml.path = C:/iams/workspace/nlib/data/dataxml
# Aria \uc54c\uace0\ub9ac\uc998 # Aria \uc54c\uace0\ub9ac\uc998
crypto.aria.defaultKey = TheFederationOfKoreaCultureCenter027042322 crypto.aria.defaultKey = TheFederationOfKoreaCultureCenter027042322
#---------------------------------------- #----------------------------------------
# \ubaa9\ub85d \ud398\uc774\uc9d5 # \ubaa9\ub85d \ud398\uc774\uc9d5
#---------------------------------------- #----------------------------------------
list.paging.page.size = 10 list.paging.page.size = 10
#---------------------------------------- #----------------------------------------
# \ucca8\ubd80\ud30c\uc77c \uacbd\ub85c \uc815\ubcf4 # \ucca8\ubd80\ud30c\uc77c \uacbd\ub85c \uc815\ubcf4
#---------------------------------------- #----------------------------------------
# \ucca8\ubd80\ud30c\uc77c \ucd5c\uc0c1\uc704 \uc704\uce58 # \ucca8\ubd80\ud30c\uc77c \ucd5c\uc0c1\uc704 \uc704\uce58
fileupload.base.path = C:/iams/workspace/nlib/data/fileupload fileupload.base.path = C:/iams/workspace/nlib/data/fileupload
# \uc784\uc2dc \uc800\uc7a5 \uc704\uce58 # \uc784\uc2dc \uc800\uc7a5 \uc704\uce58
fileupload.temp.subpath = /temp fileupload.temp.subpath = /temp
# \ubb3b\uace0\ub2f5\ud558\uae30 \uac8c\uc2dc\ud310 \uc11c\ube0c\uc704\uce58 : \ucca8\ubd80\ud30c\uc77c \ucd5c\uc0c1\uc704 \uc704\uce58 \uc774\ud558\uc758 \uc704\uce58 \uc815\ubcf4\ub97c \uc124\uc815 # \ubb3b\uace0\ub2f5\ud558\uae30 \uac8c\uc2dc\ud310 \uc11c\ube0c\uc704\uce58 : \ucca8\ubd80\ud30c\uc77c \ucd5c\uc0c1\uc704 \uc704\uce58 \uc774\ud558\uc758 \uc704\uce58 \uc815\ubcf4\ub97c \uc124\uc815
fileupload.bbs.qna.subpath = /bbs/qna fileupload.bbs.qna.subpath = /bbs/qna
# \uba54\uc77c \uacbd\ub85c # \uba54\uc77c \uacbd\ub85c
mailing.sender.membership.template = C:/iams/workspace/nlib/src/main/webapp/mail/mail_template.html mailing.sender.membership.template = C:/iams/workspace/nlib/src/main/webapp/mail/mail_template.html
#\uba54\uc77c \ubcf4\ub0b4\ub294 \uc8fc\uc18c #\uba54\uc77c \ubcf4\ub0b4\ub294 \uc8fc\uc18c
mailing.sender.membership.email = no-reply@nlib.org mailing.sender.membership.email = no-reply@nlib.org
#\uba54\uc77c \ubcf4\ub0b4\ub294\uc0ac\ub78c \uc774\ub984 #\uba54\uc77c \ubcf4\ub0b4\ub294\uc0ac\ub78c \uc774\ub984
mailing.sender.membership.name = Nlib mailing.sender.membership.name = Nlib

View File

@ -1,85 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<context:component-scan base-package="egovframework, nlib"> <context:component-scan base-package="egovframework, nlib">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan> </context:component-scan>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="webBindingInitializer"> <property name="webBindingInitializer">
<bean class="egovframework.com.cmm.web.EgovBindingInitializer"/> <bean class="egovframework.com.cmm.web.EgovBindingInitializer"/>
</property> </property>
<!-- @ResponseBody : application/json 변경 (2021.7.20 KKN) --> <!-- @ResponseBody : application/json 변경 (2021.7.20 KKN) -->
<property name="messageConverters"> <property name="messageConverters">
<list> <list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</list> </list>
</property> </property>
</bean> </bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="interceptors"> <property name="interceptors">
<list> <list>
<ref bean="localeChangeInterceptor" /> <ref bean="localeChangeInterceptor" />
</list> </list>
</property> </property>
</bean> </bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" /> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
<!-- 쿠키를 이용한 Locale 이용시 <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/> --> <!-- 쿠키를 이용한 Locale 이용시 <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/> -->
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="language" /> <property name="paramName" value="language" />
</bean> </bean>
<!-- <!--
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="cmmn/egovError"/> <property name="defaultErrorView" value="cmmn/egovError"/>
<property name="exceptionMappings"> <property name="exceptionMappings">
<props> <props>
<prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmmn/egovError</prop> <prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmmn/egovError</prop>
<prop key="org.springframework.security.AccessDeniedException">cmmn/egovError</prop> <prop key="org.springframework.security.AccessDeniedException">cmmn/egovError</prop>
</props> </props>
</property> </property>
</bean> </bean>
--> -->
<!-- tiles 설정 : 시작 --> <!-- tiles 설정 : 시작 -->
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" /> <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
<property name="order" value="1" /> <property name="order" value="1" />
</bean> </bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions"> <property name="definitions">
<list> <list>
<value>/WEB-INF/tiles/tiles-layout.xml</value> <value>/WEB-INF/tiles/tiles-layout.xml</value>
</list> </list>
</property> </property>
</bean> </bean>
<!-- tiles 설정 : 종료 --> <!-- tiles 설정 : 종료 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" /> <property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" /> <property name="suffix" value=".jsp" />
<property name="order" value="1" /> <property name="order" value="1" />
</bean> </bean>
<!-- For Pagination Tag --> <!-- For Pagination Tag -->
<bean id="imageRenderer" class="egovframework.com.cmm.web.EgovImgPaginationRenderer"/> <bean id="imageRenderer" class="egovframework.com.cmm.web.EgovImgPaginationRenderer"/>
<bean id="paginationManager" class="egovframework.rte.ptl.mvc.tags.ui.pagination.DefaultPaginationManager"> <bean id="paginationManager" class="egovframework.rte.ptl.mvc.tags.ui.pagination.DefaultPaginationManager">
<property name="rendererType"> <property name="rendererType">
<map> <map>
<entry key="image" value-ref="imageRenderer"/> <entry key="image" value-ref="imageRenderer"/>
</map> </map>
</property> </property>
</bean> </bean>
<!-- /For Pagination Tag --> <!-- /For Pagination Tag -->
<!-- <mvc:view-controller path="/cmmn/validator.do" view-name="cmmn/validator"/> --> <!-- <mvc:view-controller path="/cmmn/validator.do" view-name="cmmn/validator"/> -->
</beans> </beans>

View File

@ -1,83 +1,83 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : getSampleInfo.jsp * @Class Name : getSampleInfo.jsp
* *
* @Description : RESTful API 호출 샘플 * @Description : RESTful API 호출 샘플
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 15. KNKIM 최초 생성 * @ 2021. 6. 15. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 15. * @since 2021. 6. 15.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">QRCode 회원정보</c:set> <c:set var="pageTitle">QRCode 회원정보</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- W2UI --> <!-- W2UI -->
<link rel="stylesheet" type="text/css" href="/nlib/js/w2ui/w2ui-nlib.css" /> <link rel="stylesheet" type="text/css" href="/nlib/js/w2ui/w2ui-nlib.css" />
<script type="text/javascript" src="/nlib/js/w2ui/w2ui-1.5.min.js"></script> <script type="text/javascript" src="/nlib/js/w2ui/w2ui-1.5.min.js"></script>
</head> </head>
<body> <body>
<!-- javascript warning tag --> <!-- javascript warning tag -->
<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> <noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript>
<form:form commandName="reqInfo" <form:form commandName="reqInfo"
action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post" action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post"
target="_blank" target="_blank"
onSubmit="fncAuthorInsert(document.forms[0]); return false;"> onSubmit="fncAuthorInsert(document.forms[0]); return false;">
<div id="grid" style="width: 100%; height: 250px;"></div> <div id="grid" style="width: 100%; height: 250px;"></div>
</form:form> </form:form>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
$(function () { $(function () {
$('#grid').w2grid({ $('#grid').w2grid({
name: 'grid', name: 'grid',
header: 'List of Names', header: 'List of Names',
columns: [ columns: [
{ field: 'fname', text: '이름', size: '30%' }, { field: 'fname', text: '이름', size: '30%' },
{ field: 'lname', text: '성명', size: '30%' }, { field: 'lname', text: '성명', size: '30%' },
{ field: 'email', text: '이메일', size: '40%' }, { field: 'email', text: '이메일', size: '40%' },
{ field: 'sdate', text: '시작일자', size: '120px' } { field: 'sdate', text: '시작일자', size: '120px' }
], ],
records: [ records: [
{ recid: 1, fname: "Peter", lname: "Jeremia", email: 'peter@mail.com', sdate: '2/1/2010' }, { recid: 1, fname: "Peter", lname: "Jeremia", email: 'peter@mail.com', sdate: '2/1/2010' },
{ recid: 2, fname: "Bruce", lname: "Wilkerson", email: 'bruce@mail.com', sdate: '6/1/2010' }, { recid: 2, fname: "Bruce", lname: "Wilkerson", email: 'bruce@mail.com', sdate: '6/1/2010' },
{ recid: 3, fname: "John", lname: "McAlister", email: 'john@mail.com', sdate: '1/16/2010' }, { recid: 3, fname: "John", lname: "McAlister", email: 'john@mail.com', sdate: '1/16/2010' },
{ recid: 4, fname: "Ravi", lname: "Zacharies", email: 'ravi@mail.com', sdate: '3/13/2007' }, { recid: 4, fname: "Ravi", lname: "Zacharies", email: 'ravi@mail.com', sdate: '3/13/2007' },
{ recid: 5, fname: "William", lname: "Dembski", email: 'will@mail.com', sdate: '9/30/2011' }, { recid: 5, fname: "William", lname: "Dembski", email: 'will@mail.com', sdate: '9/30/2011' },
{ recid: 6, fname: "David", lname: "Peterson", email: 'david@mail.com', sdate: '4/5/2010' } { recid: 6, fname: "David", lname: "Peterson", email: 'david@mail.com', sdate: '4/5/2010' }
] ]
}); });
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,121 +1,121 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : listQnAs.jsp * @Class Name : listQnAs.jsp
* *
* @Description : 묻고답하기 목록을 조회한다. * @Description : 묻고답하기 목록을 조회한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 13. KNKIM 최초 생성 * @ 2021. 7. 13. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 13. * @since 2021. 7. 13.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">묻고답하기 - 글쓰기</c:set> <c:set var="pageTitle">묻고답하기 - 글쓰기</c:set>
<!-- File Upload : 시작 --> <!-- File Upload : 시작 -->
<link rel="stylesheet" href="${pageContext.request.contextPath}/js/fileupload/dropzone.css" /> <link rel="stylesheet" href="${pageContext.request.contextPath}/js/fileupload/dropzone.css" />
<link rel="stylesheet" href="${pageContext.request.contextPath}/js/fileupload/style.css" /> <link rel="stylesheet" href="${pageContext.request.contextPath}/js/fileupload/style.css" />
<script src="${pageContext.request.contextPath}/js/fileupload/dropzone.js"></script> <script src="${pageContext.request.contextPath}/js/fileupload/dropzone.js"></script>
<!-- File Upload : 종료 --> <!-- File Upload : 종료 -->
<h3>${pageTitle }</h3> <h3>${pageTitle }</h3>
<!-- 글쓰기 : 폼 --> <!-- 글쓰기 : 폼 -->
<form:form commandName="reqInfo" <form:form commandName="reqInfo"
action="${pageContext.request.contextPath}/board/insertQnA.do" action="${pageContext.request.contextPath}/board/insertQnA.do"
method="post"> method="post">
<table> <table>
<tr> <tr>
<td>제목</td> <td>제목</td>
<td><input type="input" name="title" id="title" value="" /></td> <td><input type="input" name="title" id="title" value="" /></td>
</tr> </tr>
<tr> <tr>
<td>작성자명</td> <td>작성자명</td>
<td><input type="input" name="writerName" id="writerName" value="" /></td> <td><input type="input" name="writerName" id="writerName" value="" /></td>
</tr> </tr>
<tr> <tr>
<td>비밀번호</td> <td>비밀번호</td>
<td><input type="input" name="password" id="password" value="" /></td> <td><input type="input" name="password" id="password" value="" /></td>
</tr> </tr>
<tr> <tr>
<td>이메일</td> <td>이메일</td>
<td><input type="input" name="email" id="email" value="" /></td> <td><input type="input" name="email" id="email" value="" /></td>
</tr> </tr>
<tr> <tr>
<td>내용</td> <td>내용</td>
<td><textarea name="content" id="content" value=""></textarea></td> <td><textarea name="content" id="content" value=""></textarea></td>
</tr> </tr>
<tr> <tr>
<td>첨부파일</td> <td>첨부파일</td>
<td><input type="input" name="email" id="email" value="" /></td> <td><input type="input" name="email" id="email" value="" /></td>
</tr> </tr>
</table> </table>
<input type="button" name="btnNew" id="btnNew" value="확인" <input type="button" name="btnNew" id="btnNew" value="확인"
onclick="javascript:fileUploadNow();" /> onclick="javascript:fileUploadNow();" />
<input type="button" name="btnNew" id="btnNew" value="취소" <input type="button" name="btnNew" id="btnNew" value="취소"
onclick="javascript:location.href='${pageContext.request.contextPath}/board/listQnAs.do';" /> onclick="javascript:location.href='${pageContext.request.contextPath}/board/listQnAs.do';" />
</form:form> </form:form>
<div id="dropzone"> <div id="dropzone">
<form action="${pageContext.request.contextPath}/fileupload/uploadFile.do" <form action="${pageContext.request.contextPath}/fileupload/uploadFile.do"
class="dropzone needsclick" id="myDropzone" name="myDropzone"> class="dropzone needsclick" id="myDropzone" name="myDropzone">
<div class="dz-message needsclick"> <div class="dz-message needsclick">
<button type="button" class="dz-button">Drop files here or click to select files.</button><br /> <button type="button" class="dz-button">Drop files here or click to select files.</button><br />
<span class="note needsclick">이곳에 파일을 끌어다 놓거나, 클릭하여 올릴 파일을 선택하세요.</span> <span class="note needsclick">이곳에 파일을 끌어다 놓거나, 클릭하여 올릴 파일을 선택하세요.</span>
</div> </div>
</form> </form>
</div> </div>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
// 파일업로드 객체 생성 // 파일업로드 객체 생성
var myDropzone = new Dropzone("form#myDropzone", { url: "${pageContext.request.contextPath}/fileupload/uploadFilesAjax.do?subPathKey=fileupload.bbs.qna.subpath"}); var myDropzone = new Dropzone("form#myDropzone", { url: "${pageContext.request.contextPath}/fileupload/uploadFilesAjax.do?subPathKey=fileupload.bbs.qna.subpath"});
// 각 파일별 업로드 성공시 호출됨 // 각 파일별 업로드 성공시 호출됨
myDropzone.on("success", function(file) { myDropzone.on("success", function(file) {
alert("success : " + file.name); alert("success : " + file.name);
}); });
myDropzone.on("complete", function(file) { myDropzone.on("complete", function(file) {
alert("complete : " + file.name); alert("complete : " + file.name);
}); });
myDropzone.on("queuecomplete", function() { myDropzone.on("queuecomplete", function() {
alert("queuecomplete : " + file.name); alert("queuecomplete : " + file.name);
}); });
function fileUploadNow() { function fileUploadNow() {
myDropzone.processQueue(); myDropzone.processQueue();
} }
</script> </script>

View File

@ -1,83 +1,83 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : getSampleInfo.jsp * @Class Name : getSampleInfo.jsp
* *
* @Description : RESTful API 호출 샘플 * @Description : RESTful API 호출 샘플
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 15. KNKIM 최초 생성 * @ 2021. 6. 15. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 15. * @since 2021. 6. 15.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">QRCode 회원정보</c:set> <c:set var="pageTitle">QRCode 회원정보</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- W2UI --> <!-- W2UI -->
<link rel="stylesheet" type="text/css" href="/nlib/js/w2ui/w2ui-nlib.css" /> <link rel="stylesheet" type="text/css" href="/nlib/js/w2ui/w2ui-nlib.css" />
<script type="text/javascript" src="/nlib/js/w2ui/w2ui-1.5.min.js"></script> <script type="text/javascript" src="/nlib/js/w2ui/w2ui-1.5.min.js"></script>
</head> </head>
<body> <body>
<!-- javascript warning tag --> <!-- javascript warning tag -->
<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> <noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript>
<form:form commandName="reqInfo" <form:form commandName="reqInfo"
action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post" action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post"
target="_blank" target="_blank"
onSubmit="fncAuthorInsert(document.forms[0]); return false;"> onSubmit="fncAuthorInsert(document.forms[0]); return false;">
<div id="grid" style="width: 100%; height: 250px;"></div> <div id="grid" style="width: 100%; height: 250px;"></div>
</form:form> </form:form>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
$(function () { $(function () {
$('#grid').w2grid({ $('#grid').w2grid({
name: 'grid', name: 'grid',
header: 'List of Names', header: 'List of Names',
columns: [ columns: [
{ field: 'fname', text: '이름', size: '30%' }, { field: 'fname', text: '이름', size: '30%' },
{ field: 'lname', text: '성명', size: '30%' }, { field: 'lname', text: '성명', size: '30%' },
{ field: 'email', text: '이메일', size: '40%' }, { field: 'email', text: '이메일', size: '40%' },
{ field: 'sdate', text: '시작일자', size: '120px' } { field: 'sdate', text: '시작일자', size: '120px' }
], ],
records: [ records: [
{ recid: 1, fname: "Peter", lname: "Jeremia", email: 'peter@mail.com', sdate: '2/1/2010' }, { recid: 1, fname: "Peter", lname: "Jeremia", email: 'peter@mail.com', sdate: '2/1/2010' },
{ recid: 2, fname: "Bruce", lname: "Wilkerson", email: 'bruce@mail.com', sdate: '6/1/2010' }, { recid: 2, fname: "Bruce", lname: "Wilkerson", email: 'bruce@mail.com', sdate: '6/1/2010' },
{ recid: 3, fname: "John", lname: "McAlister", email: 'john@mail.com', sdate: '1/16/2010' }, { recid: 3, fname: "John", lname: "McAlister", email: 'john@mail.com', sdate: '1/16/2010' },
{ recid: 4, fname: "Ravi", lname: "Zacharies", email: 'ravi@mail.com', sdate: '3/13/2007' }, { recid: 4, fname: "Ravi", lname: "Zacharies", email: 'ravi@mail.com', sdate: '3/13/2007' },
{ recid: 5, fname: "William", lname: "Dembski", email: 'will@mail.com', sdate: '9/30/2011' }, { recid: 5, fname: "William", lname: "Dembski", email: 'will@mail.com', sdate: '9/30/2011' },
{ recid: 6, fname: "David", lname: "Peterson", email: 'david@mail.com', sdate: '4/5/2010' } { recid: 6, fname: "David", lname: "Peterson", email: 'david@mail.com', sdate: '4/5/2010' }
] ]
}); });
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,146 +1,146 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : listNotices.jsp * @Class Name : listNotices.jsp
* *
* @Description : JS-GRID 샘플 화면 * @Description : JS-GRID 샘플 화면
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 15. KNKIM 최초 생성 * @ 2021. 6. 15. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 15. * @since 2021. 6. 15.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">공지사항</c:set> <c:set var="pageTitle">공지사항</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- GRID --> <!-- GRID -->
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script> <script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
</head> </head>
<body> <body>
<form:form commandName="reqInfo" <form:form commandName="reqInfo"
action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post" action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post"
target="_blank" target="_blank"
onSubmit="fncAuthorInsert(document.forms[0]); return false;"> onSubmit="fncAuthorInsert(document.forms[0]); return false;">
<div id="jsGrid" name="jsGrid" ></div> <div id="jsGrid" name="jsGrid" ></div>
</form:form> </form:form>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
// 그리드 데이터 // 그리드 데이터
var clients = [ var clients = [
{ "noticeNo": 1, "noticeType": "01", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 1, "noticeType": "01", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 2, "noticeType": "02", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 2, "noticeType": "02", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 3, "noticeType": "03", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 3, "noticeType": "03", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 4, "noticeType": "04", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 4, "noticeType": "04", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 5, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 5, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 6, "noticeType": "06", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 6, "noticeType": "06", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 7, "noticeType": "06", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 7, "noticeType": "06", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 9, "noticeType": "01", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" } { "noticeNo": 9, "noticeType": "01", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }
]; ];
// 그리드내 콤보박스 값 // 그리드내 콤보박스 값
var noticeTypes = [ var noticeTypes = [
{ Name: "공지" , Id: "01" }, { Name: "공지" , Id: "01" },
{ Name: "자료" , Id: "02" }, { Name: "자료" , Id: "02" },
{ Name: "모집" , Id: "03" }, { Name: "모집" , Id: "03" },
{ Name: "입찰" , Id: "04" }, { Name: "입찰" , Id: "04" },
{ Name: "발표" , Id: "05" }, { Name: "발표" , Id: "05" },
{ Name: "이벤트", Id: "06" } { Name: "이벤트", Id: "06" }
]; ];
// 그리드 생성 // 그리드 생성
$("#jsGrid").jsGrid({ $("#jsGrid").jsGrid({
width: "100%", width: "100%",
height: "100%", height: "100%",
inserting: false, inserting: false,
editing: false, editing: false,
sorting: true, sorting: true,
paging: true, paging: true,
pageSize: 10, pageSize: 10,
pageButtonCount: 10, pageButtonCount: 10,
pageIndex: 1, pageIndex: 1,
pageFirstText: " << ", pageFirstText: " << ",
pagePrevText: " < ", pagePrevText: " < ",
pageLastText: " >> ", pageLastText: " >> ",
pageNextText: " > ", pageNextText: " > ",
pagerFormat: "{first} {prev} {pages} {next} {last}", pagerFormat: "{first} {prev} {pages} {next} {last}",
data: clients, data: clients,
fields: [ fields: [
{ title:"번호", name: "noticeNo" , type: "number" , width: 50, align: "center"}, { title:"번호", name: "noticeNo" , type: "number" , width: 50, align: "center"},
{ title:"유형", name: "noticeType", type: "select", width: 80, align: "center", items: noticeTypes, valueField: "Id", textField: "Name" }, { title:"유형", name: "noticeType", type: "select", width: 80, align: "center", items: noticeTypes, valueField: "Id", textField: "Name" },
{ title:"제목", name: "title", type: "text" , width: 200, align: "left" }, { title:"제목", name: "title", type: "text" , width: 200, align: "left" },
{ title:"조회수", name: "readCount", type: "number", width: 50, align: "center" }, { title:"조회수", name: "readCount", type: "number", width: 50, align: "center" },
{ title:"등록일", name: "regDate", type: "text", width: 100, align: "center"} { title:"등록일", name: "regDate", type: "text", width: 100, align: "center"}
] ]
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,183 +1,183 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : listQnAs.jsp * @Class Name : listQnAs.jsp
* *
* @Description : 묻고답하기 목록을 조회한다. * @Description : 묻고답하기 목록을 조회한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 13. KNKIM 최초 생성 * @ 2021. 7. 13. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 13. * @since 2021. 7. 13.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">묻고답하기</c:set> <c:set var="pageTitle">묻고답하기</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- GRID --> <!-- GRID -->
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script> <script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
window.onload = function() { window.onload = function() {
//======================================================= //=======================================================
// 그리드 생성 환경설정 // 그리드 생성 환경설정
//======================================================= //=======================================================
$("#jsGrid").jsGrid({ $("#jsGrid").jsGrid({
pageSize : $("#pageSize").val(), pageSize : $("#pageSize").val(),
controller: { controller: {
loadData: function (filter) { // 그리드에 데이터를 가져올 때 실팽되는 함수 loadData: function (filter) { // 그리드에 데이터를 가져올 때 실팽되는 함수
var data = $.Deferred(); var data = $.Deferred();
//====================================== //======================================
// 요청 정보 구성 : 시작 (각 요청에 맞게 조정) // 요청 정보 구성 : 시작 (각 요청에 맞게 조정)
//====================================== //======================================
var reqUrl = "${pageContext.request.contextPath}/board/listQnAsAjax.do"; var reqUrl = "${pageContext.request.contextPath}/board/listQnAsAjax.do";
var searchKeyword = document.articleForm.searchKeyword.value; var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val()); var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val());
var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val()); var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val());
$("#pageIndex").val(pageIndex); $("#pageIndex").val(pageIndex);
var inputData = { var inputData = {
"searchKeyword" : searchKeyword "searchKeyword" : searchKeyword
, "pageIndex" : pageIndex , "pageIndex" : pageIndex
, "pageSize": pageSize}; , "pageSize": pageSize};
//-------------------------------------- //--------------------------------------
// 요청 처리 // 요청 처리
//-------------------------------------- //--------------------------------------
$.ajax({ $.ajax({
type: "post", type: "post",
contentType: "application/json; charset=utf-8", contentType: "application/json; charset=utf-8",
url: reqUrl, url: reqUrl,
dataType: "json", dataType: "json",
data: JSON.stringify(inputData), data: JSON.stringify(inputData),
}).done(function(response){ }).done(function(response){
<% <%
// 그리드 데이터 예시 : // 그리드 데이터 예시 :
// (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }] // (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }]
// (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255} // (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255}
%> %>
data.resolve(JSON.parse(response)); data.resolve(JSON.parse(response));
}); });
return data.promise(); return data.promise();
} // loadData } // loadData
}, },
rowClick: function(args) { // 행 클릭 시, 실행되는 이벤트 함수 rowClick: function(args) { // 행 클릭 시, 실행되는 이벤트 함수
// 클릭된 행의 자료 객체 // 클릭된 행의 자료 객체
var getData = args.item; var getData = args.item;
// 추출할 컬럼의 데이터 가져오기 // 추출할 컬럼의 데이터 가져오기
var articleNo = getData["articleNo"]; var articleNo = getData["articleNo"];
// 상세 내용 보기 // 상세 내용 보기
fn_view_detail(articleNo); fn_view_detail(articleNo);
}, },
//====================================== //======================================
// 그리드 컬럼 정의 (각 요청에 맞게 조정) // 그리드 컬럼 정의 (각 요청에 맞게 조정)
//====================================== //======================================
fields: [ fields: [
{ title:"번호", name: "articleNo" , type: "number" , width: 50, align: "center"}, { title:"번호", name: "articleNo" , type: "number" , width: 50, align: "center"},
{ title:"제목", name: "title", type: "text" , width: 200, align: "left" }, { title:"제목", name: "title", type: "text" , width: 200, align: "left" },
{ title:"작성자", name: "writerName", type: "number", width: 50, align: "center" }, { title:"작성자", name: "writerName", type: "number", width: 50, align: "center" },
{ title:"등록일", name: "regDate", type: "text", width: 100, align: "center"}, { title:"등록일", name: "regDate", type: "text", width: 100, align: "center"},
{ title:"상태", name: "replyStatus", type: "text", width: 80, align: "center" } { title:"상태", name: "replyStatus", type: "text", width: 80, align: "center" }
] ]
}); });
// 페이지 크기 변경시 재조회 // 페이지 크기 변경시 재조회
$("#pageSize").on("change", function(e) { $("#pageSize").on("change", function(e) {
fn_search_article($("#pageSize").val(), 1); fn_search_article($("#pageSize").val(), 1);
}); });
// 검색 버튼 클릭 // 검색 버튼 클릭
$("#btnSearch").on("click", function(e) { $("#btnSearch").on("click", function(e) {
fn_search_article($("#pageSize").val(), 1); fn_search_article($("#pageSize").val(), 1);
}); });
//초기 자료 조회 //초기 자료 조회
fn_search_article(); fn_search_article();
}; // window.onload }; // window.onload
// 선택한 게시글 상세 보기로 이동 // 선택한 게시글 상세 보기로 이동
function fn_view_detail(articleNo) { function fn_view_detail(articleNo) {
$("#articleNo").val(articleNo); $("#articleNo").val(articleNo);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/selectQnA.do"); $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/selectQnA.do");
$("#articleForm").submit(); $("#articleForm").submit();
} }
// 그리드 데이터 조회 호출 // 그리드 데이터 조회 호출
function fn_search_article(pageSize, pageIndex) { function fn_search_article(pageSize, pageIndex) {
$("#jsGrid").jsGrid("search" $("#jsGrid").jsGrid("search"
, {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize} )), , {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize} )),
'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1)) 'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1))
} }
); );
} }
</script> </script>
</head> </head>
<body> <body>
<h1>${pageTitle }</h1> <h1>${pageTitle }</h1>
<form name="articleForm" id="articleForm" <form name="articleForm" id="articleForm"
action="${pageContext.request.contextPath}/board/listQnAs.do" action="${pageContext.request.contextPath}/board/listQnAs.do"
method="post"> method="post">
<!-- 검색조건 --> <!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수"> <select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<c:forEach var="pageSizeItem" items="${pageSizeCodes}" varStatus="status"> <c:forEach var="pageSizeItem" items="${pageSizeCodes}" varStatus="status">
<option value="<c:out value="${pageSizeItem.code }" />" <c:if test="${pageSizeItem.code == pageSize }">selected</c:if> ><c:out value="${pageSizeItem.name }" /></option> <option value="<c:out value="${pageSizeItem.code }" />" <c:if test="${pageSizeItem.code == pageSize }">selected</c:if> ><c:out value="${pageSizeItem.name }" /></option>
</c:forEach> </c:forEach>
</select> </select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" /> <input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword }" size="35" maxlength="50" /> <input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword }" size="35" maxlength="50" />
<input type="button" name="btnSearch" id="btnSearch" value="검색" /> <input type="button" name="btnSearch" id="btnSearch" value="검색" />
<div id="jsGrid" name="jsGrid" style="height: 100%"></div> <div id="jsGrid" name="jsGrid" style="height: 100%"></div>
<button type="button" name="btnNew" id="btnNew" class="float" <button type="button" name="btnNew" id="btnNew" class="float"
onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';">글쓰기</button> onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';">글쓰기</button>
<input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" readonly /> <input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" readonly />
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,157 +1,157 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : selectQnA.jsp * @Class Name : selectQnA.jsp
* *
* @Description : 묻고답하기 상세내용을 조회한다. * @Description : 묻고답하기 상세내용을 조회한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 22. KNKIM 최초 생성 * @ 2021. 7. 22. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 22. * @since 2021. 7. 22.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">묻고답하기 - 상세조회</c:set> <c:set var="pageTitle">묻고답하기 - 상세조회</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- GRID --> <!-- GRID -->
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script> <script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
</head> </head>
<body> <body>
<h1>${pageTitle }</h1> <h1>${pageTitle }</h1>
<span style="color:red;">${message }</span> <span style="color:red;">${message }</span>
<br /> <br />
<form name="articleForm" id="articleForm" <form name="articleForm" id="articleForm"
action="${pageContext.request.contextPath}/board/listQnAs.do" action="${pageContext.request.contextPath}/board/listQnAs.do"
method="post"> method="post">
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex}" size="5" maxlength="5" readonly /> <input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex}" size="5" maxlength="5" readonly />
<input type="text" name="pageSize" id="pageSize" title="목록에 보여줄 글 개" value="${pageSize}" size="5" maxlength="5" readonly /> <input type="text" name="pageSize" id="pageSize" title="목록에 보여줄 글 개" value="${pageSize}" size="5" maxlength="5" readonly />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword}" size="35" maxlength="50" readonly /> <input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword}" size="35" maxlength="50" readonly />
<input type="text" name="articleNo" id="articleNo" value="${articleNo}" title="선택글번호" readonly /> <input type="text" name="articleNo" id="articleNo" value="${articleNo}" title="선택글번호" readonly />
<input type="text" name="articlePassword" id="articlePassword" value="${articlePassword}" title="글비밀번호" readonly /> <input type="text" name="articlePassword" id="articlePassword" value="${articlePassword}" title="글비밀번호" readonly />
<table class="table_content" style="width:100% !important;"> <table class="table_content" style="width:100% !important;">
<tr> <tr>
<td>유형</td> <td>유형</td>
<td>Q & A</td> <td>Q & A</td>
<td>작성자 : ${article.regUserName }</td> <td>작성자 : ${article.regUserName }</td>
<td>작성일 : ${article.regDate }</td> <td>작성일 : ${article.regDate }</td>
<td>상태 : ${article.repStatus }</td> <td>상태 : ${article.repStatus }</td>
</tr> </tr>
<tr> <tr>
<td rowspan="2">질문내용</td> <td rowspan="2">질문내용</td>
<td colspan="4">${article.contentQeust}</td> <td colspan="4">${article.contentQeust}</td>
</tr> </tr>
<tr> <tr>
<td colspan="4">${article.contentQeustFile}</td> <td colspan="4">${article.contentQeustFile}</td>
</tr> </tr>
<tr> <tr>
<td rowspan="2">답변내용</td> <td rowspan="2">답변내용</td>
<td colspan="4">${article.contentReply}</td> <td colspan="4">${article.contentReply}</td>
</tr> </tr>
<tr> <tr>
<td colspan="4">${article.contentReplyFile}</td> <td colspan="4">${article.contentReplyFile}</td>
</tr> </tr>
</table> </table>
<br/> <br/>
<table class="table_content" style="width:100% !important;"> <table class="table_content" style="width:100% !important;">
<tr> <tr>
<td>이전글</td> <td>이전글</td>
<td>Q&A</td> <td>Q&A</td>
<td><a href=#" onclick="fn_view_detail('${preArticle.articleNo }')">${preArticle.title }</a></td> <td><a href=#" onclick="fn_view_detail('${preArticle.articleNo }')">${preArticle.title }</a></td>
<td>작성자 : ${preArticle.regUserName }</td> <td>작성자 : ${preArticle.regUserName }</td>
<td>작성일 : ${preArticle.regDate }</td> <td>작성일 : ${preArticle.regDate }</td>
<td>상태 : ${preArticle.repStatus }</td> <td>상태 : ${preArticle.repStatus }</td>
</tr> </tr>
<tr> <tr>
<td>다음글</td> <td>다음글</td>
<td>Q&A</td> <td>Q&A</td>
<td><a href=#" onclick="fn_view_detail('${nextArticle.articleNo }')">${nextArticle.title }</a></td> <td><a href=#" onclick="fn_view_detail('${nextArticle.articleNo }')">${nextArticle.title }</a></td>
<td>작성자 : ${nextArticle.regUserName }</td> <td>작성자 : ${nextArticle.regUserName }</td>
<td>작성일 : ${nextArticle.regDate }</td> <td>작성일 : ${nextArticle.regDate }</td>
<td>상태 : ${nextArticle.repStatus }</td> <td>상태 : ${nextArticle.repStatus }</td>
</tr> </tr>
</table> </table>
<button type="button" name="btnNew" id="btnNew" class="float" <button type="button" name="btnNew" id="btnNew" class="float"
onclick="fn_list()">목록</button> onclick="fn_list()">목록</button>
<button type="button" name="btnNew" id="btnNew" class="float" <button type="button" name="btnNew" id="btnNew" class="float"
onclick="fn_updatePassword()">수정</button> onclick="fn_updatePassword()">수정</button>
</form> </form>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
//선택한 게시글 상세 보기로 이동 //선택한 게시글 상세 보기로 이동
function fn_view_detail(articleNo) { function fn_view_detail(articleNo) {
$("#articleNo").val(articleNo); $("#articleNo").val(articleNo);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/selectQnA.do"); $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/selectQnA.do");
$("#articleForm").submit(); $("#articleForm").submit();
} }
// 선택한 게시글 상세 보기로 이동 // 선택한 게시글 상세 보기로 이동
function fn_list() { function fn_list() {
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/listQnAs.do"); $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/listQnAs.do");
$("#articleForm").submit(); $("#articleForm").submit();
} }
// 수정을 위한 비밀번호 입력 // 수정을 위한 비밀번호 입력
function fn_updateForm(passwd) { function fn_updateForm(passwd) {
if(passwd == null || passwd == "") { if(passwd == null || passwd == "") {
alert("수정을 위한 게시물의 비밀번호를 입력하여 주시기 바랍니다."); alert("수정을 위한 게시물의 비밀번호를 입력하여 주시기 바랍니다.");
return; return;
} }
$("#articlePassword").val(passwd); $("#articlePassword").val(passwd);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/updateQnAForm.do"); $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/updateQnAForm.do");
$("#articleForm").submit(); $("#articleForm").submit();
} }
// 게시글 수정 화면으로 이동 // 게시글 수정 화면으로 이동
function fn_updatePassword() { function fn_updatePassword() {
fn_promptPassword("비밀번호를 입력하여 주시기 바랍니다.", "fn_updateForm") fn_promptPassword("비밀번호를 입력하여 주시기 바랍니다.", "fn_updateForm")
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,143 +1,143 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : updateQnAForm.jsp * @Class Name : updateQnAForm.jsp
* *
* @Description : 묻고답하기 수정화면을 표출한다. * @Description : 묻고답하기 수정화면을 표출한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 23. KNKIM 최초 생성 * @ 2021. 7. 23. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 23. * @since 2021. 7. 23.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">묻고답하기 - 수정</c:set> <c:set var="pageTitle">묻고답하기 - 수정</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- GRID --> <!-- GRID -->
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script> <script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
</head> </head>
<body> <body>
<h1>${pageTitle }</h1> <h1>${pageTitle }</h1>
<span style="color:red;">${message }</span> <span style="color:red;">${message }</span>
<br /> <br />
<form name="articleForm" id="articleForm" <form name="articleForm" id="articleForm"
action="${pageContext.request.contextPath}/board/listQnAs.do" action="${pageContext.request.contextPath}/board/listQnAs.do"
method="post"> method="post">
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex}" size="5" maxlength="5" readonly /> <input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex}" size="5" maxlength="5" readonly />
<input type="text" name="pageSize" id="pageSize" title="목록에 보여줄 글 개" value="${pageSize}" size="5" maxlength="5" readonly /> <input type="text" name="pageSize" id="pageSize" title="목록에 보여줄 글 개" value="${pageSize}" size="5" maxlength="5" readonly />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword}" size="35" maxlength="50" readonly /> <input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword}" size="35" maxlength="50" readonly />
<input type="text" name="articleNo" id="articleNo" value="${articleNo}" title="선택글번호" readonly /> <input type="text" name="articleNo" id="articleNo" value="${articleNo}" title="선택글번호" readonly />
<input type="text" name="articlePassword" id="articlePassword" value="${articlePassword}" title="글비밀번호" readonly /> <input type="text" name="articlePassword" id="articlePassword" value="${articlePassword}" title="글비밀번호" readonly />
<table class="table_content" style="width:100% !important;"> <table class="table_content" style="width:100% !important;">
<tr> <tr>
<td>제목</td> <td>제목</td>
<td><input type="text" name="title" id="title" title="제목" value="${article.title}" size="100" maxlength="200" /></td> <td><input type="text" name="title" id="title" title="제목" value="${article.title}" size="100" maxlength="200" /></td>
</tr> </tr>
<tr> <tr>
<td>작성자</td> <td>작성자</td>
<td><input type="text" name="regUserName" id="regUserName" title="제목" value="${article.regUserName}" size="100" maxlength="200" /></td> <td><input type="text" name="regUserName" id="regUserName" title="제목" value="${article.regUserName}" size="100" maxlength="200" /></td>
</tr> </tr>
<tr> <tr>
<td>이메일</td> <td>이메일</td>
<td><input type="text" name="email" id="email" title="이메일" value="${article.email}" size="100" maxlength="200" /></td> <td><input type="text" name="email" id="email" title="이메일" value="${article.email}" size="100" maxlength="200" /></td>
</tr> </tr>
<tr> <tr>
<td>기존비밀번호</td> <td>기존비밀번호</td>
<td><input type="text" name="encArticlePassword" id="encArticlePassword" title="제목" value="${encArticlePassword}" size="100" maxlength="200" readonly /></td> <td><input type="text" name="encArticlePassword" id="encArticlePassword" title="제목" value="${encArticlePassword}" size="100" maxlength="200" readonly /></td>
</tr> </tr>
<tr> <tr>
<td>비밀번호</td> <td>비밀번호</td>
<td><input type="text" name="articlePassword" id="articlePassword" title="비밀번호" value="${article.articlePassword}" size="100" maxlength="200" /></td> <td><input type="text" name="articlePassword" id="articlePassword" title="비밀번호" value="${article.articlePassword}" size="100" maxlength="200" /></td>
</tr> </tr>
<tr> <tr>
<td>질문내용</td> <td>질문내용</td>
<td><textarea name="contentQeust" id="contentQeust">${article.contentQeust}</textarea></td> <td><textarea name="contentQeust" id="contentQeust">${article.contentQeust}</textarea></td>
</tr> </tr>
</table> </table>
<br/> <br/>
<button type="button" name="btnNew" id="btnNew" class="float" <button type="button" name="btnNew" id="btnNew" class="float"
onclick="fn_view_detail('${articleNo}')">취소</button> onclick="fn_view_detail('${articleNo}')">취소</button>
<button type="button" name="btnNew" id="btnNew" class="float" <button type="button" name="btnNew" id="btnNew" class="float"
onclick="fn_update()">저장</button> onclick="fn_update()">저장</button>
</form> </form>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
//선택한 게시글 상세 보기로 이동 //선택한 게시글 상세 보기로 이동
function fn_view_detail(articleNo) { function fn_view_detail(articleNo) {
$("#articleNo").val(articleNo); $("#articleNo").val(articleNo);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/selectQnA.do"); $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/selectQnA.do");
$("#articleForm").submit(); $("#articleForm").submit();
} }
// 선택한 게시글 상세 보기로 이동 // 선택한 게시글 상세 보기로 이동
function fn_list() { function fn_list() {
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/listQnAs.do"); $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/listQnAs.do");
$("#articleForm").submit(); $("#articleForm").submit();
} }
var fn_updateForm = function (passwd) { var fn_updateForm = function (passwd) {
if(passwd == null || passwd == "") { if(passwd == null || passwd == "") {
alert("수정을 위한 게시물의 비밀번호를 입력하여 주시기 바랍니다."); alert("수정을 위한 게시물의 비밀번호를 입력하여 주시기 바랍니다.");
return; return;
} }
$("#articlePassword").val(passwd); $("#articlePassword").val(passwd);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/updateQnAForm.do"); $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/updateQnAForm.do");
$("#articleForm").submit(); $("#articleForm").submit();
} }
// 수정 처리 // 수정 처리
function fn_update() { function fn_update() {
if(!confirm("저장하시겠습니까?")) return; if(!confirm("저장하시겠습니까?")) return;
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/updateQnA.do"); $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/updateQnA.do");
$("#articleForm").submit(); $("#articleForm").submit();
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,38 +1,38 @@
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<c:set var="pageTitle"><spring:message code="comCmmErr.accessDenied.code"/></c:set><!-- 사용자접근권한 에러 --> <c:set var="pageTitle"><spring:message code="comCmmErr.accessDenied.code"/></c:set><!-- 사용자접근권한 에러 -->
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title><spring:message code="title.html"/></title> <title><spring:message code="title.html"/></title>
<link href="<c:url value='/css/egovframework/com/com.css' />" rel="stylesheet" type="text/css" /> <link href="<c:url value='/css/egovframework/com/com.css' />" rel="stylesheet" type="text/css" />
<script language="javascript"> <script language="javascript">
function fncGoAfterErrorPage(){ function fncGoAfterErrorPage(){
history.back(-2); history.back(-2);
} }
</script> </script>
</head> </head>
<body> <body>
<div style="width: 1000px; margin: 50px auto 50px;"> <div style="width: 1000px; margin: 50px auto 50px;">
<p style="font-size: 18px; color: #000; margin-bottom: 10px; "><img src="<c:url value='/images/egovframework/com/cmm/er_logo.jpg' />" width="379" height="57" /></p> <p style="font-size: 18px; color: #000; margin-bottom: 10px; "><img src="<c:url value='/images/egovframework/com/cmm/er_logo.jpg' />" width="379" height="57" /></p>
<div style="border: ppx solid #666; padding: 20px;"> <div style="border: ppx solid #666; padding: 20px;">
<!-- Xss(Cross Site Scripting) Error --> <!-- Xss(Cross Site Scripting) Error -->
<p style="color:red; margin-bottom: 8px; ">${pageTitle}</p> <p style="color:red; margin-bottom: 8px; ">${pageTitle}</p>
<div class="boxType1" style="width: 700px;"> <div class="boxType1" style="width: 700px;">
<div class="box"> <div class="box">
<div class="error"> <div class="error">
<p class="title"><spring:message code="comCmmErr.accessDenied.title" /></p><!-- 현재 페이지에 대한 접근권한이 없습니다! --> <p class="title"><spring:message code="comCmmErr.accessDenied.title" /></p><!-- 현재 페이지에 대한 접근권한이 없습니다! -->
<p class="cont mb20">${pageTitle}<br /></p> <p class="cont mb20">${pageTitle}<br /></p>
<span class="btn_style1 blue"><a href="javascript:fncGoAfterErrorPage();"><spring:message code="comCmmErr.button" /><!-- 이전 페이지 --></a></span> <span class="btn_style1 blue"><a href="javascript:fncGoAfterErrorPage();"><spring:message code="comCmmErr.button" /><!-- 이전 페이지 --></a></span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,39 +1,39 @@
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<c:set var="pageTitle"><spring:message code="comCmmErr.bizException.code"/></c:set><!-- 비즈니스로직처리 에러 --> <c:set var="pageTitle"><spring:message code="comCmmErr.bizException.code"/></c:set><!-- 비즈니스로직처리 에러 -->
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title><spring:message code="title.html"/></title> <title><spring:message code="title.html"/></title>
<link href="<c:url value='/css/egovframework/com/com.css' />" rel="stylesheet" type="text/css" /> <link href="<c:url value='/css/egovframework/com/com.css' />" rel="stylesheet" type="text/css" />
<script language="javascript"> <script language="javascript">
function fncGoAfterErrorPage(){ function fncGoAfterErrorPage(){
history.back(-2); history.back(-2);
} }
</script> </script>
</head> </head>
<body> <body>
<div style="width: 1000px; margin: 50px auto 50px;"> <div style="width: 1000px; margin: 50px auto 50px;">
<p style="font-size: 18px; color: #000; margin-bottom: 10px; "><img src="<c:url value='/images/egovframework/com/cmm/er_logo.jpg' />" width="379" height="57" /></p> <p style="font-size: 18px; color: #000; margin-bottom: 10px; "><img src="<c:url value='/images/egovframework/com/cmm/er_logo.jpg' />" width="379" height="57" /></p>
<div style="border: ppx solid #666; padding: 20px;"> <div style="border: ppx solid #666; padding: 20px;">
<!-- Xss(Cross Site Scripting) Error --> <!-- Xss(Cross Site Scripting) Error -->
<p style="color:red; margin-bottom: 8px; ">${pageTitle}<br /></p> <p style="color:red; margin-bottom: 8px; ">${pageTitle}<br /></p>
<div class="boxType1" style="width: 700px;"> <div class="boxType1" style="width: 700px;">
<div class="box"> <div class="box">
<div class="error"> <div class="error">
<p class="title"><spring:message code="comCmmErr.bizException.title" /></p><!-- 비즈니스 로직 처리 중 발생했습니다! --> <p class="title"><spring:message code="comCmmErr.bizException.title" /></p><!-- 비즈니스 로직 처리 중 발생했습니다! -->
<p class="cont mb20">${pageTitle}<br /></p> <p class="cont mb20">${pageTitle}<br /></p>
<span class="btn_style1 blue"><a href="javascript:fncGoAfterErrorPage();"><spring:message code="comCmmErr.button" /><!-- 이전 페이지 --></a></span> <span class="btn_style1 blue"><a href="javascript:fncGoAfterErrorPage();"><spring:message code="comCmmErr.button" /><!-- 이전 페이지 --></a></span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,4 +1,4 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java" contentType="application/javascript" pageEncoding="UTF-8"%> <%@ page language="java" contentType="application/javascript" pageEncoding="UTF-8"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<validator:javascript dynamicJavascript="false" staticJavascript="true"/> <validator:javascript dynamicJavascript="false" staticJavascript="true"/>

View File

@ -1,59 +1,59 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : selectGreeting.jsp * @Class Name : selectGreeting.jsp
* *
* @Description : 인사말 조회 * @Description : 인사말 조회
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 27. KNKIM 최초 생성 * @ 2021. 7. 27. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 27. * @since 2021. 7. 27.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">인사말 </c:set> <c:set var="pageTitle">인사말 </c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
</head> </head>
<body> <body>
<h1>${pageTitle } - ${deptName }</h1> <h1>${pageTitle } - ${deptName }</h1>
<img src="${logoUrl }" /> <img src="${logoUrl }" />
<div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;"> <div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;">
${informContent } ${informContent }
</div> </div>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
window.onload = function() { window.onload = function() {
}; };
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,63 +1,63 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : selectNCultureLocationInfo.jsp * @Class Name : selectNCultureLocationInfo.jsp
* *
* @Description : 찾아오시는길 조회 * @Description : 찾아오시는길 조회
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 27. KNKIM 최초 생성 * @ 2021. 7. 27. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 27. * @since 2021. 7. 27.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">찾아오시는길 </c:set> <c:set var="pageTitle">찾아오시는길 </c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
</head> </head>
<body> <body>
<h1>${pageTitle }</h1> <h1>${pageTitle }</h1>
주소 : ${zipcode } ${addr1 } ${addr2 } <br /> 주소 : ${zipcode } ${addr1 } ${addr2 } <br />
전화번호 : ${tel } <br /> 전화번호 : ${tel } <br />
팩스번호 : ${fax } <br /> 팩스번호 : ${fax } <br />
&nbsp;<br/> &nbsp;<br/>
<div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;"> <div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;">
${informContent } ${informContent }
</div> </div>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
window.onload = function() { window.onload = function() {
}; };
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,58 +1,58 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : selectNCultureOperationInfo.jsp * @Class Name : selectNCultureOperationInfo.jsp
* *
* @Description : 이용안내 조회 * @Description : 이용안내 조회
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 27. KNKIM 최초 생성 * @ 2021. 7. 27. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 27. * @since 2021. 7. 27.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">이용안내 </c:set> <c:set var="pageTitle">이용안내 </c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
</head> </head>
<body> <body>
<h1>${pageTitle }</h1> <h1>${pageTitle }</h1>
<div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;"> <div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;">
${informContent } ${informContent }
</div> </div>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
window.onload = function() { window.onload = function() {
}; };
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,58 +1,58 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : selectPrivacyInfo.jsp * @Class Name : selectPrivacyInfo.jsp
* *
* @Description : 개인정보처리방침 조회 * @Description : 개인정보처리방침 조회
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 27. KNKIM 최초 생성 * @ 2021. 7. 27. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 27. * @since 2021. 7. 27.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">개인정보처리방침 </c:set> <c:set var="pageTitle">개인정보처리방침 </c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
</head> </head>
<body> <body>
<h1>${pageTitle }</h1> <h1>${pageTitle }</h1>
<div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;"> <div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;">
${informContent } ${informContent }
</div> </div>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
window.onload = function() { window.onload = function() {
}; };
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,58 +1,58 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : selectTermsInfo.jsp * @Class Name : selectTermsInfo.jsp
* *
* @Description : 이용약관 조회 * @Description : 이용약관 조회
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 27. KNKIM 최초 생성 * @ 2021. 7. 27. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 27. * @since 2021. 7. 27.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">이용약관</c:set> <c:set var="pageTitle">이용약관</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
</head> </head>
<body> <body>
<h1>${pageTitle }</h1> <h1>${pageTitle }</h1>
<div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;"> <div id="informContent" name="informContent" style="width: 100%; border:1px solid gray;">
${informContent } ${informContent }
</div> </div>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
window.onload = function() { window.onload = function() {
}; };
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,36 +1,36 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : initPasswordResult.jsp * @Class Name : initPasswordResult.jsp
* *
* @Description : 비밀번호 찾기 결과 * @Description : 비밀번호 찾기 결과
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title> <title>Insert title here</title>
</head> </head>
<body> <body>
비밀번호찾기 결과페이지 비밀번호찾기 결과페이지
</body> </body>
</html> </html>

View File

@ -1,393 +1,393 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : insertMemberInfoForm.jsp * @Class Name : insertMemberInfoForm.jsp
* *
* @Description : 회원가입폼 * @Description : 회원가입폼
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle} <spring:message code="title.create" /></title> <title>${pageTitle} <spring:message code="title.create" /></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javaScript" language="javascript" defer="defer"> <script type="text/javaScript" language="javascript" defer="defer">
function signUp(){ function signUp(){
var p = document.getElementById('password'); var p = document.getElementById('password');
var p_cf = document.getElementById('passwordConfirm'); var p_cf = document.getElementById('passwordConfirm');
if(p.value != p_cf.value) if(p.value != p_cf.value)
{ {
alert("비밀번호가 일치하지 않습니다. 확인해 주세요."); alert("비밀번호가 일치하지 않습니다. 확인해 주세요.");
p_cf.focus(); p_cf.focus();
return false; return false;
} }
if($("#phoneCertYn").val()!="Y") if($("#phoneCertYn").val()!="Y")
{ {
alert("휴대전화 인증이 필요합니다."); alert("휴대전화 인증이 필요합니다.");
return false; return false;
} }
if($("#zipNo").val()=="" || $("#roadAddrPart").val()=="" || $("#addrDetail").val()=="") if($("#zipNo").val()=="" || $("#roadAddrPart").val()=="" || $("#addrDetail").val()=="")
{ {
alert("주소를 입력해주세요."); alert("주소를 입력해주세요.");
return false; return false;
} }
if(confirm("회원가입하시겠습니까?")){ if(confirm("회원가입하시겠습니까?")){
alert("회원가입 되었습니다."); alert("회원가입 되었습니다.");
return true; return true;
}else{ }else{
return false; return false;
} }
} }
function goPopup(){ function goPopup(){
// 주소검색을 수행할 팝업 페이지를 호출합니다. // 주소검색을 수행할 팝업 페이지를 호출합니다.
// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다. // 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.
var pop = window.open("/nlib/popup/jusoPopup.do","pop","width=570,height=420, scrollbars=yes, resizable=yes"); var pop = window.open("/nlib/popup/jusoPopup.do","pop","width=570,height=420, scrollbars=yes, resizable=yes");
// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다. // 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.
//var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes"); //var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes");
} }
$(document).ready(function() { $(document).ready(function() {
<% <%
//핸드폰 번호가 변하는것 실시간 감지 //핸드폰 번호가 변하는것 실시간 감지
%> %>
$("#phone").on("propertychange change keyup paste input", function() { $("#phone").on("propertychange change keyup paste input", function() {
$("#phoneCertYn").val("N"); $("#phoneCertYn").val("N");
}); });
}) })
<% <%
//핸드폰 인증번호 받기 //핸드폰 인증번호 받기
%> %>
function phoneCert(){ function phoneCert(){
$("#phone").val($("#phone").val().replace(/-/gi,"")); $("#phone").val($("#phone").val().replace(/-/gi,""));
var regExp = /^\d{3}\d{3,4}\d{4}$/; var regExp = /^\d{3}\d{3,4}\d{4}$/;
if(!regExp.test($("#phone").val()) || $("#phone").val()==""){ if(!regExp.test($("#phone").val()) || $("#phone").val()==""){
alert("형식에 맞지 않는 번호입니다."); alert("형식에 맞지 않는 번호입니다.");
return false; return false;
} }
$.ajax({ $.ajax({
url : "/nlib/member/phoneCertNum.ajax", url : "/nlib/member/phoneCertNum.ajax",
type : "POST", type : "POST",
async: false, async: false,
data : {"phone" : $("#phone").val()}, data : {"phone" : $("#phone").val()},
success : function(result){ success : function(result){
alert("인증번호가 발송됐습니다."); alert("인증번호가 발송됐습니다.");
//인증번호 확인창 //인증번호 확인창
$("#phoneCertForm").css("display","block") $("#phoneCertForm").css("display","block")
},error : function(){ },error : function(){
} }
}) })
} }
<% <%
//핸드폰 인증번호 확인 //핸드폰 인증번호 확인
%> %>
function certNumCheck(){ function certNumCheck(){
<% <%
//ajax 사용자가 입력한 번호를 보내 RESTfull server에서 확인 success or fail 반환 (3분이내인지도) //ajax 사용자가 입력한 번호를 보내 RESTfull server에서 확인 success or fail 반환 (3분이내인지도)
%> %>
$.ajax({ $.ajax({
url : "/nlib/member/phoneCertNumChk.ajax", url : "/nlib/member/phoneCertNumChk.ajax",
type : "POST", type : "POST",
data : {"phoneCertNum" : $("#phoneCertNum").val(), data : {"phoneCertNum" : $("#phoneCertNum").val(),
"phone" : $("#phone").val()}, "phone" : $("#phone").val()},
async: false, async: false,
success : function(result){ success : function(result){
if(result=="true") if(result=="true")
{ {
alert("인증되었습니다."); alert("인증되었습니다.");
$("#phoneCertYn").val("Y"); $("#phoneCertYn").val("Y");
}else{ }else{
alert("인증에 실패했습니다."); alert("인증에 실패했습니다.");
} }
},error : function(){ },error : function(){
} }
}) })
} }
function jusoCallBack(zipNo,roadAddrPart,addrDetail){ function jusoCallBack(zipNo,roadAddrPart,addrDetail){
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다. // 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
$("#zipNo").val(zipNo); $("#zipNo").val(zipNo);
$("#roadAddrPart").val(roadAddrPart); $("#roadAddrPart").val(roadAddrPart);
$("#addrDetail").val(addrDetail); $("#addrDetail").val(addrDetail);
} }
document.addEventListener('keydown', function(event) { document.addEventListener('keydown', function(event) {
if (event.keyCode === 13) { if (event.keyCode === 13) {
event.preventDefault(); event.preventDefault();
} }
}, true); }, true);
function checkBirthday() { function checkBirthday() {
var birthday; var birthday;
var yy = $("#birth_yy").val(); var yy = $("#birth_yy").val();
var mm = $("#birth_mm option:selected").val(); var mm = $("#birth_mm option:selected").val();
var dd = $("#birth_dd").val(); var dd = $("#birth_dd").val();
var lang = "ko_KR"; var lang = "ko_KR";
var oyy = $("#birth_yy"); var oyy = $("#birth_yy");
var omm = $("#birth_mm"); var omm = $("#birth_mm");
var odd = $("#birth_dd"); var odd = $("#birth_dd");
if (mm.length == 1) { if (mm.length == 1) {
mm = "0" + mm; mm = "0" + mm;
} }
if (dd.length == 1) { if (dd.length == 1) {
dd = "0" + dd; dd = "0" + dd;
} }
birthday = yy + mm + dd; birthday = yy + mm + dd;
if (!isValidDate(birthday)) { if (!isValidDate(birthday)) {
return false; return false;
} }
var age = calcAge(birthday); var age = calcAge(birthday);
if (age < 0) { if (age < 0) {
return false; return false;
} else if (yy < 1900) { } else if (yy < 1900) {
return false; return false;
} else { } else {
return true; return true;
} }
} }
function isValidDate(param) { function isValidDate(param) {
try { try {
param = param.replace(/-/g, ''); param = param.replace(/-/g, '');
// 자리수가 맞지않을때 // 자리수가 맞지않을때
if (isNaN(param) || param.length != 8) { if (isNaN(param) || param.length != 8) {
return false; return false;
} }
var year = Number(param.substring(0, 4)); var year = Number(param.substring(0, 4));
var month = Number(param.substring(4, 6)); var month = Number(param.substring(4, 6));
var day = Number(param.substring(6, 8)); var day = Number(param.substring(6, 8));
if (month < 1 || month > 12) { if (month < 1 || month > 12) {
return false; return false;
} }
var maxDaysInMonth = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; var maxDaysInMonth = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
var maxDay = maxDaysInMonth[month - 1]; var maxDay = maxDaysInMonth[month - 1];
// 윤년 체크 // 윤년 체크
if (month == 2 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)) { if (month == 2 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)) {
maxDay = 29; maxDay = 29;
} }
if (day <= 0 || day > maxDay) { if (day <= 0 || day > maxDay) {
return false; return false;
} }
return true; return true;
} catch (err) { } catch (err) {
return false; return false;
} }
; ;
} }
function calcAge(birth) { function calcAge(birth) {
var date = new Date(); var date = new Date();
var year = date.getFullYear(); var year = date.getFullYear();
var month = (date.getMonth() + 1); var month = (date.getMonth() + 1);
var day = date.getDate(); var day = date.getDate();
if (month < 10) if (month < 10)
month = '0' + month; month = '0' + month;
if (day < 10) if (day < 10)
day = '0' + day; day = '0' + day;
var monthDay = month + '' + day; var monthDay = month + '' + day;
birth = birth.replace('-', '').replace('-', ''); birth = birth.replace('-', '').replace('-', '');
var birthdayy = birth.substr(0, 4); var birthdayy = birth.substr(0, 4);
var birthdaymd = birth.substr(4, 4); var birthdaymd = birth.substr(4, 4);
var age = monthDay < birthdaymd ? year - birthdayy - 1 : year - birthdayy; var age = monthDay < birthdaymd ? year - birthdayy - 1 : year - birthdayy;
return age; return age;
} }
</script> </script>
<style type="text/css"> <style type="text/css">
body { body {
padding-top:0px; padding-top:0px;
margin-top:0px; margin-top:0px;
background-color:#f5f5f5; background-color:#f5f5f5;
} }
.page-header { .page-header {
padding-top:0px; padding-top:0px;
margin-top:0px; margin-top:0px;
} }
.form-horizontal .control-label.text-left{ .form-horizontal .control-label.text-left{
text-align:left; text-align:left;
} }
.form-horizontal .form-group { .form-horizontal .form-group {
height:50px; height:50px;
} }
h3 span.ok { h3 span.ok {
color:#01A9DB; color:#01A9DB;
} }
label.error { label.error {
font-family:"돋움", Dotum, "Apple SD Gothic Neo", Helvetica, Sans-serif; font-family:"돋움", Dotum, "Apple SD Gothic Neo", Helvetica, Sans-serif;
font-size:9pt; font-size:9pt;
font-weight:600; font-weight:600;
padding:3px 0 0 10px; padding:3px 0 0 10px;
color:#FF0000; color:#FF0000;
display:block; display:block;
} }
</style> </style>
</head> </head>
<body> <body>
<div id="wrap"> <div id="wrap">
<br><br> <br><br>
<b><font size="6" color="gray">회원가입</font></b> <b><font size="6" color="gray">회원가입</font></b>
<br><br><br> <br><br><br>
<form id="joinForm" name="joinForm" action="/nlib/member/insertMemberInfo.do" method="post" onsubmit="return signUp()"> <form id="joinForm" name="joinForm" action="/nlib/member/insertMemberInfo.do" method="post" onsubmit="return signUp()">
<table> <table>
<tr> <tr>
<td id="title">아이디</td> <td id="title">아이디</td>
<td> <td>
<input type="email" id="id" name="id" maxlength="30" value=<c:out value="${loginVO.id}"/> required readonly > <input type="email" id="id" name="id" maxlength="30" value=<c:out value="${loginVO.id}"/> required readonly >
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">비밀번호</td> <td id="title">비밀번호</td>
<td> <td>
<input type="password" id="password" name="password" minlength="8" maxlength="16" <input type="password" id="password" name="password" minlength="8" maxlength="16"
oninvalid="this.setCustomValidity('8~16자 영문 대 소문자, 숫자, 특수문자를 사용하세요.')" oninvalid="this.setCustomValidity('8~16자 영문 대 소문자, 숫자, 특수문자를 사용하세요.')"
oninput="this.setCustomValidity('')" oninput="this.setCustomValidity('')"
pattern="^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,16}$" required> pattern="^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,16}$" required>
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">비밀번호 확인</td> <td id="title">비밀번호 확인</td>
<td> <td>
<input type="password" id="passwordConfirm" name="passwordConfirm" minlength="8" maxlength="16" required> <input type="password" id="passwordConfirm" name="passwordConfirm" minlength="8" maxlength="16" required>
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">이름</td> <td id="title">이름</td>
<td> <td>
<input type="text" id="name" name="name" maxlength="20" required value=<c:out value="${loginVO.name}"/> > <input type="text" id="name" name="name" maxlength="20" required value=<c:out value="${loginVO.name}"/> >
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">생일</td> <td id="title">생일</td>
<td> <td>
<input type="text" id="birth_yy" name="birth_yy" maxlength="4" placeholder="년(4자)" required pattern="^(19|20)\d{2}$" value=<c:out value="${loginVO.birth_yy}"/> > <input type="text" id="birth_yy" name="birth_yy" maxlength="4" placeholder="년(4자)" required pattern="^(19|20)\d{2}$" value=<c:out value="${loginVO.birth_yy}"/> >
<select id="birth_mm" name="birth_mm" value=<c:out value="${loginVO.birth_mm}"/> required> <select id="birth_mm" name="birth_mm" value=<c:out value="${loginVO.birth_mm}"/> required>
<option value="">월</option> <option value="">월</option>
<option value="01" >1</option> <option value="01" >1</option>
<option value="02" >2</option> <option value="02" >2</option>
<option value="03" >3</option> <option value="03" >3</option>
<option value="04" >4</option> <option value="04" >4</option>
<option value="05" >5</option> <option value="05" >5</option>
<option value="06" >6</option> <option value="06" >6</option>
<option value="07" >7</option> <option value="07" >7</option>
<option value="08" >8</option> <option value="08" >8</option>
<option value="09" >9</option> <option value="09" >9</option>
<option value="10" >10</option> <option value="10" >10</option>
<option value="11" >11</option> <option value="11" >11</option>
<option value="12" >12</option> <option value="12" >12</option>
</select> </select>
<input type="text" id="birth_dd" name="birth_dd" size="2" maxlength="2" placeholder="일" size="4" value=<c:out value="${loginVO.birth_dd}"/> required pattern="^(0[1-9]|[12][0-9]|3[0-1])$"> <input type="text" id="birth_dd" name="birth_dd" size="2" maxlength="2" placeholder="일" size="4" value=<c:out value="${loginVO.birth_dd}"/> required pattern="^(0[1-9]|[12][0-9]|3[0-1])$">
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">휴대전화</td> <td id="title">휴대전화</td>
<td id="Cert"> <td id="Cert">
<input type="text" id="phone" name="phone" required value=<c:out value="${loginVO.phone}"/>><button type="button" style="text-align:left;" class="btn-warning" onclick="phoneCert()" required>인증번호 받기</button> <input type="text" id="phone" name="phone" required value=<c:out value="${loginVO.phone}"/>><button type="button" style="text-align:left;" class="btn-warning" onclick="phoneCert()" required>인증번호 받기</button>
<div id="phoneCertForm" style="display:none;"><br><input type='text' id='phoneCertNum' name='phoneCertNum'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certNumCheck()' >인증번호 확인</button></div> <div id="phoneCertForm" style="display:none;"><br><input type='text' id='phoneCertNum' name='phoneCertNum'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certNumCheck()' >인증번호 확인</button></div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">주소</td> <td id="title">주소</td>
<td> <td>
<input type="text" id="zipNo" name="zipNo" readonly ><button type="button" style="text-align:left;" class="btn-warning" onclick="goPopup()">주소검색</button><br> <input type="text" id="zipNo" name="zipNo" readonly ><button type="button" style="text-align:left;" class="btn-warning" onclick="goPopup()">주소검색</button><br>
<input type="text" id="roadAddrPart" name="roadAddrPart" readonly ><input type="text" id="addrDetail" name="addrDetail" readonly > <input type="text" id="roadAddrPart" name="roadAddrPart" readonly ><input type="text" id="addrDetail" name="addrDetail" readonly >
</td> </td>
</tr> </tr>
</table> </table>
<br> <br>
<input type="hidden" id="phoneCertYn" name="phoneCertYn" value=<c:out value="N"/>> <input type="hidden" id="phoneCertYn" name="phoneCertYn" value=<c:out value="N"/>>
<input type="submit" value="가입"/> <input type="button" value="취소"> <input type="submit" value="가입"/> <input type="button" value="취소">
</form> </form>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,37 +1,37 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : insertMemberInfoResult.jsp * @Class Name : insertMemberInfoResult.jsp
* *
* @Description : 회원가입 결과 * @Description : 회원가입 결과
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8"%>
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title> <title>Insert title here</title>
</head> </head>
<body> <body>
환영합니다 환영합니다
</body> </body>
</html> </html>

View File

@ -1,76 +1,76 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : searchIdForm.jsp * @Class Name : searchIdForm.jsp
* *
* @Description : ID 비밀번호 찾기 * @Description : ID 비밀번호 찾기
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title> <title>Insert title here</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script> <script>
function goFindId(){ function goFindId(){
$("#searchIdPhoneNum").val($("#searchIdPhoneNum").val().replace(/-/gi,"")); $("#searchIdPhoneNum").val($("#searchIdPhoneNum").val().replace(/-/gi,""));
var regExp = /^\d{3}\d{3,4}\d{4}$/; var regExp = /^\d{3}\d{3,4}\d{4}$/;
if(!regExp.test($("#searchIdPhoneNum").val()) || $("#searchIdPhoneNum").val()==""){ if(!regExp.test($("#searchIdPhoneNum").val()) || $("#searchIdPhoneNum").val()==""){
alert("형식에 맞지 않는 번호입니다."); alert("형식에 맞지 않는 번호입니다.");
return false; return false;
} }
document.findId.action="/nlib/member/searchId.do"; document.findId.action="/nlib/member/searchId.do";
document.findId.submit(); document.findId.submit();
} }
function goFindPw(){ function goFindPw(){
$("#initPasswordPhoneNum").val($("#initPasswordPhoneNum").val().replace(/-/gi,"")); $("#initPasswordPhoneNum").val($("#initPasswordPhoneNum").val().replace(/-/gi,""));
var regExp = /^\d{3}\d{3,4}\d{4}$/; var regExp = /^\d{3}\d{3,4}\d{4}$/;
if(!regExp.test($("#initPasswordPhoneNum").val()) || $("#initPasswordPhoneNum").val()==""){ if(!regExp.test($("#initPasswordPhoneNum").val()) || $("#initPasswordPhoneNum").val()==""){
alert("형식에 맞지 않는 번호입니다."); alert("형식에 맞지 않는 번호입니다.");
return false; return false;
} }
document.findPw.action="/nlib/member/initPassword.do"; document.findPw.action="/nlib/member/initPassword.do";
document.findPw.submit(); document.findPw.submit();
} }
</script> </script>
</head> </head>
<body> <body>
<h1>아이디 찾기</h1> <h1>아이디 찾기</h1>
<form id="findId" name="findId" method="post"> <form id="findId" name="findId" method="post">
이름 <input type="text" id="name" name="name"> 이름 <input type="text" id="name" name="name">
핸드폰 번호 <input type="text" id="searchIdPhoneNum" name="searchIdPhoneNum"> 핸드폰 번호 <input type="text" id="searchIdPhoneNum" name="searchIdPhoneNum">
<input type="button" onclick ="goFindId();" value="아이디 찾기"> <input type="button" onclick ="goFindId();" value="아이디 찾기">
</form> </form>
<form id="findPw" name="findPw" method="post"> <form id="findPw" name="findPw" method="post">
<h1>비밀번호 찾기</h1> <h1>비밀번호 찾기</h1>
ID <input type="text" id="username" name="username"> ID <input type="text" id="username" name="username">
핸드폰 번호 <input type="text" id="initPasswordPhoneNum" name="initPasswordPhoneNum"> 핸드폰 번호 <input type="text" id="initPasswordPhoneNum" name="initPasswordPhoneNum">
<input type="button" onclick ="goFindPw();" value="임시비밀번호 받기"> <input type="button" onclick ="goFindPw();" value="임시비밀번호 받기">
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,37 +1,37 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : searchIdResult.jsp * @Class Name : searchIdResult.jsp
* *
* @Description : 아이디 찾기 결과 * @Description : 아이디 찾기 결과
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title> <title>Insert title here</title>
</head> </head>
<body> <body>
아이디찾기 결과페이지 아이디찾기 결과페이지
</body> </body>
</html> </html>

View File

@ -1,52 +1,52 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : selectMemberJoiningInfo.jsp * @Class Name : selectMemberJoiningInfo.jsp
* *
* @Description : 회원가입 이용약관 * @Description : 회원가입 이용약관
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title> <title>Insert title here</title>
<script> <script>
function snsCertForm(){ function snsCertForm(){
if(document.getElementById('agree').checked) if(document.getElementById('agree').checked)
{ {
location.href="/nlib/member/snsCertForm.do"; location.href="/nlib/member/snsCertForm.do";
} }
else{ else{
alert("약관에 동의해주세요"); alert("약관에 동의해주세요");
} }
} }
</script> </script>
</head> </head>
<body> <body>
<div style="width:500px;"> <div style="width:500px;">
<textarea style="height:200px;width:500px;">${result.info["terms"]}</textarea> <textarea style="height:200px;width:500px;">${result.info["terms"]}</textarea>
<br><div style="float: right;"><input type="checkbox" id="agree" >동의</div> <br><div style="float: right;"><input type="checkbox" id="agree" >동의</div>
<br><br><input type="button" value="다음" onclick="snsCertForm();" style="float: right;"> <br><br><input type="button" value="다음" onclick="snsCertForm();" style="float: right;">
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,221 +1,221 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : snsCertForm.jsp * @Class Name : snsCertForm.jsp
* *
* @Description : 회원가입 SNS 인증 * @Description : 회원가입 SNS 인증
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<% <%
/** /**
* <pre> * <pre>
* @Class Name : snsCertForm.jsp * @Class Name : snsCertForm.jsp
* *
* @Description : 회원가입시 sns인증 * @Description : 회원가입시 sns인증
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<title>LoginTest</title> <title>LoginTest</title>
<meta name ="google-signin-client_id" content="879126511006-jro7bld7b2epl3n5mkksp0p24k2inbpu.apps.googleusercontent.com"> <meta name ="google-signin-client_id" content="879126511006-jro7bld7b2epl3n5mkksp0p24k2inbpu.apps.googleusercontent.com">
<script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" charset="utf-8"></script> <script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" charset="utf-8"></script>
<script src = "//developers.kakao.com/sdk/js/kakao.min.js"></script> <script src = "//developers.kakao.com/sdk/js/kakao.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css"> <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css">
<script src="https://apis.google.com/js/api:client.js"></script> <script src="https://apis.google.com/js/api:client.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script> <script>
window.snsLogin = function(){ window.snsLogin = function(){
var f=document.loginForm; var f=document.loginForm;
f.action="<c:url value='/member/insertMemberInfoForm.do'/>"; f.action="<c:url value='/member/insertMemberInfoForm.do'/>";
f.submit(); f.submit();
} }
</script> </script>
<style type="text/css"> <style type="text/css">
#GgCustomLogin { #GgCustomLogin {
display: inline-block; display: inline-block;
background: white; background: white;
color: #444; color: #444;
width: 222px; width: 222px;
height: 49px; height: 49px;
border-radius: 5px; border-radius: 5px;
border: thin solid #888; border: thin solid #888;
box-shadow: 1px 1px 1px grey; box-shadow: 1px 1px 1px grey;
white-space: nowrap; white-space: nowrap;
} }
#GgCustomLogin { #GgCustomLogin {
cursor: pointer; cursor: pointer;
} }
span.label { span.label {
font-family: serif; font-family: serif;
font-weight: normal; font-weight: normal;
} }
span.icon { span.icon {
background: url('/nlib/images/nlib/sign-in/g-normal.png') transparent 5px 50% no-repeat; background: url('/nlib/images/nlib/sign-in/g-normal.png') transparent 5px 50% no-repeat;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
width: 42px; width: 42px;
height: 42px; height: 42px;
} }
span.buttonText { span.buttonText {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
padding-left: 10px; padding-left: 10px;
padding-right: 42px; padding-right: 42px;
font-size: 14px; font-size: 14px;
width:140px; width:140px;
font-weight: bold; font-weight: bold;
/* Use the Roboto font that is loaded in the <head> */ /* Use the Roboto font that is loaded in the <head> */
font-family: 'Roboto', sans-serif; font-family: 'Roboto', sans-serif;
} }
</style> </style>
</head> </head>
<body> <body>
SNS 인증<br> SNS 인증<br>
<form id="infoForm" name="loginForm" method="post"> <form id="infoForm" name="loginForm" method="post">
<div> <input type="hidden" id="id" name="id"> <div> <input type="hidden" id="id" name="id">
<input type="hidden" id="name" name="name"> <input type="hidden" id="name" name="name">
<input type="hidden" id="birth_yy" name="birth_yy"> <input type="hidden" id="birth_yy" name="birth_yy">
<input type="hidden" id="birth_mm" name="birth_mm"> <input type="hidden" id="birth_mm" name="birth_mm">
<input type="hidden" id="birth_dd" name="birth_dd"> <input type="hidden" id="birth_dd" name="birth_dd">
<input type="hidden" id="phone" name="phone"> <input type="hidden" id="phone" name="phone">
</div> </div>
<div id = "naver_id_login"></div> <div id = "naver_id_login"></div>
<a id="kakao-login-btn"></a> <a id="kakao-login-btn"></a>
<a href="http://developers.kakao.com/logout"></a> <a href="http://developers.kakao.com/logout"></a>
<ul> <ul>
<div id="GgCustomLogin"> <div id="GgCustomLogin">
<a href="javascript:void(0)"> <a href="javascript:void(0)">
<span class="icon"></span> <span class="icon"></span>
<span class="buttonText">구글아이디로 로그인</span> <span class="buttonText">구글아이디로 로그인</span>
</a> </a>
</div> </div>
</ul> </ul>
</form> </form>
<script type="text/javascript"> <script type="text/javascript">
//----------네이버-------------- //----------네이버--------------
var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/nlib/member/naverSignResultPopup.do"); // Client ID, CallBack URL 삽입 var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/nlib/member/naverSignResultPopup.do"); // Client ID, CallBack URL 삽입
// 단 'localhost'가 포함된 CallBack URL // 단 'localhost'가 포함된 CallBack URL
var state = naver_id_login.getUniqState(); var state = naver_id_login.getUniqState();
naver_id_login.setButton("green", 6, 48); naver_id_login.setButton("green", 6, 48);
naver_id_login.setDomain("http://www.example.com/nlib/member/snsCertForm.do"); // URL naver_id_login.setDomain("http://www.example.com/nlib/member/snsCertForm.do"); // URL
naver_id_login.setState(state); naver_id_login.setState(state);
naver_id_login.setPopup(); naver_id_login.setPopup();
naver_id_login.init_naver_id_login(); naver_id_login.init_naver_id_login();
//----------네이버-------------- //----------네이버--------------
//----------카카오-------------- //----------카카오--------------
Kakao.init('c449bf78ccf8dc336e43694099a1f4da'); //아까 카카오개발자홈페이지에서 발급받은 자바스크립트 키를 입력함 Kakao.init('c449bf78ccf8dc336e43694099a1f4da'); //아까 카카오개발자홈페이지에서 발급받은 자바스크립트 키를 입력함
//카카오 로그인 버튼을 생성합니다. //카카오 로그인 버튼을 생성합니다.
Kakao.Auth.createLoginButton({ Kakao.Auth.createLoginButton({
container: '#kakao-login-btn', container: '#kakao-login-btn',
success: function(authObj) { success: function(authObj) {
Kakao.API.request({ Kakao.API.request({
url: '/v2/user/me', url: '/v2/user/me',
success: function(res) { success: function(res) {
//onsole.log(res.id);//<---- 콘솔 로그에 id 정보 출력(id는 res안에 있기 때문에 res.id 로 불러온다) //onsole.log(res.id);//<---- 콘솔 로그에 id 정보 출력(id는 res안에 있기 때문에 res.id 로 불러온다)
//console.log(res.kakao_account.email);//<---- 콘솔 로그에 email 정보 출력 (어딨는지 알겠죠?) //console.log(res.kakao_account.email);//<---- 콘솔 로그에 email 정보 출력 (어딨는지 알겠죠?)
//console.log(authObj.access_token);//<---- 콘솔 로그에 토큰값 출력 //console.log(authObj.access_token);//<---- 콘솔 로그에 토큰값 출력
//로그인으로 타야함 //로그인으로 타야함
$("#id").val(res.kakao_account.email); $("#id").val(res.kakao_account.email);
snsLogin(); snsLogin();
} }
}) })
}, },
fail: function(error) { fail: function(error) {
alert(JSON.stringify(error)); alert(JSON.stringify(error));
} }
}); });
//----------카카오-------------- //----------카카오--------------
//----------구글--------------- //----------구글---------------
//처음 실행하는 함수 //처음 실행하는 함수
function init() { function init() {
gapi.load('auth2', function() { gapi.load('auth2', function() {
gapi.auth2.init(); gapi.auth2.init();
options = new gapi.auth2.SigninOptionsBuilder(); options = new gapi.auth2.SigninOptionsBuilder();
options.setPrompt('select_account'); options.setPrompt('select_account');
// 추가는 Oauth 승인 권한 추가 후 띄어쓰기 기준으로 추가 // 추가는 Oauth 승인 권한 추가 후 띄어쓰기 기준으로 추가
options.setScope('email profile openid https://www.googleapis.com/auth/user.birthday.read'); options.setScope('email profile openid https://www.googleapis.com/auth/user.birthday.read');
// 인스턴스의 함수 호출 - element에 로그인 기능 추가 // 인스턴스의 함수 호출 - element에 로그인 기능 추가
// GgCustomLogin은 li태그안에 있는 ID, 위에 설정한 options와 아래 성공,실패시 실행하는 함수들 // GgCustomLogin은 li태그안에 있는 ID, 위에 설정한 options와 아래 성공,실패시 실행하는 함수들
gapi.auth2.getAuthInstance().attachClickHandler('GgCustomLogin', options, onSignIn, onSignInFailure); gapi.auth2.getAuthInstance().attachClickHandler('GgCustomLogin', options, onSignIn, onSignInFailure);
}) })
} }
function onSignIn(googleUser) { function onSignIn(googleUser) {
var access_token = googleUser.getAuthResponse().access_token var access_token = googleUser.getAuthResponse().access_token
$.ajax({ $.ajax({
// people api를 이용하여 프로필 및 생년월일에 대한 선택동의후 가져온다. // people api를 이용하여 프로필 및 생년월일에 대한 선택동의후 가져온다.
url: 'https://people.googleapis.com/v1/people/me' url: 'https://people.googleapis.com/v1/people/me'
// key에 자신의 API 키를 넣습니다.phoneNumbers birthdays names // key에 자신의 API 키를 넣습니다.phoneNumbers birthdays names
, data: {personFields:'emailAddresses,birthdays,names,phoneNumbers', key:'AIzaSyCmVKytZ2Ea6x1Em-iXPkah29LSq6ELH1M', 'access_token': access_token} , data: {personFields:'emailAddresses,birthdays,names,phoneNumbers', key:'AIzaSyCmVKytZ2Ea6x1Em-iXPkah29LSq6ELH1M', 'access_token': access_token}
, method:'GET' , method:'GET'
}) })
.done(function(e){ .done(function(e){
//프로필을 가져온다. //프로필을 가져온다.
$("#id").val(e.emailAddresses[0].value); $("#id").val(e.emailAddresses[0].value);
$("#name").val(e.names[0].displayName); $("#name").val(e.names[0].displayName);
$("#birth_yy").val(e.birthdays[1].date.year); $("#birth_yy").val(e.birthdays[1].date.year);
$("#birth_mm").val(e.birthdays[1].date.month); $("#birth_mm").val(e.birthdays[1].date.month);
$("#birth_dd").val(e.birthdays[1].date.day); $("#birth_dd").val(e.birthdays[1].date.day);
snsLogin(); snsLogin();
}) })
.fail(function(e){ .fail(function(e){
console.log(e); console.log(e);
}) })
} }
function onSignInFailure(t){ function onSignInFailure(t){
console.log(t); console.log(t);
} }
</script> </script>
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script> <script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
</body> </body>
</html> </html>

View File

@ -1,76 +1,76 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : jusoPopup.jsp * @Class Name : jusoPopup.jsp
* *
* @Description : 주소 API * @Description : 주소 API
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title> <title>Insert title here</title>
<% <%
request.setCharacterEncoding("UTF-8"); //한글깨지면 주석제거 request.setCharacterEncoding("UTF-8"); //한글깨지면 주석제거
//request.setCharacterEncoding("EUC-KR"); //해당시스템의 인코딩타입이 EUC-KR일경우에 //request.setCharacterEncoding("EUC-KR"); //해당시스템의 인코딩타입이 EUC-KR일경우에
String inputYn = request.getParameter("inputYn"); String inputYn = request.getParameter("inputYn");
String zipNo = request.getParameter("zipNo"); String zipNo = request.getParameter("zipNo");
String roadAddrPart1 = request.getParameter("roadAddrPart1"); String roadAddrPart1 = request.getParameter("roadAddrPart1");
String roadAddrPart2 = request.getParameter("roadAddrPart2"); String roadAddrPart2 = request.getParameter("roadAddrPart2");
String addrDetail = request.getParameter("addrDetail"); String addrDetail = request.getParameter("addrDetail");
%> %>
</head> </head>
<script language="javascript"> <script language="javascript">
// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("주소입력화면 소스"도 동일하게 적용시켜야 합니다.) // opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("주소입력화면 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr"; //document.domain = "abc.go.kr";
function init(){ function init(){
var url = location.href; var url = location.href;
var confmKey = "devU01TX0FVVEgyMDIxMDYzMDEwNTQyMDExMTM0MTg="; var confmKey = "devU01TX0FVVEgyMDIxMDYzMDEwNTQyMDExMTM0MTg=";
var resultType = "4"; // 도로명주소 검색결과 화면 출력내용, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명 var resultType = "4"; // 도로명주소 검색결과 화면 출력내용, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명
var inputYn= "<%=inputYn%>"; var inputYn= "<%=inputYn%>";
if(inputYn != "Y"){ if(inputYn != "Y"){
document.form.confmKey.value = confmKey; document.form.confmKey.value = confmKey;
document.form.returnUrl.value = url; document.form.returnUrl.value = url;
document.form.resultType.value = resultType; document.form.resultType.value = resultType;
document.form.action="http://www.juso.go.kr/addrlink/addrLinkUrl.do"; //인터넷망 document.form.action="http://www.juso.go.kr/addrlink/addrLinkUrl.do"; //인터넷망
//document.form.action="http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do"; //모바일 웹인 경우, 인터넷망 //document.form.action="http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do"; //모바일 웹인 경우, 인터넷망
document.form.submit(); document.form.submit();
}else{ }else{
opener.jusoCallBack("<%=zipNo%>","<%=roadAddrPart1+roadAddrPart2%>","<%=addrDetail%>"); opener.jusoCallBack("<%=zipNo%>","<%=roadAddrPart1+roadAddrPart2%>","<%=addrDetail%>");
window.close(); window.close();
} }
} }
</script> </script>
<body onload="init();"> <body onload="init();">
<form id="form" name="form" method="post"> <form id="form" name="form" method="post">
<input type="hidden" id="confmKey" name="confmKey" value=""/> <input type="hidden" id="confmKey" name="confmKey" value=""/>
<input type="hidden" id="returnUrl" name="returnUrl" value=""/> <input type="hidden" id="returnUrl" name="returnUrl" value=""/>
<input type="hidden" id="resultType" name="resultType" value=""/> <input type="hidden" id="resultType" name="resultType" value=""/>
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START--> <!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START-->
<!-- <!--
<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/> <input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
--> -->
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END--> <!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,50 +1,50 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : naverLoginResultPopup.jsp * @Class Name : naverLoginResultPopup.jsp
* *
* @Description : 로그인시 naver로그인 페이지 * @Description : 로그인시 naver로그인 페이지
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!doctype html> <!doctype html>
<html lang="ko"> <html lang="ko">
<head> <head>
<script type="text/javascript" <script type="text/javascript"
src="http://code.jquery.com/jquery-1.11.3.min.js"></script> src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" <script type="text/javascript"
src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js"
charset="utf-8"></script> charset="utf-8"></script>
</head> </head>
<script type="text/javascript"> <script type="text/javascript">
var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/nlib/login/naverLoginResultPopup.do"); // 역시 마찬가지로 'localhost'가 포함된 CallBack URL var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/nlib/login/naverLoginResultPopup.do"); // 역시 마찬가지로 'localhost'가 포함된 CallBack URL
// 네이버 사용자 프로필 조회 // 네이버 사용자 프로필 조회
naver_id_login.get_naver_userprofile("naverSignInCallback()"); naver_id_login.get_naver_userprofile("naverSignInCallback()");
// 네이버 사용자 프로필 조회 이후 프로필 정보를 처리할 callback function // 네이버 사용자 프로필 조회 이후 프로필 정보를 처리할 callback function
function naverSignInCallback() { function naverSignInCallback() {
opener.snsLogin(naver_id_login.getProfileData('email')); opener.snsLogin(naver_id_login.getProfileData('email'));
self.close(); self.close();
} }
</script> </script>
</html> </html>

View File

@ -1,56 +1,56 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : naverSignResultPopup.jsp * @Class Name : naverSignResultPopup.jsp
* *
* @Description : 회원가입시 naver로그인 페이지 * @Description : 회원가입시 naver로그인 페이지
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!doctype html> <!doctype html>
<html lang="ko"> <html lang="ko">
<head> <head>
<script type="text/javascript" <script type="text/javascript"
src="http://code.jquery.com/jquery-1.11.3.min.js"></script> src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" <script type="text/javascript"
src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js"
charset="utf-8"></script> charset="utf-8"></script>
</head> </head>
<script type="text/javascript"> <script type="text/javascript">
var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/login/naverSignResultPopup.do"); // 역시 마찬가지로 'localhost'가 포함된 CallBack URL var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/login/naverSignResultPopup.do"); // 역시 마찬가지로 'localhost'가 포함된 CallBack URL
// 네이버 사용자 프로필 조회 // 네이버 사용자 프로필 조회
naver_id_login.get_naver_userprofile("naverSignInCallback()"); naver_id_login.get_naver_userprofile("naverSignInCallback()");
// 네이버 사용자 프로필 조회 이후 프로필 정보를 처리할 callback function // 네이버 사용자 프로필 조회 이후 프로필 정보를 처리할 callback function
function naverSignInCallback() { function naverSignInCallback() {
$("#id",opener.document).val(naver_id_login.getProfileData('email')); $("#id",opener.document).val(naver_id_login.getProfileData('email'));
$("#name",opener.document).val(naver_id_login.getProfileData('name')); $("#name",opener.document).val(naver_id_login.getProfileData('name'));
$("#birth_yy",opener.document).val(naver_id_login.getProfileData('birthyear')); $("#birth_yy",opener.document).val(naver_id_login.getProfileData('birthyear'));
$("#birth_mm",opener.document).val(naver_id_login.getProfileData('birthday').substring(0,2).replace(/(^0+)/, "")); $("#birth_mm",opener.document).val(naver_id_login.getProfileData('birthday').substring(0,2).replace(/(^0+)/, ""));
$("#birth_dd",opener.document).val(naver_id_login.getProfileData('birthday').substring(3,5).replace(/(^0+)/, "")); $("#birth_dd",opener.document).val(naver_id_login.getProfileData('birthday').substring(3,5).replace(/(^0+)/, ""));
$("#phone",opener.document).val(naver_id_login.getProfileData('mobile')); $("#phone",opener.document).val(naver_id_login.getProfileData('mobile'));
opener.snsLogin(); opener.snsLogin();
self.close(); self.close();
} }
</script> </script>
</html> </html>

View File

@ -1,181 +1,181 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : listCancelRentItems.jsp * @Class Name : listCancelRentItems.jsp
* *
* @Description : 대출 취소목록을 조회한다. * @Description : 대출 취소목록을 조회한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성 * @ 2021. 7. 21. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 21. * @since 2021. 7. 21.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">대출 취소</c:set> <c:set var="pageTitle">대출 취소</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- GRID --> <!-- GRID -->
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script> <script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
</head> </head>
<body onload="fn_init()"> <body onload="fn_init()">
<h1>대출 취소</h1> <h1>대출 취소</h1>
<form name="articleForm" <form name="articleForm"
action="${pageContext.request.contextPath}/board/listQnAs.do" action="${pageContext.request.contextPath}/board/listQnAs.do"
method="post" method="post"
onSubmit="fn_search_article(); return false;"> onSubmit="fn_search_article(); return false;">
<!-- 검색조건 --> <!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수"> <select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<option value="10">10개씩 보기</option> <option value="10">10개씩 보기</option>
<option value="50">50개씩 보기</option> <option value="50">50개씩 보기</option>
<option value="100">100개씩 보기</option> <option value="100">100개씩 보기</option>
</select> </select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="1" size="5" maxlength="5" /> <input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="1" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="" size="35" maxlength="50" /> <input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="" size="35" maxlength="50" />
<input type="submit" name="btnSearch" id="btnSearch" value="검색" /> <input type="submit" name="btnSearch" id="btnSearch" value="검색" />
<input type="button" name="btnNew" id="btnNew" value="글쓰기" <input type="button" name="btnNew" id="btnNew" value="글쓰기"
onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';" /> onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';" />
<div id="jsGrid" name="jsGrid" ></div> <div id="jsGrid" name="jsGrid" ></div>
</form> </form>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
// 그리드 데이터 // 그리드 데이터
var clients = [ var clients = [
{ "noticeNo": 1, "noticeType": "01", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 1, "noticeType": "01", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 2, "noticeType": "02", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 2, "noticeType": "02", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 3, "noticeType": "03", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 3, "noticeType": "03", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 4, "noticeType": "04", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 4, "noticeType": "04", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 5, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 5, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 6, "noticeType": "06", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 6, "noticeType": "06", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 7, "noticeType": "06", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 7, "noticeType": "06", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 9, "noticeType": "01", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" } { "noticeNo": 9, "noticeType": "01", "title": "대출 취소 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }
]; ];
// 그리드내 콤보박스 값 // 그리드내 콤보박스 값
var noticeTypes = [ var noticeTypes = [
{ Name: "공지" , Id: "01" }, { Name: "공지" , Id: "01" },
{ Name: "자료" , Id: "02" }, { Name: "자료" , Id: "02" },
{ Name: "모집" , Id: "03" }, { Name: "모집" , Id: "03" },
{ Name: "입찰" , Id: "04" }, { Name: "입찰" , Id: "04" },
{ Name: "발표" , Id: "05" }, { Name: "발표" , Id: "05" },
{ Name: "이벤트", Id: "06" } { Name: "이벤트", Id: "06" }
]; ];
// 그리드 생성 // 그리드 생성
$("#jsGrid").jsGrid({ $("#jsGrid").jsGrid({
width: "100%", width: "100%",
height: "100%", height: "100%",
inserting: false, inserting: false,
editing: false, editing: false,
sorting: true, sorting: true,
paging: true, paging: true,
pageSize: 10, pageSize: 10,
pageButtonCount: 10, pageButtonCount: 10,
pageIndex: 1, pageIndex: 1,
pageFirstText: " << ", pageFirstText: " << ",
pagePrevText: " < ", pagePrevText: " < ",
pageLastText: " >> ", pageLastText: " >> ",
pageNextText: " > ", pageNextText: " > ",
pagerFormat: "{first} {prev} {pages} {next} {last}", pagerFormat: "{first} {prev} {pages} {next} {last}",
/* 이하만 설정 */ /* 이하만 설정 */
data: clients, data: clients,
fields: [ fields: [
{ title:"번호", name: "noticeNo" , type: "number" , width: 50, align: "center"}, { title:"번호", name: "noticeNo" , type: "number" , width: 50, align: "center"},
{ title:"유형", name: "noticeType", type: "select", width: 80, align: "center", items: noticeTypes, valueField: "Id", textField: "Name" }, { title:"유형", name: "noticeType", type: "select", width: 80, align: "center", items: noticeTypes, valueField: "Id", textField: "Name" },
{ title:"제목", name: "title", type: "text" , width: 200, align: "left" }, { title:"제목", name: "title", type: "text" , width: 200, align: "left" },
{ title:"조회수", name: "readCount", type: "number", width: 50, align: "center" }, { title:"조회수", name: "readCount", type: "number", width: 50, align: "center" },
{ title:"등록일", name: "regDate", type: "text", width: 100, align: "center"} { title:"등록일", name: "regDate", type: "text", width: 100, align: "center"}
] ]
}); });
function fn_search_article() { function fn_search_article() {
var searchKeyword = document.articleForm.searchKeyword.value; var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = document.articleForm.pageIndex.value; var pageIndex = document.articleForm.pageIndex.value;
var pageSize = document.articleForm.pageSize.value; var pageSize = document.articleForm.pageSize.value;
var inputData = { var inputData = {
"searchKeyword" : searchKeyword /*encodeURIComponent(searchKeyword)*/ "searchKeyword" : searchKeyword /*encodeURIComponent(searchKeyword)*/
, "pageIndex" : pageIndex , "pageIndex" : pageIndex
, "pageSize": pageSize}; , "pageSize": pageSize};
//lert(JSON.stringify(inputData)); //lert(JSON.stringify(inputData));
} }
function fn_init() { function fn_init() {
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,181 +1,181 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : listRentItems.jsp * @Class Name : listRentItems.jsp
* *
* @Description : 대출 목록을 조회한다. * @Description : 대출 목록을 조회한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성 * @ 2021. 7. 21. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 21. * @since 2021. 7. 21.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">대출 목록</c:set> <c:set var="pageTitle">대출 목록</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- GRID --> <!-- GRID -->
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script> <script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
</head> </head>
<body onload="fn_init()"> <body onload="fn_init()">
<h1>대출 목록</h1> <h1>대출 목록</h1>
<form name="articleForm" <form name="articleForm"
action="${pageContext.request.contextPath}/board/listQnAs.do" action="${pageContext.request.contextPath}/board/listQnAs.do"
method="post" method="post"
onSubmit="fn_search_article(); return false;"> onSubmit="fn_search_article(); return false;">
<!-- 검색조건 --> <!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수"> <select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<option value="10">10개씩 보기</option> <option value="10">10개씩 보기</option>
<option value="50">50개씩 보기</option> <option value="50">50개씩 보기</option>
<option value="100">100개씩 보기</option> <option value="100">100개씩 보기</option>
</select> </select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="1" size="5" maxlength="5" /> <input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="1" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="" size="35" maxlength="50" /> <input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="" size="35" maxlength="50" />
<input type="submit" name="btnSearch" id="btnSearch" value="검색" /> <input type="submit" name="btnSearch" id="btnSearch" value="검색" />
<input type="button" name="btnNew" id="btnNew" value="글쓰기" <input type="button" name="btnNew" id="btnNew" value="글쓰기"
onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';" /> onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';" />
<div id="jsGrid" name="jsGrid" ></div> <div id="jsGrid" name="jsGrid" ></div>
</form> </form>
<input type="button" value="대출 취소목록" onClick="location.href='http://www.example.com/nlib/rent/listCancelRentItems.do'"> <input type="button" value="대출 취소목록" onClick="location.href='http://www.example.com/nlib/rent/listCancelRentItems.do'">
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
// 그리드 데이터 // 그리드 데이터
var clients = [ var clients = [
{ "noticeNo": 1, "noticeType": "01", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 1, "noticeType": "01", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 2, "noticeType": "02", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 2, "noticeType": "02", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 3, "noticeType": "03", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 3, "noticeType": "03", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 4, "noticeType": "04", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 4, "noticeType": "04", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 5, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 5, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 6, "noticeType": "06", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 6, "noticeType": "06", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 7, "noticeType": "06", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 7, "noticeType": "06", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 9, "noticeType": "01", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" } { "noticeNo": 9, "noticeType": "01", "title": "대출 목록 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }
]; ];
// 그리드내 콤보박스 값 // 그리드내 콤보박스 값
var noticeTypes = [ var noticeTypes = [
{ Name: "공지" , Id: "01" }, { Name: "공지" , Id: "01" },
{ Name: "자료" , Id: "02" }, { Name: "자료" , Id: "02" },
{ Name: "모집" , Id: "03" }, { Name: "모집" , Id: "03" },
{ Name: "입찰" , Id: "04" }, { Name: "입찰" , Id: "04" },
{ Name: "발표" , Id: "05" }, { Name: "발표" , Id: "05" },
{ Name: "이벤트", Id: "06" } { Name: "이벤트", Id: "06" }
]; ];
// 그리드 생성 // 그리드 생성
$("#jsGrid").jsGrid({ $("#jsGrid").jsGrid({
width: "100%", width: "100%",
height: "100%", height: "100%",
inserting: false, inserting: false,
editing: false, editing: false,
sorting: true, sorting: true,
paging: true, paging: true,
pageSize: 10, pageSize: 10,
pageButtonCount: 10, pageButtonCount: 10,
pageIndex: 1, pageIndex: 1,
pageFirstText: " << ", pageFirstText: " << ",
pagePrevText: " < ", pagePrevText: " < ",
pageLastText: " >> ", pageLastText: " >> ",
pageNextText: " > ", pageNextText: " > ",
pagerFormat: "{first} {prev} {pages} {next} {last}", pagerFormat: "{first} {prev} {pages} {next} {last}",
/* 이하만 설정 */ /* 이하만 설정 */
data: clients, data: clients,
fields: [ fields: [
{ title:"번호", name: "noticeNo" , type: "number" , width: 50, align: "center"}, { title:"번호", name: "noticeNo" , type: "number" , width: 50, align: "center"},
{ title:"유형", name: "noticeType", type: "select", width: 80, align: "center", items: noticeTypes, valueField: "Id", textField: "Name" }, { title:"유형", name: "noticeType", type: "select", width: 80, align: "center", items: noticeTypes, valueField: "Id", textField: "Name" },
{ title:"제목", name: "title", type: "text" , width: 200, align: "left" }, { title:"제목", name: "title", type: "text" , width: 200, align: "left" },
{ title:"조회수", name: "readCount", type: "number", width: 50, align: "center" }, { title:"조회수", name: "readCount", type: "number", width: 50, align: "center" },
{ title:"등록일", name: "regDate", type: "text", width: 100, align: "center"} { title:"등록일", name: "regDate", type: "text", width: 100, align: "center"}
] ]
}); });
function fn_search_article() { function fn_search_article() {
var searchKeyword = document.articleForm.searchKeyword.value; var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = document.articleForm.pageIndex.value; var pageIndex = document.articleForm.pageIndex.value;
var pageSize = document.articleForm.pageSize.value; var pageSize = document.articleForm.pageSize.value;
var inputData = { var inputData = {
"searchKeyword" : searchKeyword /*encodeURIComponent(searchKeyword)*/ "searchKeyword" : searchKeyword /*encodeURIComponent(searchKeyword)*/
, "pageIndex" : pageIndex , "pageIndex" : pageIndex
, "pageSize": pageSize}; , "pageSize": pageSize};
//lert(JSON.stringify(inputData)); //lert(JSON.stringify(inputData));
} }
function fn_init() { function fn_init() {
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,181 +1,181 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : listReserVations.jsp * @Class Name : listReserVations.jsp
* *
* @Description : 대출 예약 목록을 조회한다. * @Description : 대출 예약 목록을 조회한다.
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성 * @ 2021. 7. 21. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 21. * @since 2021. 7. 21.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">대출 예약</c:set> <c:set var="pageTitle">대출 예약</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<!-- GRID --> <!-- GRID -->
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" /> <link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script> <script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
</head> </head>
<body onload="fn_init()"> <body onload="fn_init()">
<h1>대출 예약</h1> <h1>대출 예약</h1>
<form name="articleForm" <form name="articleForm"
action="${pageContext.request.contextPath}/board/listQnAs.do" action="${pageContext.request.contextPath}/board/listQnAs.do"
method="post" method="post"
onSubmit="fn_search_article(); return false;"> onSubmit="fn_search_article(); return false;">
<!-- 검색조건 --> <!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수"> <select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<option value="10">10개씩 보기</option> <option value="10">10개씩 보기</option>
<option value="50">50개씩 보기</option> <option value="50">50개씩 보기</option>
<option value="100">100개씩 보기</option> <option value="100">100개씩 보기</option>
</select> </select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="1" size="5" maxlength="5" /> <input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="1" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="" size="35" maxlength="50" /> <input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="" size="35" maxlength="50" />
<input type="submit" name="btnSearch" id="btnSearch" value="검색" /> <input type="submit" name="btnSearch" id="btnSearch" value="검색" />
<input type="button" name="btnNew" id="btnNew" value="글쓰기" <input type="button" name="btnNew" id="btnNew" value="글쓰기"
onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';" /> onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';" />
<div id="jsGrid" name="jsGrid" ></div> <div id="jsGrid" name="jsGrid" ></div>
</form> </form>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
// 그리드 데이터 // 그리드 데이터
var clients = [ var clients = [
{ "noticeNo": 1, "noticeType": "01", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 1, "noticeType": "01", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 2, "noticeType": "02", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 2, "noticeType": "02", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 3, "noticeType": "03", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 3, "noticeType": "03", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 4, "noticeType": "04", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 4, "noticeType": "04", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 5, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 5, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 6, "noticeType": "06", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 6, "noticeType": "06", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 7, "noticeType": "06", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 7, "noticeType": "06", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }, { "noticeNo": 8, "noticeType": "05", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" },
{ "noticeNo": 9, "noticeType": "01", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" } { "noticeNo": 9, "noticeType": "01", "title": "대출예약 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }
]; ];
// 그리드내 콤보박스 값 // 그리드내 콤보박스 값
var noticeTypes = [ var noticeTypes = [
{ Name: "공지" , Id: "01" }, { Name: "공지" , Id: "01" },
{ Name: "자료" , Id: "02" }, { Name: "자료" , Id: "02" },
{ Name: "모집" , Id: "03" }, { Name: "모집" , Id: "03" },
{ Name: "입찰" , Id: "04" }, { Name: "입찰" , Id: "04" },
{ Name: "발표" , Id: "05" }, { Name: "발표" , Id: "05" },
{ Name: "이벤트", Id: "06" } { Name: "이벤트", Id: "06" }
]; ];
// 그리드 생성 // 그리드 생성
$("#jsGrid").jsGrid({ $("#jsGrid").jsGrid({
width: "100%", width: "100%",
height: "100%", height: "100%",
inserting: false, inserting: false,
editing: false, editing: false,
sorting: true, sorting: true,
paging: true, paging: true,
pageSize: 10, pageSize: 10,
pageButtonCount: 10, pageButtonCount: 10,
pageIndex: 1, pageIndex: 1,
pageFirstText: " << ", pageFirstText: " << ",
pagePrevText: " < ", pagePrevText: " < ",
pageLastText: " >> ", pageLastText: " >> ",
pageNextText: " > ", pageNextText: " > ",
pagerFormat: "{first} {prev} {pages} {next} {last}", pagerFormat: "{first} {prev} {pages} {next} {last}",
/* 이하만 설정 */ /* 이하만 설정 */
data: clients, data: clients,
fields: [ fields: [
{ title:"번호", name: "noticeNo" , type: "number" , width: 50, align: "center"}, { title:"번호", name: "noticeNo" , type: "number" , width: 50, align: "center"},
{ title:"유형", name: "noticeType", type: "select", width: 80, align: "center", items: noticeTypes, valueField: "Id", textField: "Name" }, { title:"유형", name: "noticeType", type: "select", width: 80, align: "center", items: noticeTypes, valueField: "Id", textField: "Name" },
{ title:"제목", name: "title", type: "text" , width: 200, align: "left" }, { title:"제목", name: "title", type: "text" , width: 200, align: "left" },
{ title:"조회수", name: "readCount", type: "number", width: 50, align: "center" }, { title:"조회수", name: "readCount", type: "number", width: 50, align: "center" },
{ title:"등록일", name: "regDate", type: "text", width: 100, align: "center"} { title:"등록일", name: "regDate", type: "text", width: 100, align: "center"}
] ]
}); });
function fn_search_article() { function fn_search_article() {
var searchKeyword = document.articleForm.searchKeyword.value; var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = document.articleForm.pageIndex.value; var pageIndex = document.articleForm.pageIndex.value;
var pageSize = document.articleForm.pageSize.value; var pageSize = document.articleForm.pageSize.value;
var inputData = { var inputData = {
"searchKeyword" : searchKeyword /*encodeURIComponent(searchKeyword)*/ "searchKeyword" : searchKeyword /*encodeURIComponent(searchKeyword)*/
, "pageIndex" : pageIndex , "pageIndex" : pageIndex
, "pageSize": pageSize}; , "pageSize": pageSize};
//lert(JSON.stringify(inputData)); //lert(JSON.stringify(inputData));
} }
function fn_init() { function fn_init() {
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,43 +1,43 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : getSampleInfo.jsp * @Class Name : getSampleInfo.jsp
* *
* @Description : RESTful API 호출 샘플 * @Description : RESTful API 호출 샘플
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 6. 15. KNKIM 최초 생성 * @ 2021. 6. 15. KNKIM 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP KNKIM * @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 6. 15. * @since 2021. 6. 15.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<c:set var="pageTitle"><spring:message code="nlib.title"/> - 결과</c:set> <c:set var="pageTitle"><spring:message code="nlib.title"/> - 결과</c:set>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>${pageTitle}</title> <title>${pageTitle}</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
</script> </script>
</head> </head>
<body> <body>
All All
</body> </body>
</html> </html>

View File

@ -1,40 +1,40 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : getMyInfo.jsp * @Class Name : getMyInfo.jsp
* *
* @Description : 내 정보 조회 * @Description : 내 정보 조회
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%> <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title> <title>Insert title here</title>
</head> </head>
<body> <body>
<a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/userInfo/pwCertMyInfo.do';">내 정보 수정</a> <a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/userInfo/pwCertMyInfo.do';">내 정보 수정</a>
</body> </body>
</html> </html>

View File

@ -1,254 +1,254 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : putMyInfo.jsp * @Class Name : putMyInfo.jsp
* *
* @Description : 내 정보 수정 * @Description : 내 정보 수정
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<title>Insert title here</title> <title>Insert title here</title>
<script type="text/javaScript" language="javascript" defer="defer"> <script type="text/javaScript" language="javascript" defer="defer">
function goPopup(){ function goPopup(){
// 주소검색을 수행할 팝업 페이지를 호출합니다. // 주소검색을 수행할 팝업 페이지를 호출합니다.
// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다. // 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.
var pop = window.open("/nlib/popup/jusoPopup.do","pop","width=570,height=420, scrollbars=yes, resizable=yes"); var pop = window.open("/nlib/popup/jusoPopup.do","pop","width=570,height=420, scrollbars=yes, resizable=yes");
// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다. // 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.
//var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes"); //var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes");
} }
$(document).ready(function() { $(document).ready(function() {
<% <%
//핸드폰 번호가 변하는것 실시간 감지 //핸드폰 번호가 변하는것 실시간 감지
%> %>
$("#phone").on("propertychange change keyup paste input", function() { $("#phone").on("propertychange change keyup paste input", function() {
$("#phoneCertYn").val("N"); $("#phoneCertYn").val("N");
}); });
}) })
<% <%
//핸드폰 인증번호 받기 //핸드폰 인증번호 받기
%> %>
function phoneCert(){ function phoneCert(){
$("#phone").val($("#phone").val().replace(/-/gi,"")); $("#phone").val($("#phone").val().replace(/-/gi,""));
var regExp = /^\d{3}\d{3,4}\d{4}$/; var regExp = /^\d{3}\d{3,4}\d{4}$/;
if(!regExp.test($("#phone").val()) || $("#phone").val()==""){ if(!regExp.test($("#phone").val()) || $("#phone").val()==""){
alert("형식에 맞지 않는 번호입니다."); alert("형식에 맞지 않는 번호입니다.");
return false; return false;
} }
$.ajax({ $.ajax({
url : "/nlib/member/phoneCertNum.ajax", url : "/nlib/member/phoneCertNum.ajax",
type : "POST", type : "POST",
async: false, async: false,
data : {"phone" : $("#phone").val()}, data : {"phone" : $("#phone").val()},
success : function(result){ success : function(result){
alert("인증번호가 발송됐습니다."); alert("인증번호가 발송됐습니다.");
//인증번호 확인창 //인증번호 확인창
$("#phoneCertForm").css("display","block") $("#phoneCertForm").css("display","block")
},error : function(){ },error : function(){
} }
}) })
} }
<% <%
//핸드폰 인증번호 확인 //핸드폰 인증번호 확인
%> %>
function certNumCheck(){ function certNumCheck(){
<% <%
//ajax 사용자가 입력한 번호를 보내 RESTfull server에서 확인 success or fail 반환 (3분이내인지도) //ajax 사용자가 입력한 번호를 보내 RESTfull server에서 확인 success or fail 반환 (3분이내인지도)
%> %>
$.ajax({ $.ajax({
url : "/nlib/member/phoneCertNumChk.ajax", url : "/nlib/member/phoneCertNumChk.ajax",
type : "POST", type : "POST",
data : {"phoneCertNum" : $("#phoneCertNum").val(), data : {"phoneCertNum" : $("#phoneCertNum").val(),
"phone" : $("#phone").val()}, "phone" : $("#phone").val()},
async: false, async: false,
success : function(result){ success : function(result){
if(result=="true") if(result=="true")
{ {
alert("인증되었습니다."); alert("인증되었습니다.");
$("#phoneCertYn").val("Y"); $("#phoneCertYn").val("Y");
}else{ }else{
alert("인증에 실패했습니다."); alert("인증에 실패했습니다.");
} }
},error : function(){ },error : function(){
} }
}) })
} }
function jusoCallBack(zipNo,roadAddrPart,addrDetail){ function jusoCallBack(zipNo,roadAddrPart,addrDetail){
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다. // 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
$("#zipNo").val(zipNo); $("#zipNo").val(zipNo);
$("#roadAddrPart").val(roadAddrPart); $("#roadAddrPart").val(roadAddrPart);
$("#addrDetail").val(addrDetail); $("#addrDetail").val(addrDetail);
} }
document.addEventListener('keydown', function(event) { document.addEventListener('keydown', function(event) {
if (event.keyCode === 13) { if (event.keyCode === 13) {
event.preventDefault(); event.preventDefault();
} }
}, true); }, true);
function update(){ function update(){
if($("#phoneCertYn").val()!="Y") if($("#phoneCertYn").val()!="Y")
{ {
alert("휴대전화 인증이 필요합니다."); alert("휴대전화 인증이 필요합니다.");
return false; return false;
} }
if($("#zipNo").val()=="" || $("#roadAddrPart").val()=="" || $("#addrDetail").val()=="") if($("#zipNo").val()=="" || $("#roadAddrPart").val()=="" || $("#addrDetail").val()=="")
{ {
alert("주소를 입력해주세요."); alert("주소를 입력해주세요.");
return false; return false;
} }
if(confirm("수정하시겠습니까?")){ if(confirm("수정하시겠습니까?")){
alert("수정되었습니다."); alert("수정되었습니다.");
return true; return true;
}else{ }else{
return false; return false;
} }
} }
</script> </script>
<style type="text/css"> <style type="text/css">
body { body {
padding-top:0px; padding-top:0px;
margin-top:0px; margin-top:0px;
background-color:#f5f5f5; background-color:#f5f5f5;
} }
.page-header { .page-header {
padding-top:0px; padding-top:0px;
margin-top:0px; margin-top:0px;
} }
.form-horizontal .control-label.text-left{ .form-horizontal .control-label.text-left{
text-align:left; text-align:left;
} }
.form-horizontal .form-group { .form-horizontal .form-group {
height:50px; height:50px;
} }
h3 span.ok { h3 span.ok {
color:#01A9DB; color:#01A9DB;
} }
label.error { label.error {
font-family:"돋움", Dotum, "Apple SD Gothic Neo", Helvetica, Sans-serif; font-family:"돋움", Dotum, "Apple SD Gothic Neo", Helvetica, Sans-serif;
font-size:9pt; font-size:9pt;
font-weight:600; font-weight:600;
padding:3px 0 0 10px; padding:3px 0 0 10px;
color:#FF0000; color:#FF0000;
display:block; display:block;
} }
</style> </style>
</head> </head>
<body> <body>
<div id="wrap"> <div id="wrap">
<br><br> <br><br>
<b><font size="6" color="gray">정보수정</font></b> <b><font size="6" color="gray">정보수정</font></b>
<br><br><br> <br><br><br>
<form id="updateForm" name="updateForm" method="post" onsubmit="return update()" action="/nlib/userInfo/getMyInfo.do"> <form id="updateForm" name="updateForm" method="post" onsubmit="return update()" action="/nlib/userInfo/getMyInfo.do">
<table> <table>
<tr> <tr>
<td id="title">아이디</td> <td id="title">아이디</td>
<td> <td>
<input type="text" id="id" name="id" maxlength="30" value=<c:out value="${result.id}"/> required readonly > <input type="text" id="id" name="id" maxlength="30" value=<c:out value="${result.id}"/> required readonly >
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">이름</td> <td id="title">이름</td>
<td> <td>
<input type="text" id="name" name="name" maxlength="20" value=<c:out value="${result.name}"/> required> <input type="text" id="name" name="name" maxlength="20" value=<c:out value="${result.name}"/> required>
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">휴대전화</td> <td id="title">휴대전화</td>
<td> <td>
<input type="text" id="phone" name="phone" required value=<c:out value="${result.phone}"/> ><button type="button" style="text-align:left;" class="btn-warning" onclick="phoneCert()">인증번호 받기</button> <input type="text" id="phone" name="phone" required value=<c:out value="${result.phone}"/> ><button type="button" style="text-align:left;" class="btn-warning" onclick="phoneCert()">인증번호 받기</button>
<div id="phoneCertForm" style="display:none;"><br><input type='text' id='phoneCertNum' name='phoneCertNum'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certNumCheck()' >인증번호 확인</button></div> <div id="phoneCertForm" style="display:none;"><br><input type='text' id='phoneCertNum' name='phoneCertNum'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certNumCheck()' >인증번호 확인</button></div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="title">주소</td> <td id="title">주소</td>
<td> <td>
<input type="text" id="zipNo" name="zipNo" readonly value=<c:out value="${result.zipNo}"/> ><button type="button" style="text-align:left;" class="btn-warning" onclick="goPopup()" >주소검색</button><br> <input type="text" id="zipNo" name="zipNo" readonly value=<c:out value="${result.zipNo}"/> ><button type="button" style="text-align:left;" class="btn-warning" onclick="goPopup()" >주소검색</button><br>
<input type="text" id="roadAddrPart" name="roadAddrPart" readonly value=<c:out value="${result.roadAddrPart}"/> ><input type="text" id="addrDetail" name="addrDetail" readonly value=<c:out value="${result.addrDetail}"/> > <input type="text" id="roadAddrPart" name="roadAddrPart" readonly value=<c:out value="${result.roadAddrPart}"/> ><input type="text" id="addrDetail" name="addrDetail" readonly value=<c:out value="${result.addrDetail}"/> >
</td> </td>
</tr> </tr>
</table> </table>
<br> <br>
<input type="hidden" id="phoneCertYn" name="phoneCertYn" value=<c:out value="N"/>> <input type="hidden" id="phoneCertYn" name="phoneCertYn" value=<c:out value="N"/>>
<input type="submit" value="수정"/> <input type="button" onclick="javascript:location.href='${pageContext.request.contextPath}/userInfo/getMyInfo.do';" value="취소"> <input type="submit" value="수정"/> <input type="button" onclick="javascript:location.href='${pageContext.request.contextPath}/userInfo/getMyInfo.do';" value="취소">
</form> </form>
</div> </div>
</body> </body>
</body> </body>
</html> </html>

View File

@ -1,52 +1,52 @@
<% <%
/** /**
* <pre> * <pre>
* @Class Name : putMyInfo.jsp * @Class Name : putMyInfo.jsp
* *
* @Description : 내 정보 수정 * @Description : 내 정보 수정
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 12. JSYOO 최초 생성 * @ 2021. 7. 12. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12. * @since 2021. 7. 12.
* @version 1.0 * @version 1.0
* *
*/ */
%> %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<title>Insert title here</title> <title>Insert title here</title>
<script> <script>
function goPutMyInfo(){ function goPutMyInfo(){
document.pwInputForm.action="/nlib/userInfo/putMyInfo.do"; document.pwInputForm.action="/nlib/userInfo/putMyInfo.do";
document.pwInputForm.submit(); document.pwInputForm.submit();
} }
</script> </script>
</head> </head>
<body> <body>
<h2>비밀번호를 입력해주세요</h2> <h2>비밀번호를 입력해주세요</h2>
<form id="pwInputForm" name="pwInputForm" method="POST"> <form id="pwInputForm" name="pwInputForm" method="POST">
<input type="password" id="password" name="password"><button style="text-align:left;" class="btn-warning" onclick="goPutMyInfo();">확인</button> <input type="password" id="password" name="password"><button style="text-align:left;" class="btn-warning" onclick="goPutMyInfo();">확인</button>
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,35 +1,35 @@
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<ul class="gnb"> <ul class="gnb">
<!-- 이용/소개 --> <!-- 이용/소개 -->
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/inform/selectGreeting.do';">인사말</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/inform/selectGreeting.do';">인사말</a></li>
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/inform/selectNCultureOperationInfo.do';">이용안내</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/inform/selectNCultureOperationInfo.do';">이용안내</a></li>
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/board/listNotices.do';">공지사항</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/board/listNotices.do';">공지사항</a></li>
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/board/listFAQs.do';">자주하는질문</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/board/listFAQs.do';">자주하는질문</a></li>
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/board/listQnAs.do';">묻고답하기</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/board/listQnAs.do';">묻고답하기</a></li>
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/inform/selectNCultureLocationInfo.do';">찾아오시는길</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/inform/selectNCultureLocationInfo.do';">찾아오시는길</a></li>
<!-- 자료검색 --> <!-- 자료검색 -->
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/collection/listItems.do';">소장자료검색</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/collection/listItems.do';">소장자료검색</a></li>
<!-- 내정보 : 조회/수정 --> <!-- 내정보 : 조회/수정 -->
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/member/selectMemberInfo.do';">내정보</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/member/selectMemberInfo.do';">내정보</a></li>
<!-- 내정보 : 대출/예약/열람/관심자료 --> <!-- 내정보 : 대출/예약/열람/관심자료 -->
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/rent/listRentItems.do';">대출</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/rent/listRentItems.do';">대출</a></li>
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/rent/listReservations.do';">예약</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/rent/listReservations.do';">예약</a></li>
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/rent/listRequestsForViewingItem.do';">열람요청</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/rent/listRequestsForViewingItem.do';">열람요청</a></li>
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/collection/listInterests.do';">관심자료</a></li> <li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/collection/listInterests.do';">관심자료</a></li>
<!-- 개발자용 메뉴 --> <!-- 개발자용 메뉴 -->
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/getSampleInfoForm.do';">통신API</a></li> <li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/getSampleInfoForm.do';">통신API</a></li>
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/barcode/getMemberQRCodeForm.do';">QR코드</a></li> <li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/barcode/getMemberQRCodeForm.do';">QR코드</a></li>
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/password/getSampleEncoder.do';">암호화</a></li> <li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/password/getSampleEncoder.do';">암호화</a></li>
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/system/reloadProperties.do';">프로퍼티갱신</a></li> <li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/system/reloadProperties.do';">프로퍼티갱신</a></li>
</ul> </ul>
<script type="text/javascript"> <script type="text/javascript">
$(function() { $(function() {
}); });
</script> </script>

View File

@ -1,53 +1,53 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> <%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko"> <html lang="ko">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<link href="${pageContext.request.contextPath}/css/nlib.css" rel="stylesheet" type="text/css" /> <link href="${pageContext.request.contextPath}/css/nlib.css" rel="stylesheet" type="text/css" />
<script src="${pageContext.request.contextPath}/js/jquery/jquery.min.js"></script> <script src="${pageContext.request.contextPath}/js/jquery/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/js/nlib.js"></script> <script src="${pageContext.request.contextPath}/js/nlib.js"></script>
<title>온라인 자료대출관리 (N-LIB)</title> <title>온라인 자료대출관리 (N-LIB)</title>
</head> </head>
<body> <body>
<div id="page-container"> <div id="page-container">
<div id="header"> <div id="header">
<!-- 머리말 : 시작 --> <!-- 머리말 : 시작 -->
<tiles:insertAttribute name="header" /> <tiles:insertAttribute name="header" />
<!-- 머리말 : 종료 --> <!-- 머리말 : 종료 -->
</div> </div>
<div id="menu"> <div id="menu">
<!-- 메뉴 : 시작 --> <!-- 메뉴 : 시작 -->
<tiles:insertAttribute name="menu" /> <tiles:insertAttribute name="menu" />
<!-- 메뉴 : 종료 --> <!-- 메뉴 : 종료 -->
</div> </div>
<div id="content-wrap"> <div id="content-wrap">
<!-- 메인 : 시작 --> <!-- 메인 : 시작 -->
<tiles:insertAttribute name="main" /> <tiles:insertAttribute name="main" />
<!-- 메인 : 종료 --> <!-- 메인 : 종료 -->
</div> </div>
<div id="footer"> <div id="footer">
<!-- 꼬리말 : 시작 --> <!-- 꼬리말 : 시작 -->
<tiles:insertAttribute name="footer" /> <tiles:insertAttribute name="footer" />
<!-- 꼬리말 : 종료 --> <!-- 꼬리말 : 종료 -->
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(function() { $(function() {
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,40 +1,40 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE tiles-definitions PUBLIC <!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions> <tiles-definitions>
<!-- 메뉴 탭 타일즈 --> <!-- 메뉴 탭 타일즈 -->
<definition name="template" template="/WEB-INF/tiles/tiles-layout.jsp"> <definition name="template" template="/WEB-INF/tiles/tiles-layout.jsp">
<put-attribute name="header" value="/WEB-INF/tiles/inc/header.jsp" /> <put-attribute name="header" value="/WEB-INF/tiles/inc/header.jsp" />
<put-attribute name="menu" value="/WEB-INF/tiles/inc/menu.jsp" /> <put-attribute name="menu" value="/WEB-INF/tiles/inc/menu.jsp" />
<put-attribute name="footer" value="/WEB-INF/tiles/inc/footer.jsp" /> <put-attribute name="footer" value="/WEB-INF/tiles/inc/footer.jsp" />
</definition> </definition>
<definition name="popup" template="/WEB-INF/tiles/tiles-layout-popup.jsp"> <definition name="popup" template="/WEB-INF/tiles/tiles-layout-popup.jsp">
<put-attribute name="header" value="/WEB-INF/tiles/inc-popup/header.jsp" /> <put-attribute name="header" value="/WEB-INF/tiles/inc-popup/header.jsp" />
<put-attribute name="menu" value="/WEB-INF/tiles/inc-popup/menu.jsp" /> <put-attribute name="menu" value="/WEB-INF/tiles/inc-popup/menu.jsp" />
<put-attribute name="footer" value="/WEB-INF/tiles/inc-popup/footer.jsp" /> <put-attribute name="footer" value="/WEB-INF/tiles/inc-popup/footer.jsp" />
</definition> </definition>
<definition name="*" extends="template"> <definition name="*" extends="template">
<put-attribute name="main" value="/WEB-INF/jsp/{1}.jsp" /> <put-attribute name="main" value="/WEB-INF/jsp/{1}.jsp" />
</definition> </definition>
<definition name="*/*" extends="template"> <definition name="*/*" extends="template">
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}.jsp" /> <put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}.jsp" />
</definition> </definition>
<definition name="*/*/*" extends="template"> <definition name="*/*/*" extends="template">
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" /> <put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />
</definition> </definition>
<definition name="*/*/*/*" extends="template"> <definition name="*/*/*/*" extends="template">
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}/{4}.jsp" /> <put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}/{4}.jsp" />
</definition> </definition>
<definition name="*/*Popup" extends="popup"> <definition name="*/*Popup" extends="popup">
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}*Popup.jsp" /> <put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}*Popup.jsp" />
</definition> </definition>
<definition name="*/*/*Popup" extends="popup"> <definition name="*/*/*Popup" extends="popup">
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}*Popup.jsp" /> <put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}*Popup.jsp" />
</definition> </definition>
</tiles-definitions> </tiles-definitions>

View File

@ -1,88 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5"> id="WebApp_ID" version="2.5">
<display-name>nlib</display-name> <display-name>nlib</display-name>
<filter> <filter>
<filter-name>encodingFilter</filter-name> <filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param> <init-param>
<param-name>encoding</param-name> <param-name>encoding</param-name>
<param-value>utf-8</param-value> <param-value>utf-8</param-value>
</init-param> </init-param>
</filter> </filter>
<filter-mapping> <filter-mapping>
<filter-name>encodingFilter</filter-name> <filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern> <url-pattern>*.do</url-pattern>
</filter-mapping> </filter-mapping>
<filter> <filter>
<filter-name>HTMLTagFilter</filter-name> <filter-name>HTMLTagFilter</filter-name>
<filter-class>egovframework.rte.ptl.mvc.filter.HTMLTagFilter</filter-class> <filter-class>egovframework.rte.ptl.mvc.filter.HTMLTagFilter</filter-class>
</filter> </filter>
<filter-mapping> <filter-mapping>
<filter-name>HTMLTagFilter</filter-name> <filter-name>HTMLTagFilter</filter-name>
<url-pattern>*.do</url-pattern> <url-pattern>*.do</url-pattern>
</filter-mapping> </filter-mapping>
<!-- Spring Security Filter : DIGITALSHIP 2021.07.02 --> <!-- Spring Security Filter : DIGITALSHIP 2021.07.02 -->
<filter> <filter>
<filter-name>springSecurityFilterChain</filter-name> <filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter> </filter>
<filter-mapping> <filter-mapping>
<filter-name>springSecurityFilterChain</filter-name> <filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern> <url-pattern>/*</url-pattern>
</filter-mapping> </filter-mapping>
<context-param> <context-param>
<param-name>contextConfigLocation</param-name> <param-name>contextConfigLocation</param-name>
<param-value>classpath*:egovframework/spring/context-*.xml</param-value> <param-value>classpath*:egovframework/spring/context-*.xml</param-value>
</context-param> </context-param>
<listener> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> </listener>
<servlet> <servlet>
<servlet-name>action</servlet-name> <servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param> <init-param>
<param-name>contextConfigLocation</param-name> <param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml</param-value> <param-value>/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml</param-value>
</init-param> </init-param>
<load-on-startup>1</load-on-startup> <load-on-startup>1</load-on-startup>
</servlet> </servlet>
<servlet-mapping> <servlet-mapping>
<servlet-name>action</servlet-name> <servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern> <url-pattern>*.do</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>action</servlet-name> <servlet-name>action</servlet-name>
<url-pattern>*.ajax</url-pattern> <url-pattern>*.ajax</url-pattern>
</servlet-mapping> </servlet-mapping>
<welcome-file-list> <welcome-file-list>
<welcome-file>index.jsp</welcome-file> <welcome-file>index.jsp</welcome-file>
</welcome-file-list> </welcome-file-list>
<login-config> <login-config>
<auth-method>BASIC</auth-method> <auth-method>BASIC</auth-method>
</login-config> </login-config>
<error-page> <error-page>
<exception-type>java.lang.Throwable</exception-type> <exception-type>java.lang.Throwable</exception-type>
<location>/common/error.jsp</location> <location>/common/error.jsp</location>
</error-page> </error-page>
<error-page> <error-page>
<error-code>404</error-code> <error-code>404</error-code>
<location>/common/error.jsp</location> <location>/common/error.jsp</location>
</error-page> </error-page>
<error-page> <error-page>
<error-code>500</error-code> <error-code>500</error-code>
<location>/common/error.jsp</location> <location>/common/error.jsp</location>
</error-page> </error-page>
</web-app> </web-app>

View File

@ -1,159 +1,159 @@
/********************************************************************************/ /********************************************************************************/
/* */ /* */
/* Design RIAN */ /* Design RIAN */
/* Date : 2007-03-21 */ /* Date : 2007-03-21 */
/* */ /* */
/* */ /* */
/********************************************************************************/ /********************************************************************************/
* {margin:0;padding:0;} * {margin:0;padding:0;}
h1 { h1 {
padding-bottom:20px; padding-bottom:20px;
} }
html { html {
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
*, *,
*:before, *:before,
*:after { *:after {
box-sizing: inherit; box-sizing: inherit;
} }
body { body {
position: relative; position: relative;
margin: 0; margin: 0;
padding-bottom: 6rem; padding-bottom: 6rem;
width: 100%; width: 100%;
} }
html, body { height: 100%; } html, body { height: 100%; }
#page-container { #page-container {
padding-op: 150px; padding-op: 150px;
} }
#content-wrap { #content-wrap {
position: relative; position: relative;
display: block; display: block;
padding: 20px; padding: 20px;
top:120px; top:120px;
padding-bottom: 100px; padding-bottom: 100px;
} }
.gnb li { .gnb li {
float: left; float: left;
padding: 0px; padding: 0px;
padding-right: 20px; padding-right: 20px;
} }
.gnb li a { .gnb li a {
color: #fff; color: #fff;
font-weight: 600; font-weight: 600;
font-size: 16px; font-size: 16px;
} }
.gnb-right { .gnb-right {
padding-right: 40px; padding-right: 40px;
position:relative; position:relative;
top:-20px; top:-20px;
} }
.gnb-right li { .gnb-right li {
float: right; float: right;
padding: 0px; padding: 0px;
padding-right: 20px; padding-right: 20px;
color: orange; color: orange;
} }
.gnb-right li a { .gnb-right li a {
color: #333; color: #333;
font-weight: bolder; font-weight: bolder;
font-size: 14px; font-size: 14px;
} }
#header { #header {
width: 100%; width: 100%;
height: 60px; height: 60px;
font-weight:bolder; font-weight:bolder;
position: fixed; position: fixed;
background: #fff; background: #fff;
padding: 20px; padding: 20px;
color: #000; color: #000;
font-weight: 900; font-weight: 900;
font: 16px "Noto Sans KR", sans-serif; font: 16px "Noto Sans KR", sans-serif;
z-index: 10000; z-index: 10000;
} }
#menu { #menu {
width: 100%; width: 100%;
height: 60px; /* Footer height */ height: 60px; /* Footer height */
position: fixed; position: fixed;
top:60px; top:60px;
font-weight:bold; font-weight:bold;
background: #2781C1; background: #2781C1;
padding: 20px; padding: 20px;
z-index: 10000; z-index: 10000;
font: 16px "Noto Sans KR", sans-serif; font: 16px "Noto Sans KR", sans-serif;
} }
#footer { #footer {
margin: 0; margin: 0;
padding: 1rem; padding: 1rem;
color: #AAAAAA; color: #AAAAAA;
background-color: #333333; background-color: #333333;
position: fixed; position: fixed;
width: 100%; width: 100%;
display: block; display: block;
text-align: center; text-align: center;
right: 0; right: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
} }
#jsGrid { #jsGrid {
margin-top: 20px; margin-top: 20px;
margin-bottom: 10px; margin-bottom: 10px;
} }
ul, ol, li { ul, ol, li {
list-style: none; list-style: none;
} }
a { a {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
background-color: transparent; background-color: transparent;
font: 16px "Noto Sans KR", sans-serif; font: 16px "Noto Sans KR", sans-serif;
color: blue; color: blue;
} }
button { button {
floating: right; floating: right;
cursor: pointer; cursor: pointer;
} }
.float{ .float{
height:40px; height:40px;
float: right; float: right;
background-color:#ddd; background-color:#ddd;
color:#000; color:#000;
text-align:center; text-align:center;
box-shadow: 2px 2px 3px #999; box-shadow: 2px 2px 3px #999;
padding: 10px; padding: 10px;
margin-right: 10px; margin-right: 10px;
margin-top: 10px; margin-top: 10px;
} }
.table_content table { .table_content table {
width: 100% !important; width: 100% !important;
margin-top: 10px; margin-top: 10px;
} }
.table_content table, th, td { .table_content table, th, td {
border: 1px solid #444444; border: 1px solid #444444;
} }

View File

@ -1,394 +1,394 @@
@-webkit-keyframes passing-through { @-webkit-keyframes passing-through {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30%, 70% { 30%, 70% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } transform: translateY(0px); }
100% { 100% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(-40px); -webkit-transform: translateY(-40px);
-moz-transform: translateY(-40px); -moz-transform: translateY(-40px);
-ms-transform: translateY(-40px); -ms-transform: translateY(-40px);
-o-transform: translateY(-40px); -o-transform: translateY(-40px);
transform: translateY(-40px); } } transform: translateY(-40px); } }
@-moz-keyframes passing-through { @-moz-keyframes passing-through {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30%, 70% { 30%, 70% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } transform: translateY(0px); }
100% { 100% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(-40px); -webkit-transform: translateY(-40px);
-moz-transform: translateY(-40px); -moz-transform: translateY(-40px);
-ms-transform: translateY(-40px); -ms-transform: translateY(-40px);
-o-transform: translateY(-40px); -o-transform: translateY(-40px);
transform: translateY(-40px); } } transform: translateY(-40px); } }
@keyframes passing-through { @keyframes passing-through {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30%, 70% { 30%, 70% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } transform: translateY(0px); }
100% { 100% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(-40px); -webkit-transform: translateY(-40px);
-moz-transform: translateY(-40px); -moz-transform: translateY(-40px);
-ms-transform: translateY(-40px); -ms-transform: translateY(-40px);
-o-transform: translateY(-40px); -o-transform: translateY(-40px);
transform: translateY(-40px); } } transform: translateY(-40px); } }
@-webkit-keyframes slide-in { @-webkit-keyframes slide-in {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30% { 30% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } } transform: translateY(0px); } }
@-moz-keyframes slide-in { @-moz-keyframes slide-in {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30% { 30% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } } transform: translateY(0px); } }
@keyframes slide-in { @keyframes slide-in {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30% { 30% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } } transform: translateY(0px); } }
@-webkit-keyframes pulse { @-webkit-keyframes pulse {
0% { 0% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } transform: scale(1); }
10% { 10% {
-webkit-transform: scale(1.1); -webkit-transform: scale(1.1);
-moz-transform: scale(1.1); -moz-transform: scale(1.1);
-ms-transform: scale(1.1); -ms-transform: scale(1.1);
-o-transform: scale(1.1); -o-transform: scale(1.1);
transform: scale(1.1); } transform: scale(1.1); }
20% { 20% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } } transform: scale(1); } }
@-moz-keyframes pulse { @-moz-keyframes pulse {
0% { 0% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } transform: scale(1); }
10% { 10% {
-webkit-transform: scale(1.1); -webkit-transform: scale(1.1);
-moz-transform: scale(1.1); -moz-transform: scale(1.1);
-ms-transform: scale(1.1); -ms-transform: scale(1.1);
-o-transform: scale(1.1); -o-transform: scale(1.1);
transform: scale(1.1); } transform: scale(1.1); }
20% { 20% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } } transform: scale(1); } }
@keyframes pulse { @keyframes pulse {
0% { 0% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } transform: scale(1); }
10% { 10% {
-webkit-transform: scale(1.1); -webkit-transform: scale(1.1);
-moz-transform: scale(1.1); -moz-transform: scale(1.1);
-ms-transform: scale(1.1); -ms-transform: scale(1.1);
-o-transform: scale(1.1); -o-transform: scale(1.1);
transform: scale(1.1); } transform: scale(1.1); }
20% { 20% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } } transform: scale(1); } }
.dropzone, .dropzone * { .dropzone, .dropzone * {
box-sizing: border-box; } box-sizing: border-box; }
.dropzone { .dropzone {
min-height: 80px; /* NLIB */ min-height: 80px; /* NLIB */
border: 2px solid rgba(0, 0, 0, 0.3); border: 2px solid rgba(0, 0, 0, 0.3);
background: white; background: white;
padding: 0px 10px; /* NLIB */ padding: 0px 10px; /* NLIB */
} }
.dropzone.dz-clickable { .dropzone.dz-clickable {
cursor: pointer; } cursor: pointer; }
.dropzone.dz-clickable * { .dropzone.dz-clickable * {
cursor: default; } cursor: default; }
.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * { .dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
cursor: pointer; } cursor: pointer; }
.dropzone.dz-started .dz-message { .dropzone.dz-started .dz-message {
display: none; } display: none; }
.dropzone.dz-drag-hover { .dropzone.dz-drag-hover {
border-style: solid; } border-style: solid; }
.dropzone.dz-drag-hover .dz-message { .dropzone.dz-drag-hover .dz-message {
opacity: 0.5; } opacity: 0.5; }
.dropzone .dz-message { .dropzone .dz-message {
text-align: center; text-align: center;
margin: 1em 0; } margin: 1em 0; }
.dropzone .dz-message .dz-button { .dropzone .dz-message .dz-button {
background: none; background: none;
color: inherit; color: inherit;
border: none; border: none;
padding: 0; padding: 0;
font: inherit; font: inherit;
cursor: pointer; cursor: pointer;
outline: inherit; } outline: inherit; }
.dropzone .dz-preview { .dropzone .dz-preview {
position: relative; position: relative;
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
margin: 16px; margin: 16px;
min-height: 60px; /* NLIB */ min-height: 60px; /* NLIB */
} }
.dropzone .dz-preview:hover { .dropzone .dz-preview:hover {
z-index: 1000; } z-index: 1000; }
.dropzone .dz-preview:hover .dz-details { .dropzone .dz-preview:hover .dz-details {
opacity: 1; } opacity: 1; }
.dropzone .dz-preview.dz-file-preview .dz-image { .dropzone .dz-preview.dz-file-preview .dz-image {
border-radius: 20px; border-radius: 20px;
background: #999; background: #999;
background: linear-gradient(to bottom, #eee, #ddd); } background: linear-gradient(to bottom, #eee, #ddd); }
.dropzone .dz-preview.dz-file-preview .dz-details { .dropzone .dz-preview.dz-file-preview .dz-details {
opacity: 1; } opacity: 1; }
.dropzone .dz-preview.dz-image-preview { .dropzone .dz-preview.dz-image-preview {
background: white; } background: white; }
.dropzone .dz-preview.dz-image-preview .dz-details { .dropzone .dz-preview.dz-image-preview .dz-details {
-webkit-transition: opacity 0.2s linear; -webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear; -moz-transition: opacity 0.2s linear;
-ms-transition: opacity 0.2s linear; -ms-transition: opacity 0.2s linear;
-o-transition: opacity 0.2s linear; -o-transition: opacity 0.2s linear;
transition: opacity 0.2s linear; } transition: opacity 0.2s linear; }
.dropzone .dz-preview .dz-remove { .dropzone .dz-preview .dz-remove {
font-size: 14px; font-size: 14px;
text-align: center; text-align: center;
display: block; display: block;
cursor: pointer; cursor: pointer;
border: none; } border: none; }
.dropzone .dz-preview .dz-remove:hover { .dropzone .dz-preview .dz-remove:hover {
text-decoration: underline; } text-decoration: underline; }
.dropzone .dz-preview:hover .dz-details { .dropzone .dz-preview:hover .dz-details {
opacity: 1; } opacity: 1; }
.dropzone .dz-preview .dz-details { .dropzone .dz-preview .dz-details {
z-index: 20; z-index: 20;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
opacity: 0; opacity: 0;
font-size: 13px; font-size: 13px;
min-width: 100%; min-width: 100%;
max-width: 100%; max-width: 100%;
padding: 0em 1em; /* NLIB */ padding: 0em 1em; /* NLIB */
text-align: center; text-align: center;
color: rgba(0, 0, 0, 0.9); color: rgba(0, 0, 0, 0.9);
line-height: 150%; } line-height: 150%; }
.dropzone .dz-preview .dz-details .dz-size { .dropzone .dz-preview .dz-details .dz-size {
margin-bottom: 1em; margin-bottom: 1em;
font-size: 16px; } font-size: 16px; }
.dropzone .dz-preview .dz-details .dz-filename { .dropzone .dz-preview .dz-details .dz-filename {
white-space: nowrap; } white-space: nowrap; }
.dropzone .dz-preview .dz-details .dz-filename:hover span { .dropzone .dz-preview .dz-details .dz-filename:hover span {
border: 1px solid rgba(200, 200, 200, 0.8); border: 1px solid rgba(200, 200, 200, 0.8);
background-color: rgba(255, 255, 255, 0.8); } background-color: rgba(255, 255, 255, 0.8); }
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) { .dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; } text-overflow: ellipsis; }
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span { .dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
border: 1px solid transparent; } border: 1px solid transparent; }
.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span { .dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
background-color: rgba(255, 255, 255, 0.4); background-color: rgba(255, 255, 255, 0.4);
padding: 0 0.4em; padding: 0 0.4em;
border-radius: 3px; } border-radius: 3px; }
.dropzone .dz-preview:hover .dz-image img { .dropzone .dz-preview:hover .dz-image img {
-webkit-transform: scale(1.05, 1.05); -webkit-transform: scale(1.05, 1.05);
-moz-transform: scale(1.05, 1.05); -moz-transform: scale(1.05, 1.05);
-ms-transform: scale(1.05, 1.05); -ms-transform: scale(1.05, 1.05);
-o-transform: scale(1.05, 1.05); -o-transform: scale(1.05, 1.05);
transform: scale(1.05, 1.05); transform: scale(1.05, 1.05);
-webkit-filter: blur(8px); -webkit-filter: blur(8px);
filter: blur(8px); } filter: blur(8px); }
.dropzone .dz-preview .dz-image { .dropzone .dz-preview .dz-image {
border-radius: 20px; border-radius: 20px;
overflow: hidden; overflow: hidden;
width: 120px; width: 120px;
height: 60px; /* NLIB */ height: 60px; /* NLIB */
position: relative; position: relative;
display: block; display: block;
z-index: 10; } z-index: 10; }
.dropzone .dz-preview .dz-image img { .dropzone .dz-preview .dz-image img {
display: block; } display: block; }
.dropzone .dz-preview.dz-success .dz-success-mark { .dropzone .dz-preview.dz-success .dz-success-mark {
-webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
-moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
-ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
-o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); } animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }
.dropzone .dz-preview.dz-error .dz-error-mark { .dropzone .dz-preview.dz-error .dz-error-mark {
opacity: 1; opacity: 1;
-webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
-moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
-ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
-o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); } animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }
.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark { .dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
pointer-events: none; pointer-events: none;
opacity: 0; opacity: 0;
z-index: 500; z-index: 500;
position: absolute; position: absolute;
display: block; display: block;
top: 50%; top: 50%;
left: 50%; left: 50%;
margin-left: -27px; margin-left: -27px;
margin-top: -27px; } margin-top: -27px; }
.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg { .dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
display: block; display: block;
width: 54px; width: 54px;
height: 54px; } height: 54px; }
.dropzone .dz-preview.dz-processing .dz-progress { .dropzone .dz-preview.dz-processing .dz-progress {
opacity: 1; opacity: 1;
-webkit-transition: all 0.2s linear; -webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear; -moz-transition: all 0.2s linear;
-ms-transition: all 0.2s linear; -ms-transition: all 0.2s linear;
-o-transition: all 0.2s linear; -o-transition: all 0.2s linear;
transition: all 0.2s linear; } transition: all 0.2s linear; }
.dropzone .dz-preview.dz-complete .dz-progress { .dropzone .dz-preview.dz-complete .dz-progress {
opacity: 0; opacity: 0;
-webkit-transition: opacity 0.4s ease-in; -webkit-transition: opacity 0.4s ease-in;
-moz-transition: opacity 0.4s ease-in; -moz-transition: opacity 0.4s ease-in;
-ms-transition: opacity 0.4s ease-in; -ms-transition: opacity 0.4s ease-in;
-o-transition: opacity 0.4s ease-in; -o-transition: opacity 0.4s ease-in;
transition: opacity 0.4s ease-in; } transition: opacity 0.4s ease-in; }
.dropzone .dz-preview:not(.dz-processing) .dz-progress { .dropzone .dz-preview:not(.dz-processing) .dz-progress {
-webkit-animation: pulse 6s ease infinite; -webkit-animation: pulse 6s ease infinite;
-moz-animation: pulse 6s ease infinite; -moz-animation: pulse 6s ease infinite;
-ms-animation: pulse 6s ease infinite; -ms-animation: pulse 6s ease infinite;
-o-animation: pulse 6s ease infinite; -o-animation: pulse 6s ease infinite;
animation: pulse 6s ease infinite; } animation: pulse 6s ease infinite; }
.dropzone .dz-preview .dz-progress { .dropzone .dz-preview .dz-progress {
opacity: 1; opacity: 1;
z-index: 1000; z-index: 1000;
pointer-events: none; pointer-events: none;
position: absolute; position: absolute;
height: 16px; height: 16px;
left: 50%; left: 50%;
top: 50%; top: 50%;
margin-top: -8px; margin-top: -8px;
width: 80px; width: 80px;
margin-left: -40px; margin-left: -40px;
background: rgba(255, 255, 255, 0.9); background: rgba(255, 255, 255, 0.9);
-webkit-transform: scale(1); -webkit-transform: scale(1);
border-radius: 8px; border-radius: 8px;
overflow: hidden; } overflow: hidden; }
.dropzone .dz-preview .dz-progress .dz-upload { .dropzone .dz-preview .dz-progress .dz-upload {
background: #333; background: #333;
background: linear-gradient(to bottom, #666, #444); background: linear-gradient(to bottom, #666, #444);
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
width: 0; width: 0;
-webkit-transition: width 300ms ease-in-out; -webkit-transition: width 300ms ease-in-out;
-moz-transition: width 300ms ease-in-out; -moz-transition: width 300ms ease-in-out;
-ms-transition: width 300ms ease-in-out; -ms-transition: width 300ms ease-in-out;
-o-transition: width 300ms ease-in-out; -o-transition: width 300ms ease-in-out;
transition: width 300ms ease-in-out; } transition: width 300ms ease-in-out; }
.dropzone .dz-preview.dz-error .dz-error-message { .dropzone .dz-preview.dz-error .dz-error-message {
display: block; } display: block; }
.dropzone .dz-preview.dz-error:hover .dz-error-message { .dropzone .dz-preview.dz-error:hover .dz-error-message {
opacity: 1; opacity: 1;
pointer-events: auto; } pointer-events: auto; }
.dropzone .dz-preview .dz-error-message { .dropzone .dz-preview .dz-error-message {
pointer-events: none; pointer-events: none;
z-index: 1000; z-index: 1000;
position: absolute; position: absolute;
display: block; display: block;
display: none; display: none;
opacity: 0; opacity: 0;
-webkit-transition: opacity 0.3s ease; -webkit-transition: opacity 0.3s ease;
-moz-transition: opacity 0.3s ease; -moz-transition: opacity 0.3s ease;
-ms-transition: opacity 0.3s ease; -ms-transition: opacity 0.3s ease;
-o-transition: opacity 0.3s ease; -o-transition: opacity 0.3s ease;
transition: opacity 0.3s ease; transition: opacity 0.3s ease;
border-radius: 8px; border-radius: 8px;
font-size: 13px; font-size: 13px;
top: 130px; top: 130px;
left: -10px; left: -10px;
width: 140px; width: 140px;
background: #be2626; background: #be2626;
background: linear-gradient(to bottom, #be2626, #a92222); background: linear-gradient(to bottom, #be2626, #a92222);
padding: 0.5em 1.2em; padding: 0.5em 1.2em;
color: white; } color: white; }
.dropzone .dz-preview .dz-error-message:after { .dropzone .dz-preview .dz-error-message:after {
content: ''; content: '';
position: absolute; position: absolute;
top: -6px; top: -6px;
left: 64px; left: 64px;
width: 0; width: 0;
height: 0; height: 0;
border-left: 6px solid transparent; border-left: 6px solid transparent;
border-right: 6px solid transparent; border-right: 6px solid transparent;
border-bottom: 6px solid #be2626; } border-bottom: 6px solid #be2626; }

File diff suppressed because it is too large Load Diff

View File

@ -1,392 +1,392 @@
@-webkit-keyframes passing-through { @-webkit-keyframes passing-through {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30%, 70% { 30%, 70% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } transform: translateY(0px); }
100% { 100% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(-40px); -webkit-transform: translateY(-40px);
-moz-transform: translateY(-40px); -moz-transform: translateY(-40px);
-ms-transform: translateY(-40px); -ms-transform: translateY(-40px);
-o-transform: translateY(-40px); -o-transform: translateY(-40px);
transform: translateY(-40px); } } transform: translateY(-40px); } }
@-moz-keyframes passing-through { @-moz-keyframes passing-through {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30%, 70% { 30%, 70% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } transform: translateY(0px); }
100% { 100% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(-40px); -webkit-transform: translateY(-40px);
-moz-transform: translateY(-40px); -moz-transform: translateY(-40px);
-ms-transform: translateY(-40px); -ms-transform: translateY(-40px);
-o-transform: translateY(-40px); -o-transform: translateY(-40px);
transform: translateY(-40px); } } transform: translateY(-40px); } }
@keyframes passing-through { @keyframes passing-through {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30%, 70% { 30%, 70% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } transform: translateY(0px); }
100% { 100% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(-40px); -webkit-transform: translateY(-40px);
-moz-transform: translateY(-40px); -moz-transform: translateY(-40px);
-ms-transform: translateY(-40px); -ms-transform: translateY(-40px);
-o-transform: translateY(-40px); -o-transform: translateY(-40px);
transform: translateY(-40px); } } transform: translateY(-40px); } }
@-webkit-keyframes slide-in { @-webkit-keyframes slide-in {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30% { 30% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } } transform: translateY(0px); } }
@-moz-keyframes slide-in { @-moz-keyframes slide-in {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30% { 30% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } } transform: translateY(0px); } }
@keyframes slide-in { @keyframes slide-in {
0% { 0% {
opacity: 0; opacity: 0;
-webkit-transform: translateY(40px); -webkit-transform: translateY(40px);
-moz-transform: translateY(40px); -moz-transform: translateY(40px);
-ms-transform: translateY(40px); -ms-transform: translateY(40px);
-o-transform: translateY(40px); -o-transform: translateY(40px);
transform: translateY(40px); } transform: translateY(40px); }
30% { 30% {
opacity: 1; opacity: 1;
-webkit-transform: translateY(0px); -webkit-transform: translateY(0px);
-moz-transform: translateY(0px); -moz-transform: translateY(0px);
-ms-transform: translateY(0px); -ms-transform: translateY(0px);
-o-transform: translateY(0px); -o-transform: translateY(0px);
transform: translateY(0px); } } transform: translateY(0px); } }
@-webkit-keyframes pulse { @-webkit-keyframes pulse {
0% { 0% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } transform: scale(1); }
10% { 10% {
-webkit-transform: scale(1.1); -webkit-transform: scale(1.1);
-moz-transform: scale(1.1); -moz-transform: scale(1.1);
-ms-transform: scale(1.1); -ms-transform: scale(1.1);
-o-transform: scale(1.1); -o-transform: scale(1.1);
transform: scale(1.1); } transform: scale(1.1); }
20% { 20% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } } transform: scale(1); } }
@-moz-keyframes pulse { @-moz-keyframes pulse {
0% { 0% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } transform: scale(1); }
10% { 10% {
-webkit-transform: scale(1.1); -webkit-transform: scale(1.1);
-moz-transform: scale(1.1); -moz-transform: scale(1.1);
-ms-transform: scale(1.1); -ms-transform: scale(1.1);
-o-transform: scale(1.1); -o-transform: scale(1.1);
transform: scale(1.1); } transform: scale(1.1); }
20% { 20% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } } transform: scale(1); } }
@keyframes pulse { @keyframes pulse {
0% { 0% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } transform: scale(1); }
10% { 10% {
-webkit-transform: scale(1.1); -webkit-transform: scale(1.1);
-moz-transform: scale(1.1); -moz-transform: scale(1.1);
-ms-transform: scale(1.1); -ms-transform: scale(1.1);
-o-transform: scale(1.1); -o-transform: scale(1.1);
transform: scale(1.1); } transform: scale(1.1); }
20% { 20% {
-webkit-transform: scale(1); -webkit-transform: scale(1);
-moz-transform: scale(1); -moz-transform: scale(1);
-ms-transform: scale(1); -ms-transform: scale(1);
-o-transform: scale(1); -o-transform: scale(1);
transform: scale(1); } } transform: scale(1); } }
.dropzone, .dropzone * { .dropzone, .dropzone * {
box-sizing: border-box; } box-sizing: border-box; }
.dropzone { .dropzone {
min-height: 150px; min-height: 150px;
border: 2px solid rgba(0, 0, 0, 0.3); border: 2px solid rgba(0, 0, 0, 0.3);
background: white; background: white;
padding: 54px 54px; } padding: 54px 54px; }
.dropzone.dz-clickable { .dropzone.dz-clickable {
cursor: pointer; } cursor: pointer; }
.dropzone.dz-clickable * { .dropzone.dz-clickable * {
cursor: default; } cursor: default; }
.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * { .dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
cursor: pointer; } cursor: pointer; }
.dropzone.dz-started .dz-message { .dropzone.dz-started .dz-message {
display: none; } display: none; }
.dropzone.dz-drag-hover { .dropzone.dz-drag-hover {
border-style: solid; } border-style: solid; }
.dropzone.dz-drag-hover .dz-message { .dropzone.dz-drag-hover .dz-message {
opacity: 0.5; } opacity: 0.5; }
.dropzone .dz-message { .dropzone .dz-message {
text-align: center; text-align: center;
margin: 2em 0; } margin: 2em 0; }
.dropzone .dz-message .dz-button { .dropzone .dz-message .dz-button {
background: none; background: none;
color: inherit; color: inherit;
border: none; border: none;
padding: 0; padding: 0;
font: inherit; font: inherit;
cursor: pointer; cursor: pointer;
outline: inherit; } outline: inherit; }
.dropzone .dz-preview { .dropzone .dz-preview {
position: relative; position: relative;
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
margin: 16px; margin: 16px;
min-height: 100px; } min-height: 100px; }
.dropzone .dz-preview:hover { .dropzone .dz-preview:hover {
z-index: 1000; } z-index: 1000; }
.dropzone .dz-preview:hover .dz-details { .dropzone .dz-preview:hover .dz-details {
opacity: 1; } opacity: 1; }
.dropzone .dz-preview.dz-file-preview .dz-image { .dropzone .dz-preview.dz-file-preview .dz-image {
border-radius: 20px; border-radius: 20px;
background: #999; background: #999;
background: linear-gradient(to bottom, #eee, #ddd); } background: linear-gradient(to bottom, #eee, #ddd); }
.dropzone .dz-preview.dz-file-preview .dz-details { .dropzone .dz-preview.dz-file-preview .dz-details {
opacity: 1; } opacity: 1; }
.dropzone .dz-preview.dz-image-preview { .dropzone .dz-preview.dz-image-preview {
background: white; } background: white; }
.dropzone .dz-preview.dz-image-preview .dz-details { .dropzone .dz-preview.dz-image-preview .dz-details {
-webkit-transition: opacity 0.2s linear; -webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear; -moz-transition: opacity 0.2s linear;
-ms-transition: opacity 0.2s linear; -ms-transition: opacity 0.2s linear;
-o-transition: opacity 0.2s linear; -o-transition: opacity 0.2s linear;
transition: opacity 0.2s linear; } transition: opacity 0.2s linear; }
.dropzone .dz-preview .dz-remove { .dropzone .dz-preview .dz-remove {
font-size: 14px; font-size: 14px;
text-align: center; text-align: center;
display: block; display: block;
cursor: pointer; cursor: pointer;
border: none; } border: none; }
.dropzone .dz-preview .dz-remove:hover { .dropzone .dz-preview .dz-remove:hover {
text-decoration: underline; } text-decoration: underline; }
.dropzone .dz-preview:hover .dz-details { .dropzone .dz-preview:hover .dz-details {
opacity: 1; } opacity: 1; }
.dropzone .dz-preview .dz-details { .dropzone .dz-preview .dz-details {
z-index: 20; z-index: 20;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
opacity: 0; opacity: 0;
font-size: 13px; font-size: 13px;
min-width: 100%; min-width: 100%;
max-width: 100%; max-width: 100%;
padding: 2em 1em; padding: 2em 1em;
text-align: center; text-align: center;
color: rgba(0, 0, 0, 0.9); color: rgba(0, 0, 0, 0.9);
line-height: 150%; } line-height: 150%; }
.dropzone .dz-preview .dz-details .dz-size { .dropzone .dz-preview .dz-details .dz-size {
margin-bottom: 1em; margin-bottom: 1em;
font-size: 16px; } font-size: 16px; }
.dropzone .dz-preview .dz-details .dz-filename { .dropzone .dz-preview .dz-details .dz-filename {
white-space: nowrap; } white-space: nowrap; }
.dropzone .dz-preview .dz-details .dz-filename:hover span { .dropzone .dz-preview .dz-details .dz-filename:hover span {
border: 1px solid rgba(200, 200, 200, 0.8); border: 1px solid rgba(200, 200, 200, 0.8);
background-color: rgba(255, 255, 255, 0.8); } background-color: rgba(255, 255, 255, 0.8); }
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) { .dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; } text-overflow: ellipsis; }
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span { .dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
border: 1px solid transparent; } border: 1px solid transparent; }
.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span { .dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
background-color: rgba(255, 255, 255, 0.4); background-color: rgba(255, 255, 255, 0.4);
padding: 0 0.4em; padding: 0 0.4em;
border-radius: 3px; } border-radius: 3px; }
.dropzone .dz-preview:hover .dz-image img { .dropzone .dz-preview:hover .dz-image img {
-webkit-transform: scale(1.05, 1.05); -webkit-transform: scale(1.05, 1.05);
-moz-transform: scale(1.05, 1.05); -moz-transform: scale(1.05, 1.05);
-ms-transform: scale(1.05, 1.05); -ms-transform: scale(1.05, 1.05);
-o-transform: scale(1.05, 1.05); -o-transform: scale(1.05, 1.05);
transform: scale(1.05, 1.05); transform: scale(1.05, 1.05);
-webkit-filter: blur(8px); -webkit-filter: blur(8px);
filter: blur(8px); } filter: blur(8px); }
.dropzone .dz-preview .dz-image { .dropzone .dz-preview .dz-image {
border-radius: 20px; border-radius: 20px;
overflow: hidden; overflow: hidden;
width: 120px; width: 120px;
height: 120px; height: 120px;
position: relative; position: relative;
display: block; display: block;
z-index: 10; } z-index: 10; }
.dropzone .dz-preview .dz-image img { .dropzone .dz-preview .dz-image img {
display: block; } display: block; }
.dropzone .dz-preview.dz-success .dz-success-mark { .dropzone .dz-preview.dz-success .dz-success-mark {
-webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
-moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
-ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
-o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); -o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); } animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }
.dropzone .dz-preview.dz-error .dz-error-mark { .dropzone .dz-preview.dz-error .dz-error-mark {
opacity: 1; opacity: 1;
-webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
-moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
-ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
-o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); -o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); } animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }
.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark { .dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
pointer-events: none; pointer-events: none;
opacity: 0; opacity: 0;
z-index: 500; z-index: 500;
position: absolute; position: absolute;
display: block; display: block;
top: 50%; top: 50%;
left: 50%; left: 50%;
margin-left: -27px; margin-left: -27px;
margin-top: -27px; } margin-top: -27px; }
.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg { .dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
display: block; display: block;
width: 54px; width: 54px;
height: 54px; } height: 54px; }
.dropzone .dz-preview.dz-processing .dz-progress { .dropzone .dz-preview.dz-processing .dz-progress {
opacity: 1; opacity: 1;
-webkit-transition: all 0.2s linear; -webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear; -moz-transition: all 0.2s linear;
-ms-transition: all 0.2s linear; -ms-transition: all 0.2s linear;
-o-transition: all 0.2s linear; -o-transition: all 0.2s linear;
transition: all 0.2s linear; } transition: all 0.2s linear; }
.dropzone .dz-preview.dz-complete .dz-progress { .dropzone .dz-preview.dz-complete .dz-progress {
opacity: 0; opacity: 0;
-webkit-transition: opacity 0.4s ease-in; -webkit-transition: opacity 0.4s ease-in;
-moz-transition: opacity 0.4s ease-in; -moz-transition: opacity 0.4s ease-in;
-ms-transition: opacity 0.4s ease-in; -ms-transition: opacity 0.4s ease-in;
-o-transition: opacity 0.4s ease-in; -o-transition: opacity 0.4s ease-in;
transition: opacity 0.4s ease-in; } transition: opacity 0.4s ease-in; }
.dropzone .dz-preview:not(.dz-processing) .dz-progress { .dropzone .dz-preview:not(.dz-processing) .dz-progress {
-webkit-animation: pulse 6s ease infinite; -webkit-animation: pulse 6s ease infinite;
-moz-animation: pulse 6s ease infinite; -moz-animation: pulse 6s ease infinite;
-ms-animation: pulse 6s ease infinite; -ms-animation: pulse 6s ease infinite;
-o-animation: pulse 6s ease infinite; -o-animation: pulse 6s ease infinite;
animation: pulse 6s ease infinite; } animation: pulse 6s ease infinite; }
.dropzone .dz-preview .dz-progress { .dropzone .dz-preview .dz-progress {
opacity: 1; opacity: 1;
z-index: 1000; z-index: 1000;
pointer-events: none; pointer-events: none;
position: absolute; position: absolute;
height: 16px; height: 16px;
left: 50%; left: 50%;
top: 50%; top: 50%;
margin-top: -8px; margin-top: -8px;
width: 80px; width: 80px;
margin-left: -40px; margin-left: -40px;
background: rgba(255, 255, 255, 0.9); background: rgba(255, 255, 255, 0.9);
-webkit-transform: scale(1); -webkit-transform: scale(1);
border-radius: 8px; border-radius: 8px;
overflow: hidden; } overflow: hidden; }
.dropzone .dz-preview .dz-progress .dz-upload { .dropzone .dz-preview .dz-progress .dz-upload {
background: #333; background: #333;
background: linear-gradient(to bottom, #666, #444); background: linear-gradient(to bottom, #666, #444);
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
width: 0; width: 0;
-webkit-transition: width 300ms ease-in-out; -webkit-transition: width 300ms ease-in-out;
-moz-transition: width 300ms ease-in-out; -moz-transition: width 300ms ease-in-out;
-ms-transition: width 300ms ease-in-out; -ms-transition: width 300ms ease-in-out;
-o-transition: width 300ms ease-in-out; -o-transition: width 300ms ease-in-out;
transition: width 300ms ease-in-out; } transition: width 300ms ease-in-out; }
.dropzone .dz-preview.dz-error .dz-error-message { .dropzone .dz-preview.dz-error .dz-error-message {
display: block; } display: block; }
.dropzone .dz-preview.dz-error:hover .dz-error-message { .dropzone .dz-preview.dz-error:hover .dz-error-message {
opacity: 1; opacity: 1;
pointer-events: auto; } pointer-events: auto; }
.dropzone .dz-preview .dz-error-message { .dropzone .dz-preview .dz-error-message {
pointer-events: none; pointer-events: none;
z-index: 1000; z-index: 1000;
position: absolute; position: absolute;
display: block; display: block;
display: none; display: none;
opacity: 0; opacity: 0;
-webkit-transition: opacity 0.3s ease; -webkit-transition: opacity 0.3s ease;
-moz-transition: opacity 0.3s ease; -moz-transition: opacity 0.3s ease;
-ms-transition: opacity 0.3s ease; -ms-transition: opacity 0.3s ease;
-o-transition: opacity 0.3s ease; -o-transition: opacity 0.3s ease;
transition: opacity 0.3s ease; transition: opacity 0.3s ease;
border-radius: 8px; border-radius: 8px;
font-size: 13px; font-size: 13px;
top: 130px; top: 130px;
left: -10px; left: -10px;
width: 140px; width: 140px;
background: #be2626; background: #be2626;
background: linear-gradient(to bottom, #be2626, #a92222); background: linear-gradient(to bottom, #be2626, #a92222);
padding: 0.5em 1.2em; padding: 0.5em 1.2em;
color: white; } color: white; }
.dropzone .dz-preview .dz-error-message:after { .dropzone .dz-preview .dz-error-message:after {
content: ''; content: '';
position: absolute; position: absolute;
top: -6px; top: -6px;
left: 64px; left: 64px;
width: 0; width: 0;
height: 0; height: 0;
border-left: 6px solid transparent; border-left: 6px solid transparent;
border-right: 6px solid transparent; border-right: 6px solid transparent;
border-bottom: 6px solid #be2626; } border-bottom: 6px solid #be2626; }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More