diff --git a/xxl-job-simple/.settings/.jsdtscope b/xxl-job-simple/.settings/.jsdtscope deleted file mode 100644 index a2d71f4f..00000000 --- a/xxl-job-simple/.settings/.jsdtscope +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/xxl-job-simple/.settings/org.eclipse.m2e.core.prefs b/xxl-job-simple/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index 14b697b7..00000000 --- a/xxl-job-simple/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.container b/xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.container deleted file mode 100644 index 3bd5d0a4..00000000 --- a/xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.container +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.name b/xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.name deleted file mode 100644 index 05bd71b6..00000000 --- a/xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.name +++ /dev/null @@ -1 +0,0 @@ -Window \ No newline at end of file diff --git a/xxl-job-simple/.settings/org.eclipse.wst.validation.prefs b/xxl-job-simple/.settings/org.eclipse.wst.validation.prefs deleted file mode 100644 index 6f1cba68..00000000 --- a/xxl-job-simple/.settings/org.eclipse.wst.validation.prefs +++ /dev/null @@ -1,2 +0,0 @@ -disabled=06target -eclipse.preferences.version=1 diff --git a/xxl-job-simple/pom.xml b/xxl-job-simple/pom.xml index 9c3fedc6..5f923a2e 100644 --- a/xxl-job-simple/pom.xml +++ b/xxl-job-simple/pom.xml @@ -9,7 +9,7 @@ xxl-job-simple 1.1.2-SNAPSHOT war - + 3.2.14.RELEASE @@ -129,7 +129,14 @@ quartz 2.2.1 - + + + + org.apache.httpcomponents + httpclient + 4.3.6 + + diff --git a/xxl-job-simple/src/main/java/com/xxl/controller/IndexController.java b/xxl-job-simple/src/main/java/com/xxl/controller/IndexController.java deleted file mode 100644 index e06e72c4..00000000 --- a/xxl-job-simple/src/main/java/com/xxl/controller/IndexController.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.xxl.controller; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.commons.lang.StringUtils; -import org.quartz.CronExpression; -import org.quartz.Job; -import org.quartz.SchedulerException; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -import com.xxl.quartz.DynamicSchedulerUtil; -import com.xxl.quartz.ReturnT; - -@Controller -public class IndexController { - - - @RequestMapping("") - public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; - } - - @RequestMapping("/add") - @ResponseBody - public ReturnT add(String triggerKeyName, String cronExpression, String jobClassName, String jobDesc) { - // triggerKeyName - if (StringUtils.isBlank(triggerKeyName)) { - return new ReturnT(500, "请输入“任务key”"); - } - // cronExpression - if (StringUtils.isBlank(cronExpression)) { - return new ReturnT(500, "请输入“任务corn”"); - } - if (!CronExpression.isValidExpression(cronExpression)) { - return new ReturnT(500, "“任务corn”不合法"); - } - // jobClassName - Class clazz = null; - try { - clazz = Class.forName(jobClassName); - } catch (ClassNotFoundException e1) { - e1.printStackTrace(); - } - if (clazz == null) { - return new ReturnT(500, "“任务Impl”不合法"); - } - if (!Job.class.isAssignableFrom(clazz)) { - return new ReturnT(500, "“任务Impl”类必须继承Job接口"); - } - @SuppressWarnings("unchecked") - Class jobClass = (Class)clazz; - // jobDesc - if (StringUtils.isBlank(jobDesc)) { - return new ReturnT(500, "请输入“任务描述”"); - } - try { - Map jobData = new HashMap(); - jobData.put(DynamicSchedulerUtil.job_desc, jobDesc); - DynamicSchedulerUtil.addJob(triggerKeyName, cronExpression, jobClass, jobData); - return ReturnT.SUCCESS; - } catch (SchedulerException e) { - e.printStackTrace(); - } - return ReturnT.FAIL; - } - - @RequestMapping("/reschedule") - @ResponseBody - public ReturnT reschedule(String triggerKeyName, String cronExpression) { - // triggerKeyName - if (StringUtils.isBlank(triggerKeyName)) { - return new ReturnT(500, "请输入“任务key”"); - } - // cronExpression - if (StringUtils.isBlank(cronExpression)) { - return new ReturnT(500, "请输入“任务corn”"); - } - if (!CronExpression.isValidExpression(cronExpression)) { - return new ReturnT(500, "“任务corn”不合法"); - } - try { - DynamicSchedulerUtil.rescheduleJob(triggerKeyName, cronExpression); - return ReturnT.SUCCESS; - } catch (SchedulerException e) { - e.printStackTrace(); - } - return ReturnT.FAIL; - } - - @RequestMapping("/remove") - @ResponseBody - public ReturnT remove(String triggerKeyName) { - try { - DynamicSchedulerUtil.removeJob(triggerKeyName); - return ReturnT.SUCCESS; - } catch (SchedulerException e) { - e.printStackTrace(); - return ReturnT.FAIL; - } - } - - @RequestMapping("/pause") - @ResponseBody - public ReturnT pause(String triggerKeyName) { - try { - DynamicSchedulerUtil.pauseJob(triggerKeyName); - return ReturnT.SUCCESS; - } catch (SchedulerException e) { - e.printStackTrace(); - return ReturnT.FAIL; - } - } - - @RequestMapping("/resume") - @ResponseBody - public ReturnT resume(String triggerKeyName) { - try { - DynamicSchedulerUtil.resumeJob(triggerKeyName); - return ReturnT.SUCCESS; - } catch (SchedulerException e) { - e.printStackTrace(); - return ReturnT.FAIL; - } - } - - @RequestMapping("/help") - public String help(Model model) { - return "job/help"; - } - -} diff --git a/xxl-job-simple/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-simple/src/main/java/com/xxl/job/controller/IndexController.java new file mode 100644 index 00000000..ac463932 --- /dev/null +++ b/xxl-job-simple/src/main/java/com/xxl/job/controller/IndexController.java @@ -0,0 +1,198 @@ +package com.xxl.job.controller; + +import java.io.UnsupportedEncodingException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang.StringUtils; +import org.quartz.CronExpression; +import org.quartz.Job; +import org.quartz.SchedulerException; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.xxl.job.core.model.ReturnT; +import com.xxl.job.core.util.DynamicSchedulerUtil; +import com.xxl.job.service.job.DemoJobBean; +import com.xxl.job.service.job.DemoJobBeanB; + +/** + * index controller + * @author xuxueli 2015-12-19 16:13:16 + */ +@Controller +public class IndexController { + + // local job bean list + public static Map jobBeanMap = new HashMap(); + + @RequestMapping("") + public String index(Model model) { + jobBeanMap.put(DemoJobBean.class.getName(), "测试任务"); + jobBeanMap.put(DemoJobBeanB.class.getName(), "测试任务B"); + model.addAttribute("jobBeanMap", jobBeanMap); + + // job list + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + + @RequestMapping("/help") + public String help(Model model) { + return "job/help"; + } + + @SuppressWarnings("unchecked") + @RequestMapping("/job/add") + @ResponseBody + public ReturnT add(HttpServletRequest request) { + String triggerKeyName = null; + String cronExpression = null; + Map jobData = new HashMap(); + + try { + request.setCharacterEncoding("utf-8"); + } catch (UnsupportedEncodingException e1) { + e1.printStackTrace(); + } + Set> paramSet = request.getParameterMap().entrySet(); + for (Entry param : paramSet) { + if (param.getKey().equals("triggerKeyName")) { + triggerKeyName = param.getValue()[0]; + } else if (param.getKey().equals("cronExpression")) { + cronExpression = param.getValue()[0]; + } else { + jobData.put(param.getKey(), param.getValue().length>0?param.getValue()[0]:param.getValue()); + } + } + + // triggerKeyName + if (StringUtils.isBlank(triggerKeyName)) { + return new ReturnT(500, "请输入“任务key”"); + } + + // cronExpression + if (StringUtils.isBlank(cronExpression)) { + return new ReturnT(500, "请输入“任务corn”"); + } + if (!CronExpression.isValidExpression(cronExpression)) { + return new ReturnT(500, "“任务corn”不合法"); + } + + // jobData + if (jobData.get(DynamicSchedulerUtil.job_desc)==null || jobData.get(DynamicSchedulerUtil.job_desc).toString().trim().length()==0) { + return new ReturnT(500, "请输入“任务描述”"); + } + + // job_bean + String job_bean = (String) jobData.get(DynamicSchedulerUtil.job_bean); + if (StringUtils.isBlank(job_bean)) { + return new ReturnT(500, "JobBean不可为空"); + } + + // jobClass + Class jobClass = null; + try { + Class clazz = Class.forName(job_bean); + if (clazz!=null) { + jobClass = (Class) clazz; + } + } catch (ClassNotFoundException e1) { + e1.printStackTrace(); + } + if (jobClass == null) { + return new ReturnT(500, "JobBean未知"); + } + + try { + boolean result = DynamicSchedulerUtil.addJob(triggerKeyName, cronExpression, jobClass, jobData); + if (!result) { + return new ReturnT(500, "任务ID重复,请更换确认"); + } + return ReturnT.SUCCESS; + } catch (SchedulerException e) { + e.printStackTrace(); + } + return ReturnT.FAIL; + } + + @RequestMapping("/job/reschedule") + @ResponseBody + public ReturnT reschedule(String triggerKeyName, String cronExpression) { + // triggerKeyName + if (StringUtils.isBlank(triggerKeyName)) { + return new ReturnT(500, "请输入“任务key”"); + } + // cronExpression + if (StringUtils.isBlank(cronExpression)) { + return new ReturnT(500, "请输入“任务corn”"); + } + if (!CronExpression.isValidExpression(cronExpression)) { + return new ReturnT(500, "“任务corn”不合法"); + } + try { + DynamicSchedulerUtil.rescheduleJob(triggerKeyName, cronExpression); + return ReturnT.SUCCESS; + } catch (SchedulerException e) { + e.printStackTrace(); + } + return ReturnT.FAIL; + } + + @RequestMapping("/job/remove") + @ResponseBody + public ReturnT remove(String triggerKeyName) { + try { + DynamicSchedulerUtil.removeJob(triggerKeyName); + return ReturnT.SUCCESS; + } catch (SchedulerException e) { + e.printStackTrace(); + return ReturnT.FAIL; + } + } + + @RequestMapping("/job/pause") + @ResponseBody + public ReturnT pause(String triggerKeyName) { + try { + DynamicSchedulerUtil.pauseJob(triggerKeyName); + return ReturnT.SUCCESS; + } catch (SchedulerException e) { + e.printStackTrace(); + return ReturnT.FAIL; + } + } + + @RequestMapping("/job/resume") + @ResponseBody + public ReturnT resume(String triggerKeyName) { + try { + DynamicSchedulerUtil.resumeJob(triggerKeyName); + return ReturnT.SUCCESS; + } catch (SchedulerException e) { + e.printStackTrace(); + return ReturnT.FAIL; + } + } + + @RequestMapping("/job/trigger") + @ResponseBody + public ReturnT triggerJob(String triggerKeyName) { + try { + DynamicSchedulerUtil.triggerJob(triggerKeyName); + return ReturnT.SUCCESS; + } catch (SchedulerException e) { + e.printStackTrace(); + return ReturnT.FAIL; + } + } + +} diff --git a/xxl-job-simple/src/main/java/com/xxl/quartz/ReturnT.java b/xxl-job-simple/src/main/java/com/xxl/job/core/model/ReturnT.java similarity index 91% rename from xxl-job-simple/src/main/java/com/xxl/quartz/ReturnT.java rename to xxl-job-simple/src/main/java/com/xxl/job/core/model/ReturnT.java index 7cb523f6..aaeb3f51 100644 --- a/xxl-job-simple/src/main/java/com/xxl/quartz/ReturnT.java +++ b/xxl-job-simple/src/main/java/com/xxl/job/core/model/ReturnT.java @@ -1,4 +1,4 @@ -package com.xxl.quartz; +package com.xxl.job.core.model; /** * common return diff --git a/xxl-job-simple/src/main/java/com/xxl/job/core/model/XxlJobLog.java b/xxl-job-simple/src/main/java/com/xxl/job/core/model/XxlJobLog.java new file mode 100644 index 00000000..144a2e1c --- /dev/null +++ b/xxl-job-simple/src/main/java/com/xxl/job/core/model/XxlJobLog.java @@ -0,0 +1,79 @@ +package com.xxl.job.core.model; + +import java.util.Date; + +/** + * xxl-job log, used to track trigger process + * @author xuxueli 2015-12-19 23:19:09 + */ +public class XxlJobLog { + + private String jobTriggerUuid; + private String jobHandleName; + // trigger info + private Date triggerTime; + private String triggerStatus; + private String triggerDetailLog; + // handle info + private Date handleTime; + private String handleStatus; + private String handleDetailLog; + + public String getJobTriggerUuid() { + return jobTriggerUuid; + } + public void setJobTriggerUuid(String jobTriggerUuid) { + this.jobTriggerUuid = jobTriggerUuid; + } + public String getJobHandleName() { + return jobHandleName; + } + public void setJobHandleName(String jobHandleName) { + this.jobHandleName = jobHandleName; + } + public Date getTriggerTime() { + return triggerTime; + } + public void setTriggerTime(Date triggerTime) { + this.triggerTime = triggerTime; + } + public String getTriggerStatus() { + return triggerStatus; + } + public void setTriggerStatus(String triggerStatus) { + this.triggerStatus = triggerStatus; + } + public String getTriggerDetailLog() { + return triggerDetailLog; + } + public void setTriggerDetailLog(String triggerDetailLog) { + this.triggerDetailLog = triggerDetailLog; + } + public Date getHandleTime() { + return handleTime; + } + public void setHandleTime(Date handleTime) { + this.handleTime = handleTime; + } + public String getHandleStatus() { + return handleStatus; + } + public void setHandleStatus(String handleStatus) { + this.handleStatus = handleStatus; + } + public String getHandleDetailLog() { + return handleDetailLog; + } + public void setHandleDetailLog(String handleDetailLog) { + this.handleDetailLog = handleDetailLog; + } + + @Override + public String toString() { + return "XxlJobLog [jobTriggerUuid=" + jobTriggerUuid + ", jobHandleName=" + jobHandleName + + ", triggerTime=" + triggerTime + ", triggerStatus=" + triggerStatus + ", triggerDetailLog=" + + triggerDetailLog + ", handleTime=" + handleTime + ", handleStatus=" + handleStatus + + ", handleDetailLog=" + handleDetailLog + "]"; + } + +} diff --git a/xxl-job-simple/src/main/java/com/xxl/quartz/DynamicSchedulerUtil.java b/xxl-job-simple/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java similarity index 87% rename from xxl-job-simple/src/main/java/com/xxl/quartz/DynamicSchedulerUtil.java rename to xxl-job-simple/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java index 8626d621..a44ae997 100644 --- a/xxl-job-simple/src/main/java/com/xxl/quartz/DynamicSchedulerUtil.java +++ b/xxl-job-simple/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java @@ -1,4 +1,4 @@ -package com.xxl.quartz; +package com.xxl.job.core.util; import java.util.ArrayList; import java.util.Date; @@ -26,6 +26,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.util.Assert; +/** + * base quartz scheduler util + * @author xuxueli 2015-12-19 16:13:53 + */ public final class DynamicSchedulerUtil implements InitializingBean { private static final Logger logger = LoggerFactory.getLogger(DynamicSchedulerUtil.class); @@ -74,6 +78,8 @@ public final class DynamicSchedulerUtil implements InitializingBean { } public static final String job_desc = "job_desc"; + public static final String job_bean = "job_bean"; + // addJob 新增 public static boolean addJob(String triggerKeyName, String cronExpression, Class jobClass, Map jobData) throws SchedulerException { // TriggerKey : name + group @@ -173,5 +179,22 @@ public final class DynamicSchedulerUtil implements InitializingBean { } return result; } + + // run 执行一次 + public static boolean triggerJob(String triggerKeyName) throws SchedulerException { + // TriggerKey : name + group + String group = Scheduler.DEFAULT_GROUP; + JobKey jobKey = JobKey.jobKey(triggerKeyName, group); + + boolean result = false; + if (scheduler.checkExists(jobKey)) { + scheduler.triggerJob(jobKey); + result = true; + logger.info(">>>>>>>>>>> runJob success, jobKey:{}", jobKey); + } else { + logger.info(">>>>>>>>>>> runJob fail, jobKey:{}", jobKey); + } + return result; + } } \ No newline at end of file diff --git a/xxl-job-simple/src/main/java/com/xxl/job/service/ITriggerService.java b/xxl-job-simple/src/main/java/com/xxl/job/service/ITriggerService.java new file mode 100644 index 00000000..642aae86 --- /dev/null +++ b/xxl-job-simple/src/main/java/com/xxl/job/service/ITriggerService.java @@ -0,0 +1,11 @@ +package com.xxl.job.service; + +/** + * local trigger, only exists in local jvm + * @author xuxueli 2015-12-17 17:29:23 + */ +public interface ITriggerService { + + public void beat(); + +} diff --git a/xxl-job-simple/src/main/java/com/xxl/service/impl/TriggerServiceImpl.java b/xxl-job-simple/src/main/java/com/xxl/job/service/impl/TriggerServiceImpl.java similarity index 56% rename from xxl-job-simple/src/main/java/com/xxl/service/impl/TriggerServiceImpl.java rename to xxl-job-simple/src/main/java/com/xxl/job/service/impl/TriggerServiceImpl.java index 003d1178..1f92eaa5 100644 --- a/xxl-job-simple/src/main/java/com/xxl/service/impl/TriggerServiceImpl.java +++ b/xxl-job-simple/src/main/java/com/xxl/job/service/impl/TriggerServiceImpl.java @@ -1,17 +1,21 @@ -package com.xxl.service.impl; +package com.xxl.job.service.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; -import com.xxl.service.ITriggerService; +import com.xxl.job.service.ITriggerService; +/** + * local trigger, only exists in local jvm + * @author xuxueli 2015-12-17 17:31:24 + */ @Service("triggerService") public class TriggerServiceImpl implements ITriggerService { private static transient Logger logger = LoggerFactory.getLogger(TriggerServiceImpl.class); public void beat() { - logger.info(">>>>>>>>>> xxl-job : local quartz beat success."); + logger.info(">>>>>>>>>>> xxl-job beat success."); } } diff --git a/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBean.java b/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBean.java new file mode 100644 index 00000000..5345578a --- /dev/null +++ b/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBean.java @@ -0,0 +1,40 @@ +package com.xxl.job.service.job; + +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; + +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.quartz.QuartzJobBean; + +/** + * http job bean + * @author xuxueli 2015-12-17 18:20:34 + */ +public class DemoJobBean extends QuartzJobBean { + private static Logger logger = LoggerFactory.getLogger(DemoJobBean.class); + + @Override + protected void executeInternal(JobExecutionContext context) + throws JobExecutionException { + + String triggerKey = context.getTrigger().getKey().getName(); + String triggerGroup = context.getTrigger().getKey().getGroup(); + Map jobDataMap = context.getMergedJobDataMap().getWrappedMap(); + + // jobDataMap 2 params + Map params = new HashMap(); + if (jobDataMap!=null && jobDataMap.size()>0) { + for (Entry item : jobDataMap.entrySet()) { + params.put(item.getKey(), String.valueOf(item.getValue())); + } + } + + logger.info(">>>>>>>>>>> xxl-job run :jobId:{}, group:{}, jobDataMap:{}", + new Object[]{triggerKey, triggerGroup, jobDataMap}); + } + +} \ No newline at end of file diff --git a/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBeanB.java b/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBeanB.java new file mode 100644 index 00000000..01df9fae --- /dev/null +++ b/xxl-job-simple/src/main/java/com/xxl/job/service/job/DemoJobBeanB.java @@ -0,0 +1,40 @@ +package com.xxl.job.service.job; + +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; + +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.quartz.QuartzJobBean; + +/** + * http job bean + * @author xuxueli 2015-12-17 18:20:34 + */ +public class DemoJobBeanB extends QuartzJobBean { + private static Logger logger = LoggerFactory.getLogger(DemoJobBeanB.class); + + @Override + protected void executeInternal(JobExecutionContext context) + throws JobExecutionException { + + String triggerKey = context.getTrigger().getKey().getName(); + String triggerGroup = context.getTrigger().getKey().getGroup(); + Map jobDataMap = context.getMergedJobDataMap().getWrappedMap(); + + // jobDataMap 2 params + Map params = new HashMap(); + if (jobDataMap!=null && jobDataMap.size()>0) { + for (Entry item : jobDataMap.entrySet()) { + params.put(item.getKey(), String.valueOf(item.getValue())); + } + } + + logger.info(">>>>>>>>>>> xxl-job run :jobId:{}, group:{}, jobDataMap:{}", + new Object[]{triggerKey, triggerGroup, jobDataMap}); + } + +} \ No newline at end of file diff --git a/xxl-job-simple/src/main/java/com/xxl/service/ITriggerService.java b/xxl-job-simple/src/main/java/com/xxl/service/ITriggerService.java deleted file mode 100644 index 97bca42f..00000000 --- a/xxl-job-simple/src/main/java/com/xxl/service/ITriggerService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.xxl.service; - -public interface ITriggerService { - - public void beat(); - -} diff --git a/xxl-job-simple/src/main/java/com/xxl/service/job/JobDetailDemo.java b/xxl-job-simple/src/main/java/com/xxl/service/job/JobDetailDemo.java deleted file mode 100644 index 6a493066..00000000 --- a/xxl-job-simple/src/main/java/com/xxl/service/job/JobDetailDemo.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.xxl.service.job; - -import java.util.Date; - -import org.apache.commons.lang.time.FastDateFormat; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.quartz.QuartzJobBean; - -public class JobDetailDemo extends QuartzJobBean { - private static Logger logger = LoggerFactory.getLogger(JobDetailDemo.class); - - @Override - protected void executeInternal(JobExecutionContext context) - throws JobExecutionException { - logger.info("全站静态化[DB] run at :{}", FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss").format(new Date())); - } - -} diff --git a/xxl-job-simple/src/main/java/com/xxl/service/job/TestDynamicJob.java b/xxl-job-simple/src/main/java/com/xxl/service/job/TestDynamicJob.java deleted file mode 100644 index eb18fc3a..00000000 --- a/xxl-job-simple/src/main/java/com/xxl/service/job/TestDynamicJob.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.xxl.service.job; - -import java.util.concurrent.TimeUnit; - -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.xxl.quartz.DynamicSchedulerUtil; - -public class TestDynamicJob implements Job { - private static Logger logger = LoggerFactory.getLogger(TestDynamicJob.class); - - @Override - public void execute(JobExecutionContext context) throws JobExecutionException { - logger.info("xxl-job run: name:{}, group:{}, job_desc:{}", - new Object[]{context.getTrigger().getKey().getName(), context.getTrigger().getKey().getGroup(), - context.getMergedJobDataMap().get(DynamicSchedulerUtil.job_desc)}); - - try { - TimeUnit.SECONDS.sleep(10); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/xxl-job-simple/src/main/resources/applicationcontext-base.xml b/xxl-job-simple/src/main/resources/applicationcontext-base.xml index e63b7982..a05aeeea 100644 --- a/xxl-job-simple/src/main/resources/applicationcontext-base.xml +++ b/xxl-job-simple/src/main/resources/applicationcontext-base.xml @@ -10,7 +10,7 @@ http://www.springframework.org/schema/util/spring-util.xsd"> - + @@ -19,11 +19,6 @@ - - - - - diff --git a/xxl-job-simple/src/main/resources/applicationcontext-database.xml b/xxl-job-simple/src/main/resources/applicationcontext-database.xml index cdb291a1..a72057d1 100644 --- a/xxl-job-simple/src/main/resources/applicationcontext-database.xml +++ b/xxl-job-simple/src/main/resources/applicationcontext-database.xml @@ -15,7 +15,6 @@ - @@ -35,7 +34,7 @@ - + diff --git a/xxl-job-simple/src/main/resources/applicationcontext-trigger-db.xml b/xxl-job-simple/src/main/resources/applicationcontext-trigger-db.xml index f3ba1019..58e268f7 100644 --- a/xxl-job-simple/src/main/resources/applicationcontext-trigger-db.xml +++ b/xxl-job-simple/src/main/resources/applicationcontext-trigger-db.xml @@ -9,37 +9,16 @@ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/xxl-job-simple/src/main/resources/applicationcontext-trigger-local.xml b/xxl-job-simple/src/main/resources/applicationcontext-trigger-local.xml index cf0f3c8d..911aba64 100644 --- a/xxl-job-simple/src/main/resources/applicationcontext-trigger-local.xml +++ b/xxl-job-simple/src/main/resources/applicationcontext-trigger-local.xml @@ -20,11 +20,11 @@ - - + + - + diff --git a/xxl-job-simple/src/main/resources/applicationcontext-tx.xml b/xxl-job-simple/src/main/resources/applicationcontext-tx.xml index 2511344b..709ad8ca 100644 --- a/xxl-job-simple/src/main/resources/applicationcontext-tx.xml +++ b/xxl-job-simple/src/main/resources/applicationcontext-tx.xml @@ -12,15 +12,12 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> - - - @@ -33,11 +30,8 @@ - - - diff --git a/xxl-job-simple/src/main/resources/freemarker.variables.properties b/xxl-job-simple/src/main/resources/freemarker.variables.properties deleted file mode 100644 index bbbd6077..00000000 --- a/xxl-job-simple/src/main/resources/freemarker.variables.properties +++ /dev/null @@ -1,2 +0,0 @@ -# 静态文件地址 -static_url=https://www.baidu.com/ \ No newline at end of file diff --git a/xxl-job-simple/src/main/resources/log4j.properties b/xxl-job-simple/src/main/resources/log4j.properties index 60ca14ad..f31fe38f 100644 --- a/xxl-job-simple/src/main/resources/log4j.properties +++ b/xxl-job-simple/src/main/resources/log4j.properties @@ -1,10 +1,10 @@ -log4j.rootLogger=info,console +log4j.rootLogger=info,console,logFile log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern=%d - xxl-job-demo - %p [%c] - <%m>%n +log4j.appender.console.layout.ConversionPattern=%d - xxl-job-admin - %p [%c] - <%m>%n log4j.appender.logFile=org.apache.log4j.DailyRollingFileAppender -log4j.appender.logFile.File=${catalina.base}/logs/xxl-job-demo.log +log4j.appender.logFile.File=${catalina.base}/logs/xxl-job-admin.log log4j.appender.logFile.layout=org.apache.log4j.PatternLayout -log4j.appender.logFile.layout.ConversionPattern=%d - xxl-job-demo - %p [%c] - <%m>%n +log4j.appender.logFile.layout.ConversionPattern=%d - xxl-job-admin - %p [%c] - <%m>%n diff --git a/xxl-job-simple/src/main/resources/quartz.properties b/xxl-job-simple/src/main/resources/quartz.properties index a1e68509..ecda6e90 100644 --- a/xxl-job-simple/src/main/resources/quartz.properties +++ b/xxl-job-simple/src/main/resources/quartz.properties @@ -18,6 +18,7 @@ org.quartz.jobStore.misfireThreshold: 60000 #org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore # for cluster +#org.quartz.jobStore.tablePrefix = WED_qrtz_ org.quartz.scheduler.instanceId: AUTO org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.isClustered: true diff --git a/xxl-job-simple/src/main/resources/springmvc-context.xml b/xxl-job-simple/src/main/resources/springmvc-context.xml index b44ff95f..6d7548c3 100644 --- a/xxl-job-simple/src/main/resources/springmvc-context.xml +++ b/xxl-job-simple/src/main/resources/springmvc-context.xml @@ -18,34 +18,35 @@ http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> - Spring-web MVC配置 - - + - - + + - - + + - - - - - + + + + + - + + --> \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/WEB-INF/template/common/common.macro.ftl b/xxl-job-simple/src/main/webapp/WEB-INF/template/common/common.macro.ftl index c6de78a6..bf6f235f 100644 --- a/xxl-job-simple/src/main/webapp/WEB-INF/template/common/common.macro.ftl +++ b/xxl-job-simple/src/main/webapp/WEB-INF/template/common/common.macro.ftl @@ -37,8 +37,6 @@ - - @@ -47,71 +45,15 @@ <#macro commonHeader>
- - - - -
- <#macro commonLeft> @@ -121,22 +63,9 @@ @@ -226,8 +155,8 @@ Version 1.0 Copyright © 2015-2015   - github  - cnblog. + github  + cnblog. All rights reserved. diff --git a/xxl-job-simple/src/main/webapp/WEB-INF/template/job/help.ftl b/xxl-job-simple/src/main/webapp/WEB-INF/template/job/help.ftl index 0c72e977..9ce7eaf6 100644 --- a/xxl-job-simple/src/main/webapp/WEB-INF/template/job/help.ftl +++ b/xxl-job-simple/src/main/webapp/WEB-INF/template/job/help.ftl @@ -1,7 +1,7 @@ - AdminLTE 2 | Dashboard + 调度中心 <#import "/common/common.macro.ftl" as netCommon> <@netCommon.commonStyle /> @@ -26,18 +26,41 @@
-

简介:xxl-job

-

调度管理平台:基于quartz封装实现的的集群任务调度管理平台.

+

简介:XXL_JOB

+

基于quartz封装实现的的集群任务调度管理平台.

- -
+

特点:

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

+
+

分层模型:

+

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

+

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

+

+

+
+

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

+

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

+

》通讯模块:负责调度模块和任务模块之间的通讯.

+

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

+
+
+

+
+ +
+

调度属性解析 : 发出HTTP调度请求

+

1、调度Key【必填】:调度信息的全局唯一标识.

+

2、调度Corn【必填】:调度执行的时间表达式.

+

3、调度描述【必填】:调度的简述.

+

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

+

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

+
diff --git a/xxl-job-simple/src/main/webapp/WEB-INF/template/job/index.ftl b/xxl-job-simple/src/main/webapp/WEB-INF/template/job/index.ftl index e5fedb3a..91d43164 100644 --- a/xxl-job-simple/src/main/webapp/WEB-INF/template/job/index.ftl +++ b/xxl-job-simple/src/main/webapp/WEB-INF/template/job/index.ftl @@ -19,10 +19,10 @@
-

使用教程调度管理平台

+

调度中心调度管理

@@ -32,17 +32,17 @@
-

任务列表

- +

调度列表

+
- + - - + + @@ -53,11 +53,13 @@ - + @@ -87,10 +90,10 @@ - + - - + + @@ -114,30 +117,39 @@
任务ID调度key cronJob类路径简介参数 状态 操作
${item['TriggerKey'].name} ${item['Trigger'].cronExpression}${item['JobDetail'].jobClass} - <#if item['JobDetail'].jobDataMap?exists> - <#assign job_desc=item['JobDetail'].jobDataMap['job_desc'] /> - ${job_desc} + <#assign jobDataMap = item['JobDetail'].jobDataMap /> + <#if jobDataMap?exists && jobDataMap?keys?size gt 0> + <#list jobDataMap?keys as key> + ${key} = ${jobDataMap[key]}
+
@@ -77,8 +79,9 @@ <#elseif item['TriggerState'] == 'PAUSED'> - + +

任务ID调度key cronJob类路径简介参数 状态 操作
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').dataTable(); - - new $.fn.dataTable.AutoFill( table, { - "columnDefs": [ - { enable: false, targets: [-1, -2] }, - { increment: false, targets: 3 } - ] - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
- -
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/complete-callback.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/complete-callback.html deleted file mode 100644 index 2076d4f2..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/complete-callback.html +++ /dev/null @@ -1,652 +0,0 @@ - - - - - - - - AutoFill example - Complete callback - - - - - - - - - - - - - - -
-
-

AutoFill example Complete callback

- -
-

AutoFill provides a number of customisable callback functions so you can tailor it's actions to - exactly what you need. This example shows the use of the complete callback function which - is executed at the end of an auto-fill drag, providing information about the cells that were - altered.

- -

For a complete description of the complete callback, please refer to the AutoFill documentation.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').dataTable(); - - new $.fn.dataTable.AutoFill( table, { - complete: function ( altered ) { - var last = altered[ altered.length-1 ]; - alert( - altered.length+' cells were altered in this auto-fill. The '+ - 'value of the last cell altered was: '+last.oldValue+' and is '+ - 'now '+last.newValue - ); - } - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/fill-both.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/fill-both.html deleted file mode 100644 index f65076e1..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/fill-both.html +++ /dev/null @@ -1,641 +0,0 @@ - - - - - - - - AutoFill example - Horizontal and vertical fill - - - - - - - - - - - - - - -
-
-

AutoFill example Horizontal and vertical fill

- -
-

By default AutoFill will allow the fill to operate only on a single column at a time (i.e. - vertically). However, it has the ability to provide the fill either horizontally, over both axis or - limited to just one axis depending on the direction of the drag. This option is provided by the - mode sanitisation option.

- -

In this case it is set to both (i.e. both horizontal and vertical axis) to provide the - filler along a row, rather than a column.

- -

For the full range of options and syntax for mode please refer to the AutoFill documentation.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable(); - - new $.fn.dataTable.AutoFill( table, { - mode: 'both' - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/fill-horizontal.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/fill-horizontal.html deleted file mode 100644 index 13cadac9..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/fill-horizontal.html +++ /dev/null @@ -1,641 +0,0 @@ - - - - - - - - AutoFill example - Horizontal fill - - - - - - - - - - - - - - -
-
-

AutoFill example Horizontal fill

- -
-

By default AutoFill will allow the fill to operate only on a single column at a time (i.e. - vertically). However, it has the ability to provide the fill either horizontally, over both axis or - limited to just one axis depending on the direction of the drag. This option is provided by the - mode sanitisation option.

- -

In this case it is set to x (i.e. horizontal axis) to provide the filler along a row, - rather than a column.

- -

For the full range of options and syntax for mode please refer to the AutoFill documentation.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable(); - - new $.fn.dataTable.AutoFill( table, { - mode: 'x' - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/index.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/index.html deleted file mode 100644 index 9cade86c..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - AutoFill examples - AutoFill examples - - - -
-
-

AutoFill example AutoFill examples

- -
-

AutoFill gives an Excel like option to a DataTable to click and drag over multiple cells, filling in - information over the selected cells and incrementing numbers as needed.

- -

Thanks to Phoniax AS for their sponsorship of this plug-in for - DataTables.

-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/scrolling.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/scrolling.html deleted file mode 100644 index 66871ec7..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/scrolling.html +++ /dev/null @@ -1,638 +0,0 @@ - - - - - - - - AutoFill example - Scrolling DataTable - - - - - - - - - - - - - - -
-
-

AutoFill example Scrolling DataTable

- -
-

When dragging an AutoFill handle, the table (if DataTables scrolling is enabled) or the window will - be automatically scrolled, as you approach the edge of the scrolling component. The example below shows - the effect with DataTables scrolling (and also window if needed).

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').dataTable( { - scrollY: 200, - scrollCollapse: false, - paginate: false - } ); - - new $.fn.dataTable.AutoFill( table ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/simple.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/simple.html deleted file mode 100644 index ea3db498..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/simple.html +++ /dev/null @@ -1,631 +0,0 @@ - - - - - - - - AutoFill example - Basic initialisation - - - - - - - - - - - - - - -
-
-

AutoFill example Basic initialisation

- -
-

AutoFill gives an Excel like option to a DataTable to click and drag over multiple cells, filling in - information over the selected cells and incrementing numbers as needed.

- -

AutoFill is initialised using the $.fn.dataTable.AutoFill function as shown in the - example below. It requires one parameter, the DataTable instance that AutoFill is to operate on, and - optionally a second configuration parameter, which is shown in the other AutoFill examples.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable(); - new $.fn.dataTable.AutoFill( table ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/step-callback.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/step-callback.html deleted file mode 100644 index c1255aaa..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/examples/step-callback.html +++ /dev/null @@ -1,660 +0,0 @@ - - - - - - - - AutoFill example - Step callback - - - - - - - - - - - - - - -
-
-

AutoFill example Step callback

- -
-

By default, AutoFill will increment cells that contain numbers by a single digit for each cell that - is iterated over (try the Age column below for example). This behaviour can be disabled - completely using the increment column option, but it can also be modified to suit your - requirements through use of the step column callback function.

- -

The step callback is executed for each cell in the auto-fill set and gives complete - control over how data is incremented. The example below shows the step function being used on the - Salary column to increment by 100, rather than 1 for each cell.

- -

For a complete description of the step callback, please refer to the AutoFill documentation.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').dataTable(); - - new $.fn.dataTable.AutoFill( table, { - columnDefs: [ { - targets: -1, - step: function ( cell, read, last, i, x, y ) { - var val = parseInt( (last || read).replace(/[$,]/g, ''), 10 ); - val += (x<0 || y<0 ? -100 : 100); // - if going back up, + if going down - - // Format for the currency column - return '$'+val.toString().replace( /\B(?=(\d{3})+(?!\d))/g, ',' ); - } - } ] - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/images/filler.png b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/images/filler.png deleted file mode 100644 index f2af65d8..00000000 Binary files a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/images/filler.png and /dev/null differ diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/js/dataTables.autoFill.js b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/js/dataTables.autoFill.js deleted file mode 100644 index 6bbfa35b..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/AutoFill/js/dataTables.autoFill.js +++ /dev/null @@ -1,855 +0,0 @@ -/*! AutoFill 1.2.1 - * ©2008-2014 SpryMedia Ltd - datatables.net/license - */ - -/** - * @summary AutoFill - * @description Add Excel like click and drag auto-fill options to DataTables - * @version 1.2.1 - * @file dataTables.autoFill.js - * @author SpryMedia Ltd (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * @copyright Copyright 2010-2014 SpryMedia Ltd. - * - * This source file is free software, available under the following license: - * MIT license - http://datatables.net/license/mit - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -(function( window, document, undefined ) { - -var factory = function( $, DataTable ) { -"use strict"; - -/** - * AutoFill provides Excel like auto-fill features for a DataTable - * - * @class AutoFill - * @constructor - * @param {object} oTD DataTables settings object - * @param {object} oConfig Configuration object for AutoFill - */ -var AutoFill = function( oDT, oConfig ) -{ - /* Sanity check that we are a new instance */ - if ( ! (this instanceof AutoFill) ) { - throw( "Warning: AutoFill must be initialised with the keyword 'new'" ); - } - - if ( ! $.fn.dataTableExt.fnVersionCheck('1.7.0') ) { - throw( "Warning: AutoFill requires DataTables 1.7 or greater"); - } - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Public class variables - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - this.c = {}; - - /** - * @namespace Settings object which contains customisable information for AutoFill instance - */ - this.s = { - /** - * @namespace Cached information about the little dragging icon (the filler) - */ - "filler": { - "height": 0, - "width": 0 - }, - - /** - * @namespace Cached information about the border display - */ - "border": { - "width": 2 - }, - - /** - * @namespace Store for live information for the current drag - */ - "drag": { - "startX": -1, - "startY": -1, - "startTd": null, - "endTd": null, - "dragging": false - }, - - /** - * @namespace Data cache for information that we need for scrolling the screen when we near - * the edges - */ - "screen": { - "interval": null, - "y": 0, - "height": 0, - "scrollTop": 0 - }, - - /** - * @namespace Data cache for the position of the DataTables scrolling element (when scrolling - * is enabled) - */ - "scroller": { - "top": 0, - "bottom": 0 - }, - - /** - * @namespace Information stored for each column. An array of objects - */ - "columns": [] - }; - - - /** - * @namespace Common and useful DOM elements for the class instance - */ - this.dom = { - "table": null, - "filler": null, - "borderTop": null, - "borderRight": null, - "borderBottom": null, - "borderLeft": null, - "currentTarget": null - }; - - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Public class methods - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /** - * Retreieve the settings object from an instance - * @method fnSettings - * @returns {object} AutoFill settings object - */ - this.fnSettings = function () { - return this.s; - }; - - - /* Constructor logic */ - this._fnInit( oDT, oConfig ); - return this; -}; - - - -AutoFill.prototype = { - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Private methods (they are of course public in JS, but recommended as private) - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /** - * Initialisation - * @method _fnInit - * @param {object} dt DataTables settings object - * @param {object} config Configuration object for AutoFill - * @returns void - */ - "_fnInit": function ( dt, config ) - { - var - that = this, - i, iLen; - - // Use DataTables API to get the settings allowing selectors, instances - // etc to be used, or for backwards compatibility get from the old - // fnSettings method - this.s.dt = DataTable.Api ? - new DataTable.Api( dt ).settings()[0] : - dt.fnSettings(); - this.s.init = config || {}; - this.dom.table = this.s.dt.nTable; - - $.extend( true, this.c, AutoFill.defaults, config ); - - /* Add and configure the columns */ - this._initColumns(); - - /* Auto Fill click and drag icon */ - var filler = $('
', { - 'class': 'AutoFill_filler' - } ) - .appendTo( 'body' ); - this.dom.filler = filler[0]; - - // Get the height / width of the click element - this.s.filler.height = filler.height(); - this.s.filler.width = filler.width(); - filler[0].style.display = "none"; - - /* Border display - one div for each side. We can't just use a single - * one with a border, as we want the events to effectively pass through - * the transparent bit of the box - */ - var border; - var appender = document.body; - if ( that.s.dt.oScroll.sY !== "" ) { - that.s.dt.nTable.parentNode.style.position = "relative"; - appender = that.s.dt.nTable.parentNode; - } - - border = $('
', { - "class": "AutoFill_border" - } ); - this.dom.borderTop = border.clone().appendTo( appender )[0]; - this.dom.borderRight = border.clone().appendTo( appender )[0]; - this.dom.borderBottom = border.clone().appendTo( appender )[0]; - this.dom.borderLeft = border.clone().appendTo( appender )[0]; - - /* Events */ - filler.on( 'mousedown.DTAF', function (e) { - this.onselectstart = function() { return false; }; - that._fnFillerDragStart.call( that, e ); - return false; - } ); - - $('tbody', this.dom.table).on( - 'mouseover.DTAF mouseout.DTAF', - '>tr>td, >tr>th', - function (e) { - that._fnFillerDisplay.call( that, e ); - } - ); - - $(this.dom.table).on( 'destroy.dt.DTAF', function () { - filler.off( 'mousedown.DTAF' ).remove(); - $('tbody', this.dom.table).off( 'mouseover.DTAF mouseout.DTAF' ); - } ); - }, - - - _initColumns: function ( ) - { - var that = this; - var i, ien; - var dt = this.s.dt; - var config = this.s.init; - - for ( i=0, ien=dt.aoColumns.length ; i offsetEnd.left) { - x1 = offsetEnd.left - border; - x2 = offsetStart.left + $(nStart).outerWidth(); - width = offsetStart.left + $(nStart).outerWidth() - offsetEnd.left + (2*border); - } - - if ( this.s.dt.oScroll.sY !== "" ) - { - /* The border elements are inside the DT scroller - so position relative to that */ - var - offsetScroll = $(this.s.dt.nTable.parentNode).offset(), - scrollTop = $(this.s.dt.nTable.parentNode).scrollTop(), - scrollLeft = $(this.s.dt.nTable.parentNode).scrollLeft(); - - x1 -= offsetScroll.left - scrollLeft; - x2 -= offsetScroll.left - scrollLeft; - y1 -= offsetScroll.top - scrollTop; - y2 -= offsetScroll.top - scrollTop; - } - - /* Top */ - oStyle = this.dom.borderTop.style; - oStyle.top = y1+"px"; - oStyle.left = x1+"px"; - oStyle.height = this.s.border.width+"px"; - oStyle.width = width+"px"; - - /* Bottom */ - oStyle = this.dom.borderBottom.style; - oStyle.top = y2+"px"; - oStyle.left = x1+"px"; - oStyle.height = this.s.border.width+"px"; - oStyle.width = width+"px"; - - /* Left */ - oStyle = this.dom.borderLeft.style; - oStyle.top = y1+"px"; - oStyle.left = x1+"px"; - oStyle.height = height+"px"; - oStyle.width = this.s.border.width+"px"; - - /* Right */ - oStyle = this.dom.borderRight.style; - oStyle.top = y1+"px"; - oStyle.left = x2+"px"; - oStyle.height = height+"px"; - oStyle.width = this.s.border.width+"px"; - }, - - - /** - * Mouse down event handler for starting a drag - * @method _fnFillerDragStart - * @param {Object} e Event object - * @returns void - */ - "_fnFillerDragStart": function (e) - { - var that = this; - var startingTd = this.dom.currentTarget; - - this.s.drag.dragging = true; - - that.dom.borderTop.style.display = "block"; - that.dom.borderRight.style.display = "block"; - that.dom.borderBottom.style.display = "block"; - that.dom.borderLeft.style.display = "block"; - - var coords = this._fnTargetCoords( startingTd ); - this.s.drag.startX = coords.x; - this.s.drag.startY = coords.y; - - this.s.drag.startTd = startingTd; - this.s.drag.endTd = startingTd; - - this._fnUpdateBorder( startingTd, startingTd ); - - $(document).bind('mousemove.AutoFill', function (e) { - that._fnFillerDragMove.call( that, e ); - } ); - - $(document).bind('mouseup.AutoFill', function (e) { - that._fnFillerFinish.call( that, e ); - } ); - - /* Scrolling information cache */ - this.s.screen.y = e.pageY; - this.s.screen.height = $(window).height(); - this.s.screen.scrollTop = $(document).scrollTop(); - - if ( this.s.dt.oScroll.sY !== "" ) - { - this.s.scroller.top = $(this.s.dt.nTable.parentNode).offset().top; - this.s.scroller.bottom = this.s.scroller.top + $(this.s.dt.nTable.parentNode).height(); - } - - /* Scrolling handler - we set an interval (which is cancelled on mouse up) which will fire - * regularly and see if we need to do any scrolling - */ - this.s.screen.interval = setInterval( function () { - var iScrollTop = $(document).scrollTop(); - var iScrollDelta = iScrollTop - that.s.screen.scrollTop; - that.s.screen.y += iScrollDelta; - - if ( that.s.screen.height - that.s.screen.y + iScrollTop < 50 ) - { - $('html, body').animate( { - "scrollTop": iScrollTop + 50 - }, 240, 'linear' ); - } - else if ( that.s.screen.y - iScrollTop < 50 ) - { - $('html, body').animate( { - "scrollTop": iScrollTop - 50 - }, 240, 'linear' ); - } - - if ( that.s.dt.oScroll.sY !== "" ) - { - if ( that.s.screen.y > that.s.scroller.bottom - 50 ) - { - $(that.s.dt.nTable.parentNode).animate( { - "scrollTop": $(that.s.dt.nTable.parentNode).scrollTop() + 50 - }, 240, 'linear' ); - } - else if ( that.s.screen.y < that.s.scroller.top + 50 ) - { - $(that.s.dt.nTable.parentNode).animate( { - "scrollTop": $(that.s.dt.nTable.parentNode).scrollTop() - 50 - }, 240, 'linear' ); - } - } - }, 250 ); - }, - - - /** - * Mouse move event handler for during a move. See if we want to update the display based on the - * new cursor position - * @method _fnFillerDragMove - * @param {Object} e Event object - * @returns void - */ - "_fnFillerDragMove": function (e) - { - if ( e.target && e.target.nodeName.toUpperCase() == "TD" && - e.target != this.s.drag.endTd ) - { - var coords = this._fnTargetCoords( e.target ); - - if ( this.c.mode == "y" && coords.x != this.s.drag.startX ) - { - e.target = $('tbody>tr:eq('+coords.y+')>td:eq('+this.s.drag.startX+')', this.dom.table)[0]; - } - if ( this.c.mode == "x" && coords.y != this.s.drag.startY ) - { - e.target = $('tbody>tr:eq('+this.s.drag.startY+')>td:eq('+coords.x+')', this.dom.table)[0]; - } - - if ( this.c.mode == "either") - { - if(coords.x != this.s.drag.startX ) - { - e.target = $('tbody>tr:eq('+this.s.drag.startY+')>td:eq('+coords.x+')', this.dom.table)[0]; - } - else if ( coords.y != this.s.drag.startY ) { - e.target = $('tbody>tr:eq('+coords.y+')>td:eq('+this.s.drag.startX+')', this.dom.table)[0]; - } - } - - // update coords - if ( this.c.mode !== "both" ) { - coords = this._fnTargetCoords( e.target ); - } - - var drag = this.s.drag; - drag.endTd = e.target; - - if ( coords.y >= this.s.drag.startY ) { - this._fnUpdateBorder( drag.startTd, drag.endTd ); - } - else { - this._fnUpdateBorder( drag.endTd, drag.startTd ); - } - this._fnFillerPosition( e.target ); - } - - /* Update the screen information so we can perform scrolling */ - this.s.screen.y = e.pageY; - this.s.screen.scrollTop = $(document).scrollTop(); - - if ( this.s.dt.oScroll.sY !== "" ) - { - this.s.scroller.scrollTop = $(this.s.dt.nTable.parentNode).scrollTop(); - this.s.scroller.top = $(this.s.dt.nTable.parentNode).offset().top; - this.s.scroller.bottom = this.s.scroller.top + $(this.s.dt.nTable.parentNode).height(); - } - }, - - - /** - * Mouse release handler - end the drag and take action to update the cells with the needed values - * @method _fnFillerFinish - * @param {Object} e Event object - * @returns void - */ - "_fnFillerFinish": function (e) - { - var that = this, i, iLen, j; - - $(document).unbind('mousemove.AutoFill mouseup.AutoFill'); - - this.dom.borderTop.style.display = "none"; - this.dom.borderRight.style.display = "none"; - this.dom.borderBottom.style.display = "none"; - this.dom.borderLeft.style.display = "none"; - - this.s.drag.dragging = false; - - clearInterval( this.s.screen.interval ); - - var cells = []; - var table = this.dom.table; - var coordsStart = this._fnTargetCoords( this.s.drag.startTd ); - var coordsEnd = this._fnTargetCoords( this.s.drag.endTd ); - var columnIndex = function ( visIdx ) { - return that.s.dt.oApi._fnVisibleToColumnIndex( that.s.dt, visIdx ); - }; - - // xxx - urgh - there must be a way of reducing this... - if ( coordsStart.y <= coordsEnd.y ) { - for ( i=coordsStart.y ; i<=coordsEnd.y ; i++ ) { - if ( coordsStart.x <= coordsEnd.x ) { - for ( j=coordsStart.x ; j<=coordsEnd.x ; j++ ) { - cells.push( { - node: $('tbody>tr:eq('+i+')>td:eq('+j+')', table)[0], - x: j - coordsStart.x, - y: i - coordsStart.y, - colIdx: columnIndex( j ) - } ); - } - } - else { - for ( j=coordsStart.x ; j>=coordsEnd.x ; j-- ) { - cells.push( { - node: $('tbody>tr:eq('+i+')>td:eq('+j+')', table)[0], - x: j - coordsStart.x, - y: i - coordsStart.y, - colIdx: columnIndex( j ) - } ); - } - } - } - } - else { - for ( i=coordsStart.y ; i>=coordsEnd.y ; i-- ) { - if ( coordsStart.x <= coordsEnd.x ) { - for ( j=coordsStart.x ; j<=coordsEnd.x ; j++ ) { - cells.push( { - node: $('tbody>tr:eq('+i+')>td:eq('+j+')', table)[0], - x: j - coordsStart.x, - y: i - coordsStart.y, - colIdx: columnIndex( j ) - } ); - } - } - else { - for ( j=coordsStart.x ; j>=coordsEnd.x ; j-- ) { - cells.push( { - node: $('tbody>tr:eq('+i+')>td:eq('+j+')', table)[0], - x: coordsStart.x - j, - y: coordsStart.y - i, - colIdx: columnIndex( j ) - } ); - } - } - } - } - - // An auto-fill requires 2 or more cells - if ( cells.length <= 1 ) { - return; - } - - var edited = []; - var previous; - - for ( i=0, iLen=cells.length ; i",{"class":"AutoFill_filler"}).appendTo("body");this.dom.filler=e[0];this.s.filler.height=e.height();this.s.filler.width=e.width();e[0].style.display= -"none";var g,f=j.body;""!==a.s.dt.oScroll.sY&&(a.s.dt.nTable.parentNode.style.position="relative",f=a.s.dt.nTable.parentNode);g=c("
",{"class":"AutoFill_border"});this.dom.borderTop=g.clone().appendTo(f)[0];this.dom.borderRight=g.clone().appendTo(f)[0];this.dom.borderBottom=g.clone().appendTo(f)[0];this.dom.borderLeft=g.clone().appendTo(f)[0];e.on("mousedown.DTAF",function(b){this.onselectstart=function(){return false};a._fnFillerDragStart.call(a,b);return false});c("tbody",this.dom.table).on("mouseover.DTAF mouseout.DTAF", -">tr>td, >tr>th",function(b){a._fnFillerDisplay.call(a,b)});c(this.dom.table).on("destroy.dt.DTAF",function(){e.off("mousedown.DTAF").remove();c("tbody",this.dom.table).off("mouseover.DTAF mouseout.DTAF")})},_initColumns:function(){var d=this,b,a,e=this.s.dt,g=this.s.init;b=0;for(a=e.aoColumns.length;bg.left&&(f=g.left-a,i=e.left+c(d).outerWidth(),j=e.left+c(d).outerWidth()-g.left+2*a);""!==this.s.dt.oScroll.sY&&(a=c(this.s.dt.nTable.parentNode).offset(),e=c(this.s.dt.nTable.parentNode).scrollTop(), -g=c(this.s.dt.nTable.parentNode).scrollLeft(),f-=a.left-g,i-=a.left-g,n-=a.top-e,h-=a.top-e);a=this.dom.borderTop.style;a.top=n+"px";a.left=f+"px";a.height=this.s.border.width+"px";a.width=j+"px";a=this.dom.borderBottom.style;a.top=h+"px";a.left=f+"px";a.height=this.s.border.width+"px";a.width=j+"px";a=this.dom.borderLeft.style;a.top=n+"px";a.left=f+"px";a.height=k+"px";a.width=this.s.border.width+"px";a=this.dom.borderRight.style;a.top=n+"px";a.left=i+"px";a.height=k+"px";a.width=this.s.border.width+ -"px"},_fnFillerDragStart:function(d){var b=this,a=this.dom.currentTarget;this.s.drag.dragging=!0;b.dom.borderTop.style.display="block";b.dom.borderRight.style.display="block";b.dom.borderBottom.style.display="block";b.dom.borderLeft.style.display="block";var e=this._fnTargetCoords(a);this.s.drag.startX=e.x;this.s.drag.startY=e.y;this.s.drag.startTd=a;this.s.drag.endTd=a;this._fnUpdateBorder(a,a);c(j).bind("mousemove.AutoFill",function(a){b._fnFillerDragMove.call(b,a)});c(j).bind("mouseup.AutoFill", -function(a){b._fnFillerFinish.call(b,a)});this.s.screen.y=d.pageY;this.s.screen.height=c(o).height();this.s.screen.scrollTop=c(j).scrollTop();""!==this.s.dt.oScroll.sY&&(this.s.scroller.top=c(this.s.dt.nTable.parentNode).offset().top,this.s.scroller.bottom=this.s.scroller.top+c(this.s.dt.nTable.parentNode).height());this.s.screen.interval=setInterval(function(){var a=c(j).scrollTop();b.s.screen.y=b.s.screen.y+(a-b.s.screen.scrollTop);b.s.screen.height-b.s.screen.y+a<50?c("html, body").animate({scrollTop:a+ -50},240,"linear"):b.s.screen.y-a<50&&c("html, body").animate({scrollTop:a-50},240,"linear");b.s.dt.oScroll.sY!==""&&(b.s.screen.y>b.s.scroller.bottom-50?c(b.s.dt.nTable.parentNode).animate({scrollTop:c(b.s.dt.nTable.parentNode).scrollTop()+50},240,"linear"):b.s.screen.ytr:eq("+b.y+")>td:eq("+this.s.drag.startX+")",this.dom.table)[0]);"x"==this.c.mode&&b.y!=this.s.drag.startY&&(d.target=c("tbody>tr:eq("+this.s.drag.startY+")>td:eq("+b.x+")",this.dom.table)[0]);"either"==this.c.mode&&(b.x!=this.s.drag.startX?d.target=c("tbody>tr:eq("+this.s.drag.startY+")>td:eq("+b.x+")",this.dom.table)[0]:b.y!=this.s.drag.startY&&(d.target=c("tbody>tr:eq("+b.y+")>td:eq("+this.s.drag.startX+ -")",this.dom.table)[0]));"both"!==this.c.mode&&(b=this._fnTargetCoords(d.target));var a=this.s.drag;a.endTd=d.target;b.y>=this.s.drag.startY?this._fnUpdateBorder(a.startTd,a.endTd):this._fnUpdateBorder(a.endTd,a.startTd);this._fnFillerPosition(d.target)}this.s.screen.y=d.pageY;this.s.screen.scrollTop=c(j).scrollTop();""!==this.s.dt.oScroll.sY&&(this.s.scroller.scrollTop=c(this.s.dt.nTable.parentNode).scrollTop(),this.s.scroller.top=c(this.s.dt.nTable.parentNode).offset().top,this.s.scroller.bottom= -this.s.scroller.top+c(this.s.dt.nTable.parentNode).height())},_fnFillerFinish:function(){var d=this,b,a;c(j).unbind("mousemove.AutoFill mouseup.AutoFill");this.dom.borderTop.style.display="none";this.dom.borderRight.style.display="none";this.dom.borderBottom.style.display="none";this.dom.borderLeft.style.display="none";this.s.drag.dragging=!1;clearInterval(this.s.screen.interval);var e=[],g=this.dom.table,f=this._fnTargetCoords(this.s.drag.startTd),i=this._fnTargetCoords(this.s.drag.endTd),h=function(a){return d.s.dt.oApi._fnVisibleToColumnIndex(d.s.dt, -a)};if(f.y<=i.y)for(b=f.y;b<=i.y;b++)if(f.x<=i.x)for(a=f.x;a<=i.x;a++)e.push({node:c("tbody>tr:eq("+b+")>td:eq("+a+")",g)[0],x:a-f.x,y:b-f.y,colIdx:h(a)});else for(a=f.x;a>=i.x;a--)e.push({node:c("tbody>tr:eq("+b+")>td:eq("+a+")",g)[0],x:a-f.x,y:b-f.y,colIdx:h(a)});else for(b=f.y;b>=i.y;b--)if(f.x<=i.x)for(a=f.x;a<=i.x;a++)e.push({node:c("tbody>tr:eq("+b+")>td:eq("+a+")",g)[0],x:a-f.x,y:b-f.y,colIdx:h(a)});else for(a=f.x;a>=i.x;a--)e.push({node:c("tbody>tr:eq("+b+")>td:eq("+a+")",g)[0],x:f.x-a,y:f.y- -b,colIdx:h(a)});if(!(1>=e.length)){var g=[],m;b=0;for(a=e.length;bg||0>f?-1:1)):a===m?b:a}}};return h};"function"===typeof define&&define.amd? -define(["jquery","datatables"],l):"object"===typeof exports?l(require("jquery"),require("datatables")):jQuery&&!jQuery.fn.dataTable.AutoFill&&l(jQuery,jQuery.fn.dataTable)})(window,document); diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/License.txt b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/License.txt deleted file mode 100644 index 9ade2f1b..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/License.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2010-2015 SpryMedia Limited -http://datatables.net - -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. diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/Readme.md b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/Readme.md deleted file mode 100644 index 217dd60e..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/Readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# ColReorder - -ColReorder adds the ability for the end user to click and drag column headers to reorder a table as they see fit, to DataTables. Key features include: - -* Very easy integration with DataTables -* Tight integration with all other DataTables plug-ins -* The ability to exclude the first (or more) column from being movable -* Predefine a column order -* Save staving integration with DataTables - - -# Installation - -To use ColReorder, first download DataTables ( http://datatables.net/download ) and place the unzipped ColReorder package into a `extensions` directory in the DataTables package. This will allow the pages in the examples to operate correctly. To see the examples running, open the `examples` directory in your web-browser. - - -# Basic usage - -ColReorder is initialised using the `$.fn.dataTable.ColReorder` constructor. For example: - -```js -$(document).ready( function () { - $('#example').DataTable(); - - new $.fn.dataTable.ColReorder( table ); -} ); -``` - - -# Documentation / support - -* Documentation: http://datatables.net/extensions/colreorder/ -* DataTables support forums: http://datatables.net/forums - - -# GitHub - -If you fancy getting involved with the development of ColReorder and help make it better, please refer to its GitHub repo: https://github.com/DataTables/ColReorder - diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/css/dataTables.colReorder.css b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/css/dataTables.colReorder.css deleted file mode 100644 index bdd6aa0b..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/css/dataTables.colReorder.css +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Namespace DTCR - "DataTables ColReorder" plug-in - */ - -table.DTCR_clonedTable { - background-color: rgba(255, 255, 255, 0.7); - z-index: 202; -} - -div.DTCR_pointer { - width: 1px; - background-color: #0259C4; - z-index: 201; -} \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/css/dataTables.colReorder.min.css b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/css/dataTables.colReorder.min.css deleted file mode 100644 index 77b230e0..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/css/dataTables.colReorder.min.css +++ /dev/null @@ -1 +0,0 @@ -table.DTCR_clonedTable{background-color:rgba(255,255,255,0.7);z-index:202}div.DTCR_pointer{width:1px;background-color:#0259C4;z-index:201} diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/alt_insert.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/alt_insert.html deleted file mode 100644 index 16bedcfe..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/alt_insert.html +++ /dev/null @@ -1,637 +0,0 @@ - - - - - - - - ColReorder example - Alternative insert styling - - - - - - - - - - - - - - -
-
-

