Pārlūkot izejas kodu

1、支持任务失败邮件报警;

xueli.xue 9 gadus atpakaļ
vecāks
revīzija
1b6b8c2038
30 mainītis faili ar 340 papildinājumiem un 29 dzēšanām
  1. 1 0
      README.md
  2. 1 1
      xxl-job-admin/src/main/java/com/xxl/job/core/thread/JobMonitorHelper.java
  3. 2 1
      xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl
  4. 7 0
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/AdminLTE-local.min.css
  5. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2
  6. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2
  7. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2
  8. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2
  9. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2
  10. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY[0].woff2
  11. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2
  12. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2
  13. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2
  14. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2
  15. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2
  16. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2
  17. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2
  18. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2
  19. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2
  20. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2
  21. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2
  22. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2
  23. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2
  24. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2
  25. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2
  26. Binārs
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2
  27. 168 0
      xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/local.google.fonts.css
  28. 15 0
      xxl-job-admin/src/main/webapp/static/js/common.1.js
  29. 29 27
      xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js
  30. 117 0
      xxl-job-admin/src/main/webapp/static/plugins/jquery/jquery.cookie.js

+ 1 - 0
README.md Parādīt failu

@@ -16,6 +16,7 @@ git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
16 16
 	6、任务串行执行;
17 17
 	7、支持任务执行日志;
18 18
 	8、支持自定义参数;
19
+	9、支持任务失败次数超阈值邮件报警;
19 20
 
20 21
 # 新版本 V1.2.x,新特性
21 22
 	1、支持任务分组;

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/core/thread/JobMonitorHelper.java Parādīt failu

@@ -57,7 +57,7 @@ public class JobMonitorHelper {
57 57
 								XxlJobInfo info = DynamicSchedulerUtil.xxlJobInfoDao.load(log.getJobGroup(), log.getJobName());
58 58
 								if (count >= info.getAlarmThreshold()) {
59 59
 									MailUtil.sendMail(info.getAlarmEmail(), "《调度平台中心-监控报警》", 
60
-											MessageFormat.format("调度任务[{0}]失败报警", monotorKey), false, null);
60
+											MessageFormat.format("调度任务[{0}]失败报警,连续失败次数:", monotorKey, count), false, null);
61 61
 									countMap.remove(monotorKey);
62 62
 								}
63 63
 							}

+ 2 - 1
xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl Parādīt failu

@@ -13,7 +13,7 @@
13 13
     <!-- <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css"> -->
14 14
     <link rel="stylesheet" href="${request.contextPath}/static/plugins/ionicons-2.0.1/css/ionicons.min.css">
15 15
     <!-- Theme style -->
16
-    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/AdminLTE.min.css">
16
+    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/AdminLTE-local.min.css">
17 17
     <!-- AdminLTE Skins. Choose a skin from the css/skins folder instead of downloading all of them to reduce the load. -->
18 18
     <link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/skins/_all-skins.min.css">
19 19
       
@@ -40,6 +40,7 @@
40 40
 
41 41
     <!-- scrollup -->
42 42
     <script src="${request.contextPath}/static/plugins/scrollup/jquery.scrollUp.min.js"></script>
43
+    <script src="${request.contextPath}/static/plugins/jquery/jquery.cookie.js"></script>
43 44
     <script src="${request.contextPath}/static/js/common.1.js"></script>
44 45
 </#macro>
45 46
 

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 7 - 0
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/AdminLTE-local.min.css


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY[0].woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2 Parādīt failu


Binārs
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2 Parādīt failu


+ 168 - 0
xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/local.google.fonts.css Parādīt failu

