관심자료 css, 관심온오프
This commit is contained in:
parent
c1e3a619e0
commit
647f05974b
@ -11,7 +11,7 @@ public interface InterestService
|
||||
|
||||
public int countListInterests(CollectionVO vo);
|
||||
|
||||
public void deleteInterests(List<Integer> mbInterestIdList, String mbInfoId);
|
||||
public void deleteInterests(List<String> masterIdList, String mbInfoId);
|
||||
|
||||
public void insertInterest(CollectionVO vo);
|
||||
|
||||
|
||||
@ -45,12 +45,11 @@ public class InterestServiceImpl implements InterestService
|
||||
* (non-Javadoc)
|
||||
* @see nlib.col.service.CollectionService#deleteInterests(java.util.List)
|
||||
*/
|
||||
public void deleteInterests(List<Integer> mbInterestIdList,String mbInfoId) {
|
||||
public void deleteInterests(List<String> masterIdList,String mbInfoId) {
|
||||
CollectionVO vo = new CollectionVO();
|
||||
vo.setMbInfoId(mbInfoId);
|
||||
|
||||
for(Integer mbInterestId : mbInterestIdList) {
|
||||
vo.setMbInterestId(mbInterestId);
|
||||
for(String masterId : masterIdList) {
|
||||
vo.setMasterId(masterId);
|
||||
interestDAO.deleteInterests(vo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,7 +23,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import nlib.cmm.NlibCommonController;
|
||||
import nlib.cmm.service.CodeService;
|
||||
import nlib.cmm.service.NlibProperty;
|
||||
import nlib.cmm.service.PagingVO;
|
||||
import nlib.col.service.RisService;
|
||||
import nlib.col.service.CollectionService;
|
||||
import nlib.col.service.CollectionVO;
|
||||
import nlib.col.service.DeptVO;
|
||||
import nlib.col.service.InterestService;
|
||||
@ -68,6 +70,9 @@ public class InterestController extends NlibCommonController
|
||||
@Resource(name = "codeService")
|
||||
private CodeService codeService;
|
||||
|
||||
@Resource(name = "collectionService")
|
||||
private CollectionService collectionService;
|
||||
|
||||
/**
|
||||
* 관심 자료 화면을 호출한다.
|
||||
*
|
||||
@ -99,14 +104,17 @@ public class InterestController extends NlibCommonController
|
||||
*
|
||||
* @param req
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value="/interest/listInterestsAjax.do")
|
||||
public ResponseEntity<String> listInterestsAjax(HttpServletRequest req,
|
||||
Authentication authentication, @RequestBody CollectionVO searchCollectionVO) {
|
||||
public ResponseEntity<String> listInterestsAjax(HttpServletRequest req, HttpServletRequest request,
|
||||
Authentication authentication, @RequestBody CollectionVO searchCollectionVO) throws Exception {
|
||||
|
||||
if(searchCollectionVO.getPageIndex() < 1) searchCollectionVO.setPageIndex(1);
|
||||
if(searchCollectionVO.getPageSize() < 1) searchCollectionVO.setPageSize(DEFUALT_PAGE_SIZE);
|
||||
|
||||
List<CollectionVO> operList = new ArrayList();
|
||||
|
||||
int totalCount= 0;
|
||||
//사용자 정보를 가져온다.
|
||||
NlibLoginVO loginVO = getNlibLoginVO(authentication);
|
||||
@ -119,6 +127,8 @@ public class InterestController extends NlibCommonController
|
||||
List = interestService.listInterests(searchCollectionVO);
|
||||
totalCount = interestService.countListInterests(searchCollectionVO);
|
||||
|
||||
String mbInfoId = getMbInfoId(request);
|
||||
operList = collectionService.setDetailInfoForList(List, getMbInfoId(request), NlibProperty.getString("thumbnail.image.url.small"));
|
||||
//-------------------------------
|
||||
// JSON변환 응답 처리
|
||||
//-------------------------------
|
||||
@ -127,9 +137,17 @@ public class InterestController extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", List);
|
||||
retMap.put("data", operList);
|
||||
retMap.put("itemsCount", totalCount);
|
||||
|
||||
PagingVO pageVO = new PagingVO();
|
||||
pageVO.setPagingVO(totalCount, searchCollectionVO.getPageIndex(), searchCollectionVO.getPageSize());
|
||||
retMap.put("pagingPageIndex" , pageVO.getPageIndex());
|
||||
retMap.put("pagingTotRecordCount", pageVO.getTotRecordCount());
|
||||
retMap.put("pagingStartPage" , pageVO.getStartPage());
|
||||
retMap.put("pagingEndPage" , pageVO.getEndPage());
|
||||
retMap.put("pagingLastPage" , pageVO.getLastPage());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
}
|
||||
|
||||
@ -139,9 +157,9 @@ public class InterestController extends NlibCommonController
|
||||
*/
|
||||
@RequestMapping(value="/interest/deleteInterests.ajax")
|
||||
@ResponseBody
|
||||
public void deleteInterests(@RequestParam(value="mbInterestIdList[]") List<Integer> mbInterestIdList,Authentication authentication) {
|
||||
public void deleteInterests(@RequestParam(value="masterIdList[]") List<String> masterIdList,Authentication authentication) {
|
||||
NlibLoginVO loginVO = getNlibLoginVO(authentication);
|
||||
interestService.deleteInterests(mbInterestIdList,loginVO.getMbInfoId());
|
||||
interestService.deleteInterests(masterIdList,loginVO.getMbInfoId());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -45,24 +45,22 @@ public class NlibSearchVO extends PagingVO {
|
||||
|
||||
private String reQuery = ""; //결과내 재검색
|
||||
private String reQueryChk ="query"; //결과내재검색 체크 유지
|
||||
|
||||
private String realQuery =""; //사용자페이지에 보여줄 검색내용
|
||||
private String lib_total_totalCount = ""; //전체의 총 COUNT
|
||||
private String lib_loan_totalCount = ""; //대출의 총 COUNT
|
||||
private String lib_online_totalCount = ""; //온라인열람의 총 COUNT
|
||||
private String lib_offline_totalCount = ""; //방문열람의 총 COUNT
|
||||
private String lib_etc_totalCount = ""; //기타의 총 COUNT
|
||||
private String totalCount = ""; //현재 선택된 콜렉션의 총 COUNT
|
||||
|
||||
private String totalCount = "0"; //현재 선택된 콜렉션의 총 COUNT
|
||||
|
||||
private String filter_class = ""; //필터 더보기버튼 유지+depth1 open
|
||||
private String filter_sido ; //필터 더보기버튼 유지+depth1 open
|
||||
private String filter_thema ; //필터 더보기버튼 유지+depth1 open
|
||||
private String filter_category ; //필터 더보기버튼 유지+depth1 open
|
||||
private String filter_info_sido ; //필터 더보기버튼 유지
|
||||
private String filter_info_type ; //필터 더보기버튼 유지
|
||||
private String filter_agency ; // 생산기관은 depth1 이므로 filter_agency로 checked,검색필터유지
|
||||
private String filter_mylist; //검색결과 필터 순서 저장
|
||||
private String filter_info_mylist; //검색결과 필터 info 순서 저장
|
||||
private String filter_creatYyyy =""; //생산년도 필터
|
||||
|
||||
private String first_agency ; //생산기관 선택
|
||||
private String first_category ; //주제분야(대) 선택
|
||||
private String second_category ; //주제분야(소) 선택
|
||||
private String first_class ; //자료유형(대) 선택
|
||||
@ -79,48 +77,18 @@ public class NlibSearchVO extends PagingVO {
|
||||
public void setFilter_class(String filter_class) {
|
||||
this.filter_class = filter_class;
|
||||
}
|
||||
public String getFilter_sido() {
|
||||
return filter_sido;
|
||||
}
|
||||
public void setFilter_sido(String filter_sido) {
|
||||
this.filter_sido = filter_sido;
|
||||
}
|
||||
public String getFilter_thema() {
|
||||
return filter_thema;
|
||||
}
|
||||
public void setFilter_thema(String filter_thema) {
|
||||
this.filter_thema = filter_thema;
|
||||
}
|
||||
public String getFilter_category() {
|
||||
return filter_category;
|
||||
}
|
||||
public void setFilter_category(String filter_category) {
|
||||
this.filter_category = filter_category;
|
||||
}
|
||||
public String getFilter_info_sido() {
|
||||
return filter_info_sido;
|
||||
}
|
||||
public void setFilter_info_sido(String filter_info_sido) {
|
||||
this.filter_info_sido = filter_info_sido;
|
||||
}
|
||||
public String getFilter_info_type() {
|
||||
return filter_info_type;
|
||||
}
|
||||
public void setFilter_info_type(String filter_info_type) {
|
||||
this.filter_info_type = filter_info_type;
|
||||
}
|
||||
public String getFilter_mylist() {
|
||||
return filter_mylist;
|
||||
}
|
||||
public void setFilter_mylist(String filter_mylist) {
|
||||
this.filter_mylist = filter_mylist;
|
||||
}
|
||||
public String getFilter_info_mylist() {
|
||||
return filter_info_mylist;
|
||||
}
|
||||
public void setFilter_info_mylist(String filter_info_mylist) {
|
||||
this.filter_info_mylist = filter_info_mylist;
|
||||
}
|
||||
public String getReQuery() {
|
||||
return reQuery;
|
||||
}
|
||||
@ -332,6 +300,23 @@ public class NlibSearchVO extends PagingVO {
|
||||
public void setOrgCountList(List<HashMap<String, String>> orgCountList) {
|
||||
this.orgCountList = orgCountList;
|
||||
}
|
||||
public String getRealQuery() {
|
||||
String realQuery="";
|
||||
if(StringUtil.getString(this.query,"") != "")
|
||||
realQuery = this.query;
|
||||
if(StringUtil.getString(this.reQuery,"") != "")
|
||||
{
|
||||
if(realQuery.length() > 0)
|
||||
{
|
||||
realQuery += "(" + this.reQuery + ")";
|
||||
}else
|
||||
{
|
||||
realQuery = this.reQuery;
|
||||
}
|
||||
}
|
||||
return realQuery;
|
||||
}
|
||||
|
||||
//검색요청시 URL 생성
|
||||
public MultiValueMap<String, String> getSearchMap() {
|
||||
|
||||
@ -352,13 +337,13 @@ public class NlibSearchVO extends PagingVO {
|
||||
add(map,"USE_STATUS",this.useStatus);
|
||||
add(map,"TYPE_DIV_CD",this.typeDivCd);
|
||||
add(map,"SUBJECT_CODE",this.subjectCode);
|
||||
add(map,"ORG_NM,",this.orgNm);
|
||||
add(map,"listCount",this.listCount);
|
||||
add(map,"SUBJECT_CATE_DEPTH","2"); //주제분야 2뎁스까지 나오게 고정
|
||||
add(map,"DIV_CATE_DEPTH","2"); //자료유형 2뎁스까지 나오게 고정
|
||||
|
||||
add(map,"DTLS_TYPE_DIV_CD",StringUtil.getString(this.second_class,"").replace(",","|"));
|
||||
add(map,"SUBJECT_CODE",StringUtil.getString(this.second_category,"").replace(",","|"));
|
||||
add(map,"ORG_NM",StringUtil.getString(this.filter_agency,"").replace(",","|"));
|
||||
return map;
|
||||
}
|
||||
|
||||
@ -381,4 +366,16 @@ public class NlibSearchVO extends PagingVO {
|
||||
this.lib_total_totalCount = totalCount;
|
||||
}
|
||||
}
|
||||
public String getFirst_agency() {
|
||||
return first_agency;
|
||||
}
|
||||
public void setFirst_agency(String first_agency) {
|
||||
this.first_agency = first_agency;
|
||||
}
|
||||
public String getFilter_agency() {
|
||||
return filter_agency;
|
||||
}
|
||||
public void setFilter_agency(String filter_agency) {
|
||||
this.filter_agency = filter_agency;
|
||||
}
|
||||
}
|
||||
|
||||
@ -204,16 +204,24 @@ public class NlibSearchServiceImpl implements NlibSearchService{
|
||||
orgList = (JsonArray) filterObject.get("ORG_NM");
|
||||
}
|
||||
}
|
||||
filterObject =(JsonObject) subjectList.get(0);
|
||||
filterObject = (JsonObject) filterObject.get("Categories");
|
||||
subjectList = (JsonArray) filterObject.get("Category");
|
||||
filterObject =(JsonObject) typeList.get(0);
|
||||
filterObject = (JsonObject) filterObject.get("Categories");
|
||||
typeList = (JsonArray) filterObject.get("Category");
|
||||
filterObject =(JsonObject) orgList.get(0);
|
||||
filterObject = (JsonObject) filterObject.get("Categories");
|
||||
orgList = (JsonArray) filterObject.get("Category");
|
||||
|
||||
if(subjectList.size()>0)
|
||||
{
|
||||
filterObject =(JsonObject) subjectList.get(0);
|
||||
filterObject = (JsonObject) filterObject.get("Categories");
|
||||
subjectList = (JsonArray) filterObject.get("Category");
|
||||
};
|
||||
if(typeList.size()>0)
|
||||
{
|
||||
filterObject =(JsonObject) typeList.get(0);
|
||||
filterObject = (JsonObject) filterObject.get("Categories");
|
||||
typeList = (JsonArray) filterObject.get("Category");
|
||||
};
|
||||
if(orgList.size()>0)
|
||||
{
|
||||
filterObject =(JsonObject) orgList.get(0);
|
||||
filterObject = (JsonObject) filterObject.get("Categories");
|
||||
orgList = (JsonArray) filterObject.get("Category");
|
||||
};
|
||||
for(k = 0; k < subjectList.size(); k++){
|
||||
HashMap<String,String> temp = new HashMap<String,String>();
|
||||
filterObject = (JsonObject)subjectList.get(k);
|
||||
|
||||
@ -18,6 +18,7 @@ import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import cmm.Constant;
|
||||
|
||||
@ -31,7 +31,7 @@ public interface MemberService
|
||||
|
||||
public DataApiResVO certificateMember(DataApiReqVO reqVO);
|
||||
|
||||
public NlibLoginVO insertMemberInfo(NlibLoginVO vo) throws Exception;
|
||||
public void insertMemberInfo(NlibLoginVO vo) throws Exception;
|
||||
|
||||
public DataApiResVO sendEmailForMemberJoining(DataApiReqVO reqVO);
|
||||
|
||||
@ -51,7 +51,7 @@ public interface MemberService
|
||||
|
||||
public String createInitPwd();
|
||||
|
||||
public String selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception;
|
||||
public NlibLoginVO selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception;
|
||||
|
||||
public void insertMemberSns(OAuthUniversalUser oauthUser);
|
||||
|
||||
|
||||
@ -38,6 +38,7 @@ public class NlibLoginVO implements Serializable {
|
||||
private String mbInfoId; /* 회원아이디 (ex: M1000000001) */
|
||||
private String loginUserId; /* 로그인사용자ID (이메일주소) */
|
||||
private String name; /* 사용자명 */
|
||||
private String nameTemp = ""; /* 비밀번호찾기시 사용자이름 임시저장용 */
|
||||
private String mobileNo; /* 휴대전화번호 */
|
||||
private String password; /* 비밀번호 */
|
||||
private String email; /* 이메일 */
|
||||
@ -83,7 +84,12 @@ public class NlibLoginVO implements Serializable {
|
||||
|
||||
private boolean alerted = false; /* 로그인 후, 읽지 않은 알림 표출 여부 */
|
||||
|
||||
|
||||
private String infoRecvEmailYn = ""; /* 대출/열람 수신동의(이메일) */
|
||||
private String infoRecvSmsYn = ""; /* 대출/열람 수신동의(SMS) */
|
||||
private String mktRecvEmailYn = ""; /* 지방문화원 소식/홍보 수신동의(이메일) */
|
||||
private String mktRecvSmsYn = ""; /* 지방문화원 소식/홍보 수신동의 (SMS)*/
|
||||
|
||||
private String previousPage =""; /* 이전 페이지명 저장 */
|
||||
/**
|
||||
* 개인정보 암호화 내용 양방황 암호화 처리 대상인 항목에 대하여 인코딩 처리
|
||||
*/
|
||||
@ -420,4 +426,52 @@ public class NlibLoginVO implements Serializable {
|
||||
this.emailTemp = emailTemp;
|
||||
}
|
||||
|
||||
public String getInfoRecvEmailYn() {
|
||||
return infoRecvEmailYn;
|
||||
}
|
||||
|
||||
public void setInfoRecvEmailYn(String infoRecvEmailYn) {
|
||||
this.infoRecvEmailYn = infoRecvEmailYn;
|
||||
}
|
||||
|
||||
public String getInfoRecvSmsYn() {
|
||||
return infoRecvSmsYn;
|
||||
}
|
||||
|
||||
public void setInfoRecvSmsYn(String infoRecvSmsYn) {
|
||||
this.infoRecvSmsYn = infoRecvSmsYn;
|
||||
}
|
||||
|
||||
public String getMktRecvEmailYn() {
|
||||
return mktRecvEmailYn;
|
||||
}
|
||||
|
||||
public void setMktRecvEmailYn(String mktRecvEmailYn) {
|
||||
this.mktRecvEmailYn = mktRecvEmailYn;
|
||||
}
|
||||
|
||||
public String getMktRecvSmsYn() {
|
||||
return mktRecvSmsYn;
|
||||
}
|
||||
|
||||
public void setMktRecvSmsYn(String mktRecvSmsYn) {
|
||||
this.mktRecvSmsYn = mktRecvSmsYn;
|
||||
}
|
||||
|
||||
public String getNameTemp() {
|
||||
return nameTemp;
|
||||
}
|
||||
|
||||
public void setNameTemp(String nameTemp) {
|
||||
this.nameTemp = nameTemp;
|
||||
}
|
||||
|
||||
public String getPreviousPage() {
|
||||
return previousPage;
|
||||
}
|
||||
|
||||
public void setPreviousPage(String previousPage) {
|
||||
this.previousPage = previousPage;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ public interface MemberDAO
|
||||
|
||||
public void insertMemberSns(OAuthUniversalUser oauthUser);
|
||||
|
||||
public String selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception;
|
||||
public NlibLoginVO selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception;
|
||||
|
||||
public List<NlibLoginVO> selectAlreadySignUpMobile(NlibLoginVO loginVO) throws Exception;
|
||||
|
||||
|
||||
@ -41,18 +41,15 @@ public class MemberServiceImpl implements MemberService
|
||||
return null;
|
||||
}
|
||||
|
||||
public NlibLoginVO insertMemberInfo(NlibLoginVO vo) throws Exception {
|
||||
NlibLoginVO result =new NlibLoginVO();
|
||||
public void insertMemberInfo(NlibLoginVO vo) throws Exception {
|
||||
//회원정보 암호화
|
||||
String encodedText=null;
|
||||
encodedText = egovPasswordEncoder.encryptPassword(vo.getLoginUserId()+vo.getPassword());
|
||||
vo.setPassword(encodedText);
|
||||
vo.encodePrivateInfo();
|
||||
//회원가입 정보
|
||||
memberDAO.insertMemberInfo(vo);
|
||||
//가입한 정보의 UID select
|
||||
result=memberDAO.selectAlreadySignUpMobile(vo).get(0);
|
||||
return result;
|
||||
memberDAO.insertMemberInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
public DataApiResVO sendEmailForMemberJoining(DataApiReqVO reqVO) {
|
||||
@ -205,7 +202,7 @@ public class MemberServiceImpl implements MemberService
|
||||
return dummyPW;
|
||||
}
|
||||
|
||||
public String selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception {
|
||||
public NlibLoginVO selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception {
|
||||
//이메일 암호화
|
||||
oauthUser.setSnsEmail(ariaCrypto.encode(oauthUser.getSnsUserId()));
|
||||
return memberDAO.selectAlreadySignUpId(oauthUser);
|
||||
|
||||
@ -79,10 +79,12 @@ public class UserInfoServiceImpl implements UserInfoService
|
||||
*/
|
||||
public NlibLoginVO selectMyInfo(NlibLoginVO vo) throws Exception {
|
||||
vo.setMobileNo(ariaCrypto.encode(vo.getMobileNo()));
|
||||
vo.setEmail(ariaCrypto.encode(vo.getEmail()));
|
||||
NlibLoginVO loginVO =userInfoDAO.selectMyInfo(vo);
|
||||
// 개인정보 암호화 내용 복호화 처리
|
||||
if(loginVO != null) {
|
||||
loginVO.setMobileNo(AriaCrypto.decode(loginVO.getMobileNo()));
|
||||
loginVO.setEmail(AriaCrypto.decode(loginVO.getEmail()));
|
||||
}
|
||||
return loginVO;
|
||||
}
|
||||
|
||||
@ -115,12 +115,15 @@ public class MemberController extends NlibCommonController{
|
||||
|
||||
/* 이메일 메시지 및 템플릿 정보 */
|
||||
//템플릿 파일경로
|
||||
@Value("#{properties['mailing.sender.membership.template']}")
|
||||
private String template;
|
||||
@Value("#{properties['mailing.sender.membership.signUpTemplate']}")
|
||||
private String signUpTemplate;
|
||||
|
||||
@Value("#{properties['mailing.sender.membership.pwdTemplate']}")
|
||||
private String pwdTemplate;
|
||||
|
||||
@Value("#{properties['mailing.sender.membership.certTemplate']}")
|
||||
private String certTemplate;
|
||||
|
||||
//보내는 사람 이메일주소
|
||||
@Value("#{properties['mailing.sender.membership.email']}")
|
||||
private String senderAddr;
|
||||
@ -133,10 +136,18 @@ public class MemberController extends NlibCommonController{
|
||||
@Value("#{properties['sms.sender.phone.number']}")
|
||||
private String senderNumber;
|
||||
|
||||
//hostName(이미지 접근)
|
||||
@Value("#{properties['host.name']}")
|
||||
private String hostName;
|
||||
|
||||
//게스트 USERID
|
||||
@Value("#{properties['guest.userid']}")
|
||||
private String gUserId;
|
||||
|
||||
//마이페이지 uri
|
||||
@Value("#{properties['mypage.uri']}")
|
||||
private String myPageUri;
|
||||
|
||||
@Autowired
|
||||
private EmailSender emailSender;
|
||||
|
||||
@ -214,20 +225,23 @@ public class MemberController extends NlibCommonController{
|
||||
|
||||
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
|
||||
|
||||
String mId = null;
|
||||
|
||||
if(!(oauthUser == null))
|
||||
{
|
||||
// 등록된 ID가 있는 지 확인
|
||||
if(!(StringUtil.getString(oauthUser.getSnsUserId(),"")== ""))
|
||||
mId =memberService.selectAlreadySignUpId(oauthUser);
|
||||
vo = memberService.selectAlreadySignUpId(oauthUser);
|
||||
}
|
||||
/* 등록된 ID가 있을때 통합처리 */
|
||||
if(!StringUtil.getString(mId, "").equals(""))
|
||||
if(vo != null && !StringUtil.getString(vo.getMbInfoId(), "").equals(""))
|
||||
{
|
||||
oauthUser.setMbInfoId(mId);
|
||||
oauthUser.setMbInfoId(vo.getMbInfoId());
|
||||
memberService.insertMemberSns(oauthUser);
|
||||
|
||||
vo.setEmail(StringUtil.maskEmail(ariaCrypto.decode(vo.getEmail())));
|
||||
vo.setName(StringUtil.maskName(vo.getName()));
|
||||
System.out.println(oauthUser.getSnsUserId());
|
||||
oauthUser.setSnsUserId(StringUtil.maskEmail(oauthUser.getSnsUserId()));
|
||||
model.addAttribute("NlibLoginVO",vo);
|
||||
model.addAttribute("oauthUser",oauthUser);
|
||||
//통합처리 url
|
||||
return "nlib/member/accountConsolidationForm";
|
||||
}
|
||||
@ -245,7 +259,7 @@ public class MemberController extends NlibCommonController{
|
||||
// 등록된 전화번호가 있는 지 확인 (리스트)
|
||||
voList = memberService.selectAlreadySignUpMobile(vo);
|
||||
|
||||
vo.decodePrivateInfo();
|
||||
vo.setMobileNo(ariaCrypto.decode(vo.getMobileNo()));
|
||||
|
||||
//사용자ID 마스킹처리
|
||||
for(int i=0;voList.size()>i;i++)
|
||||
@ -256,6 +270,7 @@ public class MemberController extends NlibCommonController{
|
||||
|
||||
model.addAttribute("cnt",voList.size());
|
||||
model.addAttribute("result",voList);
|
||||
model.addAttribute("vo",vo);
|
||||
return "nlib/member/alreadySignUpPopup";
|
||||
}
|
||||
|
||||
@ -264,7 +279,7 @@ public class MemberController extends NlibCommonController{
|
||||
* @exception Exception
|
||||
*/
|
||||
@RequestMapping(value="/member/snsAccountLink.ajax" , method=RequestMethod.POST)
|
||||
public @ResponseBody String snsAccountLink(NlibLoginVO vo,HttpServletResponse response,Authentication authentication,HttpServletRequest request,HttpSession session) throws Exception{
|
||||
public @ResponseBody String snsAccountLink(NlibLoginVO vo,HttpServletResponse response,Authentication authentication,ModelMap model,HttpServletRequest request,HttpSession session) throws Exception{
|
||||
NlibLoginVO loginVO = new NlibLoginVO();
|
||||
loginVO.setMbInfoId(vo.getMbInfoId());
|
||||
|
||||
@ -283,6 +298,8 @@ public class MemberController extends NlibCommonController{
|
||||
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
|
||||
oauthUser.setMbInfoId(vo.getMbInfoId());
|
||||
memberService.insertMemberSns(oauthUser);
|
||||
model.addAttribute("oauthUser",oauthUser);
|
||||
model.addAttribute("NlibLoginVO",vo);
|
||||
msg="link";
|
||||
}else {
|
||||
msg="mismatch";
|
||||
@ -351,8 +368,6 @@ public class MemberController extends NlibCommonController{
|
||||
model.addAttribute("url","${pageContext.request.contextPath}"+NlibProperty.getString("member.new.url"));
|
||||
return "nlib/cmm/alert";
|
||||
}
|
||||
/*vo.setMobileVrfctNo(vo.getMobileVrfctNo());
|
||||
vo.setMobileVrfctDd(vo.getMobileVrfctNo());*/
|
||||
}
|
||||
//이메일인증시 sns제공 이메일과 회원가입폼 이메일 비교
|
||||
if(!(vo.getEmail().equals(oauthUser.getSnsUserId())))
|
||||
@ -368,25 +383,36 @@ public class MemberController extends NlibCommonController{
|
||||
}
|
||||
//문화원코드
|
||||
String councilCd = (String)session.getAttribute("councilCd");
|
||||
|
||||
String councilNm = (String)session.getAttribute("councilNm");
|
||||
//클라이언트 IP주소
|
||||
vo.setIp(getRemoteIP(request));
|
||||
|
||||
//회원정보 insert
|
||||
NlibLoginVO result =memberService.insertMemberInfo(vo);
|
||||
memberService.insertMemberInfo(vo);
|
||||
|
||||
//sns 테이블 insert
|
||||
oauthUser.setMbInfoId(result.getMbInfoId());
|
||||
oauthUser.setMbInfoId(vo.getMbInfoId());
|
||||
|
||||
memberService.insertMemberSns(oauthUser);
|
||||
|
||||
// 결과가 정상이면, 안내 메일 발송
|
||||
// > 템플릿파일에서 내용 mailing.sender.membership.template
|
||||
// > 템플릿파일에서 내용 mailing.sender.membership.signUpTemplate
|
||||
// > 발송처리 요청
|
||||
vo.setEmail(ariaCrypto.decode(vo.getEmail()));
|
||||
|
||||
SimpleDateFormat format = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");
|
||||
Date date = new Date();
|
||||
String time = format.format(date);
|
||||
|
||||
Map<String, Object> replaceContents = new HashMap<String, Object>();
|
||||
replaceContents.put("${contents}", vo.getName());
|
||||
emailUtil.sendEmail(vo.getLoginUserId(),"온라인자료대출시스템 회원가입을 축하드립니다.",replaceContents,template);
|
||||
replaceContents.put("${name}", vo.getName());
|
||||
replaceContents.put("${email}", vo.getEmail());
|
||||
replaceContents.put("${councilNm}", councilNm);
|
||||
replaceContents.put("${hostName}", hostName);
|
||||
replaceContents.put("${time}", time);
|
||||
emailUtil.sendEmail(vo.getEmail(),"온라인자료대출시스템 회원가입을 축하드립니다.",replaceContents,signUpTemplate);
|
||||
|
||||
model.addAttribute("result",vo);
|
||||
return "nlib/member/insertMemberInfoResult";
|
||||
}
|
||||
/**
|
||||
@ -406,7 +432,8 @@ public class MemberController extends NlibCommonController{
|
||||
authUser.setSnsEmail(email);
|
||||
|
||||
String mbInfoId="";
|
||||
String chk= memberService.selectAlreadySignUpId(authUser);
|
||||
NlibLoginVO chk = new NlibLoginVO();
|
||||
chk = memberService.selectAlreadySignUpId(authUser);
|
||||
|
||||
String jsessionId = session.getId();
|
||||
|
||||
@ -415,7 +442,7 @@ public class MemberController extends NlibCommonController{
|
||||
mbInfoId= loginVO.getMbInfoId();
|
||||
|
||||
//중복된 아이디가 있을시(로그인시 본인의 mbInfoId 와 동일한경우는 제외)
|
||||
if(chk != null && !(chk.equals(mbInfoId)))
|
||||
if(chk != null && !(chk.getMbInfoId().equals(mbInfoId)))
|
||||
{
|
||||
|
||||
map.put("msg","이미 사용중인 이메일입니다.");
|
||||
@ -453,12 +480,22 @@ public class MemberController extends NlibCommonController{
|
||||
|
||||
//이메일 발송
|
||||
// 결과가 정상이면, 안내 메일 발송
|
||||
// > 템플릿파일에서 내용 mailing.sender.membership.template
|
||||
// > 템플릿파일에서 내용 mailing.sender.membership.certTemplate
|
||||
// > 발송처리 요청
|
||||
Map<String, Object> replaceContents = new HashMap<String, Object>();
|
||||
replaceContents.put("${contents}", "인증번호는"+CertNumber+"입니다.");
|
||||
emailUtil.sendEmail(email,"온라인자료대출시스템 이메일 인증번호",replaceContents,template);
|
||||
|
||||
SimpleDateFormat format = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");
|
||||
Date date = new Date();
|
||||
String time = format.format(date);
|
||||
|
||||
String councilNm = (String)session.getAttribute("councilNm");
|
||||
|
||||
replaceContents.put("${certNumber}", CertNumber);
|
||||
replaceContents.put("${time}", time);
|
||||
replaceContents.put("${hostName}", hostName);
|
||||
replaceContents.put("${councilNm}", councilNm);
|
||||
|
||||
emailUtil.sendEmail(email,"온라인자료대출시스템 이메일 인증번호입니다.",replaceContents,certTemplate);
|
||||
map.put("msg","이메일 인증번호가 발송됐습니다.");
|
||||
map.put("emailCertYn","Y");
|
||||
return map;
|
||||
@ -628,6 +665,7 @@ public class MemberController extends NlibCommonController{
|
||||
loginVO.setEmail(StringUtil.maskEmail(loginVO.getEmail()));
|
||||
loginVO.setName(StringUtil.maskName(loginVO.getName()));
|
||||
model.addAttribute("loginVO",loginVO);
|
||||
model.addAttribute("myPageUri",myPageUri);
|
||||
return "nlib/member/deleteMembershipForm";
|
||||
}
|
||||
|
||||
@ -671,8 +709,8 @@ public class MemberController extends NlibCommonController{
|
||||
* @exception Exception
|
||||
*/
|
||||
@RequestMapping(value="/member/initPasswordForm.do")
|
||||
public String searchIdForm(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||
|
||||
public String searchIdForm(NlibLoginVO vo,HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{
|
||||
model.addAttribute("loginVO", vo);
|
||||
return "nlib/member/initPasswordForm";
|
||||
}
|
||||
|
||||
@ -681,21 +719,34 @@ public class MemberController extends NlibCommonController{
|
||||
* @exception Exception
|
||||
*/
|
||||
@RequestMapping(value="/member/initPassword.ajax")
|
||||
public @ResponseBody String initPassword(NlibLoginVO vo,HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{
|
||||
vo.encodePrivateInfo();
|
||||
public @ResponseBody String initPassword(NlibLoginVO vo,HttpSession session,HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{
|
||||
//내정보페이지, 회원가입시 핸드폰번호가 같을시 비밀번호 초기화
|
||||
String email = vo.getEmail();
|
||||
vo.setEmail("");
|
||||
|
||||
//mbinfo를 이용해 조회
|
||||
NlibLoginVO loginVO=userInfoService.selectMyInfo(vo);
|
||||
|
||||
EmailVO email = new EmailVO();
|
||||
if(!email.equals(loginVO.getEmail()))
|
||||
{
|
||||
return "fail";
|
||||
}
|
||||
|
||||
String name="";
|
||||
|
||||
//내 정보 수정시 비밀번호 찾기 , 회원가입시 비밀번호찾기 메일발송시(마스킹) 차별화
|
||||
if(vo != null && "alreadySignUpPopup".equals(vo.getPreviousPage()) )
|
||||
{
|
||||
name = vo.getNameTemp();
|
||||
}else {
|
||||
name = loginVO.getName();
|
||||
}
|
||||
|
||||
String message = null;
|
||||
|
||||
//비밀번호 초기화 변수 생성
|
||||
String InitPwd=memberService.createInitPwd();
|
||||
|
||||
String encodedText=null;
|
||||
|
||||
vo.decodePrivateInfo();
|
||||
String initPwd=memberService.createInitPwd();
|
||||
//vo.decodePrivateInfo();
|
||||
|
||||
if(loginVO!=null)
|
||||
{
|
||||
@ -703,14 +754,27 @@ public class MemberController extends NlibCommonController{
|
||||
// > 템플릿파일에서 내용 mailing.sender.membership.pwdtemplate
|
||||
// > 발송처리 요청
|
||||
|
||||
Map<String, Object> replaceContents = new HashMap<String, Object>();
|
||||
replaceContents.put("${contents}", InitPwd);
|
||||
emailUtil.sendEmail(vo.getEmail(),"온라인자료대출시스템 비밀번호 초기화 메일입니다.",replaceContents,pwdTemplate);
|
||||
|
||||
SimpleDateFormat format = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");
|
||||
Date date = new Date();
|
||||
String time = format.format(date);
|
||||
|
||||
message="초기화된 비밀번호가 이메일로 발송됐습니다.";
|
||||
String councilNm = (String)session.getAttribute("councilNm");
|
||||
|
||||
Map<String, Object> replaceContents = new HashMap<String, Object>();
|
||||
System.out.println(loginVO.getLoginUserId()+initPwd);
|
||||
loginVO.setPassword(egovPasswordEncoder.encryptPassword(loginVO.getLoginUserId()+initPwd));
|
||||
memberService.changePassword(loginVO);
|
||||
|
||||
replaceContents.put("${initPwd}", initPwd);
|
||||
replaceContents.put("${time}", time);
|
||||
replaceContents.put("${hostName}", hostName);
|
||||
replaceContents.put("${councilNm}", councilNm);
|
||||
replaceContents.put("${name}", name);
|
||||
emailUtil.sendEmail(email,"온라인자료대출시스템 비밀번호 초기화 메일입니다.",replaceContents,pwdTemplate);
|
||||
|
||||
message="success";
|
||||
}else {
|
||||
message="일치하는 아이디가 없습니다.";
|
||||
message="fail";
|
||||
}
|
||||
|
||||
return message;
|
||||
@ -733,15 +797,15 @@ public class MemberController extends NlibCommonController{
|
||||
|
||||
String message="";
|
||||
|
||||
if(loginVO!=null && (loginVO.getPassword().equals(password)))
|
||||
if(loginVO!=null && loginVO.getPassword().equals(password))
|
||||
{
|
||||
loginVO.setPassword(newPassword);
|
||||
loginVO.encodePrivateInfo();
|
||||
//암호화된 비밀번호로 수정
|
||||
memberService.changePassword(loginVO);
|
||||
message="비밀번호 변경이 처리되었습니다.";
|
||||
message="success";
|
||||
}else {
|
||||
message="기존 비밀번호가 올바르지 않습니다.";
|
||||
message="fail";
|
||||
}
|
||||
|
||||
return message;
|
||||
|
||||
@ -13,6 +13,7 @@ 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.MediaType;
|
||||
@ -80,7 +81,10 @@ public class UserInfoController extends NlibCommonController {
|
||||
@Resource(name = "qrCodeService")
|
||||
private QRCodeUtil qrCodeService;
|
||||
|
||||
|
||||
//마이페이지 uri
|
||||
@Value("#{properties['mypage.uri']}")
|
||||
private String myPageUri;
|
||||
|
||||
/**
|
||||
* 내 정보 조회
|
||||
* @exception Exception
|
||||
@ -109,7 +113,6 @@ public class UserInfoController extends NlibCommonController {
|
||||
snsList = userInfoService.selectSnsSignUpList(loginVO);
|
||||
|
||||
String encodedText=null;
|
||||
System.out.println(loginVO.getLoginUserId()+vo.getPassword());
|
||||
encodedText = egovPasswordEncoder.encryptPassword(loginVO.getLoginUserId()+vo.getPassword());
|
||||
vo.setPassword(encodedText);
|
||||
|
||||
@ -143,7 +146,7 @@ public class UserInfoController extends NlibCommonController {
|
||||
||loginVO.getEmailVrfctDd() == null)
|
||||
{
|
||||
model.addAttribute("msg","이메일인증이 정상적이지않습니다.");
|
||||
model.addAttribute("url","${pageContext.request.contextPath}"+"/userInfo/getMyInfo.do");
|
||||
model.addAttribute("url",myPageUri);
|
||||
return "nlib/cmm/alert";
|
||||
}
|
||||
vo.setEmail(loginVO.getEmailTemp());
|
||||
@ -155,7 +158,7 @@ public class UserInfoController extends NlibCommonController {
|
||||
||loginVO.getMobileVrfctDd() == null)
|
||||
{
|
||||
model.addAttribute("msg","핸드폰인증이 정상적이지않습니다.");
|
||||
model.addAttribute("url","${pageContext.request.contextPath}"+"/userInfo/getMyInfo.do");
|
||||
model.addAttribute("url",myPageUri);
|
||||
return "nlib/cmm/alert";
|
||||
}
|
||||
vo.setMobileNo(loginVO.getMobileTemp());
|
||||
@ -170,9 +173,11 @@ public class UserInfoController extends NlibCommonController {
|
||||
NlibLoginVO sessionVO=(NlibLoginVO) SecUserDetailsService.loadUserByUsername(vo.getLoginUserId());
|
||||
|
||||
//세션에 수정정보로 재 주입
|
||||
replaceNlibLoginVO(request,sessionVO);
|
||||
replaceNlibLoginVO(request,loginVO);
|
||||
|
||||
return "nlib/userInfo/getMyInfo";
|
||||
model.addAttribute("msg","수정되었습니다.");
|
||||
model.addAttribute("url",myPageUri);
|
||||
return "nlib/cmm/alert";
|
||||
}
|
||||
|
||||
/**
|
||||
@ -180,8 +185,9 @@ public class UserInfoController extends NlibCommonController {
|
||||
* @exception Exception
|
||||
*/
|
||||
@RequestMapping(value="/userInfo/pwCertMyInfo.do")
|
||||
public String pwCertMyInfo(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||
|
||||
public String pwCertMyInfo(HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{
|
||||
NlibLoginVO nlibLoginVO = getNlibLoginVO(request);
|
||||
model.addAttribute("loginVO",nlibLoginVO);
|
||||
return "nlib/userInfo/pwCertMyInfo";
|
||||
}
|
||||
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
SET
|
||||
USE_YN="N"
|
||||
WHERE 1=1
|
||||
AND MB_INTEREST_ID = #{mbInterestId}
|
||||
AND MASTER_ID = #{masterId}
|
||||
AND MB_INFO_ID = #{mbInfoId}
|
||||
</update>
|
||||
|
||||
|
||||
@ -30,6 +30,10 @@
|
||||
, B.SNS_TYPE
|
||||
, B.SNS_ID
|
||||
, 'ROLE_USER' AS AUTHORITY_LIST
|
||||
, A.INFO_RECV_EMAIL_YN
|
||||
, A.INFO_RECV_SMS_YN
|
||||
, A.MKT_RECV_EMAIL_YN
|
||||
, A.MKT_RECV_SMS_YN
|
||||
FROM UAC_CLTR_DB.MB_INFO A /* 사용자정보 */
|
||||
JOIN UAC_CLTR_DB.MB_SNS B /* 사용자 SNS 정보 */
|
||||
ON A.MB_INFO_ID = B.MB_INFO_ID
|
||||
|
||||
@ -23,9 +23,9 @@
|
||||
|
||||
<!-- 회원가입 -->
|
||||
<insert id="insertMemberInfo" parameterType="NlibLoginVO">
|
||||
<selectKey resultType="java.lang.String" keyProperty="mbInfoId" order="BEFORE">
|
||||
<selectKey keyProperty="mbInfoId" resultType="String" order="BEFORE">
|
||||
SELECT CONCAT(LEFT(MAX(MB_INFO_ID),2),
|
||||
LPAD(RIGHT(MAX(MB_INFO_ID),9)+1,9,0)) FROM MB_INFO;
|
||||
LPAD(RIGHT(MAX(MB_INFO_ID),9)+1,9,0)) AS mbInfoId FROM MB_INFO;
|
||||
</selectKey>
|
||||
INSERT INTO
|
||||
MB_INFO
|
||||
@ -51,6 +51,10 @@
|
||||
,MOBILE_VRFCT_DD
|
||||
,IP
|
||||
,LAST_ACCESS_DD
|
||||
,INFO_RECV_EMAIL_YN
|
||||
,INFO_RECV_SMS_YN
|
||||
,MKT_RECV_EMAIL_YN
|
||||
,MKT_RECV_SMS_YN
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@ -74,7 +78,11 @@
|
||||
,#{mobileVrfctNo}
|
||||
,STR_TO_DATE(#{mobileVrfctDd},'%Y-%m-%d %H:%i:%S')
|
||||
,#{ip}
|
||||
,NOW()
|
||||
,NOW()
|
||||
,#{infoRecvEmailYn}
|
||||
,#{infoRecvSmsYn}
|
||||
,#{mktRecvEmailYn}
|
||||
,#{mktRecvSmsYn}
|
||||
)
|
||||
</insert>
|
||||
|
||||
@ -87,33 +95,31 @@
|
||||
,MOD_ID = #{mbInfoId}
|
||||
,MOD_DD = NOW()
|
||||
WHERE 1=1
|
||||
AND EMAIL = #{email}
|
||||
AND MB_INFO_ID = #{mbInfoId}
|
||||
|
||||
</update>
|
||||
<!-- 회원가입시 SNS인증한 계정 ID와 일치하는 계정이 있는지 체크 -->
|
||||
<select id="selectAlreadySignUpId" parameterType="egovframework.com.ext.oauth.service.OAuthUniversalUser" resultType="String">
|
||||
<select id="selectAlreadySignUpId" parameterType="egovframework.com.ext.oauth.service.OAuthUniversalUser" resultType="NlibLoginVO">
|
||||
SELECT
|
||||
MB_INFO_ID
|
||||
MB_INFO_ID
|
||||
,LOGIN_USER_ID
|
||||
,NAME
|
||||
,EMAIL
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
MB_INFO_ID
|
||||
,LOGIN_USER_ID
|
||||
,EMAIL
|
||||
FROM
|
||||
MB_INFO
|
||||
WHERE 1=1
|
||||
AND (LOGIN_USER_ID = #{snsUserId} OR EMAIL = #{snsEmail})
|
||||
UNION ALL
|
||||
SELECT
|
||||
MB_INFO_ID
|
||||
,SNS_USER_ID LOGIN_USER_ID
|
||||
,"" EMAIL
|
||||
FROM
|
||||
MB_SNS
|
||||
WHERE 1=1
|
||||
AND SNS_USER_ID = #{snsUserId}
|
||||
AND UNLINK_DD IS NULL
|
||||
SELECT
|
||||
s1.MB_INFO_ID
|
||||
,s1.LOGIN_USER_ID LOGIN_USER_ID
|
||||
,s1.EMAIL EMAIL
|
||||
,s1.NAME
|
||||
,s1.STATUS
|
||||
FROM
|
||||
MB_INFO s1, MB_SNS s2
|
||||
WHERE 1=1
|
||||
AND s1.MB_INFO_ID = s2.MB_INFO_ID
|
||||
AND s1.LOGIN_USER_ID = #{snsUserId} OR s1.EMAIL = #{snsEmail} OR s2.SNS_USER_ID = #{snsUserId}
|
||||
AND s2.UNLINK_DD IS NULL
|
||||
AND s1.STATUS ="S"
|
||||
) MB
|
||||
LIMIT 1;
|
||||
</select>
|
||||
@ -130,7 +136,7 @@
|
||||
MB_INFO
|
||||
WHERE 1=1
|
||||
AND MOBILE_NO = #{mobileNo}
|
||||
LIMIT 1
|
||||
AND STATUS ="S"
|
||||
</select>
|
||||
|
||||
<!-- 회원가입시 sns 계정 추가 , 기존 계정 ID와 일치시 통합처리시 추가 -->
|
||||
@ -189,14 +195,16 @@
|
||||
MB_INFO
|
||||
SET
|
||||
LEAVE_SITE_DATE = DATE_FORMAT(CURDATE(), '%Y%m%d')
|
||||
,LOGIN_USER_ID=#{loginUserId} + '-' + {mbInfoId}
|
||||
,STATUS = "D"
|
||||
,BIRTHDAY = NULL
|
||||
,ZIP_CODE = NULL
|
||||
,ADDRESS = NULL
|
||||
,ADDRESS_DETAIL = NULL
|
||||
,GENDER = NULL
|
||||
,EMAIL = NULL
|
||||
,PASSWORD = NULL
|
||||
,MOBILE_NO = "-"
|
||||
,EMAIL = "-"
|
||||
,PASSWORD = "-"
|
||||
WHERE 1=1
|
||||
AND MB_INFO_ID = #{mbInfoId}
|
||||
</update>
|
||||
|
||||
@ -47,6 +47,8 @@
|
||||
,LOGIN_USER_ID
|
||||
,MOBILE_NO
|
||||
,PASSWORD
|
||||
,NAME
|
||||
,EMAIL
|
||||
FROM
|
||||
MB_INFO
|
||||
WHERE 1=1
|
||||
@ -81,6 +83,10 @@
|
||||
,GENDER=#{gender}
|
||||
,MOD_ID=#{mbInfoId}
|
||||
,MOD_DD=NOW()
|
||||
,INFO_RECV_SMS_YN=#{infoRecvSmsYn}
|
||||
,INFO_RECV_EMAIL_YN=#{infoRecvEmailYn}
|
||||
,MKT_RECV_SMS_YN=#{mktRecvSmsYn}
|
||||
,MKT_RECV_EMAIL_YN=#{mktRecvEmailYn}
|
||||
WHERE 1=1
|
||||
AND MB_INFO_ID=#{mbInfoId}
|
||||
</update>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -169,22 +169,29 @@
|
||||
<div class="list">
|
||||
<div class="icon"><img src="/images/icon/icon-data-use.png" alt="이용상태 아이콘"></div>
|
||||
<div class="title">이용상태</div>
|
||||
<div class="con">대출중 (대기자 <span>0</span>명)</div>
|
||||
<div class="con"><c:out value="${result.useStatusNm}"/> <span>(대기자 <c:out value="${result.awaiterCnt}"/>명)</span></div>
|
||||
</div>
|
||||
<div class="list">
|
||||
<div class="icon"><img src="/images/icon/icon-data-return.png" alt="달력 아이콘"></div>
|
||||
<div class="title">반납예정일</div>
|
||||
<div class="con"><span>2021-08-27</span></div>
|
||||
<div class="con"><span><c:out value="${result.rtnExpctDd}"/></span></div>
|
||||
</div>
|
||||
<div class="list">
|
||||
<div class="icon"><img src="/images/icon/icon-data-loan.png" alt="대출 아이콘"></div>
|
||||
<div class="title">대출</div>
|
||||
<div class="con"><span class="poss">예약가능</span></div>
|
||||
<div class="con">
|
||||
<c:if test="${result.bookLentPsblYn eq 'Y' && result.rsrvPsblYn eq 'Y'}"><span class="poss">신청가능</span></c:if>
|
||||
<c:if test="${result.bookLentPsblYn eq 'N' && result.rsrvPsblYn eq 'Y' }"><span class="poss">예약가능</span></c:if>
|
||||
<c:if test="${result.bookLentPsblYn ne 'Y' && result.rsrvPsblYn ne 'Y'}"><span class="imposs">신청/예약불가</span></c:if>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list">
|
||||
<div class="icon"><img src="/images/icon/icon-data-visit.png" alt="방문 아이콘"></div>
|
||||
<div class="title">방문열람</div>
|
||||
<div class="con"><span class="imposs">신청불가</span></div>
|
||||
<div class="con">
|
||||
<c:if test="${result.reqPsblYn eq 'Y' }"><span class="poss">신청가능</span></c:if>
|
||||
<c:if test="${result.reqPsblYn ne 'Y' }"><span class="imposs">신청불가</span></c:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-box">
|
||||
@ -199,7 +206,7 @@
|
||||
<button type="button" class="down-btn">down-btn</button>
|
||||
</div>
|
||||
<div class="bottom h-down">
|
||||
<p><span>1부</span> 역사 속의 경주1 - 경주, 조선의 500년 역사를 찾다</p>
|
||||
<p><span>1부</span> <c:out value="${result.bookIndex }"/></p>
|
||||
<p><span>2부</span> 역사 속의 경주2 - 금오산을 바라본 조선문인의 시선</p>
|
||||
<p><span>3부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
|
||||
<p><span>4부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
|
||||
|
||||
@ -53,6 +53,19 @@
|
||||
|
||||
|
||||
window.onload = function() {
|
||||
<%//상단 검색바 셋팅%>
|
||||
$("#top_query").val('${searchVO.query}');
|
||||
if(sfield == "TITLE")
|
||||
{
|
||||
$("#sfield").val(sfield);
|
||||
}
|
||||
|
||||
var sfield = '${searchVO.sfield}';
|
||||
if(sfield == "TITLE")
|
||||
{
|
||||
$("#sfield").val(sfield);
|
||||
}
|
||||
|
||||
// 페이지 크기 변경시 재조회
|
||||
$("#pageSize").on("change", function(e) {
|
||||
fnFilterSch();
|
||||
@ -79,7 +92,7 @@ window.onload = function() {
|
||||
|
||||
//초기값
|
||||
fnSetInitialValue();
|
||||
//생산기관적용버튼
|
||||
//생산년도적용버튼
|
||||
filter_creatYyyyAply();
|
||||
//필터클릭체크
|
||||
reference_filterClk();
|
||||
@ -88,13 +101,12 @@ window.onload = function() {
|
||||
fnLabel_reference();
|
||||
//초기화
|
||||
reference_filterReset();
|
||||
|
||||
}; // window.onload
|
||||
|
||||
//페이지 로드시 초기값셋팅
|
||||
function fnSetInitialValue()
|
||||
{
|
||||
//상세검색
|
||||
$("#top_query").val("${searchVO.query}");
|
||||
//탭
|
||||
$("#"+"${searchVO.collection}").parent().addClass('current');
|
||||
//페이징
|
||||
@ -115,15 +127,6 @@ function fnSetInitialValue()
|
||||
}else{
|
||||
$("#m-year-1").prop('checked',true);
|
||||
}
|
||||
|
||||
//상단 검색바
|
||||
$("#top_query").val('${searchVO.query}');
|
||||
var sfield = '${searchVO.sfield}';
|
||||
|
||||
if(sfield = "TITLE")
|
||||
{
|
||||
$("#sfield").val(sfield);
|
||||
}
|
||||
}
|
||||
//탭 이동
|
||||
function fnTabMoveSch(collection){
|
||||
@ -164,13 +167,10 @@ function fn_search_article(pageIndex) {
|
||||
|
||||
<input type="hidden" id="filter_creatYyyy" name="filter_creatYyyy" value='${searchVO.filter_creatYyyy}' />
|
||||
|
||||
<input type="hidden" name="filter_class" value='${searchVO.first_class}' />
|
||||
<input type="hidden" name="filter_sido" />
|
||||
<input type="hidden" name="filter_thema" />
|
||||
<input type="hidden" name="filter_category" value='${searchVO.filter_category}'/>
|
||||
<input type="hidden" name="filter_info_sido" />
|
||||
<input type="hidden" name="filter_info_type" />
|
||||
<input type="hidden" id="filter_mylist" name="filter_mylist" value='${searchVO.filter_mylist}'/>
|
||||
<input type="hidden" name="filter_class" value="<c:out value='${searchVO.filter_class}'/>" />
|
||||
<input type="hidden" name="filter_category" value="<c:out value='${searchVO.filter_category}'/>"/>
|
||||
<input type="hidden" id="filter_agency" name="filter_agency" value="<c:out value='${searchVO.filter_agency}'/>"/>
|
||||
<input type="hidden" id="filter_mylist" name="filter_mylist" value="<c:out value='${searchVO.filter_mylist}'/>"/>
|
||||
<div class="location data">
|
||||
<h2 class="blind">소장자료 섹션영역</h2>
|
||||
<div class="inner">
|
||||
@ -211,7 +211,7 @@ function fn_search_article(pageIndex) {
|
||||
<li>
|
||||
<div class="depth-1 <c:if test="${fn:contains(searchVO.filter_class, firstClassList.column1) }"> on</c:if>">
|
||||
<div class="check">
|
||||
<input type="checkbox" value="${firstClassList.column1}" name="first_class" id="data-type-chk${fcStatus.index+1}" <c:if test="${fn:contains(searchVO.first_class, firstClassList.column1) }">checked="checked"</c:if> />
|
||||
<input type="checkbox" value="${firstClassList.column1}" name="first_class" id="data-type-chk${fcStatus.index+1}" <c:if test="${fn:contains(searchVO.filter_class, firstClassList.column1) }">checked="checked"</c:if> />
|
||||
<label for="data-type-chk${fcStatus.index+1}">${firstClassList.sCodeNm}(<span>${firstClassList.cnt }</span>) </label>
|
||||
</div>
|
||||
</div>
|
||||
@ -245,7 +245,7 @@ function fn_search_article(pageIndex) {
|
||||
<c:if test="${firstCategoryInfo.upClsfId eq '2' }">
|
||||
<li>
|
||||
<div class="depth-1 <c:if test="${fn:contains(searchVO.filter_category, firstCategoryInfo.clsfId) }"> on</c:if>">
|
||||
<div class="check"><input type="checkbox" value="${firstCategoryInfo.clsfId}" id="theme-chk${count+1}" name="first_category" <c:if test="${fn:contains(searchVO.first_category, firstCategoryInfo.clsfId) }">checked="checked"</c:if>/><label for="theme-chk${count+1}">${firstCategoryInfo.clsfNm}(<span>${firstCategoryInfo.cnt}</span>)</label></div>
|
||||
<div class="check"><input type="checkbox" value="${firstCategoryInfo.clsfId}" id="theme-chk${count+1}" name="first_category" <c:if test="${fn:contains(searchVO.filter_category, firstCategoryInfo.clsfId) }">checked="checked"</c:if>/><label for="theme-chk${count+1}">${firstCategoryInfo.clsfNm}(<span>${firstCategoryInfo.cnt}</span>)</label></div>
|
||||
</div>
|
||||
<ul class="depth-2">
|
||||
<c:forEach var="secondCategoryInfo" items="${secondCategoryList}" varStatus="seStatus">
|
||||
@ -294,7 +294,7 @@ function fn_search_article(pageIndex) {
|
||||
<c:forEach var="result" items="${searchVO.orgCountList}" varStatus="status">
|
||||
<li>
|
||||
<div class="depth-1">
|
||||
<div class="check"><input type="checkbox" id="agency-chk1"/><label for="agency-chk1">${result.org_nm}(${result.org_cnt})</label></div>
|
||||
<div class="check"><input type="checkbox" id="agency-chk${status.index+1}" value="${result.org_nm}" name="first_agency" <c:if test="${fn:contains(searchVO.filter_agency,result.org_nm)}">checked="checked"</c:if>/><label for="agency-chk${status.index+1}">${result.org_nm}(${result.org_cnt})</label></div>
|
||||
</div>
|
||||
</li>
|
||||
</c:forEach>
|
||||
@ -318,16 +318,16 @@ function fn_search_article(pageIndex) {
|
||||
</ul>
|
||||
|
||||
<div class="title">
|
||||
<span class="count">총 <em>
|
||||
<c:choose>
|
||||
<c:when test="${!empty searchVO.totalCount }">
|
||||
<c:out value="${searchVO.totalCount}"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</em>건</span>
|
||||
<c:when test="${searchVO.realQuery ne '' && (!empty searchVO.realQuery) }">
|
||||
<span class="count"><strong>${searchVO.realQuery}</strong>에 대한 검색결과는 총 <em>
|
||||
<fmt:formatNumber value="${searchVO.totalCount}" pattern="#,###" /></em>건 입니다.
|
||||
</span>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<span class="count">총<em><fmt:formatNumber value="${searchVO.totalCount}" pattern="#,###" /></em> 건</span>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<div class="list-search-wrap list-top">
|
||||
<div class="re-search">
|
||||
<label for="reQueryChk"><input type="checkbox" id="reQueryChk" name="reQueryChk" value="query" <c:if test="${searchVO.reQueryChk eq 'reQuery' }">checked="checked"</c:if>>결과 내 재검색</label>
|
||||
@ -360,10 +360,22 @@ function fn_search_article(pageIndex) {
|
||||
</div>
|
||||
<c:forEach var="result" items="${searchVO.resultList}"> <!-- 리스트 출력 시작 -->
|
||||
<div class="list">
|
||||
<div class="t-data" onclick="goDetail('${result.masterId}');">
|
||||
<div class="img"><a href="#">
|
||||
<img src="${result.rprsThumbUrl}" alt="${result.title }">
|
||||
</a><span class="favorites"><img src="images/icon/icon-cart-Favorites.png" class="off" alt="즐겨찾기 아이콘"><img src="images/icon/icon-cart-Favorites-on.png" class="on" alt="즐겨찾기 아이콘"></span>
|
||||
<div class="t-data">
|
||||
<div class="img"><a href="javascript:void(0)"><img src="${result.rprsThumbUrl }" alt="" width="60" height="91" title="상세보기" onclick="goDetail('${result.masterId}');"></a>
|
||||
<sec:authorize access="isAuthenticated()">
|
||||
<c:if test='${result.MUseYn == "Y"}'>
|
||||
<span id="favorites_${result.masterId}" class="favorites" onclick="fn_changeInterest('${result.masterId }', 'off')" title="관심자료에서 삭제합니다.">
|
||||
<img src="/images/icon/icon-cart-Favorites-on.png" class="off" alt="즐겨찾기 아이콘">
|
||||
<img src="/images/icon/icon-cart-Favorites.png" class="on" alt="즐겨찾기 아이콘">
|
||||
</span>
|
||||
</c:if>
|
||||
<c:if test='${result.MUseYn != "Y"}'>
|
||||
<span id="favorites_${result.masterId}" class="favorites" onclick="fn_changeInterest('${result.masterId }', 'on')" title="관심자료로 등록합니다.">
|
||||
<img src="/images/icon/icon-cart-Favorites.png" class="off" alt="즐겨찾기 아이콘">
|
||||
<img src="/images/icon/icon-cart-Favorites-on.png" class="on" alt="즐겨찾기 아이콘">
|
||||
</span>
|
||||
</c:if>
|
||||
</sec:authorize>
|
||||
</div>
|
||||
<div class="type">
|
||||
<c:if test="${(!empty result.openDivCd) && (result.openDivCd ne '3') }">
|
||||
@ -408,7 +420,7 @@ function fn_search_article(pageIndex) {
|
||||
</c:if>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<c:if test="${(!empty result.openDivCd) && (result.openDivCd ne '3') }">
|
||||
<c:if test="${(!empty result.openDivCd) && (result.openDivCd ne '3') && (!empty result.interfaceId)}">
|
||||
<button type="button" class="btn-color">원문보기</button>
|
||||
</c:if>
|
||||
<button type="button" class="btn-gray" onclick="risShow('${result.masterId}')";>RIS</button>
|
||||
|
||||
@ -23,11 +23,18 @@
|
||||
*/
|
||||
%>
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||
<%@ page import="java.util.Date" %>
|
||||
<%@ page import="java.text.SimpleDateFormat" %>
|
||||
<%@ 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"%>
|
||||
<%
|
||||
Date nowTime = new Date();
|
||||
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat sf2 = new SimpleDateFormat("a hh:mm:ss");
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
@ -35,8 +42,45 @@
|
||||
<title>Insert title here</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>계정이 통합되었습니다.</h1>
|
||||
${result.name } ${result.email }
|
||||
|
||||
<!-- 계정연결완료 섹션 -->
|
||||
<div class="location join succ connect">
|
||||
<h2 class="blind">계정연결완료 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<div class="row-top icon">
|
||||
<div class="icon"><img src="/images/icon/icon-connect.png" alt="자물쇠 아이콘"></div>
|
||||
<p>계정연결 완료</p>
|
||||
</div>
|
||||
<div class="contents row-bottom">
|
||||
<div class="join-box">
|
||||
<div class="success">
|
||||
<div class="text">
|
||||
<p>기가입 계정에
|
||||
<span>
|
||||
<c:if test="${oauthUser.snsType eq 'NAVER'}">네이버</c:if>
|
||||
<c:if test="${oauthUser.snsType eq 'KAKAO'}">카카오</c:if>
|
||||
<c:if test="${oauthUser.snsType eq 'GOOGLE'}">구글</c:if>
|
||||
</span>계정이 통합되었습니다.
|
||||
</p>
|
||||
<p><button type="button"><span class="name"><c:out value="${NlibLoginVO.name }"/></span><span class="mail"><c:out value="${NlibLoginVO.email }"/></span></button></p>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="icon">
|
||||
<c:if test="${oauthUser.snsType eq 'NAVER'}"><img src="/images/icon/icon-naver-login.png" alt="네이버 아이콘"></c:if>
|
||||
<c:if test="${oauthUser.snsType eq 'KAKAO'}"><img src="/images/icon/icon-kakao-login.png" alt="카카오 아이콘"></c:if>
|
||||
<c:if test="${oauthUser.snsType eq 'GOOGLE'}"><img src="/images/icon/icon-google-login.png" alt="구글 아이콘"></c:if>
|
||||
</div>
|
||||
<div class="text">
|
||||
<p><c:out value="${oauthUser.snsUserId }"/></p>
|
||||
<p><span class="date"><%= sf.format(nowTime) %></span><span class="time"><%= sf2.format(nowTime) %> 연결완료</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn">
|
||||
<a href="/" class="btn-color">소장자료관으로</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -10,10 +10,6 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Insert title here</title>
|
||||
<script>
|
||||
function notAlreadySingUp()
|
||||
{
|
||||
window.close();
|
||||
}
|
||||
$(document).ready(function(){
|
||||
var cnt=${cnt};
|
||||
|
||||
@ -22,14 +18,25 @@ $(document).ready(function(){
|
||||
} else {
|
||||
window.close();
|
||||
}
|
||||
|
||||
<%//비밀번호 찾기 페이지에서 다시 돌아왔을 경우 %>
|
||||
var previousPage = "${vo.previousPage}";
|
||||
if(previousPage == "alreadySignUpPopup")
|
||||
{
|
||||
$("#alreadySingUpForm").css("display","none");
|
||||
$("#selectAccountForm").css("display","block");
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
function selectAccount(mbInfoId,name,Email)
|
||||
function selectAccount(mbInfoId,name,email)
|
||||
{
|
||||
$("#alreadySingUpForm").css("display","none");
|
||||
$("#mbInfoId").val(mbInfoId);
|
||||
$("#selectName").val(name);
|
||||
$("#selectEmail").val(Email);
|
||||
$("#selectName").text(name);
|
||||
$("#selectEmail").text(email);
|
||||
$("#nameTemp").val(name);
|
||||
$("#emailTemp").val(email);
|
||||
$("#selectAccountForm").css("display","block");
|
||||
}
|
||||
function goPrevious()
|
||||
@ -41,7 +48,7 @@ function goPrevious()
|
||||
function accountLink()
|
||||
{
|
||||
password=$("#selectPassword").val();
|
||||
console.log(password);
|
||||
|
||||
if(password == "")
|
||||
{
|
||||
alert("비밀번호 입력이 필요합니다.");
|
||||
@ -52,8 +59,10 @@ function accountLink()
|
||||
url : "${pageContext.request.contextPath}/member/snsAccountLink.ajax",
|
||||
type : "POST",
|
||||
async: false,
|
||||
data : {"mbInfoId":$("#mbInfoId").val(),
|
||||
"password":password
|
||||
data : {"mbInfoId":$("#mbInfoId").val()
|
||||
,"password":password
|
||||
,"name":$("#nameTemp").val()
|
||||
,"email":$("#emailTemp").val()
|
||||
},
|
||||
success : function(result){
|
||||
if(result=="link")
|
||||
@ -76,7 +85,64 @@ function accountLink()
|
||||
</head>
|
||||
<body>
|
||||
<form id="alreadySingUpForm" name="alreadySingUpForm">
|
||||
<p1>서비스에 이미 가입된 계정이 있습니다.</p1>
|
||||
<!-- 계정연결 팝업 -->
|
||||
<div class="pop-login-connect">
|
||||
<div class="row Title">
|
||||
<p>계정연결</p>
|
||||
<h3>서비스에 이미 가입된<br>계정이 있습니다.</h3>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<div class="row Text">
|
||||
<p>계정연결을 통해 간편하게 <span>로그인할 계정</span>을 선택하세요.</p>
|
||||
</div>
|
||||
<div class="row First">
|
||||
<c:forEach items="${result}" var="result" varStatus="status">
|
||||
<div class="Btn" onClick="selectAccount('<c:out value="${result.mbInfoId}"/>','<c:out value="${result.name}"/>','<c:out value="${result.email}"/>');">
|
||||
<button type="button"><span class="name"><c:out value="${result.name}"/></span><span class="mail"><c:out value="${result.email}"/></span></button>
|
||||
</div>
|
||||
</c:forEach>
|
||||
</div>
|
||||
<div class="row btn">
|
||||
<p><a href="javascript:void(0);" class="cancel" onclick="fn_closeLayerPopup();">아니요, 내가 아닙니다.</a></p>
|
||||
</div>
|
||||
<button type="button" class="login-close" onclick="fn_closeLayerPopup();"></button>
|
||||
</div>
|
||||
<div class="Bg"></div>
|
||||
</div>
|
||||
</form>
|
||||
<form id="selectAccountForm" name="selectAccountForm" style="display:none;">
|
||||
<input type="hidden" id="mbInfoId" name="mbInfoId" value="<c:out value='${vo.mbInfoId }'/>">
|
||||
<input type="hidden" id="nameTemp" name="nameTemp" value="<c:out value='${vo.nameTemp }'/>">
|
||||
<input type="hidden" id="emailTemp" name="emailTemp" value="<c:out value='${vo.emailTemp }'/>">
|
||||
<input type="hidden" id="mobileNo" name="mobileNo" value="<c:out value='${vo.mobileNo }'/>">
|
||||
<input type="hidden" id="previousPage" name="previousPage" value="alreadySignUpPopup">
|
||||
<!-- 계정연결 비밀번호 팝업 -->
|
||||
<div class="pop-login-password">
|
||||
<div class="row Title">
|
||||
<p>계정연결</p>
|
||||
<h3>비밀번호 입력</h3>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<div class="row Text">
|
||||
<p>선택한 계정의 <span>비밀번호</span>를 입력해주세요!</p>
|
||||
</div>
|
||||
<div class="row First">
|
||||
<div class="Btn"><button type="button"><span class="name" id="selectName" name="selectName"><c:out value="${vo.nameTemp}"/></span><span class="mail" id="selectEmail" name="selectEmail"><c:out value="${vo.emailTemp}"/></span></button></div>
|
||||
<div class="passwd"><input type="password" id="selectPassword" name="selectPassword" placeholder="비밀번호"></div>
|
||||
</div>
|
||||
<div class="row btn">
|
||||
<p><a href="javascript:void(0);" class="cancel" onclick="forgetPassword('selectAccountForm');">비밀번호를 잊으셨나요? ></a></p>
|
||||
</div>
|
||||
<div class="row btn-box">
|
||||
<button type="button" class="btn btn-gray" onclick="goPrevious();" id="cancel">이전으로</button>
|
||||
<button type="button" class="btn btn-color" onclick="accountLink();" >계정 연결하기</button>
|
||||
</div>
|
||||
<button type="button" class="login-close" onclick="fn_closeLayerPopup();"></button>
|
||||
</div>
|
||||
<div class="Bg"></div>
|
||||
</div>
|
||||
</form>
|
||||
<%-- <p1>서비스에 이미 가입된 계정이 있습니다.</p1>
|
||||
<table>
|
||||
<c:forEach items="${result}" var="result" varStatus="status">
|
||||
|
||||
@ -96,7 +162,7 @@ function accountLink()
|
||||
<input type="password" id="selectPassword" name="selectPassword" placeholder="비밀번호"><br>
|
||||
<a href="javascript:notAlreadySingUp();" onclick="return false;">비밀번호를 잊으셨나요?</a>
|
||||
<input type="button" onclick="goPrevious();" value="이전으로"><input type="button" onclick="accountLink();" value="계정 연결하기">
|
||||
<input type="hidden" id="mbInfoId" name="mbInfoId">
|
||||
<input type="hidden" id="mbInfoId" name="mbInfoId"> --%>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@ -44,7 +44,7 @@ function deleteMembership()
|
||||
if(result=="delete")
|
||||
{
|
||||
alert("탈퇴처리 되었습니다.감사합니다.");
|
||||
location.href="${pageContext.request.contextPath}/index.do"
|
||||
location.href="${pageContext.request.contextPath}/logout";
|
||||
}else if(result=="mismatch")
|
||||
{
|
||||
alert("비밀번호가 일치하지 않습니다.다시 확인해주세요.");
|
||||
@ -59,11 +59,38 @@ function deleteMembership()
|
||||
</head>
|
||||
<body>
|
||||
<form id="deleteMembershipForm" name="deleteMembershipForm">
|
||||
<p1>회원탈퇴</p1><br>
|
||||
이름 : <c:out value="${loginVO.name }"/><br>
|
||||
이메일 : <c:out value="${loginVO.email }"/><br>
|
||||
<input type="password" id="password" name="password" placeholder="비밀번호"><br>
|
||||
<input type="button" onclick="deleteMembership();" value="탈퇴하기"><input type="button" onclick="location.href='${pageContext.request.contextPath}/userInfo/putMyInfo.do'" value="취소">
|
||||
<!-- 회원탈퇴 섹션 -->
|
||||
<div class="location secession">
|
||||
<h2 class="blind">회원탈퇴 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<div class="row-top icon">
|
||||
<div class="icon"><img src="/images/icon/icon-secession.png" alt="회원탈퇴 아이콘"></div>
|
||||
<p>회원탈퇴 안내</p>
|
||||
</div>
|
||||
<div class="contents row-bottom">
|
||||
<div class="sec-box">
|
||||
<div class="text">
|
||||
<p>문화원 소장자료관 <span>회원탈퇴</span> 안내입니다.</p>
|
||||
<div class="inner-box">
|
||||
<p>문화원 소장자료관 홈페이지 회원탈퇴 시, 홈페이지에서 제공하는 모든 서비스를 이용하실 수 없게 됩니다.</p>
|
||||
<p>회원탈퇴 시, 회원정보 복원이 불가능합니다.</p>
|
||||
<p>회원탈퇴 시, 회원 정보는 즉시 삭제되며, 계정과 연계된 모든 정보도 함께 삭제됩니다.</p>
|
||||
<p>대출중인 자료가 있을 경우 회원탈퇴가 불가능합니다. </p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<p><span class="name">이름</span><span class="con"><c:out value="${loginVO.name }"/></span></p>
|
||||
<p><span class="name">이메일</span><span class="con"><c:out value="${loginVO.email }"/></span></p>
|
||||
<p><input type="password" id="password" name="password" placeholder="비밀번호"></p>
|
||||
</div>
|
||||
<div class="btn-box">
|
||||
<button type="button" class="btn btn-color" onclick="deleteMembership();">탈퇴하기</button>
|
||||
<button type="button" class="btn btn-gray" onclick="location.href='${myPageUri}'">취소</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@ -24,44 +24,108 @@
|
||||
%>
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||
pageEncoding="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"%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Insert title here</title>
|
||||
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var previousPage ="${loginVO.previousPage}";
|
||||
if(previousPage == "alreadySignUpPopup")
|
||||
{
|
||||
document.getElementById("cancle").setAttribute("onClick", "fn_cancle()");
|
||||
}else
|
||||
{
|
||||
document.getElementById("cancle").setAttribute("onClick", "fn_closeLayerPopup()");
|
||||
}
|
||||
|
||||
});
|
||||
function goFindPw(){
|
||||
|
||||
var data = $("form[name=initPw]").serialize();
|
||||
|
||||
if(confirm("비밀번호를 초기화 하시겠습니까?"))
|
||||
var regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
||||
if($("#initPw [name=email]").val() == "")
|
||||
{
|
||||
$("#initPw [name=email]").focus();
|
||||
alert("이메일을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if(!regExp.test($("#initPw [name=email]").val()))
|
||||
{
|
||||
$("#initPw [name=email]").focus();
|
||||
alert("이메일을 다시 확인해주세요. (예: example@mail.com)");
|
||||
return false;
|
||||
}
|
||||
$.ajax({
|
||||
url : "${pageContext.request.contextPath}/member/initPassword.ajax",
|
||||
type : "POST",
|
||||
data : data,
|
||||
success : function(result){
|
||||
|
||||
alert(result);
|
||||
location.href='${pageContext.request.contextPath}/login/loginForm.do';
|
||||
if(result == "success")
|
||||
{
|
||||
alert("입력하신 이메일로 임시 비밀번호가 발송되었습니다. 메일을 확인해주세요.");
|
||||
var previousPage ="${loginVO.previousPage}";
|
||||
if(previousPage == "alreadySignUpPopup")
|
||||
{
|
||||
document.initPw.action="${pageContext.request.contextPath}/member/selectAlreadySignUpMobilePopup.do";
|
||||
fn_layerPopFormSubmit("initPw",false);
|
||||
}else{
|
||||
fn_closeLayerPopup();
|
||||
}
|
||||
|
||||
}
|
||||
else if(result == "fail")
|
||||
{
|
||||
alert("일치하는 정보가 없습니다. 다시 확인해주세요.");
|
||||
}
|
||||
|
||||
},error : function(){
|
||||
alert("이메일 발송에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
function fn_cancle()
|
||||
{
|
||||
document.initPw.action="${pageContext.request.contextPath}/member/selectAlreadySignUpMobilePopup.do";
|
||||
fn_layerPopFormSubmit("initPw",false);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<form id="initPw" name="initPw" method="post">
|
||||
<h1>비밀번호 찾기</h1>
|
||||
<p>회원님의 본인확인을 위해 가입시 등록하신 이메일을 입력하여 주시기 바랍니다.</p><br>
|
||||
Email <input type="text" id="email" name="email">
|
||||
<input type="button" onclick ="goFindPw();" value="임시비밀번호 받기">
|
||||
<input type="hidden" id="mbInfoId" name="mbInfoId" value="${loginVO.mbInfoId }">
|
||||
<input type="hidden" id="nameTemp" name="nameTemp" value="${loginVO.nameTemp }">
|
||||
<input type="hidden" id="emailTemp" name="emailTemp" value="${loginVO.emailTemp }">
|
||||
<input type="hidden" id="mobileNo" name="mobileNo" value="${loginVO.mobileNo }">
|
||||
<input type="hidden" id="previousPage" name="previousPage" value="${loginVO.previousPage}">
|
||||
<div class="pop-find">
|
||||
<div class="row Title">
|
||||
<p>내 정보</p>
|
||||
<h3>비밀번호 찾기</h3>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<div class="row Text">
|
||||
<p>이메일 정보가 확인되면 해당 메일로<br><span>임시비밀번호</span>를 보내드립니다.</p>
|
||||
</div>
|
||||
<div class="row find">
|
||||
<p><input type="text" name="email" placeholder="example@mail.com" class="find-input" onKeypress="javascript:if(event.keyCode==13) {goFindPw();}"/></p>
|
||||
<p class="text">- 임시 비밀번호가 발급된 후 [마이페이지 > 회원정보관리 > 내 정보]에서 비밀번호를 수정해주세요.</p>
|
||||
</div>
|
||||
<div class="row btn-box">
|
||||
<button type="button" class="btn btn-color" onclick="goFindPw();">확인</button>
|
||||
<button type="button" class="btn btn-gray close" id="cancle">취소</button>
|
||||
</div>
|
||||
<button type="button" class="find-close" onclick="fn_closeLayerPopup();"></button>
|
||||
</div>
|
||||
<div class="Bg"></div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,36 +0,0 @@
|
||||
<%
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : initPasswordResult.jsp
|
||||
*
|
||||
* @Description : 비밀번호 찾기 결과
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||
* @since 2021. 7. 12.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||
pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Insert title here</title>
|
||||
</head>
|
||||
<body>
|
||||
비밀번호찾기 결과페이지
|
||||
</body>
|
||||
</html>
|
||||
@ -37,56 +37,113 @@
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javaScript" language="javascript" defer="defer">
|
||||
function signUp(){
|
||||
var p = document.getElementById('password');
|
||||
var p_cf = document.getElementById('passwordConfirm');
|
||||
<%//패스워드 정규식 9자이상 소문자, 숫자 ,특수문자%>
|
||||
var regExp = /^(?=.*[a-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{9,}$/i;
|
||||
|
||||
if(p.value != p_cf.value)
|
||||
{
|
||||
alert("비밀번호가 일치하지 않습니다. 확인해 주세요.");
|
||||
p_cf.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#mobileCertYn").val()!="Y")
|
||||
{
|
||||
alert("휴대전화 인증이 필요합니다.");
|
||||
return false;
|
||||
}
|
||||
if($("#emailCertYn").val()!="Y")
|
||||
var p = document.getElementById('password');
|
||||
var p_cf = document.getElementById('passwordConfirm');
|
||||
|
||||
var flag = false;
|
||||
|
||||
if($("#name").val() == "")
|
||||
{
|
||||
$("#name").focus();
|
||||
alert("이름을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
$("input[name='gender']").each( function () {
|
||||
if (this.checked) {
|
||||
flag = !flag;
|
||||
return;
|
||||
}
|
||||
});
|
||||
if (!flag) {
|
||||
$("#m").focus();
|
||||
alert("성별을 체크해주세요.");
|
||||
return false;
|
||||
}
|
||||
if(!checkBirthday())
|
||||
{
|
||||
$("#birth_yy").focus();
|
||||
alert("생년월일이 형식에 맞지 않습니다. 확인해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#mobileNo_1").val() == "" || $("#mobileNo_2").val() == "" || $("#mobileNo_3").val() == "")
|
||||
{
|
||||
$("#mobileNo_1").focus();
|
||||
alert("휴대폰 번호를 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#mobileCertYn").val()!="Y")
|
||||
{
|
||||
alert("휴대폰 인증이 필요합니다.");
|
||||
return false;
|
||||
}
|
||||
if($("#email").val() == "")
|
||||
{
|
||||
$("#email").focus();
|
||||
alert("이메일을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#emailCertYn").val()!="Y")
|
||||
{
|
||||
alert("이메일 인증이 필요합니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#zipCode").val()=="" || $("#address").val()=="")
|
||||
if($("#zipCode").val()=="" || $("#address").val()=="")
|
||||
{
|
||||
$("#zipCode").focus();
|
||||
alert("주소를 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if(!checkBirthday())
|
||||
if(!regExp.test(p.value)){
|
||||
p.focus();
|
||||
alert("9자리 이상, 숫자/문자/특수문자를 혼합하여 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if(p.value != p_cf.value)
|
||||
{
|
||||
alert("생년월일이 형식에 맞지 않습니다. 확인해주세요.");
|
||||
p_cf.focus();
|
||||
alert("비밀번호가 일치하지 않습니다. 확인해 주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("input[name='infoRecvEmailYnChk']").is(":checked") == false && $("input[name='infoRecvSmsYnChk']").is(":checked") == false)
|
||||
{
|
||||
$("#service-chk1").focus();
|
||||
alert("대출/열람 정보 수신동의를 하나 이상 선택해주세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(confirm("회원가입하시겠습니까?")){
|
||||
$("#birthday").val($("#birth_yy").val()+$("#birth_mm").val()+$("#birth_dd").val());
|
||||
$("#MobileNo").val($("#mobileNo_1").val()+$("#mobileNo_2").val()+$("#mobileNo_3").val());
|
||||
|
||||
if($("input[name='infoRecvSmsYnChk']").is(":checked"))$("#infoRecvSmsYn").val("Y");
|
||||
else $("#infoRecvSmsYn").val("N");
|
||||
if($("input[name='infoRecvEmailYnChk']").is(":checked"))$("#infoRecvEmailYn").val("Y");
|
||||
else $("#infoRecvEmailYn").val("N");
|
||||
if($("input[name='mktRecvSmsYnChk']").is(":checked"))$("#mktRecvSmsYn").val("Y");
|
||||
else $("#mktRecvSmsYn").val("N");
|
||||
if($("input[name='mktRecvEmailYnChk']").is(":checked"))$("#mktRecvEmailYn").val("Y");
|
||||
else $("#mktRecvEmailYn").val("N");
|
||||
|
||||
<%
|
||||
//연락받을 이메일 입력
|
||||
%>
|
||||
$("#loginUserId").val($("#email").val());
|
||||
document.joinForm.action="${pageContext.request.contextPath}/member/insertMemberInfo.do";
|
||||
document.joinForm.submit();
|
||||
var form = document.joinForm;
|
||||
form.action="${pageContext.request.contextPath}/member/insertMemberInfo.do";
|
||||
form.submit();
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$("input:radio[name='gender']:radio[value='${loginVO.snsGender}']").prop('checked', true);
|
||||
birthdaySelectBox();
|
||||
|
||||
$("input:checkbox[name='gender']:checkbox[value='${loginVO.snsGender}']").prop('checked', true);
|
||||
|
||||
var birthday="${loginVO.snsBirthday}";
|
||||
console.log("${loginVO.snsBirthday}");
|
||||
|
||||
if(!birthday == "")
|
||||
{
|
||||
@ -99,24 +156,53 @@ $(document).ready(function() {
|
||||
birth_dd = birth_dd.substr(1,1)
|
||||
}
|
||||
|
||||
$("#birth_yy").val(birth_yy)
|
||||
$("#birth_yy").val(birth_yy).prop("selected", true);
|
||||
$("#birth_mm").val(birth_mm).prop("selected", true);
|
||||
$("#birth_dd").val(birth_dd)
|
||||
$("#birth_dd").val(birth_dd).prop("selected", true);
|
||||
}
|
||||
|
||||
var MobileNo="${loginVO.snsMobileNo}";
|
||||
|
||||
if(!MobileNo == "")
|
||||
{
|
||||
var mobileNo_1 = "";
|
||||
var mobileNo_2 = "";
|
||||
var mobileNo_3 = "";
|
||||
if(MobileNo.length == 11)
|
||||
{
|
||||
mobileNo_1 =MobileNo.substr(0,3);
|
||||
mobileNo_2 =MobileNo.substr(3,4);
|
||||
mobileNo_3 =MobileNo.substr(7,4);
|
||||
}
|
||||
if(MobileNo.length == 10)
|
||||
{
|
||||
mobileNo_1 =MobileNo.substr(0,3);
|
||||
mobileNo_2 =MobileNo.substr(3,3);
|
||||
mobileNo_3 =MobileNo.substr(6,4);
|
||||
}
|
||||
|
||||
$("#mobileNo_1").val(mobileNo_1);
|
||||
$("#mobileNo_2").val(mobileNo_2);
|
||||
$("#mobileNo_3").val(mobileNo_3);
|
||||
}
|
||||
|
||||
|
||||
<%
|
||||
//핸드폰 번호가 변하는것 실시간 감지
|
||||
%>
|
||||
$("#mobileNo").on("propertychange change keyup paste input", function() {
|
||||
if($("#snsMobileNo").val() == $("#mobileNo").val())
|
||||
$("#mobileNo_1,#mobileNo_2,#mobileNo_3").on("propertychange change keyup paste input", function() {
|
||||
if($("#snsMobileNo").val() == $("#mobileNo_1").val()+ $("#mobileNo_2").val()+ $("#mobileNo_3").val())
|
||||
{
|
||||
$("#mobileCertYn").val("Y");
|
||||
$("#mobileCertSendBtn").css("display","none");
|
||||
$("#mobileCertForm").css("display","none");
|
||||
$("#mobileReSend").css("display","none");
|
||||
$("#mobileCertForm").css("display","none");
|
||||
$("#mobileSuc").css("display","");
|
||||
}else{
|
||||
$("#mobileCertYn").val("N");
|
||||
$("#mobileCertSendBtn").css("display","block");
|
||||
$("#mobileCertSendBtn").css("display","");
|
||||
$("#mobileReSend").css("display","");
|
||||
$("#mobileSuc").css("display","none");
|
||||
}
|
||||
});
|
||||
<%
|
||||
@ -127,11 +213,13 @@ $(document).ready(function() {
|
||||
{
|
||||
$("#emailCertYn").val("Y");
|
||||
$("#emailCertSendBtn").css("display","none");
|
||||
$("#emailReSend").css("display","none");
|
||||
$("#emailCertForm").css("display","none");
|
||||
|
||||
}else{
|
||||
$("#emailCertYn").val("N");
|
||||
$("#emailCertSendBtn").css("display","block");
|
||||
$("#emailCertSendBtn").css("display","");
|
||||
$("#emailReSend").css("display","");
|
||||
}
|
||||
});
|
||||
})
|
||||
@ -160,7 +248,7 @@ function emailCert(){
|
||||
if(result.emailCertYn=="Y")
|
||||
{
|
||||
$("#emailCertYn").val("N");
|
||||
$("#emailCertForm").css("display","block")
|
||||
$("#emailCertForm").css("display","")
|
||||
}
|
||||
if(result.emailCertYn=="N")
|
||||
{
|
||||
@ -205,11 +293,12 @@ function certEmailCheck(){
|
||||
%>
|
||||
function mobileCert(){
|
||||
|
||||
|
||||
$("#mobileNo").val($("#mobileNo").val().replace(/-/gi,""));
|
||||
var mobileNo = $("#mobileNo_1").val()+ $("#mobileNo_2").val()+ $("#mobileNo_3").val();
|
||||
mobileNo = mobileNo.replace(/-/gi,"");
|
||||
$("#mobileNo").val(mobileNo);
|
||||
var regExp = /^\d{3}\d{3,4}\d{4}$/;
|
||||
|
||||
if(!regExp.test($("#mobileNo").val()) || $("#mobileNo").val()==""){
|
||||
if(!regExp.test(mobileNo) || mobileNo==""){
|
||||
|
||||
alert("형식에 맞지 않는 번호입니다.");
|
||||
return false;
|
||||
@ -219,11 +308,12 @@ function mobileCert(){
|
||||
url : "${pageContext.request.contextPath}/member/mobileCertNum.ajax",
|
||||
type : "POST",
|
||||
async: false,
|
||||
data : {"mobileNo" : $("#mobileNo").val()},
|
||||
data : {"mobileNo" : mobileNo},
|
||||
success : function(result){
|
||||
alert("인증번호가 발송됐습니다.");
|
||||
$("#mobileCertYn").val("N");
|
||||
$("#mobileCertForm").css("display","block")
|
||||
$("#mobileSuc").css("display","none");
|
||||
$("#mobileCertForm").css("display","")
|
||||
},error : function(){
|
||||
}
|
||||
})
|
||||
@ -247,6 +337,7 @@ function certMobileCheck(){
|
||||
{
|
||||
alert("인증되었습니다.");
|
||||
$("#mobileCertYn").val("Y");
|
||||
$("#mobileSuc").css("display","");
|
||||
document.joinForm.action="${pageContext.request.contextPath}/member/selectAlreadySignUpMobilePopup.do";
|
||||
fn_layerPopFormSubmit("joinForm",false);
|
||||
}else
|
||||
@ -267,9 +358,9 @@ document.addEventListener('keydown', function(event) {
|
||||
|
||||
function checkBirthday() {
|
||||
var birthday;
|
||||
var yy = $("#birth_yy").val();
|
||||
var yy = $("#birth_yy option:selected").val();
|
||||
var mm = $("#birth_mm option:selected").val();
|
||||
var dd = $("#birth_dd").val();
|
||||
var dd = $("#birth_dd option:selected").val();
|
||||
var lang = "ko_KR";
|
||||
|
||||
var oyy = $("#birth_yy");
|
||||
@ -354,164 +445,176 @@ function calcAge(birth) {
|
||||
}
|
||||
|
||||
</script>
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
|
||||
padding-top:0px;
|
||||
|
||||
margin-top:0px;
|
||||
|
||||
background-color:#f5f5f5;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.page-header {
|
||||
|
||||
padding-top:0px;
|
||||
|
||||
margin-top:0px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.form-horizontal .control-label.text-left{
|
||||
|
||||
text-align:left;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.form-horizontal .form-group {
|
||||
|
||||
height:50px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
h3 span.ok {
|
||||
|
||||
color:#01A9DB;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
label.error {
|
||||
|
||||
font-family:"돋움", Dotum, "Apple SD Gothic Neo", Helvetica, Sans-serif;
|
||||
|
||||
font-size:9pt;
|
||||
|
||||
font-weight:600;
|
||||
|
||||
padding:3px 0 0 10px;
|
||||
|
||||
color:#FF0000;
|
||||
|
||||
display:block;
|
||||
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrap">
|
||||
<br><br>
|
||||
<b><font size="6" color="gray">회원가입</font></b>
|
||||
<br><br><br>
|
||||
|
||||
<form id="joinForm" name="joinForm" method="post" onsubmit="return signUp()">
|
||||
<table>
|
||||
<tr>
|
||||
<td id="title">이메일</td>
|
||||
<td>
|
||||
<input type="email" id="email" name="email" maxlength="30" required value="<c:out value="${loginVO.snsUserId}"/>" ><button type="button" id="emailCertSendBtn" name="emailCertSendBtn" style="text-align:left;display:none;" class="btn-warning" onclick="emailCert()" required>인증번호 받기</button>
|
||||
<div id="emailCertForm" style="display:none;"><br><input type='text' id='emailVrfctNo' name='emailVrfctNo'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certEmailCheck()' >인증번호 확인</button></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">이름</td>
|
||||
<td>
|
||||
<input type="text" id="name" name="name" minlength="2" maxlength="20" value="<c:out value="${loginVO.snsName}"/>" required >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">성별</td>
|
||||
<td>
|
||||
<input type="radio" name="gender" value="M" required>남자
|
||||
<input type="radio" name="gender" value="F" required>여자
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">생년월일</td>
|
||||
<td>
|
||||
<input type="text" id="birth_yy" name="birth_yy" maxlength="4" placeholder="년(4자)" required>
|
||||
<select id="birth_mm" name="birth_mm" required>
|
||||
<option value="">월</option>
|
||||
<option value="01" >1</option>
|
||||
<option value="02" >2</option>
|
||||
<option value="03" >3</option>
|
||||
<option value="04" >4</option>
|
||||
<option value="05" >5</option>
|
||||
<option value="06" >6</option>
|
||||
<option value="07" >7</option>
|
||||
<option value="08" >8</option>
|
||||
<option value="09" >9</option>
|
||||
<option value="10" >10</option>
|
||||
<option value="11" >11</option>
|
||||
<option value="12" >12</option>
|
||||
</select>
|
||||
<input type="text" id="birth_dd" name="birth_dd" size="2" maxlength="2" placeholder="일" size="4" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">비밀번호</td>
|
||||
<td>
|
||||
<input type="password" id="password" name="password" minlength="8" maxlength="16"
|
||||
oninvalid="this.setCustomValidity('8~16자 영문 , 숫자, 특수문자를 사용하세요.')"
|
||||
oninput="this.setCustomValidity('')"
|
||||
pattern="^(?=.*[a-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,16}$" required>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td id="title">비밀번호 확인</td>
|
||||
<td>
|
||||
<input type="password" id="passwordConfirm" name="passwordConfirm" minlength="8" maxlength="16" required>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td id="title">주소</td>
|
||||
<td>
|
||||
<input type="text" id="zipCode" name="zipCode" readonly><button type="button" style="text-align:left;" class="btn-warning" onclick="sample6_execDaumPostcode()">주소검색</button><br>
|
||||
<input type="text" id="address" name="address" readonly><input type="text" id="addressDetail" name="addressDetail" >
|
||||
<!-- 회원가입 섹션 -->
|
||||
<div class="location join">
|
||||
<h2 class="blind">회원가입 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<div class="row-top">
|
||||
<div class="location-box">
|
||||
<ul class="loc">
|
||||
<li>HOME</li>
|
||||
<li class="on">회원가입</li>
|
||||
</ul>
|
||||
<ul class="tit">
|
||||
<li><span>회원</span>가입</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="arr"><img src="/images/icon/icon-join-arr2.png" alt="화살표 아이콘"></div>
|
||||
</div>
|
||||
<div class="contents row-bottom">
|
||||
<div class="join-box">
|
||||
<div class="step">
|
||||
<div class="s1">
|
||||
<div class="icon"><img src="/images/icon/icon-join-step-suc.png" alt="인증 성공 아이콘"></div>
|
||||
<div class="text"><p>STEP 01</p><p>본인인증</p></div>
|
||||
</div>
|
||||
<div class="s2">
|
||||
<div class="icon"><img src="/images/icon/icon-join-step-suc.png" alt="인증 성공 아이콘"></div>
|
||||
<div class="text"><p>STEP 02</p><p>약관동의</p></div>
|
||||
</div>
|
||||
<div class="s3 on">
|
||||
<div class="icon"><img src="/images/icon/icon-join-step3-on.png" alt="정보입력 아이콘"></div>
|
||||
<div class="text"><p>STEP 03</p><p>정보입력</p></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info">
|
||||
<form id="joinForm" name="joinForm" method="post" class="mt-5 form-container">
|
||||
<input type="hidden" id="birthday" name="birthday" >
|
||||
<input type="hidden" id="mobileNo" name="mobileNo" >
|
||||
<input type="hidden" id="mobileCertYn" name="mobileCertYn" value="Y">
|
||||
<input type="hidden" id="emailCertYn" name="emailCertYn" value="Y">
|
||||
<input type="hidden" id="loginUserId" name="loginUserId" >
|
||||
<input type="hidden" id="snsMobileNo" name="snsMobileNo" value="<c:out value="${loginVO.snsMobileNo}"/>">
|
||||
<input type="hidden" id="snsUserId" name="snsUserId" value="<c:out value="${loginVO.snsUserId}"/>">
|
||||
<input type="hidden" id="infoRecvSmsYn" name="infoRecvSmsYn" >
|
||||
<input type="hidden" id="infoRecvEmailYn" name="infoRecvEmailYn">
|
||||
<input type="hidden" id="mktRecvSmsYn" name="mktRecvSmsYn">
|
||||
<input type="hidden" id="mktRecvEmailYn" name="mktRecvEmailYn">
|
||||
|
||||
<h2 style="margin-top:0;">회원정보</h2>
|
||||
|
||||
<div class="form-group Username">
|
||||
<label>이름</label>
|
||||
<div class="con">
|
||||
<input class="form-control" type="text" id="name" name="name" minlength="2" maxlength="20" value="<c:out value="${loginVO.snsName}"/>" placeholder="이름을 입력하세요" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Usersex">
|
||||
<label>성별</label>
|
||||
<div class="con">
|
||||
<div class="chk"><input type="checkbox" id="m" class="sex" name="gender" value="M" ><label for="m">남자</label></div>
|
||||
<div class="chk"><input type="checkbox" id="w" class="sex" name="gender" value="F"><label for="w">여자</label></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Userbirth">
|
||||
<label>생년월일</label>
|
||||
<div class="con">
|
||||
<select name="birth_yy" id="birth_yy"></select> 년
|
||||
<select name="birth_mm" id="birth_mm"></select> 월
|
||||
<select name="birth_dd" id="birth_dd"></select> 일
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Usermobile">
|
||||
<label>휴대폰 번호</label>
|
||||
<div class="con mobile">
|
||||
<div class="row">
|
||||
<input class="form-control mobile1" type="text" id="mobileNo_1" value="010" maxlength="3" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/> -
|
||||
<input class="form-control mobile2" type="text" id="mobileNo_2" value="" maxlength="4" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/> -
|
||||
<input class="form-control mobile3" type="text" id="mobileNo_3" value="" maxlength="4" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/>
|
||||
<button type="button" class="btn-color" id="mobileCertSendBtn" name="mobileCertSendBtn" style="display:none;" onclick="mobileCert();">인증하기</button>
|
||||
<button type="button" class="btn-black" id="mobileReSend" style="display:none;" onclick="mobileCert();">재전송</button>
|
||||
</div>
|
||||
<div class="row" id="mobileCertForm" style="display:none;">
|
||||
<input class="form-control cer" type="text" id='mobileVrfctNo' name='mobileVrfctNo' placeholder=" SMS로 발송된 인증번호를 입력하세요"/>
|
||||
<button type="button" class="btn-gray" onclick='certMobileCheck();'>확인</button>
|
||||
<span id="mobileSuc" class="suc">인증이 완료되었습니다.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Useremail">
|
||||
<label>이메일</label>
|
||||
<div class="con email">
|
||||
<div class="row">
|
||||
<input class="form-control email1" type="email" id="email" name="email" placeholder="example@mail.com" maxlength="30" value="<c:out value="${loginVO.snsUserId}"/>" />
|
||||
<button type="button" class="btn-color" id="emailCertSendBtn" name="emailCertSendBtn" style="display:none;" onclick="emailCert();">인증하기</button>
|
||||
<button type="button" class="btn-black" id="emailReSend" style="display:none;" onclick="emailCert();">재전송</button>
|
||||
</div>
|
||||
<div class="row" id="emailCertForm" style="display:none;">
|
||||
<input class="form-control cer" type="text" id='emailVrfctNo' name='emailVrfctNo' placeholder=" 이메일로 발송된 인증번호를 입력하세요"/>
|
||||
<button type="button" class="btn-gray" onclick='certEmailCheck()'>확인</button>
|
||||
<span id="emailSuc" class="suc">인증이 완료되었습니다.</span>
|
||||
<span class="chk-suc"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Useraddr">
|
||||
<label>주소</label>
|
||||
<div class="con addr">
|
||||
<div class="row">
|
||||
<input class="form-control addr1" type="text" id="zipCode" name="zipCode" readonly placeholder="우편번호" />
|
||||
<button type="button" class="btn-color" onclick="sample6_execDaumPostcode();">우편번호</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<input class="form-control addr2" type="text" id="address" name="address" readonly placeholder="주소" />
|
||||
<input class="form-control addr3" type="text" id="addressDetail" name="addressDetail" placeholder="상세주소" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">휴대전화</td>
|
||||
<td id="Cert">
|
||||
<input type="text" id="mobileNo" name="mobileNo" value="<c:out value="${loginVO.snsMobileNo}"/>" required ><button type="button" id="mobileCertSendBtn" name="mobileCertSendBtn" style="text-align:left;display:none;" class="btn-warning" onclick="mobileCert()" required>인증번호 받기</button>
|
||||
<div id="mobileCertForm" style="display:none;"><br><input type='text' id='mobileVrfctNo' name='mobileVrfctNo'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certMobileCheck()' >인증번호 확인</button></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<input type="hidden" id="birthday" name="birthday" >
|
||||
<input type="hidden" id="mobileCertYn" name="mobileCertYn" value="Y">
|
||||
<input type="hidden" id="emailCertYn" name="emailCertYn" value="Y">
|
||||
<input type="hidden" id="loginUserId" name="loginUserId" >
|
||||
<input type="hidden" id="snsMobileNo" name="snsMobileNo" value="<c:out value="${loginVO.snsMobileNo}"/>">
|
||||
<input type="hidden" id="snsUserId" name="snsUserId" value="<c:out value="${loginVO.snsUserId}"/>">
|
||||
|
||||
<input type="submit" value="가입"/>
|
||||
</form>
|
||||
<div class="form-group Password">
|
||||
<label>비밀번호</label>
|
||||
<div class="con">
|
||||
<input class="form-control" type="password" id="password" name="password" placeholder="비밀번호" />
|
||||
<span>9자리 이상, 숫자/문자/특수문자를 혼합하여 입력</span>
|
||||
<input class="form-control" type="password" id="passwordConfirm" name="passwordConfirm" placeholder="비밀번호 확인" />
|
||||
<span class="suc">일치합니다.</span>
|
||||
<span class="fail">일치하지 않습니다.</span>
|
||||
<span class="text">- 입력하신 비밀번호는 ‘계정 연결’, ‘내 정보 확인’, ‘회원탈퇴’ 시, 회원님의 정보보호 및 본인확인을 위해 사용됩니다.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>서비스 알림 수신 동의</h2>
|
||||
|
||||
<div class="form-group service">
|
||||
<div class="left">
|
||||
<div class="chk"><input type="checkbox" id="service-chk1" class="ser-chk1" name="" checked><label for="service-chk1">대출/열람 정보 수신동의 [필수/1건 이상 선택]</label></div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="chk"><input type="checkbox" id="service-chk1-1" class="ser-chk1-1" name="infoRecvSmsYnChk" checked><label for="service-chk1-1">문자(SMS)</label></div>
|
||||
<div class="chk"><input type="checkbox" id="service-chk1-2" class="ser-chk1-1" name="infoRecvEmailYnChk" checked><label for="service-chk1-2">이메일</label></div>
|
||||
</div>
|
||||
<p class="bg">- 문자(SMS)/이메일 수신동의를 하시면 ‘자료반납’, ‘자료연체’, ‘예약자료 도착’, ‘열람신청 승인’, ‘열람신청 반려’ 알림을 받으실 수 있습니다.</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group service">
|
||||
<div class="left">
|
||||
<div class="chk"><input type="checkbox" id="service-chk2" class="ser-chk2" name=""><label for="service-chk2">지방문화원 소식/홍보 알림 수신동의 [선택]</label></div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="chk"><input type="checkbox" id="service-chk2-1" class="ser-chk2-2" name="mktRecvSmsYnChk"><label for="service-chk2-1">문자(SMS)</label></div>
|
||||
<div class="chk"><input type="checkbox" id="service-chk2-2" class="ser-chk2-2" name="mktRecvEmailYnChk"><label for="service-chk2-2">이메일</label></div>
|
||||
</div>
|
||||
<p class="bg">- 문자(SMS)/이메일 수신동의를 하시면 문화원 소식이나 주요 행사 등의 정보를 빠르게 만나실 수 있습니다.</p>
|
||||
<p>- 회원가입완료, 임시비밀번호 발급관련 내용의 경우 수신 동의와 상관없이 이메일로 발송됩니다.</p>
|
||||
</div>
|
||||
|
||||
<div class="btn-box">
|
||||
<button type="button" class="btn btn-gray" id="cancel">취소</button>
|
||||
<button type="button" class="btn btn-color" onclick="signUp();">가입하기</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
||||
@ -30,7 +30,35 @@
|
||||
<title>Insert title here</title>
|
||||
</head>
|
||||
<body>
|
||||
가입되셨습니다. 환영합니다
|
||||
<!-- 회원가입완료 섹션 -->
|
||||
<div class="location join succ">
|
||||
<h2 class="blind">회원가입완료 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<div class="row-top icon">
|
||||
<div class="icon"><img src="/images/icon/icon-join-suc.png" alt="화살표 아이콘"></div>
|
||||
<p>통합회원가입 완료</p>
|
||||
</div>
|
||||
<div class="contents row-bottom">
|
||||
<div class="join-box">
|
||||
<div class="success">
|
||||
<div class="text">
|
||||
<p>반갑습니다!</p>
|
||||
<p>지방문화원 소장자료관 <span>통합회원가입이 완료</span>되었습니다.</p>
|
||||
<p><span>${result.name }</span>님의 지방문화원 소장자료관 회원증이 발급되었으며, <span>[회원증] 메뉴</span>를 통해 확인하실 수 있습니다.</p>
|
||||
<p>가입시 입력된 정보는 <span>[마이페이지 > 회원정보관리 > 수정하기]</span>에서 수정 가능합니다.</p>
|
||||
</div>
|
||||
<div class="box">
|
||||
<p>지방문화원 소장자료관 가입 및 이용 안내</p>
|
||||
<p>문화원별 소장자료관은 통합회원으로 관리/운영됩니다.<br>가입하신 계정을 통해 <span>전국 모든 문화원 소장자료관 이용이 가능</span>합니다.</p>
|
||||
</div>
|
||||
<div class="btn">
|
||||
<a href="/" class="btn-color">소장자료관으로</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
@ -52,19 +52,76 @@ function snsCertForm(){
|
||||
}
|
||||
location.href="${pageContext.request.contextPath}/member/insertMemberInfoForm.do";
|
||||
}
|
||||
|
||||
function cancle(){
|
||||
location.href="${pageContext.request.contextPath}/login/memberSnsForm.do";
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div style="width:500px;">
|
||||
<form id="termsForm" name="termsForm">
|
||||
<p1><c:out value="${termTitle}" escapeXml="false"/></p1>
|
||||
<textarea style="height:200px;width:500px;"><c:out value="${termContent}" escapeXml="false"/></textarea>
|
||||
<br><div style="float: right;"><input type="checkbox" name="agree" >동의</div>
|
||||
<p1><c:out value="${privacyTitle}" escapeXml="false"/></p1>
|
||||
<textarea style="height:200px;width:500px;"><c:out value="${privacyContent}" escapeXml="false"/></textarea>
|
||||
<br><div style="float: right;"><input type="checkbox" name="agree" >동의</div>
|
||||
<br><br><input type="button" value="다음" onclick="snsCertForm();" style="float: right;">
|
||||
</form>
|
||||
</div>
|
||||
<!-- 회원가입 섹션 -->
|
||||
<section class="location join">
|
||||
<h2 class="blind">회원가입 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<div class="row-top">
|
||||
<div class="location-box">
|
||||
<ul class="loc">
|
||||
<li>HOME</li>
|
||||
<li class="on">회원가입</li>
|
||||
</ul>
|
||||
<ul class="tit">
|
||||
<li><span>회원</span>가입</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="arr"><img src="/images/icon/icon-join-arr2.png" alt="화살표 아이콘"></div>
|
||||
</div>
|
||||
<div class="row-bottom">
|
||||
<div class="join-box">
|
||||
<div class="step">
|
||||
<div class="s1">
|
||||
<div class="icon"><img src="/images/icon/icon-join-step-suc.png" alt="인증 성공 아이콘"></div>
|
||||
<div class="text"><p>STEP 01</p><p>본인인증</p></div>
|
||||
</div>
|
||||
<div class="s2 on">
|
||||
<div class="icon"><img src="/images/icon/icon-join-step2-on.png" alt="약관동의 아이콘"></div>
|
||||
<div class="text"><p>STEP 02</p><p>약관동의</p></div>
|
||||
</div>
|
||||
<div class="s3">
|
||||
<div class="icon"><img src="/images/icon/icon-join-step3.png" alt="정보입력 아이콘"></div>
|
||||
<div class="text"><p>STEP 03</p><p>정보입력</p></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="privacy-box">
|
||||
<div class="use">
|
||||
<div class="con-1">
|
||||
<div class="title"><c:out value="${termTitle}" escapeXml="false"/></div>
|
||||
<div class="chk"><input type="checkbox" id="pri-chk1" name="agree"><label for="pri-chk1">동의합니다.</label></div>
|
||||
</div>
|
||||
<div class="con-2">
|
||||
<div class="textarea mCustomScrollbar" data-mcs-theme="dark-2">
|
||||
<c:out value="${termContent}" escapeXml="false"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pri">
|
||||
<div class="con-1">
|
||||
<div class="title"><c:out value="${privacyTitle}" escapeXml="false"/></div>
|
||||
<div class="chk"><input type="checkbox" id="pri-chk2" name="agree"><label for="pri-chk2">동의합니다.</label></div>
|
||||
</div>
|
||||
<div class="con-2">
|
||||
<div class="textarea mCustomScrollbar" data-mcs-theme="dark-2">
|
||||
<c:out value="${privacyContent}" escapeXml="false"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-box">
|
||||
<button type="button" class="btn btn-gray" id="cancel" onclick="cancle();">취소</button>
|
||||
<button type="button" class="btn btn-color" id="submit" onclick="snsCertForm();">다음</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
@ -31,14 +31,126 @@
|
||||
<%@ 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>
|
||||
<script src="/js/default.js"></script>
|
||||
<script src="/js/nlib.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// $('.pop-advanced-search').fadeIn();
|
||||
// $('html,body').addClass('no-scroll');
|
||||
// 상세검색 팝업 - 문화원정보 선택영역 초기작업 메서드 분리
|
||||
|
||||
var depth2H = 0;
|
||||
$('.pop-advanced-search .depth1-check input').each(function () {
|
||||
if ($(this).is(":checked")) { // 활성화 line에 높이 잡아주기
|
||||
$('.depth1').removeClass('on');
|
||||
$(this).parents('.depth1').addClass('on');
|
||||
depth2H = $(this).parents('.depth1-check').next('.depth2').outerHeight();
|
||||
$(this).parents('.line').siblings('.line').attr('style', '');
|
||||
$(this).parents('.line').height(depth2H + 50);
|
||||
}
|
||||
|
||||
$(this).siblings('.tab-name').on('click', function() {
|
||||
$('.depth1').removeClass('on');
|
||||
$(this).parents('.depth1').addClass('on');
|
||||
depth2H = $(this).parents('.depth1-check').next('.depth2').outerHeight();
|
||||
$('.line').attr('style', '');
|
||||
$(this).parents('.line').height(depth2H + 50);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$('.pop-advanced-search .depth2 input').change(function() {
|
||||
var html = "";
|
||||
var depth1 = "";
|
||||
var depth2 = "";
|
||||
if ($(this).is(':checked')) {
|
||||
depth1 = $(this).parents('.depth2').siblings('.depth1-check').find('label').text();
|
||||
depth2 = $("label[for='"+$(this).attr('id')+"']").text();
|
||||
|
||||
html = "<li><button type=\"button\" onclick=\"function('');\" title=\"삭제\" name=\""+ $(this).attr('id') +"\">" + depth1 + "<span class=\"sign\"> > </span>"+ depth2 +"</button></li>"
|
||||
|
||||
$(this).parents('.depth2').siblings('.depth1-check').find('input').prop('checked', true);
|
||||
$(this).parents('.conditions-box').siblings('.selected-conditions').find('.conditions').append(html);
|
||||
|
||||
} else {
|
||||
$("button[name="+$(this).attr('id')+"]").remove();
|
||||
if ($(this).parents('.depth2').find('input:checked').length <= 0) {
|
||||
$(this).parents('.depth2').siblings('.depth1-check').find('input').prop('checked', false);
|
||||
}
|
||||
}
|
||||
//filter_mylist clk array
|
||||
var filter_mylist = "";
|
||||
var filter_mylist_clk = "";
|
||||
filter_mylist = $('#d_filter_mylist').val();
|
||||
|
||||
|
||||
if($(this).attr('name') == 'second_class'){
|
||||
filter_mylist_clk = 'class_'+$(this).val() +',';
|
||||
}else if($(this).attr('name') == 'second_category'){
|
||||
filter_mylist_clk = 'category_'+$(this).val() +',';
|
||||
}
|
||||
|
||||
if($(this).is(":checked")){
|
||||
filter_mylist += filter_mylist_clk;
|
||||
|
||||
}else{
|
||||
filter_mylist = filter_mylist.replace(filter_mylist_clk,'');
|
||||
}
|
||||
$('#d_filter_mylist').val(filter_mylist);
|
||||
|
||||
//depth-1
|
||||
var on_classArr = document.querySelectorAll("div.depth1.on");
|
||||
var filter_class = "" ;
|
||||
var filter_category = "" ;
|
||||
for(var i=0; i<on_classArr.length; i++){
|
||||
if($(on_classArr[i]).find('input').attr('name') == 'first_class') {
|
||||
filter_class = $(on_classArr[i]).find('input').val();
|
||||
}else{
|
||||
filter_category = $(on_classArr[i]).find('input').val();
|
||||
}
|
||||
}
|
||||
|
||||
var listForm = document.forms["d_referencelistForm"];
|
||||
listForm.filter_class.value = filter_class;
|
||||
listForm.filter_category.value = filter_category;
|
||||
|
||||
});
|
||||
|
||||
// 상세검색 초기화
|
||||
$('.pop-advanced-search .btn-reset-conditions').on('click', function() {
|
||||
$("input[id^='"+$(this).attr('name')+"-chk']").each(function() {
|
||||
$(this).prop('checked', false);
|
||||
});
|
||||
$(this).parents('.title').siblings('.conditions').find('*').remove();
|
||||
});
|
||||
// depth-1 열고 닫기
|
||||
$('.filter-tit .btn-toggle').on('click', function() {
|
||||
if($(this).text() == '닫기') {
|
||||
$(this).text('열기');
|
||||
$(this).parent('.filter-tit').siblings('.filter-list').stop().slideUp();
|
||||
$('.filter .btn-toggle-more').css('display','none');
|
||||
} else {
|
||||
$(this).text('닫기');
|
||||
$(this).parent('.filter-tit').siblings('.filter-list').stop().slideDown();
|
||||
$('.filter .btn-toggle-more').css('display','block');
|
||||
}
|
||||
});
|
||||
|
||||
// depth-2 열고 닫기
|
||||
$('.filter .depth-1 .btn-toggle').on('click', function () {
|
||||
var _this = $(this).parents('li').index();
|
||||
if ($(this).text() == '닫기') {
|
||||
$(this).text('열기');
|
||||
$(this).siblings('.check').find('.tab-name').trigger("click");
|
||||
} else {
|
||||
$(this).text('닫기');
|
||||
$(this).siblings('.check').find('.tab-name').trigger("click");
|
||||
}
|
||||
});
|
||||
|
||||
$('.filter-wrap .tab-name').on('click', function() {
|
||||
if ($('body').hasClass('pop-filter')) {
|
||||
$(this).parents('.depth-1').removeClass('on');
|
||||
}
|
||||
});
|
||||
|
||||
$('#d_referencelistForm input[name=ageCode]').change(function () {
|
||||
var id = $(this).attr('id');
|
||||
if(id == "times-chk1")
|
||||
@ -51,20 +163,62 @@ $(document).ready(function() {
|
||||
$("#times-chk1").prop('checked',false);
|
||||
}
|
||||
});
|
||||
|
||||
if(document.getElementById("referencelistForm")){
|
||||
//상세검색 세팅
|
||||
detailSearchSetting();
|
||||
}
|
||||
});
|
||||
|
||||
function d_search(){
|
||||
if($("#d_creatYyyyStart").val() != "" && $("#d_creatYyyyEnd").val() != "")
|
||||
{
|
||||
$("#d_filter_creatYyyy").val("date");
|
||||
$("#d_filter_mylist").val($("#d_filter_mylist").val() + "creat_date,");
|
||||
}else{
|
||||
$("#d_filter_creatYyyy").val("all");
|
||||
}
|
||||
document.d_referencelistForm.submit();
|
||||
}
|
||||
|
||||
|
||||
//소장자료페이지 로드시 상세검색 세팅
|
||||
function detailSearchSetting(){
|
||||
$("#d_query").val($("#query").val());
|
||||
$("#d_creatYyyyStart").val($("#creatYyyyStart").val());
|
||||
$("#d_creatYyyyEnd").val($("#creatYyyyEnd").val());
|
||||
var mylist_arr = $("#referencelistForm [name=filter_mylist]").val().split(",");
|
||||
var chk_value = "";
|
||||
for(var i=0; i<mylist_arr.length; i++){
|
||||
chk_value = mylist_arr[i].substring((mylist_arr[i].indexOf("_")+1));
|
||||
if(mylist_arr[i].indexOf("class")>=0)
|
||||
{
|
||||
$("#d_referencelistForm [name=second_class]").each(function (index, item) {
|
||||
if($(this).val() == chk_value)
|
||||
{
|
||||
$(this).trigger("click");
|
||||
}
|
||||
});
|
||||
}else if(mylist_arr[i].indexOf("category")>=0)
|
||||
{
|
||||
$("#d_referencelistForm [name=second_category]").each(function (index, item) {
|
||||
if($(this).val() == chk_value)
|
||||
{
|
||||
$(this).trigger("click");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<div class="pop-wrap">
|
||||
<div class="Title">
|
||||
<span>상세 검색</span>
|
||||
<span>검색어와, 검색조건들을 통해서 더 정확한 정보를 찾아보세요.</span>
|
||||
<span><a href="javascript:;" class="btn-close-pop"><img src="/images/btn/btn-pop-close.png" alt="닫기 아이콘"></a></span>
|
||||
<span><a href="javascript:;" class="btn-close-pop" onclick="fn_closeLayerPopup();"><img src="/images/btn/btn-pop-close.png" alt="닫기 아이콘"></a></span>
|
||||
</div>
|
||||
<form action="/search/searchList.do" id="d_referencelistForm" name="d_referencelistForm" class="mCustomScrollbar" data-mcs-theme="dark-2">
|
||||
<form action="/search/searchList.do" method="POST" id="d_referencelistForm" name="d_referencelistForm" class="mCustomScrollbar" data-mcs-theme="dark-2">
|
||||
<input type="hidden" id="d_filter_class" name="filter_class">
|
||||
<input type="hidden" id="d_filter_category" name="filter_category">
|
||||
<input type="hidden" id="d_filter_mylist" name="filter_mylist">
|
||||
@ -149,13 +303,13 @@ function d_search(){
|
||||
<c:forEach var="firstCategoryInfo" items="${firstCategoryList}" varStatus="status">
|
||||
<c:if test="${firstCategoryInfo.upClsfId eq '2' }">
|
||||
<div class="depth1">
|
||||
<div class="depth1-check check tab"><input type="checkbox" value="${firstCategoryInfo.remark}" id="subject-chk${count+1}" name="first_category"/><label for="subject-chk${count+1}">${firstCategoryInfo.clsfNm}</label>
|
||||
<div class="depth1-check check tab"><input type="checkbox" value="${firstCategoryInfo.clsfId}" id="subject-chk${count+1}" name="first_category"/><label for="subject-chk${count+1}">${firstCategoryInfo.clsfNm}</label>
|
||||
<button type="button" class="tab-name">${firstCategoryInfo.clsfNm}</button>
|
||||
</div>
|
||||
<ul class="depth2">
|
||||
<c:forEach var="secondCategoryInfo" items="${secondCategoryList}" varStatus="seStatus">
|
||||
<c:if test="${firstCategoryInfo.clsfId eq secondCategoryInfo.upClsfId }">
|
||||
<li><div class="check"><input type="checkbox" value="${secondCategoryInfo.remark}" id="subject-chk${count+1}-${seStatus.index+1}" name="second_category" /><label for="subject-chk${count+1}-${seStatus.index+1}">${secondCategoryInfo.clsfNm}</label></div></li>
|
||||
<li><div class="check"><input type="checkbox" value="${secondCategoryInfo.clsfId}" id="subject-chk${count+1}-${seStatus.index+1}" name="second_category" /><label for="subject-chk${count+1}-${seStatus.index+1}">${secondCategoryInfo.clsfNm}</label></div></li>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
@ -208,7 +362,7 @@ function d_search(){
|
||||
<div class="btn-wrap">
|
||||
<button type="button" class="btn btn-white" id="cmm_popudp_del">초기화</button>
|
||||
<button type="button" onclick="d_search();" class="btn btn-color" id="cmm_popudp_submit">검색</button>
|
||||
<button type="button" class="btn btn-gray btn-close-pop">닫기</button>
|
||||
<button type="button" class="btn btn-gray btn-close-pop" onclick="fn_closeLayerPopup();">닫기</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@ -34,12 +34,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
|
||||
<title>Insert title here</title>
|
||||
<script type="text/javaScript" language="javascript" defer="defer">
|
||||
$(document).ready(function() {
|
||||
// sns연동이 하나일때 연결해제버튼 제거
|
||||
if($("input[name='unlinkBtn']").length==1)
|
||||
if($("inputinput[name='unlinkBtn']").length==1)
|
||||
{
|
||||
$("input[name='unlinkBtn']").remove();
|
||||
};
|
||||
@ -48,27 +46,29 @@ $(document).ready(function() {
|
||||
//새비밀번호,새비밀번호확인이 일치하는지 확인
|
||||
%>
|
||||
$("#newPassword,#newPasswordConfirm").on("propertychange change keyup paste", function() {
|
||||
if($("#newPassword").val() == $("#newPasswordConfirm").val())
|
||||
if($("#newPassword").val() == $("#newPasswordConfirm").val() && $("#newPassword").length > 0)
|
||||
{
|
||||
$("#passwordMsg *").remove();
|
||||
$("#passwordMsg").append("<a>비밀번호가 일치합니다.</a>");
|
||||
$("#passwdMatch").text("일치합니다.");
|
||||
}else{
|
||||
$("#passwordMsg *").remove();
|
||||
$("#passwordMsg").append("<a>비밀번호가 일치하지않습니다.</a>");
|
||||
$("#passwdMatch").text("일치하지 않습니다.");
|
||||
}
|
||||
});
|
||||
<%
|
||||
//핸드폰 번호가 변하는것 실시간 감지
|
||||
%>
|
||||
$("#mobileNo").on("propertychange change keyup paste input", function() {
|
||||
if($("#userMobileNo").val() == $("#mobileNo").val())
|
||||
$("#mobileNo_1,#mobileNo_2,#mobileNo_3").on("propertychange change keyup paste input", function() {
|
||||
if($("#userMobileNo").val() == $("#mobileNo_1").val()+ $("#mobileNo_2").val()+ $("#mobileNo_3").val())
|
||||
{
|
||||
$("#mobileCertYn").val("Y");
|
||||
$("#mobileCertSendBtn").css("display","none");
|
||||
$("#mobileCertForm").css("display","none");
|
||||
$("#mobileReSend").css("display","none");
|
||||
$("#mobileCertForm").css("display","none");
|
||||
$("#mobileSuc").css("display","");
|
||||
}else{
|
||||
$("#mobileCertYn").val("N");
|
||||
$("#mobileCertSendBtn").css("display","block");
|
||||
$("#mobileCertSendBtn").css("display","");
|
||||
$("#mobileReSend").css("display","");
|
||||
$("#mobileSuc").css("display","none");
|
||||
}
|
||||
});
|
||||
<%
|
||||
@ -78,61 +78,154 @@ $(document).ready(function() {
|
||||
if($("#userEmail").val() == $("#email").val())
|
||||
{
|
||||
$("#emailCertYn").val("Y");
|
||||
$("#emailSuc").css("display","");
|
||||
$("#emailCertSendBtn").css("display","none");
|
||||
$("#emailCertForm").css("display","none");
|
||||
|
||||
}else{
|
||||
$("#emailCertYn").val("N");
|
||||
$("#emailCertSendBtn").css("display","block");
|
||||
$("#emailSuc").css("display","none");
|
||||
$("#emailCertSendBtn").css("display","");
|
||||
}
|
||||
});
|
||||
|
||||
$("input:radio[name='gender']:radio[value='${loginVO.gender}']").prop("checked",true);
|
||||
$("input:checkbox[name='gender']:checkbox[value='${loginVO.gender}']").prop("checked",true);
|
||||
|
||||
birthdaySelectBox();
|
||||
|
||||
var birthday='${loginVO.birthday}';
|
||||
|
||||
$("#birth_yy").val(birthday.substr(0,4));
|
||||
$("#birth_mm").val(birthday.substr(4,2));
|
||||
$("#birth_dd").val(birthday.substr(6,2));
|
||||
var birth_yy = birthday.substr(0,4);
|
||||
var birth_mm = birthday.substr(4,2);
|
||||
var birth_dd = birthday.substr(6,2);
|
||||
$("#birth_yy").val(birth_yy).prop("selected", true);
|
||||
$("#birth_mm").val(birth_mm).prop("selected", true);
|
||||
$("#birth_dd").val(birth_dd).prop("selected", true);
|
||||
|
||||
var MobileNo="${loginVO.mobileNo}";
|
||||
|
||||
if(!MobileNo == "")
|
||||
{
|
||||
var mobileNo_1 = "";
|
||||
var mobileNo_2 = "";
|
||||
var mobileNo_3 = "";
|
||||
if(MobileNo.length == 11)
|
||||
{
|
||||
mobileNo_1 =MobileNo.substr(0,3);
|
||||
mobileNo_2 =MobileNo.substr(3,4);
|
||||
mobileNo_3 =MobileNo.substr(7,4);
|
||||
}
|
||||
if(MobileNo.length == 10)
|
||||
{
|
||||
mobileNo_1 =MobileNo.substr(0,3);
|
||||
mobileNo_2 =MobileNo.substr(3,3);
|
||||
mobileNo_3 =MobileNo.substr(6,4);
|
||||
}
|
||||
|
||||
$("#mobileNo_1").val(mobileNo_1);
|
||||
$("#mobileNo_2").val(mobileNo_2);
|
||||
$("#mobileNo_3").val(mobileNo_3);
|
||||
}
|
||||
})
|
||||
|
||||
function update(){
|
||||
if($("#emailCertYn").val()!="Y")
|
||||
var flag = false;
|
||||
|
||||
if($("#name").val() == "")
|
||||
{
|
||||
alert("이메일 인증이 필요합니다.");
|
||||
$("#name").focus();
|
||||
alert("이름을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
$("input[name='gender']").each( function () {
|
||||
if (this.checked) {
|
||||
flag = !flag;
|
||||
return;
|
||||
}
|
||||
});
|
||||
if (!flag) {
|
||||
$("#m").focus();
|
||||
alert("성별을 체크해주세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!checkBirthday())
|
||||
{
|
||||
alert("생년월일이 형식에 맞지 않습니다. 확인해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#mobileCertYn").val()!="Y")
|
||||
if($("#mobileNo_1").val() == "" || $("#mobileNo_2").val() == "" || $("#mobileNo_3").val() == "")
|
||||
{
|
||||
alert("휴대전화 인증이 필요합니다.");
|
||||
$("#mobileNo_1").focus();
|
||||
alert("휴대폰 번호를 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#mobileCertYn").val()!="Y")
|
||||
{
|
||||
alert("휴대폰 인증이 필요합니다.");
|
||||
return false;
|
||||
}
|
||||
if($("#email").val() == "")
|
||||
{
|
||||
$("#email").focus();
|
||||
alert("이메일을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#emailCertYn").val()!="Y")
|
||||
{
|
||||
alert("이메일 인증이 필요합니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#zipCode").val()=="" || $("#address").val()=="")
|
||||
{
|
||||
$("#zipCode").focus();
|
||||
alert("주소를 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(confirm("정보를 수정하시겠습니까?")){
|
||||
$("#birthday").val($("#birth_yy").val()+$("#birth_mm").val()+$("#birth_dd").val());
|
||||
$("#mobileNo").val($("#mobileNo_1").val()+$("#mobileNo_2").val()+$("#mobileNo_3").val());
|
||||
|
||||
if($("input[name='infoRecvSmsYnChk']").is(":checked"))$("#infoRecvSmsYn").val("Y");
|
||||
else $("#infoRecvSmsYn").val("N");
|
||||
if($("input[name='infoRecvEmailYnChk']").is(":checked"))$("#infoRecvEmailYn").val("Y");
|
||||
else $("#infoRecvEmailYn").val("N");
|
||||
if($("input[name='mktRecvSmsYnChk']").is(":checked"))$("#mktRecvSmsYn").val("Y");
|
||||
else $("#mktRecvSmsYn").val("N");
|
||||
if($("input[name='mktRecvEmailYnChk']").is(":checked"))$("#mktRecvEmailYn").val("Y");
|
||||
else $("#mktRecvEmailYn").val("N");
|
||||
var form = document.updateForm;
|
||||
form.action="${pageContext.request.contextPath}/userInfo/updateMyInfo.do";
|
||||
form.submit();
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function pwdChangePop(){
|
||||
if($(".pop-change").is(":visible"))
|
||||
{
|
||||
$(".pop-change").css("display","none");
|
||||
}else{
|
||||
$(".pop-change").css("display","");
|
||||
}
|
||||
|
||||
$("#password").val("");
|
||||
$("#newPassword").val("");
|
||||
$("#newPasswordConfirm").val("");
|
||||
}
|
||||
function changePassword(){
|
||||
<%//패스워드 정규식 9자이상 소문자, 숫자 ,특수문자%>
|
||||
var regExp = /^(?=.*[a-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{9,}$/i;
|
||||
|
||||
var p = document.getElementById('newPassword');
|
||||
var p_cf = document.getElementById('newPasswordConfirm');
|
||||
|
||||
if(!regExp.test(p.value)){
|
||||
p.focus();
|
||||
alert("9자리 이상, 숫자/문자/특수문자를 혼합하여 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if(p.value != p_cf.value)
|
||||
{
|
||||
alert("새 비밀번호가 일치하지 않습니다. 확인해 주세요.");
|
||||
@ -147,7 +240,17 @@ function changePassword(){
|
||||
,"newPassword" : $("#newPassword").val()
|
||||
},
|
||||
success : function(result){
|
||||
alert(result);
|
||||
if(result == "success");
|
||||
{
|
||||
alert("비밀번호 변경이 처리되었습니다.");
|
||||
pwdChangePop();
|
||||
}
|
||||
|
||||
if(result == "fail")
|
||||
{
|
||||
alert("기존 비밀번호가 올바르지 않습니다.");
|
||||
}
|
||||
|
||||
},error : function(){
|
||||
}
|
||||
})
|
||||
@ -180,11 +283,13 @@ function emailCert(){
|
||||
if(result.emailCertYn=="Y")
|
||||
{
|
||||
$("#emailCertYn").val("N");
|
||||
$("#emailCertForm").css("display","block")
|
||||
$("#emailSuc").css("display","none");
|
||||
$("#emailCertForm").css("display","")
|
||||
}
|
||||
if(result.emailCertYn=="N")
|
||||
{
|
||||
$("#emailCertYn").val("N");
|
||||
$("#emailSuc").css("display","none");
|
||||
$("#emailCertForm").css("display","none")
|
||||
}
|
||||
},error : function(){
|
||||
@ -211,6 +316,7 @@ function certEmailCheck(){
|
||||
{
|
||||
alert("인증되었습니다.");
|
||||
$("#emailCertYn").val("Y");
|
||||
$("#emailSuc").css("display","");
|
||||
}else
|
||||
{
|
||||
alert("인증번호가 일치하지않습니다.");
|
||||
@ -225,9 +331,10 @@ function certEmailCheck(){
|
||||
//핸드폰 인증번호 받기
|
||||
%>
|
||||
function mobileCert(){
|
||||
var mobileNo = $("#mobileNo_1").val()+ $("#mobileNo_2").val()+ $("#mobileNo_3").val();
|
||||
mobileNo = mobileNo.replace(/-/gi,"");
|
||||
$("#mobileNo").val(mobileNo);
|
||||
|
||||
|
||||
$("#mobileNo").val($("#mobileNo").val().replace(/-/gi,""));
|
||||
var regExp = /^\d{3}\d{3,4}\d{4}$/;
|
||||
|
||||
if(!regExp.test($("#mobileNo").val()) || $("#mobileNo").val()==""){
|
||||
@ -245,7 +352,8 @@ function mobileCert(){
|
||||
success : function(result){
|
||||
alert("인증번호가 발송됐습니다.");
|
||||
$("#mobileCertYn").val("N");
|
||||
$("#mobileCertForm").css("display","block")
|
||||
$("#mobileSuc").css("display","none");
|
||||
$("#mobileCertForm").css("display","")
|
||||
|
||||
},error : function(){
|
||||
}
|
||||
@ -271,6 +379,7 @@ function certMobileCheck(){
|
||||
{
|
||||
alert("인증되었습니다.");
|
||||
$("#mobileCertYn").val("Y");
|
||||
$("#mobileSuc").css("display","");
|
||||
}else{
|
||||
alert("인증번호가 일치하지않습니다.");
|
||||
}
|
||||
@ -287,9 +396,9 @@ document.addEventListener('keydown', function(event) {
|
||||
|
||||
function checkBirthday() {
|
||||
var birthday;
|
||||
var yy = $("#birth_yy").val();
|
||||
var yy = $("#birth_yy option:selected").val();
|
||||
var mm = $("#birth_mm option:selected").val();
|
||||
var dd = $("#birth_dd").val();
|
||||
var dd = $("#birth_dd option:selected").val();
|
||||
var lang = "ko_KR";
|
||||
|
||||
var oyy = $("#birth_yy");
|
||||
@ -386,7 +495,7 @@ function snsUnlink(snsId){
|
||||
data : {mbSnsId:snsId},
|
||||
success : function(result){
|
||||
alert("연동이 해지되었습니다.");
|
||||
$("#s"+snsId).remove();
|
||||
$("#sns_"+snsId).remove();
|
||||
if($("input[name='unlinkBtn']").length==1)
|
||||
{
|
||||
$("input[name='unlinkBtn']").remove();
|
||||
@ -399,186 +508,196 @@ function snsUnlink(snsId){
|
||||
}
|
||||
|
||||
</script>
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
|
||||
padding-top:0px;
|
||||
|
||||
margin-top:0px;
|
||||
|
||||
background-color:#f5f5f5;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.page-header {
|
||||
|
||||
padding-top:0px;
|
||||
|
||||
margin-top:0px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.form-horizontal .control-label.text-left{
|
||||
|
||||
text-align:left;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.form-horizontal .form-group {
|
||||
|
||||
height:50px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
h3 span.ok {
|
||||
|
||||
color:#01A9DB;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
label.error {
|
||||
|
||||
font-family:"돋움", Dotum, "Apple SD Gothic Neo", Helvetica, Sans-serif;
|
||||
|
||||
font-size:9pt;
|
||||
|
||||
font-weight:600;
|
||||
|
||||
padding:3px 0 0 10px;
|
||||
|
||||
color:#FF0000;
|
||||
|
||||
display:block;
|
||||
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrap">
|
||||
<br><br>
|
||||
<b><font size="6" color="gray">정보수정</font></b>
|
||||
<br><br><br>
|
||||
|
||||
<form id="updateForm" name="updateForm" method="post" onsubmit="return update()" action="${pageContext.request.contextPath}/userInfo/updateMyInfo.do">
|
||||
<table>
|
||||
<tr>
|
||||
<td id="title">이메일</td>
|
||||
<td>
|
||||
<input type="email" id="email" name="email" maxlength="30" required value=<c:out value="${loginVO.email}"/> ><button type="button" id="emailCertSendBtn" name="emailCertSendBtn" style="text-align:left;display:none;" class="btn-warning" onclick="emailCert()" required>인증번호 받기</button>
|
||||
<div id="emailCertForm" style="display:none;"><br><input type='text' id='emailVrfctNo' name='emailVrfctNo'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certEmailCheck()' >인증번호 확인</button></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">이름</td>
|
||||
<td>
|
||||
<input type="text" id="name" name="name" minlength="2" maxlength="20" required value=<c:out value="${loginVO.name}"/>>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">성별</td>
|
||||
<td>
|
||||
<input type="radio" name="gender" value="M" required>남자
|
||||
<input type="radio" name="gender" value="F" required>여자
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">생년월일</td>
|
||||
<td>
|
||||
<input type="text" id="birth_yy" name="birth_yy" maxlength="4" placeholder="년(4자)" required >
|
||||
<select id="birth_mm" name="birth_mm" required>
|
||||
<option value="">월</option>
|
||||
<option value="01" >01</option>
|
||||
<option value="02" >02</option>
|
||||
<option value="03" >03</option>
|
||||
<option value="04" >04</option>
|
||||
<option value="05" >05</option>
|
||||
<option value="06" >06</option>
|
||||
<option value="07" >07</option>
|
||||
<option value="08" >08</option>
|
||||
<option value="09" >09</option>
|
||||
<option value="10" >10</option>
|
||||
<option value="11" >11</option>
|
||||
<option value="12" >12</option>
|
||||
</select>
|
||||
<input type="text" id="birth_dd" name="birth_dd" size="2" maxlength="2" placeholder="일" size="4" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">주소</td>
|
||||
<td>
|
||||
<input type="text" id="zipCode" name="zipCode" value="<c:out value="${loginVO.zipCode}"/>" readonly ><button type="button" style="text-align:left;" class="btn-warning" onclick="sample6_execDaumPostcode()">주소검색</button><br>
|
||||
<input type="text" id="address" name="address" value="<c:out value="${loginVO.address}" escapeXml="false"/>" readonly />
|
||||
<input type="text" id="addressDetail" name="addressDetail" value="<c:out value="${loginVO.addressDetail}"/>" />
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="title">휴대전화</td>
|
||||
<td id="Cert">
|
||||
<input type="text" id="mobileNo" name="mobileNo" required value="<c:out value="${loginVO.mobileNo}"/>" ><button type="button" id="mobileCertSendBtn" style="text-align:left;display:none;" class="btn-warning" onclick="mobileCert()" required>인증번호 받기</button>
|
||||
<div id="mobileCertForm" style="display:none;"><br><input type='text' id='mobileVrfctNo' name='mobileVrfctNo'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certMobileCheck()' >인증번호 확인</button></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<input type="hidden" id="mobileCertYn" name="mobileCertYn" value=<c:out value="Y"/>>
|
||||
<input type="hidden" id="emailCertYn" name="emailCertYn" value="Y">
|
||||
<input type="hidden" id="loginUserId" name="loginUserId" value='<c:out value="${loginVO.loginUserId}"/>'>
|
||||
<input type="hidden" id="userEmail" name="userEmail" value='<c:out value="${loginVO.email}"/>'>
|
||||
<input type="hidden" id="userMobileNo" name="userMobileNo" value='<c:out value="${loginVO.mobileNo}"/>'>
|
||||
<input type="hidden" id="birthday" name="birthday" >
|
||||
<input type="hidden" id="mbInfoId" name="mbInfoId" value="<c:out value="${loginVO.mbInfoId}"/>" >
|
||||
<input type="hidden" id="extMobileNo" name="extMobileNo" value="<c:out value="${loginVO.mobileNo}"/>">
|
||||
<input type="submit" value="수정"/> <input type="button" onclick="javascript:location.href='${pageContext.request.contextPath}/userInfo/getMyInfo.do';" value="취소">
|
||||
</form>
|
||||
<a href="${pageContext.request.contextPath}/member/deleteMembershipForm.do">소장자료관을 더 이상 사용하고 싶지 않으신가요?</a>
|
||||
</div>
|
||||
<div>
|
||||
<br>
|
||||
<p1>SNS연동 </p1><br>
|
||||
<c:forEach var="snsList" items="${snsList}" varStatus="status">
|
||||
<a id="<c:out value="s${snsList.mbSnsId}" />"><c:out value="${snsList.snsType }" /> 이메일: <c:out value="${snsList.mbSnsId}" /> <c:out value="${snsList.regDd}" /> 연결완료 <input type="button" name="unlinkBtn" onclick=snsUnlink("<c:out value="${snsList.mbSnsId}" />"); value="연결해제"></a>
|
||||
<br>
|
||||
</c:forEach>
|
||||
<br>
|
||||
<p1>비밀번호 변경 </p1>
|
||||
<form id="passwordForm" name="passwordForm" method="post" onsubmit="return changePassword()" >
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="password" id="password" name="password"
|
||||
placeholder="기존 비밀번호" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="password" id="newPassword" name="newPassword" minlength="8" maxlength="16"
|
||||
oninvalid="this.setCustomValidity('8~16자 영문 대 소문자, 숫자, 특수문자를 사용하세요.')"
|
||||
oninput="this.setCustomValidity('')"
|
||||
pattern="^(?=.*[a-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,16}$"
|
||||
placeholder="새 비밀번호" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="password" id="newPasswordConfirm" name="newPasswordConfirm" placeholder="새 비밀번호 확인" minlength="8" maxlength="16" required>
|
||||
</td>
|
||||
<td> <div id="passwordMsg"></div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="변경하기"/>
|
||||
<input type="button" value="취소"/>
|
||||
<!-- 내정보 수정 섹션 -->
|
||||
<div class="location join modify">
|
||||
<h2 class="blind">내정보 수정 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<div class="row-top">
|
||||
<div class="location-box">
|
||||
<ul class="loc">
|
||||
<li>HOME</li>
|
||||
<li>마이페이지</li>
|
||||
<li>회원정보관리</li>
|
||||
<li class="on">내 정보</li>
|
||||
</ul>
|
||||
<ul class="tit">
|
||||
<li><span>내정보</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="arr"><img src="/images/icon/icon-join-arr2.png" alt="화살표 아이콘"></div>
|
||||
</div>
|
||||
<div class="contents row-bottom">
|
||||
<div class="join-box">
|
||||
<div class="info">
|
||||
<form id="updateForm" name="updateForm" class="mt-5 form-container" method="post" action="${pageContext.request.contextPath}/userInfo/updateMyInfo.do">
|
||||
<input type="hidden" id="birthday" name="birthday" >
|
||||
<input type="hidden" id="mobileNo" name="mobileNo" >
|
||||
<input type="hidden" id="mobileCertYn" name="mobileCertYn" value="Y">
|
||||
<input type="hidden" id="emailCertYn" name="emailCertYn" value="Y">
|
||||
<input type="hidden" id="loginUserId" name="loginUserId" >
|
||||
<input type="hidden" id="infoRecvSmsYn" name="infoRecvSmsYn" >
|
||||
<input type="hidden" id="infoRecvEmailYn" name="infoRecvEmailYn">
|
||||
<input type="hidden" id="mktRecvSmsYn" name="mktRecvSmsYn">
|
||||
<input type="hidden" id="mktRecvEmailYn" name="mktRecvEmailYn">
|
||||
<input type="hidden" id="mbInfoId" name="mbInfoId" value="<c:out value="${loginVO.mbInfoId}"/>" >
|
||||
<h2 style="margin-top:0;">회원정보</h2>
|
||||
|
||||
<div class="form-group Username">
|
||||
<label>이름</label>
|
||||
<div class="con">
|
||||
<input class="form-control" type="text" id="name" name="name" minlength="2" maxlength="20" value=<c:out value="${loginVO.name}"/> placeholder="이름을 입력하세요"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Usersex">
|
||||
<label>성별</label>
|
||||
<div class="con">
|
||||
<div class="chk"><input type="checkbox" id="m" class="sex" name="gender" value="M" ><label for="m">남자</label></div>
|
||||
<div class="chk"><input type="checkbox" id="w" class="sex" name="gender" value="F"><label for="w">여자</label></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Userbirth">
|
||||
<label>생년월일</label>
|
||||
<div class="con">
|
||||
<select name="birth_yy" id="birth_yy"></select> 년
|
||||
<select name="birth_mm" id="birth_mm"></select> 월
|
||||
<select name="birth_dd" id="birth_dd"></select> 일
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Userpassword">
|
||||
<label>비밀번호</label>
|
||||
<div class="con">
|
||||
<p><button type="button" class="btn btn-color pop-change-btn" onclick="pwdChangePop();">비밀번호 변경</button></p>
|
||||
<p>- 입력하신 비밀번호는 ‘계정 연결’, ‘내 정보 확인’, ‘회원탈퇴’ 시, 회원님의 정보보호 및 본인확인을 위해 사용됩니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Usermobile">
|
||||
<label>휴대폰 번호</label>
|
||||
<div class="con mobile">
|
||||
<div class="row">
|
||||
<input class="form-control mobile1" type="text" id="mobileNo_1" value="010" maxlength="3" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/> -
|
||||
<input class="form-control mobile2" type="text" id="mobileNo_2" value="" maxlength="4" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/> -
|
||||
<input class="form-control mobile3" type="text" id="mobileNo_3" value="" maxlength="4" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/>
|
||||
<button type="button" class="btn-color" id="mobileCertSendBtn" name="mobileCertSendBtn" style="display:none;" onclick="mobileCert();">인증하기</button>
|
||||
<button type="button" class="btn-black" id="mobileReSend" style="display:none;" onclick="mobileCert();">재전송</button>
|
||||
</div>
|
||||
<div class="row" id="mobileCertForm" style="display:none;">
|
||||
<input class="form-control cer" type="text" id='mobileVrfctNo' name='mobileVrfctNo' placeholder=" SMS로 발송된 인증번호를 입력하세요"/>
|
||||
<button type="button" class="btn-gray" onclick='certMobileCheck();'>확인</button>
|
||||
<span id="mobileSuc" class="suc">인증이 완료되었습니다.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Useremail">
|
||||
<label>이메일</label>
|
||||
<div class="con email">
|
||||
<div class="row">
|
||||
<input class="form-control email1" type="email" id="email" name="email" placeholder="example@mail.com" maxlength="30" value="<c:out value="${loginVO.email}"/>" />
|
||||
<button type="button" class="btn-color" id="emailCertSendBtn" name="emailCertSendBtn" style="display:none;" onclick="emailCert();">인증하기</button>
|
||||
<button type="button" class="btn-black" id="emailReSend" style="display:none;" onclick="emailCert();">재전송</button>
|
||||
</div>
|
||||
<div class="row" id="emailCertForm" style="display:none;">
|
||||
<input class="form-control cer" type="text" id='emailVrfctNo' name='emailVrfctNo' placeholder=" 이메일로 발송된 인증번호를 입력하세요"/>
|
||||
<button type="button" class="btn-gray" onclick='certEmailCheck()'>확인</button>
|
||||
<span id="emailSuc" class="suc">인증이 완료되었습니다.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Useraddr">
|
||||
<label>주소</label>
|
||||
<div class="con addr">
|
||||
<div class="row">
|
||||
<input class="form-control addr1" type="text" id="zipCode" name="zipCode" value="<c:out value="${loginVO.zipCode}"/>" readonly placeholder="우편번호" />
|
||||
<button type="button" class="btn-color" onclick="sample6_execDaumPostcode();">우편번호</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<input class="form-control addr2" type="text" id="address" name="address" value="<c:out value="${loginVO.address}" escapeXml="false"/>" readonly placeholder="주소" />
|
||||
<input class="form-control addr3" type="text" id="addressDetail" name="addressDetail" value="<c:out value="${loginVO.addressDetail}"/>" placeholder="상세주소" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group Usersns">
|
||||
<label>SNS 연동</label>
|
||||
<div class="con sns">
|
||||
<div class="row">
|
||||
<c:forEach var="result" items="${snsList}" varStatus="status">
|
||||
<div class="list" id="sns_<c:out value="sns_${result.mbSnsId}"/>">
|
||||
<div class="sns-box ${fn:toLowerCase(result.snsType)}"><span><img src="/images/icon/icon-${fn:toLowerCase(result.snsType)}-login.png"></span><span><c:out value="${result.snsUserId}" /> <c:out value="${result.regDd}" /> 연결완료</span></div>
|
||||
<c:if test="${fn:length(snsList) > 1}"><button type="button" class="btn-black" name="unlinkBtn" onclick="snsUnlink('<c:out value="${result.mbSnsId}" />');">연결해제</button></c:if>
|
||||
</div>
|
||||
</c:forEach>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>서비스 알림 수신 동의</h2>
|
||||
|
||||
<div class="form-group service">
|
||||
<div class="left">
|
||||
<div class="chk"><input type="checkbox" id="service-chk1" class="ser-chk1" name="" <c:if test="${loginVO.infoRecvSmsYn eq 'Y' and loginVO.infoRecvEmailYn eq 'Y' }">checked </c:if>><label for="service-chk1">대출/열람 정보 수신동의 [필수/1건 이상 선택]</label></div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="chk"><input type="checkbox" id="service-chk1-1" class="ser-chk1-1" name="infoRecvSmsYnChk" <c:if test="${loginVO.infoRecvSmsYn eq 'Y' }">checked </c:if>><label for="service-chk1-1">문자(SMS)</label></div>
|
||||
<div class="chk"><input type="checkbox" id="service-chk1-2" class="ser-chk1-1" name="infoRecvEmailYnChk" <c:if test="${loginVO.infoRecvEmailYn eq 'Y' }">checked </c:if>><label for="service-chk1-2">이메일</label></div>
|
||||
</div>
|
||||
<p class="bg">- 문자(SMS)/이메일 수신동의를 하시면 ‘자료반납’, ‘자료연체’, ‘예약자료 도착’, ‘열람신청 승인’, ‘열람신청 반려’ 알림을 받으실 수 있습니다.</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group service">
|
||||
<div class="left">
|
||||
<div class="chk"><input type="checkbox" id="service-chk2" class="ser-chk2" name="" <c:if test="${loginVO.mktRecvSmsYn eq 'Y' and loginVO.mktRecvEmailYn eq 'Y' }">checked </c:if>><label for="service-chk2">지방문화원 소식/홍보 알림 수신동의 [선택]</label></div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="chk"><input type="checkbox" id="service-chk2-1" class="ser-chk2-2" name="mktRecvSmsYnChk" <c:if test="${loginVO.mktRecvSmsYn eq 'Y' }">checked </c:if>><label for="service-chk2-1">문자(SMS)</label></div>
|
||||
<div class="chk"><input type="checkbox" id="service-chk2-2" class="ser-chk2-2" name="mktRecvEmailYnChk" <c:if test="${loginVO.mktRecvEmailYn eq 'Y' }">checked </c:if>><label for="service-chk2-2">이메일</label></div>
|
||||
</div>
|
||||
<p class="bg">- 문자(SMS)/이메일 수신동의를 하시면 문화원 소식이나 주요 행사 등의 정보를 빠르게 만나실 수 있습니다.</p>
|
||||
<p>- 회원가입완료, 임시비밀번호 발급관련 내용의 경우 수신 동의와 상관없이 이메일로 발송됩니다.</p>
|
||||
</div>
|
||||
|
||||
<p class="release"><a href="${pageContext.request.contextPath}/member/deleteMembershipForm.do">소장자료관을 더 이상 사용하고 싶지 않으신가요? ></a></p>
|
||||
|
||||
<div class="btn-box">
|
||||
<button type="button" class="btn btn-color" onclick="update();">수정하기</button>
|
||||
<button type="button" class="btn btn-gray" id="cancel" href="/">취소</button>
|
||||
</div>
|
||||
</form>
|
||||
<form id="passwordForm" name="passwordForm" method="post">
|
||||
<!-- 비밀번호변경 팝업 -->
|
||||
<div class="pop-change" style="display:none;">
|
||||
<div class="row Title">
|
||||
<p>내 정보</p>
|
||||
<h3>비밀번호 변경</h3>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<div class="row change">
|
||||
<p><input class="passwd" type="password" id="password" name="password" placeholder="기존 비밀번호" required/></p>
|
||||
<p><input class="passwd" type="password" id="newPassword" name="newPassword" placeholder="새 비밀번호" required/></p>
|
||||
<p><input class="passwd" type="password" id="newPasswordConfirm" name="newPasswordConfirm" placeholder="새 비밀번호 확인" required/></p>
|
||||
<span id="passwdMatch" class="suc">일치합니다.</span>
|
||||
<p class="text">9자리 이상, 숫자/문자/특수문자를 혼합하여 입력</p>
|
||||
</div>
|
||||
<div class="row btn-box">
|
||||
<button type="button" class="btn btn-color" onclick="changePassword();">변경하기</button>
|
||||
<button type="button" class="btn btn-gray close" onclick="pwdChangePop();">취소</button>
|
||||
</div>
|
||||
<button type="button" class="change-close" onclick="pwdChangePop();"></button>
|
||||
</div>
|
||||
<div class="Bg"></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
|
||||
|
||||
@ -43,15 +43,57 @@ if("${message}"!="")
|
||||
|
||||
});
|
||||
function goPutMyInfo(){
|
||||
if($("#password")=="")
|
||||
{
|
||||
alert("비밀번호를 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
document.pwInputForm.action="${pageContext.request.contextPath}/userInfo/putMyInfo.do";
|
||||
document.pwInputForm.submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>비밀번호를 입력해주세요</h2>
|
||||
<form id="pwInputForm" name="pwInputForm" method="POST">
|
||||
<input type="password" id="password" name="password" required><button style="text-align:left;" class="btn-warning" onclick="goPutMyInfo();">확인</button>
|
||||
</form>
|
||||
<input type="hidden" name="mbInfoId" value="${loginVO.mbInfoId }" >
|
||||
<!-- 내 정보 패스워드 섹션 -->
|
||||
<div class="location passwd">
|
||||
<h2 class="blind">내 정보 패스워드 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<div class="row-top">
|
||||
<div class="location-box">
|
||||
<ul class="loc">
|
||||
<li>HOME</li>
|
||||
<li>마이페이지</li>
|
||||
<li>회원정보관리</li>
|
||||
<li class="on">내 정보</li>
|
||||
</ul>
|
||||
<ul class="tit">
|
||||
<li><span>내 정보</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="arr"><img src="/images/icon/icon-join-arr2.png" alt="화살표 아이콘"></div>
|
||||
</div>
|
||||
<div class="contents row-bottom">
|
||||
<div class="myinfo-passwd">
|
||||
<div class="inner">
|
||||
<div class="icon"><img src="/images/icon/icon-myinfo-paswd.png" alt="체크 아이콘"></div>
|
||||
<div class="text">
|
||||
<p>회원님의 <span>소중한 정보보호를 위해 비밀번호를 다시 한 번 확인</span>합니다.</p>
|
||||
<p>(회원가입 시, 등록한 비밀번호를 입력해주세요.)</p>
|
||||
</div>
|
||||
<div class="box">
|
||||
<p><input type="password" id="password" name="password" placeholder="비밀번호" onKeypress="javascript:if(event.keyCode==13) {goPutMyInfo();}"></p>
|
||||
<p><a href="javascript:void(0);" class="cancel" onclick="forgetPassword('pwInputForm');">비밀번호를 잊으셨나요? ></a></p>
|
||||
</div>
|
||||
<div class="btn-box">
|
||||
<a href="javascript:void(0)" class="btn btn-color" onclick="goPutMyInfo();">확인</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,33 @@
|
||||
<div class="mail-form" style="width:700px;border:1px solid #ddd;margin:0 auto;">
|
||||
<div style="background: url(${hostName}/images/mail/bg-certification.jpg) no-repeat;background-size:cover;">
|
||||
<div style="width:640px;height:300px;padding:30px;">
|
||||
<span><img src="${hostName}/images/mail/logo.png" alt="logo" style="vertical-align: middle;margin-bottom:5px;"></span>
|
||||
<span style="color:#fff;font-size:18px;font-weight: bold;border-right:1px solid #ddd;height:20px;line-height: 20px;display: inline-block;padding-right:10px;margin-right:5px;">${councilNm}</span>
|
||||
<span style="color:#fff;font-size:18px;font-weight: 500;">소장자료관</span>
|
||||
<div style="width:60px;height:1px;background:#fff;display:block;margin:120px 0px 0px;"></div>
|
||||
<p style="font-size:40px;color:#fff;letter-spacing: -2.5px;margin:25px 0px;"><strong>${councilNm}에서<br> <span style="color:#64e0ff;">이메일 인증번호</span></strong>를 발송해드립니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin:30px;">
|
||||
<div style="background:#ebf0f4;border:1px solid #ddd;border-radius: 5px;padding:20px 20px;">
|
||||
<p style="color:#333;font-size:20px;font-weight: bold;">${name} 회원님, 안녕하세요.</p>
|
||||
<p style="font-size:16px;line-height:26px;"><span style="color:#d47b1c;font-weight: bold;">${time}</span>에 <span style="color:#d47b1c;font-weight: bold;">인증하기</span>를 요청하셨습니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin:50px 30px;">
|
||||
<p style="font-size:16px;letter-spacing: -0.5px;">인증하기 요청을 한 사람이 본인이 맞으면 아래의 인증번호를 이메일 인증번호 입력란에 입력하여 이메일 인증을 완료해주시기 바랍니다.</p>
|
||||
</div>
|
||||
<div style="margin:30px 30px 60px;border-top:2px solid #6c92b7;border-bottom:1px solid #6c92b7;">
|
||||
<div style="width:100%;display: inline-block;vertical-align: top;">
|
||||
<span style="display: inline-block;float:left;width:20%;background: #f0f4f8;padding:15px 5%;font-weight:bold;">이메일 인증번호</span>
|
||||
<span style="display: inline-block;float:left;width:60%;background: #fff;padding:15px 5%;">${certNumber}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="background: #5c5c5c;padding:20px 5%;width:90%;display:inline-block;vertical-align: top;">
|
||||
<div style="float:left;width:25%;"><img src="${hostName}/images/mail/footer-logo.png"></div>
|
||||
<div style="float:left;width:75%;">
|
||||
<p style="color:#fff;font-size:12px;margin:0;font-weight: bold;">본 메일은 발신전용 메일입니다.</p>
|
||||
<p style="font-size:12px;color:#aaa;">서울시 마포대로49 성우빌딩 308호 TEL. 02.704-2322 FAX. 02.704-2377<br>COPYRIGHT (C)2018 The Federation of Korea Culture Center. ALL RIGHT RESERVED.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,12 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>회원가입완료</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<span style="color:orange">${contents}</span>님 회원가입이 완료되었습니다.
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -1,12 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>비밀번호 초기화</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
초기화된 비밀번호는 <span style="color:orange">${contents}</span> 입니다.
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<div class="mail-form" style="width:700px;border:1px solid #ddd;margin:0 auto;">
|
||||
<div style="background: url(${hostName}/images/mail/bg-certification.jpg) no-repeat;background-size:cover;">
|
||||
<div style="width:640px;height:300px;padding:30px;">
|
||||
<span><img src="${hostName}/images/mail/logo.png" alt="logo" style="vertical-align: middle;margin-bottom:5px;"></span>
|
||||
<span style="color:#fff;font-size:18px;font-weight: bold;border-right:1px solid #ddd;height:20px;line-height: 20px;display: inline-block;padding-right:10px;margin-right:5px;">${councilNm}</span>
|
||||
<span style="color:#fff;font-size:18px;font-weight: 500;">소장자료관</span>
|
||||
<div style="width:60px;height:1px;background:#fff;display:block;margin:120px 0px 0px;"></div>
|
||||
<p style="font-size:40px;color:#fff;letter-spacing: -2.5px;margin:25px 0px;"><strong>${councilNm}에서<br> <span style="color:#64e0ff;">임시 비밀번호</span></strong>를 발송해드립니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin:30px;">
|
||||
<div style="background:#ebf0f4;border:1px solid #ddd;border-radius: 5px;padding:20px 20px;">
|
||||
<p style="color:#333;font-size:20px;font-weight: bold;">${name} 회원님, 안녕하세요.</p>
|
||||
<p style="font-size:16px;line-height:26px;"><span style="color:#d47b1c;font-weight: bold;">${time}</span>에 <span style="color:#d47b1c;font-weight: bold;">임시 비밀번호</span>를 요청하셨습니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin:50px 30px;">
|
||||
<p style="font-size:16px;letter-spacing: -0.5px;">임시 비밀번호 요청을 한 사람이 본인이 맞으면 아래의 임시비밀번호를 비밀번호 입력란에 입력하여 로그인을 완료해주시기 바랍니다.</p>
|
||||
</div>
|
||||
<div style="margin:30px 30px 60px;border-top:2px solid #6c92b7;border-bottom:1px solid #6c92b7;">
|
||||
<div style="width:100%;display: inline-block;vertical-align: top;">
|
||||
<span style="display: inline-block;float:left;width:20%;background: #f0f4f8;padding:15px 5%;font-weight:bold;">임시 비밀번호</span>
|
||||
<span style="display: inline-block;float:left;width:60%;background: #fff;padding:15px 5%;">${initPwd}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="background: #5c5c5c;padding:20px 5%;width:90%;display:inline-block;vertical-align: top;">
|
||||
<div style="float:left;width:25%;"><img src="${hostName}/images/mail/footer-logo.png"></div>
|
||||
<div style="float:left;width:75%;">
|
||||
<p style="color:#fff;font-size:12px;margin:0;font-weight: bold;">본 메일은 발신전용 메일입니다.</p>
|
||||
<p style="font-size:12px;color:#aaa;">서울시 마포대로49 성우빌딩 308호 TEL. 02.704-2322 FAX. 02.704-2377<br>COPYRIGHT (C)2018 The Federation of Korea Culture Center. ALL RIGHT RESERVED.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
<div class="mail-form" style="width:700px;border:1px solid #ddd;margin:0 auto;">
|
||||
<div style="background: url(${hostName}/images/mail/bg-membership.jpg) no-repeat;background-size:cover;">
|
||||
<div style="width:640px;height:300px;padding:30px;">
|
||||
<span><img src="${hostName}/images/mail/logo.png" alt="logo" style="vertical-align: middle;margin-bottom:5px;"></span>
|
||||
<span style="color:#fff;font-size:18px;font-weight: bold;border-right:1px solid #ddd;height:20px;line-height: 20px;display: inline-block;padding-right:10px;margin-right:5px;">${councilNm}</span>
|
||||
<span style="color:#fff;font-size:18px;font-weight: 500;">소장자료관</span>
|
||||
<div style="width:60px;height:1px;background:#fff;display:block;margin:120px 0px 0px;"></div>
|
||||
<p style="font-size:40px;color:#fff;letter-spacing: -2.5px;margin:25px 0px;"><strong>${councilNm} <span style="color:#64e0ff;">소장자료관 가입</span></strong>을<br>축하드립니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin:30px;">
|
||||
<div style="background:#ebf0f4;border:1px solid #ddd;border-radius: 5px;padding:20px 20px;">
|
||||
<p style="color:#333;font-size:20px;font-weight: bold;">${name} 회원님, 안녕하세요.</p>
|
||||
<p style="font-size:16px;line-height:26px;"><span style="color:#d47b1c;font-weight: bold;">${time}</span>에 <span style="color:#d47b1c;font-weight: bold;">${councilNm} 소장자료관</span>에<br>가입하셨습니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin:30px 30px 0px;border-top:2px solid #6c92b7;border-bottom:1px solid #6c92b7;">
|
||||
<div style="width:100%;border-bottom:1px solid #ddd;display: inline-block;vertical-align: top;">
|
||||
<span style="display: inline-block;float:left;width:20%;background: #f0f4f8;padding:15px 5%;font-weight:bold;">이름</span>
|
||||
<span style="display: inline-block;float:left;width:60%;background: #fff;padding:15px 5%;">${name}</span>
|
||||
</div>
|
||||
<div style="width:100%;display: inline-block;vertical-align: top;">
|
||||
<span style="display: inline-block;float:left;width:20%;background: #f0f4f8;padding:15px 5%;font-weight:bold;">메일</span>
|
||||
<span style="display: inline-block;float:left;width:60%;background: #fff;padding:15px 5%;">${email}</span>
|
||||
</div>
|
||||
</div>
|
||||
<p style="margin:5px 30px 60px; font-size:14px;">- 회원정보는 <span style="color:#d47b1c;font-weight: bold;">[마이페이지 > 회원정보관리 > 내 정보]</span> 에서 수정할 수 있습니다.</p>
|
||||
<div style="margin:30px;">
|
||||
<p style="font-size:15px;color:#333;letter-spacing: -1px;">${councilNm}에서 이용 가능한 온라인 회원증이 발급되었으며 [회원증] 메뉴를 통해 확인하실 수 있습니다.</p>
|
||||
<p style="font-size:15px;color:#333;letter-spacing: -1px;">지역의 문화를 엿볼 수 있는 소장자료관에서 많은 자료들을 둘러보시고 대출/열람 서비스를 이용해보세요.</p>
|
||||
</div>
|
||||
<div style="background: #5c5c5c;padding:20px 5%;width:90%;display:inline-block;vertical-align: top;">
|
||||
<div style="float:left;width:25%;"><img src="${hostName}/images/mail/footer-logo.png"></div>
|
||||
<div style="float:left;width:75%;">
|
||||
<p style="color:#fff;font-size:12px;margin:0;font-weight: bold;">본 메일은 발신전용 메일입니다.</p>
|
||||
<p style="font-size:12px;color:#aaa;">서울시 마포대로49 성우빌딩 308호 TEL. 02.704-2322 FAX. 02.704-2377<br>COPYRIGHT (C)2018 The Federation of Korea Culture Center. ALL RIGHT RESERVED.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -355,7 +355,7 @@
|
||||
<button type="button" class="btn-apply">적용</button>
|
||||
</div>
|
||||
|
||||
<div class="filter">
|
||||
<div class="filter ">
|
||||
<div class="filter-tit">
|
||||
<h3>생산기관</h3>
|
||||
</div>
|
||||
|
||||
BIN
src/main/webapp/images/mail/bg-certification.jpg
Normal file
BIN
src/main/webapp/images/mail/bg-certification.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
BIN
src/main/webapp/images/mail/bg-membership.jpg
Normal file
BIN
src/main/webapp/images/mail/bg-membership.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
BIN
src/main/webapp/images/mail/bg-overdue.jpg
Normal file
BIN
src/main/webapp/images/mail/bg-overdue.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
BIN
src/main/webapp/images/mail/bg-request.jpg
Normal file
BIN
src/main/webapp/images/mail/bg-request.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
BIN
src/main/webapp/images/mail/footer-logo.png
Normal file
BIN
src/main/webapp/images/mail/footer-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/main/webapp/images/mail/logo.png
Normal file
BIN
src/main/webapp/images/mail/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
@ -1,3 +1,27 @@
|
||||
// 회원가입 셀렉트박스
|
||||
function birthdaySelectBox() {
|
||||
var now = new Date();
|
||||
var year = now.getFullYear();
|
||||
var mon = (now.getMonth() + 1) > 9 ? ''+(now.getMonth() + 1) : '0'+(now.getMonth() + 1);
|
||||
var day = (now.getDate()) > 9 ? ''+(now.getDate()) : '0'+(now.getDate());
|
||||
// 년도
|
||||
for(var i = 1900 ; i <= year ; i++) {
|
||||
$('#birth_yy').append('<option value="' + i + '">' + i + '년</option>');
|
||||
}
|
||||
|
||||
// 월별
|
||||
for(var i=1; i <= 12; i++) {
|
||||
var mm = i > 9 ? i : "0"+i ;
|
||||
$('#birth_mm').append('<option value="' + mm + '">' + mm + '월</option>');
|
||||
}
|
||||
|
||||
// 일별
|
||||
for(var i=1; i <= 31; i++) {
|
||||
var dd = i > 9 ? i : "0"+i ;
|
||||
$('#birth_dd').append('<option value="' + dd + '">' + dd+ '일</option>');
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
/* 상단 메뉴 Fixed */
|
||||
@ -105,33 +129,6 @@ $(document).ready(function(){
|
||||
});
|
||||
});
|
||||
|
||||
// 회원가입 셀렉트박스
|
||||
jQuery(function($) {
|
||||
var now = new Date();
|
||||
var year = now.getFullYear();
|
||||
var mon = (now.getMonth() + 1) > 9 ? ''+(now.getMonth() + 1) : '0'+(now.getMonth() + 1);
|
||||
var day = (now.getDate()) > 9 ? ''+(now.getDate()) : '0'+(now.getDate());
|
||||
// 년도
|
||||
for(var i = 1900 ; i <= year ; i++) {
|
||||
$('#year').append('<option value="' + i + '">' + i + '년</option>');
|
||||
}
|
||||
|
||||
// 월별
|
||||
for(var i=1; i <= 12; i++) {
|
||||
var mm = i > 9 ? i : "0"+i ;
|
||||
$('#month').append('<option value="' + mm + '">' + mm + '월</option>');
|
||||
}
|
||||
|
||||
// 일별
|
||||
for(var i=1; i <= 31; i++) {
|
||||
var dd = i > 9 ? i : "0"+i ;
|
||||
$('#day').append('<option value="' + dd + '">' + dd+ '일</option>');
|
||||
}
|
||||
$("#year > option[value="+year+"]").attr("selected", "true");
|
||||
$("#month > option[value="+mon+"]").attr("selected", "true");
|
||||
$("#day > option[value="+day+"]").attr("selected", "true");
|
||||
});
|
||||
|
||||
// 회원가입 체크박스
|
||||
$('input.sex[type="checkbox"]').bind('click',function() {
|
||||
$('input.sex[type="checkbox"]').not(this).prop("checked", false);
|
||||
|
||||
@ -94,13 +94,40 @@ function fn_closeLayerPopup() {
|
||||
}
|
||||
|
||||
function fn_myAlert(newAlertNum) {
|
||||
|
||||
if(newAlertNum == "undefined" || newAlertNum == null || newAlertNum < 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
fn_openLayerPopup("알림", "아직 확인하지 않은 새로운 알림이 " + newAlertNum + "건 있습니다", "알림 목록으로", CONTEXT_PATH + "/cmm/listNotifications.do");
|
||||
var notiHtml =
|
||||
'<div class="row Title">' +
|
||||
' <p>지방문화원 소장자료</p>' +
|
||||
' <h3>알림</h3>' +
|
||||
'</div>' +
|
||||
'<div class="inner">' +
|
||||
' <div class="row Text">' +
|
||||
' <p>아직 확인하지 않은<br>새로운 알림이 <span>' + newAlertNum + '</span>건 있습니다.</p>' +
|
||||
' </div>' +
|
||||
' <div class="row btn-box">' +
|
||||
' <button type="button" class="btn btn-color" onclick="fn_closeLayerPopup()">확인</button>' +
|
||||
' <button type="submit" class="btn btn-green" onclick="location.href = \'/cmm/listNotifications.do\'; ">알림 목록으로</button>' +
|
||||
' </div>' +
|
||||
' <button type="button" class="notice-close" onclick="fn_closeLayerPopup()"></button>' +
|
||||
'</div>' +
|
||||
'<div class="Bg"></div>';
|
||||
fn_layerPopWithHtml(notiHtml, "pop-notice");
|
||||
}
|
||||
|
||||
function fn_layerPopWithHtml(cHtml, addClasses) {
|
||||
$("#NLIB_LAYER_POPUP").removeClass();
|
||||
$("#NLIB_LAYER_POPUP").addClass(addClasses);
|
||||
$("#NLIB_LAYER_POPUP").html(cHtml);
|
||||
$("#NLIB_LAYER_POPUP").show();
|
||||
|
||||
var classes = addClasses.split(" ");
|
||||
|
||||
$("." + classes[0]).fadeIn();
|
||||
}
|
||||
|
||||
function fn_layerPopWithClass(url, addClasses) {
|
||||
// 클릭 시, 로딩되도록 처리 (2021.10.20)
|
||||
@ -293,4 +320,15 @@ function fn_viewItemDetailInfo(masterId){
|
||||
$("#FRM_ITEM_DETAIL").submit();
|
||||
}
|
||||
|
||||
|
||||
function fn_formatDateStr(yyyymmdd, defVal) {
|
||||
if(fn_isEmpty(yyyymmdd)) return defVal;
|
||||
if(yyyymmdd.length == 8) {
|
||||
return yyyymmdd.substr(0, 4) + "-" + yyyymmdd.substr(4,2) + "-" + yyyymmdd.substr(6);
|
||||
} else if(yyyymmdd.length == 6) {
|
||||
return yyyymmdd.substr(0, 4) + "-" + yyyymmdd.substr(4,2);
|
||||
} else if(yyyymmdd.length == 4) {
|
||||
return yyyymmdd;
|
||||
}
|
||||
|
||||
return defVal;
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
|
||||
//filter clk evt
|
||||
function reference_filterClk(){
|
||||
$(document).on("click","#referencelistForm [name=second_class],#referencelistForm [name=second_category]",function(){
|
||||
$(document).on("click","#referencelistForm [name=second_class],#referencelistForm [name=second_category],#referencelistForm [name=first_agency]",function(){
|
||||
//first chk
|
||||
if( $(this).parents('.depth-2').find('input:checkbox[name="' + event.target.name + '"]:checked').length >= 1){
|
||||
$(this).parents('.depth-2').siblings('.depth-1').find('input').prop("checked", true);
|
||||
@ -12,21 +12,31 @@ function reference_filterClk(){
|
||||
//filter_mylist clk array
|
||||
var filter_mylist = "";
|
||||
var filter_mylist_clk = "";
|
||||
var filter_agency = "";
|
||||
var filter_agency_clk = "";
|
||||
filter_agency = $('#filter_agency').val();
|
||||
filter_mylist = $('#filter_mylist').val();
|
||||
|
||||
if($(this).attr('name') == 'second_class'){
|
||||
filter_mylist_clk = 'class_'+$(this).val() +',';
|
||||
}else if($(this).attr('name') == 'second_category'){
|
||||
filter_mylist_clk = 'category_'+$(this).val() +',';
|
||||
}else if($(this).attr('name') == 'first_agency'){
|
||||
filter_mylist_clk = 'agency_'+$(this).val() +',';
|
||||
//생산기관은 1depth 이므로 별도처리
|
||||
filter_agency_clk = $(this).val() +",";
|
||||
}
|
||||
|
||||
//생산기관은 1depth 이므로 별도처리
|
||||
if($(this).is(":checked")){
|
||||
filter_mylist += filter_mylist_clk;
|
||||
|
||||
filter_agency += filter_agency_clk;
|
||||
}else{
|
||||
filter_mylist = filter_mylist.replace(filter_mylist_clk,'');
|
||||
filter_agency = filter_agency.replace(filter_agency,'');
|
||||
}
|
||||
$('#filter_mylist').val(filter_mylist);
|
||||
$('#filter_agency').val(filter_agency);
|
||||
|
||||
|
||||
//depth-1
|
||||
@ -40,7 +50,7 @@ function reference_filterClk(){
|
||||
filter_category = $(on_classArr[i]).find('input').val();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var listForm = document.forms["referencelistForm"];
|
||||
listForm.pageIndex.value = 1;
|
||||
listForm.filter_class.value = filter_class;
|
||||
@ -98,14 +108,15 @@ function reference_filterReset(){
|
||||
$("#creatYyyyEnd").val("");
|
||||
$("#filter_class").val("");
|
||||
$("#filter_category").val("");
|
||||
$("#filter_agency").val("");
|
||||
$("#filter_mylist").val("");
|
||||
$("#referencelistForm [name=first_class],#referencelistForm [name=second_class],#referencelistForm [name=first_category],#referencelistForm [name=second_category],#referencelistForm [name=creatYyyyYn]").prop("checked", false);
|
||||
$("#referencelistForm [name=first_class],#referencelistForm [name=second_class],#referencelistForm [name=first_category],#referencelistForm [name=second_category],#referencelistForm [name=creatYyyyYn],#referencelistForm [name=first_agency]").prop("checked", false);
|
||||
fnFilterSch();
|
||||
});
|
||||
}
|
||||
//reference 결과 필터 del 클릭
|
||||
function reference_filterDel(){
|
||||
$(document).on("click","#referencelistForm button[id^='c_cate_data-type-chk'],#referencelistForm button[id^='j_cate_theme-chk'],#referencelistForm button[id^='s_cate_local-chk']",function(){
|
||||
$(document).on("click","#referencelistForm button[id^='c_cate_data-type-chk'],#referencelistForm button[id^='j_cate_theme-chk'],#referencelistForm button[name=first_agency_del]",function(){
|
||||
|
||||
var s_cate_id = $(this).attr("id");
|
||||
s_cate_id = s_cate_id.substring(s_cate_id.lastIndexOf("_")+1);
|
||||
@ -116,12 +127,9 @@ function reference_filterDel(){
|
||||
reference_gubun_name = "second_category";
|
||||
}else if( $(this).attr('id').indexOf("data-type-chk")!= -1){
|
||||
reference_gubun_name = "second_class";
|
||||
}else if( $(this).attr('id').indexOf("local-chk") != -1){
|
||||
reference_gubun_name = "sojang_council";
|
||||
}
|
||||
|
||||
//first
|
||||
var first_nm = $(this).attr('id').replace('c_cate_', '').replace('j_cate_', '').replace('s_cate_', '');
|
||||
var first_nm = $(this).attr('id').replace('c_cate_', '').replace('j_cate_', '');
|
||||
|
||||
first_nm = first_nm.substring(0,first_nm.indexOf("_",-2)); //data-type-chk1-4
|
||||
first_nm = first_nm.substring(0,first_nm.lastIndexOf("-")) ; //data-type-chk1
|
||||
@ -139,31 +147,32 @@ function reference_filterDel(){
|
||||
//filter_mylist clk array remove
|
||||
var filter_mylist = "";
|
||||
var filter_mylist_clk = "";
|
||||
var filter_agency = "";
|
||||
var filter_agency_clk = "";
|
||||
filter_agency = $('#filter_agency').val();
|
||||
filter_mylist = $('#filter_mylist').val();
|
||||
|
||||
if($(this).attr('id').indexOf('c_cate_data-type') >= 0 ){
|
||||
filter_mylist_clk = 'class_'+ s_cate_id +',';
|
||||
}else if($(this).attr('id').indexOf('s_cate_local')>= 0 ){
|
||||
filter_mylist_clk = 'council_'+ s_cate_id +',';
|
||||
}else if($(this).attr('id').indexOf('j_cate_theme')>= 0 ){
|
||||
filter_mylist_clk = 'category_'+ s_cate_id +',';
|
||||
}
|
||||
|
||||
}else if($(this).attr('name').indexOf('first_agency_del')>= 0 ){
|
||||
filter_mylist_clk = 'agency_'+ $(this).val() +',';
|
||||
filter_agency_clk = $(this).val() +',';
|
||||
}
|
||||
filter_agency = filter_agency.replace(filter_agency_clk,'');
|
||||
filter_mylist = filter_mylist.replace(filter_mylist_clk,'');
|
||||
$('#filter_agency').val(filter_agency);
|
||||
$('#filter_mylist').val(filter_mylist);
|
||||
|
||||
|
||||
//depth-1
|
||||
var on_classArr = document.querySelectorAll("div.depth-1.on");
|
||||
var filter_class = "" ;
|
||||
var filter_sido = "" ;
|
||||
var filter_thema = "" ;
|
||||
var filter_category = "" ;
|
||||
for(var i=0; i<on_classArr.length; i++){
|
||||
if($(on_classArr[i]).find('input').attr('name') == 'first_class') {
|
||||
filter_class = $(on_classArr[i]).find('input').val();
|
||||
}else if($(on_classArr[i]).find('input').attr('name') == 'sido_name') {
|
||||
filter_sido = $(on_classArr[i]).find('input').val();
|
||||
}else{
|
||||
filter_category = $(on_classArr[i]).find('input').val();
|
||||
}
|
||||
@ -173,7 +182,6 @@ function reference_filterDel(){
|
||||
var listForm = document.forms["referencelistForm"];
|
||||
listForm.pageIndex.value = 1;
|
||||
listForm.filter_class.value = filter_class;
|
||||
listForm.filter_sido.value = filter_sido;
|
||||
listForm.filter_category.value = filter_category;
|
||||
fnFilterSch();
|
||||
|
||||
@ -201,7 +209,7 @@ function fnLabel_reference(){
|
||||
first_cate_nm = util.xssCheck(first_cate_nm);
|
||||
second_cate_nm = util.xssCheck(second_cate_nm);
|
||||
second_cate_id = util.xssCheck(second_cate_id);
|
||||
$("#reference_fillter_append").append("<li>"+ first_cate_nm + " > "+ second_cate_nm + "<button type=\"button\" class=\"btn-del-filter\" id=\""+second_cate_id+"\">삭제</button></li>").text();
|
||||
$("#reference_fillter_append").append("<li>"+ first_cate_nm + " > "+ second_cate_nm + "<button type=\"button\" name=\"first_agency_del\" class=\"btn-del-filter\" id=\""+second_cate_id+"\">삭제</button></li>").text();
|
||||
comparisonData = second_cate_id;
|
||||
}
|
||||
|
||||
@ -238,6 +246,9 @@ function fnLabel_reference(){
|
||||
}
|
||||
else if(mylist_arr[j].indexOf("creat_date") >= 0){
|
||||
$("#reference_fillter_append").append("<li>생산년도 > " + $("#creatYyyyStart").val() + "~" + $("#creatYyyyEnd").val() +"<button type=\"button\" class=\"btn-del-filter\" id=\""+second_cate_id+"\">삭제</button></li>").text();
|
||||
}else if(mylist_arr[j].indexOf("agency") >= 0){
|
||||
var second_cate_nm = mylist_arr[j].substring(mylist_arr[j].indexOf("_")+1);
|
||||
$("#reference_fillter_append").append("<li>생산기관 > "+ second_cate_nm + "<button type=\"button\" class=\"btn-del-filter\" id=\"\" name=\"first_agency_del\" value=\""+second_cate_nm+"\">삭제</button></li>").text();
|
||||
}
|
||||
|
||||
} //for end
|
||||
@ -288,4 +299,5 @@ function fnLabel_reference_detail(){
|
||||
function fnFilterSch(){
|
||||
document.referencelistForm.action="/search/searchList.do";
|
||||
document.referencelistForm.submit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user