2024-09-11 16:46 추가 게시판 작업
This commit is contained in:
parent
eed9848b8e
commit
ddba301afd
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -289,6 +289,8 @@ public class SiteDAOImpl implements SiteDAO{
|
|||||||
//AdminSiteService, ManagerSiteService
|
//AdminSiteService, ManagerSiteService
|
||||||
public T_SITE getSiteForm(String siteIdx){
|
public T_SITE getSiteForm(String siteIdx){
|
||||||
|
|
||||||
|
System.out.println("getSiteForm=1000="+siteIdx);
|
||||||
|
|
||||||
return (T_SITE) this.sessionFactory.getCurrentSession().load(T_SITE.class, siteIdx);
|
return (T_SITE) this.sessionFactory.getCurrentSession().load(T_SITE.class, siteIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ public class SiteManager2DAOImpl implements SiteManager2DAO{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//AdminMemberService, ManagerMemberService
|
//AdminMemberService, ManagerMemberService
|
||||||
@SuppressWarnings("unchecked")
|
//@SuppressWarnings("unchecked")
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(Integer memberIdx){
|
public List<T_SITE_MANAGER> getSiteManagerList(Integer memberIdx){
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
||||||
@ -39,7 +39,7 @@ public class SiteManager2DAOImpl implements SiteManager2DAO{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//ManagerMemberService
|
//ManagerMemberService
|
||||||
@SuppressWarnings("unchecked")
|
//@SuppressWarnings("unchecked")
|
||||||
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns){
|
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns){
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_MANAGER_DATA.class);
|
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_MANAGER_DATA.class);
|
||||||
@ -73,7 +73,7 @@ public class SiteManager2DAOImpl implements SiteManager2DAO{
|
|||||||
return criteria.list();
|
return criteria.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
//@SuppressWarnings("deprecation")
|
||||||
public Long getSiteManagerListCnt(String siteIdx, Integer memberIdx){
|
public Long getSiteManagerListCnt(String siteIdx, Integer memberIdx){
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
||||||
|
|||||||
@ -1,41 +0,0 @@
|
|||||||
package seed.dao;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import seed.map.T_SITE_MANAGER;
|
|
||||||
import seed.map.VIEW_MANAGER_DATA;
|
|
||||||
|
|
||||||
public interface SiteManagerDAO {
|
|
||||||
|
|
||||||
//AdminMemberService, ManagerMemberService
|
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(Integer memberIdx);
|
|
||||||
|
|
||||||
//ManagerMemberService
|
|
||||||
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns);
|
|
||||||
|
|
||||||
public Long getSiteManagerListCnt(String siteIdx, Integer memberIdx);
|
|
||||||
|
|
||||||
//AdminGroupsService , AdminSiteService
|
|
||||||
public Long getSiteManagerListCnt(Integer memberIdx);
|
|
||||||
|
|
||||||
//AdminSiteManagerService
|
|
||||||
public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search);
|
|
||||||
|
|
||||||
//AdminSiteManagerService
|
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
|
|
||||||
|
|
||||||
//ManagerSiteManagerService
|
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns);
|
|
||||||
|
|
||||||
//AdminSiteService, AdminSiteManagerService
|
|
||||||
public T_SITE_MANAGER getSiteManagerForm(Integer siteManagerIdx);
|
|
||||||
|
|
||||||
//AdminSiteManagerService
|
|
||||||
public boolean setSiteManagerRegProc(T_SITE_MANAGER tSiteManager);
|
|
||||||
|
|
||||||
//AdminSiteService, AdminSiteManagerService
|
|
||||||
public boolean setSiteManagerModProc(T_SITE_MANAGER tSiteManager);
|
|
||||||
|
|
||||||
//AdminSiteManagerService
|
|
||||||
public boolean setSiteManagerDelProc(T_SITE_MANAGER tSiteManager);
|
|
||||||
}
|
|
||||||
@ -1,311 +0,0 @@
|
|||||||
package seed.dao;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.hibernate.Criteria;
|
|
||||||
import org.hibernate.HibernateException;
|
|
||||||
import org.hibernate.SessionFactory;
|
|
||||||
import org.hibernate.criterion.MatchMode;
|
|
||||||
import org.hibernate.criterion.Order;
|
|
||||||
import org.hibernate.criterion.ProjectionList;
|
|
||||||
import org.hibernate.criterion.Projections;
|
|
||||||
import org.hibernate.criterion.Restrictions;
|
|
||||||
import org.springframework.stereotype.Repository;
|
|
||||||
|
|
||||||
import seed.map.T_SITE_MANAGER;
|
|
||||||
import seed.map.VIEW_MANAGER_DATA;
|
|
||||||
|
|
||||||
@Repository
|
|
||||||
public class SiteManagerDAOImpl implements SiteManagerDAO{
|
|
||||||
|
|
||||||
private Logger log = Logger.getLogger(this.getClass());
|
|
||||||
|
|
||||||
private SessionFactory sessionFactory;
|
|
||||||
|
|
||||||
public void setSessionFactory(SessionFactory sessionFactory) {
|
|
||||||
this.sessionFactory = sessionFactory;
|
|
||||||
}
|
|
||||||
|
|
||||||
//AdminMemberService, ManagerMemberService
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(Integer memberIdx){
|
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
|
||||||
|
|
||||||
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
|
|
||||||
|
|
||||||
return criteria.list();
|
|
||||||
}
|
|
||||||
|
|
||||||
//ManagerMemberService
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns){
|
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_MANAGER_DATA.class);
|
|
||||||
|
|
||||||
if(qryColumns != null && qryColumns.length > 0){
|
|
||||||
ProjectionList projectionList = Projections.projectionList();
|
|
||||||
boolean groupCheck = false;
|
|
||||||
for(int q=0; q<qryColumns.length; q++){
|
|
||||||
if(!groupCheck && qryColumns[q].indexOf("groupBy") >= 0){
|
|
||||||
groupCheck = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(groupCheck){
|
|
||||||
if(qryColumns[q].indexOf("Cnt") >= 0){
|
|
||||||
String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt"));
|
|
||||||
projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}else{
|
|
||||||
projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
criteria.setProjection(projectionList);
|
|
||||||
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
|
|
||||||
}
|
|
||||||
|
|
||||||
criteria.add(Restrictions.eq("memberIdx", memberIdx));
|
|
||||||
|
|
||||||
return criteria.list();
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public Long getSiteManagerListCnt(String siteIdx, Integer memberIdx){
|
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
|
||||||
|
|
||||||
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
|
|
||||||
|
|
||||||
criteria.add(
|
|
||||||
Restrictions.and(
|
|
||||||
Restrictions.and(
|
|
||||||
Restrictions.and(
|
|
||||||
Restrictions.eq("tSite.siteIdx", siteIdx),
|
|
||||||
Restrictions.eq("siteManagerStatus", "U")),
|
|
||||||
Restrictions.eq("tMember.memberIdx", memberIdx)),
|
|
||||||
Restrictions.eq("tMember.memberStatus", "U")));
|
|
||||||
|
|
||||||
criteria.setProjection(Projections.rowCount());
|
|
||||||
|
|
||||||
return (Long)criteria.uniqueResult();
|
|
||||||
}
|
|
||||||
|
|
||||||
//AdminGroupsService , AdminSiteService
|
|
||||||
public Long getSiteManagerListCnt(Integer memberIdx){
|
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
|
||||||
|
|
||||||
criteria.add(
|
|
||||||
Restrictions.and(
|
|
||||||
Restrictions.eq("siteManagerStatus", "U"),
|
|
||||||
Restrictions.eq("tMember.memberIdx", memberIdx)));
|
|
||||||
|
|
||||||
criteria.setProjection(Projections.rowCount());
|
|
||||||
|
|
||||||
return (Long)criteria.uniqueResult();
|
|
||||||
}
|
|
||||||
|
|
||||||
//AdminSiteManagerService
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search){
|
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
|
||||||
|
|
||||||
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
|
|
||||||
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
|
|
||||||
|
|
||||||
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
|
|
||||||
|
|
||||||
if(!selGroup.equals(0)){
|
|
||||||
criteria.add(Restrictions.eq("tGroups.tGroup.groupIdx", selGroup));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!column.equals("")){
|
|
||||||
if(column.equals("A")){
|
|
||||||
if(!search.equals("")){
|
|
||||||
criteria.add(
|
|
||||||
Restrictions.or(
|
|
||||||
Restrictions.like("tMember.memberId", search, MatchMode.ANYWHERE),
|
|
||||||
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
criteria.setProjection(Projections.rowCount());
|
|
||||||
|
|
||||||
return (Long)criteria.uniqueResult();
|
|
||||||
}
|
|
||||||
|
|
||||||
//AdminSiteManagerService
|
|
||||||
@SuppressWarnings({ "unchecked", "deprecation" })
|
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
|
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
|
||||||
|
|
||||||
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
|
|
||||||
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
|
|
||||||
|
|
||||||
if(qryColumns != null && qryColumns.length > 0){
|
|
||||||
ProjectionList projectionList = Projections.projectionList();
|
|
||||||
boolean groupCheck = false;
|
|
||||||
for(int q=0; q<qryColumns.length; q++){
|
|
||||||
if(!groupCheck && qryColumns[q].indexOf("groupBy") >= 0){
|
|
||||||
groupCheck = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(groupCheck){
|
|
||||||
if(qryColumns[q].indexOf("Cnt") >= 0){
|
|
||||||
String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt"));
|
|
||||||
projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}else{
|
|
||||||
projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
criteria.setProjection(projectionList);
|
|
||||||
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
|
|
||||||
}
|
|
||||||
|
|
||||||
criteria.setFirstResult(page);
|
|
||||||
criteria.setMaxResults(row);
|
|
||||||
|
|
||||||
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
|
|
||||||
|
|
||||||
if(!selGroup.equals(0)){
|
|
||||||
criteria.add(Restrictions.eq("tGroups.tGroup.groupIdx", selGroup));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!column.equals("")){
|
|
||||||
if(column.equals("A")){
|
|
||||||
if(!search.equals("")){
|
|
||||||
criteria.add(
|
|
||||||
Restrictions.or(
|
|
||||||
Restrictions.like("tMember.memberId", search, MatchMode.ANYWHERE),
|
|
||||||
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(orderColumn.equals("")){
|
|
||||||
orderColumn = "siteManagerIdx";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(order.equals("DESC")){
|
|
||||||
criteria.addOrder(Order.desc(orderColumn));
|
|
||||||
}else{
|
|
||||||
criteria.addOrder(Order.asc(orderColumn));
|
|
||||||
}
|
|
||||||
|
|
||||||
return criteria.list();
|
|
||||||
}
|
|
||||||
|
|
||||||
//ManagerSiteManagerService
|
|
||||||
@SuppressWarnings({ "unchecked", "deprecation" })
|
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns){
|
|
||||||
|
|
||||||
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
|
|
||||||
|
|
||||||
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
|
|
||||||
criteria.createCriteria("tSite", "tSite", Criteria.LEFT_JOIN);
|
|
||||||
|
|
||||||
if(qryColumns != null && qryColumns.length > 0){
|
|
||||||
ProjectionList projectionList = Projections.projectionList();
|
|
||||||
boolean groupCheck = false;
|
|
||||||
for(int q=0; q<qryColumns.length; q++){
|
|
||||||
if(!groupCheck && qryColumns[q].indexOf("groupBy") >= 0){
|
|
||||||
groupCheck = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(groupCheck){
|
|
||||||
if(qryColumns[q].indexOf("Cnt") >= 0){
|
|
||||||
String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt"));
|
|
||||||
projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}else{
|
|
||||||
projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
criteria.setProjection(projectionList);
|
|
||||||
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!memberMergeSiteIdx.equals("")){
|
|
||||||
criteria.add(Restrictions.ne("tSite.siteIdx", memberMergeSiteIdx));
|
|
||||||
}
|
|
||||||
|
|
||||||
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
|
|
||||||
|
|
||||||
return criteria.list();
|
|
||||||
}
|
|
||||||
|
|
||||||
//AdminSiteService, AdminSiteManagerService
|
|
||||||
public T_SITE_MANAGER getSiteManagerForm(Integer siteManagerIdx){
|
|
||||||
|
|
||||||
return (T_SITE_MANAGER) this.sessionFactory.getCurrentSession().load(T_SITE_MANAGER.class, siteManagerIdx);
|
|
||||||
}
|
|
||||||
|
|
||||||
//AdminSiteService, AdminSiteManagerService, ManagerSiteService
|
|
||||||
public boolean setSiteManagerRegProc(T_SITE_MANAGER tSiteManager){
|
|
||||||
|
|
||||||
boolean success = false;
|
|
||||||
|
|
||||||
try{
|
|
||||||
this.sessionFactory.getCurrentSession().save(tSiteManager);
|
|
||||||
this.sessionFactory.getCurrentSession().flush();
|
|
||||||
this.sessionFactory.getCurrentSession().clear();
|
|
||||||
success = true;
|
|
||||||
}catch(HibernateException ex){
|
|
||||||
log.error("CHECK ERROR:",ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return success;
|
|
||||||
}
|
|
||||||
|
|
||||||
//AdminSiteService, AdminSiteManagerService
|
|
||||||
public boolean setSiteManagerModProc(T_SITE_MANAGER tSiteManager){
|
|
||||||
|
|
||||||
boolean success = false;
|
|
||||||
|
|
||||||
try{
|
|
||||||
this.sessionFactory.getCurrentSession().update(tSiteManager);
|
|
||||||
this.sessionFactory.getCurrentSession().flush();
|
|
||||||
this.sessionFactory.getCurrentSession().clear();
|
|
||||||
success = true;
|
|
||||||
}catch(HibernateException ex){
|
|
||||||
log.error("CHECK ERROR:",ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return success;
|
|
||||||
}
|
|
||||||
|
|
||||||
//AdminSiteManagerService
|
|
||||||
public boolean setSiteManagerDelProc(T_SITE_MANAGER tSiteManager){
|
|
||||||
|
|
||||||
boolean success = false;
|
|
||||||
|
|
||||||
try{
|
|
||||||
this.sessionFactory.getCurrentSession().delete(tSiteManager);
|
|
||||||
this.sessionFactory.getCurrentSession().flush();
|
|
||||||
this.sessionFactory.getCurrentSession().clear();
|
|
||||||
success = true;
|
|
||||||
}catch(HibernateException ex){
|
|
||||||
log.error("CHECK ERROR:",ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return success;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
package seed.manager.banner.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import seed.map.T_BANNER_DATA;
|
||||||
|
|
||||||
|
public interface ManagerBannerDataService {
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public T_BANNER_DATA getBannerDataForm(Integer bannerDataIdx);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public Long getBannerDataListCnt(Integer bannerSetIdx, String column, String search);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public List<T_BANNER_DATA> getBannerDataList(Integer bannerSetIdx);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public List<T_BANNER_DATA> getBannerDataList(Integer bannerSetIdx, int page, int row, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public Integer setBannerDataRegProc(T_BANNER_DATA tBannerData, MultipartFile upFile, Integer memberIdx, String rootPath);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean setBannerDataModProc(T_BANNER_DATA tBannerData, Integer memberIdx, MultipartFile upFile, String rootPath);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean setBannerDataDelProc(Integer bannerDataIdx, String rootPath);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean setBannerDataStatusProc(Integer bannerDataIdx, String status, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean setBannerDataOrderProc(Integer bannerSetIdx , Integer bannerDataOrder, String orderType, Integer memberIdx);
|
||||||
|
}
|
||||||
@ -0,0 +1,257 @@
|
|||||||
|
package seed.manager.banner.service;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
|
import seed.dao.BannerDataDAO;
|
||||||
|
import seed.map.T_BANNER_DATA;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
import seed.utils.SeedFtpType;
|
||||||
|
import seed.utils.SeedUtils;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerBannerDataServiceImpl extends AbstractServiceImpl implements ManagerBannerDataService{
|
||||||
|
|
||||||
|
private Logger log = Logger.getLogger(this.getClass());
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BannerDataDAO bannerDataDAO;
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public T_BANNER_DATA getBannerDataForm(Integer bannerDataIdx){
|
||||||
|
|
||||||
|
return bannerDataDAO.getBannerDataForm(bannerDataIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public Long getBannerDataListCnt(Integer bannerSetIdx, String column, String search){
|
||||||
|
|
||||||
|
return bannerDataDAO.getBannerDataListCnt(bannerSetIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public List<T_BANNER_DATA> getBannerDataList(Integer bannerSetIdx){
|
||||||
|
|
||||||
|
return bannerDataDAO.getBannerDataList(bannerSetIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public List<T_BANNER_DATA> getBannerDataList(Integer bannerSetIdx, int page, int row, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return bannerDataDAO.getBannerDataList(bannerSetIdx, ((page-1) * row), row, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
@Transactional
|
||||||
|
public Integer setBannerDataRegProc(T_BANNER_DATA tBannerData, MultipartFile upFile, Integer memberIdx, String rootPath){
|
||||||
|
|
||||||
|
Integer bannerDataIdx = 0;
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tBannerData.settMember(tMember);
|
||||||
|
|
||||||
|
tBannerData.setBannerDataOrder(bannerDataDAO.getBannerDataOrderFormCnt(tBannerData.gettBannerSet().getBannerSetIdx())+1);
|
||||||
|
tBannerData.setBannerDataStatus("U");
|
||||||
|
tBannerData.setBannerDataRegDate(new Date());
|
||||||
|
tBannerData.setBannerDataModDate(new Date());
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tBannerData.gettBannerSet().gettSite().getSiteIdx() + "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String reFileName = tBannerData.gettBannerSet().getBannerSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tBannerData.gettBannerSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx() + "/" + reFileName +
|
||||||
|
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
upFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerData.gettBannerSet().gettSite().getSiteIdx() + "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tBannerData.gettBannerSet().gettSite().getSiteIdx() + "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerData.setBannerDataFile(upFile.getOriginalFilename());
|
||||||
|
tBannerData.setBannerDataReFile(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
|
||||||
|
T_BANNER_DATA tBannerDataDB = bannerDataDAO.setBannerDataRegProc(tBannerData);
|
||||||
|
|
||||||
|
if(tBannerDataDB.getBannerDataIdx() > 0){
|
||||||
|
bannerDataIdx = tBannerDataDB.getBannerDataIdx();
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return bannerDataIdx;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerDataModProc(T_BANNER_DATA tBannerData, Integer memberIdx, MultipartFile upFile, String rootPath){
|
||||||
|
|
||||||
|
T_BANNER_DATA tBannerDataDB = bannerDataDAO.getBannerDataForm(tBannerData.getBannerDataIdx());
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tBannerDataDB.settMember(tMember);
|
||||||
|
tBannerDataDB.setBannerDataTitle(tBannerData.getBannerDataTitle());
|
||||||
|
tBannerDataDB.setBannerDataContent(tBannerData.getBannerDataContent());
|
||||||
|
tBannerDataDB.setBannerDataType(tBannerData.getBannerDataType());
|
||||||
|
tBannerDataDB.setBannerDataSdate(tBannerData.getBannerDataSdate());
|
||||||
|
tBannerDataDB.setBannerDataEdate(tBannerData.getBannerDataEdate());
|
||||||
|
tBannerDataDB.setBannerDataLink(tBannerData.getBannerDataLink());
|
||||||
|
tBannerDataDB.setBannerDataLinkType(tBannerData.getBannerDataLinkType());
|
||||||
|
tBannerDataDB.setBannerDataModDate(new Date());
|
||||||
|
|
||||||
|
if(upFile != null && upFile.getBytes().length > 0){
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerData.gettBannerSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx() + "/" + tBannerDataDB.getBannerDataReFile());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerData.gettBannerSet().gettSite().getSiteIdx() + "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tBannerDataDB.getBannerDataReFile());
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tBannerData.gettBannerSet().gettSite().getSiteIdx() + "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String reFileName = tBannerData.gettBannerSet().getBannerSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tBannerData.gettBannerSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx() + "/" + reFileName +
|
||||||
|
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
upFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerData.gettBannerSet().gettSite().getSiteIdx() + "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tBannerData.gettBannerSet().gettSite().getSiteIdx() + "/upload/banner/" + tBannerData.gettBannerSet().getBannerSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerDataDB.setBannerDataFile(upFile.getOriginalFilename());
|
||||||
|
tBannerDataDB.setBannerDataReFile(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
return bannerDataDAO.setBannerDataModProc(tBannerDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerDataDelProc(Integer bannerDataIdx, String rootPath){
|
||||||
|
|
||||||
|
T_BANNER_DATA tBannerDataDB = bannerDataDAO.getBannerDataForm(bannerDataIdx);
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerDataDB.gettBannerSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerDataDB.gettBannerSet().getBannerSetIdx() + "/" + tBannerDataDB.getBannerDataReFile());
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerDataDB.gettBannerSet().gettSite().getSiteIdx() + "/upload/banner/" + tBannerDataDB.gettBannerSet().getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tBannerDataDB.getBannerDataReFile());
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
if(bannerDataDAO.getBannerDataListCnt(tBannerDataDB.gettBannerSet().getBannerSetIdx()) > 1){
|
||||||
|
bannerDataDAO.setBannerDataOrderProc(tBannerDataDB.gettBannerSet().getBannerSetIdx(), tBannerDataDB.getBannerDataOrder());
|
||||||
|
}
|
||||||
|
|
||||||
|
return bannerDataDAO.setBannerDataDelProc(tBannerDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerDataStatusProc(Integer bannerDataIdx, String status, Integer memberIdx){
|
||||||
|
|
||||||
|
T_BANNER_DATA tBannerDataDB = bannerDataDAO.getBannerDataForm(bannerDataIdx);
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tBannerDataDB.settMember(tMember);
|
||||||
|
tBannerDataDB.setBannerDataModDate(new Date());
|
||||||
|
tBannerDataDB.setBannerDataStatus(status);
|
||||||
|
|
||||||
|
return bannerDataDAO.setBannerDataModProc(tBannerDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerDataOrderProc(Integer bannerSetIdx, Integer bannerDataOrder, String orderType, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
Integer bannerDataOrderTmp = bannerDataOrder;
|
||||||
|
|
||||||
|
if(orderType.equals("up")){
|
||||||
|
bannerDataOrder = bannerDataOrder - 1;
|
||||||
|
}else{
|
||||||
|
bannerDataOrder = bannerDataOrder + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
T_BANNER_DATA tBannerDataOrderDB = bannerDataDAO.getBannerDataOrderForm(bannerSetIdx, bannerDataOrder);
|
||||||
|
T_BANNER_DATA tBannerDataDB = bannerDataDAO.getBannerDataOrderForm(bannerSetIdx, bannerDataOrderTmp);
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tBannerDataOrderDB.settMember(tMember);
|
||||||
|
tBannerDataDB.settMember(tMember);
|
||||||
|
|
||||||
|
tBannerDataOrderDB.setBannerDataOrder(bannerDataOrderTmp);
|
||||||
|
tBannerDataDB.setBannerDataOrder(bannerDataOrder);
|
||||||
|
|
||||||
|
if(bannerDataDAO.setBannerDataModProc(tBannerDataDB)
|
||||||
|
&& bannerDataDAO.setBannerDataModProc(tBannerDataOrderDB)){
|
||||||
|
success = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package seed.manager.banner.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import seed.map.T_BANNER_MANAGER;
|
||||||
|
|
||||||
|
public interface ManagerBannerManagerService {
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean getBannerManagerListGrantCnt(Integer bannerSetIdx, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean getBannerManagerListCnt(Integer bannerSetIdx, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public Long getBannerManagerListCnt(Integer bannerSetIdx, Integer selGroup, String column, String search);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public Long getBannerManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public List<T_BANNER_MANAGER> getBannerManagerList(Integer bannerSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public List<T_BANNER_MANAGER> getBannerManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public boolean setBannerManagerRegProc(Integer bannerSetIdx, Integer[] idxsc);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public boolean setBannerManagerDelProc(Integer bannerManagerIdx);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public boolean setBannerManagerStatusProc(Integer bannerManagerIdx, String status);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public boolean setBannerManagerGrantProc(Integer bannerManagerIdx, String grant);
|
||||||
|
}
|
||||||
@ -0,0 +1,188 @@
|
|||||||
|
package seed.manager.banner.service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
import seed.dao.BannerManagerDAO;
|
||||||
|
import seed.dao.MemberDAO;
|
||||||
|
import seed.dao.SiteManager2DAO;
|
||||||
|
import seed.map.T_BANNER_MANAGER;
|
||||||
|
import seed.map.T_BANNER_SET;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerBannerManagerServiceImpl extends AbstractServiceImpl implements ManagerBannerManagerService{
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BannerManagerDAO bannerManagerDAO;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SiteManager2DAO siteManager2DAO;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MemberDAO memberDAO;
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean getBannerManagerListGrantCnt(Integer bannerSetIdx, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
if(bannerManagerDAO.getBannerManagerListGrantCnt(bannerSetIdx, memberIdx) > 0){
|
||||||
|
success = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean getBannerManagerListCnt(Integer bannerSetIdx, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
if(bannerManagerDAO.getBannerManagerListCnt(bannerSetIdx, memberIdx) > 0){
|
||||||
|
success = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public Long getBannerManagerListCnt(Integer bannerSetIdx, Integer selGroup, String column, String search){
|
||||||
|
|
||||||
|
return bannerManagerDAO.getBannerManagerListCnt(bannerSetIdx, selGroup, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public Long getBannerManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
|
||||||
|
|
||||||
|
return bannerManagerDAO.getBannerManagerListCnt(siteIdx, memberIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public List<T_BANNER_MANAGER> getBannerManagerList(Integer bannerSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return bannerManagerDAO.getBannerManagerList(bannerSetIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public List<T_BANNER_MANAGER> getBannerManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return bannerManagerDAO.getBannerManagerList(siteIdx, memberIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerManagerRegProc(Integer bannerSetIdx, Integer[] idxsc){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
if(idxsc.length > 0){
|
||||||
|
|
||||||
|
for(int i=0; i<idxsc.length; i++){
|
||||||
|
|
||||||
|
if(bannerManagerDAO.getBannerManagerListCnt(bannerSetIdx, idxsc[i]) > 0){
|
||||||
|
success = true;
|
||||||
|
}else{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(idxsc[i]);
|
||||||
|
|
||||||
|
T_BANNER_SET tBannerSet = new T_BANNER_SET();
|
||||||
|
tBannerSet.setBannerSetIdx(bannerSetIdx);
|
||||||
|
|
||||||
|
T_BANNER_MANAGER tBannerManager = new T_BANNER_MANAGER();
|
||||||
|
|
||||||
|
tBannerManager.settMember(tMember);
|
||||||
|
tBannerManager.settBannerSet(tBannerSet);
|
||||||
|
tBannerManager.setBannerManagerStatus("U");
|
||||||
|
tBannerManager.setBannerManagerGrant("S");
|
||||||
|
tBannerManager.setBannerManagerRegDate(new Date());
|
||||||
|
|
||||||
|
if(bannerManagerDAO.setBannerManagerRegProc(tBannerManager)){
|
||||||
|
success = true;
|
||||||
|
|
||||||
|
T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]);
|
||||||
|
|
||||||
|
if(!tMemberDB.getMemberGrant().equals("S")){
|
||||||
|
|
||||||
|
if(tMemberDB.getMemberGrant().equals("SM")){
|
||||||
|
tMemberDB.setMemberGrant("SM");
|
||||||
|
}else{
|
||||||
|
tMemberDB.setMemberGrant("M");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!memberDAO.setMemberModProc(tMemberDB)){
|
||||||
|
success = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerManagerDelProc(Integer bannerManagerIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
T_BANNER_MANAGER tBannerManagerDB = bannerManagerDAO.getBannerManagerForm(bannerManagerIdx);
|
||||||
|
|
||||||
|
if(bannerManagerDAO.setBannerManagerDelProc(tBannerManagerDB)){
|
||||||
|
|
||||||
|
success = true;
|
||||||
|
|
||||||
|
T_MEMBER tMemberDB = memberDAO.getMemberForm(tBannerManagerDB.gettMember().getMemberIdx());
|
||||||
|
|
||||||
|
if(!tMemberDB.getMemberGrant().equals("S")){
|
||||||
|
|
||||||
|
if(siteManager2DAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
|
||||||
|
tMemberDB.setMemberGrant("SM");
|
||||||
|
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
|
||||||
|
tMemberDB.setMemberGrant("M");
|
||||||
|
}else{
|
||||||
|
tMemberDB.setMemberGrant("N");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!memberDAO.setMemberModProc(tMemberDB)){
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerManagerStatusProc(Integer bannerManagerIdx, String status){
|
||||||
|
|
||||||
|
T_BANNER_MANAGER tBannerManagerDB = bannerManagerDAO.getBannerManagerForm(bannerManagerIdx);
|
||||||
|
|
||||||
|
tBannerManagerDB.setBannerManagerStatus(status);
|
||||||
|
|
||||||
|
return bannerManagerDAO.setBannerManagerModProc(tBannerManagerDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerManagerGrantProc(Integer bannerManagerIdx, String grant){
|
||||||
|
|
||||||
|
T_BANNER_MANAGER tBannerManagerDB = bannerManagerDAO.getBannerManagerForm(bannerManagerIdx);
|
||||||
|
|
||||||
|
tBannerManagerDB.setBannerManagerGrant(grant);
|
||||||
|
|
||||||
|
return bannerManagerDAO.setBannerManagerModProc(tBannerManagerDB);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
package seed.manager.banner.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
|
|
||||||
|
import seed.map.T_BANNER_SET;
|
||||||
|
|
||||||
|
public interface ManagerBannerSetService {
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public T_BANNER_SET getBannerSetForm(Integer bannerSetIdx);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public Long getBannerSetListCnt(String siteIdx, String column, String search);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public List<T_BANNER_SET> getBannerSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public Integer setBannerSetRegProc(T_BANNER_SET tBannerSet, Integer memberIdx, HttpServletRequest httpServletRequest, MultipartHttpServletRequest multipartHttpServletRequest, String rootPath);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean setBannerSetModProc(T_BANNER_SET tBannerSet, Integer memberIdx, HttpServletRequest httpServletRequest, MultipartHttpServletRequest multipartHttpServletRequest, String rootPath);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean setBannerSetDelProc(Integer bannerSetIdx, String rootPath);
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public boolean setBannerSetStatusProc(Integer bannerSetIdx, String status, Integer memberIdx);
|
||||||
|
}
|
||||||
@ -0,0 +1,449 @@
|
|||||||
|
package seed.manager.banner.service;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
|
import seed.dao.BannerDataDAO;
|
||||||
|
import seed.dao.BannerSetDAO;
|
||||||
|
import seed.map.T_BANNER_DATA;
|
||||||
|
import seed.map.T_BANNER_SET;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
import seed.utils.SeedFtpType;
|
||||||
|
import seed.utils.SeedUtils;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerBannerSetServiceImpl extends AbstractServiceImpl implements ManagerBannerSetService{
|
||||||
|
|
||||||
|
private Logger log = Logger.getLogger(this.getClass());
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BannerSetDAO bannerSetDAO;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BannerDataDAO bannerDataDAO;
|
||||||
|
|
||||||
|
//ManagerBannerController
|
||||||
|
public T_BANNER_SET getBannerSetForm(Integer bannerSetIdx){
|
||||||
|
|
||||||
|
return bannerSetDAO.getBannerSetForm(bannerSetIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getBannerSetListCnt(String siteIdx, String column, String search){
|
||||||
|
|
||||||
|
return bannerSetDAO.getBannerSetListCnt(siteIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<T_BANNER_SET> getBannerSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return bannerSetDAO.getBannerSetList(siteIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public Integer setBannerSetRegProc(T_BANNER_SET tBannerSet, Integer memberIdx, HttpServletRequest httpServletRequest, MultipartHttpServletRequest multipartHttpServletRequest, String rootPath){
|
||||||
|
|
||||||
|
Integer bannerSetIdx = 0;
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tBannerSet.settMember(tMember);
|
||||||
|
tBannerSet.setBannerSetStatus("U");
|
||||||
|
tBannerSet.setBannerSetRegDate(new Date());
|
||||||
|
tBannerSet.setBannerSetModDate(new Date());
|
||||||
|
|
||||||
|
T_BANNER_SET tBannerSetDB = bannerSetDAO.setBannerSetRegProc(tBannerSet);
|
||||||
|
|
||||||
|
if(tBannerSetDB.getBannerSetIdx() > 0){
|
||||||
|
|
||||||
|
T_BANNER_SET tBannerSetTmp = bannerSetDAO.getBannerSetForm(tBannerSetDB.getBannerSetIdx());
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
|
||||||
|
Iterator<String> iteratorfileNames = multipartHttpServletRequest.getFileNames();
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
while (iteratorfileNames.hasNext()) {
|
||||||
|
|
||||||
|
String fileFormName = (String)iteratorfileNames.next();
|
||||||
|
String fileFormRename = fileFormName.substring(fileFormName.indexOf("file_")+5);
|
||||||
|
|
||||||
|
MultipartFile multipartFile = multipartHttpServletRequest.getFile(fileFormName);
|
||||||
|
|
||||||
|
if(multipartFile != null && !multipartFile.isEmpty()){
|
||||||
|
|
||||||
|
String reFileName = tBannerSetTmp.getBannerSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tBannerSetTmp.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerSetTmp.getBannerSetIdx() + "/" + reFileName +
|
||||||
|
multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
multipartFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
if(fileFormRename.equals("bannerSetPlayImg")){
|
||||||
|
tBannerSetTmp.setBannerSetPlayImg(multipartFile.getOriginalFilename());
|
||||||
|
tBannerSetTmp.setBannerSetPlayReImg(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
}else if(fileFormRename.equals("bannerSetStopImg")){
|
||||||
|
tBannerSetTmp.setBannerSetStopImg(multipartFile.getOriginalFilename());
|
||||||
|
tBannerSetTmp.setBannerSetStopReImg(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
}else if(fileFormRename.equals("bannerSetPreImg")){
|
||||||
|
tBannerSetTmp.setBannerSetPreImg(multipartFile.getOriginalFilename());
|
||||||
|
tBannerSetTmp.setBannerSetPreReImg(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
}else if(fileFormRename.equals("bannerSetNextImg")){
|
||||||
|
tBannerSetTmp.setBannerSetNextImg(multipartFile.getOriginalFilename());
|
||||||
|
tBannerSetTmp.setBannerSetNextReImg(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String filePath = rootPath.substring(0, rootPath.lastIndexOf("/site"));
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tBannerSetTmp.getBannerSetPlayImg()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/banner/btn_play.png",
|
||||||
|
rootPath + "/" + tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx() + "/btn_play.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/banner");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_play.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerSetTmp.setBannerSetPlayImg("btn_play.png");
|
||||||
|
tBannerSetTmp.setBannerSetPlayReImg("btn_play.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tBannerSetTmp.getBannerSetStopImg()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/banner/btn_stop.png",
|
||||||
|
rootPath + "/" + tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx() + "/btn_stop.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/banner");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_stop.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerSetTmp.setBannerSetStopImg("btn_stop.png");
|
||||||
|
tBannerSetTmp.setBannerSetStopReImg("btn_stop.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tBannerSetTmp.getBannerSetPreImg()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/banner/btn_pre.png",
|
||||||
|
rootPath + "/" + tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx() + "/btn_pre.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/banner");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_pre.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerSetTmp.setBannerSetPreImg("btn_pre.png");
|
||||||
|
tBannerSetTmp.setBannerSetPreReImg("btn_pre.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tBannerSetTmp.getBannerSetNextImg()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/banner/btn_next.png",
|
||||||
|
rootPath + "/" + tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx() + "/btn_next.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetTmp.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetTmp.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/banner");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_next.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerSetTmp.setBannerSetNextImg("btn_next.png");
|
||||||
|
tBannerSetTmp.setBannerSetNextReImg("btn_next.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bannerSetDAO.setBannerSetModProc(tBannerSetTmp)){
|
||||||
|
bannerSetIdx = tBannerSetTmp.getBannerSetIdx();
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return bannerSetIdx;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerSetModProc(T_BANNER_SET tBannerSet, Integer memberIdx, HttpServletRequest httpServletRequest, MultipartHttpServletRequest multipartHttpServletRequest, String rootPath){
|
||||||
|
|
||||||
|
T_BANNER_SET tBannerSetDB = bannerSetDAO.getBannerSetForm(tBannerSet.getBannerSetIdx());
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tBannerSetDB.settMember(tMember);
|
||||||
|
tBannerSetDB.setBannerSetName(tBannerSet.getBannerSetName());
|
||||||
|
tBannerSetDB.setBannerSetWidth(tBannerSet.getBannerSetWidth());
|
||||||
|
tBannerSetDB.setBannerSetHeight(tBannerSet.getBannerSetHeight());
|
||||||
|
tBannerSetDB.setBannerDataWidth(tBannerSet.getBannerDataWidth());
|
||||||
|
tBannerSetDB.setBannerDataHeight(tBannerSet.getBannerDataHeight());
|
||||||
|
tBannerSetDB.setBannerDataPadding(tBannerSet.getBannerDataPadding());
|
||||||
|
tBannerSetDB.setBannerSetSkin(tBannerSet.getBannerSetSkin());
|
||||||
|
tBannerSetDB.setBannerSetTime(tBannerSet.getBannerSetTime());
|
||||||
|
tBannerSetDB.setBannerSetArray(tBannerSet.getBannerSetArray());
|
||||||
|
tBannerSetDB.setBannerSetPSTB(tBannerSet.getBannerSetPSTB());
|
||||||
|
tBannerSetDB.setBannerSetPSTBPosition(tBannerSet.getBannerSetPSTBPosition());
|
||||||
|
tBannerSetDB.setBannerSetPSLR(tBannerSet.getBannerSetPSLR());
|
||||||
|
tBannerSetDB.setBannerSetPSLRPosition(tBannerSet.getBannerSetPSLRPosition());
|
||||||
|
tBannerSetDB.setBannerSetPreTB(tBannerSet.getBannerSetPreTB());
|
||||||
|
tBannerSetDB.setBannerSetPreTBPosition(tBannerSet.getBannerSetPreTBPosition());
|
||||||
|
tBannerSetDB.setBannerSetPreLR(tBannerSet.getBannerSetPreLR());
|
||||||
|
tBannerSetDB.setBannerSetPreLRPosition(tBannerSet.getBannerSetPreLRPosition());
|
||||||
|
tBannerSetDB.setBannerSetNextTB(tBannerSet.getBannerSetNextTB());
|
||||||
|
tBannerSetDB.setBannerSetNextTBPosition(tBannerSet.getBannerSetNextTBPosition());
|
||||||
|
tBannerSetDB.setBannerSetNextLR(tBannerSet.getBannerSetNextLR());
|
||||||
|
tBannerSetDB.setBannerSetNextLRPosition(tBannerSet.getBannerSetNextLRPosition());
|
||||||
|
tBannerSetDB.setBannerSetType(tBannerSet.getBannerSetType());
|
||||||
|
tBannerSetDB.setBannerSetModDate(new Date());
|
||||||
|
|
||||||
|
Iterator<String> iteratorfileNames = multipartHttpServletRequest.getFileNames();
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
while (iteratorfileNames.hasNext()) {
|
||||||
|
|
||||||
|
String fileFormName = (String)iteratorfileNames.next();
|
||||||
|
String fileFormRename = fileFormName.substring(fileFormName.indexOf("file_")+5);
|
||||||
|
|
||||||
|
MultipartFile multipartFile = multipartHttpServletRequest.getFile(fileFormName);
|
||||||
|
|
||||||
|
if(multipartFile != null && !multipartFile.isEmpty()){
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetDB.getBannerSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String reFileName = tBannerSetDB.getBannerSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerSetDB.getBannerSetIdx() + "/" + reFileName +
|
||||||
|
multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
multipartFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetDB.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetDB.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetDB.getBannerSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
if(fileFormRename.equals("bannerSetPlayImg")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerSetDB.getBannerSetIdx() + "/" + tBannerSetDB.getBannerSetPlayReImg());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetDB.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetDB.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tBannerSetDB.getBannerSetPlayReImg());
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerSetDB.setBannerSetPlayImg(multipartFile.getOriginalFilename());
|
||||||
|
tBannerSetDB.setBannerSetPlayReImg(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("bannerSetStopImg")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerSetDB.getBannerSetIdx() + "/" + tBannerSetDB.getBannerSetStopReImg());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetDB.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetDB.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tBannerSetDB.getBannerSetStopReImg());
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerSetDB.setBannerSetStopImg(multipartFile.getOriginalFilename());
|
||||||
|
tBannerSetDB.setBannerSetStopReImg(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("bannerSetPreImg")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerSetDB.getBannerSetIdx() + "/" + tBannerSetDB.getBannerSetPreReImg());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetDB.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetDB.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tBannerSetDB.getBannerSetPreReImg());
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerSetDB.setBannerSetPreImg(multipartFile.getOriginalFilename());
|
||||||
|
tBannerSetDB.setBannerSetPreReImg(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("bannerSetNextImg")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerSetDB.getBannerSetIdx() + "/" + tBannerSetDB.getBannerSetNextReImg());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetDB.gettSite().getSiteIdx() + "/upload/banner/" + tBannerSetDB.getBannerSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tBannerSetDB.getBannerSetNextReImg());
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tBannerSetDB.setBannerSetNextImg(multipartFile.getOriginalFilename());
|
||||||
|
tBannerSetDB.setBannerSetNextReImg(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return bannerSetDAO.setBannerSetModProc(tBannerSetDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerSetDelProc(Integer bannerSetIdx, String rootPath){
|
||||||
|
|
||||||
|
T_BANNER_SET tBannerSetDB = bannerSetDAO.getBannerSetForm(bannerSetIdx);
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFiles(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/banner/" + tBannerSetDB.getBannerSetIdx() , "");
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/jsp/banner/banner_" + tBannerSetDB.getBannerSetIdx() +".jsp");
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/jsp/banner/css/banner_" + tBannerSetDB.getBannerSetIdx() +".css");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetDB.gettSite().getSiteIdx() + "/jsp/banner/css");
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("banner_" + tBannerSetDB.getBannerSetIdx() +".css");
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBannerSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/jsp/banner/js/banner_" + tBannerSetDB.getBannerSetIdx() +".js");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tBannerSetDB.gettSite().getSiteIdx() + "/jsp/banner/js");
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("banner_" + tBannerSetDB.getBannerSetIdx() +".js");
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
return bannerSetDAO.setBannerSetDelProc(tBannerSetDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public boolean setBannerSetStatusProc(Integer bannerSetIdx, String status, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
T_BANNER_SET tBannerSetDB = bannerSetDAO.getBannerSetForm(bannerSetIdx);
|
||||||
|
Iterator<T_BANNER_DATA> iteratorList = tBannerSetDB.gettBannerDatas().iterator();
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tBannerSetDB.settMember(tMember);
|
||||||
|
tBannerSetDB.setBannerSetModDate(new Date());
|
||||||
|
tBannerSetDB.setBannerSetStatus(status);
|
||||||
|
|
||||||
|
if(bannerSetDAO.setBannerSetModProc(tBannerSetDB)){
|
||||||
|
|
||||||
|
success = true;
|
||||||
|
|
||||||
|
while(iteratorList.hasNext()){
|
||||||
|
|
||||||
|
T_BANNER_DATA tBannerDataDB = bannerDataDAO.getBannerDataForm(iteratorList.next().getBannerDataIdx());
|
||||||
|
|
||||||
|
tBannerDataDB.settMember(tMember);
|
||||||
|
tBannerDataDB.setBannerDataModDate(new Date());
|
||||||
|
tBannerDataDB.setBannerDataStatus(status);
|
||||||
|
|
||||||
|
if(!bannerDataDAO.setBannerDataModProc(tBannerDataDB)){
|
||||||
|
success = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
}
|
||||||
2012
src/main/java/seed/manager/banner/web/ManagerBannerController.java
Normal file
2012
src/main/java/seed/manager/banner/web/ManagerBannerController.java
Normal file
File diff suppressed because it is too large
Load Diff
@ -9,10 +9,9 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
import seed.dao.BbsManagerDAO;
|
import seed.dao.BbsManagerDAO;
|
||||||
import seed.dao.MemberDAO;
|
import seed.dao.MemberDAO;
|
||||||
import seed.dao.SiteManagerDAO;
|
import seed.dao.SiteManager2DAO;
|
||||||
import seed.map.T_BBS_MANAGER;
|
import seed.map.T_BBS_MANAGER;
|
||||||
import seed.map.T_BBS_SET;
|
import seed.map.T_BBS_SET;
|
||||||
import seed.map.T_MEMBER;
|
import seed.map.T_MEMBER;
|
||||||
@ -23,8 +22,8 @@ public class ManagerBbsManagerServiceImpl extends AbstractServiceImpl implements
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BbsManagerDAO bbsManagerDAO;
|
private BbsManagerDAO bbsManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
//@Autowired
|
||||||
private SiteManagerDAO siteManagerDAO;
|
private SiteManager2DAO siteManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberDAO memberDAO;
|
private MemberDAO memberDAO;
|
||||||
|
|||||||
@ -9,10 +9,9 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
import seed.dao.FormbuilderManagerDAO;
|
import seed.dao.FormbuilderManagerDAO;
|
||||||
import seed.dao.MemberDAO;
|
import seed.dao.MemberDAO;
|
||||||
import seed.dao.SiteManagerDAO;
|
import seed.dao.SiteManager2DAO;
|
||||||
import seed.map.T_FORMBUILDER_MANAGER;
|
import seed.map.T_FORMBUILDER_MANAGER;
|
||||||
import seed.map.T_FORMBUILDER_SET;
|
import seed.map.T_FORMBUILDER_SET;
|
||||||
import seed.map.T_MEMBER;
|
import seed.map.T_MEMBER;
|
||||||
@ -23,8 +22,8 @@ public class ManagerFormbuilderManagerServiceImpl extends AbstractServiceImpl im
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FormbuilderManagerDAO formbuilderManagerDAO;
|
private FormbuilderManagerDAO formbuilderManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
//@Autowired
|
||||||
private SiteManagerDAO siteManagerDAO;
|
private SiteManager2DAO siteManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberDAO memberDAO;
|
private MemberDAO memberDAO;
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
import seed.dao.BannerDataDAO;
|
import seed.dao.BannerDataDAO;
|
||||||
import seed.dao.BannerManagerDAO;
|
import seed.dao.BannerManagerDAO;
|
||||||
import seed.dao.BannerSetDAO;
|
import seed.dao.BannerSetDAO;
|
||||||
@ -37,7 +36,7 @@ import seed.dao.QuickDataDAO;
|
|||||||
import seed.dao.QuickManagerDAO;
|
import seed.dao.QuickManagerDAO;
|
||||||
import seed.dao.QuickSetDAO;
|
import seed.dao.QuickSetDAO;
|
||||||
import seed.dao.SiteDAO;
|
import seed.dao.SiteDAO;
|
||||||
import seed.dao.SiteManagerDAO;
|
import seed.dao.SiteManager2DAO;
|
||||||
import seed.dao.SiteMenuDAO;
|
import seed.dao.SiteMenuDAO;
|
||||||
import seed.dao.SiteMenuManagerDAO;
|
import seed.dao.SiteMenuManagerDAO;
|
||||||
import seed.dao.SurveyAuthDAO;
|
import seed.dao.SurveyAuthDAO;
|
||||||
@ -130,8 +129,8 @@ public class ManagerMemberServiceImpl extends AbstractServiceImpl implements Man
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CommonMessageDAO commonMessageDAO;
|
private CommonMessageDAO commonMessageDAO;
|
||||||
|
|
||||||
@Autowired
|
//@Autowired
|
||||||
private SiteManagerDAO siteManagerDAO;
|
private SiteManager2DAO siteManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SiteMenuManagerDAO siteMenuManagerDAO;
|
private SiteMenuManagerDAO siteMenuManagerDAO;
|
||||||
|
|||||||
@ -8,9 +8,8 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
import seed.dao.MemberDAO;
|
import seed.dao.MemberDAO;
|
||||||
import seed.dao.SiteManagerDAO;
|
import seed.dao.SiteManager2DAO;
|
||||||
import seed.map.T_MEMBER;
|
import seed.map.T_MEMBER;
|
||||||
import seed.map.T_SITE;
|
import seed.map.T_SITE;
|
||||||
import seed.map.T_SITE_MANAGER;
|
import seed.map.T_SITE_MANAGER;
|
||||||
@ -20,7 +19,7 @@ import seed.map.VIEW_MANAGER_DATA;
|
|||||||
public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implements ManagerSiteManagerService{
|
public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implements ManagerSiteManagerService{
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SiteManagerDAO siteManagerDAO;
|
private SiteManager2DAO siteManager2DAO;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberDAO memberDAO;
|
private MemberDAO memberDAO;
|
||||||
@ -28,20 +27,20 @@ public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implement
|
|||||||
//ManagerLoginController
|
//ManagerLoginController
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns){
|
public List<T_SITE_MANAGER> getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns){
|
||||||
|
|
||||||
return siteManagerDAO.getSiteManagerList(memberMergeSiteIdx, memberIdx, qryColumns);
|
return siteManager2DAO.getSiteManagerList(memberMergeSiteIdx, memberIdx, qryColumns);
|
||||||
}
|
}
|
||||||
|
|
||||||
//ManagerELoginController
|
//ManagerELoginController
|
||||||
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns){
|
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns){
|
||||||
|
|
||||||
return siteManagerDAO.getSiteManagerList(memberIdx, qryColumns);
|
return siteManager2DAO.getSiteManagerList(memberIdx, qryColumns);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getSiteManagerListCnt(String siteIdx, Integer memberIdx){
|
public boolean getSiteManagerListCnt(String siteIdx, Integer memberIdx){
|
||||||
|
|
||||||
boolean success = false;
|
boolean success = false;
|
||||||
|
|
||||||
if(siteManagerDAO.getSiteManagerListCnt(siteIdx, memberIdx) > 0){
|
if(siteManager2DAO.getSiteManagerListCnt(siteIdx, memberIdx) > 0){
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,7 +51,7 @@ public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implement
|
|||||||
|
|
||||||
boolean success = false;
|
boolean success = false;
|
||||||
|
|
||||||
if(siteManagerDAO.getSiteManagerListCnt(memberIdx) > 0){
|
if(siteManager2DAO.getSiteManagerListCnt(memberIdx) > 0){
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,13 +61,13 @@ public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implement
|
|||||||
//CommonController
|
//CommonController
|
||||||
public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search){
|
public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search){
|
||||||
|
|
||||||
return siteManagerDAO.getSiteManagerListCnt(siteIdx, selGroup, column, search);
|
return siteManager2DAO.getSiteManagerListCnt(siteIdx, selGroup, column, search);
|
||||||
}
|
}
|
||||||
|
|
||||||
//CommonController
|
//CommonController
|
||||||
public List<T_SITE_MANAGER> getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
|
public List<T_SITE_MANAGER> getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
return siteManagerDAO.getSiteManagerList(siteIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
|
return siteManager2DAO.getSiteManagerList(siteIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
|
||||||
}
|
}
|
||||||
|
|
||||||
//CommonController
|
//CommonController
|
||||||
@ -81,7 +80,7 @@ public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implement
|
|||||||
|
|
||||||
for(int i=0; i<idxsc.length; i++){
|
for(int i=0; i<idxsc.length; i++){
|
||||||
|
|
||||||
if(siteManagerDAO.getSiteManagerListCnt(siteIdx, idxsc[i]) > 0){
|
if(siteManager2DAO.getSiteManagerListCnt(siteIdx, idxsc[i]) > 0){
|
||||||
success = true;
|
success = true;
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
@ -98,7 +97,7 @@ public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implement
|
|||||||
tSiteManager.setSiteManagerStatus("U");
|
tSiteManager.setSiteManagerStatus("U");
|
||||||
tSiteManager.setSiteManagerRegDate(new Date());
|
tSiteManager.setSiteManagerRegDate(new Date());
|
||||||
|
|
||||||
if(siteManagerDAO.setSiteManagerRegProc(tSiteManager)){
|
if(siteManager2DAO.setSiteManagerRegProc(tSiteManager)){
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
|
|
||||||
@ -127,9 +126,9 @@ public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implement
|
|||||||
|
|
||||||
boolean success = false;
|
boolean success = false;
|
||||||
|
|
||||||
T_SITE_MANAGER tSiteManagerDB = siteManagerDAO.getSiteManagerForm(siteManagerIdx);
|
T_SITE_MANAGER tSiteManagerDB = siteManager2DAO.getSiteManagerForm(siteManagerIdx);
|
||||||
|
|
||||||
if(siteManagerDAO.setSiteManagerDelProc(tSiteManagerDB)){
|
if(siteManager2DAO.setSiteManagerDelProc(tSiteManagerDB)){
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
|
|
||||||
@ -137,7 +136,7 @@ public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implement
|
|||||||
|
|
||||||
if(!tMemberDB.getMemberGrant().equals("S")){
|
if(!tMemberDB.getMemberGrant().equals("S")){
|
||||||
|
|
||||||
if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
|
if(siteManager2DAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
|
||||||
tMemberDB.setMemberGrant("SM");
|
tMemberDB.setMemberGrant("SM");
|
||||||
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
|
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
|
||||||
tMemberDB.setMemberGrant("M");
|
tMemberDB.setMemberGrant("M");
|
||||||
@ -158,10 +157,10 @@ public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implement
|
|||||||
@Transactional
|
@Transactional
|
||||||
public boolean setSiteManagerStatusProc(Integer siteManagerIdx, String status){
|
public boolean setSiteManagerStatusProc(Integer siteManagerIdx, String status){
|
||||||
|
|
||||||
T_SITE_MANAGER tSiteManagerDB = siteManagerDAO.getSiteManagerForm(siteManagerIdx);
|
T_SITE_MANAGER tSiteManagerDB = siteManager2DAO.getSiteManagerForm(siteManagerIdx);
|
||||||
|
|
||||||
tSiteManagerDB.setSiteManagerStatus(status);
|
tSiteManagerDB.setSiteManagerStatus(status);
|
||||||
|
|
||||||
return siteManagerDAO.setSiteManagerModProc(tSiteManagerDB);
|
return siteManager2DAO.setSiteManagerModProc(tSiteManagerDB);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,9 +9,8 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
import seed.dao.MemberDAO;
|
import seed.dao.MemberDAO;
|
||||||
import seed.dao.SiteManagerDAO;
|
import seed.dao.SiteManager2DAO;
|
||||||
import seed.dao.SiteMenuManagerDAO;
|
import seed.dao.SiteMenuManagerDAO;
|
||||||
import seed.map.T_MEMBER;
|
import seed.map.T_MEMBER;
|
||||||
import seed.map.T_SITE_MENU;
|
import seed.map.T_SITE_MENU;
|
||||||
@ -24,8 +23,8 @@ public class ManagerSiteMenuManagerServiceImpl extends AbstractServiceImpl imple
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SiteMenuManagerDAO siteMenuManagerDAO;
|
private SiteMenuManagerDAO siteMenuManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
//@Autowired
|
||||||
private SiteManagerDAO siteManagerDAO;
|
private SiteManager2DAO siteManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberDAO memberDAO;
|
private MemberDAO memberDAO;
|
||||||
|
|||||||
@ -19,7 +19,6 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
import seed.dao.MemberDAO;
|
import seed.dao.MemberDAO;
|
||||||
import seed.dao.SiteDAO;
|
import seed.dao.SiteDAO;
|
||||||
import seed.dao.SiteMenuAuthDAO;
|
import seed.dao.SiteMenuAuthDAO;
|
||||||
@ -57,6 +56,8 @@ public class ManagerSiteServiceImpl extends AbstractServiceImpl implements Manag
|
|||||||
//managerSiteController
|
//managerSiteController
|
||||||
public T_SITE getSiteForm(String siteIdx){
|
public T_SITE getSiteForm(String siteIdx){
|
||||||
|
|
||||||
|
System.out.println("getSiteForm=1="+siteIdx);
|
||||||
|
|
||||||
return siteDAO.getSiteForm(siteIdx);
|
return siteDAO.getSiteForm(siteIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,16 @@
|
|||||||
|
package seed.manager.skin.service;
|
||||||
|
|
||||||
|
public interface ManagerSiteSkinService {
|
||||||
|
|
||||||
|
//ManagerSiteSkinController
|
||||||
|
public String getSiteSkinHtml(String siteIdx, String pageType, String pageName, String rootPath);
|
||||||
|
|
||||||
|
//ManagerSiteSkinController
|
||||||
|
public String getSiteSkinCss(String siteIdx, String pageType, String pageName, String rootPath);
|
||||||
|
|
||||||
|
//ManagerSiteSkinController
|
||||||
|
public boolean setSiteSkinHtmlModProc(String siteIdx, String pageType, String pageName, String siteSkinHtml, String rootPath);
|
||||||
|
|
||||||
|
//ManagerSiteSkinController
|
||||||
|
public boolean setSiteSkinCssModProc(String siteIdx, String pageType, String pageName, String siteSkinCss, String rootPath);
|
||||||
|
}
|
||||||
@ -0,0 +1,240 @@
|
|||||||
|
package seed.manager.skin.service;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStreamWriter;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
|
import seed.utils.SeedFtpType;
|
||||||
|
import seed.utils.SeedUtils;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerSiteSkinServiceImpl extends AbstractServiceImpl implements ManagerSiteSkinService{
|
||||||
|
|
||||||
|
private Logger log = Logger.getLogger(this.getClass());
|
||||||
|
|
||||||
|
//ManagerSiteSkinController
|
||||||
|
public synchronized String getSiteSkinHtml(String siteIdx, String pageType, String pageName, String rootPath){
|
||||||
|
|
||||||
|
StringBuffer fileHtml = new StringBuffer();
|
||||||
|
String filePath = rootPath + "/" + siteIdx + "/jsp/"+pageType+"/"+pageName+".html";
|
||||||
|
filePath = SeedUtils.setFilePathReplaceAll(filePath);
|
||||||
|
|
||||||
|
FileInputStream fileInputStream = null;
|
||||||
|
InputStreamReader inputStreamReader = null;
|
||||||
|
BufferedReader bufferedReader = null;
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
File menuFile = new File(filePath);
|
||||||
|
|
||||||
|
if(menuFile.exists()){
|
||||||
|
fileInputStream = new FileInputStream(filePath);
|
||||||
|
inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
|
||||||
|
bufferedReader = new BufferedReader(inputStreamReader);
|
||||||
|
|
||||||
|
String fileBuffer = "";
|
||||||
|
|
||||||
|
while((fileBuffer = bufferedReader.readLine()) != null){
|
||||||
|
fileHtml.append(fileBuffer);
|
||||||
|
fileHtml.append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch(FileNotFoundException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}finally{
|
||||||
|
if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileHtml.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerSiteSkinController
|
||||||
|
public synchronized String getSiteSkinCss(String siteIdx, String pageType, String pageName, String rootPath){
|
||||||
|
|
||||||
|
StringBuffer fileCss = new StringBuffer();
|
||||||
|
String filePath = rootPath + "/" + siteIdx + "/jsp/"+pageType+"/css/"+pageName+".css";
|
||||||
|
filePath = SeedUtils.setFilePathReplaceAll(filePath);
|
||||||
|
|
||||||
|
FileInputStream fileInputStream = null;
|
||||||
|
InputStreamReader inputStreamReader = null;
|
||||||
|
BufferedReader bufferedReader = null;
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
File menuFile = new File(filePath);
|
||||||
|
|
||||||
|
if(menuFile.exists()){
|
||||||
|
fileInputStream = new FileInputStream(filePath);
|
||||||
|
inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
|
||||||
|
bufferedReader = new BufferedReader(inputStreamReader);
|
||||||
|
|
||||||
|
String fileBuffer = "";
|
||||||
|
|
||||||
|
while((fileBuffer = bufferedReader.readLine()) != null){
|
||||||
|
fileCss.append(fileBuffer);
|
||||||
|
fileCss.append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch(FileNotFoundException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}finally{
|
||||||
|
if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileCss.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerSiteSkinController
|
||||||
|
public boolean setSiteSkinHtmlModProc(String siteIdx, String pageType, String pageName, String siteSkinHtml, String rootPath){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
String filePath = "";
|
||||||
|
|
||||||
|
filePath = rootPath + "/" + siteIdx + "/jsp/"+pageType;
|
||||||
|
|
||||||
|
FileOutputStream htmlFileOutputStream = null;
|
||||||
|
OutputStreamWriter htmlOutputStreamWriter = null;
|
||||||
|
BufferedWriter htmlWriter = null;
|
||||||
|
|
||||||
|
FileOutputStream jspFileOutputStream = null;
|
||||||
|
OutputStreamWriter jspOutputStreamWriter = null;
|
||||||
|
BufferedWriter jspWriter = null;
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
htmlFileOutputStream = new FileOutputStream(filePath + "/"+pageName+".html");
|
||||||
|
htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8");
|
||||||
|
htmlWriter = new BufferedWriter(htmlOutputStreamWriter);
|
||||||
|
|
||||||
|
htmlWriter.write(siteSkinHtml);
|
||||||
|
htmlWriter.flush();
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(siteIdx + "/jsp/"+pageType);
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath+"/"+siteIdx + "/jsp/"+pageType);
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(pageName+".html");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
jspFileOutputStream = new FileOutputStream(filePath + "/"+pageName+".jsp");
|
||||||
|
jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8");
|
||||||
|
jspWriter = new BufferedWriter(jspOutputStreamWriter);
|
||||||
|
|
||||||
|
jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>");
|
||||||
|
jspWriter.write("\n");
|
||||||
|
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>");
|
||||||
|
jspWriter.write("\n");
|
||||||
|
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>");
|
||||||
|
jspWriter.write("\n");
|
||||||
|
jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/functions' prefix='fn'%>");
|
||||||
|
jspWriter.write("\n");
|
||||||
|
jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>");
|
||||||
|
jspWriter.write("\n");
|
||||||
|
jspWriter.write("\n");
|
||||||
|
jspWriter.write(siteSkinHtml);
|
||||||
|
jspWriter.flush();
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(siteIdx + "/jsp/"+pageType);
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath+"/"+siteIdx + "/jsp/"+pageType);
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(pageName+".jsp");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
success = true;
|
||||||
|
}catch(FileNotFoundException e){
|
||||||
|
success = false;
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}catch(IOException e){
|
||||||
|
success = false;
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}finally{
|
||||||
|
if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerSiteSkinController
|
||||||
|
public boolean setSiteSkinCssModProc(String siteIdx, String pageType, String pageName, String siteSkinCss, String rootPath){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
String filePath = "";
|
||||||
|
|
||||||
|
filePath = rootPath + "/" + siteIdx + "/jsp/"+pageType+"/css/";
|
||||||
|
|
||||||
|
FileOutputStream htmlFileOutputStream = null;
|
||||||
|
OutputStreamWriter htmlOutputStreamWriter = null;
|
||||||
|
BufferedWriter htmlWriter = null;
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
htmlFileOutputStream = new FileOutputStream(filePath + "/"+pageName+".css");
|
||||||
|
htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8");
|
||||||
|
htmlWriter = new BufferedWriter(htmlOutputStreamWriter);
|
||||||
|
|
||||||
|
htmlWriter.write(siteSkinCss);
|
||||||
|
htmlWriter.flush();
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(siteIdx + "/jsp/"+pageType+"/css");
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath+"/"+siteIdx + "/jsp/"+pageType+"/css");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(pageName+".css");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
success = true;
|
||||||
|
}catch(FileNotFoundException e){
|
||||||
|
success = false;
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}catch(IOException e){
|
||||||
|
success = false;
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}finally{
|
||||||
|
if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,516 @@
|
|||||||
|
package seed.manager.skin.web;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import seed.manager.member.service.ManagerMemberService;
|
||||||
|
import seed.manager.site.service.ManagerSiteManagerService;
|
||||||
|
import seed.manager.skin.service.ManagerSiteSkinService;
|
||||||
|
import seed.utils.InterceptorCheck;
|
||||||
|
import seed.utils.SeedUtils;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
public class ManagerSiteSkinController {
|
||||||
|
|
||||||
|
private Logger log = Logger.getLogger(this.getClass());
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ManagerSiteSkinService managerSiteSkinService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ManagerSiteManagerService managerSiteManagerService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ManagerMemberService managerMemberService;
|
||||||
|
|
||||||
|
@Value("#{config['root.path']}")
|
||||||
|
private String rootPath;
|
||||||
|
|
||||||
|
public void getSeedLicense(HttpServletResponse httpServletResponse){
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(InterceptorCheck.getLicenseKey()).equals("")){
|
||||||
|
try {
|
||||||
|
httpServletResponse.sendRedirect("/common/seed.do");
|
||||||
|
} catch (IOException ex) {
|
||||||
|
log.error("CHECK ERROR:",ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionRemove(HttpSession session){
|
||||||
|
session.removeAttribute("memberIdx");
|
||||||
|
session.removeAttribute("memberId");
|
||||||
|
session.removeAttribute("memberName");
|
||||||
|
session.removeAttribute("memberDept");
|
||||||
|
session.removeAttribute("memberPosition");
|
||||||
|
session.removeAttribute("memberTel");
|
||||||
|
session.removeAttribute("memberPhone");
|
||||||
|
session.removeAttribute("memberEmail1");
|
||||||
|
session.removeAttribute("memberEmail2");
|
||||||
|
session.removeAttribute("memberGrant");
|
||||||
|
|
||||||
|
session.removeAttribute("url");
|
||||||
|
session.removeAttribute("message");
|
||||||
|
session.removeAttribute("opener");
|
||||||
|
session.removeAttribute("append");
|
||||||
|
session.removeAttribute("self");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionMessageRemove(HttpSession session){
|
||||||
|
session.removeAttribute("url");
|
||||||
|
session.removeAttribute("message");
|
||||||
|
session.removeAttribute("opener");
|
||||||
|
session.removeAttribute("append");
|
||||||
|
session.removeAttribute("self");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteAlertSkin.do")
|
||||||
|
public ModelAndView getSiteAlertSkin(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="alertType", required=true) String alertType){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
|
||||||
|
String memberGrant = "";
|
||||||
|
memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
|
||||||
|
boolean memberAuth = memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
/*
|
||||||
|
try {
|
||||||
|
memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
}catch(Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
//메뉴로 권한 관리를 하므로 기존 권한체크는 주석처리
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
System.out.println("in=");
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("url", "/uat/uia/EgovLoginUsr.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("alertType", alertType);
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteAlertSkin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteSmartMenuSkin.do")
|
||||||
|
public ModelAndView getSmartMenuSkin(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteSmartMenuSkin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteLoginSkin.do")
|
||||||
|
public ModelAndView getSiteLoginSkin(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="loginType", required=true) String loginType){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("loginType", loginType);
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteLoginSkin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteMemberSkin.do")
|
||||||
|
public ModelAndView getSiteMemberSkin(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="memberType", required=true) String memberType){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("memberType", memberType);
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteMemberSkin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteNavigationSkin.do")
|
||||||
|
public ModelAndView getSiteNavigationSkin(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteNavigationSkin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteSatisfactionSkin.do")
|
||||||
|
public ModelAndView getSiteSatisfactionSkin(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteSatisfactionSkin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteChargeSkin.do")
|
||||||
|
public ModelAndView getSiteChargeSkin(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteChargeSkin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteFileuploadSkin.do")
|
||||||
|
public ModelAndView getSiteFileuploadSkin(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteFileuploadSkin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteSkinHtml.do")
|
||||||
|
public ModelAndView getSiteSkinHtml(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="pageType", required=true) String pageType,
|
||||||
|
@RequestParam(value="pageName", required=true) String pageName){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
//권한은 별도 체크하므로 기존 권한은 주석 처리함
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("siteSkinHtml", managerSiteSkinService.getSiteSkinHtml(siteIdx, pageType, pageName, rootPath));
|
||||||
|
|
||||||
|
map.put("pageType", pageType);
|
||||||
|
map.put("pageName", pageName);
|
||||||
|
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteSkinHtml");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteSkinCss.do")
|
||||||
|
public ModelAndView getSiteSkinCss(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="pageType", required=true) String pageType,
|
||||||
|
@RequestParam(value="pageName", required=true) String pageName){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
//권한은 별도 체크하므로 기존 권한은 주석 처리함
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.put("siteSkinCss", managerSiteSkinService.getSiteSkinCss(siteIdx, pageType, pageName, rootPath));
|
||||||
|
|
||||||
|
map.put("pageType", pageType);
|
||||||
|
map.put("pageName", pageName);
|
||||||
|
|
||||||
|
map.put("memberAuth", memberAuth);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/skin/siteSkinCss");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/proc/{siteIdx}/siteSkinHtmlModProc.do", method=RequestMethod.POST)
|
||||||
|
public ModelAndView setSiteSkinHtmlModProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="siteSkinHtml", required=true) String siteSkinHtml,
|
||||||
|
@RequestParam(value="pageType", required=true) String pageType,
|
||||||
|
@RequestParam(value="pageName", required=true) String pageName){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(managerSiteSkinService.setSiteSkinHtmlModProc(siteIdx, pageType, pageName, siteSkinHtml, rootPath)){
|
||||||
|
map.put("message", "common.message.mod");
|
||||||
|
}else{
|
||||||
|
map.put("message", "common.message.error.mod");
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("url", "/gtm/"+siteIdx+"/siteSkinHtml.do?pageType="+pageType+"&pageName="+pageName);
|
||||||
|
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/proc/{siteIdx}/siteSkinCssModProc.do", method=RequestMethod.POST)
|
||||||
|
public ModelAndView setSiteSkinCssModProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="siteSkinCss", required=true) String siteSkinCss,
|
||||||
|
@RequestParam(value="pageType", required=true) String pageType,
|
||||||
|
@RequestParam(value="pageName", required=true) String pageName){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if (!this._hasAuth(memberIdx, memberGrant, memberAuth, session, map)) {
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(managerSiteSkinService.setSiteSkinCssModProc(siteIdx, pageType, pageName, siteSkinCss, rootPath)){
|
||||||
|
map.put("message", "common.message.mod");
|
||||||
|
}else{
|
||||||
|
map.put("message", "common.message.error.mod");
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("url", "/gtm/"+siteIdx+"/siteSkinCss.do?pageType="+pageType+"&pageName="+pageName);
|
||||||
|
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// private function
|
||||||
|
//
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
private boolean _hasAuth(
|
||||||
|
int p_memberIdx
|
||||||
|
, String p_memberGrant
|
||||||
|
, boolean p_memberAuth
|
||||||
|
, HttpSession p_session
|
||||||
|
, Map<String, Object> p_map
|
||||||
|
) {
|
||||||
|
boolean b_ret = true;
|
||||||
|
|
||||||
|
//기존 권한 관리 부분을 주석 처리함 - 필요시 사용할것
|
||||||
|
/*
|
||||||
|
try {
|
||||||
|
if(p_memberIdx == 0 || (!p_memberGrant.equals("S") && !p_memberAuth)){
|
||||||
|
setSessionRemove(p_session);
|
||||||
|
p_map.put("url", "/gtm/login.do");
|
||||||
|
p_map.put("url", "/uat/uia/EgovLoginUsr.do");
|
||||||
|
p_map.put("message", "common.message.no.grant");
|
||||||
|
//return new ModelAndView("/_common/jsp/message");
|
||||||
|
b_ret = false;
|
||||||
|
}
|
||||||
|
}catch(Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
return b_ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,279 @@
|
|||||||
|
package seed.manager.statistics.web;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import com.ibm.icu.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
import seed.manager.member.service.ManagerMemberService;
|
||||||
|
import seed.manager.site.service.ManagerSiteManagerService;
|
||||||
|
import seed.manager.site.service.ManagerSiteService;
|
||||||
|
import seed.manager.statistics.service.ManagerStatisticsService;
|
||||||
|
import seed.utils.InterceptorCheck;
|
||||||
|
import seed.utils.SeedUtils;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
public class ManagerStatisticsController {
|
||||||
|
|
||||||
|
private Logger log = Logger.getLogger(this.getClass());
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ManagerSiteService managerSiteService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ManagerStatisticsService managerStatisticsService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ManagerMemberService managerMemberService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ManagerSiteManagerService managerSiteManagerService;
|
||||||
|
|
||||||
|
public void getSeedLicense(HttpServletResponse httpServletResponse){
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(InterceptorCheck.getLicenseKey()).equals("")){
|
||||||
|
try {
|
||||||
|
httpServletResponse.sendRedirect("/common/seed.do");
|
||||||
|
} catch (IOException ex) {
|
||||||
|
log.error("CHECK ERROR:",ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionRemove(HttpSession session){
|
||||||
|
session.removeAttribute("memberIdx");
|
||||||
|
session.removeAttribute("memberId");
|
||||||
|
session.removeAttribute("memberName");
|
||||||
|
session.removeAttribute("memberDept");
|
||||||
|
session.removeAttribute("memberPosition");
|
||||||
|
session.removeAttribute("memberTel");
|
||||||
|
session.removeAttribute("memberPhone");
|
||||||
|
session.removeAttribute("memberEmail1");
|
||||||
|
session.removeAttribute("memberEmail2");
|
||||||
|
session.removeAttribute("memberGrant");
|
||||||
|
|
||||||
|
session.removeAttribute("url");
|
||||||
|
session.removeAttribute("message");
|
||||||
|
session.removeAttribute("opener");
|
||||||
|
session.removeAttribute("append");
|
||||||
|
session.removeAttribute("self");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSessionMessageRemove(HttpSession session){
|
||||||
|
session.removeAttribute("url");
|
||||||
|
session.removeAttribute("message");
|
||||||
|
session.removeAttribute("opener");
|
||||||
|
session.removeAttribute("append");
|
||||||
|
session.removeAttribute("self");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteStatisticsList.do")
|
||||||
|
public ModelAndView getSiteStatisticsList(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="year", defaultValue="", required=false) Integer year,
|
||||||
|
@RequestParam(value="month", defaultValue="", required=false) Integer month){
|
||||||
|
|
||||||
|
System.out.println("siteidx="+siteIdx);
|
||||||
|
System.out.println("siteidx="+year);
|
||||||
|
System.out.println("siteidx="+month);
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
System.out.println("siteidx="+memberIdx);
|
||||||
|
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
|
||||||
|
Date getDate = new Date();
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMdd");
|
||||||
|
|
||||||
|
if(year == null || year.equals("")){
|
||||||
|
year = Integer.parseInt(sdfFormat.format(getDate).substring(0, 4));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(month == null || month.equals("")){
|
||||||
|
month = Integer.parseInt(sdfFormat.format(getDate).substring(4, 6));
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("siteidx=1="+siteIdx);
|
||||||
|
|
||||||
|
try {
|
||||||
|
map.put("siteName", managerSiteService.getSiteForm(siteIdx).getSiteName());
|
||||||
|
}catch(Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("siteidx=123="+memberIdx);
|
||||||
|
map.put("siteStatisticsList", managerStatisticsService.getManagerStatisticsSiteList(siteIdx, year, month));
|
||||||
|
|
||||||
|
System.out.println("siteidx=12="+memberIdx);
|
||||||
|
|
||||||
|
map.put("yearStr", year);
|
||||||
|
map.put("monthStr", month);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/statistics/siteStatisticsList");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/proc/{siteIdx}/siteStatisticsExcelList.do")
|
||||||
|
public ModelAndView getSiteStatisticsExcelList(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx,
|
||||||
|
@RequestParam(value="year", defaultValue="", required=false) Integer year,
|
||||||
|
@RequestParam(value="month", defaultValue="", required=false) Integer month){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
|
||||||
|
Date getDate = new Date();
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMdd");
|
||||||
|
|
||||||
|
if(year == null || year.equals("")){
|
||||||
|
year = Integer.parseInt(sdfFormat.format(getDate).substring(0, 4));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(month == null || month.equals("")){
|
||||||
|
month = Integer.parseInt(sdfFormat.format(getDate).substring(4, 6));
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<HashMap<Object, Object>> siteStatisticsExcelArrayList = new ArrayList<HashMap<Object,Object>>();
|
||||||
|
|
||||||
|
List<HashMap<Object, Object>> siteStatisticsExcelList = managerStatisticsService.getManagerStatisticsSiteList(siteIdx, year, month);
|
||||||
|
|
||||||
|
Integer[] days = new Integer[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
||||||
|
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
|
||||||
|
days[1] = 29; //윤년 체크
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int d=1; d<=days[month-1]; d++){
|
||||||
|
|
||||||
|
int cnt = 0;
|
||||||
|
|
||||||
|
HashMap<Object, Object> statisticsAllMap = new HashMap<Object, Object>();
|
||||||
|
|
||||||
|
for(int i=0; i<siteStatisticsExcelList.size(); i++){
|
||||||
|
|
||||||
|
HashMap<Object, Object> statisticsMap = siteStatisticsExcelList.get(i);
|
||||||
|
|
||||||
|
if(year == Integer.parseInt(statisticsMap.get("_accessYear").toString()) &&
|
||||||
|
month == Integer.parseInt(statisticsMap.get("_accessMonth").toString()) &&
|
||||||
|
d == Integer.parseInt(statisticsMap.get("_accessDay").toString())){
|
||||||
|
|
||||||
|
cnt += Integer.parseInt(siteStatisticsExcelList.get(i).get("_accessCount").toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(month < 10){
|
||||||
|
if(d < 10){
|
||||||
|
statisticsAllMap.put("_date", year+"년 0"+month+"월 0"+d+"일");
|
||||||
|
}else{
|
||||||
|
statisticsAllMap.put("_date", year+"년 0"+month+"월 "+d+"일");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(d < 10){
|
||||||
|
statisticsAllMap.put("_date", year+"년 "+month+"월 0"+d+"일");
|
||||||
|
}else{
|
||||||
|
statisticsAllMap.put("_date", year+"년 "+month+"월 "+d+"일");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
statisticsAllMap.put("_cnt", cnt);
|
||||||
|
|
||||||
|
siteStatisticsExcelArrayList.add(statisticsAllMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("siteName", managerSiteService.getSiteForm(siteIdx).getSiteName());
|
||||||
|
map.put("siteStatisticsExcelArrayList", siteStatisticsExcelArrayList);
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/statistics/siteStatisticsExcelList");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/{siteIdx}/siteMenuStatisticsList.do")
|
||||||
|
public ModelAndView getSiteMenuStatisticsList(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
map.put("siteName", managerSiteService.getSiteForm(siteIdx).getSiteName());
|
||||||
|
}catch(Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("siteMenuStatisticsList", managerStatisticsService.getManagerStatisticsMenuList(siteIdx));
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/statistics/siteMenuStatisticsList");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/gtm/proc/{siteIdx}/siteMenuStatisticsExcelList.do")
|
||||||
|
public ModelAndView getSiteMenuStatisticsExcelList(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
|
||||||
|
@PathVariable(value="siteIdx") String siteIdx){
|
||||||
|
|
||||||
|
getSeedLicense(httpServletResponse);
|
||||||
|
|
||||||
|
setSessionMessageRemove(session);
|
||||||
|
|
||||||
|
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
|
||||||
|
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
|
||||||
|
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
|
||||||
|
|
||||||
|
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
|
||||||
|
setSessionRemove(session);
|
||||||
|
map.put("url", "/gtm/login.do");
|
||||||
|
map.put("message", "common.message.no.grant");
|
||||||
|
return new ModelAndView("/_common/jsp/message");
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("siteName", managerSiteService.getSiteForm(siteIdx).getSiteName());
|
||||||
|
map.put("siteMenuStatisticsExcelList", managerStatisticsService.getManagerStatisticsMenuList(siteIdx));
|
||||||
|
|
||||||
|
return new ModelAndView("/manager/statistics/siteMenuStatisticsExcelList");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -9,9 +9,8 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
import seed.dao.MemberDAO;
|
import seed.dao.MemberDAO;
|
||||||
import seed.dao.SiteManagerDAO;
|
import seed.dao.SiteManager2DAO;
|
||||||
import seed.dao.SurveyManagerDAO;
|
import seed.dao.SurveyManagerDAO;
|
||||||
import seed.map.T_MEMBER;
|
import seed.map.T_MEMBER;
|
||||||
import seed.map.T_SURVEY_MANAGER;
|
import seed.map.T_SURVEY_MANAGER;
|
||||||
@ -23,8 +22,8 @@ public class ManagerSurveyManagerServiceImpl extends AbstractServiceImpl impleme
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SurveyManagerDAO surveyManagerDAO;
|
private SurveyManagerDAO surveyManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
//@Autowired
|
||||||
private SiteManagerDAO siteManagerDAO;
|
private SiteManager2DAO siteManagerDAO;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberDAO memberDAO;
|
private MemberDAO memberDAO;
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import seed.map.T_VISUAL_DATA;
|
||||||
|
|
||||||
|
public interface ManagerVisualDataService {
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_DATA getVisualDataForm(Integer visualDataIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualDataListCnt(Integer visualSetIdx, String column, String search);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_DATA> getVisualDataList(Integer visualSetIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_DATA> getVisualDataList(Integer visualSetIdx, int page, int row, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Integer setVisualDataRegProc(T_VISUAL_DATA tVisualData, String siteMenuIdxs, MultipartFile upFile, Integer memberIdx, String rootPath);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualDataModProc(T_VISUAL_DATA tVisualData, String siteMenuIdxs, Integer memberIdx, MultipartFile upFile, String rootPath);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualDataDelProc(Integer visualDataIdx, String rootPath);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualDataStatusProc(Integer visualDataIdx, String status, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualDataOrderProc(Integer visualSetIdx , Integer visualDataOrder, String orderType, Integer memberIdx);
|
||||||
|
}
|
||||||
@ -0,0 +1,259 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
|
import seed.dao.VisualDataDAO;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
import seed.map.T_VISUAL_DATA;
|
||||||
|
import seed.utils.SeedFtpType;
|
||||||
|
import seed.utils.SeedUtils;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerVisualDataServiceImpl extends AbstractServiceImpl implements ManagerVisualDataService{
|
||||||
|
|
||||||
|
private Logger log = Logger.getLogger(this.getClass());
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VisualDataDAO visualDataDAO;
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_DATA getVisualDataForm(Integer visualDataIdx){
|
||||||
|
|
||||||
|
return visualDataDAO.getVisualDataForm(visualDataIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualDataListCnt(Integer visualSetIdx, String column, String search){
|
||||||
|
|
||||||
|
return visualDataDAO.getVisualDataListCnt(visualSetIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_DATA> getVisualDataList(Integer visualSetIdx){
|
||||||
|
|
||||||
|
return visualDataDAO.getVisualDataList(visualSetIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_DATA> getVisualDataList(Integer visualSetIdx, int page, int row, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualDataDAO.getVisualDataList(visualSetIdx, ((page-1) * row), row, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public Integer setVisualDataRegProc(T_VISUAL_DATA tVisualData, String siteMenuIdxs, MultipartFile upFile, Integer memberIdx, String rootPath){
|
||||||
|
|
||||||
|
Integer visualDataIdx = 0;
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualData.settMember(tMember);
|
||||||
|
|
||||||
|
tVisualData.setVisualDataOrder(visualDataDAO.getVisualDataOrderFormCnt(tVisualData.gettVisualSet().getVisualSetIdx())+1);
|
||||||
|
tVisualData.setVisualDataStatus("U");
|
||||||
|
tVisualData.setVisualDataRegDate(new Date());
|
||||||
|
tVisualData.setVisualDataModDate(new Date());
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tVisualData.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String reFileName = tVisualData.gettVisualSet().getVisualSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tVisualData.gettVisualSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx() + "/" + reFileName +
|
||||||
|
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
upFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualData.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tVisualData.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualData.setVisualDataFile(upFile.getOriginalFilename());
|
||||||
|
tVisualData.setVisualDataReFile(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
|
||||||
|
T_VISUAL_DATA tVisualDataDB = visualDataDAO.setVisualDataRegProc(tVisualData);
|
||||||
|
|
||||||
|
if(tVisualDataDB.getVisualDataIdx() > 0){
|
||||||
|
visualDataIdx = tVisualDataDB.getVisualDataIdx();
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualDataIdx;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualDataModProc(T_VISUAL_DATA tVisualData, String siteMenuIdxs, Integer memberIdx, MultipartFile upFile, String rootPath){
|
||||||
|
|
||||||
|
T_VISUAL_DATA tVisualDataDB = visualDataDAO.getVisualDataForm(tVisualData.getVisualDataIdx());
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualDataDB.settMember(tMember);
|
||||||
|
tVisualDataDB.setVisualDataTitle(tVisualData.getVisualDataTitle());
|
||||||
|
tVisualDataDB.setVisualDataContent(tVisualData.getVisualDataContent());
|
||||||
|
tVisualDataDB.setVisualDataType(tVisualData.getVisualDataType());
|
||||||
|
tVisualDataDB.setVisualDataSdate(tVisualData.getVisualDataSdate());
|
||||||
|
tVisualDataDB.setVisualDataEdate(tVisualData.getVisualDataEdate());
|
||||||
|
tVisualDataDB.setVisualDataLink(tVisualData.getVisualDataLink());
|
||||||
|
tVisualDataDB.setVisualDataLinkType(tVisualData.getVisualDataLinkType());
|
||||||
|
tVisualDataDB.setVisualRelationSetIdx(tVisualData.getVisualRelationSetIdx());
|
||||||
|
tVisualDataDB.setVisualDataModDate(new Date());
|
||||||
|
|
||||||
|
if(upFile != null && upFile.getBytes().length > 0){
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualData.gettVisualSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx() + "/" + tVisualDataDB.getVisualDataReFile());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualData.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualDataDB.getVisualDataReFile());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tVisualData.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String reFileName = tVisualData.gettVisualSet().getVisualSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tVisualData.gettVisualSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx() + "/" + reFileName +
|
||||||
|
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
upFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualData.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tVisualData.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualData.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualDataDB.setVisualDataFile(upFile.getOriginalFilename());
|
||||||
|
tVisualDataDB.setVisualDataReFile(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualDataDAO.setVisualDataModProc(tVisualDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualDataDelProc(Integer visualDataIdx, String rootPath){
|
||||||
|
|
||||||
|
T_VISUAL_DATA tVisualDataDB = visualDataDAO.getVisualDataForm(visualDataIdx);
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualDataDB.gettVisualSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualDataDB.gettVisualSet().getVisualSetIdx() + "/" + tVisualDataDB.getVisualDataReFile());
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualDataDB.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualDataDB.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualDataDB.getVisualDataReFile());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
if(visualDataDAO.getVisualDataListCnt(tVisualDataDB.gettVisualSet().getVisualSetIdx()) > 1){
|
||||||
|
visualDataDAO.setVisualDataOrderProc(tVisualDataDB.gettVisualSet().getVisualSetIdx(), tVisualDataDB.getVisualDataOrder());
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualDataDAO.setVisualDataDelProc(tVisualDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualDataStatusProc(Integer visualDataIdx, String status, Integer memberIdx){
|
||||||
|
|
||||||
|
T_VISUAL_DATA tVisualDataDB = visualDataDAO.getVisualDataForm(visualDataIdx);
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualDataDB.settMember(tMember);
|
||||||
|
tVisualDataDB.setVisualDataModDate(new Date());
|
||||||
|
tVisualDataDB.setVisualDataStatus(status);
|
||||||
|
|
||||||
|
return visualDataDAO.setVisualDataModProc(tVisualDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualDataOrderProc(Integer visualSetIdx, Integer visualDataOrder, String orderType, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
Integer visualDataOrderTmp = visualDataOrder;
|
||||||
|
|
||||||
|
if(orderType.equals("up")){
|
||||||
|
visualDataOrder = visualDataOrder - 1;
|
||||||
|
}else{
|
||||||
|
visualDataOrder = visualDataOrder + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
T_VISUAL_DATA tVisualDataOrderDB = visualDataDAO.getVisualDataOrderForm(visualSetIdx, visualDataOrder);
|
||||||
|
T_VISUAL_DATA tVisualDataDB = visualDataDAO.getVisualDataOrderForm(visualSetIdx, visualDataOrderTmp);
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualDataOrderDB.settMember(tMember);
|
||||||
|
tVisualDataDB.settMember(tMember);
|
||||||
|
|
||||||
|
tVisualDataOrderDB.setVisualDataOrder(visualDataOrderTmp);
|
||||||
|
tVisualDataDB.setVisualDataOrder(visualDataOrder);
|
||||||
|
|
||||||
|
if(visualDataDAO.setVisualDataModProc(tVisualDataDB)
|
||||||
|
&& visualDataDAO.setVisualDataModProc(tVisualDataOrderDB)){
|
||||||
|
success = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import seed.map.T_VISUAL_MANAGER;
|
||||||
|
|
||||||
|
public interface ManagerVisualManagerService {
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean getVisualManagerListGrantCnt(Integer visualSetIdx, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean getVisualManagerListCnt(Integer visualSetIdx, Integer memberIdx);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public Long getVisualManagerListCnt(Integer visualSetIdx, Integer selGroup, String column, String search);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public Long getVisualManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public List<T_VISUAL_MANAGER> getVisualManagerList(Integer visualSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public List<T_VISUAL_MANAGER> getVisualManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public boolean setVisualManagerRegProc(Integer visualSetIdx, Integer[] idxsc);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public boolean setVisualManagerDelProc(Integer visualManagerIdx);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public boolean setVisualManagerStatusProc(Integer visualManagerIdx, String status);
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public boolean setVisualManagerGrantProc(Integer visualManagerIdx, String grant);
|
||||||
|
}
|
||||||
@ -0,0 +1,188 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
import seed.dao.MemberDAO;
|
||||||
|
import seed.dao.SiteManager2DAO;
|
||||||
|
import seed.dao.VisualManagerDAO;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
import seed.map.T_VISUAL_MANAGER;
|
||||||
|
import seed.map.T_VISUAL_SET;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerVisualManagerServiceImpl extends AbstractServiceImpl implements ManagerVisualManagerService{
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VisualManagerDAO visualManagerDAO;
|
||||||
|
|
||||||
|
//@Autowired
|
||||||
|
private SiteManager2DAO siteManagerDAO;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MemberDAO memberDAO;
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean getVisualManagerListGrantCnt(Integer visualSetIdx, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
if(visualManagerDAO.getVisualManagerListGrantCnt(visualSetIdx, memberIdx) > 0){
|
||||||
|
success = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean getVisualManagerListCnt(Integer visualSetIdx, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
if(visualManagerDAO.getVisualManagerListCnt(visualSetIdx, memberIdx) > 0){
|
||||||
|
success = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public Long getVisualManagerListCnt(Integer visualSetIdx, Integer selGroup, String column, String search){
|
||||||
|
|
||||||
|
return visualManagerDAO.getVisualManagerListCnt(visualSetIdx, selGroup, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public Long getVisualManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
|
||||||
|
|
||||||
|
return visualManagerDAO.getVisualManagerListCnt(siteIdx, memberIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public List<T_VISUAL_MANAGER> getVisualManagerList(Integer visualSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualManagerDAO.getVisualManagerList(visualSetIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public List<T_VISUAL_MANAGER> getVisualManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualManagerDAO.getVisualManagerList(siteIdx, memberIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualManagerRegProc(Integer visualSetIdx, Integer[] idxsc){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
if(idxsc.length > 0){
|
||||||
|
|
||||||
|
for(int i=0; i<idxsc.length; i++){
|
||||||
|
|
||||||
|
if(visualManagerDAO.getVisualManagerListCnt(visualSetIdx, idxsc[i]) > 0){
|
||||||
|
success = true;
|
||||||
|
}else{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(idxsc[i]);
|
||||||
|
|
||||||
|
T_VISUAL_SET tVisualSet = new T_VISUAL_SET();
|
||||||
|
tVisualSet.setVisualSetIdx(visualSetIdx);
|
||||||
|
|
||||||
|
T_VISUAL_MANAGER tVisualManager = new T_VISUAL_MANAGER();
|
||||||
|
|
||||||
|
tVisualManager.settMember(tMember);
|
||||||
|
tVisualManager.settVisualSet(tVisualSet);
|
||||||
|
tVisualManager.setVisualManagerStatus("U");
|
||||||
|
tVisualManager.setVisualManagerGrant("S");
|
||||||
|
tVisualManager.setVisualManagerRegDate(new Date());
|
||||||
|
|
||||||
|
if(visualManagerDAO.setVisualManagerRegProc(tVisualManager)){
|
||||||
|
success = true;
|
||||||
|
|
||||||
|
T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]);
|
||||||
|
|
||||||
|
if(!tMemberDB.getMemberGrant().equals("S")){
|
||||||
|
|
||||||
|
if(tMemberDB.getMemberGrant().equals("SM")){
|
||||||
|
tMemberDB.setMemberGrant("SM");
|
||||||
|
}else{
|
||||||
|
tMemberDB.setMemberGrant("M");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!memberDAO.setMemberModProc(tMemberDB)){
|
||||||
|
success = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualManagerDelProc(Integer visualManagerIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
T_VISUAL_MANAGER tVisualManagerDB = visualManagerDAO.getVisualManagerForm(visualManagerIdx);
|
||||||
|
|
||||||
|
if(visualManagerDAO.setVisualManagerDelProc(tVisualManagerDB)){
|
||||||
|
|
||||||
|
success = true;
|
||||||
|
|
||||||
|
T_MEMBER tMemberDB = memberDAO.getMemberForm(tVisualManagerDB.gettMember().getMemberIdx());
|
||||||
|
|
||||||
|
if(!tMemberDB.getMemberGrant().equals("S")){
|
||||||
|
|
||||||
|
if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
|
||||||
|
tMemberDB.setMemberGrant("SM");
|
||||||
|
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
|
||||||
|
tMemberDB.setMemberGrant("M");
|
||||||
|
}else{
|
||||||
|
tMemberDB.setMemberGrant("N");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!memberDAO.setMemberModProc(tMemberDB)){
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualManagerStatusProc(Integer visualManagerIdx, String status){
|
||||||
|
|
||||||
|
T_VISUAL_MANAGER tVisualManagerDB = visualManagerDAO.getVisualManagerForm(visualManagerIdx);
|
||||||
|
|
||||||
|
tVisualManagerDB.setVisualManagerStatus(status);
|
||||||
|
|
||||||
|
return visualManagerDAO.setVisualManagerModProc(tVisualManagerDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualManagerGrantProc(Integer visualManagerIdx, String grant){
|
||||||
|
|
||||||
|
T_VISUAL_MANAGER tVisualManagerDB = visualManagerDAO.getVisualManagerForm(visualManagerIdx);
|
||||||
|
|
||||||
|
tVisualManagerDB.setVisualManagerGrant(grant);
|
||||||
|
|
||||||
|
return visualManagerDAO.setVisualManagerModProc(tVisualManagerDB);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import seed.map.T_VISUAL_RELATION_DATA;
|
||||||
|
|
||||||
|
public interface ManagerVisualRelationDataService {
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public List<Map<Object, Object>> getVisualRelationDataMapList(Integer visualRelationSetIdx, Integer row, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_RELATION_DATA getVisualRelationDataForm(Integer visualRelationDataIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualRelationDataListCnt(Integer visualRelationDataIdx, String column, String search);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_DATA> getVisualRelationDataList(Integer visualRelationDataIdx, int page, int row, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Integer setVisualRelationDataRegProc(T_VISUAL_RELATION_DATA tVisualRelationData, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationDataModProc(T_VISUAL_RELATION_DATA tVisualRelationData, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationDataDelProc(Integer visualRelationDataIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationDataStatusProc(Integer visualRelationDataIdx, String status, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationDataOrderProc(Integer visualRelationSetIdx , Integer visualRelationDataOrder, String orderType, Integer memberIdx);
|
||||||
|
}
|
||||||
@ -0,0 +1,146 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
|
import seed.dao.VisualRelationDataDAO;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
import seed.map.T_VISUAL_RELATION_DATA;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerVisualRelationDataServiceImpl extends AbstractServiceImpl implements ManagerVisualRelationDataService{
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VisualRelationDataDAO visualRelationDataDAO;
|
||||||
|
|
||||||
|
//CommonController
|
||||||
|
public List<Map<Object, Object>> getVisualRelationDataMapList(Integer visualRelationSetIdx, Integer row, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualRelationDataDAO.getVisualRelationDataMapList(visualRelationSetIdx, row, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_RELATION_DATA getVisualRelationDataForm(Integer visualRelationDataIdx){
|
||||||
|
|
||||||
|
return visualRelationDataDAO.getVisualRelationDataForm(visualRelationDataIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualRelationDataListCnt(Integer visualRelationDataIdx, String column, String search){
|
||||||
|
|
||||||
|
return visualRelationDataDAO.getVisualRelationDataListCnt(visualRelationDataIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_DATA> getVisualRelationDataList(Integer visualRelationDataIdx, int page, int row, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualRelationDataDAO.getVisualRelationDataList(visualRelationDataIdx, ((page-1) * row), row, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Integer setVisualRelationDataRegProc(T_VISUAL_RELATION_DATA tVisualRelationData, Integer memberIdx){
|
||||||
|
|
||||||
|
Integer visualRelationDataIdx = 0;
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationData.settMember(tMember);
|
||||||
|
|
||||||
|
tVisualRelationData.setVisualRelationDataOrder(visualRelationDataDAO.getVisualRelationDataOrderFormCnt(tVisualRelationData.gettVisualRelationSet().getVisualRelationSetIdx())+1);
|
||||||
|
tVisualRelationData.setVisualRelationDataStatus("U");
|
||||||
|
tVisualRelationData.setVisualRelationDataRegDate(new Date());
|
||||||
|
tVisualRelationData.setVisualRelationDataModDate(new Date());
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_DATA tVisualRelationDataDB = visualRelationDataDAO.setVisualRelationDataRegProc(tVisualRelationData);
|
||||||
|
|
||||||
|
if(tVisualRelationDataDB.getVisualRelationDataIdx() > 0){
|
||||||
|
visualRelationDataIdx = tVisualRelationDataDB.getVisualRelationDataIdx();
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualRelationDataIdx;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationDataModProc(T_VISUAL_RELATION_DATA tVisualRelationData, Integer memberIdx){
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_DATA tVisualRelationDataDB = visualRelationDataDAO.getVisualRelationDataForm(tVisualRelationData.getVisualRelationDataIdx());
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationDataDB.settMember(tMember);
|
||||||
|
tVisualRelationDataDB.setVisualRelationDataName(tVisualRelationData.getVisualRelationDataName());
|
||||||
|
tVisualRelationDataDB.setVisualRelationDataLink(tVisualRelationData.getVisualRelationDataLink());
|
||||||
|
tVisualRelationDataDB.setVisualRelationDataLinkType(tVisualRelationData.getVisualRelationDataLinkType());
|
||||||
|
tVisualRelationDataDB.setVisualRelationIconIdx(tVisualRelationData.getVisualRelationIconIdx());
|
||||||
|
tVisualRelationDataDB.setVisualRelationDataModDate(new Date());
|
||||||
|
|
||||||
|
return visualRelationDataDAO.setVisualRelationDataModProc(tVisualRelationDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationDataDelProc(Integer visualRelationDataIdx){
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_DATA tVisualRelationDataDB = visualRelationDataDAO.getVisualRelationDataForm(visualRelationDataIdx);
|
||||||
|
|
||||||
|
return visualRelationDataDAO.setVisualRelationDataDelProc(tVisualRelationDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualRelationDataStatusProc(Integer visualRelationDataIdx, String status, Integer memberIdx){
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_DATA tVisualRelationDataDB = visualRelationDataDAO.getVisualRelationDataForm(visualRelationDataIdx);
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationDataDB.settMember(tMember);
|
||||||
|
tVisualRelationDataDB.setVisualRelationDataModDate(new Date());
|
||||||
|
tVisualRelationDataDB.setVisualRelationDataStatus(status);
|
||||||
|
|
||||||
|
return visualRelationDataDAO.setVisualRelationDataModProc(tVisualRelationDataDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualRelationDataOrderProc(Integer visualRelationSetIdx, Integer visualRelationDataOrder, String orderType, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
Integer visualRelationDataOrderTmp = visualRelationDataOrder;
|
||||||
|
|
||||||
|
if(orderType.equals("up")){
|
||||||
|
visualRelationDataOrder = visualRelationDataOrder - 1;
|
||||||
|
}else{
|
||||||
|
visualRelationDataOrder = visualRelationDataOrder + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_DATA tVisualRelationDataOrderDB = visualRelationDataDAO.getVisualRelationDataOrderForm(visualRelationSetIdx, visualRelationDataOrder);
|
||||||
|
T_VISUAL_RELATION_DATA tVisualRelationDataDB = visualRelationDataDAO.getVisualRelationDataOrderForm(visualRelationSetIdx, visualRelationDataOrderTmp);
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationDataOrderDB.settMember(tMember);
|
||||||
|
tVisualRelationDataDB.settMember(tMember);
|
||||||
|
|
||||||
|
tVisualRelationDataOrderDB.setVisualRelationDataOrder(visualRelationDataOrderTmp);
|
||||||
|
tVisualRelationDataDB.setVisualRelationDataOrder(visualRelationDataOrder);
|
||||||
|
|
||||||
|
if(visualRelationDataDAO.setVisualRelationDataModProc(tVisualRelationDataDB)
|
||||||
|
&& visualRelationDataDAO.setVisualRelationDataModProc(tVisualRelationDataOrderDB)){
|
||||||
|
success = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import seed.map.T_VISUAL_RELATION_ICON;
|
||||||
|
|
||||||
|
public interface ManagerVisualRelationIconService {
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_RELATION_ICON getVisualRelationIconForm(Integer visualRelationIconIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualRelationIconListCnt(Integer visualSetIdx, String column, String search);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_ICON> getVisualRelationIconList(Integer visualSetIdx, int page, int row, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_ICON> getVisualRelationIconList(Integer visualSetIdx, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Integer setVisualRelationIconRegProc(T_VISUAL_RELATION_ICON tVisualRelationIcon, MultipartFile upFile, Integer memberIdx, String rootPath);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationIconModProc(T_VISUAL_RELATION_ICON tVisualRelationIcon, MultipartFile upFile, Integer memberIdx, String rootPath);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationIconDelProc(Integer visualRelationIconIdx, String rootPath);
|
||||||
|
}
|
||||||
@ -0,0 +1,192 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
import seed.dao.VisualRelationIconDAO;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
import seed.map.T_VISUAL_RELATION_ICON;
|
||||||
|
import seed.utils.SeedFtpType;
|
||||||
|
import seed.utils.SeedUtils;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerVisualRelationIconServiceImpl extends AbstractServiceImpl implements ManagerVisualRelationIconService{
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VisualRelationIconDAO visualRelationIconDAO;
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_RELATION_ICON getVisualRelationIconForm(Integer visualRelationIconIdx){
|
||||||
|
|
||||||
|
return visualRelationIconDAO.getVisualRelationIconForm(visualRelationIconIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualRelationIconListCnt(Integer visualSetIdx, String column, String search){
|
||||||
|
|
||||||
|
return visualRelationIconDAO.getVisualRelationIconListCnt(visualSetIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_ICON> getVisualRelationIconList(Integer visualSetIdx, int page, int row, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualRelationIconDAO.getVisualRelationIconList(visualSetIdx, ((page-1) * row), row, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_ICON> getVisualRelationIconList(Integer visualSetIdx, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualRelationIconDAO.getVisualRelationIconList(visualSetIdx, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public Integer setVisualRelationIconRegProc(T_VISUAL_RELATION_ICON tVisualRelationIcon, MultipartFile upFile, Integer memberIdx, String rootPath){
|
||||||
|
|
||||||
|
Integer visualRelationIconIdx = 0;
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationIcon.settMember(tMember);
|
||||||
|
tVisualRelationIcon.setVisualRelationIconRegDate(new Date());
|
||||||
|
tVisualRelationIcon.setVisualRelationIconModDate(new Date());
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String reFileName = tVisualRelationIcon.gettVisualSet().getVisualSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx() + "/" + reFileName +
|
||||||
|
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
upFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualRelationIcon.setVisualRelationIconFile(upFile.getOriginalFilename());
|
||||||
|
tVisualRelationIcon.setVisualRelationIconReFile(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_ICON tVisualRelationIconDB = visualRelationIconDAO.setVisualRelationIconRegProc(tVisualRelationIcon);
|
||||||
|
|
||||||
|
if(tVisualRelationIconDB.getVisualRelationIconIdx() > 0){
|
||||||
|
visualRelationIconIdx = tVisualRelationIconDB.getVisualRelationIconIdx();
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
//log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualRelationIconIdx;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualRelationIconModProc(T_VISUAL_RELATION_ICON tVisualRelationIcon, MultipartFile upFile, Integer memberIdx, String rootPath){
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_ICON tVisualRelationIconDB = visualRelationIconDAO.getVisualRelationIconForm(tVisualRelationIcon.getVisualRelationIconIdx());
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationIconDB.settMember(tMember);
|
||||||
|
tVisualRelationIconDB.setVisualRelationIconName(tVisualRelationIcon.getVisualRelationIconName());
|
||||||
|
tVisualRelationIconDB.setVisualRelationIconModDate(new Date());
|
||||||
|
|
||||||
|
if(upFile != null && upFile.getBytes().length > 0){
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx() + "/" + tVisualRelationIconDB.getVisualRelationIconReFile());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualRelationIconDB.getVisualRelationIconReFile());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String reFileName = tVisualRelationIcon.gettVisualSet().getVisualSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx() + "/" + reFileName +
|
||||||
|
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
upFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tVisualRelationIcon.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualRelationIcon.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualRelationIconDB.setVisualRelationIconFile(upFile.getOriginalFilename());
|
||||||
|
tVisualRelationIconDB.setVisualRelationIconReFile(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
//log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualRelationIconDAO.setVisualRelationIconModProc(tVisualRelationIconDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualRelationIconDelProc(Integer visualRelationIconIdx, String rootPath){
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_ICON tVisualRelationIconDB = visualRelationIconDAO.getVisualRelationIconForm(visualRelationIconIdx);
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualRelationIconDB.gettVisualSet().gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualRelationIconDB.gettVisualSet().getVisualSetIdx() + "/" + tVisualRelationIconDB.getVisualRelationIconReFile());
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualRelationIconDB.gettVisualSet().gettSite().getSiteIdx() + "/upload/visual/" + tVisualRelationIconDB.gettVisualSet().getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualRelationIconDB.getVisualRelationIconReFile());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
return visualRelationIconDAO.setVisualRelationIconDelProc(tVisualRelationIconDB);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import seed.map.T_VISUAL_RELATION_SET;
|
||||||
|
|
||||||
|
public interface ManagerVisualRelationSetService {
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_RELATION_SET getVisualRelationSetForm(Integer visualRelationSetIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualRelationSetListCnt(Integer visualSetIdx, String column, String search);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_SET> getVisualRelationSetList(Integer visualSetIdx, int page, int row, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_SET> getVisualRelationSetList(Integer visualSetIdx, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Integer setVisualRelationSetRegProc(T_VISUAL_RELATION_SET tVisualRelationSet, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationSetModProc(T_VISUAL_RELATION_SET tVisualRelationSet, Integer memberIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationSetDelProc(Integer visualRelationSetIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationSetStatusProc(Integer visualRelationSetIdx, String status, Integer memberIdx);
|
||||||
|
}
|
||||||
@ -0,0 +1,107 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
|
import seed.dao.VisualRelationSetDAO;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
import seed.map.T_VISUAL_RELATION_SET;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerVisualRelationSetServiceImpl extends AbstractServiceImpl implements ManagerVisualRelationSetService{
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VisualRelationSetDAO visualRelationSetDAO;
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_RELATION_SET getVisualRelationSetForm(Integer visualRelationSetIdx){
|
||||||
|
|
||||||
|
return visualRelationSetDAO.getVisualRelationSetForm(visualRelationSetIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualRelationSetListCnt(Integer visualSetIdx, String column, String search){
|
||||||
|
|
||||||
|
return visualRelationSetDAO.getVisualRelationSetListCnt(visualSetIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_SET> getVisualRelationSetList(Integer visualSetIdx, int page, int row, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualRelationSetDAO.getVisualRelationSetList(visualSetIdx, ((page-1) * row), row, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_RELATION_SET> getVisualRelationSetList(Integer visualSetIdx, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualRelationSetDAO.getVisualRelationSetList(visualSetIdx, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Integer setVisualRelationSetRegProc(T_VISUAL_RELATION_SET tVisualRelationSet, Integer memberIdx){
|
||||||
|
|
||||||
|
Integer visualRelationSetIdx = 0;
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationSet.settMember(tMember);
|
||||||
|
tVisualRelationSet.setVisualRelationSetStatus("U");
|
||||||
|
tVisualRelationSet.setVisualRelationSetRegDate(new Date());
|
||||||
|
tVisualRelationSet.setVisualRelationSetModDate(new Date());
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_SET tVisualRelationSetDB = visualRelationSetDAO.setVisualRelationSetRegProc(tVisualRelationSet);
|
||||||
|
|
||||||
|
if(tVisualRelationSetDB.getVisualRelationSetIdx() > 0){
|
||||||
|
visualRelationSetIdx = tVisualRelationSetDB.getVisualRelationSetIdx();
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualRelationSetIdx;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationSetModProc(T_VISUAL_RELATION_SET tVisualRelationSet, Integer memberIdx){
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_SET tVisualRelationSetDB = visualRelationSetDAO.getVisualRelationSetForm(tVisualRelationSet.getVisualRelationSetIdx());
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationSetDB.settMember(tMember);
|
||||||
|
tVisualRelationSetDB.setVisualRelationSetName(tVisualRelationSet.getVisualRelationSetName());
|
||||||
|
tVisualRelationSetDB.setVisualRelationSetCount(tVisualRelationSet.getVisualRelationSetCount());
|
||||||
|
tVisualRelationSetDB.setVisualRelationSetModDate(new Date());
|
||||||
|
|
||||||
|
return visualRelationSetDAO.setVisualRelationSetModProc(tVisualRelationSetDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualRelationSetDelProc(Integer visualRelationSetIdx){
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_SET tVisualRelationSetDB = visualRelationSetDAO.getVisualRelationSetForm(visualRelationSetIdx);
|
||||||
|
|
||||||
|
return visualRelationSetDAO.setVisualRelationSetDelProc(tVisualRelationSetDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualRelationSetStatusProc(Integer visualRelationSetIdx, String status, Integer memberIdx){
|
||||||
|
|
||||||
|
T_VISUAL_RELATION_SET tVisualRelationSetDB = visualRelationSetDAO.getVisualRelationSetForm(visualRelationSetIdx);
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualRelationSetDB.settMember(tMember);
|
||||||
|
tVisualRelationSetDB.setVisualRelationSetModDate(new Date());
|
||||||
|
tVisualRelationSetDB.setVisualRelationSetStatus(status);
|
||||||
|
|
||||||
|
return visualRelationSetDAO.setVisualRelationSetModProc(tVisualRelationSetDB);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
|
|
||||||
|
import seed.map.T_VISUAL_SET;
|
||||||
|
|
||||||
|
public interface ManagerVisualSetService {
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public T_VISUAL_SET getVisualSetForm(Integer visualSetIdx);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Long getVisualSetListCnt(String siteIdx, String column, String search);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public List<T_VISUAL_SET> getVisualSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public Integer setVisualSetRegProc(T_VISUAL_SET tVisualSet, Integer memberIdx, HttpServletRequest httpServletRequest, MultipartHttpServletRequest multipartHttpServletRequest, String rootPath);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualSetModProc(T_VISUAL_SET tVisualSet, Integer memberIdx, HttpServletRequest httpServletRequest, MultipartHttpServletRequest multipartHttpServletRequest, String rootPath);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualSetDelProc(Integer visualSetIdx, String rootPath);
|
||||||
|
|
||||||
|
//ManagerVisualController
|
||||||
|
public boolean setVisualSetStatusProc(Integer visualSetIdx, String status, Integer memberIdx);
|
||||||
|
}
|
||||||
@ -0,0 +1,830 @@
|
|||||||
|
package seed.manager.visual.service;
|
||||||
|
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
|
||||||
|
|
||||||
|
import seed.dao.VisualDataDAO;
|
||||||
|
import seed.dao.VisualSetDAO;
|
||||||
|
import seed.map.T_MEMBER;
|
||||||
|
import seed.map.T_VISUAL_DATA;
|
||||||
|
import seed.map.T_VISUAL_SET;
|
||||||
|
import seed.utils.SeedFtpType;
|
||||||
|
import seed.utils.SeedUtils;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ManagerVisualSetServiceImpl extends AbstractServiceImpl implements ManagerVisualSetService{
|
||||||
|
|
||||||
|
private Logger log = Logger.getLogger(this.getClass());
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VisualSetDAO visualSetDAO;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VisualDataDAO visualDataDAO;
|
||||||
|
|
||||||
|
//ManagervisualController
|
||||||
|
public T_VISUAL_SET getVisualSetForm(Integer visualSetIdx){
|
||||||
|
|
||||||
|
return visualSetDAO.getVisualSetForm(visualSetIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagervisualController
|
||||||
|
public Long getVisualSetListCnt(String siteIdx, String column, String search){
|
||||||
|
|
||||||
|
return visualSetDAO.getVisualSetListCnt(siteIdx, column, search);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagervisualController
|
||||||
|
public List<T_VISUAL_SET> getVisualSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
|
||||||
|
|
||||||
|
return visualSetDAO.getVisualSetList(siteIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagervisualController
|
||||||
|
@Transactional
|
||||||
|
public Integer setVisualSetRegProc(T_VISUAL_SET tVisualSet, Integer memberIdx, HttpServletRequest httpServletRequest, MultipartHttpServletRequest multipartHttpServletRequest, String rootPath){
|
||||||
|
|
||||||
|
Integer visualSetIdx = 0;
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualSet.settMember(tMember);
|
||||||
|
tVisualSet.setVisualSetStatus("U");
|
||||||
|
tVisualSet.setVisualSetRegDate(new Date());
|
||||||
|
tVisualSet.setVisualSetModDate(new Date());
|
||||||
|
|
||||||
|
T_VISUAL_SET tVisualSetDB = visualSetDAO.setVisualSetRegProc(tVisualSet);
|
||||||
|
|
||||||
|
if(tVisualSetDB != null){
|
||||||
|
|
||||||
|
visualSetIdx = tVisualSetDB.getVisualSetIdx();
|
||||||
|
|
||||||
|
T_VISUAL_SET tVisualSetTmp = visualSetDAO.getVisualSetForm(tVisualSetDB.getVisualSetIdx());
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
|
||||||
|
Iterator<String> iteratorfileNames = multipartHttpServletRequest.getFileNames();
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
while (iteratorfileNames.hasNext()) {
|
||||||
|
|
||||||
|
String fileFormName = (String)iteratorfileNames.next();
|
||||||
|
String fileFormRename = fileFormName.substring(fileFormName.indexOf("file_")+5);
|
||||||
|
|
||||||
|
MultipartFile multipartFile = multipartHttpServletRequest.getFile(fileFormName);
|
||||||
|
|
||||||
|
if(multipartFile != null && !multipartFile.isEmpty()){
|
||||||
|
|
||||||
|
String reFileName = tVisualSetTmp.getVisualSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/" + reFileName +
|
||||||
|
multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
multipartFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
BufferedImage bimg = ImageIO.read(new File(rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/" + reFileName +
|
||||||
|
multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."))));
|
||||||
|
|
||||||
|
if(bimg != null){
|
||||||
|
|
||||||
|
int bimgWidth = bimg.getWidth();
|
||||||
|
int bimgHeight = bimg.getHeight();
|
||||||
|
|
||||||
|
if(fileFormRename.equals("visualSetChoiceImgOn")){
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetChoiceReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOnHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetChoiceImgOver")){
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOver(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetChoiceReImgOver(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOverWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOverHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetChoiceImgOff")){
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetChoiceReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOffHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetPlayImgOn")){
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetPlayReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOnHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetPlayImgOff")){
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetPlayReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOffHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetStopImgOn")){
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetStopReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOnHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetStopImgOff")){
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetStopReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOffHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetPreImgOn")){
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetPreReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOnHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetPreImgOff")){
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetPreReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOffHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetNextImgOn")){
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetNextReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOnHeight(bimgHeight);
|
||||||
|
}else if(fileFormRename.equals("visualSetNextImgOff")){
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetTmp.setVisualSetNextReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOffHeight(bimgHeight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String filePath = rootPath.substring(0, rootPath.lastIndexOf("/site"));
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetChoiceImgOn()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_pagination_on.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_pagination_on.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_pagination_on.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOn("btn_pagination_on.png");
|
||||||
|
tVisualSetTmp.setVisualSetChoiceReImgOn("btn_pagination_on.png");
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOnWidth(13);
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOnHeight(13);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetChoiceImgOver()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_pagination_over.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_pagination_over.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_pagination_over.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOver("btn_pagination_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetChoiceReImgOver("btn_pagination_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOverWidth(13);
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOverHeight(13);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetChoiceImgOff()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_pagination_off.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_pagination_off.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_pagination_off.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOff("btn_pagination_off.png");
|
||||||
|
tVisualSetTmp.setVisualSetChoiceReImgOff("btn_pagination_off.png");
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOffWidth(13);
|
||||||
|
tVisualSetTmp.setVisualSetChoiceImgOffHeight(13);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetPlayImgOn()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_play_over.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_play_over.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_play_over.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOn("btn_play_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetPlayReImgOn("btn_play_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOnWidth(16);
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOnHeight(17);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetPlayImgOff()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_play.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_play.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_play.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOff("btn_play.png");
|
||||||
|
tVisualSetTmp.setVisualSetPlayReImgOff("btn_play.png");
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOffWidth(16);
|
||||||
|
tVisualSetTmp.setVisualSetPlayImgOffHeight(18);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetStopImgOn()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_stop_over.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_stop_over.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_stop_over.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOn("btn_stop_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetStopReImgOn("btn_stop_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOnWidth(18);
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOnHeight(17);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetStopImgOff()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_stop.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_stop.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_stop.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOff("btn_stop.png");
|
||||||
|
tVisualSetTmp.setVisualSetStopReImgOff("btn_stop.png");
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOffWidth(18);
|
||||||
|
tVisualSetTmp.setVisualSetStopImgOffHeight(17);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetPreImgOn()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_pre_over.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_pre_over.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_pre_over.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOn("btn_pre_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetPreReImgOn("btn_pre_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOnWidth(12);
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOnHeight(18);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetPreImgOff()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_pre.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_pre.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_pre.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOff("btn_pre.png");
|
||||||
|
tVisualSetTmp.setVisualSetPreReImgOff("btn_pre.png");
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOffWidth(12);
|
||||||
|
tVisualSetTmp.setVisualSetPreImgOffHeight(18);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetNextImgOn()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_next_over.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_next_over.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_next_over.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOn("btn_next_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetNextReImgOn("btn_next_over.png");
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOnWidth(12);
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOnHeight(18);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SeedUtils.setReplaceNull(tVisualSetTmp.getVisualSetNextImgOff()).equals("")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedFileCopy(filePath + "/_common/_images/manager/visual/btn_next.png",
|
||||||
|
rootPath + "/" + tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx() + "/btn_next.png");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetTmp.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetTmp.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(filePath + "/_common/_images/manager/visual");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("btn_next.png");
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOff("btn_next.png");
|
||||||
|
tVisualSetTmp.setVisualSetNextReImgOff("btn_next.png");
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOffWidth(12);
|
||||||
|
tVisualSetTmp.setVisualSetNextImgOffHeight(18);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(visualSetDAO.setVisualSetModProc(tVisualSetTmp)){
|
||||||
|
visualSetIdx = tVisualSetTmp.getVisualSetIdx();
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualSetIdx;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagervisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualSetModProc(T_VISUAL_SET tVisualSet, Integer memberIdx, HttpServletRequest httpServletRequest, MultipartHttpServletRequest multipartHttpServletRequest, String rootPath){
|
||||||
|
|
||||||
|
T_VISUAL_SET tVisualSetDB = visualSetDAO.getVisualSetForm(tVisualSet.getVisualSetIdx());
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualSetDB.settMember(tMember);
|
||||||
|
tVisualSetDB.setVisualSetName(tVisualSet.getVisualSetName());
|
||||||
|
tVisualSetDB.setVisualSetType(tVisualSet.getVisualSetType());
|
||||||
|
tVisualSetDB.setVisualSetRelation(tVisualSet.getVisualSetRelation());
|
||||||
|
tVisualSetDB.setVisualSetTime(tVisualSet.getVisualSetTime());
|
||||||
|
tVisualSetDB.setVisualSetWidth(tVisualSet.getVisualSetWidth());
|
||||||
|
tVisualSetDB.setVisualSetHeight(tVisualSet.getVisualSetHeight());
|
||||||
|
tVisualSetDB.setVisualSetBg(tVisualSet.getVisualSetBg());
|
||||||
|
tVisualSetDB.setVisualSetSkin(tVisualSet.getVisualSetSkin());
|
||||||
|
tVisualSetDB.setVisualSetChoiceTB(tVisualSet.getVisualSetChoiceTB());
|
||||||
|
tVisualSetDB.setVisualSetChoiceLR(tVisualSet.getVisualSetChoiceLR());
|
||||||
|
tVisualSetDB.setVisualSetChoiceTBPosition(tVisualSet.getVisualSetChoiceTBPosition());
|
||||||
|
tVisualSetDB.setVisualSetChoiceLRPosition(tVisualSet.getVisualSetChoiceLRPosition());
|
||||||
|
tVisualSetDB.setVisualSetPSTB(tVisualSet.getVisualSetPSTB());
|
||||||
|
tVisualSetDB.setVisualSetPSLR(tVisualSet.getVisualSetPSLR());
|
||||||
|
tVisualSetDB.setVisualSetPSTBPosition(tVisualSet.getVisualSetPSTBPosition());
|
||||||
|
tVisualSetDB.setVisualSetPSLRPosition(tVisualSet.getVisualSetPSLRPosition());
|
||||||
|
tVisualSetDB.setVisualSetPreTB(tVisualSet.getVisualSetPreTB());
|
||||||
|
tVisualSetDB.setVisualSetPreLR(tVisualSet.getVisualSetPreLR());
|
||||||
|
tVisualSetDB.setVisualSetPreTBPosition(tVisualSet.getVisualSetPreTBPosition());
|
||||||
|
tVisualSetDB.setVisualSetPreLRPosition(tVisualSet.getVisualSetPreLRPosition());
|
||||||
|
tVisualSetDB.setVisualSetNextTB(tVisualSet.getVisualSetNextTB());
|
||||||
|
tVisualSetDB.setVisualSetNextLR(tVisualSet.getVisualSetNextLR());
|
||||||
|
tVisualSetDB.setVisualSetNextTBPosition(tVisualSet.getVisualSetNextTBPosition());
|
||||||
|
tVisualSetDB.setVisualSetNextLRPosition(tVisualSet.getVisualSetNextLRPosition());
|
||||||
|
tVisualSetDB.setVisualSetWideImg(tVisualSet.getVisualSetWideImg());
|
||||||
|
tVisualSetDB.setVisualSetWideImgWidth(tVisualSet.getVisualSetWideImgWidth());
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetModDate(new Date());
|
||||||
|
|
||||||
|
Iterator<String> iteratorfileNames = multipartHttpServletRequest.getFileNames();
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
while (iteratorfileNames.hasNext()) {
|
||||||
|
|
||||||
|
String fileFormName = (String)iteratorfileNames.next();
|
||||||
|
String fileFormRename = fileFormName.substring(fileFormName.indexOf("file_")+5);
|
||||||
|
|
||||||
|
MultipartFile multipartFile = multipartHttpServletRequest.getFile(fileFormName);
|
||||||
|
|
||||||
|
if(multipartFile != null && !multipartFile.isEmpty()){
|
||||||
|
|
||||||
|
SeedUtils.setSeedMkDirs(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
|
||||||
|
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String reFileName = tVisualSetDB.getVisualSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||||
|
|
||||||
|
File makeFile = new File(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + reFileName +
|
||||||
|
multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
multipartFile.transferTo(makeFile);
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(reFileName + multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("regFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
BufferedImage bimg = ImageIO.read(new File(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + reFileName +
|
||||||
|
multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."))));
|
||||||
|
|
||||||
|
if(bimg != null){
|
||||||
|
|
||||||
|
int bimgWidth = bimg.getWidth();
|
||||||
|
int bimgHeight = bimg.getHeight();
|
||||||
|
|
||||||
|
if(fileFormRename.equals("visualSetChoiceImgOn")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetChoiceReImgOn());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetChoiceReImgOn());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetChoiceReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOnHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetChoiceImgOver")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetChoiceReImgOver());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetChoiceReImgOver());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOver(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetChoiceReImgOver(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOverWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOverHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetChoiceImgOff")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetChoiceReImgOff());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetChoiceReImgOff());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetChoiceReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetChoiceImgOffHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetPlayImgOn")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetPlayReImgOn());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetPlayReImgOn());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetPlayImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetPlayReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetPlayImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetPlayImgOnHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetPlayImgOff")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetPlayReImgOff());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetPlayReImgOff());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetPlayImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetPlayReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetPlayImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetPlayImgOffHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetStopImgOn")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetStopReImgOn());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetStopReImgOn());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetStopImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetStopReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetStopImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetStopImgOnHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetStopImgOff")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetStopReImgOff());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetStopReImgOff());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetStopImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetStopReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetStopImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetStopImgOffHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetPreImgOn")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetPreReImgOn());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetPreReImgOn());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetPreImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetPreReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetPreImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetPreImgOnHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetPreImgOff")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetPreReImgOff());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetPreReImgOff());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetPreImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetPreReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetPreImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetPreImgOffHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetNextImgOn")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetNextReImgOn());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetNextReImgOn());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetNextImgOn(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetNextReImgOn(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetNextImgOnWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetNextImgOnHeight(bimgHeight);
|
||||||
|
|
||||||
|
}else if(fileFormRename.equals("visualSetNextImgOff")){
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/upload/visual/" + tVisualSetDB.getVisualSetIdx() + "/" + tVisualSetDB.getVisualSetNextReImgOff());
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/upload/visual/" + tVisualSetDB.getVisualSetIdx());
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName(tVisualSetDB.getVisualSetNextReImgOff());
|
||||||
|
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
tVisualSetDB.setVisualSetNextImgOff(multipartFile.getOriginalFilename());
|
||||||
|
tVisualSetDB.setVisualSetNextReImgOff(reFileName+multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")));
|
||||||
|
tVisualSetDB.setVisualSetNextImgOffWidth(bimgWidth);
|
||||||
|
tVisualSetDB.setVisualSetNextImgOffHeight(bimgHeight);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch(IOException e){
|
||||||
|
log.error("CHECK ERROR:",e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return visualSetDAO.setVisualSetModProc(tVisualSetDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagervisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualSetDelProc(Integer visualSetIdx, String rootPath){
|
||||||
|
|
||||||
|
T_VISUAL_SET tVisualSetDB = visualSetDAO.getVisualSetForm(visualSetIdx);
|
||||||
|
|
||||||
|
//FTP 전송
|
||||||
|
SeedFtpType seedFtpType = new SeedFtpType();
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFiles(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx() +
|
||||||
|
"/upload/visual/" + tVisualSetDB.getVisualSetIdx() , "");
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/jsp/visual/visual_" + tVisualSetDB.getVisualSetIdx() +".jsp");
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/jsp/visual/css/visual_" + tVisualSetDB.getVisualSetIdx() +".css");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/jsp/visual/css");
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("visual_" + tVisualSetDB.getVisualSetIdx() +".css");
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
SeedUtils.setSeedDeleteFile(rootPath + "/" + tVisualSetDB.gettSite().getSiteIdx()
|
||||||
|
+ "/jsp/visual/js/visual_" + tVisualSetDB.getVisualSetIdx() +".js");
|
||||||
|
|
||||||
|
//WEB 서버의 경로
|
||||||
|
seedFtpType.setDestFilePath(tVisualSetDB.gettSite().getSiteIdx() + "/jsp/visual/js");
|
||||||
|
//WAS 서버의 경로
|
||||||
|
seedFtpType.setSrcFilePath("");
|
||||||
|
//WAS 파일명
|
||||||
|
seedFtpType.setFileName("visual_" + tVisualSetDB.getVisualSetIdx() +".js");
|
||||||
|
//파일 전송 타입 regFile=파일전송, delFile=파일삭제
|
||||||
|
seedFtpType.setFtpType("delFile");
|
||||||
|
seedFtpType.setSeedFtp();
|
||||||
|
|
||||||
|
return visualSetDAO.setVisualSetDelProc(tVisualSetDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ManagervisualController
|
||||||
|
@Transactional
|
||||||
|
public boolean setVisualSetStatusProc(Integer visualSetIdx, String status, Integer memberIdx){
|
||||||
|
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
T_VISUAL_SET tVisualSetDB = visualSetDAO.getVisualSetForm(visualSetIdx);
|
||||||
|
Iterator<T_VISUAL_DATA> iteratorList = tVisualSetDB.gettVisualDatas().iterator();
|
||||||
|
|
||||||
|
T_MEMBER tMember = new T_MEMBER();
|
||||||
|
tMember.setMemberIdx(memberIdx);
|
||||||
|
|
||||||
|
tVisualSetDB.settMember(tMember);
|
||||||
|
tVisualSetDB.setVisualSetModDate(new Date());
|
||||||
|
tVisualSetDB.setVisualSetStatus(status);
|
||||||
|
|
||||||
|
if(visualSetDAO.setVisualSetModProc(tVisualSetDB)){
|
||||||
|
|
||||||
|
success = true;
|
||||||
|
|
||||||
|
while(iteratorList.hasNext()){
|
||||||
|
|
||||||
|
T_VISUAL_DATA tVisualDataDB = visualDataDAO.getVisualDataForm(iteratorList.next().getVisualDataIdx());
|
||||||
|
|
||||||
|
tVisualDataDB.settMember(tMember);
|
||||||
|
tVisualDataDB.setVisualDataModDate(new Date());
|
||||||
|
tVisualDataDB.setVisualDataStatus(status);
|
||||||
|
|
||||||
|
if(!visualDataDAO.setVisualDataModProc(tVisualDataDB)){
|
||||||
|
success = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
}
|
||||||
5021
src/main/java/seed/manager/visual/web/ManagerVisualController.java
Normal file
5021
src/main/java/seed/manager/visual/web/ManagerVisualController.java
Normal file
File diff suppressed because it is too large
Load Diff
@ -184,7 +184,7 @@
|
|||||||
</bean>
|
</bean>
|
||||||
<!-- T_SITE -->
|
<!-- T_SITE -->
|
||||||
|
|
||||||
<!-- T_SITE_MANAGER -->
|
<!-- T_SITE_MANAGER -->
|
||||||
<bean id="siteManager2DAO" class="seed.dao.SiteManager2DAOImpl">
|
<bean id="siteManager2DAO" class="seed.dao.SiteManager2DAOImpl">
|
||||||
<property name="sessionFactory" ref="sessionFactory" />
|
<property name="sessionFactory" ref="sessionFactory" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|||||||
@ -96,6 +96,7 @@
|
|||||||
|
|
||||||
<mvc:resources mapping="/kccadrPb/**" location="/kccadrPb/" />
|
<mvc:resources mapping="/kccadrPb/**" location="/kccadrPb/" />
|
||||||
<mvc:resources mapping="/editor/**" location="/editor/" />
|
<mvc:resources mapping="/editor/**" location="/editor/" />
|
||||||
|
<mvc:resources mapping="/codemirror/**" location="/codemirror/" />
|
||||||
|
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
396
src/main/webapp/WEB-INF/jsp/manager/banner/bannerSetForm.jsp
Normal file
396
src/main/webapp/WEB-INF/jsp/manager/banner/bannerSetForm.jsp
Normal file
@ -0,0 +1,396 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.banner.bannerSetForm.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.banner.nav.bannerSetView"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form:form id="frm" name="frm" action="/gtm/proc/${siteIdx}/bannerSetRegProc.do" method="post" enctype="multipart/form-data">
|
||||||
|
<input type="hidden" name="tSite.siteIdx" id="siteIdx" value="<c:out escapeXml='true' value='${siteIdx}' />" />
|
||||||
|
<fieldset>
|
||||||
|
<legend><s:message code="manager.banner.bannerSetForm.table.caption"/></legend>
|
||||||
|
<div class="bbs-view-layout">
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSetType"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<input type="radio" class="radio checked" name="bannerSetType" id="bannerSetTypeNormal" value="normal" checked /><label for="bannerSetTypeNormal"><s:message code="manager.banner.bannerSetForm.bannerSetType.normal"/></label>
|
||||||
|
<input type="radio" class="radio" name="bannerSetType" id="bannerSetTypeActive" value="active" /><label for="bannerSetTypeActive"><s:message code="manager.banner.bannerSetForm.bannerSetType.active"/></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSetName"/></p>
|
||||||
|
<div class="item-box"><input type="text" class="width40 essential" maxlength="100" name="bannerSetName" id="bannerSetName" title="<s:message code="manager.banner.bannerSetForm.bannerSetName"/>" value="" required /></div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSetTime"/></p>
|
||||||
|
<div class="item-box"><input type="text" class="width50px essential numOnly" maxlength="10" name="bannerSetTime" id="bannerSetTime" title="<s:message code="manager.banner.bannerSetForm.bannerSetTime"/>" value="4" required /></div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item" id="trBannerArray" style="display:none;">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSetArray"/></p>
|
||||||
|
<div class="item-box"><input type="text" maxlength="255" name="bannerSetArray" id="bannerSetArray" title="<s:message code="manager.banner.bannerSetForm.bannerSetArray"/>" value="" /> <s:message code="manager.banner.bannerSetForm.bannerSetArray.ex"/></div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item" id="trBannerWidth">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSetSize"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerSetWidth"/> <input type="text" class="width50px numOnly" maxlength="10" name="bannerSetWidth" id="bannerSetWidth" title="<s:message code="manager.banner.bannerSetForm.bannerSetWidth"/>" value="" /> px<br/>
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerSetHeight"/> <input type="text" class="width50px numOnly" maxlength="10" name="bannerSetHeight" id="bannerSetHeight" title="<s:message code="manager.banner.bannerSetForm.bannerSetHeight"/>" value="" /> px
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item" id="trBannerDataWidth">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerDataSize"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerDataWidth"/> <input type="text" class="width50px numOnly" maxlength="10" name="bannerDataWidth" id="bannerDataWidth" title="<s:message code="manager.banner.bannerSetForm.bannerDataWidth"/>" value="" /> px<br/>
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerDataHeight"/> <input type="text" class="width50px numOnly" maxlength="10" name="bannerDataHeight" id="bannerDataHeight" title="<s:message code="manager.banner.bannerSetForm.bannerDataHeight"/>" value="" /> px
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerDataPadding"/></p>
|
||||||
|
<div class="item-box"><s:message code="manager.banner.bannerSetForm.bannerDataPadding"/> <input type="text" class="width50px essential numOnly" maxlength="10" name="bannerDataPadding" id="bannerDataPadding" title="<s:message code="manager.banner.bannerSetForm.bannerDataPadding"/>" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSetPS"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<div style="margin-top:8px; margin-bottom:4px;">
|
||||||
|
<input type="radio" class="radio checked" name="bannerSetPSTB" id="bannerSetPSTop" value="top" checked /><label for="bannerSetPSTop"><s:message code="manager.banner.bannerSetForm.bannerSetPS.TB.top"/></label>
|
||||||
|
<input type="radio" class="radio" name="bannerSetPSTB" id="bannerSetPSBottom" value="bottom" /><label for="bannerSetPSBottom"><s:message code="manager.banner.bannerSetForm.bannerSetPS.TB.bottom"/></label><br/>
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerSetPS.TB.position"/> <input type="text" class="width50px essential numOnly" name="bannerSetPSTBPosition" id="bannerSetPSTBPosition" title="<s:message code="manager.banner.bannerSetForm.bannerSetPS.TB.position"/>" value="" required /> %
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:12px; margin-bottom:4px;">
|
||||||
|
<input type="radio" class="radio checked" name="bannerSetPSLR" id="bannerSetPSLeft" value="left" checked /><label for="bannerSetPSLeft"><s:message code="manager.banner.bannerSetForm.bannerSetPS.LR.left"/></label>
|
||||||
|
<input type="radio" class="radio" name="bannerSetPSLR" id="bannerSetPSRight" value="right" /><label for="bannerSetPSRight"><s:message code="manager.banner.bannerSetForm.bannerSetPS.LR.right"/></label><br/>
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerSetPS.LR.position"/> <input type="text" class="width50px essential numOnly" name="bannerSetPSLRPosition" id="bannerSetPSLRPosition" title="<s:message code="manager.banner.bannerSetForm.bannerSetPS.LR.position"/>" value="" required /> %
|
||||||
|
</div>
|
||||||
|
<div class="row"><input type="file" name="file_bannerSetPlayImg" id="bannerSetPlayImg" value="" /><label for="bannerSetPlayImg"><s:message code="manager.banner.bannerSetForm.bannerSetPS.play.img"/></label><span class="file-info"><s:message code="manager.banner.bannerSetForm.bannerSetPS.play.img"/></span></div>
|
||||||
|
<div class="row"><input type="file" name="file_bannerSetStopImg" id="bannerSetStopImg" value="" /><label for="bannerSetStopImg"><s:message code="manager.banner.bannerSetForm.bannerSetPS.stop.img"/></label><span class="file-info"><s:message code="manager.banner.bannerSetForm.bannerSetPS.stop.img"/></span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSetPN"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<div style="margin-top:8px; margin-bottom:4px;">
|
||||||
|
<input type="radio" class="radio checked" name="bannerSetPreTB" id="bannerSetPreTop" value="top" checked /><label for="bannerSetPreTop"><s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.top"/></label>
|
||||||
|
<input type="radio" class="radio" name="bannerSetPreTB" id="bannerSetPreBottom" value="bottom" /><label for="bannerSetPreBottom"><s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.bottom"/></label><br/>
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.position"/> <input type="text" class="width50px essential numOnly" name="bannerSetPreTBPosition" id="bannerSetPreTBPosition" title="<s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.position"/>" value="" required /> %
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:12px; margin-bottom:4px;">
|
||||||
|
<input type="radio" class="radio checked" name="bannerSetPreLR" id="bannerSetPreLeft" value="left" checked /><label for="bannerSetPreLeft"><s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.left"/></label>
|
||||||
|
<input type="radio" class="radio" name="bannerSetPreLR" id="bannerSetPreRight" value="right" /><label for="bannerSetPreRight"><s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.right"/></label><br/>
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.position"/> <input type="text" class="width50px essential numOnly" name="bannerSetPreLRPosition" id="bannerSetPreLRPosition" title="<s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.position"/>" value="" required /> %
|
||||||
|
</div>
|
||||||
|
<div class="row"><input type="file" name="file_bannerSetPreImg" id="bannerSetPreImg" value="" /><label for="bannerSetPreImg"><s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.img"/></label><span class="file-info"><s:message code="manager.banner.bannerSetForm.bannerSetPN.pre.img"/></span></div>
|
||||||
|
<div style="margin-top:8px; margin-bottom:4px;">
|
||||||
|
<input type="radio" class="radio checked" name="bannerSetNextTB" id="bannerSetNextTop" value="top" checked /><label for="bannerSetNextTop"><s:message code="manager.banner.bannerSetForm.bannerSetPN.next.top"/></label>
|
||||||
|
<input type="radio" class="radio" name="bannerSetNextTB" id="bannerSetNextBottom" value="bottom" /><label for="bannerSetNextBottom"><s:message code="manager.banner.bannerSetForm.bannerSetPN.next.bottom"/></label><br/>
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerSetPN.next.position"/> <input type="text" class="width50px essential numOnly" name="bannerSetNextTBPosition" id="bannerSetNextTBPosition" title="<s:message code="manager.banner.bannerSetForm.bannerSetPN.next.position"/>" value="" required /> %
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:12px; margin-bottom:4px;">
|
||||||
|
<input type="radio" class="radio checked" name="bannerSetNextLR" id="bannerSetNextLeft" value="left" checked /><label for="bannerSetNextLeft"><s:message code="manager.banner.bannerSetForm.bannerSetPN.next.left"/></label>
|
||||||
|
<input type="radio" class="radio" name="bannerSetNextLR" id="bannerSetNextRight" value="right" /><label for="bannerSetNextRight"><s:message code="manager.banner.bannerSetForm.bannerSetPN.next.right"/></label><br/>
|
||||||
|
<s:message code="manager.banner.bannerSetForm.bannerSetPN.next.position"/> <input type="text" class="width50px essential numOnly" name="bannerSetNextLRPosition" id="bannerSetNextLRPosition" title="<s:message code="manager.banner.bannerSetForm.bannerSetPN.next.position"/>" value="" required /> %
|
||||||
|
</div>
|
||||||
|
<div class="row"><input type="file" name="file_bannerSetNextImg" id="bannerSetNextImg" value="" /><label for="bannerSetNextImg"><s:message code="manager.banner.bannerSetForm.bannerSetPN.next.img"/></label><span class="file-info"><s:message code="manager.banner.bannerSetForm.bannerSetPN.next.img"/></span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSetSkin"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<input type="radio" class="radio checked" name="bannerSetSkin" id="bannerSetSkinA" value="A" checked /><label for="bannerSetSkinA"><s:message code="manager.banner.bannerSetForm.bannerSetSkin.A"/></label>
|
||||||
|
<input type="radio" class="radio" name="bannerSetSkin" id="bannerSetSkinB" value="B" /><label for="bannerSetSkinB"><s:message code="manager.banner.bannerSetForm.bannerSetSkin.B"/></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.banner.bannerSetForm.bannerSet.preview"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<iframe id="bannerPreview" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerFormPreview.do?bannerSetType=normal&bannerSetSkin=A" style="width:100%; height:200px; border:0;"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<c:if test='${memberGrant == "S" || memberAuth}'>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="submit" class="btn-normal violet"><s:message code="common.button.save"/></button>
|
||||||
|
<a class="btn-normal lightgray" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do"><s:message code="common.button.list"/></a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$("#bannerSetName").focus();
|
||||||
|
|
||||||
|
$("#bannerSetWidth").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview").css({width :value});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerSetHeight").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview").css({height :value});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerDataWidth").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-slide img").css({width :value});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerDataHeight").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-slide img").css({height :value});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerDataPadding").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-slide img").css({borderWidth:value});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerSetPSTBPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetPSTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css({top :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css("bottom", "auto");
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css({top :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css("bottom", "auto");
|
||||||
|
}else if($('input[name="bannerSetPSTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css({bottom :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css("top", "auto");
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css({bottom :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="bannerSetPSTB"]').click(function(){
|
||||||
|
var value = parseInt($("#bannerSetPSTBPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetPSTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css({top :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css("bottom", "auto");
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css({top :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css("bottom", "auto");
|
||||||
|
}else if($('input[name="bannerSetPSTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css({bottom :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css("top", "auto");
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css({bottom :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerSetPSLRPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetPSLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css({left :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css("right", "auto");
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css({left :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css("right", "auto");
|
||||||
|
}else if($('input[name="bannerSetPSLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css({right :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css("left", "auto");
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css({right :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="bannerSetPSLR"]').click(function(){
|
||||||
|
var value = parseInt($("#bannerSetPSLRPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetPSLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css({left :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css("right", "auto");
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css({left :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css("right", "auto");
|
||||||
|
}else if($('input[name="bannerSetPSLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css({right :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-play").css("left", "auto");
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css({right :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-stop").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerSetPreTBPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetPreTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css({top :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css("bottom", "auto");
|
||||||
|
}else if($('input[name="bannerSetPreTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css({bottom :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="bannerSetPreTB"]').click(function(){
|
||||||
|
var value = parseInt($("#bannerSetPreTBPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetPreTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css({top :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css("bottom", "auto");
|
||||||
|
}else if($('input[name="bannerSetPreTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css({bottom :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerSetPreLRPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetPreLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css({left :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css("right", "auto");
|
||||||
|
}else if($('input[name="bannerSetPreLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css({right :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="bannerSetPreLR"]').click(function(){
|
||||||
|
var value = parseInt($("#bannerSetPreLRPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetPreLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css({left :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css("right", "auto");
|
||||||
|
}else if($('input[name="bannerSetPreLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css({right :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-prev").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerSetNextTBPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetNextTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css({top :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css("bottom", "auto");
|
||||||
|
}else if($('input[name="bannerSetNextTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css({bottom :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="bannerSetNextTB"]').click(function(){
|
||||||
|
var value = parseInt($("#bannerSetNextTBPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetNextTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css({top :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css("bottom", "auto");
|
||||||
|
}else if($('input[name="bannerSetNextTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css({bottom :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bannerSetNextLRPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetNextLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css({left :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css("right", "auto");
|
||||||
|
}else if($('input[name="bannerSetNextLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css({right :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="bannerSetNextLR"]').click(function(){
|
||||||
|
var value = parseInt($("#bannerSetNextLRPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="bannerSetNextLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css({left :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css("right", "auto");
|
||||||
|
}else if($('input[name="bannerSetNextLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css({right :value+"%"});
|
||||||
|
$("#bannerPreview").contents().find(".bannerSetPreview .slick-next").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input[name=bannerSetType]").change(function() {
|
||||||
|
var bannerSetType = $(this).val();
|
||||||
|
|
||||||
|
if(bannerSetType == "normal"){
|
||||||
|
$("#trBannerArray").hide();
|
||||||
|
$("#trBannerWidth").show();
|
||||||
|
$("#trBannerDataWidth").show();
|
||||||
|
}else if(bannerSetType == "active"){
|
||||||
|
$("#trBannerArray").show();
|
||||||
|
$("#trBannerWidth").hide();
|
||||||
|
$("#trBannerDataWidth").hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#bannerPreview").attr("src", "/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerFormPreview.do?bannerSetType="+bannerSetType+"&bannerSetSkin="+$('input[name="bannerSetSkin"]:radio:checked').val());
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input[name=bannerSetSkin]").change(function() {
|
||||||
|
var bannerSetSkin = $(this).val();
|
||||||
|
|
||||||
|
$("#bannerPreview").attr("src", "/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerFormPreview.do?bannerSetType="+$('input[name="bannerSetType"]:radio:checked').val()+"&bannerSetSkin="+bannerSetSkin);
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
|
||||||
|
if($('input[name="bannerSetType"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.banner.bannerSetForm.bannerSetType"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}else if($("#bannerSetName").val() == ""){
|
||||||
|
alert("<s:message code="manager.banner.bannerSetForm.bannerSetName"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#bannerSetName").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="bannerSetType"]:radio:checked').val() == "normal"){
|
||||||
|
if($("#bannerSetWidth").val() == ""){
|
||||||
|
alert("<s:message code="manager.banner.bannerSetForm.bannerSetSize"/> <s:message code="manager.banner.bannerSetForm.bannerSetWidth"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#bannerSetWidth").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#bannerSetHeight").val() == ""){
|
||||||
|
alert("<s:message code="manager.banner.bannerSetForm.bannerSetSize"/> <s:message code="manager.banner.bannerSetForm.bannerSetHeight"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#bannerSetHeight").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#bannerDataWidth").val() == ""){
|
||||||
|
alert("<s:message code="manager.banner.bannerSetForm.bannerDataSize"/> <s:message code="manager.banner.bannerSetForm.bannerDataWidth"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#bannerDataWidth").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#bannerDataHeight").val() == ""){
|
||||||
|
alert("<s:message code="manager.banner.bannerSetForm.bannerDataSize"/> <s:message code="manager.banner.bannerSetForm.bannerDataHeight"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#bannerDataHeight").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}else if($('input[name="bannerSetType"]:radio:checked').val() == "active"){
|
||||||
|
if($("#bannerSetArray").val() == ""){
|
||||||
|
alert("<s:message code="manager.banner.bannerSetForm.bannerSetArray"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#bannerSetArray").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="bannerSetSkin"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.banner.bannerSetForm.bannerSetSkin"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,289 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.banner.bannerSetPreview.title"/></title>
|
||||||
|
<script src="/js/lib/slick.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.bannerSetPreview {
|
||||||
|
<c:if test='${bannerSetType == "normal"}'>
|
||||||
|
width: 600px;
|
||||||
|
height: 50px;
|
||||||
|
</c:if>
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-ms-touch-action: pan-y;
|
||||||
|
touch-action: pan-y;
|
||||||
|
-webkit-tap-highlight-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-list {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-list:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-list.dragging {
|
||||||
|
cursor: pointer;
|
||||||
|
cursor: hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-track,
|
||||||
|
.bannerSetPreview .slick-list {
|
||||||
|
-webkit-transform: translate3d(0, 0, 0);
|
||||||
|
-moz-transform: translate3d(0, 0, 0);
|
||||||
|
-ms-transform: translate3d(0, 0, 0);
|
||||||
|
-o-transform: translate3d(0, 0, 0);
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-track {
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-track:before,
|
||||||
|
.bannerSetPreview .slick-track:after {
|
||||||
|
display: table;
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-track:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-loading .slick-track {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-slide {
|
||||||
|
display: none;
|
||||||
|
float: left;
|
||||||
|
height: 100%;
|
||||||
|
min-height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
[dir='rtl'] .bannerSetPreview .slick-slide {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-slide img {
|
||||||
|
display: block;
|
||||||
|
border: 5px solid #FFF;
|
||||||
|
display: block;
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${bannerSetType == "normal"}'>
|
||||||
|
width: 120px;
|
||||||
|
height: 50px;
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${bannerSetType == "active"}'>
|
||||||
|
width: 100%;
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-slide.slick-loading img {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-slide.dragging img {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview.slick-initialized .slick-slide {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-loading .slick-slide {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview.slick-vertical .slick-slide {
|
||||||
|
display: block;
|
||||||
|
height: auto;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-loading .slick-list {
|
||||||
|
background: #fff url('/img/jquery-ui/ajax-loader.gif') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-prev {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0%;
|
||||||
|
left: 2%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-next {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0%;
|
||||||
|
left: 5%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannerSetPreview .slick-stop, .slick-play {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0%;
|
||||||
|
right: 1%;
|
||||||
|
display: block ;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<script src="/js/slick.min.js"></script>
|
||||||
|
|
||||||
|
<div class="bannerSetPreview">
|
||||||
|
<div><img src="/img/manager/banner/example-slide-1.jpg" alt="banner1" /></div>
|
||||||
|
<div><img src="/img/manager/banner/example-slide-2.jpg" alt="banner2" /></div>
|
||||||
|
<div><img src="/img/manager/banner/example-slide-3.jpg" alt="banner3" /></div>
|
||||||
|
<div><img src="/img/manager/banner/example-slide-1.jpg" alt="banner4" /></div>
|
||||||
|
<div><img src="/img/manager/banner/example-slide-2.jpg" alt="banner5" /></div>
|
||||||
|
<div><img src="/img/manager/banner/example-slide-3.jpg" alt="banner6" /></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
var bannerSetSkin;
|
||||||
|
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${bannerSetSkin == "A"}'>
|
||||||
|
bannerSetSkin = false;
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${bannerSetSkin == "B"}'>
|
||||||
|
bannerSetSkin = true;
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${bannerSetType == "normal"}'>
|
||||||
|
var $bannerSet = $('.bannerSetPreview').slick({
|
||||||
|
vertical : bannerSetSkin,
|
||||||
|
pauseOnHover : false,
|
||||||
|
draggable: false,
|
||||||
|
arrows : true,
|
||||||
|
prevArrow : "<a href=\"#\" title=\"Previous\" class=\"slick-prev\"><img src=\"/img/manager/banner/btn_pre.png\" alt=\"Previous\"/></a>",
|
||||||
|
nextArrow : "<a href=\"#\" title=\"Next\" class=\"slick-next\"><img src=\"/img/manager/banner/btn_next.png\" alt=\"Next\"/></a><a href=\"#\" title=\"Play\" class=\"slick-play\"><img src=\"/img/manager/banner/btn_play.png\" alt=\"Play\"/></a><a href=\"#\" title=\"Stop\" class=\"slick-stop\"><img src=\"/img/manager/banner/btn_stop.png\" alt=\"Stop\"/></a>",
|
||||||
|
lazyLoad: 'ondemand',
|
||||||
|
autoplay: true,
|
||||||
|
autoplaySpeed: 2000,
|
||||||
|
dots: false,
|
||||||
|
infinite: true,
|
||||||
|
speed: 500,
|
||||||
|
slidesToShow: 5
|
||||||
|
});
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${bannerSetType == "active"}'>
|
||||||
|
var $bannerSet = $('.bannerSetPreview').slick({
|
||||||
|
vertical : bannerSetSkin,
|
||||||
|
pauseOnHover : false,
|
||||||
|
draggable: false,
|
||||||
|
arrows : true,
|
||||||
|
prevArrow : "<a href=\"#\" title=\"Previous\" class=\"slick-prev\"><img src=\"/img/manager/banner/btn_pre.png\" alt=\"Previous\"/></a>",
|
||||||
|
nextArrow : "<a href=\"#\" title=\"Next\" class=\"slick-next\"><img src=\"/img/manager/banner/btn_next.png\" alt=\"Next\"/></a><a href=\"#\" title=\"Play\" class=\"slick-play\"><img src=\"/img/manager/banner/btn_play.png\" alt=\"Play\"/></a><a href=\"#\" title=\"Stop\" class=\"slick-stop\"><img src=\"/img/manager/banner/btn_stop.png\" alt=\"Stop\"/></a>",
|
||||||
|
lazyLoad: 'ondemand',
|
||||||
|
autoplay: true,
|
||||||
|
autoplaySpeed: 2000,
|
||||||
|
dots: false,
|
||||||
|
infinite: true,
|
||||||
|
speed: 500,
|
||||||
|
slidesToShow: 5,
|
||||||
|
responsive: [{
|
||||||
|
breakpoint: 1024,
|
||||||
|
settings: {
|
||||||
|
vertical : bannerSetSkin,
|
||||||
|
pauseOnHover : false,
|
||||||
|
draggable: false,
|
||||||
|
arrows : true,
|
||||||
|
prevArrow : "<a href=\"#\" title=\"Previous\" class=\"slick-prev\"><img src=\"/img/manager/banner/btn_pre.png\" alt=\"Previous\"/></a>",
|
||||||
|
nextArrow : "<a href=\"#\" title=\"Next\" class=\"slick-next\"><img src=\"/img/manager/banner/btn_next.png\" alt=\"Next\"/></a><a href=\"#\" title=\"Play\" class=\"slick-play\"><img src=\"/img/manager/banner/btn_play.png\" alt=\"Play\"/></a><a href=\"#\" title=\"Stop\" class=\"slick-stop\"><img src=\"/img/manager/banner/btn_stop.png\" alt=\"Stop\"/></a>",
|
||||||
|
lazyLoad: 'ondemand',
|
||||||
|
autoplay: true,
|
||||||
|
autoplaySpeed: 2000,
|
||||||
|
slidesToShow: 3,
|
||||||
|
dots: false,
|
||||||
|
infinite: true
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
breakpoint: 600,
|
||||||
|
settings: {
|
||||||
|
vertical : bannerSetSkin,
|
||||||
|
pauseOnHover : false,
|
||||||
|
draggable: false,
|
||||||
|
arrows : true,
|
||||||
|
prevArrow : "<a href=\"#\" title=\"Previous\" class=\"slick-prev\"><img src=\"/img/manager/banner/btn_pre.png\" alt=\"Previous\"/></a>",
|
||||||
|
nextArrow : "<a href=\"#\" title=\"Next\" class=\"slick-next\"><img src=\"/img/manager/banner/btn_next.png\" alt=\"Next\"/></a><a href=\"#\" title=\"Play\" class=\"slick-play\"><img src=\"/img/manager/banner/btn_play.png\" alt=\"Play\"/></a><a href=\"#\" title=\"Stop\" class=\"slick-stop\"><img src=\"/img/manager/banner/btn_stop.png\" alt=\"Stop\"/></a>",
|
||||||
|
lazyLoad: 'ondemand',
|
||||||
|
autoplay: true,
|
||||||
|
autoplaySpeed: 2000,
|
||||||
|
slidesToShow: 2,
|
||||||
|
dots: false,
|
||||||
|
infinite: true
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
breakpoint: 480,
|
||||||
|
settings: {
|
||||||
|
vertical : bannerSetSkin,
|
||||||
|
pauseOnHover : false,
|
||||||
|
draggable: false,
|
||||||
|
arrows : true,
|
||||||
|
prevArrow : "<a href=\"#\" title=\"Previous\" class=\"slick-prev\"><img src=\"/img/manager/banner/btn_pre.png\" alt=\"Previous\"/></a>",
|
||||||
|
nextArrow : "<a href=\"#\" title=\"Next\" class=\"slick-next\"><img src=\"/img/manager/banner/btn_next.png\" alt=\"Next\"/></a><a href=\"#\" title=\"Play\" class=\"slick-play\"><img src=\"/img/manager/banner/btn_play.png\" alt=\"Play\"/></a><a href=\"#\" title=\"Stop\" class=\"slick-stop\"><img src=\"/img/manager/banner/btn_stop.png\" alt=\"Stop\"/></a>",
|
||||||
|
lazyLoad: 'ondemand',
|
||||||
|
autoplay: true,
|
||||||
|
autoplaySpeed: 2000,
|
||||||
|
slidesToShow: 1,
|
||||||
|
dots: false,
|
||||||
|
infinite: true
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
});
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
$('.bannerSetPreview .slick-play').hide();
|
||||||
|
|
||||||
|
$('.bannerSetPreview .slick-play').on("click", function(){
|
||||||
|
$bannerSet.slick('slickPlay');
|
||||||
|
$(".bannerSetPreview .slick-play").hide();
|
||||||
|
$(".bannerSetPreview .slick-stop").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.bannerSetPreview .slick-stop').on("click", function(){
|
||||||
|
$bannerSet.slick('slickPause');
|
||||||
|
$(".bannerSetPreview .slick-stop").hide();
|
||||||
|
$(".bannerSetPreview .slick-play").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.bannerSetPreview .slick-prev, .slick-next').click(function(){
|
||||||
|
$(".bannerSetPreview .slick-stop").show();
|
||||||
|
$(".bannerSetPreview .slick-play").hide();
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
257
src/main/webapp/WEB-INF/jsp/manager/banner/bannerSetList.jsp
Normal file
257
src/main/webapp/WEB-INF/jsp/manager/banner/bannerSetList.jsp
Normal file
@ -0,0 +1,257 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.banner.bannerSetList.title"/></title>
|
||||||
|
<script src="/js/lib/base64.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx != "0" && menuCode == "N") || menuCode == "banner"}'>
|
||||||
|
<div class="seed-popup-wrap">
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.banner.nav.bannerSetList"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sch-content-wrap clear">
|
||||||
|
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<c:url var="actionUrl" value="/gtm/${siteIdx}/bannerSetList.do" />
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:url var="actionUrl" value="/menu/${siteIdx}/bannerSetList.do" />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
<form:form name="frmSearch" id="frmSearch" action="${actionUrl}" method="post">
|
||||||
|
<input type="hidden" name="page" value="1" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="siteMenuIdx" value="<c:out escapeXml='true' value='${siteMenuIdx}' />"/>
|
||||||
|
<input type="hidden" name="menuCode" value="<c:out escapeXml='true' value='${menuCode}' />"/>
|
||||||
|
<fieldset>
|
||||||
|
<legend>검색 폼</legend>
|
||||||
|
<select name="column" id="column" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
<option value="A" <c:if test="${column == 'A'}">selected="selected"</c:if>><s:message code="common.select.option.value.all"/></option>
|
||||||
|
<option value="bannerSetName" <c:if test="${column == 'bannerSetName'}">selected="selected"</c:if>><s:message code="manager.banner.bannerSetList.bannerSetName"/></option>
|
||||||
|
<option value="tMember.memberName" <c:if test="${column == 'tMember.memberName'}">selected="selected"</c:if>><s:message code="common.memberName"/></option>
|
||||||
|
</select>
|
||||||
|
<input type="search" name="search" id="search" value="<c:out escapeXml='true' value='${search}' />" title="<s:message code="common.search.value"/>" class="sch-text">
|
||||||
|
<button type="submit" class="btn-page-sch"><s:message code="common.button.search"/></button>
|
||||||
|
</fieldset>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form:form name="frm" id="frm" method="post" action="/gtm/proc/${siteIdx}/bannerSetStatusProc.do">
|
||||||
|
<input type="hidden" name="page" value="<c:out escapeXml='true' value='${page}' />" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="column" value="<c:out escapeXml='true' value='${column}' />" />
|
||||||
|
<input type="hidden" name="search" value="<c:out escapeXml='true' value='${search}' />" />
|
||||||
|
|
||||||
|
<div class="more-btn-box">
|
||||||
|
<button type="button" id="moreTableItem" class="more-table-item">칼럼 더보기</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-wrap">
|
||||||
|
<div class="table-layout br-none">
|
||||||
|
<table>
|
||||||
|
<caption><s:message code="manager.banner.bannerSetList.table.caption"/></caption>
|
||||||
|
<colgroup>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><col class="checkbox_small" /></c:if>
|
||||||
|
<col class="title">
|
||||||
|
<col>
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><th scope="col"><input type="checkbox" class="checkbox check-all" name="allcheck" id="allcheck" title="<s:message code="common.message.allCheck"/>" /><label for="allcheck"></label></th></c:if>
|
||||||
|
<th scope="col"><s:message code="manager.banner.bannerSetList.bannerSetName"/><span> <a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col"><s:message code="manager.banner.bannerSetList.bannerDataCnt"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="common.memberName"/><span> <a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=tMember.memberName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=tMember.memberName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.regDate"/><span> <a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetRegDate&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetRegDate&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.status"/><span> <a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetStatus&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetStatus&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty bannerSetList}">
|
||||||
|
<c:forEach items="${bannerSetList}" var="bannerSetList" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><td><input type="checkbox" class="checkbox check-base" name="idxs" id="banner_<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />" value="<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />" /><label for="banner_<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />"></label> <%-- <c:out escapeXml='true' value='${bannerSetListCnt - (page-1)*row - status.index}' /> --%></td></c:if>
|
||||||
|
<td class="al">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetEdit/<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />"><span><c:out escapeXml='true' value='${bannerSetList._bannerSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${menuCode == "banner"}'>
|
||||||
|
<a class="hover-link codeClick" href="/<c:out escapeXml='true' value='${siteIdx}' />/<c:out escapeXml='true' value='${menuCode}' />/<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />/mini.do"><span><c:out escapeXml='true' value='${bannerSetList._bannerSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />/bannerDataList.do"><span><c:out escapeXml='true' value='${bannerSetList._bannerDataIdxCnt}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out escapeXml='true' value='${bannerSetList._bannerDataIdxCnt}' />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="item-tablet-hidden"><c:out escapeXml='true' value='${bannerSetList._memberName}' />(<c:out escapeXml='true' value='${bannerSetList._memberId}' />)</td>
|
||||||
|
<td class="item-mobile-hidden"><c:out escapeXml='true' value='${fn:substring(bannerSetList._bannerSetRegDate, 0, 10)}' /></td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${bannerSetList._bannerSetStatus == 'U'}">
|
||||||
|
<td class="item-mobile-hidden skin-default"><s:message code="common.use"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${bannerSetList._bannerSetStatus == 'S'}">
|
||||||
|
<td class="state-stop item-mobile-hidden"><s:message code="common.stop"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${bannerSetList._bannerSetStatus == 'D'}">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<td class="state-delete item-mobile-hidden">
|
||||||
|
<a class="dataDel" href="/gtm/proc/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetDelProc/<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><s:message code="common.button.del"/></a>
|
||||||
|
</td>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<td><s:message code="common.button.del"/></td>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td class="no-data-colspan"><s:message code="common.message.no.data"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'>
|
||||||
|
<div class="change-state-area">
|
||||||
|
<label for="selStatus"><s:message code="common.message.choice"/></label>
|
||||||
|
<select name="selStatus" id="selStatus" title="<s:message code="common.select.option.value"/>" class="change-list">
|
||||||
|
<option value=""><s:message code="common.select.option.value"/></option>
|
||||||
|
<option value="U"><s:message code="common.select.option.value.use"/></option>
|
||||||
|
<option value="S"><s:message code="common.select.option.value.stop"/></option>
|
||||||
|
<option value="D"><s:message code="common.select.option.value.delete"/></option>
|
||||||
|
</select>
|
||||||
|
<button type="submit" class="btn-change-state"><s:message code="common.button.status"/></button>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
<div class="pagination-container">
|
||||||
|
<div class="pagination-inner clear">
|
||||||
|
<div class="pagination-control prev clear">
|
||||||
|
<a class="first-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=1&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.first"/>" ><s:message code="common.page.first"/></a>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block > 1}">
|
||||||
|
<a class="prev-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${fPage-1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="prev-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${fPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</div>
|
||||||
|
<ul class="pagination clear">
|
||||||
|
<c:forEach begin="0" end="${lPage-fPage}" var="index" >
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${index+fPage==page}">
|
||||||
|
<li><a class="on" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.now"/>" ><c:out escapeXml='true' value='${page}' /></a></li>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<li><a href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${index+fPage}' />&row=${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<c:out escapeXml='true' value='${index+fPage}' /> <s:message code="common.page.page"/>" ><c:out escapeXml='true' value='${index+fPage}' /></a></li>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</ul>
|
||||||
|
<div class="pagination-control next clear">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block < blocks}">
|
||||||
|
<a class="next-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${lPage+1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="next-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${lPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<a class="last-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${pages}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.last"/>" ><s:message code="common.page.last"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'>
|
||||||
|
<div class="btn-area">
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetForm.do" class="btn-normal violet"><s:message code="common.button.create"/></a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$(".dataDel").click(function(){
|
||||||
|
if(!confirm("<s:message code='common.message.banner.set.confirm.del'/>")){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".codeClick").click(function(){
|
||||||
|
var url = $(this).attr("href");
|
||||||
|
location.replace("/common/getCode/<c:out escapeXml='true' value='${siteIdx}' />.do?getUrl="+Base64.encode(url)+"&codeType=func&pageType=manager");
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
|
||||||
|
if(!$('input:checkbox[name="idxs"]').is(":checked")){
|
||||||
|
alert("<s:message code="common.message.no.check"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($("#selStatus option:selected").val() == ""){
|
||||||
|
alert("<s:message code="common.message.no.select"/>");
|
||||||
|
$("#selStatus").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx != "0" && menuCode == "N") || menuCode == "banner"}'>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
79
src/main/webapp/WEB-INF/jsp/manager/skin/siteAlertSkin.jsp
Normal file
79
src/main/webapp/WEB-INF/jsp/manager/skin/siteAlertSkin.jsp
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.member.title"/></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.alert"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.alert.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteAlertSkin.do?alertType=message" <c:if test='${alertType == "message"}'>class="on" </c:if>><s:message code="manager.skin.tab.alert.message"/></a>
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteAlertSkin.do?alertType=error" <c:if test='${alertType == "error"}'>class="on" </c:if>><s:message code="manager.skin.tab.alert.error"/></a>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="iframe" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=alert&pageName=<c:out escapeXml='true' value='${alertType}' />" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="iframe" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=alert&pageName=alert" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
80
src/main/webapp/WEB-INF/jsp/manager/skin/siteChargeSkin.jsp
Normal file
80
src/main/webapp/WEB-INF/jsp/manager/skin/siteChargeSkin.jsp
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.charge.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.charge"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.charge.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=charge&pageName=charge" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=charge&pageName=charge" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,82 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.fileupload.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.fileupload"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.fileupload.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=fileupload&pageName=fileupload" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=fileupload&pageName=fileupload" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
87
src/main/webapp/WEB-INF/jsp/manager/skin/siteLoginSkin.jsp
Normal file
87
src/main/webapp/WEB-INF/jsp/manager/skin/siteLoginSkin.jsp
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.login.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.login"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.login.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteLoginSkin.do?loginType=login" <c:if test='${loginType == "login"}'>class="on" </c:if>><s:message code="manager.skin.tab.login.login"/></a>
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteLoginSkin.do?loginType=logout" <c:if test='${loginType == "logout"}'>class="on" </c:if>><s:message code="manager.skin.tab.login.logout"/></a>
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteLoginSkin.do?loginType=loginAuth" <c:if test='${loginType == "loginAuth"}'>class="on" </c:if>><s:message code="manager.skin.tab.login.auth"/></a>
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteLoginSkin.do?loginType=loginPw" <c:if test='${loginType == "loginPw"}'>class="on" </c:if>><s:message code="manager.skin.tab.login.pw"/></a>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=login&pageName=<c:out escapeXml='true' value='${loginType}' />" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=login&pageName=login" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
99
src/main/webapp/WEB-INF/jsp/manager/skin/siteMemberSkin.jsp
Normal file
99
src/main/webapp/WEB-INF/jsp/manager/skin/siteMemberSkin.jsp
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.member.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.member"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.member.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu-wrap">
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a <c:if test='${memberType == "memberFormPwDel"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberFormPwDel"><s:message code="manager.skin.tab.member.memberDel"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberPwDelResult"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberPwDelResult"><s:message code="manager.skin.tab.member.memberDelResult"/></a>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a <c:if test='${memberType == "memberIdFind"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberIdFind"><s:message code="manager.skin.tab.member.memberIdFind"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberPwFind"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberPwFind"><s:message code="manager.skin.tab.member.memberPwFind"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberIdResult"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberIdResult"><s:message code="manager.skin.tab.member.memberIdResult"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberPwResult"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberPwResult"><s:message code="manager.skin.tab.member.memberPwResult"/></a>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a <c:if test='${memberType == "memberForm"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberForm"><s:message code="manager.skin.tab.member.memberForm"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberEdit"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberEdit"><s:message code="manager.skin.tab.member.memberEdit"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberChk"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberChk"><s:message code="manager.skin.tab.member.memberChk"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberFormPw"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberFormPw"><s:message code="manager.skin.tab.member.memberPwChk"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=member&pageName=${memberType}" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=member&pageName=member" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.navigation.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.navigation"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.navigation.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=navigation&pageName=navigation" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=navigation&pageName=navigation" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,81 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.satisfaction.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.satisfaction"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.satisfaction.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=satisfaction&pageName=satisfaction" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=satisfaction&pageName=satisfaction" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
273
src/main/webapp/WEB-INF/jsp/manager/skin/siteSkinCss.jsp
Normal file
273
src/main/webapp/WEB-INF/jsp/manager/skin/siteSkinCss.jsp
Normal file
@ -0,0 +1,273 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.siteSkinCss.title"/></title>
|
||||||
|
<link rel="stylesheet" href="/codemirror/lib/codemirror.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/addon/dialog/dialog.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/addon/hint/show-hint.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/addon/display/fullscreen.css">
|
||||||
|
<link rel="stylesheet" href="//fonts.googleapis.com/earlyaccess/notosanskr.css">
|
||||||
|
<style>
|
||||||
|
<!--
|
||||||
|
body { margin:0; padding:0; }
|
||||||
|
textarea { border:1px solid #ddd; border-radius:5px; vertical-align:0;font-family:"돋움", "dotum"; font-size:12px;}
|
||||||
|
.CodeMirror {
|
||||||
|
height : 466px;
|
||||||
|
}
|
||||||
|
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||||
|
.cm-tab {
|
||||||
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
|
||||||
|
background-position: right;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<!-- theme css -->
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/3024-day.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/3024-night.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/ambiance.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/base16-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/base16-light.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/blackboard.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/cobalt.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/eclipse.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/elegant.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/erlang-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/lesser-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/mbo.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/midnight.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/monokai.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/neat.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/night.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/paraiso-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/paraiso-light.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/rubyblue.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/solarized.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/the-matrix.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/tomorrow-night-eighties.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/twilight.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/vibrant-ink.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/xq-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/xq-light.css">
|
||||||
|
<!-- theme css -->
|
||||||
|
|
||||||
|
<script src="/codemirror/lib/codemirror.js"></script>
|
||||||
|
<script src="/codemirror/mode/xml/xml.js"></script>
|
||||||
|
<script src="/codemirror/addon/dialog/dialog.js"></script>
|
||||||
|
<script src="/codemirror/addon/search/searchcursor.js"></script>
|
||||||
|
<script src="/codemirror/addon/search/search.js"></script>
|
||||||
|
<script src="/codemirror/addon/fold/xml-fold.js"></script>
|
||||||
|
<script src="/codemirror/addon/edit/matchtags.js"></script>
|
||||||
|
<script src="/codemirror/addon/edit/closetag.js"></script>
|
||||||
|
<script src="/codemirror/addon/hint/show-hint.js"></script>
|
||||||
|
<script src="/codemirror/addon/hint/xml-hint.js"></script>
|
||||||
|
<script src="/codemirror/addon/hint/html-hint.js"></script>
|
||||||
|
<script src="/codemirror/mode/javascript/javascript.js"></script>
|
||||||
|
<script src="/codemirror/mode/css/css.js"></script>
|
||||||
|
<script src="/codemirror/mode/htmlmixed/htmlmixed.js"></script>
|
||||||
|
<script src="/codemirror/addon/display/fullscreen.js"></script>
|
||||||
|
<script src="/codemirror/mode/clike/clike.js"></script>
|
||||||
|
<script src="/codemirror/keymap/extra.js"></script>
|
||||||
|
<script src="/codemirror/addon/selection/active-line.js"></script>
|
||||||
|
<script src="/codemirror/addon/edit/matchbrackets.js"></script>
|
||||||
|
<script src="/codemirror/addon/zen/zen_codemirror.min.js"></script>
|
||||||
|
<script src="/js/cookie.js"></script>
|
||||||
|
<style>
|
||||||
|
html{overflow:hidden;}
|
||||||
|
body{background:#fff;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<form:form name="frm" id="frm" method="post" action="/gtm/proc/${siteIdx}/siteSkinCssModProc.do">
|
||||||
|
<input type="hidden" name="pageType" id="pageType" value="<c:out escapeXml='true' value='${pageType}' />" />
|
||||||
|
<input type="hidden" name="pageName" id="pageName" value="<c:out escapeXml='true' value='${pageName}' />" />
|
||||||
|
<textarea name="siteSkinCss" id="siteSkinCss" style="display:none; "><c:out escapeXml='true' value='${siteSkinCss}' /></textarea>
|
||||||
|
<textarea name="codeTextArea" id="codeTextArea" style="height:500px; width:99%;"><c:out escapeXml='true' value='${siteSkinCss}' /></textarea>
|
||||||
|
|
||||||
|
<div class="layout-footer">
|
||||||
|
<div class="skin-list-box">
|
||||||
|
<label for="layout-skin-list" class="hidden">레이아웃 스킨 선택</label>
|
||||||
|
<select onchange="selectTheme()" id="select" class="layout-skin-list">
|
||||||
|
<option selected>default</option>
|
||||||
|
<option>3024-day</option>
|
||||||
|
<option>3024-night</option>
|
||||||
|
<option>ambiance</option>
|
||||||
|
<option>base16-dark</option>
|
||||||
|
<option>base16-light</option>
|
||||||
|
<option>blackboard</option>
|
||||||
|
<option>cobalt</option>
|
||||||
|
<option>eclipse</option>
|
||||||
|
<option>elegant</option>
|
||||||
|
<option>erlang-dark</option>
|
||||||
|
<option>lesser-dark</option>
|
||||||
|
<option>mbo</option>
|
||||||
|
<option>midnight</option>
|
||||||
|
<option>monokai</option>
|
||||||
|
<option>neat</option>
|
||||||
|
<option>night</option>
|
||||||
|
<option>paraiso-dark</option>
|
||||||
|
<option>paraiso-light</option>
|
||||||
|
<option>rubyblue</option>
|
||||||
|
<option>solarized dark</option>
|
||||||
|
<option>solarized light</option>
|
||||||
|
<option>the-matrix</option>
|
||||||
|
<option>tomorrow-night-eighties</option>
|
||||||
|
<option>twilight</option>
|
||||||
|
<option>vibrant-ink</option>
|
||||||
|
<option>xq-dark</option>
|
||||||
|
<option>xq-light</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
///////////////
|
||||||
|
Crtl-E
|
||||||
|
toMatchingTag
|
||||||
|
Ctrl-Space
|
||||||
|
autocomplete
|
||||||
|
///////////////
|
||||||
|
|
||||||
|
/////////////// Search /////////////////
|
||||||
|
Ctrl-F / Cmd-F
|
||||||
|
Start searching
|
||||||
|
Ctrl-G / Cmd-G
|
||||||
|
Find next
|
||||||
|
Shift-Ctrl-G / Shift-Cmd-G
|
||||||
|
Find previous
|
||||||
|
Shift-Ctrl-F / Cmd-Option-F
|
||||||
|
Replace
|
||||||
|
Shift-Ctrl-R / Shift-Cmd-Option-F
|
||||||
|
Replace all
|
||||||
|
/////////////// Search /////////////////
|
||||||
|
|
||||||
|
|
||||||
|
/////////////// Full Screen ////////////
|
||||||
|
F11
|
||||||
|
Full Size
|
||||||
|
ESC
|
||||||
|
Full Not Size
|
||||||
|
/////////////// Full Screen ////////////
|
||||||
|
|
||||||
|
|
||||||
|
/////////// TAB Zen Coding/////////
|
||||||
|
http://docs.emmet.io/abbreviations/syntax/
|
||||||
|
/////////// TAB Zen Coding /////////
|
||||||
|
|
||||||
|
-->
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
var F11key = false;
|
||||||
|
|
||||||
|
$(".CodeMirror").keyup(function(e) {
|
||||||
|
if(e.keyCode == "122" || e.keyCode == "27"){
|
||||||
|
if(F11key == false){
|
||||||
|
if(e.keyCode == "122"){ //F11
|
||||||
|
parent.jf_eventF11('${siteLayOutPosition}');
|
||||||
|
F11key = true;
|
||||||
|
}else if(e.keyCode == "27"){ //ESC
|
||||||
|
parent.jf_eventEsc('${siteLayOutPosition}');
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
parent.jf_eventEsc('${siteLayOutPosition}');
|
||||||
|
F11key = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
CodeMirror.commands.autocomplete = function(cm) {
|
||||||
|
CodeMirror.showHint(cm, CodeMirror.hint.javascript);
|
||||||
|
};
|
||||||
|
|
||||||
|
var editor = CodeMirror.fromTextArea(document.getElementById("codeTextArea"), {
|
||||||
|
value: "<html>\n " + document.documentElement.innerHTML + "\n</html>",
|
||||||
|
mode: "css",
|
||||||
|
lineNumbers: true,
|
||||||
|
lines : true,
|
||||||
|
matchTags: {bothTags: true},
|
||||||
|
extraKeys: {
|
||||||
|
"Ctrl-E": "toMatchingTag",
|
||||||
|
"Ctrl-Space": "autocomplete",
|
||||||
|
"F11": function(cm) {
|
||||||
|
if (cm.getOption("fullScreen")) {
|
||||||
|
cm.setOption("fullScreen", false);
|
||||||
|
window.parent.jf_eventEsc();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cm.setOption("fullScreen", !cm.getOption("fullScreen"));
|
||||||
|
window.parent.jf_eventF11();
|
||||||
|
},
|
||||||
|
"Esc": function(cm) {
|
||||||
|
if (cm.getOption("fullScreen")) {
|
||||||
|
cm.setOption("fullScreen", false);
|
||||||
|
window.parent.jf_eventEsc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
autoCloseTags: true,
|
||||||
|
styleActiveLine: true,
|
||||||
|
matchBrackets: true,
|
||||||
|
syntax: 'css', /* define Zen Coding syntax */
|
||||||
|
|
||||||
|
// send all key events to Zen Coding
|
||||||
|
onKeyEvent: function() {
|
||||||
|
return zen_editor.handleKeyEvent.apply(zen_editor, arguments);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if( typeof window.parent.isFullScreen === 'function' && window.parent.isFullScreen() ){
|
||||||
|
window.parent.jf_eventF11('reload');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var input = document.getElementById("select");
|
||||||
|
|
||||||
|
function selectTheme() {
|
||||||
|
var theme = input.options[input.selectedIndex].innerHTML;
|
||||||
|
editor.setOption("theme", theme);
|
||||||
|
jf_setCookie("selectTheme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
var choice = jf_getCookie("selectTheme");
|
||||||
|
|
||||||
|
if (choice != "") {
|
||||||
|
input.value = choice;
|
||||||
|
editor.setOption("theme", choice);
|
||||||
|
$("#select").val(choice).attr("selected", "selected");
|
||||||
|
}
|
||||||
|
|
||||||
|
function jf_submit(){
|
||||||
|
$("#siteSkinCss").val(editor.getValue());
|
||||||
|
$("#frm").submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function jf_codeSubmit(){
|
||||||
|
$("#siteSkinCss").val(editor.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
function jf_codeSetSubmit(){
|
||||||
|
editor.setValue($("#siteSkinCss").val());
|
||||||
|
}
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
274
src/main/webapp/WEB-INF/jsp/manager/skin/siteSkinHtml.jsp
Normal file
274
src/main/webapp/WEB-INF/jsp/manager/skin/siteSkinHtml.jsp
Normal file
@ -0,0 +1,274 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.siteSkinHtml.title"/></title>
|
||||||
|
<link rel="stylesheet" href="/codemirror/lib/codemirror.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/addon/dialog/dialog.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/addon/hint/show-hint.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/addon/display/fullscreen.css">
|
||||||
|
<link rel="stylesheet" href="//fonts.googleapis.com/earlyaccess/notosanskr.css">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
<!--
|
||||||
|
body { margin:0; padding:0; }
|
||||||
|
textarea { border:1px solid #ddd; border-radius:5px; vertical-align:0;font-family:"돋움", "dotum"; font-size:12px;}
|
||||||
|
.CodeMirror {
|
||||||
|
height : 466px;
|
||||||
|
}
|
||||||
|
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||||
|
.cm-tab {
|
||||||
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
|
||||||
|
background-position: right;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<!-- theme css -->
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/3024-day.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/3024-night.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/ambiance.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/base16-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/base16-light.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/blackboard.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/cobalt.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/eclipse.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/elegant.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/erlang-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/lesser-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/mbo.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/midnight.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/monokai.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/neat.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/night.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/paraiso-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/paraiso-light.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/rubyblue.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/solarized.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/the-matrix.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/tomorrow-night-eighties.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/twilight.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/vibrant-ink.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/xq-dark.css">
|
||||||
|
<link rel="stylesheet" href="/codemirror/theme/xq-light.css">
|
||||||
|
<!-- theme css -->
|
||||||
|
|
||||||
|
<script src="/codemirror/lib/codemirror.js"></script>
|
||||||
|
<script src="/codemirror/mode/xml/xml.js"></script>
|
||||||
|
<script src="/codemirror/addon/dialog/dialog.js"></script>
|
||||||
|
<script src="/codemirror/addon/search/searchcursor.js"></script>
|
||||||
|
<script src="/codemirror/addon/search/search.js"></script>
|
||||||
|
<script src="/codemirror/addon/fold/xml-fold.js"></script>
|
||||||
|
<script src="/codemirror/addon/edit/matchtags.js"></script>
|
||||||
|
<script src="/codemirror/addon/edit/closetag.js"></script>
|
||||||
|
<script src="/codemirror/addon/hint/show-hint.js"></script>
|
||||||
|
<script src="/codemirror/addon/hint/xml-hint.js"></script>
|
||||||
|
<script src="/codemirror/addon/hint/html-hint.js"></script>
|
||||||
|
<script src="/codemirror/mode/javascript/javascript.js"></script>
|
||||||
|
<script src="/codemirror/mode/css/css.js"></script>
|
||||||
|
<script src="/codemirror/mode/htmlmixed/htmlmixed.js"></script>
|
||||||
|
<script src="/codemirror/addon/display/fullscreen.js"></script>
|
||||||
|
<script src="/codemirror/mode/clike/clike.js"></script>
|
||||||
|
<script src="/codemirror/keymap/extra.js"></script>
|
||||||
|
<script src="/codemirror/addon/selection/active-line.js"></script>
|
||||||
|
<script src="/codemirror/addon/edit/matchbrackets.js"></script>
|
||||||
|
<script src="/codemirror/addon/zen/zen_codemirror.min.js"></script>
|
||||||
|
<script src="/js/cookie.js"></script>
|
||||||
|
<style>
|
||||||
|
html{overflow:hidden;}
|
||||||
|
body{background:#fff;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<form:form name="frm" id="frm" method="post" action="/gtm/proc/${siteIdx}/siteSkinHtmlModProc.do">
|
||||||
|
<input type="hidden" name="pageType" id="pageType" value="<c:out escapeXml='true' value='${pageType}' />" />
|
||||||
|
<input type="hidden" name="pageName" id="pageName" value="<c:out escapeXml='true' value='${pageName}' />" />
|
||||||
|
<textarea name="siteSkinHtml" id="siteSkinHtml" style="display:none; "><c:out escapeXml='true' value='${siteSkinHtml}' /></textarea>
|
||||||
|
<textarea name="codeTextArea" id="codeTextArea" style="height:500px; width:99%;"><c:out escapeXml='true' value='${siteSkinHtml}' /></textarea>
|
||||||
|
|
||||||
|
<div class="layout-footer">
|
||||||
|
<div class="skin-list-box">
|
||||||
|
<label for="layout-skin-list" class="hidden">레이아웃 스킨 선택</label>
|
||||||
|
<select onchange="selectTheme()" id="select" class="layout-skin-list">
|
||||||
|
<option selected>default</option>
|
||||||
|
<option>3024-day</option>
|
||||||
|
<option>3024-night</option>
|
||||||
|
<option>ambiance</option>
|
||||||
|
<option>base16-dark</option>
|
||||||
|
<option>base16-light</option>
|
||||||
|
<option>blackboard</option>
|
||||||
|
<option>cobalt</option>
|
||||||
|
<option>eclipse</option>
|
||||||
|
<option>elegant</option>
|
||||||
|
<option>erlang-dark</option>
|
||||||
|
<option>lesser-dark</option>
|
||||||
|
<option>mbo</option>
|
||||||
|
<option>midnight</option>
|
||||||
|
<option>monokai</option>
|
||||||
|
<option>neat</option>
|
||||||
|
<option>night</option>
|
||||||
|
<option>paraiso-dark</option>
|
||||||
|
<option>paraiso-light</option>
|
||||||
|
<option>rubyblue</option>
|
||||||
|
<option>solarized dark</option>
|
||||||
|
<option>solarized light</option>
|
||||||
|
<option>the-matrix</option>
|
||||||
|
<option>tomorrow-night-eighties</option>
|
||||||
|
<option>twilight</option>
|
||||||
|
<option>vibrant-ink</option>
|
||||||
|
<option>xq-dark</option>
|
||||||
|
<option>xq-light</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
///////////////
|
||||||
|
Crtl-E
|
||||||
|
toMatchingTag
|
||||||
|
Ctrl-Space
|
||||||
|
autocomplete
|
||||||
|
///////////////
|
||||||
|
|
||||||
|
/////////////// Search /////////////////
|
||||||
|
Ctrl-F / Cmd-F
|
||||||
|
Start searching
|
||||||
|
Ctrl-G / Cmd-G
|
||||||
|
Find next
|
||||||
|
Shift-Ctrl-G / Shift-Cmd-G
|
||||||
|
Find previous
|
||||||
|
Shift-Ctrl-F / Cmd-Option-F
|
||||||
|
Replace
|
||||||
|
Shift-Ctrl-R / Shift-Cmd-Option-F
|
||||||
|
Replace all
|
||||||
|
/////////////// Search /////////////////
|
||||||
|
|
||||||
|
|
||||||
|
/////////////// Full Screen ////////////
|
||||||
|
F11
|
||||||
|
Full Size
|
||||||
|
ESC
|
||||||
|
Full Not Size
|
||||||
|
/////////////// Full Screen ////////////
|
||||||
|
|
||||||
|
|
||||||
|
/////////// TAB Zen Coding/////////
|
||||||
|
http://docs.emmet.io/abbreviations/syntax/
|
||||||
|
/////////// TAB Zen Coding /////////
|
||||||
|
|
||||||
|
-->
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
var F11key = false;
|
||||||
|
|
||||||
|
$(".CodeMirror").keyup(function(e) {
|
||||||
|
if(e.keyCode == "122" || e.keyCode == "27"){
|
||||||
|
if(F11key == false){
|
||||||
|
if(e.keyCode == "122"){ //F11
|
||||||
|
parent.jf_eventF11('${siteLayOutPosition}');
|
||||||
|
F11key = true;
|
||||||
|
}else if(e.keyCode == "27"){ //ESC
|
||||||
|
parent.jf_eventEsc('${siteLayOutPosition}');
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
parent.jf_eventEsc('${siteLayOutPosition}');
|
||||||
|
F11key = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
CodeMirror.commands.autocomplete = function(cm) {
|
||||||
|
CodeMirror.showHint(cm, CodeMirror.hint.javascript);
|
||||||
|
};
|
||||||
|
|
||||||
|
var editor = CodeMirror.fromTextArea(document.getElementById("codeTextArea"), {
|
||||||
|
value: "<html>\n " + document.documentElement.innerHTML + "\n</html>",
|
||||||
|
mode: "text/html",
|
||||||
|
lineNumbers: true,
|
||||||
|
lines : true,
|
||||||
|
matchTags: {bothTags: true},
|
||||||
|
extraKeys: {
|
||||||
|
"Ctrl-E": "toMatchingTag",
|
||||||
|
"Ctrl-Space": "autocomplete",
|
||||||
|
"F11": function(cm) {
|
||||||
|
if (cm.getOption("fullScreen")) {
|
||||||
|
cm.setOption("fullScreen", false);
|
||||||
|
window.parent.jf_eventEsc();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cm.setOption("fullScreen", !cm.getOption("fullScreen"));
|
||||||
|
window.parent.jf_eventF11();
|
||||||
|
},
|
||||||
|
"Esc": function(cm) {
|
||||||
|
if (cm.getOption("fullScreen")) {
|
||||||
|
cm.setOption("fullScreen", false);
|
||||||
|
window.parent.jf_eventEsc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
autoCloseTags: true,
|
||||||
|
styleActiveLine: true,
|
||||||
|
matchBrackets: true,
|
||||||
|
syntax: 'html', /* define Zen Coding syntax */
|
||||||
|
profile: 'xhtml', /* define Zen Coding output profile */
|
||||||
|
|
||||||
|
// send all key events to Zen Coding
|
||||||
|
onKeyEvent: function() {
|
||||||
|
return zen_editor.handleKeyEvent.apply(zen_editor, arguments);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if( typeof window.parent.isFullScreen === 'function' && window.parent.isFullScreen() ){
|
||||||
|
window.parent.jf_eventF11('reload');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var input = document.getElementById("select");
|
||||||
|
|
||||||
|
function selectTheme() {
|
||||||
|
var theme = input.options[input.selectedIndex].innerHTML;
|
||||||
|
editor.setOption("theme", theme);
|
||||||
|
jf_setCookie("selectTheme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
var choice = jf_getCookie("selectTheme");
|
||||||
|
|
||||||
|
if (choice != "") {
|
||||||
|
input.value = choice;
|
||||||
|
editor.setOption("theme", choice);
|
||||||
|
$("#select").val(choice).attr("selected", "selected");
|
||||||
|
}
|
||||||
|
|
||||||
|
function jf_submit(){
|
||||||
|
$("#siteSkinHtml").val(editor.getValue());
|
||||||
|
$("#frm").submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function jf_codeSubmit(){
|
||||||
|
$("#siteSkinHtml").val(editor.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
function jf_codeSetSubmit(){
|
||||||
|
editor.setValue($("#siteSkinHtml").val());
|
||||||
|
}
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@ -0,0 +1,76 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.smartmenu.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.smartmenu"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.smartmenu.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=smartmenu&pageName=smartmenu" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=smartmenu&pageName=smartmenu" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,104 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.statistics.statisticsList.title"/></title>
|
||||||
|
<script src="http://www.google.com/jsapi"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.tab.siteMenuStatisticsList"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p>메뉴명, 메뉴설정, 메뉴타입, 담당자, 메뉴순서를 변경 할 수 있는 페이지입니다.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="more-btn-box">
|
||||||
|
<button type="button" id="moreTableItem" class="more-table-item">칼럼 더보기</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="table-layout inner-br-none siteMenuList">
|
||||||
|
<table>
|
||||||
|
<caption><s:message code="manager.site.siteMenuList.table.caption"/></caption>
|
||||||
|
<colgroup>
|
||||||
|
<col class="title">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col"><s:message code="manager.site.siteMenuList.siteMenuName"/></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="manager.site.siteMenuList.siteMenuLink"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="manager.site.siteMenuList.siteMenuStatus"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="manager.site.siteMenuList.siteMenuIdx"/></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.regDate"/></th>
|
||||||
|
<th scope="col"><s:message code="manager.statistics.statisticsList.cnt"/></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="no-data-colspan"><c:out escapeXml='true' value='${siteName}' /></td>
|
||||||
|
</tr>
|
||||||
|
<c:forEach items="${siteMenuStatisticsList}" var="siteMenuStatisticsList" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td class="al">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuStatisticsList._siteMenuNameType == "T"}'>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' /></span>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<div>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><img src="/site/<c:out escapeXml='true' value='${siteIdx}' />/images/menu/topMenu_<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' />_off.gif" alt="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' />" width="150px" height="40px" /></span>
|
||||||
|
<br/>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><img src="/site/<c:out escapeXml='true' value='${siteIdx}' />/images/menu/topMenu_<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' />_on.gif" alt="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' />" width="150px" height="40px" /></span>
|
||||||
|
<c:if test='${siteMenuStatisticsList._siteMenuDepth > 1}'>
|
||||||
|
<br/>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><img src="/site/<c:out escapeXml='true' value='${siteIdx}' />/images/menu/subMenu_<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' />_off.gif" alt="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' />" width="150px" height="40px" /></span>
|
||||||
|
<br/>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><img src="/site/<c:out escapeXml='true' value='${siteIdx}' />/images/menu/subMenu_<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' />_on.gif" alt="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' />" width="150px" height="40px" /></span>
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="item-mobile-hidden"><a class="menu-barogagi" href="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuLinkUrl}' />" target="_blank"><span><img src="/img/icon-go.png" alt="메뉴 바로가기" class="go-btn">GO</span></a></td>
|
||||||
|
<td class="item-tablet-hidden">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${siteMenuStatisticsList._siteMenuStatus == 'U'}">
|
||||||
|
<p class="menu-visible on"><span>ON</span></p>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${siteMenuStatisticsList._siteMenuStatus == 'S'}">
|
||||||
|
<p class="menu-visible off"><span>OFF</span></p>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="item-tablet-hidden"><c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' /></td>
|
||||||
|
<td class="item-mobile-hidden"><c:out escapeXml='true' value='${fn:substring(siteMenuStatisticsList._siteMenuRegDate, 0, 10)}' /></td>
|
||||||
|
<td><a class="menu-barogagi hover-link" href="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuLinkUrl}' />" target="_blank"><span><c:out escapeXml='true' value='${siteMenuStatisticsList._accessCount}' /></span></a></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="btn-area">
|
||||||
|
<a class="btn-normal lightgray" href="/gtm/proc/<c:out escapeXml='true' value='${siteIdx}' />/siteMenuStatisticsExcelList.do"><s:message code="common.button.excel"/></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,190 @@
|
|||||||
|
<%@page import="java.util.HashMap"%>
|
||||||
|
<%@page import="java.util.ArrayList"%>
|
||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.statistics.statisticsList.title"/></title>
|
||||||
|
<script src="/js/lib/google-loader.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.tab.siteStatisticsList"/></h3>
|
||||||
|
<!-- <div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p>통계 그래프 확인</p>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
<div class="sch-content-wrap clear">
|
||||||
|
<form:form name="frmSearch" id="frmSearch" action="/gtm/${siteIdx}/siteStatisticsList.do" method="post">
|
||||||
|
<input type="hidden" name="page" value="1" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="siteMenuIdx" value="<c:out escapeXml='true' value='${siteMenuIdx}' />"/>
|
||||||
|
<input type="hidden" name="menuCode" value="<c:out escapeXml='true' value='${menuCode}' />"/>
|
||||||
|
<fieldset>
|
||||||
|
|
||||||
|
<legend>검색 폼</legend>
|
||||||
|
|
||||||
|
<select name="year" id="yearStr" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select name="month" id="monthStr" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
<option value="1" <c:if test="${monthStr == '1'}">selected="selected"</c:if>>1월</option>
|
||||||
|
<option value="2" <c:if test="${monthStr == '2'}">selected="selected"</c:if>>2월</option>
|
||||||
|
<option value="3" <c:if test="${monthStr == '3'}">selected="selected"</c:if>>3월</option>
|
||||||
|
<option value="4" <c:if test="${monthStr == '4'}">selected="selected"</c:if>>4월</option>
|
||||||
|
<option value="5" <c:if test="${monthStr == '5'}">selected="selected"</c:if>>5월</option>
|
||||||
|
<option value="6" <c:if test="${monthStr == '6'}">selected="selected"</c:if>>6월</option>
|
||||||
|
<option value="7" <c:if test="${monthStr == '7'}">selected="selected"</c:if>>7월</option>
|
||||||
|
<option value="8" <c:if test="${monthStr == '8'}">selected="selected"</c:if>>8월</option>
|
||||||
|
<option value="9" <c:if test="${monthStr == '9'}">selected="selected"</c:if>>9월</option>
|
||||||
|
<option value="10" <c:if test="${monthStr == '10'}">selected="selected"</c:if>>10월</option>
|
||||||
|
<option value="11" <c:if test="${monthStr == '11'}">selected="selected"</c:if>>11월</option>
|
||||||
|
<option value="12" <c:if test="${monthStr == '12'}">selected="selected"</c:if>>12월</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-page-sch"><s:message code="common.button.search"/></button>
|
||||||
|
</fieldset>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="month_chart" class="chart"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="btn-area">
|
||||||
|
<a class="btn-normal lightgray" href="/gtm/proc/<c:out escapeXml='true' value='${siteIdx}' />/siteStatisticsExcelList.do?year=${yearStr}&month=<c:out escapeXml='true' value='${monthStr}' />"><s:message code="common.button.excel"/></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
var date = new Date();
|
||||||
|
|
||||||
|
for(var year=date.getFullYear(); (date.getFullYear()-10) <= (year+1); year--){
|
||||||
|
if("${yearStr}" == year){
|
||||||
|
$("#yearStr")[0].options.add(new Option(year, year, true, true));
|
||||||
|
}else{
|
||||||
|
$("#yearStr")[0].options.add(new Option(year, year));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function requireScript( array ){
|
||||||
|
// sync 메서드는 jquery.seed.js에 들어있습니다..
|
||||||
|
return $.sync( (function(){
|
||||||
|
var retrunArray = [];
|
||||||
|
for( var i = 0; i < array.length; i++ ){
|
||||||
|
retrunArray.push([ $.getScript, array[i] ]);
|
||||||
|
}
|
||||||
|
return retrunArray;
|
||||||
|
}()) );
|
||||||
|
}
|
||||||
|
|
||||||
|
function getRandomColor() {
|
||||||
|
var letters = '0123456789ABCDEF'.split('');
|
||||||
|
var color = '#';
|
||||||
|
for (var i = 0; i < 6; i++ ) {
|
||||||
|
color += letters[Math.floor(Math.random() * 16)];
|
||||||
|
}
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
requireScript(['/js/lib/raphael.min.js',
|
||||||
|
'/js/lib/morris.min.js']).done(function( str ){
|
||||||
|
$('.chart').children().add('.chart-list li').remove();
|
||||||
|
// 기본 색깔 순서입니다.
|
||||||
|
var colors = ['#838bd2', '#FDB45C', '#46BFBD', '#F7464A'];
|
||||||
|
if( colors.length <= ($('.site > li').length+1) )
|
||||||
|
{
|
||||||
|
var colorSize = ($('.site > li').length+1) - colors.length; // 사용 가능한 공간 + 1
|
||||||
|
while( colorSize-- )
|
||||||
|
colors.push( getRandomColor() );
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************************************
|
||||||
|
일별통계
|
||||||
|
************************************************************************************************/
|
||||||
|
;(function(){
|
||||||
|
|
||||||
|
var year = "<c:out escapeXml='true' value='${yearStr}' />";
|
||||||
|
var month = parseInt("<c:out escapeXml='true' value='${monthStr}' />");
|
||||||
|
var LineData = [];
|
||||||
|
var days = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
|
||||||
|
if ((year % 4 === 0) && (year % 100 !== 0) || (year % 400 === 0)) {
|
||||||
|
days[1] = 29; //윤년 체크
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var d=1; d<=days[month-1]; d++){
|
||||||
|
|
||||||
|
var cnt = 0;
|
||||||
|
|
||||||
|
<c:forEach items="${siteStatisticsList}" var="siteStatisticsList" varStatus="status">
|
||||||
|
if(year == "${siteStatisticsList._accessYear}" &&
|
||||||
|
(month + '') == "${siteStatisticsList._accessMonth}" &&
|
||||||
|
d == "${siteStatisticsList._accessDay}"){
|
||||||
|
cnt += <c:out value='${siteStatisticsList._accessCount}' />;
|
||||||
|
}
|
||||||
|
</c:forEach>
|
||||||
|
|
||||||
|
LineData.push({ days: [year, month, d].join('-'), count: cnt});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var MorrisLine = Morris.Line({
|
||||||
|
element: 'month_chart',
|
||||||
|
data: LineData,
|
||||||
|
xkey: 'days',
|
||||||
|
ykeys: ['count'],
|
||||||
|
labels: ['<c:out escapeXml='true' value='${siteName}' />'],
|
||||||
|
dateFormat: function(x){
|
||||||
|
var date = new Date(x);
|
||||||
|
return date.getFullYear() + '년 ' + (date.getMonth()+1) + '월 ' + date.getDate() + '일';
|
||||||
|
},
|
||||||
|
lineWidth: 2,
|
||||||
|
resize: false,
|
||||||
|
grid: false,
|
||||||
|
//xLabelAngle: 45,
|
||||||
|
lineColors: colors
|
||||||
|
});
|
||||||
|
|
||||||
|
MorrisLine.displayHoverForRow(new Date().getDate() - 1);
|
||||||
|
|
||||||
|
// 레이블 생성
|
||||||
|
var chartDetailList = MorrisLine.el.parent().find('.chart-detail-list');
|
||||||
|
var labels = MorrisLine.options.labels;
|
||||||
|
|
||||||
|
chartDetailList.append(function(){
|
||||||
|
var fragment = $(document.createDocumentFragment());
|
||||||
|
for( var i = 0; i < labels.length; i++ ){
|
||||||
|
fragment.append(
|
||||||
|
$('<li></li>').append(
|
||||||
|
$('<h5></h5>')
|
||||||
|
.text( labels[i] )
|
||||||
|
.prepend( $('<i></i>').css({ backgroundColor: colors[i] }) )
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return fragment;
|
||||||
|
});
|
||||||
|
|
||||||
|
$(window).doneEvent('resize.MorrisLine', function() { MorrisLine.redraw() });
|
||||||
|
}());
|
||||||
|
/***********************************************************************************************
|
||||||
|
일별통계 끝
|
||||||
|
************************************************************************************************/
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
536
src/main/webapp/WEB-INF/jsp/manager/visual/visualSetForm.jsp
Normal file
536
src/main/webapp/WEB-INF/jsp/manager/visual/visualSetForm.jsp
Normal file
@ -0,0 +1,536 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.visual.visualSetForm.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.visual.nav.visualSetView"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form:form id="frm" name="frm" action="/gtm/proc/${siteIdx}/visualSetRegProc.do" method="post" enctype="multipart/form-data">
|
||||||
|
<input type="hidden" name="tSite.siteIdx" id="siteIdx" value="<c:out escapeXml='true' value='${siteIdx}' />" />
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend><s:message code="manager.visual.visualSetForm.table.caption"/></legend>
|
||||||
|
<div class="bbs-view-layout">
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetType"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<input type="radio" class="radio checked" name="visualSetType" id="visualSetTypeNormal" value="normal" checked /><label for="visualSetTypeNormal"><s:message code="manager.visual.visualSetForm.visualSetType.normal"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetType" id="visualSetTypeActive" value="active" /><label for="visualSetTypeActive"><s:message code="manager.visual.visualSetForm.visualSetType.active"/></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetName"/></p>
|
||||||
|
<div class="item-box"><input type="text" class="width40 essential" maxlength="100" name="visualSetName" id="visualSetName" title="<s:message code="manager.visual.visualSetForm.visualSetName"/>" value="" required /></div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetRelation"/></p>
|
||||||
|
<div class="item-box"><input type="checkbox" class="checkbox width-none" name="visualSetRelation" id="visualSetRelation" value="Y" /><label for="visualSetRelation"><s:message code="common.message.checkbox.check"/></label></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetTime"/></p>
|
||||||
|
<div class="item-box"><input type="text" class="width50px essential numOnly" maxlength="10" name="visualSetTime" id="visualSetTime" title="<s:message code="manager.visual.visualSetForm.visualSetTime"/>" value="4" style="width:50px;" required /></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetSize"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<div class="row"><s:message code="manager.visual.visualSetForm.visualSetWidth"/> <input type="text" class="width50px numOnly" name="visualSetWidth" id="visualSetWidth" title="<s:message code="manager.visual.visualSetForm.visualSetWidth"/>" value="" required /> px </div>
|
||||||
|
<div class="row"><s:message code="manager.visual.visualSetForm.visualSetHeight"/> <input type="text" class="width50px numOnly" name="visualSetHeight" id="visualSetHeight" title="<s:message code="manager.visual.visualSetForm.visualSetHeight"/>" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetBg"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<input type="checkbox" class="checkbox width-none" name="visualSetBg" id="visualSetBg" value="Y" /><label for="visualSetBg"><s:message code="common.message.checkbox.check"/></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetChoice"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<div style="margin-top:8px; margin-bottom:4px;">
|
||||||
|
<div class="row"><input type="radio" class="radio" name="visualSetChoiceTB" id="visualSetChoiceTop" value="top" /><label for="visualSetChoiceTop"><s:message code="manager.visual.visualSetForm.visualSetChoice.TB.top"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetChoiceTB" id="visualSetChoiceBottom" value="bottom" /><label for="visualSetChoiceBottom"><s:message code="manager.visual.visualSetForm.visualSetChoice.TB.bottom"/></label></div>
|
||||||
|
<div class="row"><s:message code="manager.visual.visualSetForm.visualSetChoice.TB.position"/> <input type="text" class="width50px essential numOnly" name="visualSetChoiceTBPosition" id="visualSetChoiceTBPosition" title="<s:message code="manager.visual.visualSetForm.visualSetChoice.TB.position"/>" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:12px; margin-bottom:10px;">
|
||||||
|
<div class="row"><input type="radio" class="radio" name="visualSetChoiceLR" id="visualSetChoiceLeft" value="left" /><label for="visualSetChoiceLeft"><s:message code="manager.visual.visualSetForm.visualSetChoice.LR.left"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetChoiceLR" id="visualSetChoiceRight" value="right" /><label for="visualSetChoiceRight"><s:message code="manager.visual.visualSetForm.visualSetChoice.LR.right"/></label><br /></div>
|
||||||
|
<div class="row"><s:message code="manager.visual.visualSetForm.visualSetChoice.LR.position"/> <input type="text" class="width50px essential numOnly" name="visualSetChoiceLRPosition" id="visualSetChoiceLRPosition" title="<s:message code="manager.visual.visualSetForm.visualSetChoice.LR.position"/>" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetChoiceImgOn" id="visualSetChoiceImgOn" value="" /><label for="visualSetChoiceImgOn"><s:message code="manager.visual.visualSetForm.visualSetChoice.img.on"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetChoice.img.on"/></span></div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetChoiceImgOver" id="visualSetChoiceImgOver" value="" /><label for="visualSetChoiceImgOver"><s:message code="manager.visual.visualSetForm.visualSetChoice.img.over"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetChoice.img.over"/></span></div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetChoiceImgOff" id="visualSetChoiceImgOff" value="" /><label for="visualSetChoiceImgOff"><s:message code="manager.visual.visualSetForm.visualSetChoice.img.off"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetChoice.img.off"/></span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetPS"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<div style="margin-top:8px; margin-bottom:10px;">
|
||||||
|
<div class="row"><input type="radio" class="radio" name="visualSetPSTB" id="visualSetPSTop" value="top" /><label for="visualSetPSTop"><s:message code="manager.visual.visualSetForm.visualSetPS.TB.top"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetPSTB" id="visualSetPSBottom" value="bottom" /><label for="visualSetPSBottom"><s:message code="manager.visual.visualSetForm.visualSetPS.TB.bottom"/></label><br /></div>
|
||||||
|
<div class="row"><label for="visualSetPSTBPosition"><s:message code="manager.visual.visualSetForm.visualSetPS.TB.position"/></label> : <input type="text" class="width50px essential numOnly" name="visualSetPSTBPosition" id="visualSetPSTBPosition" title="<s:message code="manager.visual.visualSetForm.visualSetPS.TB.position"/>" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:12px; margin-bottom:10px;">
|
||||||
|
<div class="row"><input type="radio" class="radio" name="visualSetPSLR" id="visualSetPSLeft" value="left" /><label for="visualSetPSLeft"><s:message code="manager.visual.visualSetForm.visualSetPS.LR.left"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetPSLR" id="visualSetPSRight" value="right" /><label for="visualSetPSRight"><s:message code="manager.visual.visualSetForm.visualSetPS.LR.right"/></label><br /></div>
|
||||||
|
<div class="row"><label for="visualSetPSLRPosition"><s:message code="manager.visual.visualSetForm.visualSetPS.LR.position"/></label> : <input type="text" class="width50px essential numOnly" name="visualSetPSLRPosition" id="visualSetPSLRPosition" title="<s:message code="manager.visual.visualSetForm.visualSetPS.LR.position"/>" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetPlayImgOn" id="visualSetPlayImgOn" value="" /><label for="visualSetPlayImgOn"><s:message code="manager.visual.visualSetForm.visualSetPS.play.img.on"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetPS.play.img.on"/></span></div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetPlayImgOff" id="visualSetPlayImgOff" value="" /><label for="visualSetPlayImgOff"><s:message code="manager.visual.visualSetForm.visualSetPS.play.img.off"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetPS.play.img.off"/></span></div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetStopImgOn" id="visualSetStopImgOn" value="" /><label for="visualSetStopImgOn"><s:message code="manager.visual.visualSetForm.visualSetPS.stop.img.on"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetPS.stop.img.on"/></span></div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetStopImgOff" id="visualSetStopImgOff" value="" /><label for="visualSetStopImgOff"><s:message code="manager.visual.visualSetForm.visualSetPS.stop.img.off"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetPS.stop.img.off"/></span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetPN"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<div style="margin-top:8px; margin-bottom:10px;">
|
||||||
|
<div class="row"><input type="radio" class="radio" name="visualSetPreTB" id="visualSetPreTop" value="top" /><label for="visualSetPreTop"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.top"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetPreTB" id="visualSetPreBottom" value="bottom" /><label for="visualSetPreBottom"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.bottom"/></label></div>
|
||||||
|
<div class="row"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.position"/> <input type="text" class="width50px essential numOnly" name="visualSetPreTBPosition" id="visualSetPreTBPosition" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:12px; margin-bottom:10px;">
|
||||||
|
<div class="row"><input type="radio" class="radio" name="visualSetPreLR" id="visualSetPreLeft" value="left" /><label for="visualSetPreLeft"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.left"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetPreLR" id="visualSetPreRight" value="right" /><label for="visualSetPreRight"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.right"/></label></div>
|
||||||
|
<div class="row"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.position"/> <input type="text" class="width50px essential numOnly" name="visualSetPreLRPosition" id="visualSetPreLRPosition" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetPreImgOn" id="visualSetPreImgOn" value="" /><label for="visualSetPreImgOn"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.img.on"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.img.on"/></span></div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetPreImgOff" id="visualSetPreImgOff" value="" /><label for="visualSetPreImgOff"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.img.off"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetPN.pre.img.off"/></span></div>
|
||||||
|
<div style="margin-top:8px; margin-bottom:10px;">
|
||||||
|
<div class="row"><input type="radio" class="radio" name="visualSetNextTB" id="visualSetNextTop" value="top" /><label for="visualSetNextTop"><s:message code="manager.visual.visualSetForm.visualSetPN.next.top"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetNextTB" id="visualSetNextBottom" value="bottom" /><label for="visualSetNextBottom"><s:message code="manager.visual.visualSetForm.visualSetPN.next.bottom"/></label></div>
|
||||||
|
<div class="row"><s:message code="manager.visual.visualSetForm.visualSetPN.next.position"/> <input type="text" class="width50px essential numOnly" name="visualSetNextTBPosition" id="visualSetNextTBPosition" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:12px; margin-bottom:10px;">
|
||||||
|
<div class="row"><input type="radio" class="radio" name="visualSetNextLR" id="visualSetNextLeft" value="left" /><label for="visualSetNextLeft"><s:message code="manager.visual.visualSetForm.visualSetPN.next.left"/></label>
|
||||||
|
<input type="radio" class="radio" name="visualSetNextLR" id="visualSetNextRight" value="right" /><label for="visualSetNextRight"><s:message code="manager.visual.visualSetForm.visualSetPN.next.right"/></label><br /></div>
|
||||||
|
<div class="row"><s:message code="manager.visual.visualSetForm.visualSetPN.next.position"/> <input type="text" class="width50px essential numOnly" name="visualSetNextLRPosition" id="visualSetNextLRPosition" value="" required /> px</div>
|
||||||
|
</div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetNextImgOn" id="visualSetNextImgOn" value="" /><label for="visualSetNextImgOn"><s:message code="manager.visual.visualSetForm.visualSetPN.next.img.on"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetPN.next.img.on"/></span></div>
|
||||||
|
<div class="row"><input type="file" name="file_visualSetNextImgOff" id="visualSetNextImgOff" value="" /><label for="visualSetNextImgOff"><s:message code="manager.visual.visualSetForm.visualSetPN.next.img.off"/></label><span class="file-info"><s:message code="manager.visual.visualSetForm.visualSetPN.next.img.off"/></span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSetSkin"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<input type="radio" class="radio checked" name="visualSetSkin" id="visualSetSkinA" value="A" checked /><label for="visualSetSkinA">A Type</label>
|
||||||
|
<input type="radio" class="radio" name="visualSetSkin" id="visualSetSkinB" value="B" /><label for="visualSetSkinB">B Type</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bbs-view-item">
|
||||||
|
<p class="item-title"><s:message code="manager.visual.visualSetForm.visualSet.preview"/></p>
|
||||||
|
<div class="item-box">
|
||||||
|
<iframe id="visualPreview" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualFormPreview.do?visualSetSkin=A" style="width:100%; height:320px; border:0;"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<c:if test='${memberGrant == "S" || memberAuth}'>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="submit" class="btn-normal violet"><s:message code="common.button.save"/></button>
|
||||||
|
<a class="btn-normal lightgray" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do"><s:message code="common.button.list"/></a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$("#visualSetName").focus();
|
||||||
|
|
||||||
|
$("#visualSetWidth").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
$("#visualPreview").contents().find("#visual_visual").css({width :value});
|
||||||
|
$("#visualPreview").contents().find("#slides_visual").css({width :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-container").css({width :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-control").css({width :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-slide").css({width :value});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetHeight").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
$("#visualPreview").contents().find("#visual_visual").css({height :value});
|
||||||
|
$("#visualPreview").contents().find("#slides_visual").css({height :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-container").css({height :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-control").css({height :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-slide").css({height :value});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetChoiceTBPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetChoiceTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css("bottom", "auto");
|
||||||
|
}else if($('input[name="visualSetChoiceTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="visualSetChoiceTB"]').click(function(){
|
||||||
|
var value = parseInt($("#visualSetChoiceTBPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetChoiceTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css("bottom", "auto");
|
||||||
|
}else if($('input[name="visualSetChoiceTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetChoiceLRPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetChoiceLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css("right", "auto");
|
||||||
|
}else if($('input[name="visualSetChoiceLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="visualSetChoiceLR"]').click(function(){
|
||||||
|
var value = parseInt($("#visualSetChoiceLRPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetChoiceLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css("right", "auto");
|
||||||
|
}else if($('input[name="visualSetChoiceLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-pagination_visual").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetPSTBPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetPSTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css("bottom", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css({top :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css("bottom", "auto");
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css("bottom", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css({top :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css("bottom", "auto");
|
||||||
|
}else if($('input[name="visualSetPSTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css("top", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css({bottom :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css("top", "auto");
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css("top", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css({bottom :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="visualSetPSTB"]').click(function(){
|
||||||
|
var value = parseInt($("#visualSetPSTBPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetPSTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css("bottom", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css({top :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css("bottom", "auto");
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css("bottom", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css({top :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css("bottom", "auto");
|
||||||
|
}else if($('input[name="visualSetPSTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css("top", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css({bottom :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css("top", "auto");
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css("top", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css({bottom :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetPSLRPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetPSLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css("right", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css({left :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css("right", "auto");
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css("right", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css({left :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css("right", "auto");
|
||||||
|
}else if($('input[name="visualSetPSLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css("left", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css({right :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css("left", "auto");
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css("left", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css({right :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="visualSetPSLR"]').click(function(){
|
||||||
|
var value = parseInt($("#visualSetPSLRPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetPSLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css("right", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css({left :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css("right", "auto");
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css("right", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css({left :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css("right", "auto");
|
||||||
|
}else if($('input[name="visualSetPSLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-play_visual").css("left", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css({right :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-play_visual").css("left", "auto");
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-stop_visual").css("left", "auto");
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css({right :value});
|
||||||
|
//$("#visualPreview").contents().find(".a:hover.slidesjs-stop_visual").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetPreTBPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetPreTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css("bottom", "auto");
|
||||||
|
}else if($('input[name="visualSetPreTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="visualSetPreTB"]').click(function(){
|
||||||
|
var value = parseInt($("#visualSetPreTBPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetPreTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css("bottom", "auto");
|
||||||
|
}else if($('input[name="visualSetPreTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetPreLRPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetPreLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css("right", "auto");
|
||||||
|
}else if($('input[name="visualSetPreLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="visualSetPreLR"]').click(function(){
|
||||||
|
var value = parseInt($("#visualSetPreLRPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetPreLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css("right", "auto");
|
||||||
|
}else if($('input[name="visualSetPreLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-previous_visual").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetNextTBPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetNextTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css("bottom", "auto");
|
||||||
|
}else if($('input[name="visualSetNextTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="visualSetNextTB"]').click(function(){
|
||||||
|
var value = parseInt($("#visualSetNextTBPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetNextTB"]:radio:checked').val() == "top"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css({top :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css("bottom", "auto");
|
||||||
|
}else if($('input[name="visualSetNextTB"]:radio:checked').val() == "bottom"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css({bottom :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css("top", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#visualSetNextLRPosition").keyup(function(){
|
||||||
|
var value = parseInt($(this).val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetNextLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css("right", "auto");
|
||||||
|
}else if($('input[name="visualSetNextLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="visualSetNextLR"]').click(function(){
|
||||||
|
var value = parseInt($("#visualSetNextLRPosition").val(),10);
|
||||||
|
|
||||||
|
if($('input[name="visualSetNextLR"]:radio:checked').val() == "left"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css({left :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css("right", "auto");
|
||||||
|
}else if($('input[name="visualSetNextLR"]:radio:checked').val() == "right"){
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css({right :value});
|
||||||
|
$("#visualPreview").contents().find(".slidesjs-next_visual").css("left", "auto");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input[name=visualSetSkin]").change(function() {
|
||||||
|
var visualSetSkin = $(this).val();
|
||||||
|
$("#visualPreview").attr("src", "/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualFormPreview.do?visualSetSkin="+visualSetSkin);
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input[name=visualSetType]").click(function() {
|
||||||
|
if($(this).val() == "normal"){
|
||||||
|
location.replace("/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetForm.do");
|
||||||
|
}else{
|
||||||
|
location.replace("/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetFormActive.do");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
|
||||||
|
if($("#visualSetName").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetName"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetName").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#visualSetWidth").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetSize"/> <s:message code="manager.visual.visualSetForm.visualSetWidth"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetWidth").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#visualSetHeight").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetSize"/> <s:message code="manager.visual.visualSetForm.visualSetHeight"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetHeight").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetChoiceTB"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetChoice"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetChoiceLR"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetChoice"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($("#visualSetChoiceTBPosition").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetChoice.TB.position"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetChoiceTBPosition").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#visualSetChoiceLRPosition").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetChoice.LR.position"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetChoiceLRPosition").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetPSTB"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPS"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetPSLR"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPS"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($("#visualSetPSTBPosition").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPS.TB.position"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetPSTBPosition").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#visualSetPSLRPosition").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPS.LR.position"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetPSLRPosition").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetPreTB"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPN"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetPreLR"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPN"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetNextTB"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPN"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetNextLR"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPN"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($("#visualSetPreTBPosition").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPN.pre.position"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetPreTBPosition").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#visualSetPreLRPosition").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPN.pre.position"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetPreLRPosition").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#visualSetNextTBPosition").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPN.next.position"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetNextTBPosition").focus();
|
||||||
|
return false;
|
||||||
|
}else if($("#visualSetNextLRPosition").val() == ""){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetPN.next.position"/> <s:message code="common.message.essential"/>");
|
||||||
|
$("#visualSetNextLRPosition").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('input[name="visualSetSkin"]:radio:checked').length == 0){
|
||||||
|
alert("<s:message code="manager.visual.visualSetForm.visualSetSkin"/> <s:message code="common.message.essential"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,215 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.visual.visualSetPreview.title"/></title>
|
||||||
|
<script src="/js/lib/jquery.slides.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#visual {
|
||||||
|
display: none;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.slidesjs-next_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:140px;
|
||||||
|
right:0px;
|
||||||
|
width:12px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_next.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover.slidesjs-next_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:140px;
|
||||||
|
right:0px;
|
||||||
|
width:12px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_next_over.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.slidesjs-previous_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:140px;
|
||||||
|
left:0px;
|
||||||
|
width:12px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_pre.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover.slidesjs-previous_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:140px;
|
||||||
|
left:0px;
|
||||||
|
width:12px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_pre_over.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.slidesjs-play_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:10px;
|
||||||
|
right:10px;
|
||||||
|
width:16px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_play.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover.slidesjs-play_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:10px;
|
||||||
|
right:10px;
|
||||||
|
width:16px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_play_over.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.slidesjs-stop_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:10px;
|
||||||
|
right:10px;
|
||||||
|
width:18px;
|
||||||
|
height:17px;
|
||||||
|
background-image: url("/img/manager/visual/btn_stop.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover.slidesjs-stop_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:10px;
|
||||||
|
right:10px;
|
||||||
|
width:18px;
|
||||||
|
height:17px;
|
||||||
|
background-image: url("/img/manager/visual/btn_stop_over.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual {
|
||||||
|
font-size:0;
|
||||||
|
position:absolute;
|
||||||
|
bottom:10px;
|
||||||
|
right:10px;
|
||||||
|
z-index:9999;
|
||||||
|
float: left;
|
||||||
|
list-style: none;
|
||||||
|
padding:0;
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual li {
|
||||||
|
display:inline;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual li a {
|
||||||
|
float: left;
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
z-index:9999;
|
||||||
|
background-image: url("/img/manager/visual/btn_pagination_off.png");
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual li a:hover {
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
z-index:9999;
|
||||||
|
background-image: url("/img/manager/visual/btn_pagination_over.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual li a.active,
|
||||||
|
.slidesjs-pagination_visual li a:hover.active {
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
z-index:9999;
|
||||||
|
background-image: url("/img/manager/visual/btn_pagination_on.png");
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="visual" style="width:650px; height:300px; display: none; position:relative;">
|
||||||
|
<img src="/img/manager/visual/example-slide-1.jpg" width="650px" height="300px" alt="visual1" />
|
||||||
|
<img src="/img/manager/visual/example-slide-2.jpg" width="650px" height="300px" alt="visual2" />
|
||||||
|
<img src="/img/manager/visual/example-slide-3.jpg" width="650px" height="300px" alt="visual3" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
var visualSetSkin = "";
|
||||||
|
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${visualSetSkin == "A"}'>
|
||||||
|
visualSetSkin = "fade";
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${visualSetSkin == "B"}'>
|
||||||
|
visualSetSkin = "slide";
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
$('#visual').slidesjs({
|
||||||
|
width:650,
|
||||||
|
height:300,
|
||||||
|
autoHeight: false,
|
||||||
|
dataKey : "visual",
|
||||||
|
play: {
|
||||||
|
active: true,
|
||||||
|
auto: true,
|
||||||
|
interval: 4000,
|
||||||
|
swap: true,
|
||||||
|
restartDelay: 2500,
|
||||||
|
effect: visualSetSkin
|
||||||
|
},
|
||||||
|
navigation: {
|
||||||
|
effect: visualSetSkin
|
||||||
|
},
|
||||||
|
pagination: {
|
||||||
|
effect: visualSetSkin
|
||||||
|
},
|
||||||
|
effect: {
|
||||||
|
fade: {
|
||||||
|
speed: 400
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
266
src/main/webapp/WEB-INF/jsp/manager/visual/visualSetList.jsp
Normal file
266
src/main/webapp/WEB-INF/jsp/manager/visual/visualSetList.jsp
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.visual.visualSetList.title"/></title>
|
||||||
|
<script src="/js/lib/base64.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx != "0" && menuCode == "N") || menuCode == "visual"}'>
|
||||||
|
<div class="seed-popup-wrap">
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.visual.nav.visualSetList"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sch-content-wrap clear">
|
||||||
|
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<c:url var="actionUrl" value="/gtm/${siteIdx}/visualSetList.do" />
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:url var="actionUrl" value="/menu/${siteIdx}/visualSetList.do" />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
<form:form name="frmSearch" id="frmSearch" action="${actionUrl}" method="post">
|
||||||
|
<input type="hidden" name="page" value="1" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="siteMenuIdx" value="<c:out escapeXml='true' value='${siteMenuIdx}' />"/>
|
||||||
|
<input type="hidden" name="menuCode" value="<c:out escapeXml='true' value='${menuCode}' />"/>
|
||||||
|
<fieldset>
|
||||||
|
<legend>검색 폼</legend>
|
||||||
|
<select name="column" id="column" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
<option value="A" <c:if test="${column == 'A'}">selected="selected"</c:if>><s:message code="common.select.option.value.all"/></option>
|
||||||
|
<option value="visualSetName" <c:if test="${column == 'visualSetName'}">selected="selected"</c:if>><s:message code="manager.visual.visualSetList.visualSetName"/></option>
|
||||||
|
<option value="tMember.memberName" <c:if test="${column == 'tMember.memberName'}">selected="selected"</c:if>><s:message code="common.memberName"/></option>
|
||||||
|
</select>
|
||||||
|
<input type="search" name="search" id="search" value="<c:out escapeXml='true' value='${search}' />" title="<s:message code="common.search.value"/>" class="sch-text">
|
||||||
|
<button type="submit" class="btn-page-sch"><s:message code="common.button.search"/></button>
|
||||||
|
</fieldset>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form:form name="frm" id="frm" method="post" action="/gtm/proc/${siteIdx}/visualSetStatusProc.do">
|
||||||
|
<input type="hidden" name="page" value="<c:out escapeXml='true' value='${page}' />" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="column" value="<c:out escapeXml='true' value='${column}' />" />
|
||||||
|
<input type="hidden" name="search" value="<c:out escapeXml='true' value='${search}' />" />
|
||||||
|
|
||||||
|
<div class="more-btn-box">
|
||||||
|
<button type="button" id="moreTableItem" class="more-table-item">칼럼 더보기</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-wrap">
|
||||||
|
<div class="table-layout br-none">
|
||||||
|
<table>
|
||||||
|
<caption><s:message code="manager.visual.visualSetList.table.caption"/></caption>
|
||||||
|
<colgroup>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><col class="small_checkbox"></c:if>
|
||||||
|
<col class="title">
|
||||||
|
<col>
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><th scope="col"><input type="checkbox" class="checkbox check-all" name="allcheck" id="allcheck" title="<s:message code="common.message.allCheck"/>" /><label for="allcheck"></label></th></c:if>
|
||||||
|
<th scope="col"><s:message code="manager.visual.visualSetList.visualSetName"/> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col"><s:message code="manager.visual.visualSetList.visualDataCnt"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="common.memberName"/> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=tMember.memberName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=tMember.memberName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.regDate"/> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetRegDate&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetRegDate&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.status"/> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetStatus&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetStatus&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty visualSetList}">
|
||||||
|
<c:forEach items="${visualSetList}" var="visualSetList" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><td><input type="checkbox" class="checkbox check-base" name="idxs" id="visual_${visualSetList._visualSetIdx}" value="<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />" /><label for="visual_${visualSetList._visualSetIdx}"></label> ${visualSetListCnt - (page-1)*row - status.index}</td></c:if>
|
||||||
|
<td class="al">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${visualSetList._visualSetType == "normal"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetEdit/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />"><span><c:out escapeXml='true' value='${visualSetList._visualSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${visualSetList._visualSetType == "active"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetEditActive/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />"><span><c:out escapeXml='true' value='${visualSetList._visualSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${menuCode == "visual"}'>
|
||||||
|
<a class="hover-link codeClick" href="/<c:out escapeXml='true' value='${siteIdx}' />/<c:out escapeXml='true' value='${menuCode}' />/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />/mini.do" data-seed="${visualSetList._visualSetRelation}:<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />"><span><c:out escapeXml='true' value='${visualSetList._visualSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />/visualDataList.do"><span><c:out escapeXml='true' value='${visualSetList._visualDataIdxCnt}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out escapeXml='true' value='${visualSetList._visualDataIdxCnt}' />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="item-tablet-hidden"><c:out escapeXml='true' value='${visualSetList._memberName}' />(<c:out escapeXml='true' value='${visualSetList._memberId}' />)</td>
|
||||||
|
<td class="item-mobile-hidden">${fn:substring(visualSetList._visualSetRegDate, 0, 10)}</td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'U'}">
|
||||||
|
<td class="item-mobile-hidden skin-default"><s:message code="common.use"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'S'}">
|
||||||
|
<td class="state-stop item-mobile-hidden"><s:message code="common.stop"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'D'}">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<td class="state-delete item-mobile-hidden">
|
||||||
|
<a class="dataDel" href="/gtm/proc/<c:out escapeXml='true' value='${siteIdx}' />/visualSetDelProc/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><s:message code="common.button.del"/></a>
|
||||||
|
</td>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<td class="state-delete item-mobile-hidden"><s:message code="common.button.del"/></td>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td class="no-data-colspan"><s:message code="common.message.no.data"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'>
|
||||||
|
<div class="change-state-area">
|
||||||
|
<label for="selStatus"><s:message code="common.message.choice"/></label>
|
||||||
|
<select name="selStatus" id="selStatus" title="<s:message code="common.select.option.value"/>" class="change-list">
|
||||||
|
<option value=""><s:message code="common.select.option.value"/></option>
|
||||||
|
<option value="U"><s:message code="common.select.option.value.use"/></option>
|
||||||
|
<option value="S"><s:message code="common.select.option.value.stop"/></option>
|
||||||
|
<option value="D"><s:message code="common.select.option.value.delete"/></option>
|
||||||
|
</select>
|
||||||
|
<button type="submit" class="btn-change-state"><s:message code="common.button.status"/></button>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
<div class="pagination-container">
|
||||||
|
<div class="pagination-inner clear">
|
||||||
|
<div class="pagination-control prev clear">
|
||||||
|
<a class="first-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=1&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.first"/>" ><s:message code="common.page.first"/></a>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block > 1}">
|
||||||
|
<a class="prev-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${fPage-1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="prev-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${fPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</div>
|
||||||
|
<ul class="pagination clear">
|
||||||
|
<c:forEach begin="0" end="${lPage-fPage}" var="index" >
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${index+fPage==page}">
|
||||||
|
<li><a class="on" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.now"/>" ><c:out escapeXml='true' value='${page}' /></a></li>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<li><a href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${index+fPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<c:out escapeXml='true' value='${index+fPage}' /> <s:message code="common.page.page"/>" ><c:out escapeXml='true' value='${index+fPage}' /></a></li>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</ul>
|
||||||
|
<div class="pagination-control next clear">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block < blocks}">
|
||||||
|
<a class="next-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${lPage+1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="next-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${lPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<a class="last-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${pages}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.last"/>" ><s:message code="common.page.last"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'>
|
||||||
|
<div class="btn-area">
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetForm.do" class="btn-normal violet"><s:message code="common.button.create"/></a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx != "0" && menuCode == "N") || menuCode == "visual"}'>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$(".dataDel").click(function(){
|
||||||
|
if(!confirm("<s:message code='common.message.visual.set.confirm.del'/>")){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".codeClick").click(function(){
|
||||||
|
var url = $(this).attr("href");
|
||||||
|
var dataSeeds = $(this).attr("data-seed").split(":");
|
||||||
|
|
||||||
|
location.replace("/common/getCode/<c:out escapeXml='true' value='${siteIdx}' />.do?getUrl="+Base64.encode(url)+"&codeType=func&pageType=manager&codeRelation="+dataSeeds[0]+"&funcType=visual&funcSetIdx="+dataSeeds[1]);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
|
||||||
|
if(!$('input:checkbox[name="idxs"]').is(":checked")){
|
||||||
|
alert("<s:message code="common.message.no.check"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($("#selStatus option:selected").val() == ""){
|
||||||
|
alert("<s:message code="common.message.no.select"/>");
|
||||||
|
$("#selStatus").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1
src/main/webapp/WEB-INF/views/_common/_css/style.min.css
vendored
Normal file
1
src/main/webapp/WEB-INF/views/_common/_css/style.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
257
src/main/webapp/WEB-INF/views/manager/banner/bannerSetList.jsp
Normal file
257
src/main/webapp/WEB-INF/views/manager/banner/bannerSetList.jsp
Normal file
@ -0,0 +1,257 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.banner.bannerSetList.title"/></title>
|
||||||
|
<script src="/js/lib/base64.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx != "0" && menuCode == "N") || menuCode == "banner"}'>
|
||||||
|
<div class="seed-popup-wrap">
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.banner.nav.bannerSetList"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sch-content-wrap clear">
|
||||||
|
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<c:url var="actionUrl" value="/gtm/${siteIdx}/bannerSetList.do" />
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:url var="actionUrl" value="/menu/${siteIdx}/bannerSetList.do" />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
<form:form name="frmSearch" id="frmSearch" action="${actionUrl}" method="post">
|
||||||
|
<input type="hidden" name="page" value="1" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="siteMenuIdx" value="<c:out escapeXml='true' value='${siteMenuIdx}' />"/>
|
||||||
|
<input type="hidden" name="menuCode" value="<c:out escapeXml='true' value='${menuCode}' />"/>
|
||||||
|
<fieldset>
|
||||||
|
<legend>검색 폼</legend>
|
||||||
|
<select name="column" id="column" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
<option value="A" <c:if test="${column == 'A'}">selected="selected"</c:if>><s:message code="common.select.option.value.all"/></option>
|
||||||
|
<option value="bannerSetName" <c:if test="${column == 'bannerSetName'}">selected="selected"</c:if>><s:message code="manager.banner.bannerSetList.bannerSetName"/></option>
|
||||||
|
<option value="tMember.memberName" <c:if test="${column == 'tMember.memberName'}">selected="selected"</c:if>><s:message code="common.memberName"/></option>
|
||||||
|
</select>
|
||||||
|
<input type="search" name="search" id="search" value="<c:out escapeXml='true' value='${search}' />" title="<s:message code="common.search.value"/>" class="sch-text">
|
||||||
|
<button type="submit" class="btn-page-sch"><s:message code="common.button.search"/></button>
|
||||||
|
</fieldset>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form:form name="frm" id="frm" method="post" action="/gtm/proc/${siteIdx}/bannerSetStatusProc.do">
|
||||||
|
<input type="hidden" name="page" value="<c:out escapeXml='true' value='${page}' />" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="column" value="<c:out escapeXml='true' value='${column}' />" />
|
||||||
|
<input type="hidden" name="search" value="<c:out escapeXml='true' value='${search}' />" />
|
||||||
|
|
||||||
|
<div class="more-btn-box">
|
||||||
|
<button type="button" id="moreTableItem" class="more-table-item">칼럼 더보기</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-wrap">
|
||||||
|
<div class="table-layout br-none">
|
||||||
|
<table>
|
||||||
|
<caption><s:message code="manager.banner.bannerSetList.table.caption"/></caption>
|
||||||
|
<colgroup>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><col class="checkbox_small" /></c:if>
|
||||||
|
<col class="title">
|
||||||
|
<col>
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><th scope="col"><input type="checkbox" class="checkbox check-all" name="allcheck" id="allcheck" title="<s:message code="common.message.allCheck"/>" /><label for="allcheck"></label></th></c:if>
|
||||||
|
<th scope="col"><s:message code="manager.banner.bannerSetList.bannerSetName"/><span> <a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col"><s:message code="manager.banner.bannerSetList.bannerDataCnt"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="common.memberName"/><span> <a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=tMember.memberName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=tMember.memberName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.regDate"/><span> <a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetRegDate&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetRegDate&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.status"/><span> <a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetStatus&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=bannerSetStatus&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty bannerSetList}">
|
||||||
|
<c:forEach items="${bannerSetList}" var="bannerSetList" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><td><input type="checkbox" class="checkbox check-base" name="idxs" id="banner_<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />" value="<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />" /><label for="banner_<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />"></label> <%-- <c:out escapeXml='true' value='${bannerSetListCnt - (page-1)*row - status.index}' /> --%></td></c:if>
|
||||||
|
<td class="al">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetEdit/<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />"><span><c:out escapeXml='true' value='${bannerSetList._bannerSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${menuCode == "banner"}'>
|
||||||
|
<a class="hover-link codeClick" href="/<c:out escapeXml='true' value='${siteIdx}' />/<c:out escapeXml='true' value='${menuCode}' />/<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />/mini.do"><span><c:out escapeXml='true' value='${bannerSetList._bannerSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />/bannerDataList.do"><span><c:out escapeXml='true' value='${bannerSetList._bannerDataIdxCnt}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out escapeXml='true' value='${bannerSetList._bannerDataIdxCnt}' />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="item-tablet-hidden"><c:out escapeXml='true' value='${bannerSetList._memberName}' />(<c:out escapeXml='true' value='${bannerSetList._memberId}' />)</td>
|
||||||
|
<td class="item-mobile-hidden"><c:out escapeXml='true' value='${fn:substring(bannerSetList._bannerSetRegDate, 0, 10)}' /></td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${bannerSetList._bannerSetStatus == 'U'}">
|
||||||
|
<td class="item-mobile-hidden skin-default"><s:message code="common.use"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${bannerSetList._bannerSetStatus == 'S'}">
|
||||||
|
<td class="state-stop item-mobile-hidden"><s:message code="common.stop"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${bannerSetList._bannerSetStatus == 'D'}">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<td class="state-delete item-mobile-hidden">
|
||||||
|
<a class="dataDel" href="/gtm/proc/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetDelProc/<c:out escapeXml='true' value='${bannerSetList._bannerSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><s:message code="common.button.del"/></a>
|
||||||
|
</td>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<td><s:message code="common.button.del"/></td>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td class="no-data-colspan"><s:message code="common.message.no.data"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'>
|
||||||
|
<div class="change-state-area">
|
||||||
|
<label for="selStatus"><s:message code="common.message.choice"/></label>
|
||||||
|
<select name="selStatus" id="selStatus" title="<s:message code="common.select.option.value"/>" class="change-list">
|
||||||
|
<option value=""><s:message code="common.select.option.value"/></option>
|
||||||
|
<option value="U"><s:message code="common.select.option.value.use"/></option>
|
||||||
|
<option value="S"><s:message code="common.select.option.value.stop"/></option>
|
||||||
|
<option value="D"><s:message code="common.select.option.value.delete"/></option>
|
||||||
|
</select>
|
||||||
|
<button type="submit" class="btn-change-state"><s:message code="common.button.status"/></button>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
<div class="pagination-container">
|
||||||
|
<div class="pagination-inner clear">
|
||||||
|
<div class="pagination-control prev clear">
|
||||||
|
<a class="first-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=1&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.first"/>" ><s:message code="common.page.first"/></a>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block > 1}">
|
||||||
|
<a class="prev-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${fPage-1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="prev-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${fPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</div>
|
||||||
|
<ul class="pagination clear">
|
||||||
|
<c:forEach begin="0" end="${lPage-fPage}" var="index" >
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${index+fPage==page}">
|
||||||
|
<li><a class="on" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.now"/>" ><c:out escapeXml='true' value='${page}' /></a></li>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<li><a href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${index+fPage}' />&row=${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<c:out escapeXml='true' value='${index+fPage}' /> <s:message code="common.page.page"/>" ><c:out escapeXml='true' value='${index+fPage}' /></a></li>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</ul>
|
||||||
|
<div class="pagination-control next clear">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block < blocks}">
|
||||||
|
<a class="next-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${lPage+1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="next-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${lPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<a class="last-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/bannerSetList.do?page=<c:out escapeXml='true' value='${pages}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.last"/>" ><s:message code="common.page.last"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'>
|
||||||
|
<div class="btn-area">
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/bannerSetForm.do" class="btn-normal violet"><s:message code="common.button.create"/></a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$(".dataDel").click(function(){
|
||||||
|
if(!confirm("<s:message code='common.message.banner.set.confirm.del'/>")){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".codeClick").click(function(){
|
||||||
|
var url = $(this).attr("href");
|
||||||
|
location.replace("/common/getCode/<c:out escapeXml='true' value='${siteIdx}' />.do?getUrl="+Base64.encode(url)+"&codeType=func&pageType=manager");
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
|
||||||
|
if(!$('input:checkbox[name="idxs"]').is(":checked")){
|
||||||
|
alert("<s:message code="common.message.no.check"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($("#selStatus option:selected").val() == ""){
|
||||||
|
alert("<s:message code="common.message.no.select"/>");
|
||||||
|
$("#selStatus").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx != "0" && menuCode == "N") || menuCode == "banner"}'>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
79
src/main/webapp/WEB-INF/views/manager/skin/siteAlertSkin.jsp
Normal file
79
src/main/webapp/WEB-INF/views/manager/skin/siteAlertSkin.jsp
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.member.title"/></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.alert"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.alert.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteAlertSkin.do?alertType=message" <c:if test='${alertType == "message"}'>class="on" </c:if>><s:message code="manager.skin.tab.alert.message"/></a>
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteAlertSkin.do?alertType=error" <c:if test='${alertType == "error"}'>class="on" </c:if>><s:message code="manager.skin.tab.alert.error"/></a>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="iframe" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=alert&pageName=<c:out escapeXml='true' value='${alertType}' />" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="iframe" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=alert&pageName=alert" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,99 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.skin.member.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.skin.tab.member"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p><s:message code="manager.skin.member.caption"/></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu-wrap">
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a <c:if test='${memberType == "memberFormPwDel"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberFormPwDel"><s:message code="manager.skin.tab.member.memberDel"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberPwDelResult"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberPwDelResult"><s:message code="manager.skin.tab.member.memberDelResult"/></a>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a <c:if test='${memberType == "memberIdFind"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberIdFind"><s:message code="manager.skin.tab.member.memberIdFind"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberPwFind"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberPwFind"><s:message code="manager.skin.tab.member.memberPwFind"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberIdResult"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberIdResult"><s:message code="manager.skin.tab.member.memberIdResult"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberPwResult"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberPwResult"><s:message code="manager.skin.tab.member.memberPwResult"/></a>
|
||||||
|
</div>
|
||||||
|
<div class="tab-menu cf">
|
||||||
|
<a <c:if test='${memberType == "memberForm"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberForm"><s:message code="manager.skin.tab.member.memberForm"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberEdit"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberEdit"><s:message code="manager.skin.tab.member.memberEdit"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberChk"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberChk"><s:message code="manager.skin.tab.member.memberChk"/></a>
|
||||||
|
<a <c:if test='${memberType == "memberFormPw"}'>class="on"</c:if> href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteMemberSkin.do?memberType=memberFormPw"><s:message code="manager.skin.tab.member.memberPwChk"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout-content">
|
||||||
|
<div class="layout-title">
|
||||||
|
<button type="button" class="skin-tab on" id="htmlTab"><div class="skin-div"><span>〈 / 〉</span><p>Html</p></div></button>
|
||||||
|
<button type="button" class="skin-tab" id="cssTab"><div class="skin-div"><span>〈 _ 〉</span><p>Css</p></div></button>
|
||||||
|
<div class="editor-util-btn">
|
||||||
|
<button type="button" class="editor-full-btn">에디터 전체화면</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor">
|
||||||
|
<span class="rolling"></span>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinHtml.do?pageType=member&pageName=${memberType}" id="siteSkinHtml"></iframe>
|
||||||
|
<iframe class="contents" src="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/siteSkinCss.do?pageType=member&pageName=member" id="siteSkinCss"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<button type="button" class="btn-normal violet" id="btnHtml"><s:message code="common.button.mod"/></button>
|
||||||
|
<button type="button" class="btn-normal violet DSP-NONE" id="btnCss"><s:message code="common.button.mod"/></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$("#btnHtml").click(function(){
|
||||||
|
$("#siteSkinHtml")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btnCss").click(function(){
|
||||||
|
$("#siteSkinCss")[0].contentWindow.jf_submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#htmlTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").show();
|
||||||
|
$("#siteSkinCss").hide();
|
||||||
|
$("#btnHtml").show();
|
||||||
|
$("#btnCss").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#cssTab").click(function(){
|
||||||
|
$('.skin-tab').removeClass('on');
|
||||||
|
$(this).addClass('on');
|
||||||
|
$("#siteSkinHtml").hide();
|
||||||
|
$("#siteSkinCss").show();
|
||||||
|
$("#btnHtml").hide();
|
||||||
|
$("#btnCss").show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,104 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.statistics.statisticsList.title"/></title>
|
||||||
|
<script src="http://www.google.com/jsapi"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.tab.siteMenuStatisticsList"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p>메뉴명, 메뉴설정, 메뉴타입, 담당자, 메뉴순서를 변경 할 수 있는 페이지입니다.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="more-btn-box">
|
||||||
|
<button type="button" id="moreTableItem" class="more-table-item">칼럼 더보기</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="table-layout inner-br-none siteMenuList">
|
||||||
|
<table>
|
||||||
|
<caption><s:message code="manager.site.siteMenuList.table.caption"/></caption>
|
||||||
|
<colgroup>
|
||||||
|
<col class="title">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col"><s:message code="manager.site.siteMenuList.siteMenuName"/></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="manager.site.siteMenuList.siteMenuLink"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="manager.site.siteMenuList.siteMenuStatus"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="manager.site.siteMenuList.siteMenuIdx"/></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.regDate"/></th>
|
||||||
|
<th scope="col"><s:message code="manager.statistics.statisticsList.cnt"/></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="no-data-colspan"><c:out escapeXml='true' value='${siteName}' /></td>
|
||||||
|
</tr>
|
||||||
|
<c:forEach items="${siteMenuStatisticsList}" var="siteMenuStatisticsList" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td class="al">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuStatisticsList._siteMenuNameType == "T"}'>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' /></span>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<div>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><img src="/site/<c:out escapeXml='true' value='${siteIdx}' />/images/menu/topMenu_<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' />_off.gif" alt="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' />" width="150px" height="40px" /></span>
|
||||||
|
<br/>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><img src="/site/<c:out escapeXml='true' value='${siteIdx}' />/images/menu/topMenu_<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' />_on.gif" alt="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' />" width="150px" height="40px" /></span>
|
||||||
|
<c:if test='${siteMenuStatisticsList._siteMenuDepth > 1}'>
|
||||||
|
<br/>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><img src="/site/<c:out escapeXml='true' value='${siteIdx}' />/images/menu/subMenu_<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' />_off.gif" alt="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' />" width="150px" height="40px" /></span>
|
||||||
|
<br/>
|
||||||
|
<span class="hover-link depth-<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuDepth}' />"><img src="/site/<c:out escapeXml='true' value='${siteIdx}' />/images/menu/subMenu_<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' />_on.gif" alt="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuName}' />" width="150px" height="40px" /></span>
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="item-mobile-hidden"><a class="menu-barogagi" href="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuLinkUrl}' />" target="_blank"><span><img src="/img/icon-go.png" alt="메뉴 바로가기" class="go-btn">GO</span></a></td>
|
||||||
|
<td class="item-tablet-hidden">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${siteMenuStatisticsList._siteMenuStatus == 'U'}">
|
||||||
|
<p class="menu-visible on"><span>ON</span></p>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${siteMenuStatisticsList._siteMenuStatus == 'S'}">
|
||||||
|
<p class="menu-visible off"><span>OFF</span></p>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="item-tablet-hidden"><c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuIdxs}' /></td>
|
||||||
|
<td class="item-mobile-hidden"><c:out escapeXml='true' value='${fn:substring(siteMenuStatisticsList._siteMenuRegDate, 0, 10)}' /></td>
|
||||||
|
<td><a class="menu-barogagi hover-link" href="<c:out escapeXml='true' value='${siteMenuStatisticsList._siteMenuLinkUrl}' />" target="_blank"><span><c:out escapeXml='true' value='${siteMenuStatisticsList._accessCount}' /></span></a></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="btn-area">
|
||||||
|
<a class="btn-normal lightgray" href="/gtm/proc/<c:out escapeXml='true' value='${siteIdx}' />/siteMenuStatisticsExcelList.do"><s:message code="common.button.excel"/></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,190 @@
|
|||||||
|
<%@page import="java.util.HashMap"%>
|
||||||
|
<%@page import="java.util.ArrayList"%>
|
||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.statistics.statisticsList.title"/></title>
|
||||||
|
<script src="/js/lib/google-loader.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.tab.siteStatisticsList"/></h3>
|
||||||
|
<!-- <div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p>통계 그래프 확인</p>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
<div class="sch-content-wrap clear">
|
||||||
|
<form:form name="frmSearch" id="frmSearch" action="/gtm/${siteIdx}/siteStatisticsList.do" method="post">
|
||||||
|
<input type="hidden" name="page" value="1" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="siteMenuIdx" value="<c:out escapeXml='true' value='${siteMenuIdx}' />"/>
|
||||||
|
<input type="hidden" name="menuCode" value="<c:out escapeXml='true' value='${menuCode}' />"/>
|
||||||
|
<fieldset>
|
||||||
|
|
||||||
|
<legend>검색 폼</legend>
|
||||||
|
|
||||||
|
<select name="year" id="yearStr" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select name="month" id="monthStr" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
<option value="1" <c:if test="${monthStr == '1'}">selected="selected"</c:if>>1월</option>
|
||||||
|
<option value="2" <c:if test="${monthStr == '2'}">selected="selected"</c:if>>2월</option>
|
||||||
|
<option value="3" <c:if test="${monthStr == '3'}">selected="selected"</c:if>>3월</option>
|
||||||
|
<option value="4" <c:if test="${monthStr == '4'}">selected="selected"</c:if>>4월</option>
|
||||||
|
<option value="5" <c:if test="${monthStr == '5'}">selected="selected"</c:if>>5월</option>
|
||||||
|
<option value="6" <c:if test="${monthStr == '6'}">selected="selected"</c:if>>6월</option>
|
||||||
|
<option value="7" <c:if test="${monthStr == '7'}">selected="selected"</c:if>>7월</option>
|
||||||
|
<option value="8" <c:if test="${monthStr == '8'}">selected="selected"</c:if>>8월</option>
|
||||||
|
<option value="9" <c:if test="${monthStr == '9'}">selected="selected"</c:if>>9월</option>
|
||||||
|
<option value="10" <c:if test="${monthStr == '10'}">selected="selected"</c:if>>10월</option>
|
||||||
|
<option value="11" <c:if test="${monthStr == '11'}">selected="selected"</c:if>>11월</option>
|
||||||
|
<option value="12" <c:if test="${monthStr == '12'}">selected="selected"</c:if>>12월</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-page-sch"><s:message code="common.button.search"/></button>
|
||||||
|
</fieldset>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="month_chart" class="chart"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="btn-area">
|
||||||
|
<a class="btn-normal lightgray" href="/gtm/proc/<c:out escapeXml='true' value='${siteIdx}' />/siteStatisticsExcelList.do?year=${yearStr}&month=<c:out escapeXml='true' value='${monthStr}' />"><s:message code="common.button.excel"/></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
var date = new Date();
|
||||||
|
|
||||||
|
for(var year=date.getFullYear(); (date.getFullYear()-10) <= (year+1); year--){
|
||||||
|
if("${yearStr}" == year){
|
||||||
|
$("#yearStr")[0].options.add(new Option(year, year, true, true));
|
||||||
|
}else{
|
||||||
|
$("#yearStr")[0].options.add(new Option(year, year));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function requireScript( array ){
|
||||||
|
// sync 메서드는 jquery.seed.js에 들어있습니다..
|
||||||
|
return $.sync( (function(){
|
||||||
|
var retrunArray = [];
|
||||||
|
for( var i = 0; i < array.length; i++ ){
|
||||||
|
retrunArray.push([ $.getScript, array[i] ]);
|
||||||
|
}
|
||||||
|
return retrunArray;
|
||||||
|
}()) );
|
||||||
|
}
|
||||||
|
|
||||||
|
function getRandomColor() {
|
||||||
|
var letters = '0123456789ABCDEF'.split('');
|
||||||
|
var color = '#';
|
||||||
|
for (var i = 0; i < 6; i++ ) {
|
||||||
|
color += letters[Math.floor(Math.random() * 16)];
|
||||||
|
}
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
requireScript(['/js/lib/raphael.min.js',
|
||||||
|
'/js/lib/morris.min.js']).done(function( str ){
|
||||||
|
$('.chart').children().add('.chart-list li').remove();
|
||||||
|
// 기본 색깔 순서입니다.
|
||||||
|
var colors = ['#838bd2', '#FDB45C', '#46BFBD', '#F7464A'];
|
||||||
|
if( colors.length <= ($('.site > li').length+1) )
|
||||||
|
{
|
||||||
|
var colorSize = ($('.site > li').length+1) - colors.length; // 사용 가능한 공간 + 1
|
||||||
|
while( colorSize-- )
|
||||||
|
colors.push( getRandomColor() );
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************************************
|
||||||
|
일별통계
|
||||||
|
************************************************************************************************/
|
||||||
|
;(function(){
|
||||||
|
|
||||||
|
var year = "<c:out escapeXml='true' value='${yearStr}' />";
|
||||||
|
var month = parseInt("<c:out escapeXml='true' value='${monthStr}' />");
|
||||||
|
var LineData = [];
|
||||||
|
var days = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
|
||||||
|
if ((year % 4 === 0) && (year % 100 !== 0) || (year % 400 === 0)) {
|
||||||
|
days[1] = 29; //윤년 체크
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var d=1; d<=days[month-1]; d++){
|
||||||
|
|
||||||
|
var cnt = 0;
|
||||||
|
|
||||||
|
<c:forEach items="${siteStatisticsList}" var="siteStatisticsList" varStatus="status">
|
||||||
|
if(year == "${siteStatisticsList._accessYear}" &&
|
||||||
|
(month + '') == "${siteStatisticsList._accessMonth}" &&
|
||||||
|
d == "${siteStatisticsList._accessDay}"){
|
||||||
|
cnt += <c:out value='${siteStatisticsList._accessCount}' />;
|
||||||
|
}
|
||||||
|
</c:forEach>
|
||||||
|
|
||||||
|
LineData.push({ days: [year, month, d].join('-'), count: cnt});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var MorrisLine = Morris.Line({
|
||||||
|
element: 'month_chart',
|
||||||
|
data: LineData,
|
||||||
|
xkey: 'days',
|
||||||
|
ykeys: ['count'],
|
||||||
|
labels: ['<c:out escapeXml='true' value='${siteName}' />'],
|
||||||
|
dateFormat: function(x){
|
||||||
|
var date = new Date(x);
|
||||||
|
return date.getFullYear() + '년 ' + (date.getMonth()+1) + '월 ' + date.getDate() + '일';
|
||||||
|
},
|
||||||
|
lineWidth: 2,
|
||||||
|
resize: false,
|
||||||
|
grid: false,
|
||||||
|
//xLabelAngle: 45,
|
||||||
|
lineColors: colors
|
||||||
|
});
|
||||||
|
|
||||||
|
MorrisLine.displayHoverForRow(new Date().getDate() - 1);
|
||||||
|
|
||||||
|
// 레이블 생성
|
||||||
|
var chartDetailList = MorrisLine.el.parent().find('.chart-detail-list');
|
||||||
|
var labels = MorrisLine.options.labels;
|
||||||
|
|
||||||
|
chartDetailList.append(function(){
|
||||||
|
var fragment = $(document.createDocumentFragment());
|
||||||
|
for( var i = 0; i < labels.length; i++ ){
|
||||||
|
fragment.append(
|
||||||
|
$('<li></li>').append(
|
||||||
|
$('<h5></h5>')
|
||||||
|
.text( labels[i] )
|
||||||
|
.prepend( $('<i></i>').css({ backgroundColor: colors[i] }) )
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return fragment;
|
||||||
|
});
|
||||||
|
|
||||||
|
$(window).doneEvent('resize.MorrisLine', function() { MorrisLine.redraw() });
|
||||||
|
}());
|
||||||
|
/***********************************************************************************************
|
||||||
|
일별통계 끝
|
||||||
|
************************************************************************************************/
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
151
src/main/webapp/WEB-INF/views/manager/visual/visualESetList.jsp
Normal file
151
src/main/webapp/WEB-INF/views/manager/visual/visualESetList.jsp
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.visual.visualSetList.title"/></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.visual.nav.visualSetList"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sch-content-wrap clear">
|
||||||
|
<form:form name="frmSearch" id="frmSearch" action="/gte/${siteIdx}/visualSetList.do" method="post">
|
||||||
|
<input type="hidden" name="page" value="1" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="siteMenuIdx" value="<c:out escapeXml='true' value='${siteMenuIdx}' />"/>
|
||||||
|
<fieldset>
|
||||||
|
<legend>검색 폼</legend>
|
||||||
|
<select name="column" id="column" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
<option value="<c:if test='${!memberGrant == "S" || !memberAuth}'>tVisualSet.</c:if>visualSetName"><s:message code="manager.visual.visualSetList.visualSetName"/></option>
|
||||||
|
</select>
|
||||||
|
<input type="search" name="search" id="search" value="<c:out escapeXml='true' value='${search}' />" title="<s:message code="common.search.value"/>" class="sch-text">
|
||||||
|
<button type="submit" class="btn-page-sch"><s:message code="common.button.search"/></button>
|
||||||
|
</fieldset>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="more-btn-box">
|
||||||
|
<button type="button" id="moreTableItem" class="more-table-item">칼럼 더보기</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-wrap">
|
||||||
|
<div class="table-layout br-none">
|
||||||
|
<table>
|
||||||
|
<caption><s:message code="manager.visual.visualSetList.table.caption"/></caption>
|
||||||
|
<colgroup>
|
||||||
|
<col class="small_checkbox">
|
||||||
|
<col class="title">
|
||||||
|
<col>
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col"></th>
|
||||||
|
<th scope="col"><s:message code="manager.visual.visualSetList.visualSetName"/> <span><a href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col"><s:message code="common.data.set"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="common.regDate"/> <span><a href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetRegDate&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetRegDate&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.status"/> <span><a href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetStatus&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetStatus&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty visualSetList}">
|
||||||
|
<c:forEach items="${visualSetList}" var="visualSetList" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td><c:out escapeXml='true' value='${visualSetListCnt - (page-1)*row - status.index}' /></td>
|
||||||
|
<td class="al">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${visualSetList._visualSetType == "normal"}'>
|
||||||
|
<a class="hover-link" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetEdit/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />"><span><c:out escapeXml='true' value='${visualSetList._visualSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${visualSetList._visualSetType == "active"}'>
|
||||||
|
<a class="hover-link" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetEditActive/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />"><span><c:out escapeXml='true' value='${visualSetList._visualSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td><a class="hover-link" href="/gte/<c:out value='${siteIdx}' />/<c:out value='${visualSetList._visualSetIdx}' />/visualDataList.do?page=<c:out value='${page}' />&row=<c:out value='${row}' />&orderColumn=<c:out value='${orderColumn}' />&order=<c:out value='${order}' />&column=<c:out value='${column}' />&search=<c:out value='${search}' />"><span><s:message code="common.set"/></span></a></td>
|
||||||
|
<td class="item-tablet-hidden">${fn:substring(visualSetList._visualSetRegDate, 0, 10)}</td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'U'}">
|
||||||
|
<td class="item-mobile-hidden skin-default"><s:message code="common.use"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'S'}">
|
||||||
|
<td class="state-stop item-mobile-hidden"><s:message code="common.stop"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'D'}">
|
||||||
|
<td class="state-delete item-mobile-hidden"><s:message code="common.button.del"/></td>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td class="no-data-colspan"><s:message code="common.message.no.data"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pagination-container">
|
||||||
|
<div class="pagination-inner clear">
|
||||||
|
<div class="pagination-control prev clear">
|
||||||
|
<a class="first-btn" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=1&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />" title="<s:message code="common.page.first"/>" ><s:message code="common.page.first"/></a>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block > 1}">
|
||||||
|
<a class="prev-btn" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${fPage-1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="prev-btn" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${fPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</div>
|
||||||
|
<ul class="pagination clear">
|
||||||
|
<c:forEach begin="0" end="${lPage-fPage}" var="index" >
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${index+fPage==page}">
|
||||||
|
<li><a class="on" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />" title="<s:message code="common.page.now"/>" ><c:out escapeXml='true' value='${page}' /></a></li>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<li><a href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${index+fPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />" title="<c:out escapeXml='true' value='${index+fPage}' /> <s:message code="common.page.page"/>" ><c:out escapeXml='true' value='${index+fPage}' /></a></li>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</ul>
|
||||||
|
<div class="pagination-control next clear">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block < blocks}">
|
||||||
|
<a class="next-btn" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${lPage+1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="next-btn" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${lPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<a class="last-btn" href="/gte/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${pages}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />" title="<s:message code="common.page.last"/>" ><s:message code="common.page.last"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,215 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.visual.visualSetPreview.title"/></title>
|
||||||
|
<script src="/js/lib/jquery.slides.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#visual {
|
||||||
|
display: none;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.slidesjs-next_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:140px;
|
||||||
|
right:0px;
|
||||||
|
width:12px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_next.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover.slidesjs-next_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:140px;
|
||||||
|
right:0px;
|
||||||
|
width:12px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_next_over.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.slidesjs-previous_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:140px;
|
||||||
|
left:0px;
|
||||||
|
width:12px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_pre.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover.slidesjs-previous_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:140px;
|
||||||
|
left:0px;
|
||||||
|
width:12px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_pre_over.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.slidesjs-play_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:10px;
|
||||||
|
right:10px;
|
||||||
|
width:16px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_play.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover.slidesjs-play_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:10px;
|
||||||
|
right:10px;
|
||||||
|
width:16px;
|
||||||
|
height:18px;
|
||||||
|
background-image: url("/img/manager/visual/btn_play_over.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.slidesjs-stop_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:10px;
|
||||||
|
right:10px;
|
||||||
|
width:18px;
|
||||||
|
height:17px;
|
||||||
|
background-image: url("/img/manager/visual/btn_stop.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover.slidesjs-stop_visual {
|
||||||
|
position:absolute;
|
||||||
|
top:10px;
|
||||||
|
right:10px;
|
||||||
|
width:18px;
|
||||||
|
height:17px;
|
||||||
|
background-image: url("/img/manager/visual/btn_stop_over.png");
|
||||||
|
z-index:9999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -9999px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual {
|
||||||
|
font-size:0;
|
||||||
|
position:absolute;
|
||||||
|
bottom:10px;
|
||||||
|
right:10px;
|
||||||
|
z-index:9999;
|
||||||
|
float: left;
|
||||||
|
list-style: none;
|
||||||
|
padding:0;
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual li {
|
||||||
|
display:inline;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual li a {
|
||||||
|
float: left;
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
z-index:9999;
|
||||||
|
background-image: url("/img/manager/visual/btn_pagination_off.png");
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual li a:hover {
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
z-index:9999;
|
||||||
|
background-image: url("/img/manager/visual/btn_pagination_over.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
.slidesjs-pagination_visual li a.active,
|
||||||
|
.slidesjs-pagination_visual li a:hover.active {
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
z-index:9999;
|
||||||
|
background-image: url("/img/manager/visual/btn_pagination_on.png");
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="visual" style="width:650px; height:300px; display: none; position:relative;">
|
||||||
|
<img src="/img/manager/visual/example-slide-1.jpg" width="650px" height="300px" alt="visual1" />
|
||||||
|
<img src="/img/manager/visual/example-slide-2.jpg" width="650px" height="300px" alt="visual2" />
|
||||||
|
<img src="/img/manager/visual/example-slide-3.jpg" width="650px" height="300px" alt="visual3" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
var visualSetSkin = "";
|
||||||
|
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${visualSetSkin == "A"}'>
|
||||||
|
visualSetSkin = "fade";
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${visualSetSkin == "B"}'>
|
||||||
|
visualSetSkin = "slide";
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
$('#visual').slidesjs({
|
||||||
|
width:650,
|
||||||
|
height:300,
|
||||||
|
autoHeight: false,
|
||||||
|
dataKey : "visual",
|
||||||
|
play: {
|
||||||
|
active: true,
|
||||||
|
auto: true,
|
||||||
|
interval: 4000,
|
||||||
|
swap: true,
|
||||||
|
restartDelay: 2500,
|
||||||
|
effect: visualSetSkin
|
||||||
|
},
|
||||||
|
navigation: {
|
||||||
|
effect: visualSetSkin
|
||||||
|
},
|
||||||
|
pagination: {
|
||||||
|
effect: visualSetSkin
|
||||||
|
},
|
||||||
|
effect: {
|
||||||
|
fade: {
|
||||||
|
speed: 400
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
266
src/main/webapp/WEB-INF/views/manager/visual/visualSetList.jsp
Normal file
266
src/main/webapp/WEB-INF/views/manager/visual/visualSetList.jsp
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
<%@ page contentType="text/html;charset=utf-8" %>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
|
||||||
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title><s:message code="manager.visual.visualSetList.title"/></title>
|
||||||
|
<script src="/js/lib/base64.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx != "0" && menuCode == "N") || menuCode == "visual"}'>
|
||||||
|
<div class="seed-popup-wrap">
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<div class="page-title-wrap clear">
|
||||||
|
<div class="page-title-inner">
|
||||||
|
<h3 class="page-title"><s:message code="manager.visual.nav.visualSetList"/></h3>
|
||||||
|
<div class="tooltipBox type01">
|
||||||
|
<button type="button" class="page-tip">페이지안내</button>
|
||||||
|
<div class="tooltipText">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sch-content-wrap clear">
|
||||||
|
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<c:url var="actionUrl" value="/gtm/${siteIdx}/visualSetList.do" />
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:url var="actionUrl" value="/menu/${siteIdx}/visualSetList.do" />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
<form:form name="frmSearch" id="frmSearch" action="${actionUrl}" method="post">
|
||||||
|
<input type="hidden" name="page" value="1" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="siteMenuIdx" value="<c:out escapeXml='true' value='${siteMenuIdx}' />"/>
|
||||||
|
<input type="hidden" name="menuCode" value="<c:out escapeXml='true' value='${menuCode}' />"/>
|
||||||
|
<fieldset>
|
||||||
|
<legend>검색 폼</legend>
|
||||||
|
<select name="column" id="column" title="<s:message code="common.select.option.value"/>" class="sch-select">
|
||||||
|
<option value="A" <c:if test="${column == 'A'}">selected="selected"</c:if>><s:message code="common.select.option.value.all"/></option>
|
||||||
|
<option value="visualSetName" <c:if test="${column == 'visualSetName'}">selected="selected"</c:if>><s:message code="manager.visual.visualSetList.visualSetName"/></option>
|
||||||
|
<option value="tMember.memberName" <c:if test="${column == 'tMember.memberName'}">selected="selected"</c:if>><s:message code="common.memberName"/></option>
|
||||||
|
</select>
|
||||||
|
<input type="search" name="search" id="search" value="<c:out escapeXml='true' value='${search}' />" title="<s:message code="common.search.value"/>" class="sch-text">
|
||||||
|
<button type="submit" class="btn-page-sch"><s:message code="common.button.search"/></button>
|
||||||
|
</fieldset>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form:form name="frm" id="frm" method="post" action="/gtm/proc/${siteIdx}/visualSetStatusProc.do">
|
||||||
|
<input type="hidden" name="page" value="<c:out escapeXml='true' value='${page}' />" />
|
||||||
|
<input type="hidden" name="row" value="<c:out escapeXml='true' value='${row}' />" />
|
||||||
|
<input type="hidden" name="orderColumn" value="<c:out escapeXml='true' value='${orderColumn}' />" />
|
||||||
|
<input type="hidden" name="order" value="<c:out escapeXml='true' value='${order}' />" />
|
||||||
|
<input type="hidden" name="column" value="<c:out escapeXml='true' value='${column}' />" />
|
||||||
|
<input type="hidden" name="search" value="<c:out escapeXml='true' value='${search}' />" />
|
||||||
|
|
||||||
|
<div class="more-btn-box">
|
||||||
|
<button type="button" id="moreTableItem" class="more-table-item">칼럼 더보기</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-wrap">
|
||||||
|
<div class="table-layout br-none">
|
||||||
|
<table>
|
||||||
|
<caption><s:message code="manager.visual.visualSetList.table.caption"/></caption>
|
||||||
|
<colgroup>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><col class="small_checkbox"></c:if>
|
||||||
|
<col class="title">
|
||||||
|
<col>
|
||||||
|
<col class="item-tablet-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
<col class="item-mobile-hidden">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><th scope="col"><input type="checkbox" class="checkbox check-all" name="allcheck" id="allcheck" title="<s:message code="common.message.allCheck"/>" /><label for="allcheck"></label></th></c:if>
|
||||||
|
<th scope="col"><s:message code="manager.visual.visualSetList.visualSetName"/> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col"><s:message code="manager.visual.visualSetList.visualDataCnt"/></th>
|
||||||
|
<th scope="col" class="item-tablet-hidden"><s:message code="common.memberName"/> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=tMember.memberName&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=tMember.memberName&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.regDate"/> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetRegDate&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetRegDate&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
<th scope="col" class="item-mobile-hidden"><s:message code="common.status"/> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetStatus&order=ASC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.up"/>" width="7" height="10" alt="<s:message code="common.move.up"/>" /></a></span> <span><a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=visualSetStatus&order=DESC&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><img src="<s:message code="common.column.down"/>" width="7" height="10" alt="<s:message code="common.move.down"/>" /></a></span></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty visualSetList}">
|
||||||
|
<c:forEach items="${visualSetList}" var="visualSetList" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'><td><input type="checkbox" class="checkbox check-base" name="idxs" id="visual_${visualSetList._visualSetIdx}" value="<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />" /><label for="visual_${visualSetList._visualSetIdx}"></label> ${visualSetListCnt - (page-1)*row - status.index}</td></c:if>
|
||||||
|
<td class="al">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${visualSetList._visualSetType == "normal"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetEdit/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />"><span><c:out escapeXml='true' value='${visualSetList._visualSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${visualSetList._visualSetType == "active"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetEditActive/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />"><span><c:out escapeXml='true' value='${visualSetList._visualSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</c:when>
|
||||||
|
<c:when test='${menuCode == "visual"}'>
|
||||||
|
<a class="hover-link codeClick" href="/<c:out escapeXml='true' value='${siteIdx}' />/<c:out escapeXml='true' value='${menuCode}' />/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />/mini.do" data-seed="${visualSetList._visualSetRelation}:<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />"><span><c:out escapeXml='true' value='${visualSetList._visualSetName}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<a class="hover-link" href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />/visualDataList.do"><span><c:out escapeXml='true' value='${visualSetList._visualDataIdxCnt}' /></span></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out escapeXml='true' value='${visualSetList._visualDataIdxCnt}' />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="item-tablet-hidden"><c:out escapeXml='true' value='${visualSetList._memberName}' />(<c:out escapeXml='true' value='${visualSetList._memberId}' />)</td>
|
||||||
|
<td class="item-mobile-hidden">${fn:substring(visualSetList._visualSetRegDate, 0, 10)}</td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'U'}">
|
||||||
|
<td class="item-mobile-hidden skin-default"><s:message code="common.use"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'S'}">
|
||||||
|
<td class="state-stop item-mobile-hidden"><s:message code="common.stop"/></td>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${visualSetList._visualSetStatus == 'D'}">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>
|
||||||
|
<td class="state-delete item-mobile-hidden">
|
||||||
|
<a class="dataDel" href="/gtm/proc/<c:out escapeXml='true' value='${siteIdx}' />/visualSetDelProc/<c:out escapeXml='true' value='${visualSetList._visualSetIdx}' />.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />"><s:message code="common.button.del"/></a>
|
||||||
|
</td>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<td class="state-delete item-mobile-hidden"><s:message code="common.button.del"/></td>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td class="no-data-colspan"><s:message code="common.message.no.data"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'>
|
||||||
|
<div class="change-state-area">
|
||||||
|
<label for="selStatus"><s:message code="common.message.choice"/></label>
|
||||||
|
<select name="selStatus" id="selStatus" title="<s:message code="common.select.option.value"/>" class="change-list">
|
||||||
|
<option value=""><s:message code="common.select.option.value"/></option>
|
||||||
|
<option value="U"><s:message code="common.select.option.value.use"/></option>
|
||||||
|
<option value="S"><s:message code="common.select.option.value.stop"/></option>
|
||||||
|
<option value="D"><s:message code="common.select.option.value.delete"/></option>
|
||||||
|
</select>
|
||||||
|
<button type="submit" class="btn-change-state"><s:message code="common.button.status"/></button>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
<div class="pagination-container">
|
||||||
|
<div class="pagination-inner clear">
|
||||||
|
<div class="pagination-control prev clear">
|
||||||
|
<a class="first-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=1&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.first"/>" ><s:message code="common.page.first"/></a>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block > 1}">
|
||||||
|
<a class="prev-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${fPage-1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="prev-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${fPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.prev"/>" ><s:message code="common.page.prev"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</div>
|
||||||
|
<ul class="pagination clear">
|
||||||
|
<c:forEach begin="0" end="${lPage-fPage}" var="index" >
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${index+fPage==page}">
|
||||||
|
<li><a class="on" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${page}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.now"/>" ><c:out escapeXml='true' value='${page}' /></a></li>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<li><a href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${index+fPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<c:out escapeXml='true' value='${index+fPage}' /> <s:message code="common.page.page"/>" ><c:out escapeXml='true' value='${index+fPage}' /></a></li>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</ul>
|
||||||
|
<div class="pagination-control next clear">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${block < blocks}">
|
||||||
|
<a class="next-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${lPage+1}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="next-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${lPage}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.next"/>" ><s:message code="common.page.next"/></a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<a class="last-btn" href="<c:choose><c:when test='${siteMenuIdx == "0" && menuCode == "N"}'>/gtm/</c:when><c:otherwise>/menu/</c:otherwise></c:choose><c:out escapeXml='true' value='${siteIdx}' />/visualSetList.do?page=<c:out escapeXml='true' value='${pages}' />&row=<c:out escapeXml='true' value='${row}' />&orderColumn=<c:out escapeXml='true' value='${orderColumn}' />&order=<c:out escapeXml='true' value='${order}' />&column=<c:out escapeXml='true' value='${column}' />&search=<c:out escapeXml='true' value='${search}' />&siteMenuIdx=<c:out escapeXml='true' value='${siteMenuIdx}' />&menuCode=<c:out escapeXml='true' value='${menuCode}' />" title="<s:message code="common.page.last"/>" ><s:message code="common.page.last"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx == "0" && menuCode == "N") && (memberGrant == "S" || memberAuth)}'>
|
||||||
|
<div class="btn-area">
|
||||||
|
<a href="/gtm/<c:out escapeXml='true' value='${siteIdx}' />/visualSetForm.do" class="btn-normal violet"><s:message code="common.button.create"/></a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<c:if test='${(siteMenuIdx != "0" && menuCode == "N") || menuCode == "visual"}'>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* <![CDATA[ */
|
||||||
|
$(".dataDel").click(function(){
|
||||||
|
if(!confirm("<s:message code='common.message.visual.set.confirm.del'/>")){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".codeClick").click(function(){
|
||||||
|
var url = $(this).attr("href");
|
||||||
|
var dataSeeds = $(this).attr("data-seed").split(":");
|
||||||
|
|
||||||
|
location.replace("/common/getCode/<c:out escapeXml='true' value='${siteIdx}' />.do?getUrl="+Base64.encode(url)+"&codeType=func&pageType=manager&codeRelation="+dataSeeds[0]+"&funcType=visual&funcSetIdx="+dataSeeds[1]);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#frm").submit(function(){
|
||||||
|
|
||||||
|
if(!$('input:checkbox[name="idxs"]').is(":checked")){
|
||||||
|
alert("<s:message code="common.message.no.check"/>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($("#selStatus option:selected").val() == ""){
|
||||||
|
alert("<s:message code="common.message.no.select"/>");
|
||||||
|
$("#selStatus").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.blockUI({ message : '<h1><img src="/img/blockbusy.gif" /> <s:message code="common.message.ajaxwait"/></h1>' });
|
||||||
|
});
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
8
src/main/webapp/codemirror/.gitattributes
vendored
Normal file
8
src/main/webapp/codemirror/.gitattributes
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
*.txt text
|
||||||
|
*.js text
|
||||||
|
*.html text
|
||||||
|
*.md text
|
||||||
|
*.json text
|
||||||
|
*.yml text
|
||||||
|
*.css text
|
||||||
|
*.svg text
|
||||||
6
src/main/webapp/codemirror/.gitignore
vendored
Normal file
6
src/main/webapp/codemirror/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/node_modules
|
||||||
|
/npm-debug.log
|
||||||
|
test.html
|
||||||
|
.tern-*
|
||||||
|
*~
|
||||||
|
*.swp
|
||||||
3
src/main/webapp/codemirror/.travis.yml
Normal file
3
src/main/webapp/codemirror/.travis.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- 0.8
|
||||||
255
src/main/webapp/codemirror/AUTHORS
Normal file
255
src/main/webapp/codemirror/AUTHORS
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
List of CodeMirror contributors. Updated before every release.
|
||||||
|
|
||||||
|
4r2r
|
||||||
|
Aaron Brooks
|
||||||
|
Adam King
|
||||||
|
adanlobato
|
||||||
|
Adán Lobato
|
||||||
|
aeroson
|
||||||
|
Ahmad Amireh
|
||||||
|
Ahmad M. Zawawi
|
||||||
|
ahoward
|
||||||
|
Akeksandr Motsjonov
|
||||||
|
Albert Xing
|
||||||
|
Alexander Pavlov
|
||||||
|
Alexander Schepanovski
|
||||||
|
alexey-k
|
||||||
|
Alex Piggott
|
||||||
|
Amy
|
||||||
|
Ananya Sen
|
||||||
|
AndersMad
|
||||||
|
Andre von Houck
|
||||||
|
Andrey Lushnikov
|
||||||
|
Andy Kimball
|
||||||
|
Andy Li
|
||||||
|
angelozerr
|
||||||
|
angelo.zerr@gmail.com
|
||||||
|
Ankit Ahuja
|
||||||
|
Ansel Santosa
|
||||||
|
Anthony Grimes
|
||||||
|
areos
|
||||||
|
Atul Bhouraskar
|
||||||
|
Aurelian Oancea
|
||||||
|
Bastian Müller
|
||||||
|
benbro
|
||||||
|
Benjamin DeCoste
|
||||||
|
Ben Keen
|
||||||
|
boomyjee
|
||||||
|
borawjm
|
||||||
|
Brandon Frohs
|
||||||
|
Brett Zamir
|
||||||
|
Brian Sletten
|
||||||
|
Bruce Mitchener
|
||||||
|
Chandra Sekhar Pydi
|
||||||
|
Charles Skelton
|
||||||
|
Chris Coyier
|
||||||
|
Chris Granger
|
||||||
|
Chris Morgan
|
||||||
|
Christopher Brown
|
||||||
|
ciaranj
|
||||||
|
CodeAnimal
|
||||||
|
ComFreek
|
||||||
|
dagsta
|
||||||
|
Dan Heberden
|
||||||
|
Daniel, Dao Quang Minh
|
||||||
|
Daniel Faust
|
||||||
|
Daniel Huigens
|
||||||
|
Daniel Neel
|
||||||
|
Daniel Parnell
|
||||||
|
Danny Yoo
|
||||||
|
David Mignot
|
||||||
|
David Pathakjee
|
||||||
|
deebugger
|
||||||
|
Deep Thought
|
||||||
|
Dominator008
|
||||||
|
Domizio Demichelis
|
||||||
|
Drew Bratcher
|
||||||
|
Drew Hintz
|
||||||
|
Drew Khoury
|
||||||
|
Dror BG
|
||||||
|
duralog
|
||||||
|
edsharp
|
||||||
|
ekhaled
|
||||||
|
Eric Allam
|
||||||
|
eustas
|
||||||
|
Fauntleroy
|
||||||
|
fbuchinger
|
||||||
|
feizhang365
|
||||||
|
Felipe Lalanne
|
||||||
|
Felix Raab
|
||||||
|
Filip Noetzel
|
||||||
|
flack
|
||||||
|
ForbesLindesay
|
||||||
|
Ford_Lawnmower
|
||||||
|
Gabriel Nahmias
|
||||||
|
galambalazs
|
||||||
|
Gautam Mehta
|
||||||
|
Glenn Jorde
|
||||||
|
Glenn Ruehle
|
||||||
|
Golevka
|
||||||
|
Gordon Smith
|
||||||
|
greengiant
|
||||||
|
Guillaume Massé
|
||||||
|
Guillaume Massé
|
||||||
|
Hans Engel
|
||||||
|
Hardest
|
||||||
|
Hasan Karahan
|
||||||
|
Hocdoc
|
||||||
|
Ian Beck
|
||||||
|
Ian Wehrman
|
||||||
|
Ian Wetherbee
|
||||||
|
Ice White
|
||||||
|
ICHIKAWA, Yuji
|
||||||
|
Ingo Richter
|
||||||
|
Irakli Gozalishvili
|
||||||
|
Ivan Kurnosov
|
||||||
|
Jacob Lee
|
||||||
|
Jakub Vrana
|
||||||
|
James Campos
|
||||||
|
James Thorne
|
||||||
|
Jamie Hill
|
||||||
|
Jan Jongboom
|
||||||
|
jankeromnes
|
||||||
|
Jan Keromnes
|
||||||
|
Jan T. Sott
|
||||||
|
Jason
|
||||||
|
Jason Grout
|
||||||
|
Jason Johnston
|
||||||
|
Jason San Jose
|
||||||
|
Jason Siefken
|
||||||
|
Jean Boussier
|
||||||
|
jeffkenton
|
||||||
|
Jeff Pickhardt
|
||||||
|
jem (graphite)
|
||||||
|
Jochen Berger
|
||||||
|
John Connor
|
||||||
|
John Lees-Miller
|
||||||
|
John Snelson
|
||||||
|
jongalloway
|
||||||
|
Joost-Wim Boekesteijn
|
||||||
|
Joseph Pecoraro
|
||||||
|
Joshua Newman
|
||||||
|
jots
|
||||||
|
Juan Benavides Romero
|
||||||
|
Jucovschi Constantin
|
||||||
|
jwallers@gmail.com
|
||||||
|
kaniga
|
||||||
|
Ken Newman
|
||||||
|
Ken Rockot
|
||||||
|
Kevin Sawicki
|
||||||
|
Klaus Silveira
|
||||||
|
Koh Zi Han, Cliff
|
||||||
|
komakino
|
||||||
|
Konstantin Lopuhin
|
||||||
|
koops
|
||||||
|
ks-ifware
|
||||||
|
kubelsmieci
|
||||||
|
Lanny
|
||||||
|
leaf corcoran
|
||||||
|
Leonya Khachaturov
|
||||||
|
Liam Newman
|
||||||
|
LM
|
||||||
|
Lorenzo Stoakes
|
||||||
|
lynschinzer
|
||||||
|
Maksim Lin
|
||||||
|
Maksym Taran
|
||||||
|
Marat Dreizin
|
||||||
|
Marco Aurélio
|
||||||
|
Marijn Haverbeke
|
||||||
|
Mario Pietsch
|
||||||
|
Mark Lentczner
|
||||||
|
Martin Balek
|
||||||
|
Martín Gaitán
|
||||||
|
Mason Malone
|
||||||
|
Mateusz Paprocki
|
||||||
|
mats cronqvist
|
||||||
|
Matthew Beale
|
||||||
|
Matthias BUSSONNIER
|
||||||
|
Matt McDonald
|
||||||
|
Matt Pass
|
||||||
|
Matt Sacks
|
||||||
|
Maximilian Hils
|
||||||
|
Max Kirsch
|
||||||
|
mbarkhau
|
||||||
|
Metatheos
|
||||||
|
Micah Dubinko
|
||||||
|
Michael Lehenbauer
|
||||||
|
Michael Zhou
|
||||||
|
Mighty Guava
|
||||||
|
Miguel Castillo
|
||||||
|
Mike
|
||||||
|
Mike Brevoort
|
||||||
|
Mike Diaz
|
||||||
|
Mike Ivanov
|
||||||
|
Mike Kadin
|
||||||
|
MinRK
|
||||||
|
misfo
|
||||||
|
mps
|
||||||
|
Narciso Jaramillo
|
||||||
|
Nathan Williams
|
||||||
|
nerbert
|
||||||
|
nguillaumin
|
||||||
|
Niels van Groningen
|
||||||
|
Nikita Beloglazov
|
||||||
|
Nikita Vasilyev
|
||||||
|
nlwillia
|
||||||
|
pablo
|
||||||
|
Page
|
||||||
|
Patrick Strawderman
|
||||||
|
Paul Garvin
|
||||||
|
Paul Ivanov
|
||||||
|
Pavel Feldman
|
||||||
|
Paweł Bartkiewicz
|
||||||
|
peteguhl
|
||||||
|
peterkroon
|
||||||
|
Peter Kroon
|
||||||
|
prasanthj
|
||||||
|
Prasanth J
|
||||||
|
Rahul
|
||||||
|
Randy Edmunds
|
||||||
|
Richard Z.H. Wang
|
||||||
|
robertop23
|
||||||
|
Robert Plummer
|
||||||
|
Ruslan Osmanov
|
||||||
|
sabaca
|
||||||
|
Samuel Ainsworth
|
||||||
|
sandeepshetty
|
||||||
|
santec
|
||||||
|
Sascha Peilicke
|
||||||
|
satchmorun
|
||||||
|
sathyamoorthi
|
||||||
|
SCLINIC\jdecker
|
||||||
|
shaund
|
||||||
|
shaun gilchrist
|
||||||
|
Shmuel Englard
|
||||||
|
sonson
|
||||||
|
spastorelli
|
||||||
|
Stas Kobzar
|
||||||
|
Stefan Borsje
|
||||||
|
Steffen Beyer
|
||||||
|
Steve O'Hara
|
||||||
|
stoskov
|
||||||
|
Tarmil
|
||||||
|
tfjgeorge
|
||||||
|
Thaddee Tyl
|
||||||
|
think
|
||||||
|
Thomas Dvornik
|
||||||
|
Thomas Schmid
|
||||||
|
Tim Baumann
|
||||||
|
Timothy Farrell
|
||||||
|
Timothy Hatcher
|
||||||
|
TobiasBg
|
||||||
|
Tomas-A
|
||||||
|
Tomas Varaneckas
|
||||||
|
Tom Erik Støwer
|
||||||
|
Tom MacWright
|
||||||
|
Tony Jian
|
||||||
|
Vestimir Markov
|
||||||
|
vf
|
||||||
|
Volker Mische
|
||||||
|
William Jamieson
|
||||||
|
Wojtek Ptak
|
||||||
|
Xavier Mendez
|
||||||
|
Yunchi Luo
|
||||||
|
Yuvi Panda
|
||||||
|
Zachary Dremann
|
||||||
72
src/main/webapp/codemirror/CONTRIBUTING.md
Normal file
72
src/main/webapp/codemirror/CONTRIBUTING.md
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# How to contribute
|
||||||
|
|
||||||
|
- [Getting help](#getting-help-)
|
||||||
|
- [Submitting bug reports](#submitting-bug-reports-)
|
||||||
|
- [Contributing code](#contributing-code-)
|
||||||
|
|
||||||
|
## Getting help
|
||||||
|
|
||||||
|
Community discussion, questions, and informal bug reporting is done on the
|
||||||
|
[CodeMirror Google group](http://groups.google.com/group/codemirror).
|
||||||
|
|
||||||
|
## Submitting bug reports
|
||||||
|
|
||||||
|
The preferred way to report bugs is to use the
|
||||||
|
[GitHub issue tracker](http://github.com/marijnh/CodeMirror/issues). Before
|
||||||
|
reporting a bug, read these pointers.
|
||||||
|
|
||||||
|
**Note:** The issue tracker is for *bugs*, not requests for help. Questions
|
||||||
|
should be asked on the
|
||||||
|
[CodeMirror Google group](http://groups.google.com/group/codemirror) instead.
|
||||||
|
|
||||||
|
### Reporting bugs effectively
|
||||||
|
|
||||||
|
- CodeMirror is maintained by volunteers. They don't owe you anything, so be
|
||||||
|
polite. Reports with an indignant or belligerent tone tend to be moved to the
|
||||||
|
bottom of the pile.
|
||||||
|
|
||||||
|
- Include information about **the browser in which the problem occurred**. Even
|
||||||
|
if you tested several browsers, and the problem occurred in all of them,
|
||||||
|
mention this fact in the bug report. Also include browser version numbers and
|
||||||
|
the operating system that you're on.
|
||||||
|
|
||||||
|
- Mention which release of CodeMirror you're using. Preferably, try also with
|
||||||
|
the current development snapshot, to ensure the problem has not already been
|
||||||
|
fixed.
|
||||||
|
|
||||||
|
- Mention very precisely what went wrong. "X is broken" is not a good bug
|
||||||
|
report. What did you expect to happen? What happened instead? Describe the
|
||||||
|
exact steps a maintainer has to take to make the problem occur. We can not
|
||||||
|
fix something that we can not observe.
|
||||||
|
|
||||||
|
- If the problem can not be reproduced in any of the demos included in the
|
||||||
|
CodeMirror distribution, please provide an HTML document that demonstrates
|
||||||
|
the problem. The best way to do this is to go to
|
||||||
|
[jsbin.com](http://jsbin.com/ihunin/edit), enter it there, press save, and
|
||||||
|
include the resulting link in your bug report.
|
||||||
|
|
||||||
|
## Contributing code
|
||||||
|
|
||||||
|
- Make sure you have a [GitHub Account](https://github.com/signup/free)
|
||||||
|
- Fork [CodeMirror](https://github.com/marijnh/CodeMirror/)
|
||||||
|
([how to fork a repo](https://help.github.com/articles/fork-a-repo))
|
||||||
|
- Make your changes
|
||||||
|
- If your changes are easy to test or likely to regress, add tests.
|
||||||
|
Tests for the core go into `test/test.js`, some modes have their own
|
||||||
|
test suite under `mode/XXX/test.js`. Feel free to add new test
|
||||||
|
suites to modes that don't have one yet (be sure to link the new
|
||||||
|
tests into `test/index.html`).
|
||||||
|
- Follow the general code style of the rest of the project (see
|
||||||
|
below). Run `bin/lint` to verify that the linter is happy.
|
||||||
|
- Make sure all tests pass. Visit `test/index.html` in your browser to
|
||||||
|
run them.
|
||||||
|
- Submit a pull request
|
||||||
|
([how to create a pull request](https://help.github.com/articles/fork-a-repo))
|
||||||
|
|
||||||
|
### Coding standards
|
||||||
|
|
||||||
|
- 2 spaces per indentation level, no tabs.
|
||||||
|
- Include semicolons after statements.
|
||||||
|
- Note that the linter (`bin/lint`) which is run after each commit
|
||||||
|
complains about unused variables and functions. Prefix their names
|
||||||
|
with an underscore to muffle it.
|
||||||
19
src/main/webapp/codemirror/LICENSE
Normal file
19
src/main/webapp/codemirror/LICENSE
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Copyright (C) 2013 by Marijn Haverbeke <marijnh@gmail.com> and others
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
11
src/main/webapp/codemirror/README.md
Normal file
11
src/main/webapp/codemirror/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# CodeMirror
|
||||||
|
[](http://travis-ci.org/marijnh/CodeMirror)
|
||||||
|
[](http://badge.fury.io/js/codemirror)
|
||||||
|
|
||||||
|
CodeMirror is a JavaScript component that provides a code editor in
|
||||||
|
the browser. When a mode is available for the language you are coding
|
||||||
|
in, it will color your code, and optionally help with indentation.
|
||||||
|
|
||||||
|
The project page is http://codemirror.net
|
||||||
|
The manual is at http://codemirror.net/doc/manual.html
|
||||||
|
The contributing guidelines are in [CONTRIBUTING.md](https://github.com/marijnh/CodeMirror/blob/master/CONTRIBUTING.md)
|
||||||
145
src/main/webapp/codemirror/addon/comment/comment.js
vendored
Normal file
145
src/main/webapp/codemirror/addon/comment/comment.js
vendored
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var noOptions = {};
|
||||||
|
var nonWS = /[^\s\u00a0]/;
|
||||||
|
var Pos = CodeMirror.Pos;
|
||||||
|
|
||||||
|
function firstNonWS(str) {
|
||||||
|
var found = str.search(nonWS);
|
||||||
|
return found == -1 ? 0 : found;
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.commands.toggleComment = function(cm) {
|
||||||
|
var from = cm.getCursor("start"), to = cm.getCursor("end");
|
||||||
|
cm.uncomment(from, to) || cm.lineComment(from, to);
|
||||||
|
};
|
||||||
|
|
||||||
|
CodeMirror.defineExtension("lineComment", function(from, to, options) {
|
||||||
|
if (!options) options = noOptions;
|
||||||
|
var self = this, mode = self.getModeAt(from);
|
||||||
|
var commentString = options.lineComment || mode.lineComment;
|
||||||
|
if (!commentString) {
|
||||||
|
if (options.blockCommentStart || mode.blockCommentStart) {
|
||||||
|
options.fullLines = true;
|
||||||
|
self.blockComment(from, to, options);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var firstLine = self.getLine(from.line);
|
||||||
|
if (firstLine == null) return;
|
||||||
|
var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);
|
||||||
|
var pad = options.padding == null ? " " : options.padding;
|
||||||
|
var blankLines = options.commentBlankLines || from.line == to.line;
|
||||||
|
|
||||||
|
self.operation(function() {
|
||||||
|
if (options.indent) {
|
||||||
|
var baseString = firstLine.slice(0, firstNonWS(firstLine));
|
||||||
|
for (var i = from.line; i < end; ++i) {
|
||||||
|
var line = self.getLine(i), cut = baseString.length;
|
||||||
|
if (!blankLines && !nonWS.test(line)) continue;
|
||||||
|
if (line.slice(0, cut) != baseString) cut = firstNonWS(line);
|
||||||
|
self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (var i = from.line; i < end; ++i) {
|
||||||
|
if (blankLines || nonWS.test(self.getLine(i)))
|
||||||
|
self.replaceRange(commentString + pad, Pos(i, 0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
CodeMirror.defineExtension("blockComment", function(from, to, options) {
|
||||||
|
if (!options) options = noOptions;
|
||||||
|
var self = this, mode = self.getModeAt(from);
|
||||||
|
var startString = options.blockCommentStart || mode.blockCommentStart;
|
||||||
|
var endString = options.blockCommentEnd || mode.blockCommentEnd;
|
||||||
|
if (!startString || !endString) {
|
||||||
|
if ((options.lineComment || mode.lineComment) && options.fullLines != false)
|
||||||
|
self.lineComment(from, to, options);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var end = Math.min(to.line, self.lastLine());
|
||||||
|
if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;
|
||||||
|
|
||||||
|
var pad = options.padding == null ? " " : options.padding;
|
||||||
|
if (from.line > end) return;
|
||||||
|
|
||||||
|
self.operation(function() {
|
||||||
|
if (options.fullLines != false) {
|
||||||
|
var lastLineHasText = nonWS.test(self.getLine(end));
|
||||||
|
self.replaceRange(pad + endString, Pos(end));
|
||||||
|
self.replaceRange(startString + pad, Pos(from.line, 0));
|
||||||
|
var lead = options.blockCommentLead || mode.blockCommentLead;
|
||||||
|
if (lead != null) for (var i = from.line + 1; i <= end; ++i)
|
||||||
|
if (i != end || lastLineHasText)
|
||||||
|
self.replaceRange(lead + pad, Pos(i, 0));
|
||||||
|
} else {
|
||||||
|
self.replaceRange(endString, to);
|
||||||
|
self.replaceRange(startString, from);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
CodeMirror.defineExtension("uncomment", function(from, to, options) {
|
||||||
|
if (!options) options = noOptions;
|
||||||
|
var self = this, mode = self.getModeAt(from);
|
||||||
|
var end = Math.min(to.line, self.lastLine()), start = Math.min(from.line, end);
|
||||||
|
|
||||||
|
// Try finding line comments
|
||||||
|
var lineString = options.lineComment || mode.lineComment, lines = [];
|
||||||
|
var pad = options.padding == null ? " " : options.padding, didSomething;
|
||||||
|
lineComment: {
|
||||||
|
if (!lineString) break lineComment;
|
||||||
|
for (var i = start; i <= end; ++i) {
|
||||||
|
var line = self.getLine(i);
|
||||||
|
var found = line.indexOf(lineString);
|
||||||
|
if (found == -1 && (i != end || i == start) && nonWS.test(line)) break lineComment;
|
||||||
|
if (i != start && found > -1 && nonWS.test(line.slice(0, found))) break lineComment;
|
||||||
|
lines.push(line);
|
||||||
|
}
|
||||||
|
self.operation(function() {
|
||||||
|
for (var i = start; i <= end; ++i) {
|
||||||
|
var line = lines[i - start];
|
||||||
|
var pos = line.indexOf(lineString), endPos = pos + lineString.length;
|
||||||
|
if (pos < 0) continue;
|
||||||
|
if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;
|
||||||
|
didSomething = true;
|
||||||
|
self.replaceRange("", Pos(i, pos), Pos(i, endPos));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (didSomething) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try block comments
|
||||||
|
var startString = options.blockCommentStart || mode.blockCommentStart;
|
||||||
|
var endString = options.blockCommentEnd || mode.blockCommentEnd;
|
||||||
|
if (!startString || !endString) return false;
|
||||||
|
var lead = options.blockCommentLead || mode.blockCommentLead;
|
||||||
|
var startLine = self.getLine(start), endLine = end == start ? startLine : self.getLine(end);
|
||||||
|
var open = startLine.indexOf(startString), close = endLine.lastIndexOf(endString);
|
||||||
|
if (close == -1 && start != end) {
|
||||||
|
endLine = self.getLine(--end);
|
||||||
|
close = endLine.lastIndexOf(endString);
|
||||||
|
}
|
||||||
|
if (open == -1 || close == -1) return false;
|
||||||
|
|
||||||
|
self.operation(function() {
|
||||||
|
self.replaceRange("", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),
|
||||||
|
Pos(end, close + endString.length));
|
||||||
|
var openEnd = open + startString.length;
|
||||||
|
if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;
|
||||||
|
self.replaceRange("", Pos(start, open), Pos(start, openEnd));
|
||||||
|
if (lead) for (var i = start + 1; i <= end; ++i) {
|
||||||
|
var line = self.getLine(i), found = line.indexOf(lead);
|
||||||
|
if (found == -1 || nonWS.test(line.slice(0, found))) continue;
|
||||||
|
var foundEnd = found + lead.length;
|
||||||
|
if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;
|
||||||
|
self.replaceRange("", Pos(i, found), Pos(i, foundEnd));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
})();
|
||||||
54
src/main/webapp/codemirror/addon/comment/continuecomment.js
vendored
Normal file
54
src/main/webapp/codemirror/addon/comment/continuecomment.js
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
(function() {
|
||||||
|
var modes = ["clike", "css", "javascript"];
|
||||||
|
for (var i = 0; i < modes.length; ++i)
|
||||||
|
CodeMirror.extendMode(modes[i], {blockCommentContinue: " * "});
|
||||||
|
|
||||||
|
function continueComment(cm) {
|
||||||
|
var pos = cm.getCursor(), token = cm.getTokenAt(pos);
|
||||||
|
if (token.type != "comment") return CodeMirror.Pass;
|
||||||
|
var mode = CodeMirror.innerMode(cm.getMode(), token.state).mode;
|
||||||
|
|
||||||
|
var insert;
|
||||||
|
if (mode.blockCommentStart && mode.blockCommentContinue) {
|
||||||
|
var end = token.string.indexOf(mode.blockCommentEnd);
|
||||||
|
var full = cm.getRange(CodeMirror.Pos(pos.line, 0), CodeMirror.Pos(pos.line, token.end)), found;
|
||||||
|
if (end != -1 && end == token.string.length - mode.blockCommentEnd.length) {
|
||||||
|
// Comment ended, don't continue it
|
||||||
|
} else if (token.string.indexOf(mode.blockCommentStart) == 0) {
|
||||||
|
insert = full.slice(0, token.start);
|
||||||
|
if (!/^\s*$/.test(insert)) {
|
||||||
|
insert = "";
|
||||||
|
for (var i = 0; i < token.start; ++i) insert += " ";
|
||||||
|
}
|
||||||
|
} else if ((found = full.indexOf(mode.blockCommentContinue)) != -1 &&
|
||||||
|
found + mode.blockCommentContinue.length > token.start &&
|
||||||
|
/^\s*$/.test(full.slice(0, found))) {
|
||||||
|
insert = full.slice(0, found);
|
||||||
|
}
|
||||||
|
if (insert != null) insert += mode.blockCommentContinue;
|
||||||
|
}
|
||||||
|
if (insert == null && mode.lineComment) {
|
||||||
|
var line = cm.getLine(pos.line), found = line.indexOf(mode.lineComment);
|
||||||
|
if (found > -1) {
|
||||||
|
insert = line.slice(0, found);
|
||||||
|
if (/\S/.test(insert)) insert = null;
|
||||||
|
else insert += mode.lineComment + line.slice(found + mode.lineComment.length).match(/^\s*/)[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (insert != null)
|
||||||
|
cm.replaceSelection("\n" + insert, "end");
|
||||||
|
else
|
||||||
|
return CodeMirror.Pass;
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.defineOption("continueComments", null, function(cm, val, prev) {
|
||||||
|
if (prev && prev != CodeMirror.Init)
|
||||||
|
cm.removeKeyMap("continueComment");
|
||||||
|
if (val) {
|
||||||
|
var map = {name: "continueComment"};
|
||||||
|
map[typeof val == "string" ? val : "Enter"] = continueComment;
|
||||||
|
cm.addKeyMap(map);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
32
src/main/webapp/codemirror/addon/dialog/dialog.css
vendored
Normal file
32
src/main/webapp/codemirror/addon/dialog/dialog.css
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
.CodeMirror-dialog {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0;
|
||||||
|
background: white;
|
||||||
|
z-index: 15;
|
||||||
|
padding: .1em .8em;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-dialog-top {
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-dialog-bottom {
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-dialog input {
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
background: transparent;
|
||||||
|
width: 20em;
|
||||||
|
color: inherit;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-dialog button {
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
121
src/main/webapp/codemirror/addon/dialog/dialog.js
vendored
Normal file
121
src/main/webapp/codemirror/addon/dialog/dialog.js
vendored
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
// Open simple dialogs on top of an editor. Relies on dialog.css.
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
function dialogDiv(cm, template, bottom) {
|
||||||
|
var wrap = cm.getWrapperElement();
|
||||||
|
var dialog;
|
||||||
|
dialog = wrap.appendChild(document.createElement("div"));
|
||||||
|
if (bottom) {
|
||||||
|
dialog.className = "CodeMirror-dialog CodeMirror-dialog-bottom";
|
||||||
|
} else {
|
||||||
|
dialog.className = "CodeMirror-dialog CodeMirror-dialog-top";
|
||||||
|
}
|
||||||
|
if (typeof template == "string") {
|
||||||
|
dialog.innerHTML = template;
|
||||||
|
} else { // Assuming it's a detached DOM element.
|
||||||
|
dialog.appendChild(template);
|
||||||
|
}
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeNotification(cm, newVal) {
|
||||||
|
if (cm.state.currentNotificationClose)
|
||||||
|
cm.state.currentNotificationClose();
|
||||||
|
cm.state.currentNotificationClose = newVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.defineExtension("openDialog", function(template, callback, options) {
|
||||||
|
closeNotification(this, null);
|
||||||
|
var dialog = dialogDiv(this, template, options && options.bottom);
|
||||||
|
var closed = false, me = this;
|
||||||
|
function close() {
|
||||||
|
if (closed) return;
|
||||||
|
closed = true;
|
||||||
|
dialog.parentNode.removeChild(dialog);
|
||||||
|
}
|
||||||
|
var inp = dialog.getElementsByTagName("input")[0], button;
|
||||||
|
if (inp) {
|
||||||
|
CodeMirror.on(inp, "keydown", function(e) {
|
||||||
|
if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }
|
||||||
|
if (e.keyCode == 13 || e.keyCode == 27) {
|
||||||
|
CodeMirror.e_stop(e);
|
||||||
|
close();
|
||||||
|
me.focus();
|
||||||
|
if (e.keyCode == 13) callback(inp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (options && options.onKeyUp) {
|
||||||
|
CodeMirror.on(inp, "keyup", function(e) {options.onKeyUp(e, inp.value, close);});
|
||||||
|
}
|
||||||
|
if (options && options.value) inp.value = options.value;
|
||||||
|
inp.focus();
|
||||||
|
CodeMirror.on(inp, "blur", close);
|
||||||
|
} else if (button = dialog.getElementsByTagName("button")[0]) {
|
||||||
|
CodeMirror.on(button, "click", function() {
|
||||||
|
close();
|
||||||
|
me.focus();
|
||||||
|
});
|
||||||
|
button.focus();
|
||||||
|
CodeMirror.on(button, "blur", close);
|
||||||
|
}
|
||||||
|
return close;
|
||||||
|
});
|
||||||
|
|
||||||
|
CodeMirror.defineExtension("openConfirm", function(template, callbacks, options) {
|
||||||
|
closeNotification(this, null);
|
||||||
|
var dialog = dialogDiv(this, template, options && options.bottom);
|
||||||
|
var buttons = dialog.getElementsByTagName("button");
|
||||||
|
var closed = false, me = this, blurring = 1;
|
||||||
|
function close() {
|
||||||
|
if (closed) return;
|
||||||
|
closed = true;
|
||||||
|
dialog.parentNode.removeChild(dialog);
|
||||||
|
me.focus();
|
||||||
|
}
|
||||||
|
buttons[0].focus();
|
||||||
|
for (var i = 0; i < buttons.length; ++i) {
|
||||||
|
var b = buttons[i];
|
||||||
|
(function(callback) {
|
||||||
|
CodeMirror.on(b, "click", function(e) {
|
||||||
|
CodeMirror.e_preventDefault(e);
|
||||||
|
close();
|
||||||
|
if (callback) callback(me);
|
||||||
|
});
|
||||||
|
})(callbacks[i]);
|
||||||
|
CodeMirror.on(b, "blur", function() {
|
||||||
|
--blurring;
|
||||||
|
setTimeout(function() { if (blurring <= 0) close(); }, 200);
|
||||||
|
});
|
||||||
|
CodeMirror.on(b, "focus", function() { ++blurring; });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
* openNotification
|
||||||
|
* Opens a notification, that can be closed with an optional timer
|
||||||
|
* (default 5000ms timer) and always closes on click.
|
||||||
|
*
|
||||||
|
* If a notification is opened while another is opened, it will close the
|
||||||
|
* currently opened one and open the new one immediately.
|
||||||
|
*/
|
||||||
|
CodeMirror.defineExtension("openNotification", function(template, options) {
|
||||||
|
closeNotification(this, close);
|
||||||
|
var dialog = dialogDiv(this, template, options && options.bottom);
|
||||||
|
var duration = options && (options.duration === undefined ? 5000 : options.duration);
|
||||||
|
var closed = false, doneTimer;
|
||||||
|
|
||||||
|
function close() {
|
||||||
|
if (closed) return;
|
||||||
|
closed = true;
|
||||||
|
clearTimeout(doneTimer);
|
||||||
|
dialog.parentNode.removeChild(dialog);
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.on(dialog, 'click', function(e) {
|
||||||
|
CodeMirror.e_preventDefault(e);
|
||||||
|
close();
|
||||||
|
});
|
||||||
|
if (duration)
|
||||||
|
doneTimer = setTimeout(close, options.duration);
|
||||||
|
});
|
||||||
|
})();
|
||||||
6
src/main/webapp/codemirror/addon/display/fullscreen.css
vendored
Normal file
6
src/main/webapp/codemirror/addon/display/fullscreen.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
.CodeMirror-fullscreen {
|
||||||
|
position: fixed;
|
||||||
|
top: 0; left: 0; right: 0; bottom: 0;
|
||||||
|
height: auto;
|
||||||
|
z-index: 9;
|
||||||
|
}
|
||||||
31
src/main/webapp/codemirror/addon/display/fullscreen.js
vendored
Normal file
31
src/main/webapp/codemirror/addon/display/fullscreen.js
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
|
||||||
|
if (old == CodeMirror.Init) old = false;
|
||||||
|
if (!old == !val) return;
|
||||||
|
if (val) setFullscreen(cm);
|
||||||
|
else setNormal(cm);
|
||||||
|
});
|
||||||
|
|
||||||
|
function setFullscreen(cm) {
|
||||||
|
var wrap = cm.getWrapperElement();
|
||||||
|
cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
|
||||||
|
width: wrap.style.width, height: wrap.style.height};
|
||||||
|
wrap.style.width = "";
|
||||||
|
wrap.style.height = "auto";
|
||||||
|
wrap.className += " CodeMirror-fullscreen";
|
||||||
|
document.documentElement.style.overflow = "hidden";
|
||||||
|
cm.refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setNormal(cm) {
|
||||||
|
var wrap = cm.getWrapperElement();
|
||||||
|
wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
|
||||||
|
document.documentElement.style.overflow = "";
|
||||||
|
var info = cm.state.fullScreenRestore;
|
||||||
|
wrap.style.width = info.width; wrap.style.height = info.height;
|
||||||
|
window.scrollTo(info.scrollLeft, info.scrollTop);
|
||||||
|
cm.refresh();
|
||||||
|
}
|
||||||
|
})();
|
||||||
48
src/main/webapp/codemirror/addon/display/placeholder.js
vendored
Normal file
48
src/main/webapp/codemirror/addon/display/placeholder.js
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
(function() {
|
||||||
|
CodeMirror.defineOption("placeholder", "", function(cm, val, old) {
|
||||||
|
var prev = old && old != CodeMirror.Init;
|
||||||
|
if (val && !prev) {
|
||||||
|
cm.on("blur", onBlur);
|
||||||
|
cm.on("change", onChange);
|
||||||
|
onChange(cm);
|
||||||
|
} else if (!val && prev) {
|
||||||
|
cm.off("blur", onBlur);
|
||||||
|
cm.off("change", onChange);
|
||||||
|
clearPlaceholder(cm);
|
||||||
|
var wrapper = cm.getWrapperElement();
|
||||||
|
wrapper.className = wrapper.className.replace(" CodeMirror-empty", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (val && !cm.hasFocus()) onBlur(cm);
|
||||||
|
});
|
||||||
|
|
||||||
|
function clearPlaceholder(cm) {
|
||||||
|
if (cm.state.placeholder) {
|
||||||
|
cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);
|
||||||
|
cm.state.placeholder = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function setPlaceholder(cm) {
|
||||||
|
clearPlaceholder(cm);
|
||||||
|
var elt = cm.state.placeholder = document.createElement("pre");
|
||||||
|
elt.style.cssText = "height: 0; overflow: visible";
|
||||||
|
elt.className = "CodeMirror-placeholder";
|
||||||
|
elt.appendChild(document.createTextNode(cm.getOption("placeholder")));
|
||||||
|
cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onBlur(cm) {
|
||||||
|
if (isEmpty(cm)) setPlaceholder(cm);
|
||||||
|
}
|
||||||
|
function onChange(cm) {
|
||||||
|
var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);
|
||||||
|
wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : "");
|
||||||
|
|
||||||
|
if (empty) setPlaceholder(cm);
|
||||||
|
else clearPlaceholder(cm);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isEmpty(cm) {
|
||||||
|
return (cm.lineCount() === 1) && (cm.getLine(0) === "");
|
||||||
|
}
|
||||||
|
})();
|
||||||
82
src/main/webapp/codemirror/addon/edit/closebrackets.js
vendored
Normal file
82
src/main/webapp/codemirror/addon/edit/closebrackets.js
vendored
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
(function() {
|
||||||
|
var DEFAULT_BRACKETS = "()[]{}''\"\"";
|
||||||
|
var DEFAULT_EXPLODE_ON_ENTER = "[]{}";
|
||||||
|
var SPACE_CHAR_REGEX = /\s/;
|
||||||
|
|
||||||
|
CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) {
|
||||||
|
if (old != CodeMirror.Init && old)
|
||||||
|
cm.removeKeyMap("autoCloseBrackets");
|
||||||
|
if (!val) return;
|
||||||
|
var pairs = DEFAULT_BRACKETS, explode = DEFAULT_EXPLODE_ON_ENTER;
|
||||||
|
if (typeof val == "string") pairs = val;
|
||||||
|
else if (typeof val == "object") {
|
||||||
|
if (val.pairs != null) pairs = val.pairs;
|
||||||
|
if (val.explode != null) explode = val.explode;
|
||||||
|
}
|
||||||
|
var map = buildKeymap(pairs);
|
||||||
|
if (explode) map.Enter = buildExplodeHandler(explode);
|
||||||
|
cm.addKeyMap(map);
|
||||||
|
});
|
||||||
|
|
||||||
|
function charsAround(cm, pos) {
|
||||||
|
var str = cm.getRange(CodeMirror.Pos(pos.line, pos.ch - 1),
|
||||||
|
CodeMirror.Pos(pos.line, pos.ch + 1));
|
||||||
|
return str.length == 2 ? str : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildKeymap(pairs) {
|
||||||
|
var map = {
|
||||||
|
name : "autoCloseBrackets",
|
||||||
|
Backspace: function(cm) {
|
||||||
|
if (cm.somethingSelected()) return CodeMirror.Pass;
|
||||||
|
var cur = cm.getCursor(), around = charsAround(cm, cur);
|
||||||
|
if (around && pairs.indexOf(around) % 2 == 0)
|
||||||
|
cm.replaceRange("", CodeMirror.Pos(cur.line, cur.ch - 1), CodeMirror.Pos(cur.line, cur.ch + 1));
|
||||||
|
else
|
||||||
|
return CodeMirror.Pass;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var closingBrackets = "";
|
||||||
|
for (var i = 0; i < pairs.length; i += 2) (function(left, right) {
|
||||||
|
if (left != right) closingBrackets += right;
|
||||||
|
function surround(cm) {
|
||||||
|
var selection = cm.getSelection();
|
||||||
|
cm.replaceSelection(left + selection + right);
|
||||||
|
}
|
||||||
|
function maybeOverwrite(cm) {
|
||||||
|
var cur = cm.getCursor(), ahead = cm.getRange(cur, CodeMirror.Pos(cur.line, cur.ch + 1));
|
||||||
|
if (ahead != right || cm.somethingSelected()) return CodeMirror.Pass;
|
||||||
|
else cm.execCommand("goCharRight");
|
||||||
|
}
|
||||||
|
map["'" + left + "'"] = function(cm) {
|
||||||
|
if (left == "'" && cm.getTokenAt(cm.getCursor()).type == "comment")
|
||||||
|
return CodeMirror.Pass;
|
||||||
|
if (cm.somethingSelected()) return surround(cm);
|
||||||
|
if (left == right && maybeOverwrite(cm) != CodeMirror.Pass) return;
|
||||||
|
var cur = cm.getCursor(), ahead = CodeMirror.Pos(cur.line, cur.ch + 1);
|
||||||
|
var line = cm.getLine(cur.line), nextChar = line.charAt(cur.ch), curChar = cur.ch > 0 ? line.charAt(cur.ch - 1) : "";
|
||||||
|
if (left == right && CodeMirror.isWordChar(curChar))
|
||||||
|
return CodeMirror.Pass;
|
||||||
|
if (line.length == cur.ch || closingBrackets.indexOf(nextChar) >= 0 || SPACE_CHAR_REGEX.test(nextChar))
|
||||||
|
cm.replaceSelection(left + right, {head: ahead, anchor: ahead});
|
||||||
|
else
|
||||||
|
return CodeMirror.Pass;
|
||||||
|
};
|
||||||
|
if (left != right) map["'" + right + "'"] = maybeOverwrite;
|
||||||
|
})(pairs.charAt(i), pairs.charAt(i + 1));
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildExplodeHandler(pairs) {
|
||||||
|
return function(cm) {
|
||||||
|
var cur = cm.getCursor(), around = charsAround(cm, cur);
|
||||||
|
if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;
|
||||||
|
cm.operation(function() {
|
||||||
|
var newPos = CodeMirror.Pos(cur.line + 1, 0);
|
||||||
|
cm.replaceSelection("\n\n", {anchor: newPos, head: newPos}, "+input");
|
||||||
|
cm.indentLine(cur.line + 1, null, true);
|
||||||
|
cm.indentLine(cur.line + 2, null, true);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
})();
|
||||||
89
src/main/webapp/codemirror/addon/edit/closetag.js
vendored
Normal file
89
src/main/webapp/codemirror/addon/edit/closetag.js
vendored
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
/**
|
||||||
|
* Tag-closer extension for CodeMirror.
|
||||||
|
*
|
||||||
|
* This extension adds an "autoCloseTags" option that can be set to
|
||||||
|
* either true to get the default behavior, or an object to further
|
||||||
|
* configure its behavior.
|
||||||
|
*
|
||||||
|
* These are supported options:
|
||||||
|
*
|
||||||
|
* `whenClosing` (default true)
|
||||||
|
* Whether to autoclose when the '/' of a closing tag is typed.
|
||||||
|
* `whenOpening` (default true)
|
||||||
|
* Whether to autoclose the tag when the final '>' of an opening
|
||||||
|
* tag is typed.
|
||||||
|
* `dontCloseTags` (default is empty tags for HTML, none for XML)
|
||||||
|
* An array of tag names that should not be autoclosed.
|
||||||
|
* `indentTags` (default is block tags for HTML, none for XML)
|
||||||
|
* An array of tag names that should, when opened, cause a
|
||||||
|
* blank line to be added inside the tag, and the blank line and
|
||||||
|
* closing line to be indented.
|
||||||
|
*
|
||||||
|
* See demos/closetag.html for a usage example.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
CodeMirror.defineOption("autoCloseTags", false, function(cm, val, old) {
|
||||||
|
if (old != CodeMirror.Init && old)
|
||||||
|
cm.removeKeyMap("autoCloseTags");
|
||||||
|
if (!val) return;
|
||||||
|
var map = {name: "autoCloseTags"};
|
||||||
|
if (typeof val != "object" || val.whenClosing)
|
||||||
|
map["'/'"] = function(cm) { return autoCloseSlash(cm); };
|
||||||
|
if (typeof val != "object" || val.whenOpening)
|
||||||
|
map["'>'"] = function(cm) { return autoCloseGT(cm); };
|
||||||
|
cm.addKeyMap(map);
|
||||||
|
});
|
||||||
|
|
||||||
|
var htmlDontClose = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param",
|
||||||
|
"source", "track", "wbr"];
|
||||||
|
var htmlIndent = ["applet", "blockquote", "body", "button", "div", "dl", "fieldset", "form", "frameset", "h1", "h2", "h3", "h4",
|
||||||
|
"h5", "h6", "head", "html", "iframe", "layer", "legend", "object", "ol", "p", "select", "table", "ul"];
|
||||||
|
|
||||||
|
function autoCloseGT(cm) {
|
||||||
|
var pos = cm.getCursor(), tok = cm.getTokenAt(pos);
|
||||||
|
var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
|
||||||
|
if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
|
||||||
|
|
||||||
|
var opt = cm.getOption("autoCloseTags"), html = inner.mode.configuration == "html";
|
||||||
|
var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
|
||||||
|
var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
|
||||||
|
|
||||||
|
var tagName = state.tagName;
|
||||||
|
if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);
|
||||||
|
var lowerTagName = tagName.toLowerCase();
|
||||||
|
// Don't process the '>' at the end of an end-tag or self-closing tag
|
||||||
|
if (tok.type == "string" && (tok.end != pos.ch || !/[\"\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||
|
||||||
|
tok.type == "tag" && state.type == "closeTag" ||
|
||||||
|
tok.string.indexOf("/") == (tok.string.length - 1) || // match something like <someTagName />
|
||||||
|
dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1)
|
||||||
|
return CodeMirror.Pass;
|
||||||
|
|
||||||
|
var doIndent = indentTags && indexOf(indentTags, lowerTagName) > -1;
|
||||||
|
var curPos = doIndent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1);
|
||||||
|
cm.replaceSelection(">" + (doIndent ? "\n\n" : "") + "</" + tagName + ">",
|
||||||
|
{head: curPos, anchor: curPos});
|
||||||
|
if (doIndent) {
|
||||||
|
cm.indentLine(pos.line + 1);
|
||||||
|
cm.indentLine(pos.line + 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function autoCloseSlash(cm) {
|
||||||
|
var pos = cm.getCursor(), tok = cm.getTokenAt(pos);
|
||||||
|
var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
|
||||||
|
if (tok.type == "string" || tok.string.charAt(0) != "<" ||
|
||||||
|
tok.start != pos.ch - 1 || inner.mode.name != "xml")
|
||||||
|
return CodeMirror.Pass;
|
||||||
|
|
||||||
|
var tagName = state.context && state.context.tagName;
|
||||||
|
if (tagName) cm.replaceSelection("/" + tagName + ">", "end");
|
||||||
|
}
|
||||||
|
|
||||||
|
function indexOf(collection, elt) {
|
||||||
|
if (collection.indexOf) return collection.indexOf(elt);
|
||||||
|
for (var i = 0, e = collection.length; i < e; ++i)
|
||||||
|
if (collection[i] == elt) return i;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
})();
|
||||||
25
src/main/webapp/codemirror/addon/edit/continuelist.js
vendored
Normal file
25
src/main/webapp/codemirror/addon/edit/continuelist.js
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
(function() {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var listRE = /^(\s*)([*+-]|(\d+)\.)(\s*)/,
|
||||||
|
unorderedBullets = '*+-';
|
||||||
|
|
||||||
|
CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {
|
||||||
|
var pos = cm.getCursor(),
|
||||||
|
inList = cm.getStateAfter(pos.line).list !== false,
|
||||||
|
match;
|
||||||
|
|
||||||
|
if (!inList || !(match = cm.getLine(pos.line).match(listRE))) {
|
||||||
|
cm.execCommand('newlineAndIndent');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var indent = match[1], after = match[4];
|
||||||
|
var bullet = unorderedBullets.indexOf(match[2]) >= 0
|
||||||
|
? match[2]
|
||||||
|
: (parseInt(match[3], 10) + 1) + '.';
|
||||||
|
|
||||||
|
cm.replaceSelection('\n' + indent + bullet + after, 'end');
|
||||||
|
};
|
||||||
|
|
||||||
|
}());
|
||||||
87
src/main/webapp/codemirror/addon/edit/matchbrackets.js
vendored
Normal file
87
src/main/webapp/codemirror/addon/edit/matchbrackets.js
vendored
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
(function() {
|
||||||
|
var ie_lt8 = /MSIE \d/.test(navigator.userAgent) &&
|
||||||
|
(document.documentMode == null || document.documentMode < 8);
|
||||||
|
|
||||||
|
var Pos = CodeMirror.Pos;
|
||||||
|
|
||||||
|
var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
|
||||||
|
function findMatchingBracket(cm, where, strict) {
|
||||||
|
var state = cm.state.matchBrackets;
|
||||||
|
var maxScanLen = (state && state.maxScanLineLength) || 10000;
|
||||||
|
var maxScanLines = (state && state.maxScanLines) || 100;
|
||||||
|
|
||||||
|
var cur = where || cm.getCursor(), line = cm.getLineHandle(cur.line), pos = cur.ch - 1;
|
||||||
|
var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];
|
||||||
|
if (!match) return null;
|
||||||
|
var forward = match.charAt(1) == ">", d = forward ? 1 : -1;
|
||||||
|
if (strict && forward != (pos == cur.ch)) return null;
|
||||||
|
var style = cm.getTokenTypeAt(Pos(cur.line, pos + 1));
|
||||||
|
|
||||||
|
var stack = [line.text.charAt(pos)], re = /[(){}[\]]/;
|
||||||
|
function scan(line, lineNo, start) {
|
||||||
|
if (!line.text) return;
|
||||||
|
var pos = forward ? 0 : line.text.length - 1, end = forward ? line.text.length : -1;
|
||||||
|
if (line.text.length > maxScanLen) return null;
|
||||||
|
if (start != null) pos = start + d;
|
||||||
|
for (; pos != end; pos += d) {
|
||||||
|
var ch = line.text.charAt(pos);
|
||||||
|
if (re.test(ch) && cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style) {
|
||||||
|
var match = matching[ch];
|
||||||
|
if (match.charAt(1) == ">" == forward) stack.push(ch);
|
||||||
|
else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false};
|
||||||
|
else if (!stack.length) return {pos: pos, match: true};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i = cur.line, found, e = forward ? Math.min(i + maxScanLines, cm.lineCount()) : Math.max(-1, i - maxScanLines); i != e; i+=d) {
|
||||||
|
if (i == cur.line) found = scan(line, i, pos);
|
||||||
|
else found = scan(cm.getLineHandle(i), i);
|
||||||
|
if (found) break;
|
||||||
|
}
|
||||||
|
return {from: Pos(cur.line, pos), to: found && Pos(i, found.pos),
|
||||||
|
match: found && found.match, forward: forward};
|
||||||
|
}
|
||||||
|
|
||||||
|
function matchBrackets(cm, autoclear) {
|
||||||
|
// Disable brace matching in long lines, since it'll cause hugely slow updates
|
||||||
|
var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
|
||||||
|
var found = findMatchingBracket(cm);
|
||||||
|
if (!found || cm.getLine(found.from.line).length > maxHighlightLen ||
|
||||||
|
found.to && cm.getLine(found.to.line).length > maxHighlightLen)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
|
||||||
|
var one = cm.markText(found.from, Pos(found.from.line, found.from.ch + 1), {className: style});
|
||||||
|
var two = found.to && cm.markText(found.to, Pos(found.to.line, found.to.ch + 1), {className: style});
|
||||||
|
// Kludge to work around the IE bug from issue #1193, where text
|
||||||
|
// input stops going to the textare whever this fires.
|
||||||
|
if (ie_lt8 && cm.state.focused) cm.display.input.focus();
|
||||||
|
var clear = function() {
|
||||||
|
cm.operation(function() { one.clear(); two && two.clear(); });
|
||||||
|
};
|
||||||
|
if (autoclear) setTimeout(clear, 800);
|
||||||
|
else return clear;
|
||||||
|
}
|
||||||
|
|
||||||
|
var currentlyHighlighted = null;
|
||||||
|
function doMatchBrackets(cm) {
|
||||||
|
cm.operation(function() {
|
||||||
|
if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
|
||||||
|
if (!cm.somethingSelected()) currentlyHighlighted = matchBrackets(cm, false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
|
||||||
|
if (old && old != CodeMirror.Init)
|
||||||
|
cm.off("cursorActivity", doMatchBrackets);
|
||||||
|
if (val) {
|
||||||
|
cm.state.matchBrackets = typeof val == "object" ? val : {};
|
||||||
|
cm.on("cursorActivity", doMatchBrackets);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
|
||||||
|
CodeMirror.defineExtension("findMatchingBracket", function(pos, strict){
|
||||||
|
return findMatchingBracket(this, pos, strict);
|
||||||
|
});
|
||||||
|
})();
|
||||||
56
src/main/webapp/codemirror/addon/edit/matchtags.js
vendored
Normal file
56
src/main/webapp/codemirror/addon/edit/matchtags.js
vendored
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
CodeMirror.defineOption("matchTags", false, function(cm, val, old) {
|
||||||
|
if (old && old != CodeMirror.Init) {
|
||||||
|
cm.off("cursorActivity", doMatchTags);
|
||||||
|
cm.off("viewportChange", maybeUpdateMatch);
|
||||||
|
clear(cm);
|
||||||
|
}
|
||||||
|
if (val) {
|
||||||
|
cm.state.matchBothTags = typeof val == "object" && val.bothTags;
|
||||||
|
cm.on("cursorActivity", doMatchTags);
|
||||||
|
cm.on("viewportChange", maybeUpdateMatch);
|
||||||
|
doMatchTags(cm);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function clear(cm) {
|
||||||
|
if (cm.state.tagHit) cm.state.tagHit.clear();
|
||||||
|
if (cm.state.tagOther) cm.state.tagOther.clear();
|
||||||
|
cm.state.tagHit = cm.state.tagOther = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function doMatchTags(cm) {
|
||||||
|
cm.state.failedTagMatch = false;
|
||||||
|
cm.operation(function() {
|
||||||
|
clear(cm);
|
||||||
|
if (cm.somethingSelected()) return;
|
||||||
|
var cur = cm.getCursor(), range = cm.getViewport();
|
||||||
|
range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);
|
||||||
|
var match = CodeMirror.findMatchingTag(cm, cur, range);
|
||||||
|
if (!match) return;
|
||||||
|
if (cm.state.matchBothTags) {
|
||||||
|
var hit = match.at == "open" ? match.open : match.close;
|
||||||
|
if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"});
|
||||||
|
}
|
||||||
|
var other = match.at == "close" ? match.open : match.close;
|
||||||
|
if (other)
|
||||||
|
cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"});
|
||||||
|
else
|
||||||
|
cm.state.failedTagMatch = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function maybeUpdateMatch(cm) {
|
||||||
|
if (cm.state.failedTagMatch) doMatchTags(cm);
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.commands.toMatchingTag = function(cm) {
|
||||||
|
var found = CodeMirror.findMatchingTag(cm, cm.getCursor());
|
||||||
|
if (found) {
|
||||||
|
var other = found.at == "close" ? found.open : found.close;
|
||||||
|
if (other) cm.setSelection(other.to, other.from);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})();
|
||||||
15
src/main/webapp/codemirror/addon/edit/trailingspace.js
vendored
Normal file
15
src/main/webapp/codemirror/addon/edit/trailingspace.js
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) {
|
||||||
|
if (prev == CodeMirror.Init) prev = false;
|
||||||
|
if (prev && !val)
|
||||||
|
cm.removeOverlay("trailingspace");
|
||||||
|
else if (!prev && val)
|
||||||
|
cm.addOverlay({
|
||||||
|
token: function(stream) {
|
||||||
|
for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {}
|
||||||
|
if (i > stream.pos) { stream.pos = i; return null; }
|
||||||
|
stream.pos = l;
|
||||||
|
return "trailingspace";
|
||||||
|
},
|
||||||
|
name: "trailingspace"
|
||||||
|
});
|
||||||
|
});
|
||||||
93
src/main/webapp/codemirror/addon/fold/brace-fold.js
vendored
Normal file
93
src/main/webapp/codemirror/addon/fold/brace-fold.js
vendored
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
CodeMirror.registerHelper("fold", "brace", function(cm, start) {
|
||||||
|
var line = start.line, lineText = cm.getLine(line);
|
||||||
|
var startCh, tokenType;
|
||||||
|
|
||||||
|
function findOpening(openCh) {
|
||||||
|
for (var at = start.ch, pass = 0;;) {
|
||||||
|
var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);
|
||||||
|
if (found == -1) {
|
||||||
|
if (pass == 1) break;
|
||||||
|
pass = 1;
|
||||||
|
at = lineText.length;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (pass == 1 && found < start.ch) break;
|
||||||
|
tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));
|
||||||
|
if (!/^(comment|string)/.test(tokenType)) return found + 1;
|
||||||
|
at = found - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var startToken = "{", endToken = "}", startCh = findOpening("{");
|
||||||
|
if (startCh == null) {
|
||||||
|
startToken = "[", endToken = "]";
|
||||||
|
startCh = findOpening("[");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (startCh == null) return;
|
||||||
|
var count = 1, lastLine = cm.lastLine(), end, endCh;
|
||||||
|
outer: for (var i = line; i <= lastLine; ++i) {
|
||||||
|
var text = cm.getLine(i), pos = i == line ? startCh : 0;
|
||||||
|
for (;;) {
|
||||||
|
var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
|
||||||
|
if (nextOpen < 0) nextOpen = text.length;
|
||||||
|
if (nextClose < 0) nextClose = text.length;
|
||||||
|
pos = Math.min(nextOpen, nextClose);
|
||||||
|
if (pos == text.length) break;
|
||||||
|
if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {
|
||||||
|
if (pos == nextOpen) ++count;
|
||||||
|
else if (!--count) { end = i; endCh = pos; break outer; }
|
||||||
|
}
|
||||||
|
++pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (end == null || line == end && endCh == startCh) return;
|
||||||
|
return {from: CodeMirror.Pos(line, startCh),
|
||||||
|
to: CodeMirror.Pos(end, endCh)};
|
||||||
|
});
|
||||||
|
CodeMirror.braceRangeFinder = CodeMirror.fold.brace; // deprecated
|
||||||
|
|
||||||
|
CodeMirror.registerHelper("fold", "import", function(cm, start) {
|
||||||
|
function hasImport(line) {
|
||||||
|
if (line < cm.firstLine() || line > cm.lastLine()) return null;
|
||||||
|
var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
|
||||||
|
if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
|
||||||
|
if (start.type != "keyword" || start.string != "import") return null;
|
||||||
|
// Now find closing semicolon, return its position
|
||||||
|
for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {
|
||||||
|
var text = cm.getLine(i), semi = text.indexOf(";");
|
||||||
|
if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var start = start.line, has = hasImport(start), prev;
|
||||||
|
if (!has || hasImport(start - 1) || ((prev = hasImport(start - 2)) && prev.end.line == start - 1))
|
||||||
|
return null;
|
||||||
|
for (var end = has.end;;) {
|
||||||
|
var next = hasImport(end.line + 1);
|
||||||
|
if (next == null) break;
|
||||||
|
end = next.end;
|
||||||
|
}
|
||||||
|
return {from: cm.clipPos(CodeMirror.Pos(start, has.startCh + 1)), to: end};
|
||||||
|
});
|
||||||
|
CodeMirror.importRangeFinder = CodeMirror.fold["import"]; // deprecated
|
||||||
|
|
||||||
|
CodeMirror.registerHelper("fold", "include", function(cm, start) {
|
||||||
|
function hasInclude(line) {
|
||||||
|
if (line < cm.firstLine() || line > cm.lastLine()) return null;
|
||||||
|
var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
|
||||||
|
if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
|
||||||
|
if (start.type == "meta" && start.string.slice(0, 8) == "#include") return start.start + 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
var start = start.line, has = hasInclude(start);
|
||||||
|
if (has == null || hasInclude(start - 1) != null) return null;
|
||||||
|
for (var end = start;;) {
|
||||||
|
var next = hasInclude(end + 1);
|
||||||
|
if (next == null) break;
|
||||||
|
++end;
|
||||||
|
}
|
||||||
|
return {from: CodeMirror.Pos(start, has + 1),
|
||||||
|
to: cm.clipPos(CodeMirror.Pos(end))};
|
||||||
|
});
|
||||||
|
CodeMirror.includeRangeFinder = CodeMirror.fold.include; // deprecated
|
||||||
40
src/main/webapp/codemirror/addon/fold/comment-fold.js
vendored
Normal file
40
src/main/webapp/codemirror/addon/fold/comment-fold.js
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
CodeMirror.registerHelper("fold", "comment", function(cm, start) {
|
||||||
|
var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;
|
||||||
|
if (!startToken || !endToken) return;
|
||||||
|
var line = start.line, lineText = cm.getLine(line);
|
||||||
|
|
||||||
|
var startCh;
|
||||||
|
for (var at = start.ch, pass = 0;;) {
|
||||||
|
var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);
|
||||||
|
if (found == -1) {
|
||||||
|
if (pass == 1) return;
|
||||||
|
pass = 1;
|
||||||
|
at = lineText.length;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (pass == 1 && found < start.ch) return;
|
||||||
|
if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1)))) {
|
||||||
|
startCh = found + startToken.length;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
at = found - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
var depth = 1, lastLine = cm.lastLine(), end, endCh;
|
||||||
|
outer: for (var i = line; i <= lastLine; ++i) {
|
||||||
|
var text = cm.getLine(i), pos = i == line ? startCh : 0;
|
||||||
|
for (;;) {
|
||||||
|
var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
|
||||||
|
if (nextOpen < 0) nextOpen = text.length;
|
||||||
|
if (nextClose < 0) nextClose = text.length;
|
||||||
|
pos = Math.min(nextOpen, nextClose);
|
||||||
|
if (pos == text.length) break;
|
||||||
|
if (pos == nextOpen) ++depth;
|
||||||
|
else if (!--depth) { end = i; endCh = pos; break outer; }
|
||||||
|
++pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (end == null || line == end && endCh == startCh) return;
|
||||||
|
return {from: CodeMirror.Pos(line, startCh),
|
||||||
|
to: CodeMirror.Pos(end, endCh)};
|
||||||
|
});
|
||||||
75
src/main/webapp/codemirror/addon/fold/foldcode.js
vendored
Normal file
75
src/main/webapp/codemirror/addon/fold/foldcode.js
vendored
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
function doFold(cm, pos, options, force) {
|
||||||
|
var finder = options && (options.call ? options : options.rangeFinder);
|
||||||
|
if (!finder) finder = cm.getHelper(pos, "fold");
|
||||||
|
if (!finder) return;
|
||||||
|
if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0);
|
||||||
|
var minSize = options && options.minFoldSize || 0;
|
||||||
|
|
||||||
|
function getRange(allowFolded) {
|
||||||
|
var range = finder(cm, pos);
|
||||||
|
if (!range || range.to.line - range.from.line < minSize) return null;
|
||||||
|
var marks = cm.findMarksAt(range.from);
|
||||||
|
for (var i = 0; i < marks.length; ++i) {
|
||||||
|
if (marks[i].__isFold && force !== "fold") {
|
||||||
|
if (!allowFolded) return null;
|
||||||
|
range.cleared = true;
|
||||||
|
marks[i].clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return range;
|
||||||
|
}
|
||||||
|
|
||||||
|
var range = getRange(true);
|
||||||
|
if (options && options.scanUp) while (!range && pos.line > cm.firstLine()) {
|
||||||
|
pos = CodeMirror.Pos(pos.line - 1, 0);
|
||||||
|
range = getRange(false);
|
||||||
|
}
|
||||||
|
if (!range || range.cleared || force === "unfold") return;
|
||||||
|
|
||||||
|
var myWidget = makeWidget(options);
|
||||||
|
CodeMirror.on(myWidget, "mousedown", function() { myRange.clear(); });
|
||||||
|
var myRange = cm.markText(range.from, range.to, {
|
||||||
|
replacedWith: myWidget,
|
||||||
|
clearOnEnter: true,
|
||||||
|
__isFold: true
|
||||||
|
});
|
||||||
|
myRange.on("clear", function(from, to) {
|
||||||
|
CodeMirror.signal(cm, "unfold", cm, from, to);
|
||||||
|
});
|
||||||
|
CodeMirror.signal(cm, "fold", cm, range.from, range.to);
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeWidget(options) {
|
||||||
|
var widget = (options && options.widget) || "\u2194";
|
||||||
|
if (typeof widget == "string") {
|
||||||
|
var text = document.createTextNode(widget);
|
||||||
|
widget = document.createElement("span");
|
||||||
|
widget.appendChild(text);
|
||||||
|
widget.className = "CodeMirror-foldmarker";
|
||||||
|
}
|
||||||
|
return widget;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clumsy backwards-compatible interface
|
||||||
|
CodeMirror.newFoldFunction = function(rangeFinder, widget) {
|
||||||
|
return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };
|
||||||
|
};
|
||||||
|
|
||||||
|
// New-style interface
|
||||||
|
CodeMirror.defineExtension("foldCode", function(pos, options, force) {
|
||||||
|
doFold(this, pos, options, force);
|
||||||
|
});
|
||||||
|
|
||||||
|
CodeMirror.registerHelper("fold", "combine", function() {
|
||||||
|
var funcs = Array.prototype.slice.call(arguments, 0);
|
||||||
|
return function(cm, start) {
|
||||||
|
for (var i = 0; i < funcs.length; ++i) {
|
||||||
|
var found = funcs[i](cm, start);
|
||||||
|
if (found) return found;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
})();
|
||||||
21
src/main/webapp/codemirror/addon/fold/foldgutter.css
vendored
Normal file
21
src/main/webapp/codemirror/addon/fold/foldgutter.css
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
.CodeMirror-foldmarker {
|
||||||
|
color: blue;
|
||||||
|
text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
|
||||||
|
font-family: arial;
|
||||||
|
line-height: .3;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.CodeMirror-foldgutter {
|
||||||
|
width: .7em;
|
||||||
|
}
|
||||||
|
.CodeMirror-foldgutter-open,
|
||||||
|
.CodeMirror-foldgutter-folded {
|
||||||
|
color: #555;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.CodeMirror-foldgutter-open:after {
|
||||||
|
content: "\25BE";
|
||||||
|
}
|
||||||
|
.CodeMirror-foldgutter-folded:after {
|
||||||
|
content: "\25B8";
|
||||||
|
}
|
||||||
124
src/main/webapp/codemirror/addon/fold/foldgutter.js
vendored
Normal file
124
src/main/webapp/codemirror/addon/fold/foldgutter.js
vendored
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
CodeMirror.defineOption("foldGutter", false, function(cm, val, old) {
|
||||||
|
if (old && old != CodeMirror.Init) {
|
||||||
|
cm.clearGutter(cm.state.foldGutter.options.gutter);
|
||||||
|
cm.state.foldGutter = null;
|
||||||
|
cm.off("gutterClick", onGutterClick);
|
||||||
|
cm.off("change", onChange);
|
||||||
|
cm.off("viewportChange", onViewportChange);
|
||||||
|
cm.off("fold", onFold);
|
||||||
|
cm.off("unfold", onFold);
|
||||||
|
cm.off("swapDoc", updateInViewport);
|
||||||
|
}
|
||||||
|
if (val) {
|
||||||
|
cm.state.foldGutter = new State(parseOptions(val));
|
||||||
|
updateInViewport(cm);
|
||||||
|
cm.on("gutterClick", onGutterClick);
|
||||||
|
cm.on("change", onChange);
|
||||||
|
cm.on("viewportChange", onViewportChange);
|
||||||
|
cm.on("fold", onFold);
|
||||||
|
cm.on("unfold", onFold);
|
||||||
|
cm.on("swapDoc", updateInViewport);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var Pos = CodeMirror.Pos;
|
||||||
|
|
||||||
|
function State(options) {
|
||||||
|
this.options = options;
|
||||||
|
this.from = this.to = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseOptions(opts) {
|
||||||
|
if (opts === true) opts = {};
|
||||||
|
if (opts.gutter == null) opts.gutter = "CodeMirror-foldgutter";
|
||||||
|
if (opts.indicatorOpen == null) opts.indicatorOpen = "CodeMirror-foldgutter-open";
|
||||||
|
if (opts.indicatorFolded == null) opts.indicatorFolded = "CodeMirror-foldgutter-folded";
|
||||||
|
return opts;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isFolded(cm, line) {
|
||||||
|
var marks = cm.findMarksAt(Pos(line));
|
||||||
|
for (var i = 0; i < marks.length; ++i)
|
||||||
|
if (marks[i].__isFold && marks[i].find().from.line == line) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function marker(spec) {
|
||||||
|
if (typeof spec == "string") {
|
||||||
|
var elt = document.createElement("div");
|
||||||
|
elt.className = spec;
|
||||||
|
return elt;
|
||||||
|
} else {
|
||||||
|
return spec.cloneNode(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateFoldInfo(cm, from, to) {
|
||||||
|
var opts = cm.state.foldGutter.options, cur = from;
|
||||||
|
cm.eachLine(from, to, function(line) {
|
||||||
|
var mark = null;
|
||||||
|
if (isFolded(cm, cur)) {
|
||||||
|
mark = marker(opts.indicatorFolded);
|
||||||
|
} else {
|
||||||
|
var pos = Pos(cur, 0), func = opts.rangeFinder || cm.getHelper(pos, "fold");
|
||||||
|
var range = func && func(cm, pos);
|
||||||
|
if (range && range.from.line + 1 < range.to.line)
|
||||||
|
mark = marker(opts.indicatorOpen);
|
||||||
|
}
|
||||||
|
cm.setGutterMarker(line, opts.gutter, mark);
|
||||||
|
++cur;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateInViewport(cm) {
|
||||||
|
var vp = cm.getViewport(), state = cm.state.foldGutter;
|
||||||
|
if (!state) return;
|
||||||
|
cm.operation(function() {
|
||||||
|
updateFoldInfo(cm, vp.from, vp.to);
|
||||||
|
});
|
||||||
|
state.from = vp.from; state.to = vp.to;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onGutterClick(cm, line, gutter) {
|
||||||
|
var opts = cm.state.foldGutter.options;
|
||||||
|
if (gutter != opts.gutter) return;
|
||||||
|
cm.foldCode(Pos(line, 0), opts.rangeFinder);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onChange(cm) {
|
||||||
|
var state = cm.state.foldGutter, opts = cm.state.foldGutter.options;
|
||||||
|
state.from = state.to = 0;
|
||||||
|
clearTimeout(state.changeUpdate);
|
||||||
|
state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onViewportChange(cm) {
|
||||||
|
var state = cm.state.foldGutter, opts = cm.state.foldGutter.options;
|
||||||
|
clearTimeout(state.changeUpdate);
|
||||||
|
state.changeUpdate = setTimeout(function() {
|
||||||
|
var vp = cm.getViewport();
|
||||||
|
if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {
|
||||||
|
updateInViewport(cm);
|
||||||
|
} else {
|
||||||
|
cm.operation(function() {
|
||||||
|
if (vp.from < state.from) {
|
||||||
|
updateFoldInfo(cm, vp.from, state.from);
|
||||||
|
state.from = vp.from;
|
||||||
|
}
|
||||||
|
if (vp.to > state.to) {
|
||||||
|
updateFoldInfo(cm, state.to, vp.to);
|
||||||
|
state.to = vp.to;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, opts.updateViewportTimeSpan || 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onFold(cm, from) {
|
||||||
|
var state = cm.state.foldGutter, line = from.line;
|
||||||
|
if (line >= state.from && line < state.to)
|
||||||
|
updateFoldInfo(cm, line, line + 1);
|
||||||
|
}
|
||||||
|
})();
|
||||||
30
src/main/webapp/codemirror/addon/fold/indent-fold.js
vendored
Normal file
30
src/main/webapp/codemirror/addon/fold/indent-fold.js
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
||||||
|
var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line);
|
||||||
|
if (!/\S/.test(firstLine)) return;
|
||||||
|
var getIndent = function(lineNum) {
|
||||||
|
return CodeMirror.countColumn(lineNum, null, tabSize);
|
||||||
|
};
|
||||||
|
var myIndent = getIndent(firstLine);
|
||||||
|
var lastLineInFold = null;
|
||||||
|
// Go through lines until we find a line that definitely doesn't belong in
|
||||||
|
// the block we're folding, or to the end.
|
||||||
|
for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {
|
||||||
|
var curLine = cm.getLine(i);
|
||||||
|
var curIndent = getIndent(curLine);
|
||||||
|
if (curIndent > myIndent) {
|
||||||
|
// Lines with a greater indent are considered part of the block.
|
||||||
|
lastLineInFold = i;
|
||||||
|
} else if (!/\S/.test(curLine)) {
|
||||||
|
// Empty lines might be breaks within the block we're trying to fold.
|
||||||
|
} else {
|
||||||
|
// A non-empty line at an indent equal to or less than ours marks the
|
||||||
|
// start of another block.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lastLineInFold) return {
|
||||||
|
from: CodeMirror.Pos(start.line, firstLine.length),
|
||||||
|
to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)
|
||||||
|
};
|
||||||
|
});
|
||||||
|
CodeMirror.indentRangeFinder = CodeMirror.fold.indent; // deprecated
|
||||||
167
src/main/webapp/codemirror/addon/fold/xml-fold.js
vendored
Normal file
167
src/main/webapp/codemirror/addon/fold/xml-fold.js
vendored
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var Pos = CodeMirror.Pos;
|
||||||
|
function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }
|
||||||
|
|
||||||
|
var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
|
||||||
|
var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
|
||||||
|
var xmlTagStart = new RegExp("<(/?)([" + nameStartChar + "][" + nameChar + "]*)", "g");
|
||||||
|
|
||||||
|
function Iter(cm, line, ch, range) {
|
||||||
|
this.line = line; this.ch = ch;
|
||||||
|
this.cm = cm; this.text = cm.getLine(line);
|
||||||
|
this.min = range ? range.from : cm.firstLine();
|
||||||
|
this.max = range ? range.to - 1 : cm.lastLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
function tagAt(iter, ch) {
|
||||||
|
var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));
|
||||||
|
return type && /\btag\b/.test(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
function nextLine(iter) {
|
||||||
|
if (iter.line >= iter.max) return;
|
||||||
|
iter.ch = 0;
|
||||||
|
iter.text = iter.cm.getLine(++iter.line);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function prevLine(iter) {
|
||||||
|
if (iter.line <= iter.min) return;
|
||||||
|
iter.text = iter.cm.getLine(--iter.line);
|
||||||
|
iter.ch = iter.text.length;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function toTagEnd(iter) {
|
||||||
|
for (;;) {
|
||||||
|
var gt = iter.text.indexOf(">", iter.ch);
|
||||||
|
if (gt == -1) { if (nextLine(iter)) continue; else return; }
|
||||||
|
if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }
|
||||||
|
var lastSlash = iter.text.lastIndexOf("/", gt);
|
||||||
|
var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
|
||||||
|
iter.ch = gt + 1;
|
||||||
|
return selfClose ? "selfClose" : "regular";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function toTagStart(iter) {
|
||||||
|
for (;;) {
|
||||||
|
var lt = iter.ch ? iter.text.lastIndexOf("<", iter.ch - 1) : -1;
|
||||||
|
if (lt == -1) { if (prevLine(iter)) continue; else return; }
|
||||||
|
if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }
|
||||||
|
xmlTagStart.lastIndex = lt;
|
||||||
|
iter.ch = lt;
|
||||||
|
var match = xmlTagStart.exec(iter.text);
|
||||||
|
if (match && match.index == lt) return match;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function toNextTag(iter) {
|
||||||
|
for (;;) {
|
||||||
|
xmlTagStart.lastIndex = iter.ch;
|
||||||
|
var found = xmlTagStart.exec(iter.text);
|
||||||
|
if (!found) { if (nextLine(iter)) continue; else return; }
|
||||||
|
if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }
|
||||||
|
iter.ch = found.index + found[0].length;
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function toPrevTag(iter) {
|
||||||
|
for (;;) {
|
||||||
|
var gt = iter.ch ? iter.text.lastIndexOf(">", iter.ch - 1) : -1;
|
||||||
|
if (gt == -1) { if (prevLine(iter)) continue; else return; }
|
||||||
|
if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }
|
||||||
|
var lastSlash = iter.text.lastIndexOf("/", gt);
|
||||||
|
var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
|
||||||
|
iter.ch = gt + 1;
|
||||||
|
return selfClose ? "selfClose" : "regular";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function findMatchingClose(iter, tag) {
|
||||||
|
var stack = [];
|
||||||
|
for (;;) {
|
||||||
|
var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);
|
||||||
|
if (!next || !(end = toTagEnd(iter))) return;
|
||||||
|
if (end == "selfClose") continue;
|
||||||
|
if (next[1]) { // closing tag
|
||||||
|
for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {
|
||||||
|
stack.length = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i < 0 && (!tag || tag == next[2])) return {
|
||||||
|
tag: next[2],
|
||||||
|
from: Pos(startLine, startCh),
|
||||||
|
to: Pos(iter.line, iter.ch)
|
||||||
|
};
|
||||||
|
} else { // opening tag
|
||||||
|
stack.push(next[2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function findMatchingOpen(iter, tag) {
|
||||||
|
var stack = [];
|
||||||
|
for (;;) {
|
||||||
|
var prev = toPrevTag(iter);
|
||||||
|
if (!prev) return;
|
||||||
|
if (prev == "selfClose") { toTagStart(iter); continue; }
|
||||||
|
var endLine = iter.line, endCh = iter.ch;
|
||||||
|
var start = toTagStart(iter);
|
||||||
|
if (!start) return;
|
||||||
|
if (start[1]) { // closing tag
|
||||||
|
stack.push(start[2]);
|
||||||
|
} else { // opening tag
|
||||||
|
for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {
|
||||||
|
stack.length = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i < 0 && (!tag || tag == start[2])) return {
|
||||||
|
tag: start[2],
|
||||||
|
from: Pos(iter.line, iter.ch),
|
||||||
|
to: Pos(endLine, endCh)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.registerHelper("fold", "xml", function(cm, start) {
|
||||||
|
var iter = new Iter(cm, start.line, 0);
|
||||||
|
for (;;) {
|
||||||
|
var openTag = toNextTag(iter), end;
|
||||||
|
if (!openTag || iter.line != start.line || !(end = toTagEnd(iter))) return;
|
||||||
|
if (!openTag[1] && end != "selfClose") {
|
||||||
|
var start = Pos(iter.line, iter.ch);
|
||||||
|
var close = findMatchingClose(iter, openTag[2]);
|
||||||
|
return close && {from: start, to: close.from};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
CodeMirror.tagRangeFinder = CodeMirror.fold.xml; // deprecated
|
||||||
|
|
||||||
|
CodeMirror.findMatchingTag = function(cm, pos, range) {
|
||||||
|
var iter = new Iter(cm, pos.line, pos.ch, range);
|
||||||
|
if (iter.text.indexOf(">") == -1 && iter.text.indexOf("<") == -1) return;
|
||||||
|
var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);
|
||||||
|
var start = end && toTagStart(iter);
|
||||||
|
if (!end || end == "selfClose" || !start || cmp(iter, pos) > 0) return;
|
||||||
|
var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};
|
||||||
|
|
||||||
|
if (start[1]) { // closing tag
|
||||||
|
return {open: findMatchingOpen(iter, start[2]), close: here, at: "close"};
|
||||||
|
} else { // opening tag
|
||||||
|
iter = new Iter(cm, to.line, to.ch, range);
|
||||||
|
return {open: here, close: findMatchingClose(iter, start[2]), at: "open"};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
CodeMirror.findEnclosingTag = function(cm, pos, range) {
|
||||||
|
var iter = new Iter(cm, pos.line, pos.ch, range);
|
||||||
|
for (;;) {
|
||||||
|
var open = findMatchingOpen(iter);
|
||||||
|
if (!open) break;
|
||||||
|
var forward = new Iter(cm, pos.line, pos.ch, range);
|
||||||
|
var close = findMatchingClose(forward, open.tag);
|
||||||
|
if (close) return {open: open, close: close};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})();
|
||||||
34
src/main/webapp/codemirror/addon/hint/anyword-hint.js
vendored
Normal file
34
src/main/webapp/codemirror/addon/hint/anyword-hint.js
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var WORD = /[\w$]+/, RANGE = 500;
|
||||||
|
|
||||||
|
CodeMirror.registerHelper("hint", "anyword", function(editor, options) {
|
||||||
|
var word = options && options.word || WORD;
|
||||||
|
var range = options && options.range || RANGE;
|
||||||
|
var cur = editor.getCursor(), curLine = editor.getLine(cur.line);
|
||||||
|
var start = cur.ch, end = start;
|
||||||
|
while (end < curLine.length && word.test(curLine.charAt(end))) ++end;
|
||||||
|
while (start && word.test(curLine.charAt(start - 1))) --start;
|
||||||
|
var curWord = start != end && curLine.slice(start, end);
|
||||||
|
|
||||||
|
var list = [], seen = {};
|
||||||
|
function scan(dir) {
|
||||||
|
var line = cur.line, end = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;
|
||||||
|
for (; line != end; line += dir) {
|
||||||
|
var text = editor.getLine(line), m;
|
||||||
|
var re = new RegExp(word.source, "g");
|
||||||
|
while (m = re.exec(text)) {
|
||||||
|
if (line == cur.line && m[0] === curWord) continue;
|
||||||
|
if ((!curWord || m[0].indexOf(curWord) == 0) && !seen.hasOwnProperty(m[0])) {
|
||||||
|
seen[m[0]] = true;
|
||||||
|
list.push(m[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scan(-1);
|
||||||
|
scan(1);
|
||||||
|
return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};
|
||||||
|
});
|
||||||
|
})();
|
||||||
50
src/main/webapp/codemirror/addon/hint/css-hint.js
vendored
Normal file
50
src/main/webapp/codemirror/addon/hint/css-hint.js
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
function getHints(cm) {
|
||||||
|
var cur = cm.getCursor(), token = cm.getTokenAt(cur);
|
||||||
|
var inner = CodeMirror.innerMode(cm.getMode(), token.state);
|
||||||
|
if (inner.mode.name != "css") return;
|
||||||
|
|
||||||
|
// If it's not a 'word-style' token, ignore the token.
|
||||||
|
if (!/^[\w$_-]*$/.test(token.string)) {
|
||||||
|
token = {
|
||||||
|
start: cur.ch, end: cur.ch, string: "", state: token.state,
|
||||||
|
type: null
|
||||||
|
};
|
||||||
|
var stack = token.state.stack;
|
||||||
|
var lastToken = stack && stack.length > 0 ? stack[stack.length - 1] : "";
|
||||||
|
if (token.string == ":" || lastToken.indexOf("property") == 0)
|
||||||
|
token.type = "variable";
|
||||||
|
else if (token.string == "{" || lastToken.indexOf("rule") == 0)
|
||||||
|
token.type = "property";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!token.type)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var spec = CodeMirror.resolveMode("text/css");
|
||||||
|
var keywords = null;
|
||||||
|
if (token.type.indexOf("property") == 0)
|
||||||
|
keywords = spec.propertyKeywords;
|
||||||
|
else if (token.type.indexOf("variable") == 0)
|
||||||
|
keywords = spec.valueKeywords;
|
||||||
|
|
||||||
|
if (!keywords)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var result = [];
|
||||||
|
for (var name in keywords) {
|
||||||
|
if (name.indexOf(token.string) == 0 /* > -1 */)
|
||||||
|
result.push(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
list: result,
|
||||||
|
from: CodeMirror.Pos(cur.line, token.start),
|
||||||
|
to: CodeMirror.Pos(cur.line, token.end)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
CodeMirror.registerHelper("hint", "css", getHints);
|
||||||
|
})();
|
||||||
337
src/main/webapp/codemirror/addon/hint/html-hint.js
vendored
Normal file
337
src/main/webapp/codemirror/addon/hint/html-hint.js
vendored
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
(function () {
|
||||||
|
var langs = "ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" ");
|
||||||
|
var targets = ["_blank", "_self", "_top", "_parent"];
|
||||||
|
var charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"];
|
||||||
|
var methods = ["get", "post", "put", "delete"];
|
||||||
|
var encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"];
|
||||||
|
var media = ["all", "screen", "print", "embossed", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "speech",
|
||||||
|
"3d-glasses", "resolution [>][<][=] [X]", "device-aspect-ratio: X/Y", "orientation:portrait",
|
||||||
|
"orientation:landscape", "device-height: [X]", "device-width: [X]"];
|
||||||
|
var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags
|
||||||
|
|
||||||
|
var data = {
|
||||||
|
a: {
|
||||||
|
attrs: {
|
||||||
|
href: null, ping: null, type: null,
|
||||||
|
media: media,
|
||||||
|
target: targets,
|
||||||
|
hreflang: langs
|
||||||
|
}
|
||||||
|
},
|
||||||
|
abbr: s,
|
||||||
|
acronym: s,
|
||||||
|
address: s,
|
||||||
|
applet: s,
|
||||||
|
area: {
|
||||||
|
attrs: {
|
||||||
|
alt: null, coords: null, href: null, target: null, ping: null,
|
||||||
|
media: media, hreflang: langs, type: null,
|
||||||
|
shape: ["default", "rect", "circle", "poly"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
article: s,
|
||||||
|
aside: s,
|
||||||
|
audio: {
|
||||||
|
attrs: {
|
||||||
|
src: null, mediagroup: null,
|
||||||
|
crossorigin: ["anonymous", "use-credentials"],
|
||||||
|
preload: ["none", "metadata", "auto"],
|
||||||
|
autoplay: ["", "autoplay"],
|
||||||
|
loop: ["", "loop"],
|
||||||
|
controls: ["", "controls"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
b: s,
|
||||||
|
base: { attrs: { href: null, target: targets } },
|
||||||
|
basefont: s,
|
||||||
|
bdi: s,
|
||||||
|
bdo: s,
|
||||||
|
big: s,
|
||||||
|
blockquote: { attrs: { cite: null } },
|
||||||
|
body: s,
|
||||||
|
br: s,
|
||||||
|
button: {
|
||||||
|
attrs: {
|
||||||
|
form: null, formaction: null, name: null, value: null,
|
||||||
|
autofocus: ["", "autofocus"],
|
||||||
|
disabled: ["", "autofocus"],
|
||||||
|
formenctype: encs,
|
||||||
|
formmethod: methods,
|
||||||
|
formnovalidate: ["", "novalidate"],
|
||||||
|
formtarget: targets,
|
||||||
|
type: ["submit", "reset", "button"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
canvas: { attrs: { width: null, height: null } },
|
||||||
|
caption: s,
|
||||||
|
center: s,
|
||||||
|
cite: s,
|
||||||
|
code: s,
|
||||||
|
col: { attrs: { span: null } },
|
||||||
|
colgroup: { attrs: { span: null } },
|
||||||
|
command: {
|
||||||
|
attrs: {
|
||||||
|
type: ["command", "checkbox", "radio"],
|
||||||
|
label: null, icon: null, radiogroup: null, command: null, title: null,
|
||||||
|
disabled: ["", "disabled"],
|
||||||
|
checked: ["", "checked"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: { attrs: { value: null } },
|
||||||
|
datagrid: { attrs: { disabled: ["", "disabled"], multiple: ["", "multiple"] } },
|
||||||
|
datalist: { attrs: { data: null } },
|
||||||
|
dd: s,
|
||||||
|
del: { attrs: { cite: null, datetime: null } },
|
||||||
|
details: { attrs: { open: ["", "open"] } },
|
||||||
|
dfn: s,
|
||||||
|
dir: s,
|
||||||
|
div: s,
|
||||||
|
dl: s,
|
||||||
|
dt: s,
|
||||||
|
em: s,
|
||||||
|
embed: { attrs: { src: null, type: null, width: null, height: null } },
|
||||||
|
eventsource: { attrs: { src: null } },
|
||||||
|
fieldset: { attrs: { disabled: ["", "disabled"], form: null, name: null } },
|
||||||
|
figcaption: s,
|
||||||
|
figure: s,
|
||||||
|
font: s,
|
||||||
|
footer: s,
|
||||||
|
form: {
|
||||||
|
attrs: {
|
||||||
|
action: null, name: null,
|
||||||
|
"accept-charset": charsets,
|
||||||
|
autocomplete: ["on", "off"],
|
||||||
|
enctype: encs,
|
||||||
|
method: methods,
|
||||||
|
novalidate: ["", "novalidate"],
|
||||||
|
target: targets
|
||||||
|
}
|
||||||
|
},
|
||||||
|
frame: s,
|
||||||
|
frameset: s,
|
||||||
|
h1: s, h2: s, h3: s, h4: s, h5: s, h6: s,
|
||||||
|
head: {
|
||||||
|
attrs: {},
|
||||||
|
children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"]
|
||||||
|
},
|
||||||
|
header: s,
|
||||||
|
hgroup: s,
|
||||||
|
hr: s,
|
||||||
|
html: {
|
||||||
|
attrs: { manifest: null },
|
||||||
|
children: ["head", "body"]
|
||||||
|
},
|
||||||
|
i: s,
|
||||||
|
iframe: {
|
||||||
|
attrs: {
|
||||||
|
src: null, srcdoc: null, name: null, width: null, height: null,
|
||||||
|
sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"],
|
||||||
|
seamless: ["", "seamless"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
img: {
|
||||||
|
attrs: {
|
||||||
|
alt: null, src: null, ismap: null, usemap: null, width: null, height: null,
|
||||||
|
crossorigin: ["anonymous", "use-credentials"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
input: {
|
||||||
|
attrs: {
|
||||||
|
alt: null, dirname: null, form: null, formaction: null,
|
||||||
|
height: null, list: null, max: null, maxlength: null, min: null,
|
||||||
|
name: null, pattern: null, placeholder: null, size: null, src: null,
|
||||||
|
step: null, value: null, width: null,
|
||||||
|
accept: ["audio/*", "video/*", "image/*"],
|
||||||
|
autocomplete: ["on", "off"],
|
||||||
|
autofocus: ["", "autofocus"],
|
||||||
|
checked: ["", "checked"],
|
||||||
|
disabled: ["", "disabled"],
|
||||||
|
formenctype: encs,
|
||||||
|
formmethod: methods,
|
||||||
|
formnovalidate: ["", "novalidate"],
|
||||||
|
formtarget: targets,
|
||||||
|
multiple: ["", "multiple"],
|
||||||
|
readonly: ["", "readonly"],
|
||||||
|
required: ["", "required"],
|
||||||
|
type: ["hidden", "text", "search", "tel", "url", "email", "password", "datetime", "date", "month",
|
||||||
|
"week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio",
|
||||||
|
"file", "submit", "image", "reset", "button"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ins: { attrs: { cite: null, datetime: null } },
|
||||||
|
kbd: s,
|
||||||
|
keygen: {
|
||||||
|
attrs: {
|
||||||
|
challenge: null, form: null, name: null,
|
||||||
|
autofocus: ["", "autofocus"],
|
||||||
|
disabled: ["", "disabled"],
|
||||||
|
keytype: ["RSA"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
label: { attrs: { "for": null, form: null } },
|
||||||
|
legend: s,
|
||||||
|
li: { attrs: { value: null } },
|
||||||
|
link: {
|
||||||
|
attrs: {
|
||||||
|
href: null, type: null,
|
||||||
|
hreflang: langs,
|
||||||
|
media: media,
|
||||||
|
sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
map: { attrs: { name: null } },
|
||||||
|
mark: s,
|
||||||
|
menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } },
|
||||||
|
meta: {
|
||||||
|
attrs: {
|
||||||
|
content: null,
|
||||||
|
charset: charsets,
|
||||||
|
name: ["viewport", "application-name", "author", "description", "generator", "keywords"],
|
||||||
|
"http-equiv": ["content-language", "content-type", "default-style", "refresh"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },
|
||||||
|
nav: s,
|
||||||
|
noframes: s,
|
||||||
|
noscript: s,
|
||||||
|
object: {
|
||||||
|
attrs: {
|
||||||
|
data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,
|
||||||
|
typemustmatch: ["", "typemustmatch"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ol: { attrs: { reversed: ["", "reversed"], start: null, type: ["1", "a", "A", "i", "I"] } },
|
||||||
|
optgroup: { attrs: { disabled: ["", "disabled"], label: null } },
|
||||||
|
option: { attrs: { disabled: ["", "disabled"], label: null, selected: ["", "selected"], value: null } },
|
||||||
|
output: { attrs: { "for": null, form: null, name: null } },
|
||||||
|
p: s,
|
||||||
|
param: { attrs: { name: null, value: null } },
|
||||||
|
pre: s,
|
||||||
|
progress: { attrs: { value: null, max: null } },
|
||||||
|
q: { attrs: { cite: null } },
|
||||||
|
rp: s,
|
||||||
|
rt: s,
|
||||||
|
ruby: s,
|
||||||
|
s: s,
|
||||||
|
samp: s,
|
||||||
|
script: {
|
||||||
|
attrs: {
|
||||||
|
type: ["text/javascript"],
|
||||||
|
src: null,
|
||||||
|
async: ["", "async"],
|
||||||
|
defer: ["", "defer"],
|
||||||
|
charset: charsets
|
||||||
|
}
|
||||||
|
},
|
||||||
|
section: s,
|
||||||
|
select: {
|
||||||
|
attrs: {
|
||||||
|
form: null, name: null, size: null,
|
||||||
|
autofocus: ["", "autofocus"],
|
||||||
|
disabled: ["", "disabled"],
|
||||||
|
multiple: ["", "multiple"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
small: s,
|
||||||
|
source: { attrs: { src: null, type: null, media: null } },
|
||||||
|
span: s,
|
||||||
|
strike: s,
|
||||||
|
strong: s,
|
||||||
|
style: {
|
||||||
|
attrs: {
|
||||||
|
type: ["text/css"],
|
||||||
|
media: media,
|
||||||
|
scoped: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sub: s,
|
||||||
|
summary: s,
|
||||||
|
sup: s,
|
||||||
|
table: s,
|
||||||
|
tbody: s,
|
||||||
|
td: { attrs: { colspan: null, rowspan: null, headers: null } },
|
||||||
|
textarea: {
|
||||||
|
attrs: {
|
||||||
|
dirname: null, form: null, maxlength: null, name: null, placeholder: null,
|
||||||
|
rows: null, cols: null,
|
||||||
|
autofocus: ["", "autofocus"],
|
||||||
|
disabled: ["", "disabled"],
|
||||||
|
readonly: ["", "readonly"],
|
||||||
|
required: ["", "required"],
|
||||||
|
wrap: ["soft", "hard"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tfoot: s,
|
||||||
|
th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } },
|
||||||
|
thead: s,
|
||||||
|
time: { attrs: { datetime: null } },
|
||||||
|
title: s,
|
||||||
|
tr: s,
|
||||||
|
track: {
|
||||||
|
attrs: {
|
||||||
|
src: null, label: null, "default": null,
|
||||||
|
kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"],
|
||||||
|
srclang: langs
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tt: s,
|
||||||
|
u: s,
|
||||||
|
ul: s,
|
||||||
|
"var": s,
|
||||||
|
video: {
|
||||||
|
attrs: {
|
||||||
|
src: null, poster: null, width: null, height: null,
|
||||||
|
crossorigin: ["anonymous", "use-credentials"],
|
||||||
|
preload: ["auto", "metadata", "none"],
|
||||||
|
autoplay: ["", "autoplay"],
|
||||||
|
mediagroup: ["movie"],
|
||||||
|
muted: ["", "muted"],
|
||||||
|
controls: ["", "controls"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
wbr: s
|
||||||
|
};
|
||||||
|
|
||||||
|
var globalAttrs = {
|
||||||
|
accesskey: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
|
||||||
|
"class": null,
|
||||||
|
contenteditable: ["true", "false"],
|
||||||
|
contextmenu: null,
|
||||||
|
dir: ["ltr", "rtl", "auto"],
|
||||||
|
draggable: ["true", "false", "auto"],
|
||||||
|
dropzone: ["copy", "move", "link", "string:", "file:"],
|
||||||
|
hidden: ["hidden"],
|
||||||
|
id: null,
|
||||||
|
inert: ["inert"],
|
||||||
|
itemid: null,
|
||||||
|
itemprop: null,
|
||||||
|
itemref: null,
|
||||||
|
itemscope: ["itemscope"],
|
||||||
|
itemtype: null,
|
||||||
|
lang: ["en", "es"],
|
||||||
|
spellcheck: ["true", "false"],
|
||||||
|
style: null,
|
||||||
|
tabindex: ["1", "2", "3", "4", "5", "6", "7", "8", "9"],
|
||||||
|
title: null,
|
||||||
|
translate: ["yes", "no"],
|
||||||
|
onclick: null,
|
||||||
|
rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"]
|
||||||
|
};
|
||||||
|
function populate(obj) {
|
||||||
|
for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr))
|
||||||
|
obj.attrs[attr] = globalAttrs[attr];
|
||||||
|
}
|
||||||
|
|
||||||
|
populate(s);
|
||||||
|
for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s)
|
||||||
|
populate(data[tag]);
|
||||||
|
|
||||||
|
CodeMirror.htmlSchema = data;
|
||||||
|
function htmlHint(cm, options) {
|
||||||
|
var local = {schemaInfo: data};
|
||||||
|
if (options) for (var opt in options) local[opt] = options[opt];
|
||||||
|
return CodeMirror.hint.xml(cm, local);
|
||||||
|
}
|
||||||
|
CodeMirror.htmlHint = htmlHint; // deprecated
|
||||||
|
CodeMirror.registerHelper("hint", "html", htmlHint);
|
||||||
|
})();
|
||||||
131
src/main/webapp/codemirror/addon/hint/javascript-hint.js
vendored
Normal file
131
src/main/webapp/codemirror/addon/hint/javascript-hint.js
vendored
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
(function () {
|
||||||
|
var Pos = CodeMirror.Pos;
|
||||||
|
|
||||||
|
function forEach(arr, f) {
|
||||||
|
for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function arrayContains(arr, item) {
|
||||||
|
if (!Array.prototype.indexOf) {
|
||||||
|
var i = arr.length;
|
||||||
|
while (i--) {
|
||||||
|
if (arr[i] === item) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return arr.indexOf(item) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function scriptHint(editor, keywords, getToken, options) {
|
||||||
|
// Find the token at the cursor
|
||||||
|
var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token;
|
||||||
|
if (/\b(?:string|comment)\b/.test(token.type)) return;
|
||||||
|
token.state = CodeMirror.innerMode(editor.getMode(), token.state).state;
|
||||||
|
|
||||||
|
// If it's not a 'word-style' token, ignore the token.
|
||||||
|
if (!/^[\w$_]*$/.test(token.string)) {
|
||||||
|
token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state,
|
||||||
|
type: token.string == "." ? "property" : null};
|
||||||
|
}
|
||||||
|
// If it is a property, find out what it is a property of.
|
||||||
|
while (tprop.type == "property") {
|
||||||
|
tprop = getToken(editor, Pos(cur.line, tprop.start));
|
||||||
|
if (tprop.string != ".") return;
|
||||||
|
tprop = getToken(editor, Pos(cur.line, tprop.start));
|
||||||
|
if (!context) var context = [];
|
||||||
|
context.push(tprop);
|
||||||
|
}
|
||||||
|
return {list: getCompletions(token, context, keywords, options),
|
||||||
|
from: Pos(cur.line, token.start),
|
||||||
|
to: Pos(cur.line, token.end)};
|
||||||
|
}
|
||||||
|
|
||||||
|
function javascriptHint(editor, options) {
|
||||||
|
return scriptHint(editor, javascriptKeywords,
|
||||||
|
function (e, cur) {return e.getTokenAt(cur);},
|
||||||
|
options);
|
||||||
|
};
|
||||||
|
CodeMirror.javascriptHint = javascriptHint; // deprecated
|
||||||
|
CodeMirror.registerHelper("hint", "javascript", javascriptHint);
|
||||||
|
|
||||||
|
function getCoffeeScriptToken(editor, cur) {
|
||||||
|
// This getToken, it is for coffeescript, imitates the behavior of
|
||||||
|
// getTokenAt method in javascript.js, that is, returning "property"
|
||||||
|
// type and treat "." as indepenent token.
|
||||||
|
var token = editor.getTokenAt(cur);
|
||||||
|
if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') {
|
||||||
|
token.end = token.start;
|
||||||
|
token.string = '.';
|
||||||
|
token.type = "property";
|
||||||
|
}
|
||||||
|
else if (/^\.[\w$_]*$/.test(token.string)) {
|
||||||
|
token.type = "property";
|
||||||
|
token.start++;
|
||||||
|
token.string = token.string.replace(/\./, '');
|
||||||
|
}
|
||||||
|
return token;
|
||||||
|
}
|
||||||
|
|
||||||
|
function coffeescriptHint(editor, options) {
|
||||||
|
return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options);
|
||||||
|
}
|
||||||
|
CodeMirror.coffeescriptHint = coffeescriptHint; // deprecated
|
||||||
|
CodeMirror.registerHelper("hint", "coffeescript", coffeescriptHint);
|
||||||
|
|
||||||
|
var stringProps = ("charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight " +
|
||||||
|
"toUpperCase toLowerCase split concat match replace search").split(" ");
|
||||||
|
var arrayProps = ("length concat join splice push pop shift unshift slice reverse sort indexOf " +
|
||||||
|
"lastIndexOf every some filter forEach map reduce reduceRight ").split(" ");
|
||||||
|
var funcProps = "prototype apply call bind".split(" ");
|
||||||
|
var javascriptKeywords = ("break case catch continue debugger default delete do else false finally for function " +
|
||||||
|
"if in instanceof new null return switch throw true try typeof var void while with").split(" ");
|
||||||
|
var coffeescriptKeywords = ("and break catch class continue delete do else extends false finally for " +
|
||||||
|
"if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes").split(" ");
|
||||||
|
|
||||||
|
function getCompletions(token, context, keywords, options) {
|
||||||
|
var found = [], start = token.string;
|
||||||
|
function maybeAdd(str) {
|
||||||
|
if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str);
|
||||||
|
}
|
||||||
|
function gatherCompletions(obj) {
|
||||||
|
if (typeof obj == "string") forEach(stringProps, maybeAdd);
|
||||||
|
else if (obj instanceof Array) forEach(arrayProps, maybeAdd);
|
||||||
|
else if (obj instanceof Function) forEach(funcProps, maybeAdd);
|
||||||
|
for (var name in obj) maybeAdd(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (context && context.length) {
|
||||||
|
// If this is a property, see if it belongs to some object we can
|
||||||
|
// find in the current environment.
|
||||||
|
var obj = context.pop(), base;
|
||||||
|
if (obj.type && obj.type.indexOf("variable") === 0) {
|
||||||
|
if (options && options.additionalContext)
|
||||||
|
base = options.additionalContext[obj.string];
|
||||||
|
base = base || window[obj.string];
|
||||||
|
} else if (obj.type == "string") {
|
||||||
|
base = "";
|
||||||
|
} else if (obj.type == "atom") {
|
||||||
|
base = 1;
|
||||||
|
} else if (obj.type == "function") {
|
||||||
|
if (window.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') &&
|
||||||
|
(typeof window.jQuery == 'function'))
|
||||||
|
base = window.jQuery();
|
||||||
|
else if (window._ != null && (obj.string == '_') && (typeof window._ == 'function'))
|
||||||
|
base = window._();
|
||||||
|
}
|
||||||
|
while (base != null && context.length)
|
||||||
|
base = base[context.pop().string];
|
||||||
|
if (base != null) gatherCompletions(base);
|
||||||
|
} else {
|
||||||
|
// If not, just look in the window object and any local scope
|
||||||
|
// (reading into JS mode internals to get at the local and global variables)
|
||||||
|
for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);
|
||||||
|
for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name);
|
||||||
|
gatherCompletions(window);
|
||||||
|
forEach(keywords, maybeAdd);
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
})();
|
||||||
121
src/main/webapp/codemirror/addon/hint/pig-hint.js
vendored
Normal file
121
src/main/webapp/codemirror/addon/hint/pig-hint.js
vendored
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
function forEach(arr, f) {
|
||||||
|
for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function arrayContains(arr, item) {
|
||||||
|
if (!Array.prototype.indexOf) {
|
||||||
|
var i = arr.length;
|
||||||
|
while (i--) {
|
||||||
|
if (arr[i] === item) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return arr.indexOf(item) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function scriptHint(editor, _keywords, getToken) {
|
||||||
|
// Find the token at the cursor
|
||||||
|
var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token;
|
||||||
|
// If it's not a 'word-style' token, ignore the token.
|
||||||
|
|
||||||
|
if (!/^[\w$_]*$/.test(token.string)) {
|
||||||
|
token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state,
|
||||||
|
className: token.string == ":" ? "pig-type" : null};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!context) var context = [];
|
||||||
|
context.push(tprop);
|
||||||
|
|
||||||
|
var completionList = getCompletions(token, context);
|
||||||
|
completionList = completionList.sort();
|
||||||
|
//prevent autocomplete for last word, instead show dropdown with one word
|
||||||
|
if(completionList.length == 1) {
|
||||||
|
completionList.push(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return {list: completionList,
|
||||||
|
from: CodeMirror.Pos(cur.line, token.start),
|
||||||
|
to: CodeMirror.Pos(cur.line, token.end)};
|
||||||
|
}
|
||||||
|
|
||||||
|
function pigHint(editor) {
|
||||||
|
return scriptHint(editor, pigKeywordsU, function (e, cur) {return e.getTokenAt(cur);});
|
||||||
|
}
|
||||||
|
CodeMirror.pigHint = pigHint; // deprecated
|
||||||
|
CodeMirror.registerHelper("hint", "pig", pigHint);
|
||||||
|
|
||||||
|
var pigKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP "
|
||||||
|
+ "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL "
|
||||||
|
+ "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE "
|
||||||
|
+ "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE "
|
||||||
|
+ "NEQ MATCHES TRUE FALSE";
|
||||||
|
var pigKeywordsU = pigKeywords.split(" ");
|
||||||
|
var pigKeywordsL = pigKeywords.toLowerCase().split(" ");
|
||||||
|
|
||||||
|
var pigTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP";
|
||||||
|
var pigTypesU = pigTypes.split(" ");
|
||||||
|
var pigTypesL = pigTypes.toLowerCase().split(" ");
|
||||||
|
|
||||||
|
var pigBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL "
|
||||||
|
+ "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS "
|
||||||
|
+ "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG "
|
||||||
|
+ "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN "
|
||||||
|
+ "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER "
|
||||||
|
+ "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS "
|
||||||
|
+ "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA "
|
||||||
|
+ "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE "
|
||||||
|
+ "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG "
|
||||||
|
+ "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER";
|
||||||
|
var pigBuiltinsU = pigBuiltins.split(" ").join("() ").split(" ");
|
||||||
|
var pigBuiltinsL = pigBuiltins.toLowerCase().split(" ").join("() ").split(" ");
|
||||||
|
var pigBuiltinsC = ("BagSize BinStorage Bloom BuildBloom ConstantSize CubeDimensions DoubleAbs "
|
||||||
|
+ "DoubleAvg DoubleBase DoubleMax DoubleMin DoubleRound DoubleSum FloatAbs FloatAvg FloatMax "
|
||||||
|
+ "FloatMin FloatRound FloatSum GenericInvoker IntAbs IntAvg IntMax IntMin IntSum "
|
||||||
|
+ "InvokeForDouble InvokeForFloat InvokeForInt InvokeForLong InvokeForString Invoker "
|
||||||
|
+ "IsEmpty JsonLoader JsonMetadata JsonStorage LongAbs LongAvg LongMax LongMin LongSum MapSize "
|
||||||
|
+ "MonitoredUDF Nondeterministic OutputSchema PigStorage PigStreaming StringConcat StringMax "
|
||||||
|
+ "StringMin StringSize TextLoader TupleSize Utf8StorageConverter").split(" ").join("() ").split(" ");
|
||||||
|
|
||||||
|
function getCompletions(token, context) {
|
||||||
|
var found = [], start = token.string;
|
||||||
|
function maybeAdd(str) {
|
||||||
|
if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
function gatherCompletions(obj) {
|
||||||
|
if(obj == ":") {
|
||||||
|
forEach(pigTypesL, maybeAdd);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
forEach(pigBuiltinsU, maybeAdd);
|
||||||
|
forEach(pigBuiltinsL, maybeAdd);
|
||||||
|
forEach(pigBuiltinsC, maybeAdd);
|
||||||
|
forEach(pigTypesU, maybeAdd);
|
||||||
|
forEach(pigTypesL, maybeAdd);
|
||||||
|
forEach(pigKeywordsU, maybeAdd);
|
||||||
|
forEach(pigKeywordsL, maybeAdd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (context) {
|
||||||
|
// If this is a property, see if it belongs to some object we can
|
||||||
|
// find in the current environment.
|
||||||
|
var obj = context.pop(), base;
|
||||||
|
|
||||||
|
if (obj.type == "variable")
|
||||||
|
base = obj.string;
|
||||||
|
else if(obj.type == "variable-3")
|
||||||
|
base = ":" + obj.string;
|
||||||
|
|
||||||
|
while (base != null && context.length)
|
||||||
|
base = base[context.pop().string];
|
||||||
|
if (base != null) gatherCompletions(base);
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
})();
|
||||||
95
src/main/webapp/codemirror/addon/hint/python-hint.js
vendored
Normal file
95
src/main/webapp/codemirror/addon/hint/python-hint.js
vendored
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
(function () {
|
||||||
|
function forEach(arr, f) {
|
||||||
|
for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function arrayContains(arr, item) {
|
||||||
|
if (!Array.prototype.indexOf) {
|
||||||
|
var i = arr.length;
|
||||||
|
while (i--) {
|
||||||
|
if (arr[i] === item) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return arr.indexOf(item) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function scriptHint(editor, _keywords, getToken) {
|
||||||
|
// Find the token at the cursor
|
||||||
|
var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token;
|
||||||
|
// If it's not a 'word-style' token, ignore the token.
|
||||||
|
|
||||||
|
if (!/^[\w$_]*$/.test(token.string)) {
|
||||||
|
token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state,
|
||||||
|
className: token.string == ":" ? "python-type" : null};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!context) var context = [];
|
||||||
|
context.push(tprop);
|
||||||
|
|
||||||
|
var completionList = getCompletions(token, context);
|
||||||
|
completionList = completionList.sort();
|
||||||
|
//prevent autocomplete for last word, instead show dropdown with one word
|
||||||
|
if(completionList.length == 1) {
|
||||||
|
completionList.push(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return {list: completionList,
|
||||||
|
from: CodeMirror.Pos(cur.line, token.start),
|
||||||
|
to: CodeMirror.Pos(cur.line, token.end)};
|
||||||
|
}
|
||||||
|
|
||||||
|
function pythonHint(editor) {
|
||||||
|
return scriptHint(editor, pythonKeywordsU, function (e, cur) {return e.getTokenAt(cur);});
|
||||||
|
}
|
||||||
|
CodeMirror.pythonHint = pythonHint; // deprecated
|
||||||
|
CodeMirror.registerHelper("hint", "python", pythonHint);
|
||||||
|
|
||||||
|
var pythonKeywords = "and del from not while as elif global or with assert else if pass yield"
|
||||||
|
+ "break except import print class exec in raise continue finally is return def for lambda try";
|
||||||
|
var pythonKeywordsL = pythonKeywords.split(" ");
|
||||||
|
var pythonKeywordsU = pythonKeywords.toUpperCase().split(" ");
|
||||||
|
|
||||||
|
var pythonBuiltins = "abs divmod input open staticmethod all enumerate int ord str "
|
||||||
|
+ "any eval isinstance pow sum basestring execfile issubclass print super"
|
||||||
|
+ "bin file iter property tuple bool filter len range type"
|
||||||
|
+ "bytearray float list raw_input unichr callable format locals reduce unicode"
|
||||||
|
+ "chr frozenset long reload vars classmethod getattr map repr xrange"
|
||||||
|
+ "cmp globals max reversed zip compile hasattr memoryview round __import__"
|
||||||
|
+ "complex hash min set apply delattr help next setattr buffer"
|
||||||
|
+ "dict hex object slice coerce dir id oct sorted intern ";
|
||||||
|
var pythonBuiltinsL = pythonBuiltins.split(" ").join("() ").split(" ");
|
||||||
|
var pythonBuiltinsU = pythonBuiltins.toUpperCase().split(" ").join("() ").split(" ");
|
||||||
|
|
||||||
|
function getCompletions(token, context) {
|
||||||
|
var found = [], start = token.string;
|
||||||
|
function maybeAdd(str) {
|
||||||
|
if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
function gatherCompletions(_obj) {
|
||||||
|
forEach(pythonBuiltinsL, maybeAdd);
|
||||||
|
forEach(pythonBuiltinsU, maybeAdd);
|
||||||
|
forEach(pythonKeywordsL, maybeAdd);
|
||||||
|
forEach(pythonKeywordsU, maybeAdd);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (context) {
|
||||||
|
// If this is a property, see if it belongs to some object we can
|
||||||
|
// find in the current environment.
|
||||||
|
var obj = context.pop(), base;
|
||||||
|
|
||||||
|
if (obj.type == "variable")
|
||||||
|
base = obj.string;
|
||||||
|
else if(obj.type == "variable-3")
|
||||||
|
base = ":" + obj.string;
|
||||||
|
|
||||||
|
while (base != null && context.length)
|
||||||
|
base = base[context.pop().string];
|
||||||
|
if (base != null) gatherCompletions(base);
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
})();
|
||||||
38
src/main/webapp/codemirror/addon/hint/show-hint.css
vendored
Normal file
38
src/main/webapp/codemirror/addon/hint/show-hint.css
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
.CodeMirror-hints {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
overflow: hidden;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
margin: 0;
|
||||||
|
padding: 2px;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||||
|
-moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||||
|
box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid silver;
|
||||||
|
|
||||||
|
background: white;
|
||||||
|
font-size: 90%;
|
||||||
|
font-family: monospace;
|
||||||
|
|
||||||
|
max-height: 20em;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-hint {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
max-width: 19em;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: pre;
|
||||||
|
color: black;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-hint-active {
|
||||||
|
background: #08f;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user