@@ -0,0 +1,168 @@
1
+/* vietnamese */
2
+@font-face {
3
+  font-family: 'Source Sans Pro';
4
+  font-style: normal;
5
+  font-weight: 300;
6
+  src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url('fonts/toadOcfmlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2') format('woff2');
7
+  unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
8
+}
9
+/* latin-ext */
10
+@font-face {
11
+  font-family: 'Source Sans Pro';
12
+  font-style: normal;
13
+  font-weight: 300;
14
+  src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url('fonts/toadOcfmlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2') format('woff2');
15
+  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
16
+}
17
+/* latin */
18
+@font-face {
19
+  font-family: 'Source Sans Pro';
20
+  font-style: normal;
21
+  font-weight: 300;
22
+  src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url('fonts/toadOcfmlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2') format('woff2');
23
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
24
+}
25
+/* vietnamese */
26
+@font-face {
27
+  font-family: 'Source Sans Pro';
28
+  font-style: normal;
29
+  font-weight: 400;
30
+  src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url('fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2') format('woff2');
31
+  unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
32
+}
33
+/* latin-ext */
34
+@font-face {
35
+  font-family: 'Source Sans Pro';
36
+  font-style: normal;
37
+  font-weight: 400;
38
+  src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url('fonts/ODelI1aHBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2') format('woff2');
39
+  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
40
+}
41
+/* latin */
42
+@font-face {
43
+  font-family: 'Source Sans Pro';
44
+  font-style: normal;
45
+  font-weight: 400;
46
+  src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url('fonts/ODelI1aHBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2') format('woff2');
47
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
48
+}
49
+/* vietnamese */
50
+@font-face {
51
+  font-family: 'Source Sans Pro';
52
+  font-style: normal;
53
+  font-weight: 600;
54
+  src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), url('fonts/toadOcfmlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2') format('woff2');
55
+  unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
56
+}
57
+/* latin-ext */
58
+@font-face {
59
+  font-family: 'Source Sans Pro';
60
+  font-style: normal;
61
+  font-weight: 600;
62
+  src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), url('fonts/toadOcfmlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2') format('woff2');
63
+  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
64
+}
65
+/* latin */
66
+@font-face {
67
+  font-family: 'Source Sans Pro';
68
+  font-style: normal;
69
+  font-weight: 600;
70
+  src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), url('fonts/toadOcfmlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2') format('woff2');
71
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
72
+}
73
+/* vietnamese */
74
+@font-face {
75
+  font-family: 'Source Sans Pro';
76
+  font-style: normal;
77
+  font-weight: 700;
78
+  src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), url('fonts/toadOcfmlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2') format('woff2');
79
+  unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
80
+}
81
+/* latin-ext */
82
+@font-face {
83
+  font-family: 'Source Sans Pro';
84
+  font-style: normal;
85
+  font-weight: 700;
86
+  src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), url('fonts/toadOcfmlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2') format('woff2');
87
+  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
88
+}
89
+/* latin */
90
+@font-face {
91
+  font-family: 'Source Sans Pro';
92
+  font-style: normal;
93
+  font-weight: 700;
94
+  src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), url('fonts/toadOcfmlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2') format('woff2');
95
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
96
+}
97
+/* vietnamese */
98
+@font-face {
99
+  font-family: 'Source Sans Pro';
100
+  font-style: italic;
101
+  font-weight: 300;
102
+  src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightIt'), url('fonts/fpTVHK8qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2') format('woff2');
103
+  unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
104
+}
105
+/* latin-ext */
106
+@font-face {
107
+  font-family: 'Source Sans Pro';
108
+  font-style: italic;
109
+  font-weight: 300;
110
+  src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightIt'), url('fonts/fpTVHK8qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2') format('woff2');
111
+  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
112
+}
113
+/* latin */
114
+@font-face {
115
+  font-family: 'Source Sans Pro';
116
+  font-style: italic;
117
+  font-weight: 300;
118
+  src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightIt'), url('fonts/fpTVHK8qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2') format('woff2');
119
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
120
+}
121
+/* vietnamese */
122
+@font-face {
123
+  font-family: 'Source Sans Pro';
124
+  font-style: italic;
125
+  font-weight: 400;
126
+  src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), url('fonts/M2Jd71oPJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2') format('woff2');
127
+  unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
128
+}
129
+/* latin-ext */
130
+@font-face {
131
+  font-family: 'Source Sans Pro';
132
+  font-style: italic;
133
+  font-weight: 400;
134
+  src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), url('fonts/M2Jd71oPJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2') format('woff2');
135
+  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
136
+}
137
+/* latin */
138
+@font-face {
139
+  font-family: 'Source Sans Pro';
140
+  font-style: italic;
141
+  font-weight: 400;
142
+  src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), url('fonts/M2Jd71oPJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2') format('woff2');
143
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
144
+}
145
+/* vietnamese */
146
+@font-face {
147
+  font-family: 'Source Sans Pro';
148
+  font-style: italic;
149
+  font-weight: 600;
150
+  src: local('Source Sans Pro Semibold Italic'), local('SourceSansPro-SemiboldIt'), url('fonts/fpTVHK8qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2') format('woff2');
151
+  unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
152
+}
153
+/* latin-ext */
154
+@font-face {
155
+  font-family: 'Source Sans Pro';
156
+  font-style: italic;
157
+  font-weight: 600;
158
+  src: local('Source Sans Pro Semibold Italic'), local('SourceSansPro-SemiboldIt'), url('fonts/fpTVHK8qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2') format('woff2');
159
+  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
160
+}
161
+/* latin */
162
+@font-face {
163
+  font-family: 'Source Sans Pro';
164
+  font-style: italic;
165
+  font-weight: 600;
166
+  src: local('Source Sans Pro Semibold Italic'), local('SourceSansPro-SemiboldIt'), url('fonts/fpTVHK8qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2') format('woff2');
167
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
168
+}

