QnA UI 적용작업 완료 및 파일다운로드 개선
This commit is contained in:
parent
c1e3a619e0
commit
762181cb7c
@ -69,7 +69,7 @@ public interface AttachFileService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public int deleteAttachFileGroup(AttachFileVO attachFileVO) throws Exception;
|
public int deleteAttachFileGroup(String attachFileId) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 첨부파일 삭제한다.
|
* 첨부파일 삭제한다.
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import java.util.Map;
|
|||||||
import nlib.restful.service.DataApiReqVO;
|
import nlib.restful.service.DataApiReqVO;
|
||||||
import nlib.restful.service.DataApiResVO;
|
import nlib.restful.service.DataApiResVO;
|
||||||
import nlib.user.service.NlibLoginVO;
|
import nlib.user.service.NlibLoginVO;
|
||||||
|
import nlib.util.StringUtil;
|
||||||
|
|
||||||
public interface QnaService extends BoardService
|
public interface QnaService extends BoardService
|
||||||
{
|
{
|
||||||
@ -45,5 +46,24 @@ public interface QnaService extends BoardService
|
|||||||
*/
|
*/
|
||||||
public int deleteArticle(ArticleVO articleVO) throws Exception;
|
public int deleteArticle(ArticleVO articleVO) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당 QNA 글을 변경할 수 있는지 여부를 확인한다.
|
||||||
|
*
|
||||||
|
* @param articleVO
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public String canModify(ArticleVO articleVO) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당 QNA 글을 읽을 수 있는지 여부를 확인한다.
|
||||||
|
*
|
||||||
|
* @param articleVO
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public String canRead(ArticleVO articleVO) throws Exception;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -76,7 +76,16 @@ public interface AttachFileDAO {
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public int deleteAttachFileGroup(AttachFileVO attachFileVO) throws Exception;
|
public int deleteAttachFileGroup(String attachFileId) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 첨부파일그룹에 속한 모든 파일을 삭제한다.
|
||||||
|
*
|
||||||
|
* @param attachFileVO
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public int deleteAllFilesOfAttachFileGroup(String attachFileId) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 첨부파일 삭제한다.
|
* 첨부파일 삭제한다.
|
||||||
|
|||||||
@ -8,8 +8,10 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import nlib.bbs.service.ArticleVO;
|
||||||
import nlib.bbs.service.AttachFileService;
|
import nlib.bbs.service.AttachFileService;
|
||||||
import nlib.bbs.service.AttachFileVO;
|
import nlib.bbs.service.AttachFileVO;
|
||||||
|
import nlib.bbs.service.QnaService;
|
||||||
import nlib.util.StringUtil;
|
import nlib.util.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,6 +44,9 @@ public class AttachFileServiceImpl implements AttachFileService
|
|||||||
@Resource(name="attachFileDAO")
|
@Resource(name="attachFileDAO")
|
||||||
AttachFileDAO attachFileDAO;
|
AttachFileDAO attachFileDAO;
|
||||||
|
|
||||||
|
@Resource(name = "qnaService")
|
||||||
|
private QnaService qnaService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 첨부파일 목록을 조회한다.
|
* 첨부파일 목록을 조회한다.
|
||||||
*
|
*
|
||||||
@ -86,8 +91,10 @@ public class AttachFileServiceImpl implements AttachFileService
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteAttachFileGroup(AttachFileVO attachFileVO) throws Exception {
|
public int deleteAttachFileGroup(String attachFileId) throws Exception {
|
||||||
return attachFileDAO.deleteAttachFileGroup(attachFileVO);
|
int ret = attachFileDAO.deleteAttachFileGroup(attachFileId);
|
||||||
|
attachFileDAO.deleteAllFilesOfAttachFileGroup(attachFileId);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -120,7 +127,6 @@ public class AttachFileServiceImpl implements AttachFileService
|
|||||||
return attachFileDAO.selectAttachFile(attachFileVO);
|
return attachFileDAO.selectAttachFile(attachFileVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 다운로드 가능 여부를 확인하다.
|
* 다운로드 가능 여부를 확인하다.
|
||||||
*
|
*
|
||||||
@ -129,10 +135,13 @@ public class AttachFileServiceImpl implements AttachFileService
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public boolean checkAttachFileDownload(AttachFileVO attachFileVO) throws Exception {
|
public boolean checkAttachFileDownload(AttachFileVO attachFileVO) throws Exception {
|
||||||
String ret = attachFileDAO.checkAttachFileDownload(attachFileVO);
|
|
||||||
|
|
||||||
if(StringUtil.isEmpty(ret)) return false;
|
String bdType = attachFileVO.getBdType();
|
||||||
|
if(StringUtil.isEmpty(bdType)) return false;
|
||||||
|
|
||||||
return ret.charAt(0) == 'Y';
|
String ret = "Y";
|
||||||
|
ret = attachFileDAO.checkAttachFileDownload(attachFileVO);
|
||||||
|
|
||||||
|
return StringUtil.isEmpty(ret) ? false : (ret.charAt(0) == 'Y');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -159,8 +159,55 @@ public class QnaServiceImpl extends BoardServiceImpl implements QnaService
|
|||||||
* @param reqVO
|
* @param reqVO
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public int deleteArticle(ArticleVO articleVO) {
|
public int deleteArticle(ArticleVO articleVO) throws Exception {
|
||||||
return qnaDAO.deleteArticle(articleVO);
|
int ret = qnaDAO.deleteArticle(articleVO);
|
||||||
|
attachFileService.deleteAttachFileGroup(articleVO.getBdAttachFileId());
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당 QNA 글을 변경할 수 있는지 여부를 확인한다.
|
||||||
|
*
|
||||||
|
* @param articleVO
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public String canModify(ArticleVO articleVO) throws Exception {
|
||||||
|
|
||||||
|
if(StringUtil.isEmpty(articleVO.getLoginedMbInfoId())) {
|
||||||
|
return "로그인 후, 이용하실 수 있습니다.";
|
||||||
|
}
|
||||||
|
|
||||||
|
ArticleVO savedArticleVO = selectArticle(articleVO);
|
||||||
|
|
||||||
|
if(!"Y".equals(savedArticleVO.getMyQnaYn())) {
|
||||||
|
return "본인의 글만 변경할 수 있습니다.";
|
||||||
|
}
|
||||||
|
|
||||||
|
if("Y".equals(savedArticleVO.getAnswerYn())) {
|
||||||
|
return "이미 답변완료된 글은 변경할 수 없습니다.";
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당 QNA 글을 읽을 수 있는지 여부를 확인한다.
|
||||||
|
*
|
||||||
|
* @param articleVO
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public String canRead(ArticleVO articleVO) throws Exception {
|
||||||
|
|
||||||
|
ArticleVO savedArticleVO = selectArticle(articleVO);
|
||||||
|
|
||||||
|
if("Y".equals(savedArticleVO.getMyQnaYn())) return null;
|
||||||
|
|
||||||
|
if("Y".equals(savedArticleVO.getSecretYn())) {
|
||||||
|
return "다른 사용자의 비밀글은 조회할 수 없습니다.";
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -146,7 +146,15 @@ public class QnaController extends NlibCommonController {
|
|||||||
|
|
||||||
// 읽음처리 및 상세내용 조회
|
// 읽음처리 및 상세내용 조회
|
||||||
searchArticleVO.setLoginedMbInfoId(getMbInfoId(request));
|
searchArticleVO.setLoginedMbInfoId(getMbInfoId(request));
|
||||||
ArticleVO articleVO = qnaService.selectArticle(searchArticleVO);
|
ArticleVO articleVO = null;
|
||||||
|
|
||||||
|
String canRead = qnaService.canRead(searchArticleVO);
|
||||||
|
if(canRead != null) {
|
||||||
|
model.addAttribute("message", canRead);
|
||||||
|
articleVO = searchArticleVO;
|
||||||
|
} else {
|
||||||
|
articleVO = qnaService.selectArticle(searchArticleVO);
|
||||||
|
}
|
||||||
|
|
||||||
model.addAttribute("searchArticle", searchArticleVO);
|
model.addAttribute("searchArticle", searchArticleVO);
|
||||||
model.addAttribute("article", articleVO);
|
model.addAttribute("article", articleVO);
|
||||||
@ -228,7 +236,7 @@ public class QnaController extends NlibCommonController {
|
|||||||
//---------------------------
|
//---------------------------
|
||||||
// 기본 정보 설정
|
// 기본 정보 설정
|
||||||
//---------------------------
|
//---------------------------
|
||||||
articleVO.setRegDd(loginVO.getMbInfoId());
|
articleVO.setRegId(loginVO.getMbInfoId());
|
||||||
articleVO.setMngOrgCd(getCurCouncilCd(request)); // 문화원코드
|
articleVO.setMngOrgCd(getCurCouncilCd(request)); // 문화원코드
|
||||||
articleVO.setBdType(BD_TYPE_QNA);
|
articleVO.setBdType(BD_TYPE_QNA);
|
||||||
articleVO.setAnswerYn("N");
|
articleVO.setAnswerYn("N");
|
||||||
@ -333,7 +341,7 @@ public class QnaController extends NlibCommonController {
|
|||||||
HttpServletRequest request
|
HttpServletRequest request
|
||||||
, ArticleVO articleVO
|
, ArticleVO articleVO
|
||||||
, String fileList
|
, String fileList
|
||||||
, String removedfile
|
, String delFileList
|
||||||
, RedirectAttributes redirectAttrs
|
, RedirectAttributes redirectAttrs
|
||||||
, ModelMap model) throws Exception {
|
, ModelMap model) throws Exception {
|
||||||
|
|
||||||
@ -341,13 +349,15 @@ public class QnaController extends NlibCommonController {
|
|||||||
|
|
||||||
// 권한 및 변경 가능 상태 체크
|
// 권한 및 변경 가능 상태 체크
|
||||||
articleVO.setLoginedMbInfoId(getMbInfoId(request));
|
articleVO.setLoginedMbInfoId(getMbInfoId(request));
|
||||||
String message = canModify(articleVO);
|
String message = qnaService.canModify(articleVO);
|
||||||
if(message != null) {
|
if(message != null) {
|
||||||
redirectAttrs.addFlashAttribute("searchArticle", articleVO);
|
redirectAttrs.addFlashAttribute("searchArticle", articleVO);
|
||||||
redirectAttrs.addFlashAttribute("message", message);
|
redirectAttrs.addFlashAttribute("message", message);
|
||||||
return "redirect:/bbs/insertQnaForm.do";
|
return "redirect:/bbs/listQnas.do";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
articleVO.setModId(nlibLoginVO.getMbInfoId());
|
||||||
|
|
||||||
|
|
||||||
//---------------------------
|
//---------------------------
|
||||||
// 첨부파일 정보 설정
|
// 첨부파일 정보 설정
|
||||||
@ -388,7 +398,7 @@ public class QnaController extends NlibCommonController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(StringUtil.isNotEmpty(attachFileId)) {
|
if(StringUtil.isNotEmpty(attachFileId)) {
|
||||||
articleVO.setBdAttachFileId(attachFileId);
|
if(StringUtil.isNotEmpty(articleVO.getBdAttachFileId())) articleVO.setBdAttachFileId(attachFileId);
|
||||||
|
|
||||||
String fileSStreCours = NlibProperty.getProperty("fileupload.base.path") + NlibProperty.getProperty("fileupload.bbs.qna.subpath") + "/";
|
String fileSStreCours = NlibProperty.getProperty("fileupload.base.path") + NlibProperty.getProperty("fileupload.bbs.qna.subpath") + "/";
|
||||||
List<AttachFileVO> attachFiles = new ArrayList<AttachFileVO>();
|
List<AttachFileVO> attachFiles = new ArrayList<AttachFileVO>();
|
||||||
@ -417,9 +427,9 @@ public class QnaController extends NlibCommonController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 첨부파일 삭제
|
// 첨부파일 삭제
|
||||||
if(StringUtil.isNotEmpty(removedfile)) {
|
if(StringUtil.isNotEmpty(delFileList)) {
|
||||||
|
|
||||||
String removedFileListJsonStr = removedfile;
|
String removedFileListJsonStr = delFileList;
|
||||||
if(removedFileListJsonStr.startsWith("&")) removedFileListJsonStr = StringEscapeUtils.unescapeHtml(removedFileListJsonStr);
|
if(removedFileListJsonStr.startsWith("&")) removedFileListJsonStr = StringEscapeUtils.unescapeHtml(removedFileListJsonStr);
|
||||||
if(removedFileListJsonStr.startsWith("\"")) removedFileListJsonStr = removedFileListJsonStr.substring(1);
|
if(removedFileListJsonStr.startsWith("\"")) removedFileListJsonStr = removedFileListJsonStr.substring(1);
|
||||||
if(removedFileListJsonStr.endsWith("\"")) removedFileListJsonStr = removedFileListJsonStr.substring(0, removedFileListJsonStr.length()-1);
|
if(removedFileListJsonStr.endsWith("\"")) removedFileListJsonStr = removedFileListJsonStr.substring(0, removedFileListJsonStr.length()-1);
|
||||||
@ -452,10 +462,10 @@ public class QnaController extends NlibCommonController {
|
|||||||
log.error("첨부파일 아이디(attachFileId) 값은 필수 항목입니다. 첨부파일 삭제에 실패하였습니다. 그러나, 게시물 등록은 계속 진행됩니다.");
|
log.error("첨부파일 아이디(attachFileId) 값은 필수 항목입니다. 첨부파일 삭제에 실패하였습니다. 그러나, 게시물 등록은 계속 진행됩니다.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(StringUtil.isNotEmpty(attachFileId)) {
|
if(StringUtil.isNotEmpty(attachFileId) && attachFileId.equals(articleVO.getBdAttachFileId())) {
|
||||||
articleVO.setBdAttachFileId(attachFileId);
|
//articleVO.setBdAttachFileId(attachFileId);
|
||||||
|
|
||||||
String fileSStreCours = NlibProperty.getProperty("fileupload.base.path") + NlibProperty.getProperty("fileupload.bbs.qna.subpath") + "/";
|
//String fileSStreCours = NlibProperty.getProperty("fileupload.base.path") + NlibProperty.getProperty("fileupload.bbs.qna.subpath") + "/";
|
||||||
List<AttachFileVO> removedAttachFiles = new ArrayList<AttachFileVO>();
|
List<AttachFileVO> removedAttachFiles = new ArrayList<AttachFileVO>();
|
||||||
|
|
||||||
for(int i=0; i<removedFileListObj.size(); i++) {
|
for(int i=0; i<removedFileListObj.size(); i++) {
|
||||||
@ -476,12 +486,7 @@ public class QnaController extends NlibCommonController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fVO.setAttachFileId(attachFileId);
|
fVO.setAttachFileId(attachFileId);
|
||||||
fVO.setStreFileNm((String)remFinfo.get("streFileNm"));
|
|
||||||
fVO.setFileSn(fileSn);
|
fVO.setFileSn(fileSn);
|
||||||
fVO.setFileSize(((Integer)remFinfo.get("fileSize")).intValue());
|
|
||||||
|
|
||||||
File f = new File(fVO.getFileStreCours() + fVO.getStreFileNm());
|
|
||||||
if(!f.exists() || !f.isFile()) continue;
|
|
||||||
|
|
||||||
removedAttachFiles.add(fVO);
|
removedAttachFiles.add(fVO);
|
||||||
}
|
}
|
||||||
@ -522,45 +527,30 @@ public class QnaController extends NlibCommonController {
|
|||||||
|
|
||||||
// 권한 및 변경 가능 상태 체크
|
// 권한 및 변경 가능 상태 체크
|
||||||
articleVO.setLoginedMbInfoId(getMbInfoId(request));
|
articleVO.setLoginedMbInfoId(getMbInfoId(request));
|
||||||
String message = canModify(articleVO);
|
String message = qnaService.canModify(articleVO);
|
||||||
if(message != null) {
|
if(message != null) {
|
||||||
redirectAttrs.addFlashAttribute("searchArticle", articleVO);
|
redirectAttrs.addFlashAttribute("searchArticle", articleVO);
|
||||||
redirectAttrs.addFlashAttribute("message", message);
|
redirectAttrs.addFlashAttribute("message", message);
|
||||||
return "redirect:/bbs/insertQnaForm.do";
|
return "redirect:/bbs/insertQnaForm.do";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ArticleVO articleOrgVO = qnaService.selectArticle(articleVO);
|
||||||
|
articleOrgVO.setModId(nlibLoginVO.getMbInfoId());
|
||||||
|
|
||||||
// 삭제 처리
|
// 삭제 처리
|
||||||
int ret = qnaService.deleteArticle(articleVO);
|
int ret = qnaService.deleteArticle(articleOrgVO);
|
||||||
if(ret < 1) {
|
if(ret < 1) {
|
||||||
redirectAttrs.addFlashAttribute("searchArticle", articleVO);
|
redirectAttrs.addFlashAttribute("searchArticle", articleOrgVO);
|
||||||
redirectAttrs.addFlashAttribute("message", "삭제 처리되지 못했습니다.");
|
redirectAttrs.addFlashAttribute("message", "삭제 처리되지 못했습니다.");
|
||||||
return "redirect:/bbs/insertQnaForm.do";
|
return "redirect:/bbs/insertQnaForm.do";
|
||||||
}
|
}
|
||||||
|
|
||||||
model.addAttribute("searchArticle", articleVO);
|
model.addAttribute("searchArticle", articleOrgVO);
|
||||||
|
|
||||||
redirectAttrs.addFlashAttribute("message", "성공적으로 삭제되었습니다.");
|
redirectAttrs.addFlashAttribute("message", "성공적으로 삭제되었습니다.");
|
||||||
|
|
||||||
return "redirect:/bbs/listQnas.do";
|
return "redirect:/bbs/listQnas.do";
|
||||||
}
|
}
|
||||||
|
|
||||||
public String canModify(ArticleVO articleVO) throws Exception {
|
|
||||||
|
|
||||||
if(StringUtil.isEmpty(articleVO.getLoginedMbInfoId())) {
|
|
||||||
return "로그인 후, 이용하실 수 있습니다.";
|
|
||||||
}
|
|
||||||
|
|
||||||
ArticleVO savedArticleVO = qnaService.selectArticle(articleVO);
|
|
||||||
|
|
||||||
if("Y".equals(articleVO.getMyQnaYn())) {
|
|
||||||
return "본인의 글만 변경할 수 있습니다.";
|
|
||||||
}
|
|
||||||
|
|
||||||
if("Y".equals(savedArticleVO.getAnswerYn())) {
|
|
||||||
return "이미 답변완료된 글은 변경할 수 없습니다.";
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -8,6 +8,7 @@ import java.util.Map;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -26,9 +27,10 @@ import org.springframework.web.servlet.ModelAndView;
|
|||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
import egovframework.com.cmm.service.FileVO;
|
|
||||||
import nlib.bbs.service.AttachFileService;
|
import nlib.bbs.service.AttachFileService;
|
||||||
import nlib.bbs.service.AttachFileVO;
|
import nlib.bbs.service.AttachFileVO;
|
||||||
|
import nlib.bbs.service.QnaService;
|
||||||
|
import nlib.cmm.NlibCommonController;
|
||||||
import nlib.cmm.exception.ErrorMessage;
|
import nlib.cmm.exception.ErrorMessage;
|
||||||
import nlib.cmm.service.NlibProperty;
|
import nlib.cmm.service.NlibProperty;
|
||||||
import nlib.util.FileUtil;
|
import nlib.util.FileUtil;
|
||||||
@ -58,7 +60,7 @@ import nlib.util.UUID;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
public class FileUploadController {
|
public class FileUploadController extends NlibCommonController {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(FileUploadController.class);
|
private static final Logger log = LoggerFactory.getLogger(FileUploadController.class);
|
||||||
|
|
||||||
@ -229,7 +231,7 @@ public class FileUploadController {
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value="/fileupload/downloadAttachFile.do")
|
@RequestMapping(value="/fileupload/downloadAttachFile.do")
|
||||||
public ModelAndView downloadAttachFile(AttachFileVO attachFileVO, ModelAndView mv) throws Exception {
|
public ModelAndView downloadAttachFile(HttpServletRequest request, AttachFileVO attachFileVO, ModelAndView mv) throws Exception {
|
||||||
|
|
||||||
//---------------------------------
|
//---------------------------------
|
||||||
// 권한체크
|
// 권한체크
|
||||||
@ -238,6 +240,7 @@ public class FileUploadController {
|
|||||||
// QnA : 공개된 글인 경우, 모두 공개
|
// QnA : 공개된 글인 경우, 모두 공개
|
||||||
// QnA : 비밀글 (본인에 한정)
|
// QnA : 비밀글 (본인에 한정)
|
||||||
|
|
||||||
|
attachFileVO.setMbInfoId(getMbInfoId(request));
|
||||||
boolean hasAuth = attachFileService.checkAttachFileDownload(attachFileVO);
|
boolean hasAuth = attachFileService.checkAttachFileDownload(attachFileVO);
|
||||||
|
|
||||||
if(!hasAuth) {
|
if(!hasAuth) {
|
||||||
|
|||||||
@ -35,7 +35,7 @@
|
|||||||
, A.POST_START_DATE
|
, A.POST_START_DATE
|
||||||
, A.POST_END_DATE
|
, A.POST_END_DATE
|
||||||
, A.VIEW_CNT
|
, A.VIEW_CNT
|
||||||
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
|
, CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN
|
||||||
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
||||||
, A2.RNO
|
, A2.RNO
|
||||||
, IF(IFNULL(C.USER_NM,'') = '', '관리자', C.USER_NM) AS REG_NM
|
, IF(IFNULL(C.USER_NM,'') = '', '관리자', C.USER_NM) AS REG_NM
|
||||||
@ -77,7 +77,7 @@
|
|||||||
, A.POST_START_DATE
|
, A.POST_START_DATE
|
||||||
, A.POST_END_DATE
|
, A.POST_END_DATE
|
||||||
, A.VIEW_CNT
|
, A.VIEW_CNT
|
||||||
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
|
, CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN
|
||||||
, A.BD_ATTACH_FILE_ID
|
, A.BD_ATTACH_FILE_ID
|
||||||
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
||||||
, IF(IFNULL(C.USER_NM,'') = '', '관리자', C.USER_NM) AS REG_NM
|
, IF(IFNULL(C.USER_NM,'') = '', '관리자', C.USER_NM) AS REG_NM
|
||||||
|
|||||||
@ -43,14 +43,14 @@
|
|||||||
SELECT 'Y' AS checkResult
|
SELECT 'Y' AS checkResult
|
||||||
<if test='bdType != null and bdType.equals("QNA")'>
|
<if test='bdType != null and bdType.equals("QNA")'>
|
||||||
FROM BD_NLIB_QNA
|
FROM BD_NLIB_QNA
|
||||||
WHERE BD_TYPE = 'QNA'
|
WHERE UPPER(BD_TYPE) = 'QNA'
|
||||||
AND BD_ATTACH_FILE_ID = #{attachFileId}
|
AND BD_ATTACH_FILE_ID = #{attachFileId}
|
||||||
AND (SECRET_YN = 'N' OR REG_ID = #{mbInfoId})
|
AND (IFNULL(SECRET_YN,'N') = 'N' OR REG_ID = #{mbInfoId})
|
||||||
AND IFNULL(USE_YN,'Y') = 'Y'
|
AND IFNULL(USE_YN,'Y') = 'Y'
|
||||||
</if>
|
</if>
|
||||||
<if test='bdType != null and bdType.equals("FAQ")'>
|
<if test='bdType != null and bdType.equals("FAQ")'>
|
||||||
FROM BD_NLIB_QNA
|
FROM BD_NLIB_QNA
|
||||||
WHERE BD_TYPE = UPPER('FAQ')
|
WHERE UPPER(BD_TYPE) = 'FAQ'
|
||||||
AND BD_ATTACH_FILE_ID = #{attachFileId}
|
AND BD_ATTACH_FILE_ID = #{attachFileId}
|
||||||
AND IFNULL(USE_YN,'Y') = 'Y'
|
AND IFNULL(USE_YN,'Y') = 'Y'
|
||||||
</if>
|
</if>
|
||||||
@ -61,6 +61,7 @@
|
|||||||
AND IFNULL(DELETE_YN, 'N') = 'N'
|
AND IFNULL(DELETE_YN, 'N') = 'N'
|
||||||
AND DATE_FORMAT(NOW(), '%Y%m%d') BETWEEN IFNULL(POST_START_DATE,'00010101') AND IFNULL(POST_END_DATE, '99991231')
|
AND DATE_FORMAT(NOW(), '%Y%m%d') BETWEEN IFNULL(POST_START_DATE,'00010101') AND IFNULL(POST_END_DATE, '99991231')
|
||||||
</if>
|
</if>
|
||||||
|
LIMIT 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertAttachFileGroup" parameterType="AttachFileVO">
|
<insert id="insertAttachFileGroup" parameterType="AttachFileVO">
|
||||||
@ -74,7 +75,7 @@
|
|||||||
, 'Y'
|
, 'Y'
|
||||||
)
|
)
|
||||||
ON DUPLICATE KEY
|
ON DUPLICATE KEY
|
||||||
UPDATE REG_DD = REG_DD;
|
UPDATE USE_AT = 'Y';
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<insert id="insertAttachFile" parameterType="AttachFileVO">
|
<insert id="insertAttachFile" parameterType="AttachFileVO">
|
||||||
@ -106,9 +107,16 @@
|
|||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="deleteAttachFileGroup" parameterType="AttachFileVO">
|
<update id="deleteAttachFileGroup" parameterType="String">
|
||||||
UPDATE BD_FILE SET USE_AT = 'N'
|
UPDATE BD_FILE SET USE_AT = 'N'
|
||||||
WHERE ATTACH_FILE_ID = #{attachFileId}
|
WHERE ATTACH_FILE_ID = #{attachFileId}
|
||||||
|
AND IFNULL(USE_AT, 'Y') = 'Y'
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="deleteAllFilesOfAttachFileGroup" parameterType="String">
|
||||||
|
UPDATE BD_FILEDETAIL SET USE_AT = 'N'
|
||||||
|
WHERE ATTACH_FILE_ID = #{attachFileId}
|
||||||
|
AND IFNULL(USE_AT, 'Y') = 'Y'
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="deleteAttachFile" parameterType="AttachFileVO">
|
<update id="deleteAttachFile" parameterType="AttachFileVO">
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
, IFNULL(A.ANSWER_YN, 'N') AS ANSWER_YN
|
, IFNULL(A.ANSWER_YN, 'N') AS ANSWER_YN
|
||||||
, IFNULL(A.USE_YN,'Y') AS USE_YN
|
, IFNULL(A.USE_YN,'Y') AS USE_YN
|
||||||
, A.VIEW_CNT
|
, A.VIEW_CNT
|
||||||
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
|
, CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN
|
||||||
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
||||||
, A2.RNO
|
, A2.RNO
|
||||||
, C.USER_NM AS REG_NM
|
, C.USER_NM AS REG_NM
|
||||||
@ -86,7 +86,7 @@
|
|||||||
, IFNULL(A.USE_YN, 'Y') AS USE_YN
|
, IFNULL(A.USE_YN, 'Y') AS USE_YN
|
||||||
, A.VIEW_CNT
|
, A.VIEW_CNT
|
||||||
, A.BD_ATTACH_FILE_ID
|
, A.BD_ATTACH_FILE_ID
|
||||||
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
|
, CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN
|
||||||
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
||||||
, C.USER_NM AS REG_NM
|
, C.USER_NM AS REG_NM
|
||||||
FROM BD_NLIB_QNA A
|
FROM BD_NLIB_QNA A
|
||||||
|
|||||||
@ -38,7 +38,7 @@
|
|||||||
, IFNULL(A.SECRET_YN, 'N') AS SECRET_YN
|
, IFNULL(A.SECRET_YN, 'N') AS SECRET_YN
|
||||||
, IFNULL(A.EMAIL_RECV_YN, 'N') AS EMAIL_RECV_YN
|
, IFNULL(A.EMAIL_RECV_YN, 'N') AS EMAIL_RECV_YN
|
||||||
, A.VIEW_CNT
|
, A.VIEW_CNT
|
||||||
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
|
, CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN
|
||||||
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
||||||
, A2.RNO
|
, A2.RNO
|
||||||
, C.USER_NM AS REG_NM
|
, C.USER_NM AS REG_NM
|
||||||
@ -94,7 +94,7 @@
|
|||||||
, IFNULL(A.SECRET_YN, 'N') AS SECRET_YN
|
, IFNULL(A.SECRET_YN, 'N') AS SECRET_YN
|
||||||
, A.VIEW_CNT
|
, A.VIEW_CNT
|
||||||
, A.BD_ATTACH_FILE_ID
|
, A.BD_ATTACH_FILE_ID
|
||||||
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
|
, CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN
|
||||||
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
|
||||||
, DATE_FORMAT(A.MOD_DD, '%Y-%m-%d') AS MOD_DD
|
, DATE_FORMAT(A.MOD_DD, '%Y-%m-%d') AS MOD_DD
|
||||||
, C.USER_NM AS REG_NM
|
, C.USER_NM AS REG_NM
|
||||||
@ -182,6 +182,7 @@
|
|||||||
, MOD_DD = NOW()
|
, MOD_DD = NOW()
|
||||||
WHERE QNA_ID = #{articleId}
|
WHERE QNA_ID = #{articleId}
|
||||||
AND BD_TYPE = 'QNA'
|
AND BD_TYPE = 'QNA'
|
||||||
|
AND REG_ID = #{modId} /* 본인글만 삭제 */
|
||||||
AND IFNULL(ANSWER_YN, 'N') = 'N'
|
AND IFNULL(ANSWER_YN, 'N') = 'N'
|
||||||
AND IFNULL(USE_YN, 'Y') = 'Y'
|
AND IFNULL(USE_YN, 'Y') = 'Y'
|
||||||
]]>
|
]]>
|
||||||
|
|||||||
@ -85,8 +85,8 @@ $(window.document).ready(function() {
|
|||||||
url: "${pageContext.request.contextPath}/fileupload/uploadFilesAjax.do?subPathKey=fileupload.bbs.qna.subpath&attachFileId=${searchArticle.bdAttachFileId}"
|
url: "${pageContext.request.contextPath}/fileupload/uploadFilesAjax.do?subPathKey=fileupload.bbs.qna.subpath&attachFileId=${searchArticle.bdAttachFileId}"
|
||||||
});
|
});
|
||||||
|
|
||||||
<c:if test="${searchArticle.attachFileCnt > 0}">
|
|
||||||
// 기존 첨부파일 출력
|
// 기존 첨부파일 출력
|
||||||
|
<c:if test="${searchArticle.attachFileCnt > 0}">
|
||||||
var re = /(?:\.([^.]+))?$/;
|
var re = /(?:\.([^.]+))?$/;
|
||||||
<c:forEach var="attachFile" items="${searchArticle.attachFiles }" varStatus="status">
|
<c:forEach var="attachFile" items="${searchArticle.attachFiles }" varStatus="status">
|
||||||
myDropzone.addFile({
|
myDropzone.addFile({
|
||||||
@ -253,6 +253,25 @@ function fn_saveSubmit() {
|
|||||||
$("#articleForm").submit();
|
$("#articleForm").submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//파일 다운로드
|
||||||
|
function fn_downloadFile(attachFileId, fileSn) {
|
||||||
|
|
||||||
|
if(attachFileId == null || attachFileId.trim().length < 1) {
|
||||||
|
alert("파일정보를 확인해 주시기 바랍니다.[1]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(fileSn < 1) {
|
||||||
|
alert("파일정보를 확인해 주시기 바랍니다.[3]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$("#attachFileId").val(attachFileId);
|
||||||
|
$("#fileSn").val(fileSn);
|
||||||
|
|
||||||
|
$("#downloadFileForm").submit();
|
||||||
|
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
@ -288,17 +307,14 @@ function fn_saveSubmit() {
|
|||||||
<input type="hidden" name="searchType" id="searchType" title="검색구분" value="${searchArticle.searchType}" />
|
<input type="hidden" name="searchType" id="searchType" title="검색구분" value="${searchArticle.searchType}" />
|
||||||
<input type="hidden" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchArticle.searchKeyword}" />
|
<input type="hidden" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchArticle.searchKeyword}" />
|
||||||
<input type="hidden" name="articleId" id="articleId" title="선택글번호" value="${searchArticle.articleId}" />
|
<input type="hidden" name="articleId" id="articleId" title="선택글번호" value="${searchArticle.articleId}" />
|
||||||
<input type="hidden" name="regId" id="regId" value="${searchArticle.loginedMbInfoId}" />
|
<input type="hidden" name="fileList" id="fileList" title="첨부파일정보" />
|
||||||
<input type="hidden" name="regName" id="regName" value="${searchArticle.loginedName}" />
|
<input type="hidden" name="delFileList" id="delFileList" title="삭제첨부파일정보" />
|
||||||
<input type="hidden" name="fileList" id="fileList" title="첨부파일정보" />
|
<input type="hidden" name="bdAttachFileId" id="bdAttachFileId" value="${searchArticle.bdAttachFileId}" />
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<li class="wt-title fl">
|
<li class="wt-title fl">
|
||||||
<div class="w-tit">제목</div>
|
<div class="w-tit">제목</div>
|
||||||
<div class="w-form">
|
<div class="w-form">
|
||||||
delFileList : <input type="text" name="delFileList" id="delFileList" title="삭제첨부파일정보" />
|
|
||||||
bdAttachFileId : <input type="text" name="bdAttachFileId" id="bdAttachFileId" value="${searchArticle.bdAttachFileId}" />
|
|
||||||
|
|
||||||
<input type="text" name="title" id="title" title="제목" value="${searchArticle.title}" size="100" maxlength="200" class="grid-1" placeholder="제목을 입력하세요." required />
|
<input type="text" name="title" id="title" title="제목" value="${searchArticle.title}" size="100" maxlength="200" class="grid-1" placeholder="제목을 입력하세요." required />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@ -355,3 +371,13 @@ function fn_saveSubmit() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 첨부파일 다운로드용 폼 -->
|
||||||
|
<form name="downloadFileForm" id="downloadFileForm"
|
||||||
|
action="${pageContext.request.contextPath}/fileupload/downloadAttachFile.do"
|
||||||
|
method="post">
|
||||||
|
<input type="hidden" name="bdType" id="bdType" value="ANCMNT" readonly />
|
||||||
|
<input type="hidden" name="attachFileId" id="attachFileId" value="" readonly />
|
||||||
|
<input type="hidden" name="streFileNm" id="streFileNm" value="" readonly />
|
||||||
|
<input type="hidden" name="fileSn" id="fileSn" value="" readonly />
|
||||||
|
<input type="hidden" name="orignlFileNm" id="orignlFileNm" value="" readonly />
|
||||||
|
</form>
|
||||||
|
|||||||
@ -38,11 +38,6 @@
|
|||||||
|
|
||||||
$( document ).ready(function() {
|
$( document ).ready(function() {
|
||||||
|
|
||||||
// 메시지 표출
|
|
||||||
if(!fn_isEmpty('${message}')) {
|
|
||||||
alert("${message}");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 검색 수행 이벤트
|
// 검색 수행 이벤트
|
||||||
$("#btnSearch").on("click", function(e) {
|
$("#btnSearch").on("click", function(e) {
|
||||||
fn_searchArticle(1);
|
fn_searchArticle(1);
|
||||||
@ -56,6 +51,11 @@
|
|||||||
//초기 자료 조회
|
//초기 자료 조회
|
||||||
fn_searchArticle();
|
fn_searchArticle();
|
||||||
|
|
||||||
|
// 메시지 표출
|
||||||
|
if(!fn_isEmpty('${message}')) {
|
||||||
|
alert("${message}");
|
||||||
|
}
|
||||||
|
|
||||||
}); // document ready
|
}); // document ready
|
||||||
|
|
||||||
|
|
||||||
@ -175,6 +175,7 @@
|
|||||||
|
|
||||||
//게시글 작성으로 이동
|
//게시글 작성으로 이동
|
||||||
function fn_newArticle() {
|
function fn_newArticle() {
|
||||||
|
|
||||||
<sec:authorize access="not isAuthenticated()">
|
<sec:authorize access="not isAuthenticated()">
|
||||||
alert("로그인 후, 이용하여 주시기 바랍니다.");
|
alert("로그인 후, 이용하여 주시기 바랍니다.");
|
||||||
</sec:authorize>
|
</sec:authorize>
|
||||||
@ -182,6 +183,7 @@
|
|||||||
<sec:authorize access="isAuthenticated()">
|
<sec:authorize access="isAuthenticated()">
|
||||||
$("#articleNo").val("");
|
$("#articleNo").val("");
|
||||||
$("#articleForm").attr("action", "${pageContext.request.contextPath}/bbs/insertQnaForm.do");
|
$("#articleForm").attr("action", "${pageContext.request.contextPath}/bbs/insertQnaForm.do");
|
||||||
|
$('#articleForm').removeAttr('onsubmit');
|
||||||
$("#articleForm").submit();
|
$("#articleForm").submit();
|
||||||
</sec:authorize>
|
</sec:authorize>
|
||||||
}
|
}
|
||||||
|
|||||||
@ -198,10 +198,9 @@ function fn_downloadFile(attachFileId, fileSn) {
|
|||||||
<form name="downloadFileForm" id="downloadFileForm"
|
<form name="downloadFileForm" id="downloadFileForm"
|
||||||
action="${pageContext.request.contextPath}/fileupload/downloadAttachFile.do"
|
action="${pageContext.request.contextPath}/fileupload/downloadAttachFile.do"
|
||||||
method="post">
|
method="post">
|
||||||
<input type="hidden" name="bdType" id="bdType" value="ANCMNT" readonly />
|
<input type="hidden" name="bdType" id="bdType" value="QNA" />
|
||||||
<input type="hidden" name="attachFileId" id="attachFileId" value="" readonly />
|
<input type="hidden" name="attachFileId" id="attachFileId" value="" />
|
||||||
<input type="hidden" name="streFileNm" id="streFileNm" value="" readonly />
|
<input type="hidden" name="streFileNm" id="streFileNm" value="" />
|
||||||
<input type="hidden" name="fileSn" id="fileSn" value="" readonly />
|
<input type="hidden" name="fileSn" id="fileSn" value="" />
|
||||||
<input type="hidden" name="orignlFileNm" id="orignlFileNm" value="" readonly />
|
<input type="hidden" name="orignlFileNm" id="orignlFileNm" value="" />
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
@ -269,16 +269,30 @@
|
|||||||
_ref = file.previewElement.querySelectorAll("[data-dz-name]");
|
_ref = file.previewElement.querySelectorAll("[data-dz-name]");
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
node = _ref[_i];
|
node = _ref[_i];
|
||||||
node.textContent = (file.name + "_" + file.accepted + "_" + file.type); // DDDDDDDDDDDDDDDDDDDDddddd
|
node.textContent = file.name;
|
||||||
}
|
}
|
||||||
_ref1 = file.previewElement.querySelectorAll("[data-dz-size]");
|
_ref1 = file.previewElement.querySelectorAll("[data-dz-size]");
|
||||||
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
||||||
node = _ref1[_j];
|
node = _ref1[_j];
|
||||||
node.innerHTML = this.filesize(file.size);
|
node.innerHTML = this.filesize(file.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 이미 등록된 파일인 경우, 다운로드 가능토록 처리
|
||||||
|
if(file.fileUploadType && file.fileUploadType == "uploaded") {
|
||||||
|
_ref1 = file.previewElement.querySelectorAll("[data-dz-file-icon]");
|
||||||
|
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
||||||
|
node = _ref1[_j];
|
||||||
|
node.title = '이미 등록된 파일입니다. 클릭하여 다운로드할 수 있습니다.';
|
||||||
|
$(node).css("cursor", "pointer");
|
||||||
|
$(node).on("click", function() {
|
||||||
|
fn_downloadFile(file.attachFileId, file.fileSn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (this.options.addRemoveLinks) {
|
if (this.options.addRemoveLinks) {
|
||||||
//file._removeLink = Dropzone.createElement("<a class=\"dz-remove\" href=\"javascript:undefined;\" data-dz-remove>" + this.options.dictRemoveFile + "</a>");
|
//file._removeLink = Dropzone.createElement("<a class=\"dz-remove\" href=\"javascript:undefined;\" data-dz-remove>" + this.options.dictRemoveFile + "</a>");
|
||||||
// NLIB DDDDDDDDDDDDDDDDDDDDDDDDDDDD
|
// 첨부파일 삭제버트 변경 (NLIB)
|
||||||
file._removeLink = Dropzone.createElement('<button class="close" data-dz-remove><img src="/images/btn/btn-close-maplayer.png" alt="닫기 아이콘"></button>');
|
file._removeLink = Dropzone.createElement('<button class="close" data-dz-remove><img src="/images/btn/btn-close-maplayer.png" alt="닫기 아이콘"></button>');
|
||||||
file.previewElement.appendChild(file._removeLink);
|
file.previewElement.appendChild(file._removeLink);
|
||||||
}
|
}
|
||||||
@ -412,7 +426,15 @@
|
|||||||
queuecomplete: noop,
|
queuecomplete: noop,
|
||||||
addedfiles: noop,
|
addedfiles: noop,
|
||||||
//previewTemplate: "<div class=\"dz-preview dz-file-preview\">\n <div class=\"dz-image\"><img data-dz-thumbnail /></div>\n <div class=\"dz-details\">\n <div class=\"dz-size\"><span data-dz-size></span></div>\n <div class=\"dz-filename\"><span data-dz-name></span></div>\n </div>\n <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress></span></div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n <div class=\"dz-success-mark\">\n <svg width=\"54px\" height=\"54px\" viewBox=\"0 0 54 54\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\">\n <title>Check</title>\n <defs></defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" sketch:type=\"MSPage\">\n <path d=\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\" id=\"Oval-2\" stroke-opacity=\"0.198794158\" stroke=\"#747474\" fill-opacity=\"0.816519475\" fill=\"#FFFFFF\" sketch:type=\"MSShapeGroup\"></path>\n </g>\n </svg>\n </div>\n <div class=\"dz-error-mark\">\n <svg width=\"54px\" height=\"54px\" viewBox=\"0 0 54 54\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\">\n <title>Error</title>\n <defs></defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" sketch:type=\"MSPage\">\n <g id=\"Check-+-Oval-2\" sketch:type=\"MSLayerGroup\" stroke=\"#747474\" stroke-opacity=\"0.198794158\" fill=\"#FFFFFF\" fill-opacity=\"0.816519475\">\n <path d=\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\" id=\"Oval-2\" sketch:type=\"MSShapeGroup\"></path>\n </g>\n </g>\n </svg>\n </div>\n</div>"
|
//previewTemplate: "<div class=\"dz-preview dz-file-preview\">\n <div class=\"dz-image\"><img data-dz-thumbnail /></div>\n <div class=\"dz-details\">\n <div class=\"dz-size\"><span data-dz-size></span></div>\n <div class=\"dz-filename\"><span data-dz-name></span></div>\n </div>\n <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress></span></div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n <div class=\"dz-success-mark\">\n <svg width=\"54px\" height=\"54px\" viewBox=\"0 0 54 54\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\">\n <title>Check</title>\n <defs></defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" sketch:type=\"MSPage\">\n <path d=\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\" id=\"Oval-2\" stroke-opacity=\"0.198794158\" stroke=\"#747474\" fill-opacity=\"0.816519475\" fill=\"#FFFFFF\" sketch:type=\"MSShapeGroup\"></path>\n </g>\n </svg>\n </div>\n <div class=\"dz-error-mark\">\n <svg width=\"54px\" height=\"54px\" viewBox=\"0 0 54 54\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\">\n <title>Error</title>\n <defs></defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" sketch:type=\"MSPage\">\n <g id=\"Check-+-Oval-2\" sketch:type=\"MSLayerGroup\" stroke=\"#747474\" stroke-opacity=\"0.198794158\" fill=\"#FFFFFF\" fill-opacity=\"0.816519475\">\n <path d=\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\" id=\"Oval-2\" sketch:type=\"MSShapeGroup\"></path>\n </g>\n </g>\n </svg>\n </div>\n</div>"
|
||||||
previewTemplate: '<div class="file dz-preview dz-file-preview"><span class="icon"><img src="/images/icon/icon-file.png" alt="파일 아이콘"></span><span class="text"><span data-dz-name></span><em>(<span data-dz-size></span>)</em></span></div>&nsp;'
|
previewTemplate:
|
||||||
|
'<div class="file dz-preview dz-file-preview">' +
|
||||||
|
'<span class="icon"><img src="/images/icon/icon-file.png" data-dz-file-icon alt="파일 아이콘"></span>' +
|
||||||
|
'<span class="text"><span data-dz-name></span>' +
|
||||||
|
'<em>(<span data-dz-size></span>)</em>' +
|
||||||
|
'</span></div>'
|
||||||
|
// data-dz-file-icon span data-dz-name
|
||||||
|
// /images/icon/icon-file-down.png
|
||||||
|
// /images/icon/icon-file.png
|
||||||
};
|
};
|
||||||
|
|
||||||
extend = function() {
|
extend = function() {
|
||||||
@ -987,7 +1009,12 @@
|
|||||||
bytesSent: 0
|
bytesSent: 0
|
||||||
};
|
};
|
||||||
this.files.push(file);
|
this.files.push(file);
|
||||||
file.status = Dropzone.ADDED;
|
|
||||||
|
if(file.fileUploadType && file.fileUploadType == 'uploaded') { // NLIB
|
||||||
|
file.status = Dropzone.SUCCESS
|
||||||
|
} else {
|
||||||
|
file.status = Dropzone.ADDED;
|
||||||
|
}
|
||||||
this.emit("addedfile", file);
|
this.emit("addedfile", file);
|
||||||
this._enqueueThumbnail(file);
|
this._enqueueThumbnail(file);
|
||||||
return this.accept(file, (function(_this) {
|
return this.accept(file, (function(_this) {
|
||||||
@ -1604,6 +1631,12 @@
|
|||||||
|
|
||||||
Dropzone.isValidFile = function(file, acceptedFiles) {
|
Dropzone.isValidFile = function(file, acceptedFiles) {
|
||||||
var baseMimeType, mimeType, validType, _i, _len;
|
var baseMimeType, mimeType, validType, _i, _len;
|
||||||
|
|
||||||
|
if(file.fileUploadType == 'uploaded') {
|
||||||
|
// 이미 등록된 파일로써 true 처리 (NLIB)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!acceptedFiles) {
|
if (!acceptedFiles) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user