소스 동기화
This commit is contained in:
commit
5c1609ea87
94
data/dataxml/uac.service.board.qna.list_GET.xml
Normal file
94
data/dataxml/uac.service.board.qna.list_GET.xml
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<!-- uac.service.board.qna_GET.xml -->
|
||||||
|
<result>
|
||||||
|
<code>S</code>
|
||||||
|
<message>성공적으로 조회되었습니다.</message>
|
||||||
|
<records>10</records>
|
||||||
|
<page>1</page>
|
||||||
|
<totPages>15</totPages>
|
||||||
|
<record>
|
||||||
|
<noticeNo>1</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>2</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>3</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>4</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>5</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>6</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>7</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>8</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>9</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>10</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>11</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
<record>
|
||||||
|
<noticeNo>12</noticeNo>
|
||||||
|
<noticeType>101</noticeType>
|
||||||
|
<title>공지사항 테스트</title>
|
||||||
|
<readCount>55</readCount>
|
||||||
|
<regDate>2021-07-19</regDate>
|
||||||
|
</record>
|
||||||
|
</result>
|
||||||
|
|
||||||
222
src/main/java/egovframework/com/cmm/service/EgovProperties.java
Normal file
222
src/main/java/egovframework/com/cmm/service/EgovProperties.java
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
package egovframework.com.cmm.service;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import egovframework.com.cmm.EgovWebUtil;
|
||||||
|
import egovframework.com.cmm.util.EgovResourceCloseHelper;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Name : EgovProperties.java
|
||||||
|
* Description : properties값들을 파일로부터 읽어와 Globals클래스의 정적변수로 로드시켜주는 클래스로
|
||||||
|
* 문자열 정보 기준으로 사용할 전역변수를 시스템 재시작으로 반영할 수 있도록 한다.
|
||||||
|
* Modification Information
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2009.01.19 박지욱 최초 생성
|
||||||
|
* 2011.07.20 서준식 Globals파일의 상대경로를 읽은 메서드 추가
|
||||||
|
* 2014.10.13 이기하 Globals.properties 값이 null일 경우 오류처리
|
||||||
|
* 2019.04.26 신용호 RELATIVE_PATH_PREFIX Path 적용 방식 개선
|
||||||
|
* @author 공통 서비스 개발팀 박지욱
|
||||||
|
* @since 2009. 01. 19
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class EgovProperties {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(EgovProperties.class);
|
||||||
|
|
||||||
|
//파일구분자
|
||||||
|
final static String FILE_SEPARATOR = System.getProperty("file.separator");
|
||||||
|
|
||||||
|
//프로퍼티 파일의 물리적 위치
|
||||||
|
//public static final String GLOBALS_PROPERTIES_FILE = System.getProperty("user.home") + FILE_SEPARATOR + "egovProps" +FILE_SEPARATOR + "globals.properties";
|
||||||
|
|
||||||
|
public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("com"));
|
||||||
|
//public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getProtectionDomain().getCodeSource().getLocation().getPath().substring(0,EgovProperties.class.getProtectionDomain().getCodeSource().getLocation().getPath().indexOf("WEB-INF/classes/")+"WEB-INF/classes/".length())+"egovframework/";
|
||||||
|
|
||||||
|
public static final String GLOBALS_PROPERTIES_FILE = RELATIVE_PATH_PREFIX + "egovProps" + FILE_SEPARATOR + "globals.properties";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인자로 주어진 문자열을 Key값으로 하는 상대경로 프로퍼티 값을 절대경로로 반환한다(Globals.java 전용)
|
||||||
|
* @param keyName String
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getPathProperty(String keyName) {
|
||||||
|
String value = "";
|
||||||
|
|
||||||
|
LOGGER.debug("getPathProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName);
|
||||||
|
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE));
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
|
||||||
|
value = props.getProperty(keyName);
|
||||||
|
value = (value == null) ? "" : value.trim();//KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value;
|
||||||
|
} catch (FileNotFoundException fne) {
|
||||||
|
LOGGER.debug("Property file not found.", fne);
|
||||||
|
throw new RuntimeException("Property file not found", fne);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOGGER.debug("Property file IO exception", ioe);
|
||||||
|
throw new RuntimeException("Property file IO exception", ioe);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다(Globals.java 전용)
|
||||||
|
* @param keyName String
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getProperty(String keyName) {
|
||||||
|
String value = "";
|
||||||
|
|
||||||
|
LOGGER.debug("===>>> getProperty"+EgovProperties.class.getProtectionDomain().getCodeSource().getLocation().getPath());
|
||||||
|
LOGGER.debug("getProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName);
|
||||||
|
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE));
|
||||||
|
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
if (props.getProperty(keyName) == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
value = props.getProperty(keyName).trim();
|
||||||
|
} catch (FileNotFoundException fne) {
|
||||||
|
LOGGER.debug("Property file not found.", fne);
|
||||||
|
throw new RuntimeException("Property file not found", fne);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOGGER.debug("Property file IO exception", ioe);
|
||||||
|
throw new RuntimeException("Property file IO exception", ioe);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 상대 경로값을 절대 경로값으로 반환한다
|
||||||
|
* @param fileName String
|
||||||
|
* @param key String
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getPathProperty(String fileName, String key) {
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName));
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
fis.close();
|
||||||
|
|
||||||
|
String value = props.getProperty(key);
|
||||||
|
value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value;
|
||||||
|
|
||||||
|
return value;
|
||||||
|
} catch (FileNotFoundException fne) {
|
||||||
|
LOGGER.debug("Property file not found.", fne);
|
||||||
|
throw new RuntimeException("Property file not found", fne);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOGGER.debug("Property file IO exception", ioe);
|
||||||
|
throw new RuntimeException("Property file IO exception", ioe);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다
|
||||||
|
* @param fileName String
|
||||||
|
* @param key String
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getProperty(String fileName, String key) {
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName));
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
fis.close();
|
||||||
|
|
||||||
|
String value = props.getProperty(key);
|
||||||
|
|
||||||
|
return value;
|
||||||
|
} catch (FileNotFoundException fne) {
|
||||||
|
LOGGER.debug("Property file not found.", fne);
|
||||||
|
throw new RuntimeException("Property file not found", fne);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOGGER.debug("Property file IO exception", ioe);
|
||||||
|
throw new RuntimeException("Property file IO exception", ioe);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 주어진 프로파일의 내용을 파싱하여 (key-value) 형태의 구조체 배열을 반환한다.
|
||||||
|
* @param property String
|
||||||
|
* @return ArrayList
|
||||||
|
*/
|
||||||
|
public static ArrayList<Map<String, String>> loadPropertyFile(String property) {
|
||||||
|
|
||||||
|
// key - value 형태로 된 배열 결과
|
||||||
|
ArrayList<Map<String, String>> keyList = new ArrayList<Map<String, String>>();
|
||||||
|
|
||||||
|
String src = property.replace('\\', File.separatorChar).replace('/', File.separatorChar);
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
|
||||||
|
File srcFile = new File(EgovWebUtil.filePathBlackList(src));
|
||||||
|
if (srcFile.exists()) {
|
||||||
|
|
||||||
|
Properties props = new Properties();
|
||||||
|
fis = new FileInputStream(src);
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
fis.close();
|
||||||
|
|
||||||
|
Enumeration<?> plist = props.propertyNames();
|
||||||
|
if (plist != null) {
|
||||||
|
while (plist.hasMoreElements()) {
|
||||||
|
Map<String, String> map = new HashMap<String, String>();
|
||||||
|
String key = (String) plist.nextElement();
|
||||||
|
map.put(key, props.getProperty(key));
|
||||||
|
keyList.add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException ex) {
|
||||||
|
LOGGER.debug("IO Exception", ex);
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
|
||||||
|
return keyList;
|
||||||
|
}
|
||||||
|
}
|
||||||
240
src/main/java/egovframework/com/cmm/service/FileVO.java
Normal file
240
src/main/java/egovframework/com/cmm/service/FileVO.java
Normal file
@ -0,0 +1,240 @@
|
|||||||
|
package egovframework.com.cmm.service;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Class Name : FileVO.java
|
||||||
|
* @Description : 파일정보 처리를 위한 VO 클래스
|
||||||
|
* @Modification Information
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- ------- -------------------
|
||||||
|
* 2009. 3. 25. 이삼섭
|
||||||
|
*
|
||||||
|
* @author 공통 서비스 개발팀 이삼섭
|
||||||
|
* @since 2009. 3. 25.
|
||||||
|
* @version
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class FileVO implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 첨부파일 아이디
|
||||||
|
*/
|
||||||
|
public String atchFileId = "";
|
||||||
|
/**
|
||||||
|
* 생성일자
|
||||||
|
*/
|
||||||
|
public String creatDt = "";
|
||||||
|
/**
|
||||||
|
* 파일내용
|
||||||
|
*/
|
||||||
|
public String fileCn = "";
|
||||||
|
/**
|
||||||
|
* 파일확장자
|
||||||
|
*/
|
||||||
|
public String fileExtsn = "";
|
||||||
|
/**
|
||||||
|
* 파일크기
|
||||||
|
*/
|
||||||
|
public String fileMg = "";
|
||||||
|
/**
|
||||||
|
* 파일연번
|
||||||
|
*/
|
||||||
|
public String fileSn = "";
|
||||||
|
/**
|
||||||
|
* 파일저장경로
|
||||||
|
*/
|
||||||
|
public String fileStreCours = "";
|
||||||
|
/**
|
||||||
|
* 원파일명
|
||||||
|
*/
|
||||||
|
public String orignlFileNm = "";
|
||||||
|
/**
|
||||||
|
* 저장파일명
|
||||||
|
*/
|
||||||
|
public String streFileNm = "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* atchFileId attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the atchFileId
|
||||||
|
*/
|
||||||
|
public String getAtchFileId() {
|
||||||
|
return atchFileId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* atchFileId attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param atchFileId
|
||||||
|
* the atchFileId to set
|
||||||
|
*/
|
||||||
|
public void setAtchFileId(String atchFileId) {
|
||||||
|
this.atchFileId = atchFileId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* creatDt attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the creatDt
|
||||||
|
*/
|
||||||
|
public String getCreatDt() {
|
||||||
|
return creatDt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* creatDt attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param creatDt
|
||||||
|
* the creatDt to set
|
||||||
|
*/
|
||||||
|
public void setCreatDt(String creatDt) {
|
||||||
|
this.creatDt = creatDt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileCn attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the fileCn
|
||||||
|
*/
|
||||||
|
public String getFileCn() {
|
||||||
|
return fileCn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileCn attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param fileCn
|
||||||
|
* the fileCn to set
|
||||||
|
*/
|
||||||
|
public void setFileCn(String fileCn) {
|
||||||
|
this.fileCn = fileCn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileExtsn attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the fileExtsn
|
||||||
|
*/
|
||||||
|
public String getFileExtsn() {
|
||||||
|
return fileExtsn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileExtsn attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param fileExtsn
|
||||||
|
* the fileExtsn to set
|
||||||
|
*/
|
||||||
|
public void setFileExtsn(String fileExtsn) {
|
||||||
|
this.fileExtsn = fileExtsn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileMg attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the fileMg
|
||||||
|
*/
|
||||||
|
public String getFileMg() {
|
||||||
|
return fileMg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileMg attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param fileMg
|
||||||
|
* the fileMg to set
|
||||||
|
*/
|
||||||
|
public void setFileMg(String fileMg) {
|
||||||
|
this.fileMg = fileMg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileSn attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the fileSn
|
||||||
|
*/
|
||||||
|
public String getFileSn() {
|
||||||
|
return fileSn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileSn attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param fileSn
|
||||||
|
* the fileSn to set
|
||||||
|
*/
|
||||||
|
public void setFileSn(String fileSn) {
|
||||||
|
this.fileSn = fileSn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileStreCours attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the fileStreCours
|
||||||
|
*/
|
||||||
|
public String getFileStreCours() {
|
||||||
|
return fileStreCours;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fileStreCours attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param fileStreCours
|
||||||
|
* the fileStreCours to set
|
||||||
|
*/
|
||||||
|
public void setFileStreCours(String fileStreCours) {
|
||||||
|
this.fileStreCours = fileStreCours;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* orignlFileNm attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the orignlFileNm
|
||||||
|
*/
|
||||||
|
public String getOrignlFileNm() {
|
||||||
|
return orignlFileNm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* orignlFileNm attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param orignlFileNm
|
||||||
|
* the orignlFileNm to set
|
||||||
|
*/
|
||||||
|
public void setOrignlFileNm(String orignlFileNm) {
|
||||||
|
this.orignlFileNm = orignlFileNm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* streFileNm attribute를 리턴한다.
|
||||||
|
*
|
||||||
|
* @return the streFileNm
|
||||||
|
*/
|
||||||
|
public String getStreFileNm() {
|
||||||
|
return streFileNm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* streFileNm attribute 값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param streFileNm
|
||||||
|
* the streFileNm to set
|
||||||
|
*/
|
||||||
|
public void setStreFileNm(String streFileNm) {
|
||||||
|
this.streFileNm = streFileNm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* toString 메소드를 대치한다.
|
||||||
|
*/
|
||||||
|
public String toString() {
|
||||||
|
return ToStringBuilder.reflectionToString(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
58
src/main/java/egovframework/com/cmm/service/Globals.java
Normal file
58
src/main/java/egovframework/com/cmm/service/Globals.java
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
package egovframework.com.cmm.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Name : Globals.java
|
||||||
|
* Description : 시스템 구동 시 프로퍼티를 통해 사용될 전역변수를 정의한다.
|
||||||
|
* Modification Information
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.01.19 박지욱 최초 생성
|
||||||
|
*
|
||||||
|
* @author 공통 서비스 개발팀 박지욱
|
||||||
|
* @since 2009. 01. 19
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Globals {
|
||||||
|
//OS 유형
|
||||||
|
public static final String OS_TYPE = EgovProperties.getProperty("Globals.OsType");
|
||||||
|
//DB 유형
|
||||||
|
public static final String DB_TYPE = EgovProperties.getProperty("Globals.DbType");
|
||||||
|
//메인 페이지
|
||||||
|
public static final String MAIN_PAGE = EgovProperties.getProperty("Globals.MainPage");
|
||||||
|
//ShellFile 경로
|
||||||
|
public static final String SHELL_FILE_PATH = EgovProperties.getPathProperty("Globals.ShellFilePath");
|
||||||
|
//퍼로퍼티 파일 위치
|
||||||
|
public static final String CONF_PATH = EgovProperties.getPathProperty("Globals.ConfPath");
|
||||||
|
//Server정보 프로퍼티 위치
|
||||||
|
public static final String SERVER_CONF_PATH = EgovProperties.getPathProperty("Globals.ServerConfPath");
|
||||||
|
//Client정보 프로퍼티 위치
|
||||||
|
public static final String CLIENT_CONF_PATH = EgovProperties.getPathProperty("Globals.ClientConfPath");
|
||||||
|
//파일포맷 정보 프로퍼티 위치
|
||||||
|
public static final String FILE_FORMAT_PATH = EgovProperties.getPathProperty("Globals.FileFormatPath");
|
||||||
|
|
||||||
|
//파일 업로드 원 파일명
|
||||||
|
public static final String ORIGIN_FILE_NM = "originalFileName";
|
||||||
|
//파일 확장자
|
||||||
|
public static final String FILE_EXT = "fileExtension";
|
||||||
|
//파일크기
|
||||||
|
public static final String FILE_SIZE = "fileSize";
|
||||||
|
//업로드된 파일명
|
||||||
|
public static final String UPLOAD_FILE_NM = "uploadFileName";
|
||||||
|
//파일경로
|
||||||
|
public static final String FILE_PATH = "filePath";
|
||||||
|
|
||||||
|
//메일발송요청 XML파일경로
|
||||||
|
public static final String MAIL_REQUEST_PATH = EgovProperties.getPathProperty("Globals.MailRequestPath");
|
||||||
|
//메일발송응답 XML파일경로
|
||||||
|
public static final String MAIL_RESPONSE_PATH = EgovProperties.getPathProperty("Globals.MailRResponsePath");
|
||||||
|
|
||||||
|
// G4C 연결용 IP (localhost)
|
||||||
|
public static final String LOCAL_IP = EgovProperties.getProperty("Globals.LocalIp");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -4,6 +4,28 @@ 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>
|
||||||
|
* @Class Name : BoardService.java
|
||||||
|
*
|
||||||
|
* @Description : 게시물 관리 클래스
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 19. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 7. 19.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
public interface BoardService
|
public interface BoardService
|
||||||
{
|
{
|
||||||
public DataApiResVO listNotices(DataApiReqVO reqVO);
|
public DataApiResVO listNotices(DataApiReqVO reqVO);
|
||||||
@ -12,6 +34,12 @@ public interface BoardService
|
|||||||
|
|
||||||
public DataApiResVO listFAQs(DataApiReqVO reqVO);
|
public DataApiResVO listFAQs(DataApiReqVO reqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 묻고답하기 목록 조회한다.
|
||||||
|
*
|
||||||
|
* @param reqVO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public DataApiResVO listQnAs(DataApiReqVO reqVO);
|
public DataApiResVO listQnAs(DataApiReqVO reqVO);
|
||||||
|
|
||||||
public DataApiResVO selectQnA(DataApiReqVO reqVO);
|
public DataApiResVO selectQnA(DataApiReqVO reqVO);
|
||||||
|
|||||||
@ -15,6 +15,11 @@ public class BoardDAO extends DataApi
|
|||||||
{
|
{
|
||||||
private static final Logger log = LoggerFactory.getLogger(BoardDAO.class);
|
private static final Logger log = LoggerFactory.getLogger(BoardDAO.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 주 자원의 URI
|
||||||
|
*/
|
||||||
|
public static final String RESOURCE_URI = "/uac/service/board/qna";
|
||||||
|
|
||||||
public DataApiResVO listNotices(DataApiReqVO reqVO) {
|
public DataApiResVO listNotices(DataApiReqVO reqVO) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -27,8 +32,15 @@ public class BoardDAO extends DataApi
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 묻고답하기 목록 조회한다.
|
||||||
|
*
|
||||||
|
* @param reqVO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public DataApiResVO listQnAs(DataApiReqVO reqVO) {
|
public DataApiResVO listQnAs(DataApiReqVO reqVO) {
|
||||||
return null;
|
reqVO.setReqUrl(RESOURCE_URI + "/list");
|
||||||
|
return get(reqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataApiResVO selectQnA(DataApiReqVO reqVO) {
|
public DataApiResVO selectQnA(DataApiReqVO reqVO) {
|
||||||
|
|||||||
@ -32,8 +32,14 @@ public class BoardServiceImpl implements BoardService
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 묻고답하기 목록 조회한다.
|
||||||
|
*
|
||||||
|
* (non-Javadoc)
|
||||||
|
* @see nlib.bbs.service.BoardService#listQnAs(nlib.restful.service.DataApiReqVO)
|
||||||
|
*/
|
||||||
public DataApiResVO listQnAs(DataApiReqVO reqVO) {
|
public DataApiResVO listQnAs(DataApiReqVO reqVO) {
|
||||||
return null;
|
return boardDAO.listQnAs(reqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataApiResVO selectQnA(DataApiReqVO reqVO) {
|
public DataApiResVO selectQnA(DataApiReqVO reqVO) {
|
||||||
|
|||||||
@ -1,68 +1,171 @@
|
|||||||
|
|
||||||
package nlib.bbs.web;
|
package nlib.bbs.web;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
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.http.ResponseEntity;
|
||||||
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
|
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.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
import nlib.bbs.service.BoardService;
|
import nlib.bbs.service.BoardService;
|
||||||
import nlib.bbs.service.impl.BoardServiceImpl;
|
import nlib.cmm.NlibCommonController;
|
||||||
|
import nlib.restful.service.DataApiReqVO;
|
||||||
|
import nlib.restful.service.DataApiResVO;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
public class BoardController
|
public class BoardController extends NlibCommonController
|
||||||
{
|
{
|
||||||
private static final Logger log = LoggerFactory.getLogger(BoardController.class);
|
private static final Logger log = LoggerFactory.getLogger(BoardController.class);
|
||||||
|
|
||||||
@Resource(name = "boardService")
|
@Resource(name = "boardService")
|
||||||
private BoardService boardService;
|
private BoardService boardService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AuthenticationManager authenticationManager;
|
||||||
|
|
||||||
public ModelMap listNotices(HttpServletRequest req) {
|
/**
|
||||||
return null;
|
* 공지사항 목록 조회한다.
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
@RequestMapping("/board/listNotices.do")
|
||||||
|
public String listNotices(HttpServletRequest req) {
|
||||||
|
|
||||||
|
return "nlib/board/listNotices";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap selectNotice(HttpServletRequest req) {
|
/**
|
||||||
return null;
|
* 공지사항 상세 내용 조회한다.
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping("/board/selectNotice.do")
|
||||||
|
public String selectNotice(HttpServletRequest req) {
|
||||||
|
return "nlib/board/selectNotice";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap listFAQs(HttpServletRequest req) {
|
/**
|
||||||
return null;
|
* FAQ 목록 조회한다.
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping("/board/listFAQs.do")
|
||||||
|
public String listFAQs(HttpServletRequest req) {
|
||||||
|
return "nlib/board/listFAQs";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap listQnAs(HttpServletRequest req) {
|
/**
|
||||||
return null;
|
* 묻고답하기 목록 조회 화면을 구성한다.
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping("/board/listQnAs.do")
|
||||||
|
public String listQnAs(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> commandMap, ModelMap model) {
|
||||||
|
|
||||||
|
return "nlib/board/listQnAs";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap selectQnA(HttpServletRequest req) {
|
/**
|
||||||
return null;
|
* 묻고답하기 목록 조회한다.
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/board/listQnAsAjax.do")
|
||||||
|
public ResponseEntity<String> listQnAsAjax(HttpServletRequest req,
|
||||||
|
Authentication authentication, @RequestBody Map<String, String> paramMap) {
|
||||||
|
|
||||||
|
String searchKeyword = paramMap.get("searchKeyword");
|
||||||
|
String pageNo = paramMap.get("pageNo");
|
||||||
|
String pageRows = paramMap.get("pageRows");
|
||||||
|
|
||||||
|
log.debug("listQnAs > pageNo = " + pageNo);
|
||||||
|
log.debug("listQnAs > pageRows = " + pageRows);
|
||||||
|
log.debug("listQnAs > keyword = " + searchKeyword);
|
||||||
|
|
||||||
|
//-------------------------------
|
||||||
|
// REQ VO 구성
|
||||||
|
//-------------------------------
|
||||||
|
DataApiReqVO reqVO = new DataApiReqVO();
|
||||||
|
reqVO.setAuthKey(getAuthKey(authentication));
|
||||||
|
reqVO.setPageNo(pageNo);
|
||||||
|
reqVO.setPageRows(pageRows);
|
||||||
|
|
||||||
|
// 추가 정보 설정
|
||||||
|
HashMap<String, Object> info = new HashMap<String, Object>();
|
||||||
|
info.put("keyword", searchKeyword);
|
||||||
|
reqVO.setInfo(info);
|
||||||
|
|
||||||
|
// 요청
|
||||||
|
DataApiResVO resVO = boardService.listQnAs(reqVO);
|
||||||
|
|
||||||
|
// JSON변환 응답 처리
|
||||||
|
return makeResponseEntityJson(resVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap insertQnAForm(HttpServletRequest req) {
|
|
||||||
return null;
|
/**
|
||||||
|
* 묻고답하기 상세 내용 조회한다.
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping("/board/selectQnA.do")
|
||||||
|
public String selectQnA(HttpServletRequest req) {
|
||||||
|
return "nlib/board/selectQnA";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap insertQnA(HttpServletRequest req) {
|
/**
|
||||||
return null;
|
* 묻고답하기 글작성화면을 표출한다.
|
||||||
|
*
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping("/board/insertQnAForm.do")
|
||||||
|
public String insertQnAForm(HttpServletRequest req) {
|
||||||
|
return "nlib/board/insertQnAForm";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap verifyWriter(HttpServletRequest req) {
|
@RequestMapping("/board/insertQnA.do")
|
||||||
return null;
|
public String insertQnA(HttpServletRequest req) {
|
||||||
|
return "nlib/board/insertQnA";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap updateQnAForm(HttpServletRequest req) {
|
@RequestMapping("/board/verifyWriter.do")
|
||||||
return null;
|
public String verifyWriter(HttpServletRequest req) {
|
||||||
|
return "nlib/board/verifyWriter";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap updateQnA(HttpServletRequest req) {
|
@RequestMapping("/board/updateQnAForm.do")
|
||||||
return null;
|
public String updateQnAForm(HttpServletRequest req) {
|
||||||
|
return "nlib/board/updateQnAForm";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap deleteQnA(HttpServletRequest req) {
|
@RequestMapping("/board/updateQnA.do")
|
||||||
return null;
|
public String updateQnA(HttpServletRequest req) {
|
||||||
|
return "nlib/board/updateQnA";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/board/deleteQnA.do")
|
||||||
|
public String deleteQnA(HttpServletRequest req) {
|
||||||
|
return "nlib/board/deleteQnA";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
64
src/main/java/nlib/cmm/NlibCommonController.java
Normal file
64
src/main/java/nlib/cmm/NlibCommonController.java
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
package nlib.cmm;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.security.core.Authentication;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
import nlib.bbs.web.BoardController;
|
||||||
|
import nlib.cmm.exception.ErrorMessage;
|
||||||
|
import nlib.restful.service.DataApiResVO;
|
||||||
|
import nlib.security.SecUserVO;
|
||||||
|
import nlib.user.service.NlibLoginVO;
|
||||||
|
|
||||||
|
public class NlibCommonController {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(BoardController.class);
|
||||||
|
static final String ANONYMOUS_AUTH_KEY = "ANONYMOUS_AUTH_KEY_NONE";
|
||||||
|
|
||||||
|
public NlibLoginVO getNlibLoginVO(Authentication authentication) {
|
||||||
|
if(authentication == null) return null;
|
||||||
|
|
||||||
|
return (NlibLoginVO)authentication.getPrincipal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SecUserVO getSecLoginVO(Authentication authentication) {
|
||||||
|
|
||||||
|
if(authentication == null) return null;
|
||||||
|
|
||||||
|
return (SecUserVO)authentication.getPrincipal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAuthKey(Authentication authentication) {
|
||||||
|
if(authentication == null) return ANONYMOUS_AUTH_KEY;
|
||||||
|
|
||||||
|
return ((NlibLoginVO)authentication.getPrincipal()).getAuthKey();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResponseEntity<String> makeResponseEntityJson(DataApiResVO resVO) {
|
||||||
|
|
||||||
|
// Convert Json
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
String jsonStr = null;
|
||||||
|
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.add(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8");
|
||||||
|
|
||||||
|
try {
|
||||||
|
jsonStr = mapper.writeValueAsString(resVO);
|
||||||
|
log.debug("RETURN DATA > json:" + jsonStr);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
ErrorMessage eMsg = new ErrorMessage("ERR_JSON_CONVERT", "응답객체를 JSON으로 변환 처리 중 오류가 발생하였습니다. : " + e.toString());
|
||||||
|
try { jsonStr = mapper.writeValueAsString(eMsg); } catch (JsonProcessingException ee) {}
|
||||||
|
e.printStackTrace();
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).headers(headers).body(jsonStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok().headers(headers).body(jsonStr);
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/nlib/cmm/exception/ErrorMessage.java
Normal file
17
src/main/java/nlib/cmm/exception/ErrorMessage.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package nlib.cmm.exception;
|
||||||
|
|
||||||
|
public class ErrorMessage {
|
||||||
|
|
||||||
|
String code = null;
|
||||||
|
String message = null;
|
||||||
|
|
||||||
|
public ErrorMessage() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ErrorMessage(String code, String message) {
|
||||||
|
this.code = code;
|
||||||
|
this.message = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
186
src/main/java/nlib/cmm/fileupload/FileUploadController.java
Normal file
186
src/main/java/nlib/cmm/fileupload/FileUploadController.java
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
package nlib.cmm.fileupload;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
import egovframework.com.cmm.EgovWebUtil;
|
||||||
|
import egovframework.com.cmm.service.FileVO;
|
||||||
|
import nlib.cmm.exception.ErrorMessage;
|
||||||
|
import nlib.cmm.service.NlibProperty;
|
||||||
|
import nlib.util.FileUtil;
|
||||||
|
import nlib.util.StringUtil;
|
||||||
|
import nlib.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : FileUploadController.java
|
||||||
|
*
|
||||||
|
* @Description : 파일 업로드를 처리하는 컨트롤러
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 15. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 7. 15.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
public class FileUploadController {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(FileUploadController.class);
|
||||||
|
|
||||||
|
@Resource(name="nlibProperty")
|
||||||
|
NlibProperty nlibProperty;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 첨부파일이 저장되는 최상위 위치
|
||||||
|
*/
|
||||||
|
@Value("#{properties['fileupload.base.path']}")
|
||||||
|
private String FILEUPLOAD_BASE_PATH;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 첨부파일 임시 저장 위치
|
||||||
|
*/
|
||||||
|
@Value("#{properties['fileupload.temp.subpath']}")
|
||||||
|
private String FILEUPLOAD_TEMP_SUBPATH;
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@RequestMapping(value="/fileupload/uploadFilesAjax.do", produces="application/json")
|
||||||
|
public ResponseEntity uploadFilesAjax(
|
||||||
|
final MultipartHttpServletRequest multiRequest
|
||||||
|
, @RequestParam("subPathKey") String subPathKey
|
||||||
|
, HttpServletResponse response) {
|
||||||
|
|
||||||
|
// TODO : 권한 체크 추가할 것
|
||||||
|
|
||||||
|
List<FileVO> result = new ArrayList<FileVO>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// 최상위 위치
|
||||||
|
if(FileUtil.isNotValid(FILEUPLOAD_BASE_PATH)) throw new Exception("첨부파일이 저장되는 최상위 위치값이 적절하지 않습니다.");
|
||||||
|
|
||||||
|
// 서브 위치
|
||||||
|
if(StringUtil.isEmpty(subPathKey)) throw new Exception("첨부파일이 저장되는 위치정보값이 정확하지 않습니다.");
|
||||||
|
String subPath = nlibProperty.getProperty(subPathKey);
|
||||||
|
if(FileUtil.isNotValid(subPath)) throw new Exception("첨부파일 서브 위치값이 적절하지 않습니다.");
|
||||||
|
|
||||||
|
final Map<String, MultipartFile> files = multiRequest.getFileMap();
|
||||||
|
log.debug("uploadFilesAjax : 진입 " + (files == null ? " files null " : files.size()));
|
||||||
|
|
||||||
|
File dir = new File(FILEUPLOAD_BASE_PATH + subPath);
|
||||||
|
if(!dir.exists() || !dir.isDirectory()) dir.mkdirs();
|
||||||
|
|
||||||
|
if(!files.isEmpty()) {
|
||||||
|
|
||||||
|
Iterator<Entry<String, MultipartFile>> itr = files.entrySet().iterator();
|
||||||
|
MultipartFile file;
|
||||||
|
String filePath = "";
|
||||||
|
FileVO fvo;
|
||||||
|
|
||||||
|
int fileKey = 1;
|
||||||
|
while (itr.hasNext()) {
|
||||||
|
Entry<String, MultipartFile> entry = itr.next();
|
||||||
|
|
||||||
|
file = entry.getValue();
|
||||||
|
String orginFileName = file.getOriginalFilename();
|
||||||
|
|
||||||
|
//--------------------------------------
|
||||||
|
// 원 파일명이 없는 경우 처리
|
||||||
|
// (첨부가 되지 않은 input file type)
|
||||||
|
//--------------------------------------
|
||||||
|
if ("".equals(orginFileName)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
////------------------------------------
|
||||||
|
|
||||||
|
int index = orginFileName.lastIndexOf(".");
|
||||||
|
//String fileName = orginFileName.substring(0, index);
|
||||||
|
String fileExt = orginFileName.substring(index + 1);
|
||||||
|
//String newName = KeyStr + getTimeStamp() + fileKey;
|
||||||
|
String newName = UUID.getPhysicalFileName();
|
||||||
|
long size = file.getSize();
|
||||||
|
|
||||||
|
log.debug("FILE UPLOAD : File New Name=" + newName);
|
||||||
|
|
||||||
|
if (!"".equals(orginFileName)) {
|
||||||
|
filePath = FILEUPLOAD_BASE_PATH + subPath + "/" + newName;
|
||||||
|
log.debug("FILE UPLOAD : filePath=" + filePath);
|
||||||
|
|
||||||
|
file.transferTo(new File(EgovWebUtil.filePathBlackList(filePath)));
|
||||||
|
}
|
||||||
|
|
||||||
|
fvo = new FileVO();
|
||||||
|
fvo.setFileExtsn(fileExt);
|
||||||
|
//fvo.setFileStreCours(storePathString);
|
||||||
|
fvo.setFileMg(Long.toString(size));
|
||||||
|
fvo.setOrignlFileNm(orginFileName);
|
||||||
|
fvo.setStreFileNm(newName);
|
||||||
|
//fvo.setAtchFileId(atchFileIdString);
|
||||||
|
fvo.setFileSn(String.valueOf(fileKey));
|
||||||
|
|
||||||
|
result.add(fvo);
|
||||||
|
|
||||||
|
fileKey++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch(Exception e) {
|
||||||
|
ErrorMessage errorMessage = new ErrorMessage("ERROR", "처리에 실패하였습니다 : " + e.toString());
|
||||||
|
e.printStackTrace();
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert Json
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
String json;
|
||||||
|
try {
|
||||||
|
json = mapper.writeValueAsString(result);
|
||||||
|
log.debug("RETURN DATA > json:" + json);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
json = null;
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpHeaders responseHeaders = new HttpHeaders();
|
||||||
|
//responseHeaders.set("Content-Type", "application/json; charset=UTF-8");
|
||||||
|
|
||||||
|
ResponseEntity ret = ResponseEntity.ok().headers(responseHeaders).body(json);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
41
src/main/java/nlib/cmm/fileupload/FileUploadDomain.java
Normal file
41
src/main/java/nlib/cmm/fileupload/FileUploadDomain.java
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package nlib.cmm.fileupload;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
public class FileUploadDomain implements Serializable {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private List<MultipartFile> images;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MultipartFile> getImages() {
|
||||||
|
return images;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setImages(List<MultipartFile> images) {
|
||||||
|
this.images = images;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
112
src/main/java/nlib/cmm/service/NlibProperty.java
Normal file
112
src/main/java/nlib/cmm/service/NlibProperty.java
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
package nlib.cmm.service;
|
||||||
|
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : NlibProperty.java
|
||||||
|
*
|
||||||
|
* @Description : NLIB용 프로퍼티 파일을 읽어서 메모리에 로딩하고 관리하는 클래스
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 16. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 7. 16.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Service("nlibProperty")
|
||||||
|
public class NlibProperty {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(NlibProperty.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 메모리에 로딩될 프로퍼티 객체 선언
|
||||||
|
*/
|
||||||
|
public static Properties properties = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nlib.properties 파일로 부터 속성을 읽어 들인다.
|
||||||
|
*
|
||||||
|
* @return 정상적으로 로딩한 건수를 리턴한다. 오류 발생 시, 음수값이 리턴된다.
|
||||||
|
*/
|
||||||
|
public static int loadProperties() {
|
||||||
|
|
||||||
|
String nlibPropPath = null;
|
||||||
|
int propCount = -1;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if(properties == null) properties = new Properties();
|
||||||
|
else properties.clear();
|
||||||
|
|
||||||
|
nlibPropPath = NlibProperty.class.getResource("").getPath();
|
||||||
|
nlibPropPath = nlibPropPath.substring(0, nlibPropPath.lastIndexOf("/nlib/") + 6) + "nlib.properties";
|
||||||
|
|
||||||
|
log.debug("NLIB Properties File Path : " + nlibPropPath);
|
||||||
|
|
||||||
|
try (InputStream input = new FileInputStream(nlibPropPath)) {
|
||||||
|
|
||||||
|
properties.load(input);
|
||||||
|
|
||||||
|
Enumeration<String> propEnum = (Enumeration<String>)properties.propertyNames();
|
||||||
|
|
||||||
|
String propName = null;
|
||||||
|
while(propEnum.hasMoreElements()) {
|
||||||
|
propName = propEnum.nextElement();
|
||||||
|
log.debug("Loading NLIB Properties : " + propName + " = " + properties.getProperty(propName));
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("Loading is Done!");
|
||||||
|
|
||||||
|
propCount = properties.size();
|
||||||
|
|
||||||
|
} catch (IOException ex) {
|
||||||
|
if(properties != null) properties.clear();
|
||||||
|
log.error("Error in Loading NLIB Properties : " + nlibPropPath);
|
||||||
|
ex.printStackTrace();
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch(Exception e) {
|
||||||
|
if(properties != null) properties.clear();
|
||||||
|
log.error("Error in Solving NLIB Properties Path : " + nlibPropPath);
|
||||||
|
e.printStackTrace();
|
||||||
|
return -3;
|
||||||
|
}
|
||||||
|
|
||||||
|
return propCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* name 값을 키로하는 속성값을 리턴한다.
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getProperty(String name) {
|
||||||
|
|
||||||
|
if(properties == null || properties.size() < 1) {
|
||||||
|
if(loadProperties() < 0) return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return properties.getProperty(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
66
src/main/java/nlib/cmm/web/SystemController.java
Normal file
66
src/main/java/nlib/cmm/web/SystemController.java
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
package nlib.cmm.web;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.security.core.Authentication;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.ModelMap;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import nlib.cmm.service.NlibProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : SystemController.java
|
||||||
|
*
|
||||||
|
* @Description : 각종 시스템 설정관련 기능 모음 클래스
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 16. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 7. 16.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
public class SystemController {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(SystemController.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NLIB 프로퍼티 서비스
|
||||||
|
*/
|
||||||
|
@Resource(name="nlibProperty")
|
||||||
|
NlibProperty nlibProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NLIB Property 재로드 작업을 요청한다.
|
||||||
|
*
|
||||||
|
* @param authentication
|
||||||
|
* @param model
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping( {"/system/reloadProperties.do"} )
|
||||||
|
public String reloadProperties(Authentication authentication, ModelMap model) {
|
||||||
|
|
||||||
|
// TODO : 시스템관리자인지 권한 체크할 것
|
||||||
|
int propCount = nlibProperty.loadProperties();
|
||||||
|
|
||||||
|
model.addAttribute("code", String.format("프로퍼티 건수(결과) : %d", propCount));
|
||||||
|
model.addAttribute("message", "NLIB Property 재로드 작업을 호출했습니다. 로그에서 처리결과를 확인하시기 바랍니다.");
|
||||||
|
|
||||||
|
return "nlib/cmm/common";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -114,6 +114,11 @@ public interface DataApiInterface {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 요청 파라메타 확인
|
||||||
|
for(String key : map.keySet()) {
|
||||||
|
log.debug("MultiValueMap > " + key + "=" + map.get(key));
|
||||||
|
}
|
||||||
|
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
79
src/main/java/nlib/restful/service/XmlConverter.java
Normal file
79
src/main/java/nlib/restful/service/XmlConverter.java
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
package nlib.restful.service;
|
||||||
|
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import javax.xml.stream.XMLEventReader;
|
||||||
|
import javax.xml.stream.XMLInputFactory;
|
||||||
|
import javax.xml.stream.XMLStreamException;
|
||||||
|
import javax.xml.stream.events.StartElement;
|
||||||
|
import javax.xml.stream.events.XMLEvent;
|
||||||
|
|
||||||
|
public class XmlConverter {
|
||||||
|
|
||||||
|
@SuppressWarnings("restriction")
|
||||||
|
public static void main(String argv[]) {
|
||||||
|
|
||||||
|
String inputFile = "C:/iams/workspace/nlib/data/dataxml/uac.service.board.qna.list_GET.xml";
|
||||||
|
HashMap<String, String> resMap = new HashMap<String, String>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// First create a new XMLInputFactory
|
||||||
|
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
|
||||||
|
// Setup a new eventReader
|
||||||
|
InputStream in = new FileInputStream(inputFile);
|
||||||
|
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
|
||||||
|
// Read the XML document
|
||||||
|
|
||||||
|
int depth = 0;
|
||||||
|
StartElement startElement = null;
|
||||||
|
|
||||||
|
while (eventReader.hasNext()) {
|
||||||
|
XMLEvent event = eventReader.nextEvent();
|
||||||
|
System.out.println(" -> " + event);
|
||||||
|
String elementName = null;
|
||||||
|
String elementValue = null;
|
||||||
|
HashMap<String, String> elementValues = null;
|
||||||
|
|
||||||
|
if (event.isStartElement()) {
|
||||||
|
|
||||||
|
startElement = event.asStartElement();
|
||||||
|
|
||||||
|
if (startElement.getName().getLocalPart().equals("result")) {
|
||||||
|
depth++;
|
||||||
|
|
||||||
|
event = eventReader.nextEvent();
|
||||||
|
System.out.println(" > " + event);
|
||||||
|
|
||||||
|
// result의 하위 엘리먼트 시작 찾기
|
||||||
|
while (!event.isStartElement()) {
|
||||||
|
event = eventReader.nextEvent();
|
||||||
|
System.out.println(" 하위엘리먼트 시작전: " + event);
|
||||||
|
}
|
||||||
|
|
||||||
|
while (!event.isEndElement()) {
|
||||||
|
if (event.isCharacters()) {
|
||||||
|
String content = event.asCharacters().getData();
|
||||||
|
System.out.println("content: -" + content + "_");
|
||||||
|
}
|
||||||
|
event = eventReader.nextEvent();
|
||||||
|
System.out.println(" >> " + event);
|
||||||
|
}
|
||||||
|
|
||||||
|
event = eventReader.nextEvent();
|
||||||
|
System.out.println(" >>> " + event);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
System.out.println("File not Found: " + inputFile);
|
||||||
|
} catch (XMLStreamException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
53
src/main/java/nlib/util/FileUtil.java
Normal file
53
src/main/java/nlib/util/FileUtil.java
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
package nlib.util;
|
||||||
|
|
||||||
|
import egovframework.com.utl.fcc.service.EgovStringUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : FileUtil.java
|
||||||
|
*
|
||||||
|
* @Description : 파일 처리관련 유틸리티 기능 모음 클래스
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 16. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 7. 16.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class FileUtil extends EgovStringUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 경로나 파일명으로 적합한지를 판단한다.
|
||||||
|
*
|
||||||
|
* @param path
|
||||||
|
* @return 적합한 경우, true
|
||||||
|
*/
|
||||||
|
public static boolean isValid(String pathOrFilename) {
|
||||||
|
if(pathOrFilename == null || pathOrFilename.trim().length() == 0) return false;
|
||||||
|
|
||||||
|
if(pathOrFilename.contains("..")) return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 경로나 파일명으로 적합한지를 판단한다.
|
||||||
|
*
|
||||||
|
* @param path
|
||||||
|
* @return 부적합한 경우, true
|
||||||
|
*/
|
||||||
|
public static boolean isNotValid(String pathOrFilename) {
|
||||||
|
return !isValid(pathOrFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,5 +1,9 @@
|
|||||||
package nlib.util;
|
package nlib.util;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import egovframework.com.utl.fcc.service.EgovStringUtil;
|
import egovframework.com.utl.fcc.service.EgovStringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -62,4 +66,24 @@ public class StringUtil extends EgovStringUtil {
|
|||||||
|
|
||||||
return defaultInt;
|
return defaultInt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재 시각을 yyyyMMddhhmmssSSS 형식으로 리턴한다.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getTimeStamp() {
|
||||||
|
|
||||||
|
String rtnStr = null;
|
||||||
|
|
||||||
|
// 문자열로 변환하기 위한 패턴 설정(년도-월-일 시:분:초:초(자정이후 초))
|
||||||
|
String pattern = "yyyyMMddhhmmssSSS";
|
||||||
|
|
||||||
|
SimpleDateFormat sdfCurrent = new SimpleDateFormat(pattern, Locale.KOREA);
|
||||||
|
Timestamp ts = new Timestamp(System.currentTimeMillis());
|
||||||
|
|
||||||
|
rtnStr = sdfCurrent.format(ts.getTime());
|
||||||
|
|
||||||
|
return rtnStr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
48
src/main/java/nlib/util/UUID.java
Normal file
48
src/main/java/nlib/util/UUID.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package nlib.util;
|
||||||
|
|
||||||
|
import egovframework.com.utl.fcc.service.EgovFormBasedFileUtil;
|
||||||
|
import egovframework.com.utl.fcc.service.EgovFormBasedUUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : UUID.java
|
||||||
|
*
|
||||||
|
* @Description : UUID를 생성한다.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 13. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 7. 13.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class UUID {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 새로운 UUID를 생성하여 리턴한다.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getNewUUID() {
|
||||||
|
return EgovFormBasedUUID.randomUUID().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 파일용 UUID로 생성한 파일명을 리턴한다.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getPhysicalFileName() {
|
||||||
|
return "F" + StringUtil.getTimeStamp() + "_" + getNewUUID().replaceAll("-", "").toUpperCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,9 +2,12 @@
|
|||||||
<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: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/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
|
||||||
@ -62,4 +65,13 @@
|
|||||||
<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 -->
|
||||||
|
<!-- regular spring resolver -->
|
||||||
|
<bean id="spring.RegularCommonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
|
||||||
|
<property name="maxUploadSize" value="600000000" />
|
||||||
|
<property name="maxInMemorySize" value="100000000" />
|
||||||
|
</bean>
|
||||||
|
<alias name="spring.RegularCommonsMultipartResolver" alias="multipartResolver" />
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
<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>
|
||||||
@ -13,6 +13,6 @@
|
|||||||
<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>
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<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="INFO" additivity="false">
|
<Logger name="org.springframework" level="DEBUG" additivity="false">
|
||||||
<AppenderRef ref="console" />
|
<AppenderRef ref="console" />
|
||||||
</Logger>
|
</Logger>
|
||||||
<Root level="DEBUG">
|
<Root level="DEBUG">
|
||||||
|
|||||||
@ -17,6 +17,12 @@
|
|||||||
<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) -->
|
||||||
|
<property name="messageConverters">
|
||||||
|
<list>
|
||||||
|
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
|
||||||
|
</list>
|
||||||
|
</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">
|
||||||
|
|||||||
83
src/main/webapp/WEB-INF/jsp/nlib/board/insertQnA.jsp
Normal file
83
src/main/webapp/WEB-INF/jsp/nlib/board/insertQnA.jsp
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : getSampleInfo.jsp
|
||||||
|
*
|
||||||
|
* @Description : RESTful API 호출 샘플
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 6. 15. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 6. 15.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<c:set var="pageTitle">QRCode 회원정보</c:set>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>${pageTitle}</title>
|
||||||
|
|
||||||
|
<!-- W2UI -->
|
||||||
|
<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>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- javascript warning tag -->
|
||||||
|
<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript>
|
||||||
|
<form:form commandName="reqInfo"
|
||||||
|
action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post"
|
||||||
|
target="_blank"
|
||||||
|
onSubmit="fncAuthorInsert(document.forms[0]); return false;">
|
||||||
|
|
||||||
|
<div id="grid" style="width: 100%; height: 250px;"></div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
$(function () {
|
||||||
|
$('#grid').w2grid({
|
||||||
|
name: 'grid',
|
||||||
|
header: 'List of Names',
|
||||||
|
columns: [
|
||||||
|
{ field: 'fname', text: '이름', size: '30%' },
|
||||||
|
{ field: 'lname', text: '성명', size: '30%' },
|
||||||
|
{ field: 'email', text: '이메일', size: '40%' },
|
||||||
|
{ field: 'sdate', text: '시작일자', size: '120px' }
|
||||||
|
],
|
||||||
|
records: [
|
||||||
|
{ 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: 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: 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' }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
121
src/main/webapp/WEB-INF/jsp/nlib/board/insertQnAForm.jsp
Normal file
121
src/main/webapp/WEB-INF/jsp/nlib/board/insertQnAForm.jsp
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : listQnAs.jsp
|
||||||
|
*
|
||||||
|
* @Description : 묻고답하기 목록을 조회한다.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 13. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 7. 13.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
|
||||||
|
<c:set var="pageTitle">묻고답하기 - 글쓰기</c:set>
|
||||||
|
|
||||||
|
<!-- File Upload : 시작 -->
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/js/fileupload/dropzone.css" />
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/js/fileupload/style.css" />
|
||||||
|
<script src="${pageContext.request.contextPath}/js/fileupload/dropzone.js"></script>
|
||||||
|
<!-- File Upload : 종료 -->
|
||||||
|
|
||||||
|
<h3>${pageTitle }</h3>
|
||||||
|
|
||||||
|
<!-- 글쓰기 : 폼 -->
|
||||||
|
<form:form commandName="reqInfo"
|
||||||
|
action="${pageContext.request.contextPath}/board/insertQnA.do"
|
||||||
|
method="post">
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>제목</td>
|
||||||
|
<td><input type="input" name="title" id="title" value="" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>작성자명</td>
|
||||||
|
<td><input type="input" name="writerName" id="writerName" value="" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>비밀번호</td>
|
||||||
|
<td><input type="input" name="password" id="password" value="" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>이메일</td>
|
||||||
|
<td><input type="input" name="email" id="email" value="" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>내용</td>
|
||||||
|
<td><textarea name="content" id="content" value=""></textarea></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>첨부파일</td>
|
||||||
|
<td><input type="input" name="email" id="email" value="" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<input type="button" name="btnNew" id="btnNew" value="확인"
|
||||||
|
onclick="javascript:fileUploadNow();" />
|
||||||
|
<input type="button" name="btnNew" id="btnNew" value="취소"
|
||||||
|
onclick="javascript:location.href='${pageContext.request.contextPath}/board/listQnAs.do';" />
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="dropzone">
|
||||||
|
<form action="${pageContext.request.contextPath}/fileupload/uploadFile.do"
|
||||||
|
class="dropzone needsclick" id="myDropzone" name="myDropzone">
|
||||||
|
<div class="dz-message needsclick">
|
||||||
|
<button type="button" class="dz-button">Drop files here or click to select files.</button><br />
|
||||||
|
<span class="note needsclick">이곳에 파일을 끌어다 놓거나, 클릭하여 올릴 파일을 선택하세요.</span>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
|
||||||
|
|
||||||
|
// 파일업로드 객체 생성
|
||||||
|
var myDropzone = new Dropzone("form#myDropzone", { url: "${pageContext.request.contextPath}/fileupload/uploadFilesAjax.do?subPathKey=fileupload.bbs.qna.subpath"});
|
||||||
|
|
||||||
|
// 각 파일별 업로드 성공시 호출됨
|
||||||
|
myDropzone.on("success", function(file) {
|
||||||
|
alert("success : " + file.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
myDropzone.on("complete", function(file) {
|
||||||
|
alert("complete : " + file.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
myDropzone.on("queuecomplete", function() {
|
||||||
|
alert("queuecomplete : " + file.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function fileUploadNow() {
|
||||||
|
myDropzone.processQueue();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
83
src/main/webapp/WEB-INF/jsp/nlib/board/listFAQs.jsp
Normal file
83
src/main/webapp/WEB-INF/jsp/nlib/board/listFAQs.jsp
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : getSampleInfo.jsp
|
||||||
|
*
|
||||||
|
* @Description : RESTful API 호출 샘플
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 6. 15. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 6. 15.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<c:set var="pageTitle">QRCode 회원정보</c:set>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>${pageTitle}</title>
|
||||||
|
|
||||||
|
<!-- W2UI -->
|
||||||
|
<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>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- javascript warning tag -->
|
||||||
|
<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript>
|
||||||
|
<form:form commandName="reqInfo"
|
||||||
|
action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post"
|
||||||
|
target="_blank"
|
||||||
|
onSubmit="fncAuthorInsert(document.forms[0]); return false;">
|
||||||
|
|
||||||
|
<div id="grid" style="width: 100%; height: 250px;"></div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
$(function () {
|
||||||
|
$('#grid').w2grid({
|
||||||
|
name: 'grid',
|
||||||
|
header: 'List of Names',
|
||||||
|
columns: [
|
||||||
|
{ field: 'fname', text: '이름', size: '30%' },
|
||||||
|
{ field: 'lname', text: '성명', size: '30%' },
|
||||||
|
{ field: 'email', text: '이메일', size: '40%' },
|
||||||
|
{ field: 'sdate', text: '시작일자', size: '120px' }
|
||||||
|
],
|
||||||
|
records: [
|
||||||
|
{ 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: 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: 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' }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
146
src/main/webapp/WEB-INF/jsp/nlib/board/listNotices.jsp
Normal file
146
src/main/webapp/WEB-INF/jsp/nlib/board/listNotices.jsp
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : listNotices.jsp
|
||||||
|
*
|
||||||
|
* @Description : JS-GRID 샘플 화면
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 6. 15. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 6. 15.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
|
||||||
|
<c:set var="pageTitle">공지사항</c:set>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>${pageTitle}</title>
|
||||||
|
|
||||||
|
<!-- 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-theme.css" />
|
||||||
|
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<form:form commandName="reqInfo"
|
||||||
|
action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post"
|
||||||
|
target="_blank"
|
||||||
|
onSubmit="fncAuthorInsert(document.forms[0]); return false;">
|
||||||
|
|
||||||
|
<div id="jsGrid" name="jsGrid" ></div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
|
||||||
|
// 그리드 데이터
|
||||||
|
var clients = [
|
||||||
|
{ "noticeNo": 1, "noticeType": "01", "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": 4, "noticeType": "04", "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": 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": 9, "noticeType": "01", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }
|
||||||
|
];
|
||||||
|
|
||||||
|
// 그리드내 콤보박스 값
|
||||||
|
var noticeTypes = [
|
||||||
|
{ Name: "공지" , Id: "01" },
|
||||||
|
{ Name: "자료" , Id: "02" },
|
||||||
|
{ Name: "모집" , Id: "03" },
|
||||||
|
{ Name: "입찰" , Id: "04" },
|
||||||
|
{ Name: "발표" , Id: "05" },
|
||||||
|
{ Name: "이벤트", Id: "06" }
|
||||||
|
];
|
||||||
|
|
||||||
|
// 그리드 생성
|
||||||
|
$("#jsGrid").jsGrid({
|
||||||
|
width: "100%",
|
||||||
|
height: "100%",
|
||||||
|
|
||||||
|
inserting: false,
|
||||||
|
editing: false,
|
||||||
|
sorting: true,
|
||||||
|
paging: true,
|
||||||
|
pageSize: 10,
|
||||||
|
pageButtonCount: 10,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageFirstText: " << ",
|
||||||
|
pagePrevText: " < ",
|
||||||
|
pageLastText: " >> ",
|
||||||
|
pageNextText: " > ",
|
||||||
|
pagerFormat: "{first} {prev} {pages} {next} {last}",
|
||||||
|
|
||||||
|
data: clients,
|
||||||
|
|
||||||
|
fields: [
|
||||||
|
{ 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: "title", type: "text" , width: 200, align: "left" },
|
||||||
|
{ title:"조회수", name: "readCount", type: "number", width: 50, align: "center" },
|
||||||
|
{ title:"등록일", name: "regDate", type: "text", width: 100, align: "center"}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
196
src/main/webapp/WEB-INF/jsp/nlib/board/listQnAs.jsp
Normal file
196
src/main/webapp/WEB-INF/jsp/nlib/board/listQnAs.jsp
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : listQnAs.jsp
|
||||||
|
*
|
||||||
|
* @Description : 묻고답하기 목록을 조회한다.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 13. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 7. 13.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
|
||||||
|
<c:set var="pageTitle">묻고답하기</c:set>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>${pageTitle}</title>
|
||||||
|
|
||||||
|
<!-- 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-theme.css" />
|
||||||
|
<script src="/nlib/js/jsgrid/nlib-jsgrid.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body onload="fn_init()">
|
||||||
|
|
||||||
|
<h1>묻고답하기</h1>
|
||||||
|
|
||||||
|
<form name="articleForm"
|
||||||
|
action="${pageContext.request.contextPath}/board/listQnAs.do"
|
||||||
|
method="post"
|
||||||
|
onSubmit="fn_search_article(); return false;">
|
||||||
|
|
||||||
|
<!-- 검색조건 -->
|
||||||
|
<select name="pageRows" id="pageRows" title="목록에 보여줄 글 개수">
|
||||||
|
<option value="10">10개씩 보기</option>
|
||||||
|
<option value="50">50개씩 보기</option>
|
||||||
|
<option value="100">100개씩 보기</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<input type="text" name="pageNo" id="pageNo" title="페이지번호" value="1" size="5" maxlength="5" />
|
||||||
|
|
||||||
|
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="" size="35" maxlength="50" />
|
||||||
|
|
||||||
|
<input type="submit" name="btnSearch" id="btnSearch" value="검색" />
|
||||||
|
|
||||||
|
<input type="button" name="btnNew" id="btnNew" value="글쓰기"
|
||||||
|
onclick="javascript:location.href='${pageContext.request.contextPath}/board/insertQnAForm.do';" />
|
||||||
|
|
||||||
|
<div id="jsGrid" name="jsGrid" ></div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
// 그리드 데이터
|
||||||
|
var clients = [
|
||||||
|
{ "noticeNo": 1, "noticeType": "01", "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": 4, "noticeType": "04", "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": 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": 9, "noticeType": "01", "title": "공지사항 제목입니다.", "readCount": 7, "regDate": "2021-07-11" }
|
||||||
|
];
|
||||||
|
|
||||||
|
// 그리드내 콤보박스 값
|
||||||
|
var noticeTypes = [
|
||||||
|
{ Name: "공지" , Id: "01" },
|
||||||
|
{ Name: "자료" , Id: "02" },
|
||||||
|
{ Name: "모집" , Id: "03" },
|
||||||
|
{ Name: "입찰" , Id: "04" },
|
||||||
|
{ Name: "발표" , Id: "05" },
|
||||||
|
{ Name: "이벤트", Id: "06" }
|
||||||
|
];
|
||||||
|
|
||||||
|
// 그리드 생성
|
||||||
|
$("#jsGrid").jsGrid({
|
||||||
|
width: "100%",
|
||||||
|
height: "100%",
|
||||||
|
|
||||||
|
inserting: false,
|
||||||
|
editing: false,
|
||||||
|
sorting: true,
|
||||||
|
paging: true,
|
||||||
|
pageSize: 10,
|
||||||
|
pageButtonCount: 10,
|
||||||
|
pageIndex: 1,
|
||||||
|
pageFirstText: " << ",
|
||||||
|
pagePrevText: " < ",
|
||||||
|
pageLastText: " >> ",
|
||||||
|
pageNextText: " > ",
|
||||||
|
pagerFormat: "{first} {prev} {pages} {next} {last}",
|
||||||
|
|
||||||
|
|
||||||
|
/* 이하만 설정 */
|
||||||
|
data: clients,
|
||||||
|
|
||||||
|
fields: [
|
||||||
|
{ 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: "title", type: "text" , width: 200, align: "left" },
|
||||||
|
{ title:"조회수", name: "readCount", type: "number", width: 50, align: "center" },
|
||||||
|
{ title:"등록일", name: "regDate", type: "text", width: 100, align: "center"}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
function fn_search_article() {
|
||||||
|
var searchKeyword = document.articleForm.searchKeyword.value;
|
||||||
|
var pageNo = document.articleForm.pageNo.value;
|
||||||
|
var pageRows = document.articleForm.pageRows.value;
|
||||||
|
|
||||||
|
var inputData = {
|
||||||
|
"searchKeyword" : searchKeyword /*encodeURIComponent(searchKeyword)*/
|
||||||
|
, "pageNo" : pageNo
|
||||||
|
, "pageRows": pageRows};
|
||||||
|
|
||||||
|
//lert(JSON.stringify(inputData));
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url:"${pageContext.request.contextPath}/board/listQnAsAjax.do",
|
||||||
|
contentType: "application/json; charset=utf-8", /* */
|
||||||
|
type: "post",
|
||||||
|
data: JSON.stringify(inputData),
|
||||||
|
dataType:'json', /* Server Response Data Type */
|
||||||
|
success: function(returnData, status){
|
||||||
|
alert("returnData=" + JSON.stringify(returnData));
|
||||||
|
},
|
||||||
|
error: function(data){
|
||||||
|
alert("조회에 실패하였습니다.\n" + data.code + " : " + data.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function fn_init() {
|
||||||
|
fn_search_article();
|
||||||
|
document.articleForm.searchKeyword.focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
83
src/main/webapp/WEB-INF/jsp/nlib/board/selectQnA.jsp
Normal file
83
src/main/webapp/WEB-INF/jsp/nlib/board/selectQnA.jsp
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : getSampleInfo.jsp
|
||||||
|
*
|
||||||
|
* @Description : RESTful API 호출 샘플
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 6. 15. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 6. 15.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<c:set var="pageTitle">QRCode 회원정보</c:set>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>${pageTitle}</title>
|
||||||
|
|
||||||
|
<!-- W2UI -->
|
||||||
|
<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>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- javascript warning tag -->
|
||||||
|
<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript>
|
||||||
|
<form:form commandName="reqInfo"
|
||||||
|
action="${pageContext.request.contextPath}/sample/barcode/getMemberQRCode.do" method="post"
|
||||||
|
target="_blank"
|
||||||
|
onSubmit="fncAuthorInsert(document.forms[0]); return false;">
|
||||||
|
|
||||||
|
<div id="grid" style="width: 100%; height: 250px;"></div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
$(function () {
|
||||||
|
$('#grid').w2grid({
|
||||||
|
name: 'grid',
|
||||||
|
header: 'List of Names',
|
||||||
|
columns: [
|
||||||
|
{ field: 'fname', text: '이름', size: '30%' },
|
||||||
|
{ field: 'lname', text: '성명', size: '30%' },
|
||||||
|
{ field: 'email', text: '이메일', size: '40%' },
|
||||||
|
{ field: 'sdate', text: '시작일자', size: '120px' }
|
||||||
|
],
|
||||||
|
records: [
|
||||||
|
{ 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: 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: 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' }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
11
src/main/webapp/WEB-INF/jsp/nlib/cmm/common.jsp
Normal file
11
src/main/webapp/WEB-INF/jsp/nlib/cmm/common.jsp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
|
||||||
|
|
||||||
|
결과코드 : ${code}
|
||||||
|
<br />
|
||||||
|
메시지 : ${message}
|
||||||
|
|
||||||
@ -3,28 +3,29 @@
|
|||||||
<%@ 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}/info/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}/info/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}/bbs/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}/bbs/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}/bbs/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}/info/inform/selectInform.do';">찾아오시는길</a></li>
|
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/inform/selectInform.do';">찾아오시는길</a></li>
|
||||||
|
|
||||||
<!-- 자료검색 -->
|
<!-- 자료검색 -->
|
||||||
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/col/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}/user/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}/col/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}/col/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}/col/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}/col/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>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|||||||
@ -7,16 +7,40 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta charset="utf-8">
|
||||||
<link href="<c:url value='/css/nlib.css' />" rel="stylesheet" type="text/css">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<title>온라인 자료대출관리 (N-LIB)</title>
|
<meta name="viewport" content="width=device-width, initial-scale=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" />
|
||||||
|
<script src="${pageContext.request.contextPath}/js/jquery/jquery.min.js"></script>
|
||||||
|
<script src="${pageContext.request.contextPath}/js/nlib.js"></script>
|
||||||
|
|
||||||
|
<title>온라인 자료대출관리 (N-LIB)</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div id="page-container">
|
<div id="page-container">
|
||||||
<div id="header"><tiles:insertAttribute name="header" /></div>
|
<div id="header">
|
||||||
<div id="menu"><tiles:insertAttribute name="menu" /></div>
|
<!-- 머리말 : 시작 -->
|
||||||
<div id="content-wrap"><tiles:insertAttribute name="main" /></div>
|
<tiles:insertAttribute name="header" />
|
||||||
<div id="footer"><tiles:insertAttribute name="footer" /></div>
|
<!-- 머리말 : 종료 -->
|
||||||
|
</div>
|
||||||
|
<div id="menu">
|
||||||
|
<!-- 메뉴 : 시작 -->
|
||||||
|
<tiles:insertAttribute name="menu" />
|
||||||
|
<!-- 메뉴 : 종료 -->
|
||||||
|
</div>
|
||||||
|
<div id="content-wrap">
|
||||||
|
<!-- 메인 : 시작 -->
|
||||||
|
<tiles:insertAttribute name="main" />
|
||||||
|
<!-- 메인 : 종료 -->
|
||||||
|
</div>
|
||||||
|
<div id="footer">
|
||||||
|
<!-- 꼬리말 : 시작 -->
|
||||||
|
<tiles:insertAttribute name="footer" />
|
||||||
|
<!-- 꼬리말 : 종료 -->
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|||||||
@ -122,3 +122,4 @@ a {
|
|||||||
font: 16px "Noto Sans KR", sans-serif;
|
font: 16px "Noto Sans KR", sans-serif;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
394
src/main/webapp/js/fileupload/dropzone.css
Normal file
394
src/main/webapp/js/fileupload/dropzone.css
Normal file
@ -0,0 +1,394 @@
|
|||||||
|
@-webkit-keyframes passing-through {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30%, 70% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); }
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(-40px);
|
||||||
|
-moz-transform: translateY(-40px);
|
||||||
|
-ms-transform: translateY(-40px);
|
||||||
|
-o-transform: translateY(-40px);
|
||||||
|
transform: translateY(-40px); } }
|
||||||
|
@-moz-keyframes passing-through {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30%, 70% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); }
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(-40px);
|
||||||
|
-moz-transform: translateY(-40px);
|
||||||
|
-ms-transform: translateY(-40px);
|
||||||
|
-o-transform: translateY(-40px);
|
||||||
|
transform: translateY(-40px); } }
|
||||||
|
@keyframes passing-through {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30%, 70% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); }
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(-40px);
|
||||||
|
-moz-transform: translateY(-40px);
|
||||||
|
-ms-transform: translateY(-40px);
|
||||||
|
-o-transform: translateY(-40px);
|
||||||
|
transform: translateY(-40px); } }
|
||||||
|
@-webkit-keyframes slide-in {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); } }
|
||||||
|
@-moz-keyframes slide-in {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); } }
|
||||||
|
@keyframes slide-in {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); } }
|
||||||
|
@-webkit-keyframes pulse {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
10% {
|
||||||
|
-webkit-transform: scale(1.1);
|
||||||
|
-moz-transform: scale(1.1);
|
||||||
|
-ms-transform: scale(1.1);
|
||||||
|
-o-transform: scale(1.1);
|
||||||
|
transform: scale(1.1); }
|
||||||
|
20% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); } }
|
||||||
|
@-moz-keyframes pulse {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
10% {
|
||||||
|
-webkit-transform: scale(1.1);
|
||||||
|
-moz-transform: scale(1.1);
|
||||||
|
-ms-transform: scale(1.1);
|
||||||
|
-o-transform: scale(1.1);
|
||||||
|
transform: scale(1.1); }
|
||||||
|
20% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); } }
|
||||||
|
@keyframes pulse {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
10% {
|
||||||
|
-webkit-transform: scale(1.1);
|
||||||
|
-moz-transform: scale(1.1);
|
||||||
|
-ms-transform: scale(1.1);
|
||||||
|
-o-transform: scale(1.1);
|
||||||
|
transform: scale(1.1); }
|
||||||
|
20% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); } }
|
||||||
|
.dropzone, .dropzone * {
|
||||||
|
box-sizing: border-box; }
|
||||||
|
|
||||||
|
.dropzone {
|
||||||
|
min-height: 80px; /* NLIB */
|
||||||
|
border: 2px solid rgba(0, 0, 0, 0.3);
|
||||||
|
background: white;
|
||||||
|
padding: 0px 10px; /* NLIB */
|
||||||
|
}
|
||||||
|
.dropzone.dz-clickable {
|
||||||
|
cursor: pointer; }
|
||||||
|
.dropzone.dz-clickable * {
|
||||||
|
cursor: default; }
|
||||||
|
.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
|
||||||
|
cursor: pointer; }
|
||||||
|
.dropzone.dz-started .dz-message {
|
||||||
|
display: none; }
|
||||||
|
.dropzone.dz-drag-hover {
|
||||||
|
border-style: solid; }
|
||||||
|
.dropzone.dz-drag-hover .dz-message {
|
||||||
|
opacity: 0.5; }
|
||||||
|
.dropzone .dz-message {
|
||||||
|
text-align: center;
|
||||||
|
margin: 1em 0; }
|
||||||
|
.dropzone .dz-message .dz-button {
|
||||||
|
background: none;
|
||||||
|
color: inherit;
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
font: inherit;
|
||||||
|
cursor: pointer;
|
||||||
|
outline: inherit; }
|
||||||
|
.dropzone .dz-preview {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: top;
|
||||||
|
margin: 16px;
|
||||||
|
min-height: 60px; /* NLIB */
|
||||||
|
}
|
||||||
|
.dropzone .dz-preview:hover {
|
||||||
|
z-index: 1000; }
|
||||||
|
.dropzone .dz-preview:hover .dz-details {
|
||||||
|
opacity: 1; }
|
||||||
|
.dropzone .dz-preview.dz-file-preview .dz-image {
|
||||||
|
border-radius: 20px;
|
||||||
|
background: #999;
|
||||||
|
background: linear-gradient(to bottom, #eee, #ddd); }
|
||||||
|
.dropzone .dz-preview.dz-file-preview .dz-details {
|
||||||
|
opacity: 1; }
|
||||||
|
.dropzone .dz-preview.dz-image-preview {
|
||||||
|
background: white; }
|
||||||
|
.dropzone .dz-preview.dz-image-preview .dz-details {
|
||||||
|
-webkit-transition: opacity 0.2s linear;
|
||||||
|
-moz-transition: opacity 0.2s linear;
|
||||||
|
-ms-transition: opacity 0.2s linear;
|
||||||
|
-o-transition: opacity 0.2s linear;
|
||||||
|
transition: opacity 0.2s linear; }
|
||||||
|
.dropzone .dz-preview .dz-remove {
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
display: block;
|
||||||
|
cursor: pointer;
|
||||||
|
border: none; }
|
||||||
|
.dropzone .dz-preview .dz-remove:hover {
|
||||||
|
text-decoration: underline; }
|
||||||
|
.dropzone .dz-preview:hover .dz-details {
|
||||||
|
opacity: 1; }
|
||||||
|
.dropzone .dz-preview .dz-details {
|
||||||
|
z-index: 20;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
opacity: 0;
|
||||||
|
font-size: 13px;
|
||||||
|
min-width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
padding: 0em 1em; /* NLIB */
|
||||||
|
text-align: center;
|
||||||
|
color: rgba(0, 0, 0, 0.9);
|
||||||
|
line-height: 150%; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-size {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
font-size: 16px; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename {
|
||||||
|
white-space: nowrap; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename:hover span {
|
||||||
|
border: 1px solid rgba(200, 200, 200, 0.8);
|
||||||
|
background-color: rgba(255, 255, 255, 0.8); }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
|
||||||
|
border: 1px solid transparent; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
|
||||||
|
background-color: rgba(255, 255, 255, 0.4);
|
||||||
|
padding: 0 0.4em;
|
||||||
|
border-radius: 3px; }
|
||||||
|
.dropzone .dz-preview:hover .dz-image img {
|
||||||
|
-webkit-transform: scale(1.05, 1.05);
|
||||||
|
-moz-transform: scale(1.05, 1.05);
|
||||||
|
-ms-transform: scale(1.05, 1.05);
|
||||||
|
-o-transform: scale(1.05, 1.05);
|
||||||
|
transform: scale(1.05, 1.05);
|
||||||
|
-webkit-filter: blur(8px);
|
||||||
|
filter: blur(8px); }
|
||||||
|
.dropzone .dz-preview .dz-image {
|
||||||
|
border-radius: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 120px;
|
||||||
|
height: 60px; /* NLIB */
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
z-index: 10; }
|
||||||
|
.dropzone .dz-preview .dz-image img {
|
||||||
|
display: block; }
|
||||||
|
.dropzone .dz-preview.dz-success .dz-success-mark {
|
||||||
|
-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);
|
||||||
|
-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);
|
||||||
|
animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
||||||
|
.dropzone .dz-preview.dz-error .dz-error-mark {
|
||||||
|
opacity: 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);
|
||||||
|
-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);
|
||||||
|
animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
||||||
|
.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
|
||||||
|
pointer-events: none;
|
||||||
|
opacity: 0;
|
||||||
|
z-index: 500;
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -27px;
|
||||||
|
margin-top: -27px; }
|
||||||
|
.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
|
||||||
|
display: block;
|
||||||
|
width: 54px;
|
||||||
|
height: 54px; }
|
||||||
|
.dropzone .dz-preview.dz-processing .dz-progress {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transition: all 0.2s linear;
|
||||||
|
-moz-transition: all 0.2s linear;
|
||||||
|
-ms-transition: all 0.2s linear;
|
||||||
|
-o-transition: all 0.2s linear;
|
||||||
|
transition: all 0.2s linear; }
|
||||||
|
.dropzone .dz-preview.dz-complete .dz-progress {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transition: opacity 0.4s ease-in;
|
||||||
|
-moz-transition: opacity 0.4s ease-in;
|
||||||
|
-ms-transition: opacity 0.4s ease-in;
|
||||||
|
-o-transition: opacity 0.4s ease-in;
|
||||||
|
transition: opacity 0.4s ease-in; }
|
||||||
|
.dropzone .dz-preview:not(.dz-processing) .dz-progress {
|
||||||
|
-webkit-animation: pulse 6s ease infinite;
|
||||||
|
-moz-animation: pulse 6s ease infinite;
|
||||||
|
-ms-animation: pulse 6s ease infinite;
|
||||||
|
-o-animation: pulse 6s ease infinite;
|
||||||
|
animation: pulse 6s ease infinite; }
|
||||||
|
.dropzone .dz-preview .dz-progress {
|
||||||
|
opacity: 1;
|
||||||
|
z-index: 1000;
|
||||||
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
height: 16px;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -8px;
|
||||||
|
width: 80px;
|
||||||
|
margin-left: -40px;
|
||||||
|
background: rgba(255, 255, 255, 0.9);
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
border-radius: 8px;
|
||||||
|
overflow: hidden; }
|
||||||
|
.dropzone .dz-preview .dz-progress .dz-upload {
|
||||||
|
background: #333;
|
||||||
|
background: linear-gradient(to bottom, #666, #444);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 0;
|
||||||
|
-webkit-transition: width 300ms ease-in-out;
|
||||||
|
-moz-transition: width 300ms ease-in-out;
|
||||||
|
-ms-transition: width 300ms ease-in-out;
|
||||||
|
-o-transition: width 300ms ease-in-out;
|
||||||
|
transition: width 300ms ease-in-out; }
|
||||||
|
.dropzone .dz-preview.dz-error .dz-error-message {
|
||||||
|
display: block; }
|
||||||
|
.dropzone .dz-preview.dz-error:hover .dz-error-message {
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto; }
|
||||||
|
.dropzone .dz-preview .dz-error-message {
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: 1000;
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
display: none;
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transition: opacity 0.3s ease;
|
||||||
|
-moz-transition: opacity 0.3s ease;
|
||||||
|
-ms-transition: opacity 0.3s ease;
|
||||||
|
-o-transition: opacity 0.3s ease;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
border-radius: 8px;
|
||||||
|
font-size: 13px;
|
||||||
|
top: 130px;
|
||||||
|
left: -10px;
|
||||||
|
width: 140px;
|
||||||
|
background: #be2626;
|
||||||
|
background: linear-gradient(to bottom, #be2626, #a92222);
|
||||||
|
padding: 0.5em 1.2em;
|
||||||
|
color: white; }
|
||||||
|
.dropzone .dz-preview .dz-error-message:after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: -6px;
|
||||||
|
left: 64px;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid #be2626; }
|
||||||
1754
src/main/webapp/js/fileupload/dropzone.js
Normal file
1754
src/main/webapp/js/fileupload/dropzone.js
Normal file
File diff suppressed because it is too large
Load Diff
392
src/main/webapp/js/fileupload/org/dropzone.css
Normal file
392
src/main/webapp/js/fileupload/org/dropzone.css
Normal file
@ -0,0 +1,392 @@
|
|||||||
|
@-webkit-keyframes passing-through {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30%, 70% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); }
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(-40px);
|
||||||
|
-moz-transform: translateY(-40px);
|
||||||
|
-ms-transform: translateY(-40px);
|
||||||
|
-o-transform: translateY(-40px);
|
||||||
|
transform: translateY(-40px); } }
|
||||||
|
@-moz-keyframes passing-through {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30%, 70% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); }
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(-40px);
|
||||||
|
-moz-transform: translateY(-40px);
|
||||||
|
-ms-transform: translateY(-40px);
|
||||||
|
-o-transform: translateY(-40px);
|
||||||
|
transform: translateY(-40px); } }
|
||||||
|
@keyframes passing-through {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30%, 70% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); }
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(-40px);
|
||||||
|
-moz-transform: translateY(-40px);
|
||||||
|
-ms-transform: translateY(-40px);
|
||||||
|
-o-transform: translateY(-40px);
|
||||||
|
transform: translateY(-40px); } }
|
||||||
|
@-webkit-keyframes slide-in {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); } }
|
||||||
|
@-moz-keyframes slide-in {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); } }
|
||||||
|
@keyframes slide-in {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translateY(40px);
|
||||||
|
-moz-transform: translateY(40px);
|
||||||
|
-ms-transform: translateY(40px);
|
||||||
|
-o-transform: translateY(40px);
|
||||||
|
transform: translateY(40px); }
|
||||||
|
30% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translateY(0px);
|
||||||
|
-moz-transform: translateY(0px);
|
||||||
|
-ms-transform: translateY(0px);
|
||||||
|
-o-transform: translateY(0px);
|
||||||
|
transform: translateY(0px); } }
|
||||||
|
@-webkit-keyframes pulse {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
10% {
|
||||||
|
-webkit-transform: scale(1.1);
|
||||||
|
-moz-transform: scale(1.1);
|
||||||
|
-ms-transform: scale(1.1);
|
||||||
|
-o-transform: scale(1.1);
|
||||||
|
transform: scale(1.1); }
|
||||||
|
20% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); } }
|
||||||
|
@-moz-keyframes pulse {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
10% {
|
||||||
|
-webkit-transform: scale(1.1);
|
||||||
|
-moz-transform: scale(1.1);
|
||||||
|
-ms-transform: scale(1.1);
|
||||||
|
-o-transform: scale(1.1);
|
||||||
|
transform: scale(1.1); }
|
||||||
|
20% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); } }
|
||||||
|
@keyframes pulse {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
10% {
|
||||||
|
-webkit-transform: scale(1.1);
|
||||||
|
-moz-transform: scale(1.1);
|
||||||
|
-ms-transform: scale(1.1);
|
||||||
|
-o-transform: scale(1.1);
|
||||||
|
transform: scale(1.1); }
|
||||||
|
20% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
-moz-transform: scale(1);
|
||||||
|
-ms-transform: scale(1);
|
||||||
|
-o-transform: scale(1);
|
||||||
|
transform: scale(1); } }
|
||||||
|
.dropzone, .dropzone * {
|
||||||
|
box-sizing: border-box; }
|
||||||
|
|
||||||
|
.dropzone {
|
||||||
|
min-height: 150px;
|
||||||
|
border: 2px solid rgba(0, 0, 0, 0.3);
|
||||||
|
background: white;
|
||||||
|
padding: 54px 54px; }
|
||||||
|
.dropzone.dz-clickable {
|
||||||
|
cursor: pointer; }
|
||||||
|
.dropzone.dz-clickable * {
|
||||||
|
cursor: default; }
|
||||||
|
.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
|
||||||
|
cursor: pointer; }
|
||||||
|
.dropzone.dz-started .dz-message {
|
||||||
|
display: none; }
|
||||||
|
.dropzone.dz-drag-hover {
|
||||||
|
border-style: solid; }
|
||||||
|
.dropzone.dz-drag-hover .dz-message {
|
||||||
|
opacity: 0.5; }
|
||||||
|
.dropzone .dz-message {
|
||||||
|
text-align: center;
|
||||||
|
margin: 2em 0; }
|
||||||
|
.dropzone .dz-message .dz-button {
|
||||||
|
background: none;
|
||||||
|
color: inherit;
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
font: inherit;
|
||||||
|
cursor: pointer;
|
||||||
|
outline: inherit; }
|
||||||
|
.dropzone .dz-preview {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: top;
|
||||||
|
margin: 16px;
|
||||||
|
min-height: 100px; }
|
||||||
|
.dropzone .dz-preview:hover {
|
||||||
|
z-index: 1000; }
|
||||||
|
.dropzone .dz-preview:hover .dz-details {
|
||||||
|
opacity: 1; }
|
||||||
|
.dropzone .dz-preview.dz-file-preview .dz-image {
|
||||||
|
border-radius: 20px;
|
||||||
|
background: #999;
|
||||||
|
background: linear-gradient(to bottom, #eee, #ddd); }
|
||||||
|
.dropzone .dz-preview.dz-file-preview .dz-details {
|
||||||
|
opacity: 1; }
|
||||||
|
.dropzone .dz-preview.dz-image-preview {
|
||||||
|
background: white; }
|
||||||
|
.dropzone .dz-preview.dz-image-preview .dz-details {
|
||||||
|
-webkit-transition: opacity 0.2s linear;
|
||||||
|
-moz-transition: opacity 0.2s linear;
|
||||||
|
-ms-transition: opacity 0.2s linear;
|
||||||
|
-o-transition: opacity 0.2s linear;
|
||||||
|
transition: opacity 0.2s linear; }
|
||||||
|
.dropzone .dz-preview .dz-remove {
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
display: block;
|
||||||
|
cursor: pointer;
|
||||||
|
border: none; }
|
||||||
|
.dropzone .dz-preview .dz-remove:hover {
|
||||||
|
text-decoration: underline; }
|
||||||
|
.dropzone .dz-preview:hover .dz-details {
|
||||||
|
opacity: 1; }
|
||||||
|
.dropzone .dz-preview .dz-details {
|
||||||
|
z-index: 20;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
opacity: 0;
|
||||||
|
font-size: 13px;
|
||||||
|
min-width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
padding: 2em 1em;
|
||||||
|
text-align: center;
|
||||||
|
color: rgba(0, 0, 0, 0.9);
|
||||||
|
line-height: 150%; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-size {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
font-size: 16px; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename {
|
||||||
|
white-space: nowrap; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename:hover span {
|
||||||
|
border: 1px solid rgba(200, 200, 200, 0.8);
|
||||||
|
background-color: rgba(255, 255, 255, 0.8); }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
|
||||||
|
border: 1px solid transparent; }
|
||||||
|
.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
|
||||||
|
background-color: rgba(255, 255, 255, 0.4);
|
||||||
|
padding: 0 0.4em;
|
||||||
|
border-radius: 3px; }
|
||||||
|
.dropzone .dz-preview:hover .dz-image img {
|
||||||
|
-webkit-transform: scale(1.05, 1.05);
|
||||||
|
-moz-transform: scale(1.05, 1.05);
|
||||||
|
-ms-transform: scale(1.05, 1.05);
|
||||||
|
-o-transform: scale(1.05, 1.05);
|
||||||
|
transform: scale(1.05, 1.05);
|
||||||
|
-webkit-filter: blur(8px);
|
||||||
|
filter: blur(8px); }
|
||||||
|
.dropzone .dz-preview .dz-image {
|
||||||
|
border-radius: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
z-index: 10; }
|
||||||
|
.dropzone .dz-preview .dz-image img {
|
||||||
|
display: block; }
|
||||||
|
.dropzone .dz-preview.dz-success .dz-success-mark {
|
||||||
|
-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);
|
||||||
|
-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);
|
||||||
|
animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
||||||
|
.dropzone .dz-preview.dz-error .dz-error-mark {
|
||||||
|
opacity: 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);
|
||||||
|
-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);
|
||||||
|
animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
||||||
|
.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
|
||||||
|
pointer-events: none;
|
||||||
|
opacity: 0;
|
||||||
|
z-index: 500;
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -27px;
|
||||||
|
margin-top: -27px; }
|
||||||
|
.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
|
||||||
|
display: block;
|
||||||
|
width: 54px;
|
||||||
|
height: 54px; }
|
||||||
|
.dropzone .dz-preview.dz-processing .dz-progress {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transition: all 0.2s linear;
|
||||||
|
-moz-transition: all 0.2s linear;
|
||||||
|
-ms-transition: all 0.2s linear;
|
||||||
|
-o-transition: all 0.2s linear;
|
||||||
|
transition: all 0.2s linear; }
|
||||||
|
.dropzone .dz-preview.dz-complete .dz-progress {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transition: opacity 0.4s ease-in;
|
||||||
|
-moz-transition: opacity 0.4s ease-in;
|
||||||
|
-ms-transition: opacity 0.4s ease-in;
|
||||||
|
-o-transition: opacity 0.4s ease-in;
|
||||||
|
transition: opacity 0.4s ease-in; }
|
||||||
|
.dropzone .dz-preview:not(.dz-processing) .dz-progress {
|
||||||
|
-webkit-animation: pulse 6s ease infinite;
|
||||||
|
-moz-animation: pulse 6s ease infinite;
|
||||||
|
-ms-animation: pulse 6s ease infinite;
|
||||||
|
-o-animation: pulse 6s ease infinite;
|
||||||
|
animation: pulse 6s ease infinite; }
|
||||||
|
.dropzone .dz-preview .dz-progress {
|
||||||
|
opacity: 1;
|
||||||
|
z-index: 1000;
|
||||||
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
height: 16px;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -8px;
|
||||||
|
width: 80px;
|
||||||
|
margin-left: -40px;
|
||||||
|
background: rgba(255, 255, 255, 0.9);
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
border-radius: 8px;
|
||||||
|
overflow: hidden; }
|
||||||
|
.dropzone .dz-preview .dz-progress .dz-upload {
|
||||||
|
background: #333;
|
||||||
|
background: linear-gradient(to bottom, #666, #444);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 0;
|
||||||
|
-webkit-transition: width 300ms ease-in-out;
|
||||||
|
-moz-transition: width 300ms ease-in-out;
|
||||||
|
-ms-transition: width 300ms ease-in-out;
|
||||||
|
-o-transition: width 300ms ease-in-out;
|
||||||
|
transition: width 300ms ease-in-out; }
|
||||||
|
.dropzone .dz-preview.dz-error .dz-error-message {
|
||||||
|
display: block; }
|
||||||
|
.dropzone .dz-preview.dz-error:hover .dz-error-message {
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto; }
|
||||||
|
.dropzone .dz-preview .dz-error-message {
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: 1000;
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
display: none;
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transition: opacity 0.3s ease;
|
||||||
|
-moz-transition: opacity 0.3s ease;
|
||||||
|
-ms-transition: opacity 0.3s ease;
|
||||||
|
-o-transition: opacity 0.3s ease;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
border-radius: 8px;
|
||||||
|
font-size: 13px;
|
||||||
|
top: 130px;
|
||||||
|
left: -10px;
|
||||||
|
width: 140px;
|
||||||
|
background: #be2626;
|
||||||
|
background: linear-gradient(to bottom, #be2626, #a92222);
|
||||||
|
padding: 0.5em 1.2em;
|
||||||
|
color: white; }
|
||||||
|
.dropzone .dz-preview .dz-error-message:after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: -6px;
|
||||||
|
left: 64px;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid #be2626; }
|
||||||
1748
src/main/webapp/js/fileupload/org/dropzone.js
Normal file
1748
src/main/webapp/js/fileupload/org/dropzone.js
Normal file
File diff suppressed because it is too large
Load Diff
749
src/main/webapp/js/fileupload/org/style.css
Normal file
749
src/main/webapp/js/fileupload/org/style.css
Normal file
@ -0,0 +1,749 @@
|
|||||||
|
/**
|
||||||
|
* Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
|
||||||
|
* http://cssreset.com
|
||||||
|
*/
|
||||||
|
html, body, div, span, applet, object, iframe,
|
||||||
|
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||||
|
a, abbr, acronym, address, big, cite, code,
|
||||||
|
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||||
|
small, strike, strong, sub, sup, tt, var,
|
||||||
|
b, u, i, center,
|
||||||
|
dl, dt, dd, ol, ul, li,
|
||||||
|
fieldset, form, label, legend,
|
||||||
|
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||||
|
article, aside, canvas, details, embed,
|
||||||
|
figure, figcaption, footer, header, hgroup,
|
||||||
|
menu, nav, output, ruby, section, summary,
|
||||||
|
time, mark, audio, video {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline; }
|
||||||
|
|
||||||
|
/* HTML5 display-role reset for older browsers */
|
||||||
|
article, aside, details, figcaption, figure,
|
||||||
|
footer, header, hgroup, menu, nav, section {
|
||||||
|
display: block; }
|
||||||
|
|
||||||
|
body {
|
||||||
|
line-height: 1; }
|
||||||
|
|
||||||
|
ol, ul {
|
||||||
|
list-style: none; }
|
||||||
|
|
||||||
|
blockquote, q {
|
||||||
|
quotes: none; }
|
||||||
|
|
||||||
|
blockquote:before, blockquote:after,
|
||||||
|
q:before, q:after {
|
||||||
|
content: '';
|
||||||
|
content: none; }
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0; }
|
||||||
|
|
||||||
|
.hll {
|
||||||
|
background-color: #ffffcc; }
|
||||||
|
|
||||||
|
.c {
|
||||||
|
color: #408080;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Comment */
|
||||||
|
.err {
|
||||||
|
border: 1px solid #FF0000; }
|
||||||
|
|
||||||
|
/* Error */
|
||||||
|
.k {
|
||||||
|
color: #008000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword */
|
||||||
|
.o {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Operator */
|
||||||
|
.cm {
|
||||||
|
color: #9AA5AD;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Comment.Multiline */
|
||||||
|
.cp {
|
||||||
|
color: #BC7A00; }
|
||||||
|
|
||||||
|
/* Comment.Preproc */
|
||||||
|
.c1 {
|
||||||
|
color: #9AA5AD;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Comment.Single */
|
||||||
|
.cs {
|
||||||
|
color: #408080;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Comment.Special */
|
||||||
|
.gd {
|
||||||
|
color: #A00000; }
|
||||||
|
|
||||||
|
/* Generic.Deleted */
|
||||||
|
.ge {
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Generic.Emph */
|
||||||
|
.gr {
|
||||||
|
color: #FF0000; }
|
||||||
|
|
||||||
|
/* Generic.Error */
|
||||||
|
.gh {
|
||||||
|
color: #000080;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Generic.Heading */
|
||||||
|
.gi {
|
||||||
|
color: #00A000; }
|
||||||
|
|
||||||
|
/* Generic.Inserted */
|
||||||
|
.go {
|
||||||
|
color: #808080; }
|
||||||
|
|
||||||
|
/* Generic.Output */
|
||||||
|
.gp {
|
||||||
|
color: #000080;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Generic.Prompt */
|
||||||
|
.gs {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Generic.Strong */
|
||||||
|
.gu {
|
||||||
|
color: #800080;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Generic.Subheading */
|
||||||
|
.gt {
|
||||||
|
color: #0040D0; }
|
||||||
|
|
||||||
|
/* Generic.Traceback */
|
||||||
|
.kc {
|
||||||
|
color: #008000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword.Constant */
|
||||||
|
.kd {
|
||||||
|
color: #229EFF;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword.Declaration */
|
||||||
|
.kn {
|
||||||
|
color: #008000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword.Namespace */
|
||||||
|
.kp {
|
||||||
|
color: #008000; }
|
||||||
|
|
||||||
|
/* Keyword.Pseudo */
|
||||||
|
.kr {
|
||||||
|
color: #008000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword.Reserved */
|
||||||
|
.kt {
|
||||||
|
color: #B00040; }
|
||||||
|
|
||||||
|
/* Keyword.Type */
|
||||||
|
.m {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number */
|
||||||
|
.s {
|
||||||
|
color: #CB0C6A; }
|
||||||
|
|
||||||
|
/* Literal.String */
|
||||||
|
.na {
|
||||||
|
color: #C38D00; }
|
||||||
|
|
||||||
|
/* Name.Attribute */
|
||||||
|
.nb {
|
||||||
|
color: #008000; }
|
||||||
|
|
||||||
|
/* Name.Builtin */
|
||||||
|
.nc {
|
||||||
|
color: #0000FF;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Class */
|
||||||
|
.no {
|
||||||
|
color: #880000; }
|
||||||
|
|
||||||
|
/* Name.Constant */
|
||||||
|
.nd {
|
||||||
|
color: #AA22FF; }
|
||||||
|
|
||||||
|
/* Name.Decorator */
|
||||||
|
.ni {
|
||||||
|
color: #999999;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Entity */
|
||||||
|
.ne {
|
||||||
|
color: #D2413A;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Exception */
|
||||||
|
.nf {
|
||||||
|
color: #0000FF; }
|
||||||
|
|
||||||
|
/* Name.Function */
|
||||||
|
.nl {
|
||||||
|
color: #A0A000; }
|
||||||
|
|
||||||
|
/* Name.Label */
|
||||||
|
.nn {
|
||||||
|
color: #0000FF;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Namespace */
|
||||||
|
.nt {
|
||||||
|
color: #0081E5;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Tag */
|
||||||
|
.nv {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Name.Variable */
|
||||||
|
.ow {
|
||||||
|
color: #AA22FF;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Operator.Word */
|
||||||
|
.w {
|
||||||
|
color: #bbbbbb; }
|
||||||
|
|
||||||
|
/* Text.Whitespace */
|
||||||
|
.mf {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Float */
|
||||||
|
.mh {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Hex */
|
||||||
|
.mi {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Integer */
|
||||||
|
.mo {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Oct */
|
||||||
|
.sb {
|
||||||
|
color: #BA2121; }
|
||||||
|
|
||||||
|
/* Literal.String.Backtick */
|
||||||
|
.sc {
|
||||||
|
color: #BA2121; }
|
||||||
|
|
||||||
|
/* Literal.String.Char */
|
||||||
|
.sd {
|
||||||
|
color: #BA2121;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Literal.String.Doc */
|
||||||
|
.s2 {
|
||||||
|
color: #D50069; }
|
||||||
|
|
||||||
|
/* Literal.String.Double */
|
||||||
|
.se {
|
||||||
|
color: #BB6622;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Literal.String.Escape */
|
||||||
|
.sh {
|
||||||
|
color: #BA2121; }
|
||||||
|
|
||||||
|
/* Literal.String.Heredoc */
|
||||||
|
.si {
|
||||||
|
color: #BB6688;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Literal.String.Interpol */
|
||||||
|
.sx {
|
||||||
|
color: #008000; }
|
||||||
|
|
||||||
|
/* Literal.String.Other */
|
||||||
|
.sr {
|
||||||
|
color: #BB6688; }
|
||||||
|
|
||||||
|
/* Literal.String.Regex */
|
||||||
|
.s1 {
|
||||||
|
color: #BA2121; }
|
||||||
|
|
||||||
|
/* Literal.String.Single */
|
||||||
|
.ss {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Literal.String.Symbol */
|
||||||
|
.bp {
|
||||||
|
color: #008000; }
|
||||||
|
|
||||||
|
/* Name.Builtin.Pseudo */
|
||||||
|
.vc {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Name.Variable.Class */
|
||||||
|
.vg {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Name.Variable.Global */
|
||||||
|
.vi {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Name.Variable.Instance */
|
||||||
|
.il {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Integer.Long */
|
||||||
|
.nx {
|
||||||
|
color: #4C556B; }
|
||||||
|
|
||||||
|
#dropzone {
|
||||||
|
margin-bottom: 3rem; }
|
||||||
|
|
||||||
|
.dropzone {
|
||||||
|
border: 2px dashed #0087F7;
|
||||||
|
border-radius: 5px;
|
||||||
|
background: white; }
|
||||||
|
.dropzone .dz-message {
|
||||||
|
font-weight: 400; }
|
||||||
|
.dropzone .dz-message .note {
|
||||||
|
font-size: 0.8em;
|
||||||
|
font-weight: 200;
|
||||||
|
display: block;
|
||||||
|
margin-top: 1.4rem; }
|
||||||
|
|
||||||
|
*, *:before, *:after {
|
||||||
|
box-sizing: border-box; }
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
font-family: Roboto, "Open Sans", sans-serif;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 300;
|
||||||
|
line-height: 1.4rem;
|
||||||
|
background: #F3F4F5;
|
||||||
|
color: #646C7F;
|
||||||
|
text-rendering: optimizeLegibility; }
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
html, body {
|
||||||
|
font-size: 18px; } }
|
||||||
|
@media (max-width: 400px) {
|
||||||
|
html, body {
|
||||||
|
font-size: 16px; } }
|
||||||
|
|
||||||
|
h1, h2, h3, table th, table th .header {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
color: #0087F7;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
line-height: 2.2rem; }
|
||||||
|
|
||||||
|
h1, h2, h3 {
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 1.4rem; }
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.4rem; }
|
||||||
|
|
||||||
|
h1.anchor, h2.anchor {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
height: 1px;
|
||||||
|
overflow: hidden;
|
||||||
|
visibility: hidden; }
|
||||||
|
|
||||||
|
table th {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
color: #646C7F; }
|
||||||
|
|
||||||
|
ul, ol {
|
||||||
|
list-style-position: inside; }
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0087F7;
|
||||||
|
text-decoration: none; }
|
||||||
|
a:hover {
|
||||||
|
border-bottom: 2px solid #0087F7; }
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 1.4rem 0; }
|
||||||
|
|
||||||
|
strong {
|
||||||
|
font-weight: 400; }
|
||||||
|
|
||||||
|
em {
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: Inconsolata, monospace;
|
||||||
|
background: rgba(0, 135, 247, 0.04);
|
||||||
|
padding: 0.2em 0.4em; }
|
||||||
|
|
||||||
|
.highlight code, td:first-child code {
|
||||||
|
background: none;
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
aside {
|
||||||
|
font-size: 0.8em;
|
||||||
|
color: rgba(0, 0, 0, 0.4); }
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border: none;
|
||||||
|
background: none;
|
||||||
|
position: relative;
|
||||||
|
height: 2.8rem; }
|
||||||
|
hr:after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 1.4rem;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 1px;
|
||||||
|
background: rgba(0, 0, 0, 0.1); }
|
||||||
|
|
||||||
|
ul li {
|
||||||
|
list-style-type: disc;
|
||||||
|
padding-top: 0.7rem;
|
||||||
|
padding-bottom: 0.7rem;
|
||||||
|
border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
|
||||||
|
ul li:last-of-type {
|
||||||
|
border: none; }
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
padding: 1.4rem;
|
||||||
|
overflow: auto;
|
||||||
|
background: rgba(100, 108, 128, 0.04);
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 2.8rem; }
|
||||||
|
|
||||||
|
.bitcoin {
|
||||||
|
overflow: auto; }
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
color: #0087F7;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
line-height: 2rem;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 2.8rem; }
|
||||||
|
blockquote a {
|
||||||
|
border-bottom: 1px solid #0087F7; }
|
||||||
|
|
||||||
|
body > header {
|
||||||
|
position: relative;
|
||||||
|
padding: 2.8rem 1.4rem;
|
||||||
|
z-index: 10; }
|
||||||
|
body > header .content {
|
||||||
|
opacity: 1;
|
||||||
|
background: #F3F4F5;
|
||||||
|
z-index: 10; }
|
||||||
|
body > header .content > * {
|
||||||
|
max-width: 700px; }
|
||||||
|
body > header .content h1 {
|
||||||
|
margin-bottom: 2.8rem;
|
||||||
|
margin-top: 0; }
|
||||||
|
body > header .content h1 img {
|
||||||
|
max-width: 100%; }
|
||||||
|
body > header .content h1 span {
|
||||||
|
display: none; }
|
||||||
|
@media (min-width: 700px) {
|
||||||
|
body > header #social-buttons {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0.5em;
|
||||||
|
right: 0;
|
||||||
|
opacity: 0.5;
|
||||||
|
-webkit-transition: opacity 0.2s ease;
|
||||||
|
-moz-transition: opacity 0.2s ease;
|
||||||
|
-ms-transition: opacity 0.2s ease;
|
||||||
|
-o-transition: opacity 0.2s ease;
|
||||||
|
transition: opacity 0.2s ease; }
|
||||||
|
body > header #social-buttons:hover {
|
||||||
|
opacity: 1; } }
|
||||||
|
body > header #social-buttons .social-button {
|
||||||
|
display: inline-block; }
|
||||||
|
body > header #social-buttons .social-button.facebook-social-button .fb-like > span {
|
||||||
|
vertical-align: top !important;
|
||||||
|
top: 1px; }
|
||||||
|
body > header .scroll-invitation {
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 2.8rem; }
|
||||||
|
body > header .scroll-invitation a {
|
||||||
|
display: block;
|
||||||
|
width: 56px;
|
||||||
|
height: 56px;
|
||||||
|
background: url("../images/arrow.svg") no-repeat; }
|
||||||
|
body > header .scroll-invitation a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
border: none;
|
||||||
|
background-image: url("../images/arrow-hover.svg"); }
|
||||||
|
body > header .scroll-invitation a span {
|
||||||
|
display: none; }
|
||||||
|
@media (min-width: 700px) {
|
||||||
|
body > header {
|
||||||
|
height: 100vh;
|
||||||
|
margin-bottom: 0; }
|
||||||
|
body > header .content {
|
||||||
|
position: relative;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
-webkit-transform: translateY(-50%);
|
||||||
|
-moz-transform: translateY(-50%); } }
|
||||||
|
@media (min-width: 900px) {
|
||||||
|
body > header {
|
||||||
|
padding-left: 15%; }
|
||||||
|
body > header .content h1 {
|
||||||
|
margin-bottom: 4.2rem; }
|
||||||
|
body > header .content h1 img {
|
||||||
|
width: 550px; }
|
||||||
|
body > header .content h2 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 1.4em; } }
|
||||||
|
@media (min-width: 1100px) {
|
||||||
|
body > header {
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.5em; }
|
||||||
|
body > header .content h1 {
|
||||||
|
margin-bottom: 5.6rem; }
|
||||||
|
body > header .content h1 img {
|
||||||
|
width: 700px; }
|
||||||
|
body > header .content > * {
|
||||||
|
max-width: 900px; }
|
||||||
|
body > header h2 {
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 2.8rem; }
|
||||||
|
body > header .scroll-invitation {
|
||||||
|
margin-top: 5.6rem; } }
|
||||||
|
|
||||||
|
main > nav {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 220px;
|
||||||
|
background: #028AF4;
|
||||||
|
padding: 1.4rem 0;
|
||||||
|
z-index: 200;
|
||||||
|
overflow: auto;
|
||||||
|
display: none; }
|
||||||
|
main > nav.fixed {
|
||||||
|
position: fixed; }
|
||||||
|
main > nav img {
|
||||||
|
margin: 0 0 1.4rem 1.4rem;
|
||||||
|
width: 58px;
|
||||||
|
height: 58px; }
|
||||||
|
main > nav a:not(.logo) {
|
||||||
|
display: block;
|
||||||
|
line-height: 1.4rem;
|
||||||
|
color: rgba(255, 255, 255, 0.9);
|
||||||
|
border: none;
|
||||||
|
padding: 0.7rem 1.4rem;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
-webkit-font-smoothing: subpixel-antialiased; }
|
||||||
|
main > nav a:not(.logo):hover {
|
||||||
|
background: rgba(255, 255, 255, 0.3); }
|
||||||
|
main > nav .sub-sections {
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
-webkit-transition: height 0.4s ease;
|
||||||
|
-moz-transition: height 0.4s ease;
|
||||||
|
-ms-transition: height 0.4s ease;
|
||||||
|
-o-transition: height 0.4s ease;
|
||||||
|
transition: height 0.4s ease; }
|
||||||
|
main > nav .visible {
|
||||||
|
background: rgba(255, 255, 255, 0.13); }
|
||||||
|
main > nav .visible .sub-sections {
|
||||||
|
display: block; }
|
||||||
|
main > nav a.current {
|
||||||
|
background: #4DADF7; }
|
||||||
|
main > nav .level-0 > a {
|
||||||
|
font-weight: 400; }
|
||||||
|
main > nav .level-1 > a {
|
||||||
|
padding-left: 1.9rem;
|
||||||
|
color: rgba(255, 255, 255, 0.7); }
|
||||||
|
|
||||||
|
@media (min-width: 940px) {
|
||||||
|
main {
|
||||||
|
padding-left: 220px; }
|
||||||
|
main > nav {
|
||||||
|
display: block; } }
|
||||||
|
form.donate {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: bottom;
|
||||||
|
position: relative;
|
||||||
|
top: 0.25em;
|
||||||
|
margin: 0 0em 0 0.2em; }
|
||||||
|
|
||||||
|
main {
|
||||||
|
position: relative;
|
||||||
|
z-index: 100; }
|
||||||
|
main section {
|
||||||
|
padding: 1.4rem 1.4rem 2.8rem 1.4rem; }
|
||||||
|
main section:last-of-type {
|
||||||
|
padding-bottom: 8.4rem; }
|
||||||
|
main section h1, main section h2 {
|
||||||
|
margin-top: 0;
|
||||||
|
padding-top: 2.8rem; }
|
||||||
|
main section > * {
|
||||||
|
max-width: 720px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto; }
|
||||||
|
main section > *.highlight {
|
||||||
|
max-width: 900px; }
|
||||||
|
main section > table {
|
||||||
|
max-width: 80rem; }
|
||||||
|
main section .video-grid {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 1.5rem; }
|
||||||
|
main section .video-grid .video-grid__cell {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
flex: 1;
|
||||||
|
margin-left: 1.5rem; }
|
||||||
|
main section .video-grid .video-grid__cell:first-child {
|
||||||
|
margin-left: 0; }
|
||||||
|
main section .video-grid .video-grid__cell:after {
|
||||||
|
content: '';
|
||||||
|
padding-top: 56.25%;
|
||||||
|
display: block; }
|
||||||
|
main section .video-grid .video-grid__cell iframe {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%; }
|
||||||
|
main section .embedded-video {
|
||||||
|
position: relative;
|
||||||
|
width: 100%; }
|
||||||
|
main section .embedded-video:after {
|
||||||
|
content: '';
|
||||||
|
padding-top: 56.25%;
|
||||||
|
display: block; }
|
||||||
|
main section .embedded-video iframe {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%; }
|
||||||
|
main section:nth-child(odd) {
|
||||||
|
background: #F3F4F5; }
|
||||||
|
main section:nth-child(even) {
|
||||||
|
background: #E8E9EC; }
|
||||||
|
main section.news {
|
||||||
|
background: #646C7F;
|
||||||
|
color: white; }
|
||||||
|
main section.news h1, main section.news h2 {
|
||||||
|
color: white;
|
||||||
|
-webkit-font-smoothing: subpixel-antialiased; }
|
||||||
|
main section.news a {
|
||||||
|
color: #C0E3FE;
|
||||||
|
border-color: #C0E3FE; }
|
||||||
|
main .configuration-table-container {
|
||||||
|
max-width: 100%;
|
||||||
|
overflow-x: scroll; }
|
||||||
|
main table {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
margin-top: 1.4rem;
|
||||||
|
margin-bottom: 4.2rem;
|
||||||
|
border: 1px solid #38A0FE;
|
||||||
|
border-bottom: none;
|
||||||
|
background: white; }
|
||||||
|
main table th:first-of-type,
|
||||||
|
main table td:first-of-type {
|
||||||
|
text-align: right; }
|
||||||
|
main table th, main table td {
|
||||||
|
text-align: left;
|
||||||
|
border-bottom: 1px solid #38A0FE;
|
||||||
|
padding: 0.7rem 1.4rem; }
|
||||||
|
main table td:first-of-type, main table th:first-of-type {
|
||||||
|
border-right: 1px solid #38A0FE; }
|
||||||
|
main table a.default-value {
|
||||||
|
display: block;
|
||||||
|
font-weight: normal;
|
||||||
|
color: rgba(0, 88, 160, 0.3);
|
||||||
|
font-size: 0.9em; }
|
||||||
|
main table a.default-value:hover {
|
||||||
|
border: none;
|
||||||
|
color: #0087F7; }
|
||||||
|
main table td:first-of-type {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #0087F7; }
|
||||||
|
main table th.title {
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 2.8rem;
|
||||||
|
padding-bottom: 2.8rem; }
|
||||||
|
main table th.title p {
|
||||||
|
margin-bottom: 0; }
|
||||||
|
main table td.separator {
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: left;
|
||||||
|
color: #646C7F; }
|
||||||
|
main table p {
|
||||||
|
margin: 0; }
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
main table table, main table tbody, main table thead, main table tr, main table td, main table th {
|
||||||
|
display: block; }
|
||||||
|
main table a.default-value {
|
||||||
|
display: inline;
|
||||||
|
margin-left: 0.5em; }
|
||||||
|
main table td, main table th {
|
||||||
|
overflow: auto; }
|
||||||
|
main table td:first-of-type, main table th:first-of-type {
|
||||||
|
text-align: left;
|
||||||
|
border-right: none; }
|
||||||
|
main table td.label {
|
||||||
|
border-bottom-color: rgba(0, 135, 247, 0.15); }
|
||||||
|
main table th.title {
|
||||||
|
padding-top: 1.4rem;
|
||||||
|
padding-bottom: 1.4rem; }
|
||||||
|
main table th:not(.title) {
|
||||||
|
display: none; } }
|
||||||
|
|
||||||
|
footer {
|
||||||
|
background: #2D3038;
|
||||||
|
z-index: 5000;
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
padding: 1.4rem 1.4rem 2.8rem 1.4rem;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: white; }
|
||||||
|
footer * {
|
||||||
|
color: white; }
|
||||||
|
footer a:hover {
|
||||||
|
border-color: white; }
|
||||||
|
footer > * {
|
||||||
|
max-width: 720px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto; }
|
||||||
|
@media (min-width: 720px) {
|
||||||
|
footer .license {
|
||||||
|
text-align: justify; } }
|
||||||
|
footer .logo {
|
||||||
|
margin: 2.8rem 0;
|
||||||
|
width: 270px; }
|
||||||
|
|
||||||
|
.for-hire {
|
||||||
|
text-align: center;
|
||||||
|
padding: 1em 2em;
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 0.3rem;
|
||||||
|
line-height: 1.5em; }
|
||||||
|
.for-hire h1 {
|
||||||
|
padding: 0;
|
||||||
|
margin: 1.5rem 0 3rem; }
|
||||||
|
.for-hire h1 img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto; }
|
||||||
749
src/main/webapp/js/fileupload/style.css
Normal file
749
src/main/webapp/js/fileupload/style.css
Normal file
@ -0,0 +1,749 @@
|
|||||||
|
/**
|
||||||
|
* Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
|
||||||
|
* http://cssreset.com
|
||||||
|
*/
|
||||||
|
html, body, div, span, applet, object, iframe,
|
||||||
|
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||||
|
a, abbr, acronym, address, big, cite, code,
|
||||||
|
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||||
|
small, strike, strong, sub, sup, tt, var,
|
||||||
|
b, u, i, center,
|
||||||
|
dl, dt, dd, ol, ul, li,
|
||||||
|
fieldset, form, label, legend,
|
||||||
|
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||||
|
article, aside, canvas, details, embed,
|
||||||
|
figure, figcaption, footer, header, hgroup,
|
||||||
|
menu, nav, output, ruby, section, summary,
|
||||||
|
time, mark, audio, video {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline; }
|
||||||
|
|
||||||
|
/* HTML5 display-role reset for older browsers */
|
||||||
|
article, aside, details, figcaption, figure,
|
||||||
|
footer, header, hgroup, menu, nav, section {
|
||||||
|
display: block; }
|
||||||
|
|
||||||
|
body {
|
||||||
|
line-height: 1; }
|
||||||
|
|
||||||
|
ol, ul {
|
||||||
|
list-style: none; }
|
||||||
|
|
||||||
|
blockquote, q {
|
||||||
|
quotes: none; }
|
||||||
|
|
||||||
|
blockquote:before, blockquote:after,
|
||||||
|
q:before, q:after {
|
||||||
|
content: '';
|
||||||
|
content: none; }
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0; }
|
||||||
|
|
||||||
|
.hll {
|
||||||
|
background-color: #ffffcc; }
|
||||||
|
|
||||||
|
.c {
|
||||||
|
color: #408080;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Comment */
|
||||||
|
.err {
|
||||||
|
border: 1px solid #FF0000; }
|
||||||
|
|
||||||
|
/* Error */
|
||||||
|
.k {
|
||||||
|
color: #008000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword */
|
||||||
|
.o {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Operator */
|
||||||
|
.cm {
|
||||||
|
color: #9AA5AD;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Comment.Multiline */
|
||||||
|
.cp {
|
||||||
|
color: #BC7A00; }
|
||||||
|
|
||||||
|
/* Comment.Preproc */
|
||||||
|
.c1 {
|
||||||
|
color: #9AA5AD;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Comment.Single */
|
||||||
|
.cs {
|
||||||
|
color: #408080;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Comment.Special */
|
||||||
|
.gd {
|
||||||
|
color: #A00000; }
|
||||||
|
|
||||||
|
/* Generic.Deleted */
|
||||||
|
.ge {
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Generic.Emph */
|
||||||
|
.gr {
|
||||||
|
color: #FF0000; }
|
||||||
|
|
||||||
|
/* Generic.Error */
|
||||||
|
.gh {
|
||||||
|
color: #000080;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Generic.Heading */
|
||||||
|
.gi {
|
||||||
|
color: #00A000; }
|
||||||
|
|
||||||
|
/* Generic.Inserted */
|
||||||
|
.go {
|
||||||
|
color: #808080; }
|
||||||
|
|
||||||
|
/* Generic.Output */
|
||||||
|
.gp {
|
||||||
|
color: #000080;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Generic.Prompt */
|
||||||
|
.gs {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Generic.Strong */
|
||||||
|
.gu {
|
||||||
|
color: #800080;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Generic.Subheading */
|
||||||
|
.gt {
|
||||||
|
color: #0040D0; }
|
||||||
|
|
||||||
|
/* Generic.Traceback */
|
||||||
|
.kc {
|
||||||
|
color: #008000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword.Constant */
|
||||||
|
.kd {
|
||||||
|
color: #229EFF;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword.Declaration */
|
||||||
|
.kn {
|
||||||
|
color: #008000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword.Namespace */
|
||||||
|
.kp {
|
||||||
|
color: #008000; }
|
||||||
|
|
||||||
|
/* Keyword.Pseudo */
|
||||||
|
.kr {
|
||||||
|
color: #008000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Keyword.Reserved */
|
||||||
|
.kt {
|
||||||
|
color: #B00040; }
|
||||||
|
|
||||||
|
/* Keyword.Type */
|
||||||
|
.m {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number */
|
||||||
|
.s {
|
||||||
|
color: #CB0C6A; }
|
||||||
|
|
||||||
|
/* Literal.String */
|
||||||
|
.na {
|
||||||
|
color: #C38D00; }
|
||||||
|
|
||||||
|
/* Name.Attribute */
|
||||||
|
.nb {
|
||||||
|
color: #008000; }
|
||||||
|
|
||||||
|
/* Name.Builtin */
|
||||||
|
.nc {
|
||||||
|
color: #0000FF;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Class */
|
||||||
|
.no {
|
||||||
|
color: #880000; }
|
||||||
|
|
||||||
|
/* Name.Constant */
|
||||||
|
.nd {
|
||||||
|
color: #AA22FF; }
|
||||||
|
|
||||||
|
/* Name.Decorator */
|
||||||
|
.ni {
|
||||||
|
color: #999999;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Entity */
|
||||||
|
.ne {
|
||||||
|
color: #D2413A;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Exception */
|
||||||
|
.nf {
|
||||||
|
color: #0000FF; }
|
||||||
|
|
||||||
|
/* Name.Function */
|
||||||
|
.nl {
|
||||||
|
color: #A0A000; }
|
||||||
|
|
||||||
|
/* Name.Label */
|
||||||
|
.nn {
|
||||||
|
color: #0000FF;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Namespace */
|
||||||
|
.nt {
|
||||||
|
color: #0081E5;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name.Tag */
|
||||||
|
.nv {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Name.Variable */
|
||||||
|
.ow {
|
||||||
|
color: #AA22FF;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Operator.Word */
|
||||||
|
.w {
|
||||||
|
color: #bbbbbb; }
|
||||||
|
|
||||||
|
/* Text.Whitespace */
|
||||||
|
.mf {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Float */
|
||||||
|
.mh {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Hex */
|
||||||
|
.mi {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Integer */
|
||||||
|
.mo {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Oct */
|
||||||
|
.sb {
|
||||||
|
color: #BA2121; }
|
||||||
|
|
||||||
|
/* Literal.String.Backtick */
|
||||||
|
.sc {
|
||||||
|
color: #BA2121; }
|
||||||
|
|
||||||
|
/* Literal.String.Char */
|
||||||
|
.sd {
|
||||||
|
color: #BA2121;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Literal.String.Doc */
|
||||||
|
.s2 {
|
||||||
|
color: #D50069; }
|
||||||
|
|
||||||
|
/* Literal.String.Double */
|
||||||
|
.se {
|
||||||
|
color: #BB6622;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Literal.String.Escape */
|
||||||
|
.sh {
|
||||||
|
color: #BA2121; }
|
||||||
|
|
||||||
|
/* Literal.String.Heredoc */
|
||||||
|
.si {
|
||||||
|
color: #BB6688;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Literal.String.Interpol */
|
||||||
|
.sx {
|
||||||
|
color: #008000; }
|
||||||
|
|
||||||
|
/* Literal.String.Other */
|
||||||
|
.sr {
|
||||||
|
color: #BB6688; }
|
||||||
|
|
||||||
|
/* Literal.String.Regex */
|
||||||
|
.s1 {
|
||||||
|
color: #BA2121; }
|
||||||
|
|
||||||
|
/* Literal.String.Single */
|
||||||
|
.ss {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Literal.String.Symbol */
|
||||||
|
.bp {
|
||||||
|
color: #008000; }
|
||||||
|
|
||||||
|
/* Name.Builtin.Pseudo */
|
||||||
|
.vc {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Name.Variable.Class */
|
||||||
|
.vg {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Name.Variable.Global */
|
||||||
|
.vi {
|
||||||
|
color: #19177C; }
|
||||||
|
|
||||||
|
/* Name.Variable.Instance */
|
||||||
|
.il {
|
||||||
|
color: #666666; }
|
||||||
|
|
||||||
|
/* Literal.Number.Integer.Long */
|
||||||
|
.nx {
|
||||||
|
color: #4C556B; }
|
||||||
|
|
||||||
|
#dropzone {
|
||||||
|
margin-bottom: 3rem; }
|
||||||
|
|
||||||
|
.dropzone {
|
||||||
|
border: 2px dashed #0087F7;
|
||||||
|
border-radius: 5px;
|
||||||
|
background: white; }
|
||||||
|
.dropzone .dz-message {
|
||||||
|
font-weight: 400; }
|
||||||
|
.dropzone .dz-message .note {
|
||||||
|
font-size: 0.8em;
|
||||||
|
font-weight: 200;
|
||||||
|
display: block;
|
||||||
|
margin-top: 1.3rem; }
|
||||||
|
|
||||||
|
*, *:before, *:after {
|
||||||
|
box-sizing: border-box; }
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
font-family: Roboto, "Open Sans", sans-serif;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 300;
|
||||||
|
line-height: 1.4rem;
|
||||||
|
background: #F3F4F5;
|
||||||
|
color: #646C7F;
|
||||||
|
text-rendering: optimizeLegibility; }
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
html, body {
|
||||||
|
font-size: 18px; } }
|
||||||
|
@media (max-width: 400px) {
|
||||||
|
html, body {
|
||||||
|
font-size: 16px; } }
|
||||||
|
|
||||||
|
h1, h2, h3, table th, table th .header {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
color: #0087F7;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
line-height: 2.2rem; }
|
||||||
|
|
||||||
|
h1, h2, h3 {
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 1.4rem; }
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.4rem; }
|
||||||
|
|
||||||
|
h1.anchor, h2.anchor {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
height: 1px;
|
||||||
|
overflow: hidden;
|
||||||
|
visibility: hidden; }
|
||||||
|
|
||||||
|
table th {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
color: #646C7F; }
|
||||||
|
|
||||||
|
ul, ol {
|
||||||
|
list-style-position: inside; }
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0087F7;
|
||||||
|
text-decoration: none; }
|
||||||
|
a:hover {
|
||||||
|
border-bottom: 2px solid #0087F7; }
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 1.4rem 0; }
|
||||||
|
|
||||||
|
strong {
|
||||||
|
font-weight: 400; }
|
||||||
|
|
||||||
|
em {
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: Inconsolata, monospace;
|
||||||
|
background: rgba(0, 135, 247, 0.04);
|
||||||
|
padding: 0.2em 0.4em; }
|
||||||
|
|
||||||
|
.highlight code, td:first-child code {
|
||||||
|
background: none;
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
aside {
|
||||||
|
font-size: 0.8em;
|
||||||
|
color: rgba(0, 0, 0, 0.4); }
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border: none;
|
||||||
|
background: none;
|
||||||
|
position: relative;
|
||||||
|
height: 2.8rem; }
|
||||||
|
hr:after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 1.4rem;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 1px;
|
||||||
|
background: rgba(0, 0, 0, 0.1); }
|
||||||
|
|
||||||
|
ul li {
|
||||||
|
list-style-type: disc;
|
||||||
|
padding-top: 0.7rem;
|
||||||
|
padding-bottom: 0.7rem;
|
||||||
|
border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
|
||||||
|
ul li:last-of-type {
|
||||||
|
border: none; }
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
padding: 1.4rem;
|
||||||
|
overflow: auto;
|
||||||
|
background: rgba(100, 108, 128, 0.04);
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 2.8rem; }
|
||||||
|
|
||||||
|
.bitcoin {
|
||||||
|
overflow: auto; }
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
color: #0087F7;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
line-height: 2rem;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 2.8rem; }
|
||||||
|
blockquote a {
|
||||||
|
border-bottom: 1px solid #0087F7; }
|
||||||
|
|
||||||
|
body > header {
|
||||||
|
position: relative;
|
||||||
|
padding: 2.8rem 1.4rem;
|
||||||
|
z-index: 10; }
|
||||||
|
body > header .content {
|
||||||
|
opacity: 1;
|
||||||
|
background: #F3F4F5;
|
||||||
|
z-index: 10; }
|
||||||
|
body > header .content > * {
|
||||||
|
max-width: 700px; }
|
||||||
|
body > header .content h1 {
|
||||||
|
margin-bottom: 2.8rem;
|
||||||
|
margin-top: 0; }
|
||||||
|
body > header .content h1 img {
|
||||||
|
max-width: 100%; }
|
||||||
|
body > header .content h1 span {
|
||||||
|
display: none; }
|
||||||
|
@media (min-width: 700px) {
|
||||||
|
body > header #social-buttons {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0.5em;
|
||||||
|
right: 0;
|
||||||
|
opacity: 0.5;
|
||||||
|
-webkit-transition: opacity 0.2s ease;
|
||||||
|
-moz-transition: opacity 0.2s ease;
|
||||||
|
-ms-transition: opacity 0.2s ease;
|
||||||
|
-o-transition: opacity 0.2s ease;
|
||||||
|
transition: opacity 0.2s ease; }
|
||||||
|
body > header #social-buttons:hover {
|
||||||
|
opacity: 1; } }
|
||||||
|
body > header #social-buttons .social-button {
|
||||||
|
display: inline-block; }
|
||||||
|
body > header #social-buttons .social-button.facebook-social-button .fb-like > span {
|
||||||
|
vertical-align: top !important;
|
||||||
|
top: 1px; }
|
||||||
|
body > header .scroll-invitation {
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 2.8rem; }
|
||||||
|
body > header .scroll-invitation a {
|
||||||
|
display: block;
|
||||||
|
width: 56px;
|
||||||
|
height: 56px;
|
||||||
|
background: url("../images/arrow.svg") no-repeat; }
|
||||||
|
body > header .scroll-invitation a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
border: none;
|
||||||
|
background-image: url("../images/arrow-hover.svg"); }
|
||||||
|
body > header .scroll-invitation a span {
|
||||||
|
display: none; }
|
||||||
|
@media (min-width: 700px) {
|
||||||
|
body > header {
|
||||||
|
height: 100vh;
|
||||||
|
margin-bottom: 0; }
|
||||||
|
body > header .content {
|
||||||
|
position: relative;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
-webkit-transform: translateY(-50%);
|
||||||
|
-moz-transform: translateY(-50%); } }
|
||||||
|
@media (min-width: 900px) {
|
||||||
|
body > header {
|
||||||
|
padding-left: 15%; }
|
||||||
|
body > header .content h1 {
|
||||||
|
margin-bottom: 4.2rem; }
|
||||||
|
body > header .content h1 img {
|
||||||
|
width: 550px; }
|
||||||
|
body > header .content h2 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 1.4em; } }
|
||||||
|
@media (min-width: 1100px) {
|
||||||
|
body > header {
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.5em; }
|
||||||
|
body > header .content h1 {
|
||||||
|
margin-bottom: 5.6rem; }
|
||||||
|
body > header .content h1 img {
|
||||||
|
width: 700px; }
|
||||||
|
body > header .content > * {
|
||||||
|
max-width: 900px; }
|
||||||
|
body > header h2 {
|
||||||
|
margin-top: 2.8rem;
|
||||||
|
margin-bottom: 2.8rem; }
|
||||||
|
body > header .scroll-invitation {
|
||||||
|
margin-top: 5.6rem; } }
|
||||||
|
|
||||||
|
main > nav {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 220px;
|
||||||
|
background: #028AF4;
|
||||||
|
padding: 1.4rem 0;
|
||||||
|
z-index: 200;
|
||||||
|
overflow: auto;
|
||||||
|
display: none; }
|
||||||
|
main > nav.fixed {
|
||||||
|
position: fixed; }
|
||||||
|
main > nav img {
|
||||||
|
margin: 0 0 1.4rem 1.4rem;
|
||||||
|
width: 58px;
|
||||||
|
height: 58px; }
|
||||||
|
main > nav a:not(.logo) {
|
||||||
|
display: block;
|
||||||
|
line-height: 1.4rem;
|
||||||
|
color: rgba(255, 255, 255, 0.9);
|
||||||
|
border: none;
|
||||||
|
padding: 0.7rem 1.4rem;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
-webkit-font-smoothing: subpixel-antialiased; }
|
||||||
|
main > nav a:not(.logo):hover {
|
||||||
|
background: rgba(255, 255, 255, 0.3); }
|
||||||
|
main > nav .sub-sections {
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
-webkit-transition: height 0.4s ease;
|
||||||
|
-moz-transition: height 0.4s ease;
|
||||||
|
-ms-transition: height 0.4s ease;
|
||||||
|
-o-transition: height 0.4s ease;
|
||||||
|
transition: height 0.4s ease; }
|
||||||
|
main > nav .visible {
|
||||||
|
background: rgba(255, 255, 255, 0.13); }
|
||||||
|
main > nav .visible .sub-sections {
|
||||||
|
display: block; }
|
||||||
|
main > nav a.current {
|
||||||
|
background: #4DADF7; }
|
||||||
|
main > nav .level-0 > a {
|
||||||
|
font-weight: 400; }
|
||||||
|
main > nav .level-1 > a {
|
||||||
|
padding-left: 1.9rem;
|
||||||
|
color: rgba(255, 255, 255, 0.7); }
|
||||||
|
|
||||||
|
@media (min-width: 940px) {
|
||||||
|
main {
|
||||||
|
padding-left: 220px; }
|
||||||
|
main > nav {
|
||||||
|
display: block; } }
|
||||||
|
form.donate {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: bottom;
|
||||||
|
position: relative;
|
||||||
|
top: 0.25em;
|
||||||
|
margin: 0 0em 0 0.2em; }
|
||||||
|
|
||||||
|
main {
|
||||||
|
position: relative;
|
||||||
|
z-index: 100; }
|
||||||
|
main section {
|
||||||
|
padding: 1.4rem 1.4rem 2.8rem 1.4rem; }
|
||||||
|
main section:last-of-type {
|
||||||
|
padding-bottom: 8.4rem; }
|
||||||
|
main section h1, main section h2 {
|
||||||
|
margin-top: 0;
|
||||||
|
padding-top: 2.8rem; }
|
||||||
|
main section > * {
|
||||||
|
max-width: 720px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto; }
|
||||||
|
main section > *.highlight {
|
||||||
|
max-width: 900px; }
|
||||||
|
main section > table {
|
||||||
|
max-width: 80rem; }
|
||||||
|
main section .video-grid {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 1.5rem; }
|
||||||
|
main section .video-grid .video-grid__cell {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
flex: 1;
|
||||||
|
margin-left: 1.5rem; }
|
||||||
|
main section .video-grid .video-grid__cell:first-child {
|
||||||
|
margin-left: 0; }
|
||||||
|
main section .video-grid .video-grid__cell:after {
|
||||||
|
content: '';
|
||||||
|
padding-top: 56.25%;
|
||||||
|
display: block; }
|
||||||
|
main section .video-grid .video-grid__cell iframe {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%; }
|
||||||
|
main section .embedded-video {
|
||||||
|
position: relative;
|
||||||
|
width: 100%; }
|
||||||
|
main section .embedded-video:after {
|
||||||
|
content: '';
|
||||||
|
padding-top: 56.25%;
|
||||||
|
display: block; }
|
||||||
|
main section .embedded-video iframe {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%; }
|
||||||
|
main section:nth-child(odd) {
|
||||||
|
background: #F3F4F5; }
|
||||||
|
main section:nth-child(even) {
|
||||||
|
background: #E8E9EC; }
|
||||||
|
main section.news {
|
||||||
|
background: #646C7F;
|
||||||
|
color: white; }
|
||||||
|
main section.news h1, main section.news h2 {
|
||||||
|
color: white;
|
||||||
|
-webkit-font-smoothing: subpixel-antialiased; }
|
||||||
|
main section.news a {
|
||||||
|
color: #C0E3FE;
|
||||||
|
border-color: #C0E3FE; }
|
||||||
|
main .configuration-table-container {
|
||||||
|
max-width: 100%;
|
||||||
|
overflow-x: scroll; }
|
||||||
|
main table {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
margin-top: 1.4rem;
|
||||||
|
margin-bottom: 4.2rem;
|
||||||
|
border: 1px solid #38A0FE;
|
||||||
|
border-bottom: none;
|
||||||
|
background: white; }
|
||||||
|
main table th:first-of-type,
|
||||||
|
main table td:first-of-type {
|
||||||
|
text-align: right; }
|
||||||
|
main table th, main table td {
|
||||||
|
text-align: left;
|
||||||
|
border-bottom: 1px solid #38A0FE;
|
||||||
|
padding: 0.7rem 1.4rem; }
|
||||||
|
main table td:first-of-type, main table th:first-of-type {
|
||||||
|
border-right: 1px solid #38A0FE; }
|
||||||
|
main table a.default-value {
|
||||||
|
display: block;
|
||||||
|
font-weight: normal;
|
||||||
|
color: rgba(0, 88, 160, 0.3);
|
||||||
|
font-size: 0.9em; }
|
||||||
|
main table a.default-value:hover {
|
||||||
|
border: none;
|
||||||
|
color: #0087F7; }
|
||||||
|
main table td:first-of-type {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #0087F7; }
|
||||||
|
main table th.title {
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 2.8rem;
|
||||||
|
padding-bottom: 2.8rem; }
|
||||||
|
main table th.title p {
|
||||||
|
margin-bottom: 0; }
|
||||||
|
main table td.separator {
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: left;
|
||||||
|
color: #646C7F; }
|
||||||
|
main table p {
|
||||||
|
margin: 0; }
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
main table table, main table tbody, main table thead, main table tr, main table td, main table th {
|
||||||
|
display: block; }
|
||||||
|
main table a.default-value {
|
||||||
|
display: inline;
|
||||||
|
margin-left: 0.5em; }
|
||||||
|
main table td, main table th {
|
||||||
|
overflow: auto; }
|
||||||
|
main table td:first-of-type, main table th:first-of-type {
|
||||||
|
text-align: left;
|
||||||
|
border-right: none; }
|
||||||
|
main table td.label {
|
||||||
|
border-bottom-color: rgba(0, 135, 247, 0.15); }
|
||||||
|
main table th.title {
|
||||||
|
padding-top: 1.4rem;
|
||||||
|
padding-bottom: 1.4rem; }
|
||||||
|
main table th:not(.title) {
|
||||||
|
display: none; } }
|
||||||
|
|
||||||
|
footer {
|
||||||
|
background: #2D3038;
|
||||||
|
z-index: 5000;
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
padding: 1.4rem 1.4rem 2.8rem 1.4rem;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: white; }
|
||||||
|
footer * {
|
||||||
|
color: white; }
|
||||||
|
footer a:hover {
|
||||||
|
border-color: white; }
|
||||||
|
footer > * {
|
||||||
|
max-width: 720px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto; }
|
||||||
|
@media (min-width: 720px) {
|
||||||
|
footer .license {
|
||||||
|
text-align: justify; } }
|
||||||
|
footer .logo {
|
||||||
|
margin: 2.8rem 0;
|
||||||
|
width: 270px; }
|
||||||
|
|
||||||
|
.for-hire {
|
||||||
|
text-align: center;
|
||||||
|
padding: 1em 2em;
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 0.3rem;
|
||||||
|
line-height: 1.5em; }
|
||||||
|
.for-hire h1 {
|
||||||
|
padding: 0;
|
||||||
|
margin: 1.5rem 0 3rem; }
|
||||||
|
.for-hire h1 img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto; }
|
||||||
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_444444_256x240.png
Normal file
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_444444_256x240.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_555555_256x240.png
Normal file
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_555555_256x240.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_777620_256x240.png
Normal file
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_777620_256x240.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_777777_256x240.png
Normal file
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_777777_256x240.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_cc0000_256x240.png
Normal file
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_cc0000_256x240.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_ffffff_256x240.png
Normal file
BIN
src/main/webapp/js/jquery-ui/images/ui-icons_ffffff_256x240.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
1309
src/main/webapp/js/jquery-ui/jquery-ui.css
vendored
Normal file
1309
src/main/webapp/js/jquery-ui/jquery-ui.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
18626
src/main/webapp/js/jquery-ui/jquery-ui.js
vendored
Normal file
18626
src/main/webapp/js/jquery-ui/jquery-ui.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
src/main/webapp/js/jquery-ui/jquery-ui.min.css
vendored
Normal file
7
src/main/webapp/js/jquery-ui/jquery-ui.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
13
src/main/webapp/js/jquery-ui/jquery-ui.min.js
vendored
Normal file
13
src/main/webapp/js/jquery-ui/jquery-ui.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
886
src/main/webapp/js/jquery-ui/jquery-ui.structure.css
vendored
Normal file
886
src/main/webapp/js/jquery-ui/jquery-ui.structure.css
vendored
Normal file
@ -0,0 +1,886 @@
|
|||||||
|
/*!
|
||||||
|
* jQuery UI CSS Framework 1.12.0-rc.2
|
||||||
|
* http://jqueryui.com
|
||||||
|
*
|
||||||
|
* Copyright jQuery Foundation and other contributors
|
||||||
|
* Released under the MIT license.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://api.jqueryui.com/category/theming/
|
||||||
|
*/
|
||||||
|
/* Layout helpers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-helper-hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.ui-helper-hidden-accessible {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0 0 0 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
.ui-helper-reset {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
outline: 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 100%;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
.ui-helper-clearfix:before,
|
||||||
|
.ui-helper-clearfix:after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
.ui-helper-clearfix:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.ui-helper-zfix {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0;
|
||||||
|
filter:Alpha(Opacity=0); /* support: IE8 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-front {
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-disabled {
|
||||||
|
cursor: default !important;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-icon {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -.25em;
|
||||||
|
position: relative;
|
||||||
|
text-indent: -99999px;
|
||||||
|
overflow: hidden;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-widget-icon-block {
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -8px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.ui-accordion .ui-accordion-header {
|
||||||
|
display: block;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
margin: 2px 0 0 0;
|
||||||
|
padding: .5em .5em .5em .7em;
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
.ui-accordion .ui-accordion-content {
|
||||||
|
padding: 1em 2.2em;
|
||||||
|
border-top: 0;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.ui-autocomplete {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.ui-menu {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
display: block;
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item {
|
||||||
|
margin: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
/* support: IE10, see #8844 */
|
||||||
|
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item-wrapper {
|
||||||
|
position: relative;
|
||||||
|
padding: 3px 1em 3px .4em;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-divider {
|
||||||
|
margin: 5px 0;
|
||||||
|
height: 0;
|
||||||
|
font-size: 0;
|
||||||
|
line-height: 0;
|
||||||
|
border-width: 1px 0 0 0;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-state-focus,
|
||||||
|
.ui-menu .ui-state-active {
|
||||||
|
margin: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* icon support */
|
||||||
|
.ui-menu-icons {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.ui-menu-icons .ui-menu-item-wrapper {
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* left-aligned */
|
||||||
|
.ui-menu .ui-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: .2em;
|
||||||
|
margin: auto 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* right-aligned */
|
||||||
|
.ui-menu .ui-menu-icon {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
.ui-button {
|
||||||
|
padding: .4em 1em;
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
line-height: normal;
|
||||||
|
margin-right: .1em;
|
||||||
|
cursor: pointer;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
|
/* Support: IE <= 11 */
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-button,
|
||||||
|
.ui-button:link,
|
||||||
|
.ui-button:visited,
|
||||||
|
.ui-button:hover,
|
||||||
|
.ui-button:active {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* to make room for the icon, a width needs to be set here */
|
||||||
|
.ui-button-icon-only {
|
||||||
|
width: 2em;
|
||||||
|
box-sizing: border-box;
|
||||||
|
text-indent: -9999px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* no icon support for input elements */
|
||||||
|
input.ui-button.ui-button-icon-only {
|
||||||
|
text-indent: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* button icon element(s) */
|
||||||
|
.ui-button-icon-only .ui-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-top: -8px;
|
||||||
|
margin-left: -8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-button.ui-icon-notext .ui-icon {
|
||||||
|
padding: 0;
|
||||||
|
width: 2.1em;
|
||||||
|
height: 2.1em;
|
||||||
|
text-indent: -9999px;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
input.ui-button.ui-icon-notext .ui-icon {
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
text-indent: 0;
|
||||||
|
white-space: normal;
|
||||||
|
padding: .4em 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* workarounds */
|
||||||
|
/* Support: Firefox 5 - 40 */
|
||||||
|
input.ui-button::-moz-focus-inner,
|
||||||
|
button.ui-button::-moz-focus-inner {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.ui-controlgroup {
|
||||||
|
vertical-align: middle;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.ui-controlgroup > .ui-controlgroup-item {
|
||||||
|
float: left;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
.ui-controlgroup > .ui-controlgroup-item:focus,
|
||||||
|
.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
|
||||||
|
z-index: 9999;
|
||||||
|
}
|
||||||
|
.ui-controlgroup-vertical > .ui-controlgroup-item {
|
||||||
|
display: block;
|
||||||
|
float: none;
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.ui-controlgroup-vertical .ui-controlgroup-item {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.ui-controlgroup .ui-controlgroup-label {
|
||||||
|
padding: .4em 1em;
|
||||||
|
}
|
||||||
|
.ui-controlgroup .ui-controlgroup-label span {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Spinner specific style fixes */
|
||||||
|
.ui-controlgroup-vertical .ui-spinner-input {
|
||||||
|
|
||||||
|
/* Support: IE8 only, Android < 4.4 only */
|
||||||
|
width: 75%;
|
||||||
|
width: calc( 100% - 2.4em );
|
||||||
|
}
|
||||||
|
.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
|
||||||
|
border-top-style: solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-checkboxradio-label .ui-icon-background {
|
||||||
|
box-shadow: inset 1px 1px 1px #ccc;
|
||||||
|
border-radius: .12em;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.ui-checkboxradio-radio-label .ui-icon-background {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
border-radius: 1em;
|
||||||
|
overflow: visible;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
|
||||||
|
.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
|
||||||
|
background-image: none;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
border-width: 4px;
|
||||||
|
border-style: solid;
|
||||||
|
}
|
||||||
|
.ui-checkboxradio-disabled {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
.ui-datepicker {
|
||||||
|
width: 17em;
|
||||||
|
padding: .2em .2em 0;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-header {
|
||||||
|
position: relative;
|
||||||
|
padding: .2em 0;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-prev,
|
||||||
|
.ui-datepicker .ui-datepicker-next {
|
||||||
|
position: absolute;
|
||||||
|
top: 2px;
|
||||||
|
width: 1.8em;
|
||||||
|
height: 1.8em;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-prev-hover,
|
||||||
|
.ui-datepicker .ui-datepicker-next-hover {
|
||||||
|
top: 1px;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-prev {
|
||||||
|
left: 2px;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-next {
|
||||||
|
right: 2px;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-prev-hover {
|
||||||
|
left: 1px;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-next-hover {
|
||||||
|
right: 1px;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-prev span,
|
||||||
|
.ui-datepicker .ui-datepicker-next span {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -8px;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -8px;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-title {
|
||||||
|
margin: 0 2.3em;
|
||||||
|
line-height: 1.8em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-title select {
|
||||||
|
font-size: 1em;
|
||||||
|
margin: 1px 0;
|
||||||
|
}
|
||||||
|
.ui-datepicker select.ui-datepicker-month,
|
||||||
|
.ui-datepicker select.ui-datepicker-year {
|
||||||
|
width: 45%;
|
||||||
|
}
|
||||||
|
.ui-datepicker table {
|
||||||
|
width: 100%;
|
||||||
|
font-size: .9em;
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin: 0 0 .4em;
|
||||||
|
}
|
||||||
|
.ui-datepicker th {
|
||||||
|
padding: .7em .3em;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.ui-datepicker td {
|
||||||
|
border: 0;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
.ui-datepicker td span,
|
||||||
|
.ui-datepicker td a {
|
||||||
|
display: block;
|
||||||
|
padding: .2em;
|
||||||
|
text-align: right;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane {
|
||||||
|
background-image: none;
|
||||||
|
margin: .7em 0 0 0;
|
||||||
|
padding: 0 .2em;
|
||||||
|
border-left: 0;
|
||||||
|
border-right: 0;
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane button {
|
||||||
|
float: right;
|
||||||
|
margin: .5em .2em .4em;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: .2em .6em .3em .6em;
|
||||||
|
width: auto;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* with multiple calendars */
|
||||||
|
.ui-datepicker.ui-datepicker-multi {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group table {
|
||||||
|
width: 95%;
|
||||||
|
margin: 0 auto .4em;
|
||||||
|
}
|
||||||
|
.ui-datepicker-multi-2 .ui-datepicker-group {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.ui-datepicker-multi-3 .ui-datepicker-group {
|
||||||
|
width: 33.3%;
|
||||||
|
}
|
||||||
|
.ui-datepicker-multi-4 .ui-datepicker-group {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
||||||
|
border-left-width: 0;
|
||||||
|
}
|
||||||
|
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
||||||
|
clear: left;
|
||||||
|
}
|
||||||
|
.ui-datepicker-row-break {
|
||||||
|
clear: both;
|
||||||
|
width: 100%;
|
||||||
|
font-size: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* RTL support */
|
||||||
|
.ui-datepicker-rtl {
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-prev {
|
||||||
|
right: 2px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-next {
|
||||||
|
left: 2px;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
||||||
|
right: 1px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-next:hover {
|
||||||
|
left: 1px;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
||||||
|
clear: right;
|
||||||
|
}
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
||||||
|
border-right-width: 0;
|
||||||
|
border-left-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Icons */
|
||||||
|
.ui-datepicker .ui-icon {
|
||||||
|
display: block;
|
||||||
|
text-indent: -99999px;
|
||||||
|
overflow: hidden;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
left: .5em;
|
||||||
|
top: .3em;
|
||||||
|
}
|
||||||
|
.ui-dialog {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
padding: .2em;
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-dialog-titlebar {
|
||||||
|
padding: .4em 1em;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-dialog-title {
|
||||||
|
float: left;
|
||||||
|
margin: .1em 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 90%;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close {
|
||||||
|
position: absolute;
|
||||||
|
right: .3em;
|
||||||
|
top: 50%;
|
||||||
|
width: 20px;
|
||||||
|
margin: -10px 0 0 0;
|
||||||
|
padding: 1px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-dialog-content {
|
||||||
|
position: relative;
|
||||||
|
border: 0;
|
||||||
|
padding: .5em 1em;
|
||||||
|
background: none;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-dialog-buttonpane {
|
||||||
|
text-align: left;
|
||||||
|
border-width: 1px 0 0 0;
|
||||||
|
background-image: none;
|
||||||
|
margin-top: .5em;
|
||||||
|
padding: .3em 1em .5em .4em;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-dialog-buttonpane button {
|
||||||
|
margin: .5em .4em .5em 0;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-n {
|
||||||
|
height: 2px;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-e {
|
||||||
|
width: 2px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-s {
|
||||||
|
height: 2px;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-w {
|
||||||
|
width: 2px;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-se,
|
||||||
|
.ui-dialog .ui-resizable-sw,
|
||||||
|
.ui-dialog .ui-resizable-ne,
|
||||||
|
.ui-dialog .ui-resizable-nw {
|
||||||
|
width: 7px;
|
||||||
|
height: 7px;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-se {
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-sw {
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-ne {
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.ui-dialog .ui-resizable-nw {
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.ui-draggable .ui-dialog-titlebar {
|
||||||
|
cursor: move;
|
||||||
|
}
|
||||||
|
.ui-draggable-handle {
|
||||||
|
-ms-touch-action: none;
|
||||||
|
touch-action: none;
|
||||||
|
}
|
||||||
|
.ui-resizable {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.ui-resizable-handle {
|
||||||
|
position: absolute;
|
||||||
|
font-size: 0.1px;
|
||||||
|
display: block;
|
||||||
|
-ms-touch-action: none;
|
||||||
|
touch-action: none;
|
||||||
|
}
|
||||||
|
.ui-resizable-disabled .ui-resizable-handle,
|
||||||
|
.ui-resizable-autohide .ui-resizable-handle {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.ui-resizable-n {
|
||||||
|
cursor: n-resize;
|
||||||
|
height: 7px;
|
||||||
|
width: 100%;
|
||||||
|
top: -5px;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.ui-resizable-s {
|
||||||
|
cursor: s-resize;
|
||||||
|
height: 7px;
|
||||||
|
width: 100%;
|
||||||
|
bottom: -5px;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.ui-resizable-e {
|
||||||
|
cursor: e-resize;
|
||||||
|
width: 7px;
|
||||||
|
right: -5px;
|
||||||
|
top: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.ui-resizable-w {
|
||||||
|
cursor: w-resize;
|
||||||
|
width: 7px;
|
||||||
|
left: -5px;
|
||||||
|
top: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.ui-resizable-se {
|
||||||
|
cursor: se-resize;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
right: 1px;
|
||||||
|
bottom: 1px;
|
||||||
|
}
|
||||||
|
.ui-resizable-sw {
|
||||||
|
cursor: sw-resize;
|
||||||
|
width: 9px;
|
||||||
|
height: 9px;
|
||||||
|
left: -5px;
|
||||||
|
bottom: -5px;
|
||||||
|
}
|
||||||
|
.ui-resizable-nw {
|
||||||
|
cursor: nw-resize;
|
||||||
|
width: 9px;
|
||||||
|
height: 9px;
|
||||||
|
left: -5px;
|
||||||
|
top: -5px;
|
||||||
|
}
|
||||||
|
.ui-resizable-ne {
|
||||||
|
cursor: ne-resize;
|
||||||
|
width: 9px;
|
||||||
|
height: 9px;
|
||||||
|
right: -5px;
|
||||||
|
top: -5px;
|
||||||
|
}
|
||||||
|
.ui-progressbar {
|
||||||
|
height: 2em;
|
||||||
|
text-align: left;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.ui-progressbar .ui-progressbar-value {
|
||||||
|
margin: -1px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.ui-progressbar .ui-progressbar-overlay {
|
||||||
|
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
|
||||||
|
height: 100%;
|
||||||
|
filter: alpha(opacity=25); /* support: IE8 */
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
.ui-progressbar-indeterminate .ui-progressbar-value {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.ui-selectable {
|
||||||
|
-ms-touch-action: none;
|
||||||
|
touch-action: none;
|
||||||
|
}
|
||||||
|
.ui-selectable-helper {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 100;
|
||||||
|
border: 1px dotted black;
|
||||||
|
}
|
||||||
|
.ui-selectmenu-menu {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.ui-selectmenu-menu .ui-menu {
|
||||||
|
overflow: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 2px 0.4em;
|
||||||
|
margin: 0.5em 0 0 0;
|
||||||
|
height: auto;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.ui-selectmenu-open {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.ui-selectmenu-text {
|
||||||
|
display: block;
|
||||||
|
margin-right: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.ui-selectmenu-button.ui-button {
|
||||||
|
text-align: left;
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 14em;
|
||||||
|
}
|
||||||
|
.ui-selectmenu-icon.ui-icon {
|
||||||
|
float: right;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.ui-slider {
|
||||||
|
position: relative;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.ui-slider .ui-slider-handle {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
width: 1.2em;
|
||||||
|
height: 1.2em;
|
||||||
|
cursor: default;
|
||||||
|
-ms-touch-action: none;
|
||||||
|
touch-action: none;
|
||||||
|
}
|
||||||
|
.ui-slider .ui-slider-range {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
font-size: .7em;
|
||||||
|
display: block;
|
||||||
|
border: 0;
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* support: IE8 - See #6727 */
|
||||||
|
.ui-slider.ui-state-disabled .ui-slider-handle,
|
||||||
|
.ui-slider.ui-state-disabled .ui-slider-range {
|
||||||
|
filter: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-slider-horizontal {
|
||||||
|
height: .8em;
|
||||||
|
}
|
||||||
|
.ui-slider-horizontal .ui-slider-handle {
|
||||||
|
top: -.3em;
|
||||||
|
margin-left: -.6em;
|
||||||
|
}
|
||||||
|
.ui-slider-horizontal .ui-slider-range {
|
||||||
|
top: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.ui-slider-horizontal .ui-slider-range-min {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.ui-slider-horizontal .ui-slider-range-max {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-slider-vertical {
|
||||||
|
width: .8em;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
.ui-slider-vertical .ui-slider-handle {
|
||||||
|
left: -.3em;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-bottom: -.6em;
|
||||||
|
}
|
||||||
|
.ui-slider-vertical .ui-slider-range {
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.ui-slider-vertical .ui-slider-range-min {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.ui-slider-vertical .ui-slider-range-max {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.ui-sortable-handle {
|
||||||
|
-ms-touch-action: none;
|
||||||
|
touch-action: none;
|
||||||
|
}
|
||||||
|
.ui-spinner {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.ui-spinner-input {
|
||||||
|
border: none;
|
||||||
|
background: none;
|
||||||
|
color: inherit;
|
||||||
|
padding: .222em 0;
|
||||||
|
margin: .2em 0;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: .4em;
|
||||||
|
margin-right: 2em;
|
||||||
|
}
|
||||||
|
.ui-spinner-button {
|
||||||
|
width: 1.6em;
|
||||||
|
height: 50%;
|
||||||
|
font-size: .5em;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
text-align: center;
|
||||||
|
position: absolute;
|
||||||
|
cursor: default;
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
/* more specificity required here to override default borders */
|
||||||
|
.ui-spinner a.ui-spinner-button {
|
||||||
|
border-top-style: none;
|
||||||
|
border-bottom-style: none;
|
||||||
|
border-right-style: none;
|
||||||
|
}
|
||||||
|
.ui-spinner-up {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.ui-spinner-down {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.ui-tabs {
|
||||||
|
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||||
|
padding: .2em;
|
||||||
|
}
|
||||||
|
.ui-tabs .ui-tabs-nav {
|
||||||
|
margin: 0;
|
||||||
|
padding: .2em .2em 0;
|
||||||
|
}
|
||||||
|
.ui-tabs .ui-tabs-nav li {
|
||||||
|
list-style: none;
|
||||||
|
float: left;
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
margin: 1px .2em 0 0;
|
||||||
|
border-bottom-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
||||||
|
float: left;
|
||||||
|
padding: .5em 1em;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
||||||
|
margin-bottom: -1px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
|
||||||
|
cursor: text;
|
||||||
|
}
|
||||||
|
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.ui-tabs .ui-tabs-panel {
|
||||||
|
display: block;
|
||||||
|
border-width: 0;
|
||||||
|
padding: 1em 1.4em;
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
.ui-tooltip {
|
||||||
|
padding: 8px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
max-width: 300px;
|
||||||
|
}
|
||||||
|
body .ui-tooltip {
|
||||||
|
border-width: 2px;
|
||||||
|
}
|
||||||
5
src/main/webapp/js/jquery-ui/jquery-ui.structure.min.css
vendored
Normal file
5
src/main/webapp/js/jquery-ui/jquery-ui.structure.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
440
src/main/webapp/js/jquery-ui/jquery-ui.theme.css
vendored
Normal file
440
src/main/webapp/js/jquery-ui/jquery-ui.theme.css
vendored
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
/*!
|
||||||
|
* jQuery UI CSS Framework 1.12.0-rc.2
|
||||||
|
* http://jqueryui.com
|
||||||
|
*
|
||||||
|
* Copyright jQuery Foundation and other contributors
|
||||||
|
* Released under the MIT license.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://api.jqueryui.com/category/theming/
|
||||||
|
*
|
||||||
|
* To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Component containers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-widget {
|
||||||
|
font-family: Arial,Helvetica,sans-serif;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
.ui-widget .ui-widget {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
.ui-widget input,
|
||||||
|
.ui-widget select,
|
||||||
|
.ui-widget textarea,
|
||||||
|
.ui-widget button {
|
||||||
|
font-family: Arial,Helvetica,sans-serif;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
.ui-widget.ui-widget-content {
|
||||||
|
border: 1px solid #c5c5c5;
|
||||||
|
}
|
||||||
|
.ui-widget-content {
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
background: #ffffff;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.ui-widget-content a {
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.ui-widget-header {
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
background: #e9e9e9;
|
||||||
|
color: #333333;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.ui-widget-header a {
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Interaction states
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-default,
|
||||||
|
.ui-widget-content .ui-state-default,
|
||||||
|
.ui-widget-header .ui-state-default,
|
||||||
|
.ui-button,
|
||||||
|
|
||||||
|
/* We use html here because we need a greater specificity to make sure disabled
|
||||||
|
works properly when clicked or hovered */
|
||||||
|
html .ui-button.ui-state-disabled:hover,
|
||||||
|
html .ui-button.ui-state-disabled:active {
|
||||||
|
border: 1px solid #c5c5c5;
|
||||||
|
background: #f6f6f6;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #454545;
|
||||||
|
}
|
||||||
|
.ui-state-default a,
|
||||||
|
.ui-state-default a:link,
|
||||||
|
.ui-state-default a:visited,
|
||||||
|
a.ui-button,
|
||||||
|
a:link.ui-button,
|
||||||
|
a:visited.ui-button,
|
||||||
|
.ui-button {
|
||||||
|
color: #454545;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.ui-state-hover,
|
||||||
|
.ui-widget-content .ui-state-hover,
|
||||||
|
.ui-widget-header .ui-state-hover,
|
||||||
|
.ui-state-focus,
|
||||||
|
.ui-widget-content .ui-state-focus,
|
||||||
|
.ui-widget-header .ui-state-focus,
|
||||||
|
.ui-button:hover,
|
||||||
|
.ui-button:focus {
|
||||||
|
border: 1px solid #cccccc;
|
||||||
|
background: #ededed;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #2b2b2b;
|
||||||
|
}
|
||||||
|
.ui-state-hover a,
|
||||||
|
.ui-state-hover a:hover,
|
||||||
|
.ui-state-hover a:link,
|
||||||
|
.ui-state-hover a:visited,
|
||||||
|
.ui-state-focus a,
|
||||||
|
.ui-state-focus a:hover,
|
||||||
|
.ui-state-focus a:link,
|
||||||
|
.ui-state-focus a:visited,
|
||||||
|
a.ui-button:hover,
|
||||||
|
a.ui-button:focus {
|
||||||
|
color: #2b2b2b;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-visual-focus {
|
||||||
|
box-shadow: 0 0 3px 1px rgb(94, 158, 214);
|
||||||
|
}
|
||||||
|
.ui-state-active,
|
||||||
|
.ui-widget-content .ui-state-active,
|
||||||
|
.ui-widget-header .ui-state-active,
|
||||||
|
a.ui-button:active,
|
||||||
|
.ui-button:active,
|
||||||
|
.ui-button.ui-state-active:hover {
|
||||||
|
border: 1px solid #003eff;
|
||||||
|
background: #007fff;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
.ui-icon-background,
|
||||||
|
.ui-state-active .ui-icon-background {
|
||||||
|
border: #003eff;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
.ui-state-active a,
|
||||||
|
.ui-state-active a:link,
|
||||||
|
.ui-state-active a:visited {
|
||||||
|
color: #ffffff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-highlight,
|
||||||
|
.ui-widget-content .ui-state-highlight,
|
||||||
|
.ui-widget-header .ui-state-highlight {
|
||||||
|
border: 1px solid #dad55e;
|
||||||
|
background: #fffa90;
|
||||||
|
color: #777620;
|
||||||
|
}
|
||||||
|
.ui-state-highlight a,
|
||||||
|
.ui-widget-content .ui-state-highlight a,
|
||||||
|
.ui-widget-header .ui-state-highlight a {
|
||||||
|
color: #777620;
|
||||||
|
}
|
||||||
|
.ui-state-error,
|
||||||
|
.ui-widget-content .ui-state-error,
|
||||||
|
.ui-widget-header .ui-state-error {
|
||||||
|
border: 1px solid #f1a899;
|
||||||
|
background: #fddfdf;
|
||||||
|
color: #5f3f3f;
|
||||||
|
}
|
||||||
|
.ui-state-error a,
|
||||||
|
.ui-widget-content .ui-state-error a,
|
||||||
|
.ui-widget-header .ui-state-error a {
|
||||||
|
color: #5f3f3f;
|
||||||
|
}
|
||||||
|
.ui-state-error-text,
|
||||||
|
.ui-widget-content .ui-state-error-text,
|
||||||
|
.ui-widget-header .ui-state-error-text {
|
||||||
|
color: #5f3f3f;
|
||||||
|
}
|
||||||
|
.ui-priority-primary,
|
||||||
|
.ui-widget-content .ui-priority-primary,
|
||||||
|
.ui-widget-header .ui-priority-primary {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.ui-priority-secondary,
|
||||||
|
.ui-widget-content .ui-priority-secondary,
|
||||||
|
.ui-widget-header .ui-priority-secondary {
|
||||||
|
opacity: .7;
|
||||||
|
filter:Alpha(Opacity=70); /* support: IE8 */
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
.ui-state-disabled,
|
||||||
|
.ui-widget-content .ui-state-disabled,
|
||||||
|
.ui-widget-header .ui-state-disabled {
|
||||||
|
opacity: .35;
|
||||||
|
filter:Alpha(Opacity=35); /* support: IE8 */
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.ui-state-disabled .ui-icon {
|
||||||
|
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.ui-icon,
|
||||||
|
.ui-widget-content .ui-icon {
|
||||||
|
background-image: url("images/ui-icons_444444_256x240.png");
|
||||||
|
}
|
||||||
|
.ui-widget-header .ui-icon {
|
||||||
|
background-image: url("images/ui-icons_444444_256x240.png");
|
||||||
|
}
|
||||||
|
.ui-button .ui-icon {
|
||||||
|
background-image: url("images/ui-icons_777777_256x240.png");
|
||||||
|
}
|
||||||
|
.ui-state-hover .ui-icon,
|
||||||
|
.ui-state-focus .ui-icon,
|
||||||
|
.ui-button:hover .ui-icon,
|
||||||
|
.ui-button:focus .ui-icon,
|
||||||
|
.ui-state-default .ui-icon {
|
||||||
|
background-image: url("images/ui-icons_555555_256x240.png");
|
||||||
|
}
|
||||||
|
.ui-state-active .ui-icon,
|
||||||
|
.ui-button:active .ui-icon {
|
||||||
|
background-image: url("images/ui-icons_ffffff_256x240.png");
|
||||||
|
}
|
||||||
|
.ui-state-highlight .ui-icon,
|
||||||
|
.ui-button .ui-state-highlight.ui-icon {
|
||||||
|
background-image: url("images/ui-icons_777620_256x240.png");
|
||||||
|
}
|
||||||
|
.ui-state-error .ui-icon,
|
||||||
|
.ui-state-error-text .ui-icon {
|
||||||
|
background-image: url("images/ui-icons_cc0000_256x240.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* positioning */
|
||||||
|
.ui-icon-blank { background-position: 16px 16px; }
|
||||||
|
.ui-icon-caret-1-n { background-position: 0 0; }
|
||||||
|
.ui-icon-caret-1-ne { background-position: -16px 0; }
|
||||||
|
.ui-icon-caret-1-e { background-position: -32px 0; }
|
||||||
|
.ui-icon-caret-1-se { background-position: -48px 0; }
|
||||||
|
.ui-icon-caret-1-s { background-position: -65px 0; }
|
||||||
|
.ui-icon-caret-1-sw { background-position: -80px 0; }
|
||||||
|
.ui-icon-caret-1-w { background-position: -96px 0; }
|
||||||
|
.ui-icon-caret-1-nw { background-position: -112px 0; }
|
||||||
|
.ui-icon-caret-2-n-s { background-position: -128px 0; }
|
||||||
|
.ui-icon-caret-2-e-w { background-position: -144px 0; }
|
||||||
|
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||||
|
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||||
|
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||||
|
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||||
|
.ui-icon-triangle-1-s { background-position: -65px -16px; }
|
||||||
|
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||||
|
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||||
|
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||||
|
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||||
|
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||||
|
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||||
|
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||||
|
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||||
|
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||||
|
.ui-icon-arrow-1-s { background-position: -65px -32px; }
|
||||||
|
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||||
|
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||||
|
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||||
|
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||||
|
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||||
|
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||||
|
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||||
|
.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||||
|
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||||
|
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||||
|
.ui-icon-extlink { background-position: -32px -80px; }
|
||||||
|
.ui-icon-newwin { background-position: -48px -80px; }
|
||||||
|
.ui-icon-refresh { background-position: -64px -80px; }
|
||||||
|
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||||
|
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||||
|
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||||
|
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||||
|
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||||
|
.ui-icon-document { background-position: -32px -96px; }
|
||||||
|
.ui-icon-document-b { background-position: -48px -96px; }
|
||||||
|
.ui-icon-note { background-position: -64px -96px; }
|
||||||
|
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||||
|
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||||
|
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||||
|
.ui-icon-comment { background-position: -128px -96px; }
|
||||||
|
.ui-icon-person { background-position: -144px -96px; }
|
||||||
|
.ui-icon-print { background-position: -160px -96px; }
|
||||||
|
.ui-icon-trash { background-position: -176px -96px; }
|
||||||
|
.ui-icon-locked { background-position: -192px -96px; }
|
||||||
|
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||||
|
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||||
|
.ui-icon-tag { background-position: -240px -96px; }
|
||||||
|
.ui-icon-home { background-position: 0 -112px; }
|
||||||
|
.ui-icon-flag { background-position: -16px -112px; }
|
||||||
|
.ui-icon-calendar { background-position: -32px -112px; }
|
||||||
|
.ui-icon-cart { background-position: -48px -112px; }
|
||||||
|
.ui-icon-pencil { background-position: -64px -112px; }
|
||||||
|
.ui-icon-clock { background-position: -80px -112px; }
|
||||||
|
.ui-icon-disk { background-position: -96px -112px; }
|
||||||
|
.ui-icon-calculator { background-position: -112px -112px; }
|
||||||
|
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||||
|
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||||
|
.ui-icon-search { background-position: -160px -112px; }
|
||||||
|
.ui-icon-wrench { background-position: -176px -112px; }
|
||||||
|
.ui-icon-gear { background-position: -192px -112px; }
|
||||||
|
.ui-icon-heart { background-position: -208px -112px; }
|
||||||
|
.ui-icon-star { background-position: -224px -112px; }
|
||||||
|
.ui-icon-link { background-position: -240px -112px; }
|
||||||
|
.ui-icon-cancel { background-position: 0 -128px; }
|
||||||
|
.ui-icon-plus { background-position: -16px -128px; }
|
||||||
|
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||||
|
.ui-icon-minus { background-position: -48px -128px; }
|
||||||
|
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||||
|
.ui-icon-close { background-position: -80px -128px; }
|
||||||
|
.ui-icon-closethick { background-position: -96px -128px; }
|
||||||
|
.ui-icon-key { background-position: -112px -128px; }
|
||||||
|
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||||
|
.ui-icon-scissors { background-position: -144px -128px; }
|
||||||
|
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||||
|
.ui-icon-copy { background-position: -176px -128px; }
|
||||||
|
.ui-icon-contact { background-position: -192px -128px; }
|
||||||
|
.ui-icon-image { background-position: -208px -128px; }
|
||||||
|
.ui-icon-video { background-position: -224px -128px; }
|
||||||
|
.ui-icon-script { background-position: -240px -128px; }
|
||||||
|
.ui-icon-alert { background-position: 0 -144px; }
|
||||||
|
.ui-icon-info { background-position: -16px -144px; }
|
||||||
|
.ui-icon-notice { background-position: -32px -144px; }
|
||||||
|
.ui-icon-help { background-position: -48px -144px; }
|
||||||
|
.ui-icon-check { background-position: -64px -144px; }
|
||||||
|
.ui-icon-bullet { background-position: -80px -144px; }
|
||||||
|
.ui-icon-radio-on { background-position: -96px -144px; }
|
||||||
|
.ui-icon-radio-off { background-position: -112px -144px; }
|
||||||
|
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||||
|
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||||
|
.ui-icon-play { background-position: 0 -160px; }
|
||||||
|
.ui-icon-pause { background-position: -16px -160px; }
|
||||||
|
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||||
|
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||||
|
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||||
|
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||||
|
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||||
|
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||||
|
.ui-icon-stop { background-position: -96px -160px; }
|
||||||
|
.ui-icon-eject { background-position: -112px -160px; }
|
||||||
|
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||||
|
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||||
|
.ui-icon-power { background-position: 0 -176px; }
|
||||||
|
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||||
|
.ui-icon-signal { background-position: -32px -176px; }
|
||||||
|
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||||
|
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||||
|
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||||
|
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||||
|
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||||
|
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||||
|
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||||
|
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||||
|
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||||
|
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||||
|
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||||
|
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||||
|
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||||
|
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||||
|
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||||
|
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||||
|
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||||
|
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||||
|
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||||
|
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||||
|
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||||
|
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||||
|
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||||
|
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||||
|
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||||
|
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||||
|
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||||
|
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||||
|
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||||
|
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Corner radius */
|
||||||
|
.ui-corner-all,
|
||||||
|
.ui-corner-top,
|
||||||
|
.ui-corner-left,
|
||||||
|
.ui-corner-tl {
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
}
|
||||||
|
.ui-corner-all,
|
||||||
|
.ui-corner-top,
|
||||||
|
.ui-corner-right,
|
||||||
|
.ui-corner-tr {
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
}
|
||||||
|
.ui-corner-all,
|
||||||
|
.ui-corner-bottom,
|
||||||
|
.ui-corner-left,
|
||||||
|
.ui-corner-bl {
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
.ui-corner-all,
|
||||||
|
.ui-corner-bottom,
|
||||||
|
.ui-corner-right,
|
||||||
|
.ui-corner-br {
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay {
|
||||||
|
background: #aaaaaa;
|
||||||
|
opacity: .003;
|
||||||
|
filter: Alpha(Opacity=.3); /* support: IE8 */
|
||||||
|
}
|
||||||
|
.ui-widget-shadow {
|
||||||
|
-webkit-box-shadow: 0px 0px 5px #666666;
|
||||||
|
box-shadow: 0px 0px 5px #666666;
|
||||||
|
}
|
||||||
5
src/main/webapp/js/jquery-ui/jquery-ui.theme.min.css
vendored
Normal file
5
src/main/webapp/js/jquery-ui/jquery-ui.theme.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
258
src/main/webapp/js/jsgrid/jsgrid-theme.css
Normal file
258
src/main/webapp/js/jsgrid/jsgrid-theme.css
Normal file
File diff suppressed because one or more lines are too long
7
src/main/webapp/js/jsgrid/jsgrid-theme.min.css
vendored
Normal file
7
src/main/webapp/js/jsgrid/jsgrid-theme.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
126
src/main/webapp/js/jsgrid/jsgrid.css
Normal file
126
src/main/webapp/js/jsgrid/jsgrid.css
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
/*
|
||||||
|
* jsGrid v1.5.3 (http://js-grid.com)
|
||||||
|
* (c) 2016 Artem Tabalin
|
||||||
|
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
|
||||||
|
.jsgrid {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid, .jsgrid *, .jsgrid *:before, .jsgrid *:after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid input,
|
||||||
|
.jsgrid textarea,
|
||||||
|
.jsgrid select {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-grid-header {
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-o-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-grid-body {
|
||||||
|
overflow-x: auto;
|
||||||
|
overflow-y: scroll;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-table {
|
||||||
|
width: 100%;
|
||||||
|
table-layout: fixed;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-cell {
|
||||||
|
padding: 0.5em 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-сell,
|
||||||
|
.jsgrid-header-cell {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-align-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-align-center,
|
||||||
|
.jsgrid-align-center input,
|
||||||
|
.jsgrid-align-center textarea,
|
||||||
|
.jsgrid-align-center select {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-align-right,
|
||||||
|
.jsgrid-align-right input,
|
||||||
|
.jsgrid-align-right textarea,
|
||||||
|
.jsgrid-align-right select {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-header-cell {
|
||||||
|
padding: .5em .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-filter-row input,
|
||||||
|
.jsgrid-filter-row textarea,
|
||||||
|
.jsgrid-filter-row select,
|
||||||
|
.jsgrid-edit-row input,
|
||||||
|
.jsgrid-edit-row textarea,
|
||||||
|
.jsgrid-edit-row select,
|
||||||
|
.jsgrid-insert-row input,
|
||||||
|
.jsgrid-insert-row textarea,
|
||||||
|
.jsgrid-insert-row select {
|
||||||
|
width: 100%;
|
||||||
|
padding: .3em .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-filter-row input[type='checkbox'],
|
||||||
|
.jsgrid-edit-row input[type='checkbox'],
|
||||||
|
.jsgrid-insert-row input[type='checkbox'] {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.jsgrid-selected-row .jsgrid-cell {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-nodata-row .jsgrid-cell {
|
||||||
|
padding: .5em 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-header-sort {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-pager {
|
||||||
|
padding: .5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-pager-nav-button {
|
||||||
|
padding: .2em .6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-pager-nav-inactive-button {
|
||||||
|
display: none;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-pager-page {
|
||||||
|
padding: .2em .6em;
|
||||||
|
}
|
||||||
2516
src/main/webapp/js/jsgrid/jsgrid.js
Normal file
2516
src/main/webapp/js/jsgrid/jsgrid.js
Normal file
File diff suppressed because it is too large
Load Diff
7
src/main/webapp/js/jsgrid/jsgrid.min.css
vendored
Normal file
7
src/main/webapp/js/jsgrid/jsgrid.min.css
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/*
|
||||||
|
* jsGrid v1.5.3 (http://js-grid.com)
|
||||||
|
* (c) 2016 Artem Tabalin
|
||||||
|
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
|
||||||
|
.jsgrid{position:relative;overflow:hidden;font-size:1em}.jsgrid,.jsgrid *,.jsgrid :after,.jsgrid :before{box-sizing:border-box}.jsgrid input,.jsgrid select,.jsgrid textarea{font-size:1em}.jsgrid-grid-header{overflow-x:hidden;overflow-y:scroll;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.jsgrid-grid-body{overflow-x:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.jsgrid-table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}.jsgrid-cell{padding:.5em}.jsgrid-header-cell,.jsgrid-сell{box-sizing:border-box}.jsgrid-align-left{text-align:left}.jsgrid-align-center,.jsgrid-align-center input,.jsgrid-align-center select,.jsgrid-align-center textarea{text-align:center}.jsgrid-align-right,.jsgrid-align-right input,.jsgrid-align-right select,.jsgrid-align-right textarea{text-align:right}.jsgrid-header-cell{padding:.5em}.jsgrid-edit-row input,.jsgrid-edit-row select,.jsgrid-edit-row textarea,.jsgrid-filter-row input,.jsgrid-filter-row select,.jsgrid-filter-row textarea,.jsgrid-insert-row input,.jsgrid-insert-row select,.jsgrid-insert-row textarea{width:100%;padding:.3em .5em}.jsgrid-edit-row input[type=checkbox],.jsgrid-filter-row input[type=checkbox],.jsgrid-insert-row input[type=checkbox]{width:auto}.jsgrid-selected-row .jsgrid-cell{cursor:pointer}.jsgrid-nodata-row .jsgrid-cell{padding:.5em 0;text-align:center}.jsgrid-header-sort{cursor:pointer}.jsgrid-pager{padding:.5em 0}.jsgrid-pager-nav-button{padding:.2em .6em}.jsgrid-pager-nav-inactive-button{display:none;pointer-events:none}.jsgrid-pager-page{padding:.2em .6em}
|
||||||
8
src/main/webapp/js/jsgrid/jsgrid.min.js
vendored
Normal file
8
src/main/webapp/js/jsgrid/jsgrid.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
258
src/main/webapp/js/jsgrid/nlib-jsgrid-theme.css
Normal file
258
src/main/webapp/js/jsgrid/nlib-jsgrid-theme.css
Normal file
File diff suppressed because one or more lines are too long
128
src/main/webapp/js/jsgrid/nlib-jsgrid.css
Normal file
128
src/main/webapp/js/jsgrid/nlib-jsgrid.css
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
* jsGrid v1.5.3 (http://js-grid.com)
|
||||||
|
* (c) 2016 Artem Tabalin
|
||||||
|
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
|
||||||
|
.jsgrid {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid, .jsgrid *, .jsgrid *:before, .jsgrid *:after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid input,
|
||||||
|
.jsgrid textarea,
|
||||||
|
.jsgrid select {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-grid-header {
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-o-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-grid-body {
|
||||||
|
overflow-x: auto;
|
||||||
|
overflow-y: scroll;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-table {
|
||||||
|
width: 100%;
|
||||||
|
table-layout: fixed;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-cell {
|
||||||
|
padding: 0.5em 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-сell,
|
||||||
|
.jsgrid-header-cell {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-align-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-align-center,
|
||||||
|
.jsgrid-align-center input,
|
||||||
|
.jsgrid-align-center textarea,
|
||||||
|
.jsgrid-align-center select {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-align-right,
|
||||||
|
.jsgrid-align-right input,
|
||||||
|
.jsgrid-align-right textarea,
|
||||||
|
.jsgrid-align-right select {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-header-cell {
|
||||||
|
padding: .5em .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-filter-row input,
|
||||||
|
.jsgrid-filter-row textarea,
|
||||||
|
.jsgrid-filter-row select,
|
||||||
|
.jsgrid-edit-row input,
|
||||||
|
.jsgrid-edit-row textarea,
|
||||||
|
.jsgrid-edit-row select,
|
||||||
|
.jsgrid-insert-row input,
|
||||||
|
.jsgrid-insert-row textarea,
|
||||||
|
.jsgrid-insert-row select {
|
||||||
|
width: 100%;
|
||||||
|
padding: .3em .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-filter-row input[type='checkbox'],
|
||||||
|
.jsgrid-edit-row input[type='checkbox'],
|
||||||
|
.jsgrid-insert-row input[type='checkbox'] {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.jsgrid-selected-row .jsgrid-cell {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-nodata-row .jsgrid-cell {
|
||||||
|
padding: .5em 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-header-sort {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-pager {
|
||||||
|
padding: .5em 0;
|
||||||
|
padding-top: 20px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-pager-nav-button {
|
||||||
|
padding: .2em .6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-pager-nav-inactive-button {
|
||||||
|
/* display: none; [NLIB:주석처리] */
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsgrid-pager-page {
|
||||||
|
padding: .2em .6em;
|
||||||
|
}
|
||||||
2516
src/main/webapp/js/jsgrid/nlib-jsgrid.js
Normal file
2516
src/main/webapp/js/jsgrid/nlib-jsgrid.js
Normal file
File diff suppressed because it is too large
Load Diff
7
src/main/webapp/js/nlib.js
Normal file
7
src/main/webapp/js/nlib.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* NLIB 공통 JavaScript
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
34
src/main/webapp/temp/grid_dropzone.html
Normal file
34
src/main/webapp/temp/grid_dropzone.html
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<html>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
http://localhost:8080/nlib/fileupload/js/dropzone.css
|
||||||
|
-->
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" href="/nlib/js/fileupload/dropzone.css" />
|
||||||
|
<link rel="stylesheet" href="/nlib/js/fileupload/style.css" />
|
||||||
|
<script src="/nlib/js/fileupload/dropzone.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<link rel="stylesheet" href="https://www.dropzonejs.com/css/dropzone.css?v=1595510599" />
|
||||||
|
<link rel="stylesheet" href="https://www.dropzonejs.com/css/style.css?v=1595510599" />
|
||||||
|
<script src="https://www.dropzonejs.com/js/dropzone.js?v=1595510599"></script>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="dropzone">
|
||||||
|
<form action="/nlib/fileupload/uploadFile.do"
|
||||||
|
class="dropzone needsclick" id="myDropzone">
|
||||||
|
<div class="dz-message needsclick">
|
||||||
|
<button type="button" class="dz-button">Drop files here or click to select files.</button><br />
|
||||||
|
<span class="note needsclick">이곳에 파일을 끌어다 놓거나, 클릭하여 올릴 파일을 선택하세요.</span>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
41
src/main/webapp/temp/grid_jqgrid.html
Normal file
41
src/main/webapp/temp/grid_jqgrid.html
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Grid</title>
|
||||||
|
<link type="text/css" rel="stylesheet" href="jsgrid.min.css" />
|
||||||
|
<link type="text/css" rel="stylesheet" href="jsgrid-theme.min.css" />
|
||||||
|
<script type="text/javascript" src="jsgrid.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<table id="table1"></table>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
function makeTable(id, array){
|
||||||
|
$("#"+id).jqGrid({
|
||||||
|
datatype: "local",
|
||||||
|
height: 250,
|
||||||
|
width : 630,
|
||||||
|
colNames:['a','b', 'RPM', 'c','d'],
|
||||||
|
colModel:[
|
||||||
|
{name:'fOcurDtmc', align:'right'},
|
||||||
|
{name:'spd', align:'right'},
|
||||||
|
{name:'rpm', align:'right'},
|
||||||
|
{name:'brkYn', align:'right'},
|
||||||
|
{name:'status', align:'right'}
|
||||||
|
],
|
||||||
|
caption: "DT"
|
||||||
|
});
|
||||||
|
|
||||||
|
for(var I in array){
|
||||||
|
$("#"+id).jqGrid('addRowData',i+1,array[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
makeTable('table1', dataArray);
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
57
src/main/webapp/temp/grid_jsgrid.html
Normal file
57
src/main/webapp/temp/grid_jsgrid.html
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Grid</title>
|
||||||
|
|
||||||
|
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/jsgrid.min.css" />
|
||||||
|
<link type="text/css" rel="stylesheet" href="/nlib/js/jsgrid/jsgrid-theme.min.css" />
|
||||||
|
|
||||||
|
<script src="/nlib/js/jquery/jquery.min.js"></script>
|
||||||
|
<script src="/nlib/js/jsgrid/jsgrid.min.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="jsGrid" name="jsGrid" style="width:400px; height:300px;"></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var clients = [
|
||||||
|
{ "이름": "Otto Clay", "Age": 25, "Country": 1, "Address": "Ap #897-1459 Quam Avenue", "Married": false },
|
||||||
|
{ "Name": "Connor Johnston", "Age": 45, "Country": 2, "Address": "Ap #370-4647 Dis Av.", "Married": true },
|
||||||
|
{ "Name": "Lacey Hess", "Age": 29, "Country": 3, "Address": "Ap #365-8835 Integer St.", "Married": false },
|
||||||
|
{ "Name": "Timothy Henson", "Age": 56, "Country": 1, "Address": "911-5143 Luctus Ave", "Married": true },
|
||||||
|
{ "Name": "Ramona Benton", "Age": 32, "Country": 3, "Address": "Ap #614-689 Vehicula Street", "Married": false }
|
||||||
|
];
|
||||||
|
|
||||||
|
var countries = [
|
||||||
|
{ Name: "", Id: 0 },
|
||||||
|
{ Name: "United States", Id: 1 },
|
||||||
|
{ Name: "Canada", Id: 2 },
|
||||||
|
{ Name: "United Kingdom", Id: 3 }
|
||||||
|
];
|
||||||
|
|
||||||
|
$("#jsGrid").jsGrid({
|
||||||
|
width: "100%",
|
||||||
|
height: "400px",
|
||||||
|
|
||||||
|
inserting: true,
|
||||||
|
editing: true,
|
||||||
|
sorting: true,
|
||||||
|
paging: true,
|
||||||
|
|
||||||
|
data: clients,
|
||||||
|
|
||||||
|
fields: [
|
||||||
|
{ name: "이름", type: "text", width: 150, validate: "required" },
|
||||||
|
{ name: "Age", type: "number", width: 50 },
|
||||||
|
{ name: "Address", type: "text", width: 200 },
|
||||||
|
{ name: "Country", type: "select", items: countries, valueField: "Id", textField: "Name" },
|
||||||
|
{ name: "Married", type: "checkbox", title: "Is Married", sorting: false },
|
||||||
|
{ type: "control" }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
40
src/main/webapp/temp/grid_w2ui.html
Normal file
40
src/main/webapp/temp/grid_w2ui.html
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Grid</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/nlib/js/jqgrid/ui.jqgrid.css"/>
|
||||||
|
<script type="text/javascript" src="/nlib/js/jqgrid/jquery.jqGrid.min.js'/>"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<table id="table1"></table>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
function makeTable(id, array){
|
||||||
|
$("#"+id).jqGrid({
|
||||||
|
datatype: "local",
|
||||||
|
height: 250,
|
||||||
|
width : 630,
|
||||||
|
colNames:['일시','속도', 'RPM', '브레이크','상태'],
|
||||||
|
colModel:[
|
||||||
|
{name:'fOcurDtmc', align:'right'},
|
||||||
|
{name:'spd', align:'right'},
|
||||||
|
{name:'rpm', align:'right'},
|
||||||
|
{name:'brkYn', align:'right'},
|
||||||
|
{name:'status', align:'right'}
|
||||||
|
],
|
||||||
|
caption: "DTG 데이터"
|
||||||
|
});
|
||||||
|
|
||||||
|
for(var I in array){
|
||||||
|
$("#"+id).jqGrid('addRowData',i+1,array[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
makeTable('table1', dataArray);
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -16,7 +16,7 @@
|
|||||||
<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="INFO" additivity="false">
|
<Logger name="org.springframework" level="DEBUG" additivity="false">
|
||||||
<AppenderRef ref="console" />
|
<AppenderRef ref="console" />
|
||||||
</Logger>
|
</Logger>
|
||||||
<Root level="DEBUG">
|
<Root level="DEBUG">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user