ColReorder example Alternative insert styling

- -
-

Using CSS it is easy to modify the insert bar to suit your web-site. This example shows how an arrow can be used to show the insert point rather than the - straight bar used in the other examples by simply adding an extra CSS rule to include the image.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - $('#example').DataTable( { - dom: 'Rlfrtip' - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

div.DTCR_pointer { - margin-top: -15px; - margin-left: -9px; - width: 18px; - background: url('../images/insert.png') no-repeat top left; -} -
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/col_filter.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/col_filter.html deleted file mode 100644 index 355ff2b5..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/col_filter.html +++ /dev/null @@ -1,656 +0,0 @@ - - - - - - - - ColReorder example - Individual column filtering - - - - - - - - - - - - - - -
-
-

ColReorder example Individual column filtering

- -
-

This example of how to use ColReorder shows how it can with with DataTables' ability to do individual column filtering. The basic example is exactly the same as - the DataTables column filtering example, but with ColReorder also added to the table (through the R option for domDT).

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - // Setup - add a text input to each footer cell - $('#example tfoot th').each( function () { - var title = $('#example thead th').eq( $(this).index() ).text(); - $(this).html( '<input type="text" placeholder="Search '+title+'" />' ); - } ); - - // DataTable - var table = $('#example').DataTable( { - dom: 'Rlfrtip' - } ); - - // Apply the filter - $("#example tfoot input").on( 'keyup change', function () { - table - .column( $(this).parent().index()+':visible' ) - .search( this.value ) - .draw(); - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/colvis.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/colvis.html deleted file mode 100644 index 54c79c2a..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/colvis.html +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - - ColReorder example - ColVis integration - - - - - - - - - - - - - - - - -
-
-

ColReorder example ColVis integration

- -
-

ColReorder interfaces with the ColVis extension for DataTables by updating the order of the list of columns - whenever a reorder is done. This is shown in the example below, where one column has been initially hidden to add extra emphasis to ColVis.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - var table = $('#example').DataTable( { - dom: 'RC<"clear">lfrtip', - columnDefs: [ - { visible: false, targets: 1 } - ] - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/fixedcolumns.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/fixedcolumns.html deleted file mode 100644 index 0599ba48..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/fixedcolumns.html +++ /dev/null @@ -1,831 +0,0 @@ - - - - - - - - ColReorder example - FixedColumns integration - - - - - - - - - - - - - - - - -
-
-

ColReorder example FixedColumns integration

- -
-

While ColReorder works with the built-in scrolling options in DataTables (scrollYDT and scrollXDT) and also the FixedColumns - extension.

- -

ColReorder provides the fixedColumnsLeft and fixedColumnsRight options which allows you disallow reordering of the fixed columns - (which is required).

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
First nameLast namePositionOfficeAgeStart dateSalaryExtn.E-mail
TigerNixonSystem ArchitectEdinburgh612011/04/25$320,8005421t.nixon@datatables.net
GarrettWintersAccountantTokyo632011/07/25$170,7508422g.winters@datatables.net
AshtonCoxJunior Technical AuthorSan Francisco662009/01/12$86,0001562a.cox@datatables.net
CedricKellySenior Javascript DeveloperEdinburgh222012/03/29$433,0606224c.kelly@datatables.net
AiriSatouAccountantTokyo332008/11/28$162,7005407a.satou@datatables.net
BrielleWilliamsonIntegration SpecialistNew York612012/12/02$372,0004804b.williamson@datatables.net
HerrodChandlerSales AssistantSan Francisco592012/08/06$137,5009608h.chandler@datatables.net
RhonaDavidsonIntegration SpecialistTokyo552010/10/14$327,9006200r.davidson@datatables.net
ColleenHurstJavascript DeveloperSan Francisco392009/09/15$205,5002360c.hurst@datatables.net
SonyaFrostSoftware EngineerEdinburgh232008/12/13$103,6001667s.frost@datatables.net
JenaGainesOffice ManagerLondon302008/12/19$90,5603814j.gaines@datatables.net
QuinnFlynnSupport LeadEdinburgh222013/03/03$342,0009497q.flynn@datatables.net
ChardeMarshallRegional DirectorSan Francisco362008/10/16$470,6006741c.marshall@datatables.net
HaleyKennedySenior Marketing DesignerLondon432012/12/18$313,5003597h.kennedy@datatables.net
TatyanaFitzpatrickRegional DirectorLondon192010/03/17$385,7501965t.fitzpatrick@datatables.net
MichaelSilvaMarketing DesignerLondon662012/11/27$198,5001581m.silva@datatables.net
PaulByrdChief Financial Officer (CFO)New York642010/06/09$725,0003059p.byrd@datatables.net
GloriaLittleSystems AdministratorNew York592009/04/10$237,5001721g.little@datatables.net
BradleyGreerSoftware EngineerLondon412012/10/13$132,0002558b.greer@datatables.net
DaiRiosPersonnel LeadEdinburgh352012/09/26$217,5002290d.rios@datatables.net
JenetteCaldwellDevelopment LeadNew York302011/09/03$345,0001937j.caldwell@datatables.net
YuriBerryChief Marketing Officer (CMO)New York402009/06/25$675,0006154y.berry@datatables.net
CaesarVancePre-Sales SupportNew York212011/12/12$106,4508330c.vance@datatables.net
DorisWilderSales AssistantSidney232010/09/20$85,6003023d.wilder@datatables.net
AngelicaRamosChief Executive Officer (CEO)London472009/10/09$1,200,0005797a.ramos@datatables.net
GavinJoyceDeveloperEdinburgh422010/12/22$92,5758822g.joyce@datatables.net
JenniferChangRegional DirectorSingapore282010/11/14$357,6509239j.chang@datatables.net
BrendenWagnerSoftware EngineerSan Francisco282011/06/07$206,8501314b.wagner@datatables.net
FionaGreenChief Operating Officer (COO)San Francisco482010/03/11$850,0002947f.green@datatables.net
ShouItouRegional MarketingTokyo202011/08/14$163,0008899s.itou@datatables.net
MichelleHouseIntegration SpecialistSidney372011/06/02$95,4002769m.house@datatables.net
SukiBurksDeveloperLondon532009/10/22$114,5006832s.burks@datatables.net
PrescottBartlettTechnical AuthorLondon272011/05/07$145,0003606p.bartlett@datatables.net
GavinCortezTeam LeaderSan Francisco222008/10/26$235,5002860g.cortez@datatables.net
MartenaMccrayPost-Sales supportEdinburgh462011/03/09$324,0508240m.mccray@datatables.net
UnityButlerMarketing DesignerSan Francisco472009/12/09$85,6755384u.butler@datatables.net
HowardHatfieldOffice ManagerSan Francisco512008/12/16$164,5007031h.hatfield@datatables.net
HopeFuentesSecretarySan Francisco412010/02/12$109,8506318h.fuentes@datatables.net
VivianHarrellFinancial ControllerSan Francisco622009/02/14$452,5009422v.harrell@datatables.net
TimothyMooneyOffice ManagerLondon372008/12/11$136,2007580t.mooney@datatables.net
JacksonBradshawDirectorNew York652008/09/26$645,7501042j.bradshaw@datatables.net
OliviaLiangSupport EngineerSingapore642011/02/03$234,5002120o.liang@datatables.net
BrunoNashSoftware EngineerLondon382011/05/03$163,5006222b.nash@datatables.net
SakuraYamamotoSupport EngineerTokyo372009/08/19$139,5759383s.yamamoto@datatables.net
ThorWaltonDeveloperNew York612013/08/11$98,5408327t.walton@datatables.net
FinnCamachoSupport EngineerSan Francisco472009/07/07$87,5002927f.camacho@datatables.net
SergeBaldwinData CoordinatorSingapore642012/04/09$138,5758352s.baldwin@datatables.net
ZenaidaFrankSoftware EngineerNew York632010/01/04$125,2507439z.frank@datatables.net
ZoritaSerranoSoftware EngineerSan Francisco562012/06/01$115,0004389z.serrano@datatables.net
JenniferAcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,6503431j.acosta@datatables.net
CaraStevensSales AssistantNew York462011/12/06$145,6003990c.stevens@datatables.net
HermioneButlerRegional DirectorLondon472011/03/21$356,2501016h.butler@datatables.net
LaelGreerSystems AdministratorLondon212009/02/27$103,5006733l.greer@datatables.net
JonasAlexanderDeveloperSan Francisco302010/07/14$86,5008196j.alexander@datatables.net
ShadDeckerRegional DirectorEdinburgh512008/11/13$183,0006373s.decker@datatables.net
MichaelBruceJavascript DeveloperSingapore292011/06/27$183,0005384m.bruce@datatables.net
DonnaSniderCustomer SupportNew York272011/01/25$112,0004226d.snider@datatables.net
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - window.table = $('#example').DataTable( { - dom: 'Rlfrtip', - scrollX: true, - scrollCollapse: true, - columnDefs: [ - { orderable: false, targets: 0 }, - { orderable: false, targets: -1 } - ], - ordering: [[ 1, 'asc' ]], - colReorder: { - fixedColumnsLeft: 1, - fixedColumnsRight: 1 - } - } ); - - window.fc = new $.fn.dataTable.FixedColumns( table, { - leftColumns: 1, - rightColumns: 1 - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/fixedheader.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/fixedheader.html deleted file mode 100644 index 40f05468..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/fixedheader.html +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - - ColReorder example - FixedHeader integration - - - - - - - - - - - - - - - - -
-
-

ColReorder example FixedHeader integration

- -
-

FixedHeader is a particularly useful plug-in for DataTables, allowing a table header to float at the top of a scrolling window. ColReorder works well with - FixedHeader, allowing you to reorder columns even using the floating header, as shown in the example below.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - var table = $('#example').dataTable( { - dom: 'Rlfrtip' - } ); - - new $.fn.dataTable.fixedHeader( table ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/index.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/index.html deleted file mode 100644 index 65018ab6..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/index.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - ColReorder examples - ColReorder examples - - - -
-
-

ColReorder example ColReorder examples

- -
-

ColReorder adds the ability for the end user to click and drag column headers to reorder a table as they see fit, to DataTables. Key features include:

- -
    -
  • Very easy integration with DataTables
  • -
  • Tight integration with all other DataTables plug-ins
  • -
  • The ability to exclude the first (or more) column from being movable
  • -
  • Predefine a column order
  • -
  • Save staving integration with DataTables
  • -
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/jqueryui.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/jqueryui.html deleted file mode 100644 index 8eedf912..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/jqueryui.html +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - - ColReorder example - jQuery UI styling - - - - - - - - - - - - - - - - -
-
-

ColReorder example jQuery UI styling

- -
-

This example shows how the jQuery UI ThemeRoller option in DataTables can be used with ColReorder.

- -

The important thing to note here is that it is easier to use new $.fn.dataTable.ColReorder() to add ColReorder to the table rather than domDT as the jQuery UI integration - uses a complex expression for domDT.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - var table = $('#example').dataTable(); - - new $.fn.dataTable.ColReorder( table ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/new_init.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/new_init.html deleted file mode 100644 index 01ab2aac..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/new_init.html +++ /dev/null @@ -1,626 +0,0 @@ - - - - - - - - ColReorder example - Initialisation using `new` - - - - - - - - - - - - - - -
-
-

ColReorder example Initialisation using `new`

- -
-

As well as providing the option to be initialised through the R option of domDT, ColReorder can also be added to a DataTable using direct initialisation - new - $.fn.dataTable.ColReorder(); as shown in this example.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - var table = $('#example').DataTable(); - - new $.fn.dataTable.ColReorder( table ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/predefined.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/predefined.html deleted file mode 100644 index 3cbb1663..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/predefined.html +++ /dev/null @@ -1,636 +0,0 @@ - - - - - - - - ColReorder example - Predefined column ordering - - - - - - - - - - - - - - -
-
-

ColReorder example Predefined column ordering

- -
-

ColReorder provides the ability to specify a column ordering which is not that of the HTML (which typically you will want) through the parameter - colReorder.order. This is an array of integers with the column ordering you want.

- -

For full information about the ColReorder options, please refer to the ColReorder options - documentation.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - $('#example').dataTable( { - dom: 'Rlfrtip', - colReorder: { - order: [ 4, 3, 2, 1, 0, 5 ] - } - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/realtime.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/realtime.html deleted file mode 100644 index c759409a..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/realtime.html +++ /dev/null @@ -1,637 +0,0 @@ - - - - - - - - ColReorder example - Realtime updating - - - - - - - - - - - - - - -
-
-

ColReorder example Realtime updating

- -
-

While the ColReorder insertion point indicator can be styled, another option to show the end user what the column will look like when the table has been - reordered is to actually do the reordering while the mouse is still dragging the column header. This is shown in this example and is controlled by the - realtime parameter.

- -

For full information about the ColReorder options, please refer to the ColReorder options - documentation.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - $('#example').dataTable( { - dom: 'Rlfrtip', - colReorder: { - realtime: true - } - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/reset.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/reset.html deleted file mode 100644 index b2e1fc08..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/reset.html +++ /dev/null @@ -1,649 +0,0 @@ - - - - - - - - ColReorder example - Reset ordering API - - - - - - - - - - - - - - -
-
-

ColReorder example Reset ordering API

- -
-

One useful control option to present the end user when using ColReorder is the ability to reset the column ordering to that which was found in the HTML. This - can be done by calling the reset API function. While ColReorder does not provide a visual element for this itself (in order to provide maximum - flexibility) it is easy to hook to an event handler, as shown in this example.

- -

For full information about the ColReorder API, please refer to the ColReorder API documentation.

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - var table = $('#example').DataTable( { - dom: 'Rlfrtip', - colReorder: { - order: [ 4, 3, 2, 1, 0 ] - } - } ); - - $('#reset').click( function (e) { - e.preventDefault(); - - table.colReorder.reset(); - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/scrolling.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/scrolling.html deleted file mode 100644 index 860e6655..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/scrolling.html +++ /dev/null @@ -1,632 +0,0 @@ - - - - - - - - ColReorder example - Scrolling table - - - - - - - - - - - - - - -
-
-

ColReorder example Scrolling table

- -
-

This is a simple example to show ColReorder working with DataTables scrolling (scrollYDT and scrollXDT).

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - $('#example').dataTable( { - dom: 'Rlfrtip', - scrollY: '200px', - paging: false - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/server_side.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/server_side.html deleted file mode 100644 index f682b7ab..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/server_side.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - ColReorder example - Server-side processing - - - - - - - - - - - - - - -
-
-

ColReorder example Server-side processing

- -
-

Server-side processing can be exceptionally useful in DataTables when dealing with massive data sets, and ColReorder works with this as would be expected.

- -

It is recommend that you use object based data with server-side processing and ColReorder, as this provides easily understandable mapping between the the - columns and the data relation on the server, otherwise you need to work out array indexes on each call!

-
- - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeExtn.Start dateSalary
NamePositionOfficeExtn.Start dateSalary
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - $('#example').dataTable( { - dom: 'Rlfrtip', - processing: true, - serverSide: true, - ajax: "../../../examples/server_side/scripts/objects.php", - columns: [ - { data: "first_name" }, - { data: "last_name" }, - { data: "position" }, - { data: "office" }, - { data: "start_date" }, - { data: "salary" } - ] - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/simple.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/simple.html deleted file mode 100644 index 92cffee7..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/simple.html +++ /dev/null @@ -1,630 +0,0 @@ - - - - - - - - ColReorder example - Basic initialisation - - - - - - - - - - - - - - -
-
-

ColReorder example Basic initialisation

- -
-

This example shows the basic use case of the ColReorder plug-in. With ColReorder enabled for a table, the user has the ability to click and drag any table - header cell, and drop it where they wish the column to be inserted. The insert point is shown visually, and the column reordering is done as soon as the mouse - button is released.

- -

ColReorder is added to a DataTable through the R character that it adds to DataTables feature plug-ins. This means that you simply add the - character R to the domDT parameter for your table to add ColReorder - as shown in the example below.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - $('#example').DataTable( { - dom: 'Rlfrtip' - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/state_save.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/state_save.html deleted file mode 100644 index 6e4e2e9e..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/examples/state_save.html +++ /dev/null @@ -1,631 +0,0 @@ - - - - - - - - ColReorder example - State saving - - - - - - - - - - - - - - -
-
-

ColReorder example State saving

- -
-

A useful interaction pattern to use in DataTables is state saving, so when the end user reloads or revisits a page its previous state is retained. ColReorder - works seamlessly with state saving in DataTables (stateSaveDT), remembering and restoring the column positions, as well as everything else such as sorting - and filtering.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this example:

$(document).ready(function() { - $('#example').dataTable( { - dom: 'Rlfrtip', - stateSave: true - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The - additional CSS used is shown below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is - loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side - processing scripts can be written in any language, using the protocol described in the DataTables - documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/images/insert.png b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/images/insert.png deleted file mode 100644 index 15d5522d..00000000 Binary files a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/images/insert.png and /dev/null differ diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/js/dataTables.colReorder.js b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/js/dataTables.colReorder.js deleted file mode 100644 index c3b2f1e2..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/ColReorder/js/dataTables.colReorder.js +++ /dev/null @@ -1,1372 +0,0 @@ -/*! ColReorder 1.1.3 - * ©2010-2014 SpryMedia Ltd - datatables.net/license - */ - -/** - * @summary ColReorder - * @description Provide the ability to reorder columns in a DataTable - * @version 1.1.3 - * @file dataTables.colReorder.js - * @author SpryMedia Ltd (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * @copyright Copyright 2010-2014 SpryMedia Ltd. - * - * This source file is free software, available under the following license: - * MIT license - http://datatables.net/license/mit - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -(function(window, document, undefined) { - - -/** - * Switch the key value pairing of an index array to be value key (i.e. the old value is now the - * key). For example consider [ 2, 0, 1 ] this would be returned as [ 1, 2, 0 ]. - * @method fnInvertKeyValues - * @param array aIn Array to switch around - * @returns array - */ -function fnInvertKeyValues( aIn ) -{ - var aRet=[]; - for ( var i=0, iLen=aIn.length ; i= iCols ) - { - this.oApi._fnLog( oSettings, 1, "ColReorder 'from' index is out of bounds: "+iFrom ); - return; - } - - if ( iTo < 0 || iTo >= iCols ) - { - this.oApi._fnLog( oSettings, 1, "ColReorder 'to' index is out of bounds: "+iTo ); - return; - } - - /* - * Calculate the new column array index, so we have a mapping between the old and new - */ - var aiMapping = []; - for ( i=0, iLen=iCols ; i this.s.fixed-1 && i < iLen - this.s.fixedRight ) - { - this._fnMouseListener( i, this.s.dt.aoColumns[i].nTh ); - } - - /* Mark the original column order for later reference */ - this.s.dt.aoColumns[i]._ColReorder_iOrigCol = i; - } - - /* State saving */ - this.s.dt.oApi._fnCallbackReg( this.s.dt, 'aoStateSaveParams', function (oS, oData) { - that._fnStateSave.call( that, oData ); - }, "ColReorder_State" ); - - /* An initial column order has been specified */ - var aiOrder = null; - if ( this.s.init.aiOrder ) - { - aiOrder = this.s.init.aiOrder.slice(); - } - - /* State loading, overrides the column order given */ - if ( this.s.dt.oLoadedState && typeof this.s.dt.oLoadedState.ColReorder != 'undefined' && - this.s.dt.oLoadedState.ColReorder.length == this.s.dt.aoColumns.length ) - { - aiOrder = this.s.dt.oLoadedState.ColReorder; - } - - /* If we have an order to apply - do so */ - if ( aiOrder ) - { - /* We might be called during or after the DataTables initialisation. If before, then we need - * to wait until the draw is done, if after, then do what we need to do right away - */ - if ( !that.s.dt._bInitComplete ) - { - var bDone = false; - this.s.dt.aoDrawCallback.push( { - "fn": function () { - if ( !that.s.dt._bInitComplete && !bDone ) - { - bDone = true; - var resort = fnInvertKeyValues( aiOrder ); - that._fnOrderColumns.call( that, resort ); - } - }, - "sName": "ColReorder_Pre" - } ); - } - else - { - var resort = fnInvertKeyValues( aiOrder ); - that._fnOrderColumns.call( that, resort ); - } - } - else { - this._fnSetColumnIndexes(); - } - }, - - - /** - * Set the column order from an array - * @method _fnOrderColumns - * @param array a An array of integers which dictate the column order that should be applied - * @returns void - * @private - */ - "_fnOrderColumns": function ( a ) - { - if ( a.length != this.s.dt.aoColumns.length ) - { - this.s.dt.oInstance.oApi._fnLog( this.s.dt, 1, "ColReorder - array reorder does not "+ - "match known number of columns. Skipping." ); - return; - } - - for ( var i=0, iLen=a.length ; i
') - .addClass( 'DTCR_pointer' ) - .css( { - position: 'absolute', - top: scrolling ? - $('div.dataTables_scroll', this.s.dt.nTableWrapper).offset().top : - $(this.s.dt.nTable).offset().top, - height : scrolling ? - $('div.dataTables_scroll', this.s.dt.nTableWrapper).height() : - $(this.s.dt.nTable).height() - } ) - .appendTo( 'body' ); - }, - - /** - * Clean up ColReorder memory references and event handlers - * @method _fnDestroy - * @returns void - * @private - */ - "_fnDestroy": function () - { - var i, iLen; - - for ( i=0, iLen=this.s.dt.aoDrawCallback.length ; ib||b>=n)this.oApi._fnLog(a,1,"ColReorder 'from' index is out of bounds: "+b);else if(0>e||e>=n)this.oApi._fnLog(a,1,"ColReorder 'to' index is out of bounds: "+e);else{f=[];c=0;for(g=n;cthis.s.fixed-1&&eMath.pow(Math.pow(a.pageX-this.s.mouse.startX,2)+Math.pow(a.pageY-this.s.mouse.startY,2),0.5))return;this._fnCreateDragNode()}this.dom.drag.css({left:a.pageX-this.s.mouse.offsetX,top:a.pageY-this.s.mouse.offsetY});for(var b=!1,e=this.s.mouse.toIndex,d=1,c=this.s.aoTargets.length;d
").addClass("DTCR_pointer").css({position:"absolute",top:a?d("div.dataTables_scroll",this.s.dt.nTableWrapper).offset().top:d(this.s.dt.nTable).offset().top,height:a?d("div.dataTables_scroll",this.s.dt.nTableWrapper).height(): -d(this.s.dt.nTable).height()}).appendTo("body")},_fnDestroy:function(){var a,b;a=0;for(b=this.s.dt.aoDrawCallback.length;a
')[0], -g=c.childNodes[0],f=c.childNodes[1];this.dom.grid.dt.parentNode.insertBefore(c,this.dom.grid.dt);c.appendChild(this.dom.grid.dt);this.dom.grid.wrapper=c;0b.clientWidth&&(c.x=!0);a.offsetHeight>b.clientHeight&&(c.y=!0);return c},_fnDraw:function(a){this._fnGridLayout();this._fnCloneLeft(a);this._fnCloneRight(a);null!==this.s.fnDrawCallback&&this.s.fnDrawCallback.call(this,this.dom.clone.left,this.dom.clone.right);d(this).trigger("draw.dtfc",{leftClone:this.dom.clone.left,rightClone:this.dom.clone.right})},_fnCloneRight:function(a){if(!(0>= -this.s.iRightColumns)){var b,c=[];for(b=this.s.iTableColumns-this.s.iRightColumns;b=this.s.iLeftColumns)){var b,c=[];for(b=0;bthead",a.header);k.empty();e=0;for(h=n.length;ethead",a.header)[0]);e=0;for(h=n.length;etbody>tr",f.dom.body).css("height","auto");null!==a.body&&(a.body.parentNode.removeChild(a.body),a.body=null);a.body=d(this.dom.body).clone(!0)[0];a.body.className+=" DTFC_Cloned";a.body.style.paddingBottom=l.oScroll.iBarWidth+"px";a.body.style.marginBottom=2*l.oScroll.iBarWidth+"px";null!==a.body.getAttribute("id")&&a.body.removeAttribute("id");d(">thead>tr",a.body).empty();d(">tfoot", -a.body).remove();var p=d("tbody",a.body)[0];d(p).empty();if(0thead>tr",a.body)[0];for(o=0;otbody>tr",f.dom.body).each(function(a){var b=this.cloneNode(false);b.removeAttribute("id");a=f.s.dt.aoData[f.s.dt.oFeatures.bServerSide===false?f.s.dt.aiDisplay[f.s.dt._iDisplayStart+ -a]:a].anCells||d(this).children("td, th");for(o=0;o0){m=d(a[j]).clone(true,true)[0];b.appendChild(m)}}p.appendChild(b)})}else d(">tbody>tr",f.dom.body).each(function(){m=this.cloneNode(true);m.className=m.className+" DTFC_NoData";d("td",m).html("");p.appendChild(m)});a.body.style.width="100%";a.body.style.margin="0";a.body.style.padding="0";l.oScroller!==t&&(h=l.oScroller.dom.force,b.forcer?b.forcer.style.height=h.style.height:(b.forcer=h.cloneNode(!0),b.liner.appendChild(b.forcer))); -b.liner.appendChild(a.body);this._fnEqualiseHeights("tbody",f.dom.body,a.body);if(null!==l.nTFoot){if(g){null!==a.footer&&a.footer.parentNode.removeChild(a.footer);a.footer=d(this.dom.footer).clone(!0,!0)[0];a.footer.className+=" DTFC_Cloned";a.footer.style.width="100%";b.foot.appendChild(a.footer);n=this._fnCopyLayout(l.aoFooter,c);b=d(">tfoot",a.footer);b.empty();e=0;for(h=n.length;etfoot",a.footer)[0]);e=0;for(h=n.length;ethead",a.header)[0]);d(b).each(function(a){j=c[a];this.style.width=f.s.aiInnerWidths[j]+"px"});null!==f.s.dt.nTFoot&&(b=l.oApi._fnGetUniqueThs(l,d(">tfoot",a.footer)[0]),d(b).each(function(a){j=c[a];this.style.width=f.s.aiInnerWidths[j]+"px"}))},_fnGetTrNodes:function(a){for(var b= -[],c=0,d=a.childNodes.length;c"+a+">tr:eq(0)",b).children(":first");a.outerHeight();a.height();for(var e=this._fnGetTrNodes(e),b=this._fnGetTrNodes(c),h=[],c=0,a=b.length;cg?f:g,"semiauto"==this.s.sHeightMatch&& -(e[c]._DTTC_iHeight=g),h.push(g);c=0;for(a=b.length;c - - - - - - - FixedHeader example - Header and footer fixed - - - - - - - - - - - - - - -
-
-

FixedHeader example Header and footer fixed

- -
-

FixedHeader provides the ability to fix in place the header, footer, left and right columns of the - table. These are controlled by the options:

- -
    -
  • top - default true
  • -
  • bottom - default false
  • -
  • left - default false
  • -
  • right - default false
  • -
- -

This example shows the header and footer of the table fixed by enabling the bottom - option.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable(); - - new $.fn.dataTable.FixedHeader( table, { - bottom: true - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/index.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/index.html deleted file mode 100644 index 2198d78c..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/index.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - FixedHeader examples - FixedHeader examples - - - -
-
-

FixedHeader example FixedHeader examples

- -
-

At times it can be useful to ensure that column titles will remain always visible on a table, even - when a user scrolls down a table. The FixedHeader plug-in for DataTables will float the thead element above the table at all times to help address this issue. - The column titles also remain click-able to perform sorting. Key features include:

- -
    -
  • Fix the header to the top of the window
  • -
  • Ability to fix the footer and left / right columns as well
  • -
  • z-Index ordering options
  • -
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/simple.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/simple.html deleted file mode 100644 index 1ad6efa7..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/simple.html +++ /dev/null @@ -1,637 +0,0 @@ - - - - - - - - FixedHeader example - Basic initialisation - - - - - - - - - - - - - - -
-
-

FixedHeader example Basic initialisation

- -
-

When displaying large amounts of data in a table, it can often be useful for the end user to have - the column titles (the thead element as a whole in fact) - always visible. This is particularly true if using DataTables with pagination disabled, or the display - length is set to a high value.

- -

The FixedHeader extension for DataTables will ensure that your column titles will scroll with the - page, showing at the top of the table at all times. Try the demo shown below - you might want to try - resizing the window for full effect! Note also that the column titles remain clickable to perform - sorting on the table.

- -

FixedHeader is initialised using the constructor new $.fn.dataTable.FixedHeader(); - - shown below.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable(); - - new $.fn.dataTable.FixedHeader( table ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/top_left_right.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/top_left_right.html deleted file mode 100644 index f15faeb5..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/top_left_right.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - - FixedHeader example - Header, left and right all fixed - - - - - - - - - - - - - - -
-
-

FixedHeader example Header, left and right all fixed

- -
-

FixedHeader provides the ability to fix in place the header, footer, left and right columns of the - table. These are controlled by the options:

- -
    -
  • top - default true
  • -
  • bottom - default false
  • -
  • left - default false
  • -
  • right - default false
  • -
- -

This example shows top, left and right enabled with index columns on the left and right.

- -

Note that in such a situation as this, the FixedColumns extension might be more useful, - particularly if you want to use the scrolling options built into DataTables.

-
- -
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable( { - "order": [ 1, 'asc' ], - "ajax": "../../../examples/ajax/data/objects.txt", - "columns": [ - { title: '', data: null, defaultContent: "" }, - { title: 'Name', data: "name" }, - { title: 'Position', data: "position" }, - { title: 'Office', data: "office" }, - { title: 'Extn.', data: "extn" }, - { title: 'Start date', data: "start_date" }, - { title: 'Salary', data: "salary" }, - { title: '', data: null, defaultContent: "" } - ], - initComplete: function () { - new $.fn.dataTable.FixedHeader( table, { - left: true, - right: true - } ); - } - } ); - - table.on( 'order.dt search.dt', function () { - table.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) { - cell.innerHTML = i+1; - } ); - - table.column(-1, {search:'applied', order:'applied'}).nodes().each( function (cell, i) { - cell.innerHTML = i+1; - } ); - } ).draw(); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

div.dataTables_wrapper { - width: 150%; - } - - div.FixedHeader_Cloned.fixedLeft tbody td { - border-right: 1px solid black; - } - - div.FixedHeader_Cloned.fixedRight tbody td { - border-left: 1px solid black; - } -
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/two_tables.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/two_tables.html deleted file mode 100644 index 1fbb3dfc..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/two_tables.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - FixedHeader example - Multiple tables - - - - - - - - - - - - - - -
-
-

FixedHeader example Multiple tables

- -
-

The following example shows two DataTables enhanced tables both with FixedHeader enabled on them. - This is done simply by initialising FixedHeader on each table. This example also shows the footer being - fixed in place for the two tables.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeSalary
NamePositionOfficeAgeSalary
Tiger NixonSystem ArchitectEdinburgh61$320,800
Cedric KellySenior Javascript DeveloperEdinburgh22$433,060
Sonya FrostSoftware EngineerEdinburgh23$103,600
Quinn FlynnSupport LeadEdinburgh22$342,000
Dai RiosPersonnel LeadEdinburgh35$217,500
Gavin JoyceDeveloperEdinburgh42$92,575
Martena MccrayPost-Sales supportEdinburgh46$324,050
Jennifer AcostaJunior Javascript DeveloperEdinburgh43$75,650
Shad DeckerRegional DirectorEdinburgh51$183,000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeSalary
NamePositionOfficeAgeSalary
Jena GainesOffice ManagerLondon30$90,560
Haley KennedySenior Marketing DesignerLondon43$313,500
Tatyana FitzpatrickRegional DirectorLondon19$385,750
Michael SilvaMarketing DesignerLondon66$198,500
Bradley GreerSoftware EngineerLondon41$132,000
Angelica RamosChief Executive Officer (CEO)London47$1,200,000
Suki BurksDeveloperLondon53$114,500
Prescott BartlettTechnical AuthorLondon27$145,000
Timothy MooneyOffice ManagerLondon37$136,200
Bruno NashSoftware EngineerLondon38$163,500
Hermione ButlerRegional DirectorLondon47$356,250
Lael GreerSystems AdministratorLondon21$103,500
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var t1 = $('table.display').eq(0).DataTable(); - new $.fn.dataTable.FixedHeader( t1, { - bottom: true - } ); - - var t2 = $('table.display').eq(1).DataTable(); - new $.fn.dataTable.FixedHeader( t2, { - bottom: true - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/zIndexes.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/zIndexes.html deleted file mode 100644 index a3292c4c..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/examples/zIndexes.html +++ /dev/null @@ -1,653 +0,0 @@ - - - - - - - - FixedHeader example - z-index order control - - - - - - - - - - - - - - -
-
-

FixedHeader example z-index order control

- -
-

When you have two or more columns fixed on a table, there might be occasions when you which to have - one column floating on top of another. This example shows how you can do that with the initialisation - parameters zTop, zBottom, zLeft and zRight. In this - example the left column is set to float on top of the header. The difference is subtle, but can be - effective.

- -

The default zIndexes are:

- -
    -
  • zTop: 104
  • -
  • zBottom: 103
  • -
  • zLeft: 102
  • -
  • zRight: 101
  • -
- -

This example shows the left column being floated on top of the header.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable(); - - new $.fn.dataTable.FixedHeader( table, { - left: true, - zLeft: 105 - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

div.dataTables_wrapper { - width: 1500px; - } -
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/js/dataTables.fixedHeader.js b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/js/dataTables.fixedHeader.js deleted file mode 100644 index 90df8786..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/FixedHeader/js/dataTables.fixedHeader.js +++ /dev/null @@ -1,1028 +0,0 @@ -/*! FixedHeader 2.1.2 - * ©2010-2014 SpryMedia Ltd - datatables.net/license - */ - -/** - * @summary FixedHeader - * @description Fix a table's header or footer, so it is always visible while - * Scrolling - * @version 2.1.2 - * @file dataTables.fixedHeader.js - * @author SpryMedia Ltd (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * @copyright Copyright 2009-2014 SpryMedia Ltd. - * - * This source file is free software, available under the following license: - * MIT license - http://datatables.net/license/mit - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -/* Global scope for FixedColumns for backwards compatibility - will be removed - * in future. Not documented in 1.1.x. - */ - -/* Global scope for FixedColumns */ -var FixedHeader; - -(function(window, document, undefined) { - - -var factory = function( $, DataTable ) { -"use strict"; - -/* - * Function: FixedHeader - * Purpose: Provide 'fixed' header, footer and columns for a DataTable - * Returns: object:FixedHeader - must be called with 'new' - * Inputs: mixed:mTable - target table - * @param {object} dt DataTables instance or HTML table node. With DataTables - * 1.10 this can also be a jQuery collection (with just a single table in its - * result set), a jQuery selector, DataTables API instance or settings - * object. - * @param {object} [oInit] initialisation settings, with the following - * properties (each optional) - * * bool:top - fix the header (default true) - * * bool:bottom - fix the footer (default false) - * * int:left - fix the left column(s) (default 0) - * * int:right - fix the right column(s) (default 0) - * * int:zTop - fixed header zIndex - * * int:zBottom - fixed footer zIndex - * * int:zLeft - fixed left zIndex - * * int:zRight - fixed right zIndex - */ -FixedHeader = function ( mTable, oInit ) { - /* Sanity check - you just know it will happen */ - if ( ! this instanceof FixedHeader ) - { - alert( "FixedHeader warning: FixedHeader must be initialised with the 'new' keyword." ); - return; - } - - var that = this; - var oSettings = { - "aoCache": [], - "oSides": { - "top": true, - "bottom": false, - "left": 0, - "right": 0 - }, - "oZIndexes": { - "top": 104, - "bottom": 103, - "left": 102, - "right": 101 - }, - "oCloneOnDraw": { - "top": false, - "bottom": false, - "left": true, - "right": true - }, - "oMes": { - "iTableWidth": 0, - "iTableHeight": 0, - "iTableLeft": 0, - "iTableRight": 0, /* note this is left+width, not actually "right" */ - "iTableTop": 0, - "iTableBottom": 0 /* note this is top+height, not actually "bottom" */ - }, - "oOffset": { - "top": 0 - }, - "nTable": null, - "bFooter": false, - "bInitComplete": false - }; - - /* - * Function: fnGetSettings - * Purpose: Get the settings for this object - * Returns: object: - settings object - * Inputs: - - */ - this.fnGetSettings = function () { - return oSettings; - }; - - /* - * Function: fnUpdate - * Purpose: Update the positioning and copies of the fixed elements - * Returns: - - * Inputs: - - */ - this.fnUpdate = function () { - this._fnUpdateClones(); - this._fnUpdatePositions(); - }; - - /* - * Function: fnPosition - * Purpose: Update the positioning of the fixed elements - * Returns: - - * Inputs: - - */ - this.fnPosition = function () { - this._fnUpdatePositions(); - }; - - - var dt = $.fn.dataTable.Api ? - new $.fn.dataTable.Api( mTable ).settings()[0] : - mTable.fnSettings(); - - dt._oPluginFixedHeader = this; - - /* Let's do it */ - this.fnInit( dt, oInit ); - -}; - - -/* - * Variable: FixedHeader - * Purpose: Prototype for FixedHeader - * Scope: global - */ -FixedHeader.prototype = { - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Initialisation - */ - - /* - * Function: fnInit - * Purpose: The "constructor" - * Returns: - - * Inputs: {as FixedHeader function} - */ - fnInit: function ( oDtSettings, oInit ) - { - var s = this.fnGetSettings(); - var that = this; - - /* Record the user definable settings */ - this.fnInitSettings( s, oInit ); - - if ( oDtSettings.oScroll.sX !== "" || oDtSettings.oScroll.sY !== "" ) - { - alert( "FixedHeader 2 is not supported with DataTables' scrolling mode at this time" ); - return; - } - - s.nTable = oDtSettings.nTable; - oDtSettings.aoDrawCallback.unshift( { - "fn": function () { - FixedHeader.fnMeasure(); - that._fnUpdateClones.call(that); - that._fnUpdatePositions.call(that); - }, - "sName": "FixedHeader" - } ); - - s.bFooter = ($('>tfoot', s.nTable).length > 0) ? true : false; - - /* Add the 'sides' that are fixed */ - if ( s.oSides.top ) - { - s.aoCache.push( that._fnCloneTable( "fixedHeader", "FixedHeader_Header", that._fnCloneThead ) ); - } - if ( s.oSides.bottom ) - { - s.aoCache.push( that._fnCloneTable( "fixedFooter", "FixedHeader_Footer", that._fnCloneTfoot ) ); - } - if ( s.oSides.left ) - { - s.aoCache.push( that._fnCloneTable( "fixedLeft", "FixedHeader_Left", that._fnCloneTLeft, s.oSides.left ) ); - } - if ( s.oSides.right ) - { - s.aoCache.push( that._fnCloneTable( "fixedRight", "FixedHeader_Right", that._fnCloneTRight, s.oSides.right ) ); - } - - /* Event listeners for window movement */ - FixedHeader.afnScroll.push( function () { - that._fnUpdatePositions.call(that); - } ); - - $(window).resize( function () { - FixedHeader.fnMeasure(); - that._fnUpdateClones.call(that); - that._fnUpdatePositions.call(that); - } ); - - $(s.nTable) - .on('column-reorder.dt', function () { - FixedHeader.fnMeasure(); - that._fnUpdateClones( true ); - that._fnUpdatePositions(); - } ) - .on('column-visibility.dt', function () { - FixedHeader.fnMeasure(); - that._fnUpdateClones( true ); - that._fnUpdatePositions(); - } ); - - /* Get things right to start with */ - FixedHeader.fnMeasure(); - that._fnUpdateClones(); - that._fnUpdatePositions(); - - s.bInitComplete = true; - }, - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Support functions - */ - - /* - * Function: fnInitSettings - * Purpose: Take the user's settings and copy them to our local store - * Returns: - - * Inputs: object:s - the local settings object - * object:oInit - the user's settings object - */ - fnInitSettings: function ( s, oInit ) - { - if ( oInit !== undefined ) - { - if ( oInit.top !== undefined ) { - s.oSides.top = oInit.top; - } - if ( oInit.bottom !== undefined ) { - s.oSides.bottom = oInit.bottom; - } - if ( typeof oInit.left == 'boolean' ) { - s.oSides.left = oInit.left ? 1 : 0; - } - else if ( oInit.left !== undefined ) { - s.oSides.left = oInit.left; - } - if ( typeof oInit.right == 'boolean' ) { - s.oSides.right = oInit.right ? 1 : 0; - } - else if ( oInit.right !== undefined ) { - s.oSides.right = oInit.right; - } - - if ( oInit.zTop !== undefined ) { - s.oZIndexes.top = oInit.zTop; - } - if ( oInit.zBottom !== undefined ) { - s.oZIndexes.bottom = oInit.zBottom; - } - if ( oInit.zLeft !== undefined ) { - s.oZIndexes.left = oInit.zLeft; - } - if ( oInit.zRight !== undefined ) { - s.oZIndexes.right = oInit.zRight; - } - - if ( oInit.offsetTop !== undefined ) { - s.oOffset.top = oInit.offsetTop; - } - if ( oInit.alwaysCloneTop !== undefined ) { - s.oCloneOnDraw.top = oInit.alwaysCloneTop; - } - if ( oInit.alwaysCloneBottom !== undefined ) { - s.oCloneOnDraw.bottom = oInit.alwaysCloneBottom; - } - if ( oInit.alwaysCloneLeft !== undefined ) { - s.oCloneOnDraw.left = oInit.alwaysCloneLeft; - } - if ( oInit.alwaysCloneRight !== undefined ) { - s.oCloneOnDraw.right = oInit.alwaysCloneRight; - } - } - }, - - /* - * Function: _fnCloneTable - * Purpose: Clone the table node and do basic initialisation - * Returns: - - * Inputs: - - */ - _fnCloneTable: function ( sType, sClass, fnClone, iCells ) - { - var s = this.fnGetSettings(); - var nCTable; - - /* We know that the table _MUST_ has a DIV wrapped around it, because this is simply how - * DataTables works. Therefore, we can set this to be relatively position (if it is not - * alreadu absolute, and use this as the base point for the cloned header - */ - if ( $(s.nTable.parentNode).css('position') != "absolute" ) - { - s.nTable.parentNode.style.position = "relative"; - } - - /* Just a shallow clone will do - we only want the table node */ - nCTable = s.nTable.cloneNode( false ); - nCTable.removeAttribute( 'id' ); - - var nDiv = document.createElement( 'div' ); - nDiv.style.position = "absolute"; - nDiv.style.top = "0px"; - nDiv.style.left = "0px"; - nDiv.className += " FixedHeader_Cloned "+sType+" "+sClass; - - /* Set the zIndexes */ - if ( sType == "fixedHeader" ) - { - nDiv.style.zIndex = s.oZIndexes.top; - } - if ( sType == "fixedFooter" ) - { - nDiv.style.zIndex = s.oZIndexes.bottom; - } - if ( sType == "fixedLeft" ) - { - nDiv.style.zIndex = s.oZIndexes.left; - } - else if ( sType == "fixedRight" ) - { - nDiv.style.zIndex = s.oZIndexes.right; - } - - /* remove margins since we are going to position it absolutely */ - nCTable.style.margin = "0"; - - /* Insert the newly cloned table into the DOM, on top of the "real" header */ - nDiv.appendChild( nCTable ); - document.body.appendChild( nDiv ); - - return { - "nNode": nCTable, - "nWrapper": nDiv, - "sType": sType, - "sPosition": "", - "sTop": "", - "sLeft": "", - "fnClone": fnClone, - "iCells": iCells - }; - }, - - /* - * Function: _fnMeasure - * Purpose: Get the current positioning of the table in the DOM - * Returns: - - * Inputs: - - */ - _fnMeasure: function () - { - var - s = this.fnGetSettings(), - m = s.oMes, - jqTable = $(s.nTable), - oOffset = jqTable.offset(), - iParentScrollTop = this._fnSumScroll( s.nTable.parentNode, 'scrollTop' ), - iParentScrollLeft = this._fnSumScroll( s.nTable.parentNode, 'scrollLeft' ); - - m.iTableWidth = jqTable.outerWidth(); - m.iTableHeight = jqTable.outerHeight(); - m.iTableLeft = oOffset.left + s.nTable.parentNode.scrollLeft; - m.iTableTop = oOffset.top + iParentScrollTop; - m.iTableRight = m.iTableLeft + m.iTableWidth; - m.iTableRight = FixedHeader.oDoc.iWidth - m.iTableLeft - m.iTableWidth; - m.iTableBottom = FixedHeader.oDoc.iHeight - m.iTableTop - m.iTableHeight; - }, - - /* - * Function: _fnSumScroll - * Purpose: Sum node parameters all the way to the top - * Returns: int: sum - * Inputs: node:n - node to consider - * string:side - scrollTop or scrollLeft - */ - _fnSumScroll: function ( n, side ) - { - var i = n[side]; - while ( n = n.parentNode ) - { - if ( n.nodeName == 'HTML' || n.nodeName == 'BODY' ) - { - break; - } - i = n[side]; - } - return i; - }, - - /* - * Function: _fnUpdatePositions - * Purpose: Loop over the fixed elements for this table and update their positions - * Returns: - - * Inputs: - - */ - _fnUpdatePositions: function () - { - var s = this.fnGetSettings(); - this._fnMeasure(); - - for ( var i=0, iLen=s.aoCache.length ; i oWin.iScrollTop + s.oOffset.top ) - { - /* Above the table */ - this._fnUpdateCache( oCache, 'sPosition', "absolute", 'position', nTable.style ); - this._fnUpdateCache( oCache, 'sTop', oMes.iTableTop+"px", 'top', nTable.style ); - this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style ); - } - else if ( oWin.iScrollTop + s.oOffset.top > oMes.iTableTop+iTbodyHeight ) - { - /* At the bottom of the table */ - this._fnUpdateCache( oCache, 'sPosition', "absolute", 'position', nTable.style ); - this._fnUpdateCache( oCache, 'sTop', (oMes.iTableTop+iTbodyHeight)+"px", 'top', nTable.style ); - this._fnUpdateCache( oCache, 'sLeft', oMes.iTableLeft+"px", 'left', nTable.style ); - } - else - { - /* In the middle of the table */ - this._fnUpdateCache( oCache, 'sPosition', 'fixed', 'position', nTable.style ); - this._fnUpdateCache( oCache, 'sTop', s.oOffset.top+"px", 'top', nTable.style ); - this._fnUpdateCache( oCache, 'sLeft', (oMes.iTableLeft-oWin.iScrollLeft)+"px", 'left', nTable.style ); - } - }, - - /* - * Function: _fnUpdateCache - * Purpose: Check the cache and update cache and value if needed - * Returns: - - * Inputs: object:oCache - local cache object - * string:sCache - cache property - * string:sSet - value to set - * string:sProperty - object property to set - * object:oObj - object to update - */ - _fnUpdateCache: function ( oCache, sCache, sSet, sProperty, oObj ) - { - if ( oCache[sCache] != sSet ) - { - oObj[sProperty] = sSet; - oCache[sCache] = sSet; - } - }, - - - - /** - * Copy the classes of all child nodes from one element to another. This implies - * that the two have identical structure - no error checking is performed to that - * fact. - * @param {element} source Node to copy classes from - * @param {element} dest Node to copy classes too - */ - _fnClassUpdate: function ( source, dest ) - { - var that = this; - - if ( source.nodeName.toUpperCase() === "TR" || source.nodeName.toUpperCase() === "TH" || - source.nodeName.toUpperCase() === "TD" || source.nodeName.toUpperCase() === "SPAN" ) - { - dest.className = source.className; - } - - $(source).children().each( function (i) { - that._fnClassUpdate( $(source).children()[i], $(dest).children()[i] ); - } ); - }, - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Cloning functions - */ - - /* - * Function: _fnCloneThead - * Purpose: Clone the thead element - * Returns: - - * Inputs: object:oCache - the cached values for this fixed element - */ - _fnCloneThead: function ( oCache ) - { - var s = this.fnGetSettings(); - var nTable = oCache.nNode; - - if ( s.bInitComplete && !s.oCloneOnDraw.top ) - { - this._fnClassUpdate( $('thead', s.nTable)[0], $('thead', nTable)[0] ); - return; - } - - /* Set the wrapper width to match that of the cloned table */ - var iDtWidth = $(s.nTable).outerWidth(); - oCache.nWrapper.style.width = iDtWidth+"px"; - nTable.style.width = iDtWidth+"px"; - - /* Remove any children the cloned table has */ - while ( nTable.childNodes.length > 0 ) - { - $('thead th', nTable).unbind( 'click' ); - nTable.removeChild( nTable.childNodes[0] ); - } - - /* Clone the DataTables header */ - var nThead = $('thead', s.nTable).clone(true)[0]; - nTable.appendChild( nThead ); - - /* Copy the widths across - apparently a clone isn't good enough for this */ - var a = []; - var b = []; - - $("thead>tr th", s.nTable).each( function (i) { - a.push( $(this).width() ); - } ); - - $("thead>tr td", s.nTable).each( function (i) { - b.push( $(this).width() ); - } ); - - $("thead>tr th", s.nTable).each( function (i) { - $("thead>tr th:eq("+i+")", nTable).width( a[i] ); - $(this).width( a[i] ); - } ); - - $("thead>tr td", s.nTable).each( function (i) { - $("thead>tr td:eq("+i+")", nTable).width( b[i] ); - $(this).width( b[i] ); - } ); - - // Stop DataTables 1.9 from putting a focus ring on the headers when - // clicked to sort - $('th.sorting, th.sorting_desc, th.sorting_asc', nTable).bind( 'click', function () { - this.blur(); - } ); - }, - - /* - * Function: _fnCloneTfoot - * Purpose: Clone the tfoot element - * Returns: - - * Inputs: object:oCache - the cached values for this fixed element - */ - _fnCloneTfoot: function ( oCache ) - { - var s = this.fnGetSettings(); - var nTable = oCache.nNode; - - /* Set the wrapper width to match that of the cloned table */ - oCache.nWrapper.style.width = $(s.nTable).outerWidth()+"px"; - - /* Remove any children the cloned table has */ - while ( nTable.childNodes.length > 0 ) - { - nTable.removeChild( nTable.childNodes[0] ); - } - - /* Clone the DataTables footer */ - var nTfoot = $('tfoot', s.nTable).clone(true)[0]; - nTable.appendChild( nTfoot ); - - /* Copy the widths across - apparently a clone isn't good enough for this */ - $("tfoot:eq(0)>tr th", s.nTable).each( function (i) { - $("tfoot:eq(0)>tr th:eq("+i+")", nTable).width( $(this).width() ); - } ); - - $("tfoot:eq(0)>tr td", s.nTable).each( function (i) { - $("tfoot:eq(0)>tr td:eq("+i+")", nTable).width( $(this).width() ); - } ); - }, - - /* - * Function: _fnCloneTLeft - * Purpose: Clone the left column(s) - * Returns: - - * Inputs: object:oCache - the cached values for this fixed element - */ - _fnCloneTLeft: function ( oCache ) - { - var s = this.fnGetSettings(); - var nTable = oCache.nNode; - var nBody = $('tbody', s.nTable)[0]; - - /* Remove any children the cloned table has */ - while ( nTable.childNodes.length > 0 ) - { - nTable.removeChild( nTable.childNodes[0] ); - } - - /* Is this the most efficient way to do this - it looks horrible... */ - nTable.appendChild( $("thead", s.nTable).clone(true)[0] ); - nTable.appendChild( $("tbody", s.nTable).clone(true)[0] ); - if ( s.bFooter ) - { - nTable.appendChild( $("tfoot", s.nTable).clone(true)[0] ); - } - - /* Remove unneeded cells */ - var sSelector = 'gt(' + (oCache.iCells - 1) + ')'; - $('thead tr', nTable).each( function (k) { - $('th:' + sSelector, this).remove(); - } ); - - $('tfoot tr', nTable).each( function (k) { - $('th:' + sSelector, this).remove(); - } ); - - $('tbody tr', nTable).each( function (k) { - $('td:' + sSelector, this).remove(); - } ); - - this.fnEqualiseHeights( 'thead', nBody.parentNode, nTable ); - this.fnEqualiseHeights( 'tbody', nBody.parentNode, nTable ); - this.fnEqualiseHeights( 'tfoot', nBody.parentNode, nTable ); - - var iWidth = 0; - for (var i = 0; i < oCache.iCells; i++) { - iWidth += $('thead tr th:eq(' + i + ')', s.nTable).outerWidth(); - } - nTable.style.width = iWidth+"px"; - oCache.nWrapper.style.width = iWidth+"px"; - }, - - /* - * Function: _fnCloneTRight - * Purpose: Clone the right most column(s) - * Returns: - - * Inputs: object:oCache - the cached values for this fixed element - */ - _fnCloneTRight: function ( oCache ) - { - var s = this.fnGetSettings(); - var nBody = $('tbody', s.nTable)[0]; - var nTable = oCache.nNode; - var iCols = $('tbody tr:eq(0) td', s.nTable).length; - - /* Remove any children the cloned table has */ - while ( nTable.childNodes.length > 0 ) - { - nTable.removeChild( nTable.childNodes[0] ); - } - - /* Is this the most efficient way to do this - it looks horrible... */ - nTable.appendChild( $("thead", s.nTable).clone(true)[0] ); - nTable.appendChild( $("tbody", s.nTable).clone(true)[0] ); - if ( s.bFooter ) - { - nTable.appendChild( $("tfoot", s.nTable).clone(true)[0] ); - } - $('thead tr th:lt('+(iCols-oCache.iCells)+')', nTable).remove(); - $('tfoot tr th:lt('+(iCols-oCache.iCells)+')', nTable).remove(); - - /* Remove unneeded cells */ - $('tbody tr', nTable).each( function (k) { - $('td:lt('+(iCols-oCache.iCells)+')', this).remove(); - } ); - - this.fnEqualiseHeights( 'thead', nBody.parentNode, nTable ); - this.fnEqualiseHeights( 'tbody', nBody.parentNode, nTable ); - this.fnEqualiseHeights( 'tfoot', nBody.parentNode, nTable ); - - var iWidth = 0; - for (var i = 0; i < oCache.iCells; i++) { - iWidth += $('thead tr th:eq('+(iCols-1-i)+')', s.nTable).outerWidth(); - } - nTable.style.width = iWidth+"px"; - oCache.nWrapper.style.width = iWidth+"px"; - }, - - - /** - * Equalise the heights of the rows in a given table node in a cross browser way. Note that this - * is more or less lifted as is from FixedColumns - * @method fnEqualiseHeights - * @returns void - * @param {string} parent Node type - thead, tbody or tfoot - * @param {element} original Original node to take the heights from - * @param {element} clone Copy the heights to - * @private - */ - "fnEqualiseHeights": function ( parent, original, clone ) - { - var that = this; - var originals = $(parent +' tr', original); - var height; - - $(parent+' tr', clone).each( function (k) { - height = originals.eq( k ).css('height'); - - // This is nasty :-(. IE has a sub-pixel error even when setting - // the height below (the Firefox fix) which causes the fixed column - // to go out of alignment. Need to add a pixel before the assignment - // Can this be feature detected? Not sure how... - if ( navigator.appName == 'Microsoft Internet Explorer' ) { - height = parseInt( height, 10 ) + 1; - } - - $(this).css( 'height', height ); - - // For Firefox to work, we need to also set the height of the - // original row, to the value that we read from it! Otherwise there - // is a sub-pixel rounding error - originals.eq( k ).css( 'height', height ); - } ); - } -}; - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Static properties and methods - * We use these for speed! This information is common to all instances of FixedHeader, so no - * point if having them calculated and stored for each different instance. - */ - -/* - * Variable: oWin - * Purpose: Store information about the window positioning - * Scope: FixedHeader - */ -FixedHeader.oWin = { - "iScrollTop": 0, - "iScrollRight": 0, - "iScrollBottom": 0, - "iScrollLeft": 0, - "iHeight": 0, - "iWidth": 0 -}; - -/* - * Variable: oDoc - * Purpose: Store information about the document size - * Scope: FixedHeader - */ -FixedHeader.oDoc = { - "iHeight": 0, - "iWidth": 0 -}; - -/* - * Variable: afnScroll - * Purpose: Array of functions that are to be used for the scrolling components - * Scope: FixedHeader - */ -FixedHeader.afnScroll = []; - -/* - * Function: fnMeasure - * Purpose: Update the measurements for the window and document - * Returns: - - * Inputs: - - */ -FixedHeader.fnMeasure = function () -{ - var - jqWin = $(window), - jqDoc = $(document), - oWin = FixedHeader.oWin, - oDoc = FixedHeader.oDoc; - - oDoc.iHeight = jqDoc.height(); - oDoc.iWidth = jqDoc.width(); - - oWin.iHeight = jqWin.height(); - oWin.iWidth = jqWin.width(); - oWin.iScrollTop = jqWin.scrollTop(); - oWin.iScrollLeft = jqWin.scrollLeft(); - oWin.iScrollRight = oDoc.iWidth - oWin.iScrollLeft - oWin.iWidth; - oWin.iScrollBottom = oDoc.iHeight - oWin.iScrollTop - oWin.iHeight; -}; - - -FixedHeader.version = "2.1.2"; - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Global processing - */ - -/* - * Just one 'scroll' event handler in FixedHeader, which calls the required components. This is - * done as an optimisation, to reduce calculation and proagation time - */ -$(window).scroll( function () { - FixedHeader.fnMeasure(); - - for ( var i=0, iLen=FixedHeader.afnScroll.length ; itfoot",c.nTable).length?!0:!1,c.oSides.top&&c.aoCache.push(d._fnCloneTable("fixedHeader","FixedHeader_Header",d._fnCloneThead)),c.oSides.bottom&&c.aoCache.push(d._fnCloneTable("fixedFooter","FixedHeader_Footer",d._fnCloneTfoot)),c.oSides.left&&c.aoCache.push(d._fnCloneTable("fixedLeft","FixedHeader_Left",d._fnCloneTLeft,c.oSides.left)), -c.oSides.right&&c.aoCache.push(d._fnCloneTable("fixedRight","FixedHeader_Right",d._fnCloneTRight,c.oSides.right)),FixedHeader.afnScroll.push(function(){d._fnUpdatePositions.call(d)}),e(j).resize(function(){FixedHeader.fnMeasure();d._fnUpdateClones.call(d);d._fnUpdatePositions.call(d)}),e(c.nTable).on("column-reorder.dt",function(){FixedHeader.fnMeasure();d._fnUpdateClones(!0);d._fnUpdatePositions()}).on("column-visibility.dt",function(){FixedHeader.fnMeasure();d._fnUpdateClones(!0);d._fnUpdatePositions()}), -FixedHeader.fnMeasure(),d._fnUpdateClones(),d._fnUpdatePositions(),c.bInitComplete=!0)},fnInitSettings:function(a,b){if(b!==h&&(b.top!==h&&(a.oSides.top=b.top),b.bottom!==h&&(a.oSides.bottom=b.bottom),"boolean"==typeof b.left?a.oSides.left=b.left?1:0:b.left!==h&&(a.oSides.left=b.left),"boolean"==typeof b.right?a.oSides.right=b.right?1:0:b.right!==h&&(a.oSides.right=b.right),b.zTop!==h&&(a.oZIndexes.top=b.zTop),b.zBottom!==h&&(a.oZIndexes.bottom=b.zBottom),b.zLeft!==h&&(a.oZIndexes.left=b.zLeft),b.zRight!== -h&&(a.oZIndexes.right=b.zRight),b.offsetTop!==h&&(a.oOffset.top=b.offsetTop),b.alwaysCloneTop!==h&&(a.oCloneOnDraw.top=b.alwaysCloneTop),b.alwaysCloneBottom!==h&&(a.oCloneOnDraw.bottom=b.alwaysCloneBottom),b.alwaysCloneLeft!==h&&(a.oCloneOnDraw.left=b.alwaysCloneLeft),b.alwaysCloneRight!==h))a.oCloneOnDraw.right=b.alwaysCloneRight},_fnCloneTable:function(a,b,c,d){var f=this.fnGetSettings(),g;"absolute"!=e(f.nTable.parentNode).css("position")&&(f.nTable.parentNode.style.position="relative");g=f.nTable.cloneNode(!1); -g.removeAttribute("id");var i=k.createElement("div");i.style.position="absolute";i.style.top="0px";i.style.left="0px";i.className+=" FixedHeader_Cloned "+a+" "+b;"fixedHeader"==a&&(i.style.zIndex=f.oZIndexes.top);"fixedFooter"==a&&(i.style.zIndex=f.oZIndexes.bottom);"fixedLeft"==a?i.style.zIndex=f.oZIndexes.left:"fixedRight"==a&&(i.style.zIndex=f.oZIndexes.right);g.style.margin="0";i.appendChild(g);k.body.appendChild(i);return{nNode:g,nWrapper:i,sType:a,sPosition:"",sTop:"",sLeft:"",fnClone:c,iCells:d}}, -_fnMeasure:function(){var a=this.fnGetSettings(),b=a.oMes,c=e(a.nTable),d=c.offset(),f=this._fnSumScroll(a.nTable.parentNode,"scrollTop");this._fnSumScroll(a.nTable.parentNode,"scrollLeft");b.iTableWidth=c.outerWidth();b.iTableHeight=c.outerHeight();b.iTableLeft=d.left+a.nTable.parentNode.scrollLeft;b.iTableTop=d.top+f;b.iTableRight=b.iTableLeft+b.iTableWidth;b.iTableRight=FixedHeader.oDoc.iWidth-b.iTableLeft-b.iTableWidth;b.iTableBottom=FixedHeader.oDoc.iHeight-b.iTableTop-b.iTableHeight},_fnSumScroll:function(a, -b){for(var c=a[b];(a=a.parentNode)&&!("HTML"==a.nodeName||"BODY"==a.nodeName);)c=a[b];return c},_fnUpdatePositions:function(){var a=this.fnGetSettings();this._fnMeasure();for(var b=0,c=a.aoCache.length;bd.iScrollTop+b.oOffset.top?(this._fnUpdateCache(a,"sPosition","absolute","position",e.style),this._fnUpdateCache(a,"sTop",c.iTableTop+"px","top",e.style),this._fnUpdateCache(a,"sLeft",c.iTableLeft+"px","left",e.style)):d.iScrollTop+b.oOffset.top>c.iTableTop+ -g?(this._fnUpdateCache(a,"sPosition","absolute","position",e.style),this._fnUpdateCache(a,"sTop",c.iTableTop+g+"px","top",e.style),this._fnUpdateCache(a,"sLeft",c.iTableLeft+"px","left",e.style)):(this._fnUpdateCache(a,"sPosition","fixed","position",e.style),this._fnUpdateCache(a,"sTop",b.oOffset.top+"px","top",e.style),this._fnUpdateCache(a,"sLeft",c.iTableLeft-d.iScrollLeft+"px","left",e.style))},_fnUpdateCache:function(a,b,c,d,e){a[b]!=c&&(e[d]=c,a[b]=c)},_fnClassUpdate:function(a,b){var c=this; -if("TR"===a.nodeName.toUpperCase()||"TH"===a.nodeName.toUpperCase()||"TD"===a.nodeName.toUpperCase()||"SPAN"===a.nodeName.toUpperCase())b.className=a.className;e(a).children().each(function(d){c._fnClassUpdate(e(a).children()[d],e(b).children()[d])})},_fnCloneThead:function(a){var b=this.fnGetSettings(),c=a.nNode;if(b.bInitComplete&&!b.oCloneOnDraw.top)this._fnClassUpdate(e("thead",b.nTable)[0],e("thead",c)[0]);else{var d=e(b.nTable).outerWidth();a.nWrapper.style.width=d+"px";for(c.style.width=d+ -"px";0tr th",b.nTable).each(function(){f.push(e(this).width())});e("thead>tr td",b.nTable).each(function(){g.push(e(this).width())});e("thead>tr th",b.nTable).each(function(a){e("thead>tr th:eq("+a+")",c).width(f[a]);e(this).width(f[a])});e("thead>tr td",b.nTable).each(function(a){e("thead>tr td:eq("+a+")",c).width(g[a]);e(this).width(g[a])}); -e("th.sorting, th.sorting_desc, th.sorting_asc",c).bind("click",function(){this.blur()})}},_fnCloneTfoot:function(a){var b=this.fnGetSettings(),c=a.nNode;for(a.nWrapper.style.width=e(b.nTable).outerWidth()+"px";0tr th",b.nTable).each(function(a){e("tfoot:eq(0)>tr th:eq("+a+")",c).width(e(this).width())});e("tfoot:eq(0)>tr td",b.nTable).each(function(a){e("tfoot:eq(0)>tr td:eq("+ -a+")",c).width(e(this).width())})},_fnCloneTLeft:function(a){for(var b=this.fnGetSettings(),c=a.nNode,d=e("tbody",b.nTable)[0];0 - - - - - - - KeyTable example - Events - - - - - - - - - - - - - - -
-
-

KeyTable example Events

- -
-

KeyTable provides the ability to listen for events such as focus, blur, - esc (the escape key) and 'return' (the return key) can be assigned event handling - functions through KeyTable's the API. This gives you the ability to take an action on a cell.

- -

The example shown below has a few cells (selected at random, but near the top) with blur and focus - events assigned to them. You can also see the navigation around the table using arrow keys.

-
- -
- Event information:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

function eventMsg ( msg ) { - var n = document.getElementById('info'); - n.innerHTML += msg+"<br>"; - n.scrollTop = n.scrollHeight; -} - -$(document).ready(function() { - var table = $('#example').DataTable(); - var keys = new $.fn.dataTable.KeyTable( table ); - - /* Focus handler for all cells in last column */ - keys.event.focus( 4, null, function( node, x, y ) { - eventMsg( "Cell "+x+","+y+" focused ('live' event - column)" ); - } ); - - /* Focus handler for all cells in 8th row */ - keys.event.focus( null, 7, function( node, x, y ) { - eventMsg( "Cell "+x+","+y+" focused ('live' event - row)" ); - } ); - - /* Focus using coords. */ - keys.event.focus( 1, 0, function( node ) { - keys.event.remove.focus( node ); - eventMsg( "Cell 1,0 focus - this event has now been removed" ); - } ); - - keys.event.focus( 1, 3, function() { - eventMsg( "Cell 1,3 focus" ); - } ); - - /* focus with a node */ - keys.event.focus( $('#example tbody tr:eq(2) td:eq(0)')[0], function() { - eventMsg( "Cell 0,2 focus" ); - } ); - - /* Blur using a node */ - keys.event.blur( $('#example tbody tr:eq(1) td:eq(2)')[0], function() { - eventMsg( "Cell 1,2 blur" ); - } ); - - /* Blur using coords */ - keys.event.blur( 2, 4, function() { - eventMsg( "Cell 2,4 blur" ); - } ); - - /* Action */ - keys.event.action( 2, 2, function( node ) { - eventMsg( "Cell 2,2 action" ); - if ( node.style.fontWeight == "" || node.style.fontWeight == "normal" ) { - node.style.fontWeight = "bold"; - } - else { - node.style.fontWeight = "normal"; - } - } ); - - keys.event.action( 2, 5, function( node ) { - eventMsg( "Cell 2,5 action" ); - if ( node.style.fontStyle == "" ) { - node.style.fontStyle = "italic"; - } - else { - node.style.fontStyle = ""; - } - } ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/html.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/html.html deleted file mode 100644 index a0a0e108..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/html.html +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - KeyTable example - Plain HTML table - - - - - - - - - - - - - - -
-
-

KeyTable example Plain HTML table

- -
-

As well as being usable with DataTables, KeyTable can also be used with a plain HTML table. Please - note that this ability is deprecated and will be removed in KeyTable 1.3.

- -

This example shows KeyTable being initialised without any parameter, which instructs it to search - for any table with the class KeyTable which will be used.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - $('#example').addClass('KeyTable'); - new $.fn.dataTable.KeyTable(); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/index.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/index.html deleted file mode 100644 index 71ab0a8f..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/index.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - KeyTable examples - KeyTable examples - - - -
-
-

KeyTable example KeyTable examples

- -
-

KeyTable provides enhanced accessibility and navigation options for DataTables enhanced tables, by - allowing Excel like cell navigation on any table. Events (focus, blur, action etc) can be assigned to - individual cells, columns, rows or all cells to allow advanced interaction options.. Key features - include:

- -
    -
  • Easy to use spreadsheet like interaction
  • -
  • Fully integrated with DataTables
  • -
  • Wide range of supported events
  • -
  • Works without DataTables if you just want a plain table
  • -
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/scrolling.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/scrolling.html deleted file mode 100644 index 6df15805..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/scrolling.html +++ /dev/null @@ -1,637 +0,0 @@ - - - - - - - - KeyTable example - Scrolling table - - - - - - - - - - - - - - -
-
-

KeyTable example Scrolling table

- -
-

KeyTable supports DataTables' scrolling options (scrollXDT and scrollYDT) without required any additional - configuration. As the navigation keys are used to alter the focus of the KeyTable, the DataTables - scrolling position is altered to show the focused cell.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable( { - scrollY: 300, - paging: false - } ); - - new $.fn.dataTable.KeyTable( table ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/simple.html b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/simple.html deleted file mode 100644 index e18ed1c6..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/examples/simple.html +++ /dev/null @@ -1,631 +0,0 @@ - - - - - - - - KeyTable example - Basic initialisation - - - - - - - - - - - - - - -
-
-

KeyTable example Basic initialisation

- -
-

KeyTable allows you to use keyboard navigation on a DataTables enhanced table, like an Excel - spreadsheet. The focused cell is shown through the CSS class ('focus') which in the case below is - simply a blue border. Use your keyboard's arrow keys and click the cells in the table to navigate.

- -

This example simply shows key table being initialised on a DataTable, but events can be listened for through the KeyTable API which provide interaction - options.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Tiger NixonSystem ArchitectEdinburgh612011/04/25$320,800
Garrett WintersAccountantTokyo632011/07/25$170,750
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Airi SatouAccountantTokyo332008/11/28$162,700
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Jena GainesOffice ManagerLondon302008/12/19$90,560
Quinn FlynnSupport LeadEdinburgh222013/03/03$342,000
Charde MarshallRegional DirectorSan Francisco362008/10/16$470,600
Haley KennedySenior Marketing DesignerLondon432012/12/18$313,500
Tatyana FitzpatrickRegional DirectorLondon192010/03/17$385,750
Michael SilvaMarketing DesignerLondon662012/11/27$198,500
Paul ByrdChief Financial Officer (CFO)New York642010/06/09$725,000
Gloria LittleSystems AdministratorNew York592009/04/10$237,500
Bradley GreerSoftware EngineerLondon412012/10/13$132,000
Dai RiosPersonnel LeadEdinburgh352012/09/26$217,500
Jenette CaldwellDevelopment LeadNew York302011/09/03$345,000
Yuri BerryChief Marketing Officer (CMO)New York402009/06/25$675,000
Caesar VancePre-Sales SupportNew York212011/12/12$106,450
Doris WilderSales AssistantSidney232010/09/20$85,600
Angelica RamosChief Executive Officer (CEO)London472009/10/09$1,200,000
Gavin JoyceDeveloperEdinburgh422010/12/22$92,575
Jennifer ChangRegional DirectorSingapore282010/11/14$357,650
Brenden WagnerSoftware EngineerSan Francisco282011/06/07$206,850
Fiona GreenChief Operating Officer (COO)San Francisco482010/03/11$850,000
Shou ItouRegional MarketingTokyo202011/08/14$163,000
Michelle HouseIntegration SpecialistSidney372011/06/02$95,400
Suki BurksDeveloperLondon532009/10/22$114,500
Prescott BartlettTechnical AuthorLondon272011/05/07$145,000
Gavin CortezTeam LeaderSan Francisco222008/10/26$235,500
Martena MccrayPost-Sales supportEdinburgh462011/03/09$324,050
Unity ButlerMarketing DesignerSan Francisco472009/12/09$85,675
Howard HatfieldOffice ManagerSan Francisco512008/12/16$164,500
Hope FuentesSecretarySan Francisco412010/02/12$109,850
Vivian HarrellFinancial ControllerSan Francisco622009/02/14$452,500
Timothy MooneyOffice ManagerLondon372008/12/11$136,200
Jackson BradshawDirectorNew York652008/09/26$645,750
Olivia LiangSupport EngineerSingapore642011/02/03$234,500
Bruno NashSoftware EngineerLondon382011/05/03$163,500
Sakura YamamotoSupport EngineerTokyo372009/08/19$139,575
Thor WaltonDeveloperNew York612013/08/11$98,540
Finn CamachoSupport EngineerSan Francisco472009/07/07$87,500
Serge BaldwinData CoordinatorSingapore642012/04/09$138,575
Zenaida FrankSoftware EngineerNew York632010/01/04$125,250
Zorita SerranoSoftware EngineerSan Francisco562012/06/01$115,000
Jennifer AcostaJunior Javascript DeveloperEdinburgh432013/02/01$75,650
Cara StevensSales AssistantNew York462011/12/06$145,600
Hermione ButlerRegional DirectorLondon472011/03/21$356,250
Lael GreerSystems AdministratorLondon212009/02/27$103,500
Jonas AlexanderDeveloperSan Francisco302010/07/14$86,500
Shad DeckerRegional DirectorEdinburgh512008/11/13$183,000
Michael BruceJavascript DeveloperSingapore292011/06/27$183,000
Donna SniderCustomer SupportNew York272011/01/25$112,000
- -
    -
  • Javascript
  • -
  • HTML
  • -
  • CSS
  • -
  • Ajax
  • -
  • Server-side script
  • -
- -
-
-

The Javascript shown below is used to initialise the table shown in this - example:

$(document).ready(function() { - var table = $('#example').DataTable(); - - new $.fn.dataTable.KeyTable( table ); -} ); - -

In addition to the above code, the following Javascript library files are loaded for use in this - example:

- - -
- -
-

The HTML shown below is the raw HTML table element, before it has been enhanced by - DataTables:

-
- -
-
-

This example uses a little bit of additional CSS beyond what is loaded from the library - files (below), in order to correctly display the table. The additional CSS used is shown - below:

-
- -

The following CSS library files are loaded for use in this example to provide the styling of the - table:

- - -
- -
-

This table loads data by Ajax. The latest data that has been loaded is shown below. This data - will update automatically as any additional data is loaded.

-
- -
-

The script used to perform the server-side processing for this table is shown below. Please note - that this is just an example script using PHP. Server-side processing scripts can be written in any - language, using the protocol described in the - DataTables documentation.

-
-
-
-
- -
- -
- - \ No newline at end of file diff --git a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/js/dataTables.keyTable.js b/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/js/dataTables.keyTable.js deleted file mode 100644 index f303f766..00000000 --- a/xxl-job-simple/src/main/webapp/static/adminlte/plugins/datatables/extensions/KeyTable/js/dataTables.keyTable.js +++ /dev/null @@ -1,1175 +0,0 @@ -/*! KeyTable 1.2.1 - * ©2010-2014 SpryMedia Ltd - datatables.net/license - */ - -/** - * @summary KeyTable - * @description Spreadsheet like keyboard navigation for DataTables - * @version 1.2.1 - * @file dataTables.keyTable.js - * @author SpryMedia Ltd (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * @copyright Copyright 2009-2014 SpryMedia Ltd. - * - * This source file is free software, available under the following license: - * MIT license - http://datatables.net/license/mit - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -// Global scope for KeyTable for backwards compatibility. Will be removed in 1.3 -var KeyTable; - - -(function(window, document, undefined) { - - -var factory = function( $, DataTable ) { -"use strict"; - -KeyTable = function ( oInit ) -{ - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * API parameters - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /* - * Variable: block - * Purpose: Flag whether or not KeyTable events should be processed - * Scope: KeyTable - public - */ - this.block = false; - - /* - * Variable: event - * Purpose: Container for all event application methods - * Scope: KeyTable - public - * Notes: This object contains all the public methods for adding and removing events - these - * are dynamically added later on - */ - this.event = { - "remove": {} - }; - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * API methods - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /* - * Function: fnGetCurrentPosition - * Purpose: Get the currently focused cell's position - * Returns: array int: [ x, y ] - * Inputs: void - */ - this.fnGetCurrentPosition = function () - { - return [ _iOldX, _iOldY ]; - }; - - - /* - * Function: fnGetCurrentData - * Purpose: Get the currently focused cell's data (innerHTML) - * Returns: string: - data requested - * Inputs: void - */ - this.fnGetCurrentData = function () - { - return _nOldFocus.innerHTML; - }; - - - /* - * Function: fnGetCurrentTD - * Purpose: Get the currently focused cell - * Returns: node: - focused element - * Inputs: void - */ - this.fnGetCurrentTD = function () - { - return _nOldFocus; - }; - - - /* - * Function: fnSetPosition - * Purpose: Set the position of the focused cell - * Returns: - - * Inputs: int:x - x coordinate - * int:y - y coordinate - * Notes: Thanks to Rohan Daxini for the basis of this function - */ - this.fnSetPosition = function( x, y ) - { - if ( typeof x == 'object' && x.nodeName ) - { - _fnSetFocus( x ); - } - else - { - _fnSetFocus( _fnCellFromCoords(x, y) ); - } - }; - - - /* - * Function: fnBlur - * Purpose: Blur the current focus - * Returns: - - * Inputs: - - */ - this.fnBlur = function() - { - _fnBlur(); - }; - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Private parameters - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /* - * Variable: _nBody - * Purpose: Body node of the table - cached for renference - * Scope: KeyTable - private - */ - var _nBody = null; - - /* - * Variable: - * Purpose: - * Scope: KeyTable - private - */ - var _nOldFocus = null; - - /* - * Variable: _iOldX and _iOldY - * Purpose: X and Y coords of the old elemet that was focused on - * Scope: KeyTable - private - */ - var _iOldX = null; - var _iOldY = null; - - /* - * Variable: _that - * Purpose: Scope saving for 'this' after a jQuery event - * Scope: KeyTable - private - */ - var _that = null; - - /* - * Variable: sFocusClass - * Purpose: Class that should be used for focusing on a cell - * Scope: KeyTable - private - */ - var _sFocusClass = "focus"; - - /* - * Variable: _bKeyCapture - * Purpose: Flag for should KeyTable capture key events or not - * Scope: KeyTable - private - */ - var _bKeyCapture = false; - - /* - * Variable: _oaoEvents - * Purpose: Event cache object, one array for each supported event for speed of searching - * Scope: KeyTable - private - */ - var _oaoEvents = { - "action": [], - "esc": [], - "focus": [], - "blur": [] - }; - - /* - * Variable: _oDatatable - * Purpose: DataTables settings object for if we are actually using a - * DataTables table - * Scope: KeyTable - private - */ - var _oDatatable = null; - - var _bForm; - var _nInput; - var _bInputFocused = false; - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Private methods - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Key table events - */ - - /* - * Function: _fnEventAddTemplate - * Purpose: Create a function (with closure for sKey) event addition API - * Returns: function: - template function - * Inputs: string:sKey - type of event to detect - */ - function _fnEventAddTemplate( sKey ) - { - /* - * Function: - - * Purpose: API function for adding event to cache - * Returns: - - * Inputs: 1. node:x - target node to add event for - * 2. function:y - callback function to apply - * or - * 1. int:x - x coord. of target cell (can be null for live events) - * 2. int:y - y coord. of target cell (can be null for live events) - * 3. function:z - callback function to apply - * Notes: This function is (interally) overloaded (in as much as javascript allows for - * that) - the target cell can be given by either node or coords. - */ - return function ( x, y, z ) { - if ( (x===null || typeof x == "number") && - (y===null || typeof y == "number") && - typeof z == "function" ) - { - _fnEventAdd( sKey, x, y, z ); - } - else if ( typeof x == "object" && typeof y == "function" ) - { - var aCoords = _fnCoordsFromCell( x ); - _fnEventAdd( sKey, aCoords[0], aCoords[1], y ); - } - else - { - alert( "Unhandable event type was added: x" +x+ " y:" +y+ " z:" +z ); - } - }; - } - - - /* - * Function: _fnEventRemoveTemplate - * Purpose: Create a function (with closure for sKey) event removal API - * Returns: function: - template function - * Inputs: string:sKey - type of event to detect - */ - function _fnEventRemoveTemplate( sKey ) - { - /* - * Function: - - * Purpose: API function for removing event from cache - * Returns: int: - number of events removed - * Inputs: 1. node:x - target node to remove event from - * 2. function:y - callback function to apply - * or - * 1. int:x - x coord. of target cell (can be null for live events) - * 2. int:y - y coord. of target cell (can be null for live events) - * 3. function:z - callback function to remove - optional - * Notes: This function is (interally) overloaded (in as much as javascript allows for - * that) - the target cell can be given by either node or coords and the function - * to remove is optional - */ - return function ( x, y, z ) { - if ( (x===null || typeof arguments[0] == "number") && - (y===null || typeof arguments[1] == "number" ) ) - { - if ( typeof arguments[2] == "function" ) - { - _fnEventRemove( sKey, x, y, z ); - } - else - { - _fnEventRemove( sKey, x, y ); - } - } - else if ( typeof arguments[0] == "object" ) - { - var aCoords = _fnCoordsFromCell( x ); - if ( typeof arguments[1] == "function" ) - { - _fnEventRemove( sKey, aCoords[0], aCoords[1], y ); - } - else - { - _fnEventRemove( sKey, aCoords[0], aCoords[1] ); - } - } - else - { - alert( "Unhandable event type was removed: x" +x+ " y:" +y+ " z:" +z ); - } - }; - } - - /* Use the template functions to add the event API functions */ - for ( var sKey in _oaoEvents ) - { - if ( sKey ) - { - this.event[sKey] = _fnEventAddTemplate( sKey ); - this.event.remove[sKey] = _fnEventRemoveTemplate( sKey ); - } - } - - - /* - * Function: _fnEventAdd - * Purpose: Add an event to the internal cache - * Returns: - - * Inputs: string:sType - type of event to add, given by the available elements in _oaoEvents - * int:x - x-coords to add event to - can be null for "blanket" event - * int:y - y-coords to add event to - can be null for "blanket" event - * function:fn - callback function for when triggered - */ - function _fnEventAdd( sType, x, y, fn ) - { - _oaoEvents[sType].push( { - "x": x, - "y": y, - "fn": fn - } ); - } - - - /* - * Function: _fnEventRemove - * Purpose: Remove an event from the event cache - * Returns: int: - number of matching events removed - * Inputs: string:sType - type of event to look for - * node:nTarget - target table cell - * function:fn - optional - remove this function. If not given all handlers of this - * type will be removed - */ - function _fnEventRemove( sType, x, y, fn ) - { - var iCorrector = 0; - - for ( var i=0, iLen=_oaoEvents[sType].length ; i= oSettings.fnDisplayEnd() ) - { - if ( oSettings._iDisplayLength >= 0 ) - { - /* Make sure we are not over running the display array */ - if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() ) - { - oSettings._iDisplayStart += oSettings._iDisplayLength; - } - } - else - { - oSettings._iDisplayStart = 0; - } - _oDatatable.oApi._fnCalculateEnd( oSettings ); - } - - /* Page backwards */ - while ( iRow < oSettings._iDisplayStart ) - { - oSettings._iDisplayStart = oSettings._iDisplayLength>=0 ? - oSettings._iDisplayStart - oSettings._iDisplayLength : - 0; - - if ( oSettings._iDisplayStart < 0 ) - { - oSettings._iDisplayStart = 0; - } - _oDatatable.oApi._fnCalculateEnd( oSettings ); - } - - /* Re-draw the table */ - _oDatatable.oApi._fnDraw( oSettings ); - - /* Restore the key capture */ - _bKeyCapture = bKeyCaptureCache; - } - - /* Cache the information that we are interested in */ - var aNewPos = _fnCoordsFromCell( nTarget ); - _nOldFocus = nTarget; - _iOldX = aNewPos[0]; - _iOldY = aNewPos[1]; - - var iViewportHeight, iViewportWidth, iScrollTop, iScrollLeft, iHeight, iWidth, aiPos; - if ( bAutoScroll ) - { - /* Scroll the viewport such that the new cell is fully visible in the rendered window */ - iViewportHeight = $(window).height(); - iViewportWidth = $(window).width(); - iScrollTop = $(document).scrollTop(); - iScrollLeft = $(document).scrollLeft(); - iHeight = nTarget.offsetHeight; - iWidth = nTarget.offsetWidth; - aiPos = _fnGetPos( nTarget ); - - /* Take account of scrolling in DataTables 1.7 - remove scrolling since that would add to - * the positioning calculation - */ - if ( _oDatatable && typeof oSettings.oScroll != 'undefined' && - (oSettings.oScroll.sX !== "" || oSettings.oScroll.sY !== "") ) - { - aiPos[1] -= $(oSettings.nTable.parentNode).scrollTop(); - aiPos[0] -= $(oSettings.nTable.parentNode).scrollLeft(); - } - - /* Correct viewport positioning for vertical scrolling */ - if ( aiPos[1]+iHeight > iScrollTop+iViewportHeight ) - { - /* Displayed element if off the bottom of the viewport */ - _fnSetScrollTop( aiPos[1]+iHeight - iViewportHeight ); - } - else if ( aiPos[1] < iScrollTop ) - { - /* Displayed element if off the top of the viewport */ - _fnSetScrollTop( aiPos[1] ); - } - - /* Correct viewport positioning for horizontal scrolling */ - if ( aiPos[0]+iWidth > iScrollLeft+iViewportWidth ) - { - /* Displayed element is off the bottom of the viewport */ - _fnSetScrollLeft( aiPos[0]+iWidth - iViewportWidth ); - } - else if ( aiPos[0] < iScrollLeft ) - { - /* Displayed element if off the Left of the viewport */ - _fnSetScrollLeft( aiPos[0] ); - } - } - - /* Take account of scrolling in DataTables 1.7 */ - if ( _oDatatable && typeof oSettings.oScroll != 'undefined' && - (oSettings.oScroll.sX !== "" || oSettings.oScroll.sY !== "") ) - { - var dtScrollBody = oSettings.nTable.parentNode; - iViewportHeight = dtScrollBody.clientHeight; - iViewportWidth = dtScrollBody.clientWidth; - iScrollTop = dtScrollBody.scrollTop; - iScrollLeft = dtScrollBody.scrollLeft; - iHeight = nTarget.offsetHeight; - iWidth = nTarget.offsetWidth; - - /* Correct for vertical scrolling */ - if ( nTarget.offsetTop + iHeight > iViewportHeight+iScrollTop ) - { - dtScrollBody.scrollTop = (nTarget.offsetTop + iHeight) - iViewportHeight; - } - else if ( nTarget.offsetTop < iScrollTop ) - { - dtScrollBody.scrollTop = nTarget.offsetTop; - } - - /* Correct for horizontal scrolling */ - if ( nTarget.offsetLeft + iWidth > iViewportWidth+iScrollLeft ) - { - dtScrollBody.scrollLeft = (nTarget.offsetLeft + iWidth) - iViewportWidth; - } - else if ( nTarget.offsetLeft < iScrollLeft ) - { - dtScrollBody.scrollLeft = nTarget.offsetLeft; - } - } - - /* Focused - so we want to capture the keys */ - _fnCaptureKeys(); - - /* Fire of the focus event if there is one */ - _fnEventFire( "focus", _iOldX, _iOldY ); - } - - - /* - * Function: _fnBlur - * Purpose: Blur focus from the whole table - * Returns: - - * Inputs: - - */ - function _fnBlur() - { - _fnRemoveFocus( _nOldFocus ); - _iOldX = null; - _iOldY = null; - _nOldFocus = null; - _fnReleaseKeys(); - } - - - /* - * Function: _fnRemoveFocus - * Purpose: Remove focus from a cell and fire any blur events which are attached - * Returns: - - * Inputs: node:nTarget - cell of interest - */ - function _fnRemoveFocus( nTarget ) - { - $(nTarget).removeClass( _sFocusClass ); - $(nTarget).parent().removeClass( _sFocusClass ); - _fnEventFire( "blur", _iOldX, _iOldY ); - } - - - /* - * Function: _fnClick - * Purpose: Focus on the element that has been clicked on by the user - * Returns: - - * Inputs: event:e - click event - */ - function _fnClick ( e ) - { - var nTarget = this; - while ( nTarget.nodeName != "TD" ) - { - nTarget = nTarget.parentNode; - } - - _fnSetFocus( nTarget ); - _fnCaptureKeys(); - } - - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Key events - */ - - /* - * Function: _fnKey - * Purpose: Deal with a key events, be it moving the focus or return etc. - * Returns: bool: - allow browser default action - * Inputs: event:e - key event - */ - function _fnKey ( e ) - { - /* If user or system has blocked KeyTable from doing anything, just ignore this event */ - if ( _that.block || !_bKeyCapture ) - { - return true; - } - - /* If a modifier key is pressed (exapct shift), ignore the event */ - if ( e.metaKey || e.altKey || e.ctrlKey ) - { - return true; - } - var - x, y, - iTableWidth = _nBody.getElementsByTagName('tr')[0].getElementsByTagName('td').length, - iTableHeight; - - /* Get table height and width - done here so as to be dynamic (if table is updated) */ - if ( _oDatatable ) - { - /* - * Locate the current node in the DataTable overriding the old positions - the reason for - * is is that there might have been some DataTables interaction between the last focus and - * now - */ - iTableHeight = _oDatatable.aiDisplay.length; - - var aDtPos = _fnFindDtCell( _nOldFocus ); - if ( aDtPos === null ) - { - /* If the table has been updated such that the focused cell can't be seen - do nothing */ - return; - } - _iOldX = aDtPos[ 0 ]; - _iOldY = aDtPos[ 1 ]; - } - else - { - iTableHeight = _nBody.getElementsByTagName('tr').length; - } - - /* Capture shift+tab to match the left arrow key */ - var iKey = (e.keyCode == 9 && e.shiftKey) ? -1 : e.keyCode; - - switch( iKey ) - { - case 13: /* return */ - e.preventDefault(); - e.stopPropagation(); - _fnEventFire( "action", _iOldX, _iOldY ); - return true; - - case 27: /* esc */ - if ( !_fnEventFire( "esc", _iOldX, _iOldY ) ) - { - /* Only lose focus if there isn't an escape handler on the cell */ - _fnBlur(); - return; - } - x = _iOldX; - y = _iOldY; - break; - - case -1: - case 37: /* left arrow */ - if ( _iOldX > 0 ) { - x = _iOldX - 1; - y = _iOldY; - } else if ( _iOldY > 0 ) { - x = iTableWidth-1; - y = _iOldY - 1; - } else { - /* at start of table */ - if ( iKey == -1 && _bForm ) - { - /* If we are in a form, return focus to the 'input' element such that tabbing will - * follow correctly in the browser - */ - _bInputFocused = true; - _nInput.focus(); - - /* This timeout is a little nasty - but IE appears to have some asyhnc behaviour for - * focus - */ - setTimeout( function(){ _bInputFocused = false; }, 0 ); - _bKeyCapture = false; - _fnBlur(); - return true; - } - else - { - return false; - } - } - break; - - case 38: /* up arrow */ - if ( _iOldY > 0 ) { - x = _iOldX; - y = _iOldY - 1; - } else { - return false; - } - break; - - case 36: /* home */ - x = _iOldX; - y = 0; - break; - - case 33: /* page up */ - x = _iOldX; - y = _iOldY - 10; - if (y < 0) { - y = 0; - } - break; - - case 9: /* tab */ - case 39: /* right arrow */ - if ( _iOldX < iTableWidth-1 ) { - x = _iOldX + 1; - y = _iOldY; - } else if ( _iOldY < iTableHeight-1 ) { - x = 0; - y = _iOldY + 1; - } else { - /* at end of table */ - if ( iKey == 9 && _bForm ) - { - /* If we are in a form, return focus to the 'input' element such that tabbing will - * follow correctly in the browser - */ - _bInputFocused = true; - _nInput.focus(); - - /* This timeout is a little nasty - but IE appears to have some asyhnc behaviour for - * focus - */ - setTimeout( function(){ _bInputFocused = false; }, 0 ); - _bKeyCapture = false; - _fnBlur(); - return true; - } - else - { - return false; - } - } - break; - - case 40: /* down arrow */ - if ( _iOldY < iTableHeight-1 ) { - x = _iOldX; - y = _iOldY + 1; - } else { - return false; - } - break; - - case 35: /* end */ - x = _iOldX; - y = iTableHeight-1; - break; - - case 34: /* page down */ - x = _iOldX; - y = _iOldY+10; - if (y > iTableHeight-1) { - y = iTableHeight-1; - } - break; - - default: /* Nothing we are interested in */ - return true; - } - - _fnSetFocus( _fnCellFromCoords(x, y) ); - return false; - } - - - /* - * Function: _fnCaptureKeys - * Purpose: Start capturing key events for this table - * Returns: - - * Inputs: - - */ - function _fnCaptureKeys( ) - { - if ( !_bKeyCapture ) - { - _bKeyCapture = true; - } - } - - - /* - * Function: _fnReleaseKeys - * Purpose: Stop capturing key events for this table - * Returns: - - * Inputs: - - */ - function _fnReleaseKeys( ) - { - _bKeyCapture = false; - } - - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Support functions - */ - - /* - * Function: _fnCellFromCoords - * Purpose: Calulate the target TD cell from x and y coordinates - * Returns: node: - TD target - * Inputs: int:x - x coordinate - * int:y - y coordinate - */ - function _fnCellFromCoords( x, y ) - { - if ( _oDatatable ) - { - if ( typeof _oDatatable.aoData[ _oDatatable.aiDisplay[ y ] ] != 'undefined' ) - { - return _oDatatable.aoData[ _oDatatable.aiDisplay[ y ] ].nTr.getElementsByTagName('td')[x]; - } - else - { - return null; - } - } - else - { - return $('tr:eq('+y+')>td:eq('+x+')', _nBody )[0]; - } - } - - - /* - * Function: _fnCoordsFromCell - * Purpose: Calculate the x and y position in a table from a TD cell - * Returns: array[2] int: [x, y] - * Inputs: node:n - TD cell of interest - * Notes: Not actually interested in this for DataTables since it might go out of date - */ - function _fnCoordsFromCell( n ) - { - if ( _oDatatable ) - { - return [ - $('td', n.parentNode).index(n), - $('tr', n.parentNode.parentNode).index(n.parentNode) + _oDatatable._iDisplayStart - ]; - } - else - { - return [ - $('td', n.parentNode).index(n), - $('tr', n.parentNode.parentNode).index(n.parentNode) - ]; - } - } - - - /* - * Function: _fnSetScrollTop - * Purpose: Set the vertical scrolling position - * Returns: - - * Inputs: int:iPos - scrolltop - * Notes: This is so nasty, but without browser detection you can't tell which you should set - * So on browsers that support both, the scroll top will be set twice. I can live with - * that :-) - */ - function _fnSetScrollTop( iPos ) - { - document.documentElement.scrollTop = iPos; - document.body.scrollTop = iPos; - } - - - /* - * Function: _fnSetScrollLeft - * Purpose: Set the horizontal scrolling position - * Returns: - - * Inputs: int:iPos - scrollleft - */ - function _fnSetScrollLeft( iPos ) - { - document.documentElement.scrollLeft = iPos; - document.body.scrollLeft = iPos; - } - - - /* - * Function: _fnGetPos - * Purpose: Get the position of an object on the rendered page - * Returns: array[2] int: [left, right] - * Inputs: node:obj - element of interest - */ - function _fnGetPos ( obj ) - { - var iLeft = 0; - var iTop = 0; - - if (obj.offsetParent) - { - iLeft = obj.offsetLeft; - iTop = obj.offsetTop; - obj = obj.offsetParent; - while (obj) - { - iLeft += obj.offsetLeft; - iTop += obj.offsetTop; - obj = obj.offsetParent; - } - } - return [iLeft,iTop]; - } - - - /* - * Function: _fnFindDtCell - * Purpose: Get the coords. of a cell from the DataTables internal information - * Returns: array[2] int: [x, y] coords. or null if not found - * Inputs: node:nTarget - the node of interest - */ - function _fnFindDtCell( nTarget ) - { - for ( var i=0, iLen=_oDatatable.aiDisplay.length ; i