+ 15 - 0
xxl-job-admin/src/main/webapp/static/js/common.1.js Parādīt failu

@@ -15,6 +15,7 @@ $(function(){
15 15
 		scrollImg: true
16 16
 	});
17 17
 	
18
+	// logout
18 19
 	$("#logoutBtn").click(function(){
19 20
 		$.post(base_url + "/logout", function(data, status) {
20 21
 			if (data.code == "S") {
@@ -28,4 +29,18 @@ $(function(){
28 29
 		});
29 30
 	});
30 31
 	
32
+	// adminlte_settings
33
+	$('.sidebar-toggle').click(function(){
34
+		var adminlte_settings = $.cookie('adminlte_settings');
35
+		if ('off' == adminlte_settings) {
36
+			adminlte_settings = 'on';
37
+		} else {
38
+			adminlte_settings = 'off';
39
+		}
40
+		$.cookie('adminlte_settings', adminlte_settings, { expires: 7 });	//$.cookie('the_cookie', '', { expires: -1 });
41
+	});
42
+	var adminlte_settings = $.cookie('adminlte_settings');
43
+	if (adminlte_settings == 'off') {
44
+		$('body').addClass('sidebar-collapse');
45
+	}
31 46
 });

+ 29 - 27
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js Parādīt failu

@@ -1,5 +1,33 @@
1 1
 $(function() {
2 2
 
3
+	// 过滤时间
4
+	$('#filterTime').daterangepicker({
5
+		timePicker: true, 			//是否显示小时和分钟
6
+		timePickerIncrement: 10, 	//时间的增量,单位为分钟
7
+		timePicker12Hour : false,	//是否使用12小时制来显示时间
8
+		format: 'YYYY-MM-DD HH:mm:ss',
9
+		separator : ' - ',
10
+		ranges : {
11
+            '最近1小时': [moment().subtract('hours',1), moment()],
12
+            '今日': [moment().startOf('day'), moment()],
13
+            '昨日': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')],
14
+            '最近7日': [moment().subtract('days', 6), moment()],
15
+            '最近30日': [moment().subtract('days', 29), moment()]
16
+        },
17
+        opens : 'left', //日期选择框的弹出位置
18
+        locale : {
19
+        	customRangeLabel : '自定义',
20
+            applyLabel : '确定',
21
+            cancelLabel : '取消',
22
+            fromLabel : '起始时间',
23
+            toLabel : '结束时间',
24
+            daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ],
25
+            monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月' ],
26
+            firstDay : 1
27
+        }
28
+	});
29
+	$('#filterTime').val( moment(new Date()).format("YYYY-MM-DD 00:00:00") + ' - ' + moment(new Date()).format("YYYY-MM-DD HH:mm:ss") );
30
+	
3 31
 	// init date tables
4 32
 	var logTable = $("#joblog_list").dataTable({
5 33
 		"deferRender": true,
@@ -101,33 +129,7 @@ $(function() {
101 129
 		ComAlertTec.show(msg);
102 130
 	});
103 131
 	
104
-	// 过滤时间
105
-	$('#filterTime').daterangepicker({
106
-		timePicker: true, 			//是否显示小时和分钟
107
-		timePickerIncrement: 10, 	//时间的增量,单位为分钟
108
-		timePicker12Hour : false,	//是否使用12小时制来显示时间
109
-		format: 'YYYY-MM-DD HH:mm:ss',
110
-		separator : ' - ',
111
-		ranges : {
112
-            '最近1小时': [moment().subtract('hours',1), moment()],
113
-            '今日': [moment().startOf('day'), moment()],
114
-            '昨日': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')],
115
-            '最近7日': [moment().subtract('days', 6), moment()],
116
-            '最近30日': [moment().subtract('days', 29), moment()]
117
-        },
118
-        opens : 'left', //日期选择框的弹出位置
119
-        locale : {
120
-        	customRangeLabel : '自定义',
121
-            applyLabel : '确定',
122
-            cancelLabel : '取消',
123
-            fromLabel : '起始时间',
124
-            toLabel : '结束时间',
125
-            daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ],
126
-            monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月' ],
127
-            firstDay : 1
128
-        }
129
-	});
130
-	$('#filterTime').val( moment(new Date()).format("YYYY-MM-DD 00:00:00") + ' - ' + moment(new Date()).format("YYYY-MM-DD HH:mm:ss") );
132
+	
131 133
 	
132 134
 	// 搜索按钮
133 135
 	$('#searchBtn').on('click', function(){

+ 117 - 0
xxl-job-admin/src/main/webapp/static/plugins/jquery/jquery.cookie.js Parādīt failu

@@ -0,0 +1,117 @@
1
+/*!
2
+ * jQuery Cookie Plugin v1.4.1
3
+ * https://github.com/carhartl/jquery-cookie
4
+ *
5
+ * Copyright 2013 Klaus Hartl
6
+ * Released under the MIT license
7
+ */
8
+(function (factory) {
9
+	if (typeof define === 'function' && define.amd) {
10
+		// AMD
11
+		define(['jquery'], factory);
12
+	} else if (typeof exports === 'object') {
13
+		// CommonJS
14
+		factory(require('jquery'));
15
+	} else {
16
+		// Browser globals
17
+		factory(jQuery);
18
+	}
19
+}(function ($) {
20
+
21
+	var pluses = /\+/g;
22
+
23
+	function encode(s) {
24
+		return config.raw ? s : encodeURIComponent(s);
25
+	}
26
+
27
+	function decode(s) {
28
+		return config.raw ? s : decodeURIComponent(s);
29
+	}
30
+
31
+	function stringifyCookieValue(value) {
32
+		return encode(config.json ? JSON.stringify(value) : String(value));
33
+	}
34
+
35
+	function parseCookieValue(s) {
36
+		if (s.indexOf('"') === 0) {
37
+			// This is a quoted cookie as according to RFC2068, unescape...
38
+			s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
39
+		}
40
+
41
+		try {
42
+			// Replace server-side written pluses with spaces.
43
+			// If we can't decode the cookie, ignore it, it's unusable.
44
+			// If we can't parse the cookie, ignore it, it's unusable.
45
+			s = decodeURIComponent(s.replace(pluses, ' '));
46
+			return config.json ? JSON.parse(s) : s;
47
+		} catch(e) {}
48
+	}
49
+
50
+	function read(s, converter) {
51
+		var value = config.raw ? s : parseCookieValue(s);
52
+		return $.isFunction(converter) ? converter(value) : value;
53
+	}
54
+
55
+	var config = $.cookie = function (key, value, options) {
56
+
57
+		// Write
58
+
59
+		if (value !== undefined && !$.isFunction(value)) {
60
+			options = $.extend({}, config.defaults, options);
61
+
62
+			if (typeof options.expires === 'number') {
63
+				var days = options.expires, t = options.expires = new Date();
64
+				t.setTime(+t + days * 864e+5);
65
+			}
66
+
67
+			return (document.cookie = [
68
+				encode(key), '=', stringifyCookieValue(value),
69
+				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
70
+				options.path    ? '; path=' + options.path : '',
71
+				options.domain  ? '; domain=' + options.domain : '',
72
+				options.secure  ? '; secure' : ''
73
+			].join(''));
74
+		}
75
+
76
+		// Read
77
+
78
+		var result = key ? undefined : {};
79
+
80
+		// To prevent the for loop in the first place assign an empty array
81
+		// in case there are no cookies at all. Also prevents odd result when
82
+		// calling $.cookie().
83
+		var cookies = document.cookie ? document.cookie.split('; ') : [];
84
+
85
+		for (var i = 0, l = cookies.length; i < l; i++) {
86
+			var parts = cookies[i].split('=');
87
+			var name = decode(parts.shift());
88
+			var cookie = parts.join('=');
89
+
90
+			if (key && key === name) {
91
+				// If second argument (value) is a function it's a converter...
92
+				result = read(cookie, value);
93
+				break;
94
+			}
95
+
96
+			// Prevent storing a cookie that we couldn't decode.
97
+			if (!key && (cookie = read(cookie)) !== undefined) {
98
+				result[name] = cookie;
99
+			}
100
+		}
101
+
102
+		return result;
103
+	};
104
+
105
+	config.defaults = {};
106
+
107
+	$.removeCookie = function (key, options) {
108
+		if ($.cookie(key) === undefined) {
109
+			return false;
110
+		}
111
+
112
+		// Must not alter options, thus extending a fresh object...
113
+		$.cookie(key, '', $.extend({}, options, { expires: -1 }));
114
+		return !$.cookie(key);
115
+	};
116
+
117
+}));