InPanel 1.2.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- inpanel/__init__.py +29 -0
- inpanel/acme.py +289 -0
- inpanel/aliyuncs.py +269 -0
- inpanel/app.py +514 -0
- inpanel/apt.py +223 -0
- inpanel/base.py +200 -0
- inpanel/config.py +139 -0
- inpanel/data/config.ini +29 -0
- inpanel/data/history +5 -0
- inpanel/data/runlogs.ini +12 -0
- inpanel/data/update_info.ini +4 -0
- inpanel/dnf.py +225 -0
- inpanel/lib/__init__.py +9 -0
- inpanel/lib/async_process.py +98 -0
- inpanel/lib/filelock.py +82 -0
- inpanel/lib/magic.py +233 -0
- inpanel/lib/pxssh.py +310 -0
- inpanel/lib/pyDes.py +867 -0
- inpanel/mod/__init__.py +0 -0
- inpanel/mod/apt.py +316 -0
- inpanel/mod/certificate.py +268 -0
- inpanel/mod/config.py +372 -0
- inpanel/mod/cron.py +315 -0
- inpanel/mod/disk.py +322 -0
- inpanel/mod/dnf.py +239 -0
- inpanel/mod/file.py +722 -0
- inpanel/mod/firewall.py +199 -0
- inpanel/mod/firewall_base.py +137 -0
- inpanel/mod/firewall_firewalld.py +170 -0
- inpanel/mod/firewall_iptables.py +176 -0
- inpanel/mod/firewall_macos.py +213 -0
- inpanel/mod/firewall_ufw.py +128 -0
- inpanel/mod/ftp.py +231 -0
- inpanel/mod/httpd.py +1205 -0
- inpanel/mod/lighttpd.py +26 -0
- inpanel/mod/login.py +98 -0
- inpanel/mod/mysql.py +577 -0
- inpanel/mod/named.py +26 -0
- inpanel/mod/nginx.py +2327 -0
- inpanel/mod/package.py +33 -0
- inpanel/mod/package_apt.py +62 -0
- inpanel/mod/package_base.py +77 -0
- inpanel/mod/package_dnf.py +62 -0
- inpanel/mod/package_map.py +366 -0
- inpanel/mod/package_yum.py +64 -0
- inpanel/mod/php.py +289 -0
- inpanel/mod/process.py +291 -0
- inpanel/mod/proftpd.py +26 -0
- inpanel/mod/pureftpd.py +26 -0
- inpanel/mod/query.py +108 -0
- inpanel/mod/server.py +1319 -0
- inpanel/mod/service.py +262 -0
- inpanel/mod/setting.py +228 -0
- inpanel/mod/shell.py +78 -0
- inpanel/mod/ssh.py +280 -0
- inpanel/mod/system.py +220 -0
- inpanel/mod/task.py +1337 -0
- inpanel/mod/ufw.py +14 -0
- inpanel/mod/user.py +306 -0
- inpanel/mod/vsftpd.py +67 -0
- inpanel/mod/yum.py +243 -0
- inpanel/plugins/__init__.py +10 -0
- inpanel/plugins/__pycache__/__init__.cpython-313.pyc +0 -0
- inpanel/plugins/acme/static/index.html +10 -0
- inpanel/plugins/acme/static/index.js +13 -0
- inpanel/plugins/shadowsocks-libev/__pycache__/info.cpython-313.pyc +0 -0
- inpanel/plugins/shadowsocks-libev/info.py +73 -0
- inpanel/plugins/shadowsocks-libev/static/index.html +70 -0
- inpanel/plugins/shadowsocks-libev/static/index.js +18 -0
- inpanel/public/css/global.css +138 -0
- inpanel/public/favicon.ico +0 -0
- inpanel/public/images/alipay.jpg +0 -0
- inpanel/public/images/loading.gif +0 -0
- inpanel/public/images/weixin.jpg +0 -0
- inpanel/public/index.html +94 -0
- inpanel/public/js/controllers/controllers.js +566 -0
- inpanel/public/js/controllers/database.js +590 -0
- inpanel/public/js/controllers/ecs.js +624 -0
- inpanel/public/js/controllers/file.js +940 -0
- inpanel/public/js/controllers/plugins.js +105 -0
- inpanel/public/js/controllers/service.js +1460 -0
- inpanel/public/js/controllers/site.js +1241 -0
- inpanel/public/js/controllers/utils.js +2319 -0
- inpanel/public/js/core.js +221 -0
- inpanel/public/js/directives.js +784 -0
- inpanel/public/js/filters.js +395 -0
- inpanel/public/js/services.js +257 -0
- inpanel/public/lib/angular/1.0.2/angular-resource.min.js +10 -0
- inpanel/public/lib/angular/1.0.2/angular.min.js +158 -0
- inpanel/public/lib/bootstrap/css/bootstrap-theme.css +587 -0
- inpanel/public/lib/bootstrap/css/bootstrap-theme.css.map +1 -0
- inpanel/public/lib/bootstrap/css/bootstrap-theme.min.css +6 -0
- inpanel/public/lib/bootstrap/css/bootstrap-theme.min.css.map +1 -0
- inpanel/public/lib/bootstrap/css/bootstrap.css +6757 -0
- inpanel/public/lib/bootstrap/css/bootstrap.css.map +1 -0
- inpanel/public/lib/bootstrap/css/bootstrap.min.css +6 -0
- inpanel/public/lib/bootstrap/css/bootstrap.min.css.map +1 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
- inpanel/public/lib/bootstrap/img/glyphicons-halflings-white.png +0 -0
- inpanel/public/lib/bootstrap/img/glyphicons-halflings.png +0 -0
- inpanel/public/lib/bootstrap/js/bootstrap.js +2377 -0
- inpanel/public/lib/bootstrap/js/bootstrap.min.js +7 -0
- inpanel/public/lib/bootstrap/js/npm.js +13 -0
- inpanel/public/lib/codemirror/codemirror-compressed.js +1 -0
- inpanel/public/lib/codemirror/codemirror.css +173 -0
- inpanel/public/lib/jquery/jquery-1.12.4.min.js +5 -0
- inpanel/public/lib/md5/md5.js +379 -0
- inpanel/public/lib/md5/md5.min.js +1 -0
- inpanel/public/partials/database/index.html +172 -0
- inpanel/public/partials/database/mysql/dbedit.html +462 -0
- inpanel/public/partials/database/mysql/dbnew.html +348 -0
- inpanel/public/partials/database/mysql/useredit.html +310 -0
- inpanel/public/partials/database/mysql/usernew.html +97 -0
- inpanel/public/partials/directives/message.html +20 -0
- inpanel/public/partials/directives/navbar.html +25 -0
- inpanel/public/partials/directives/selector.html +57 -0
- inpanel/public/partials/directives/srvbase.html +72 -0
- inpanel/public/partials/directives/srvext.html +34 -0
- inpanel/public/partials/directives/srvfile.html +23 -0
- inpanel/public/partials/directives/srvinstall.html +34 -0
- inpanel/public/partials/directives/srvlog.html +23 -0
- inpanel/public/partials/directives/srvminiop.html +28 -0
- inpanel/public/partials/directives/srvuninstall.html +38 -0
- inpanel/public/partials/directives/srvupdate.html +30 -0
- inpanel/public/partials/ecs/account.html +156 -0
- inpanel/public/partials/ecs/ecs.html +198 -0
- inpanel/public/partials/ecs/index.html +40 -0
- inpanel/public/partials/ecs/setings.html +459 -0
- inpanel/public/partials/file/file.html +501 -0
- inpanel/public/partials/file/trash.html +95 -0
- inpanel/public/partials/ftp.html +36 -0
- inpanel/public/partials/log.html +83 -0
- inpanel/public/partials/login.html +79 -0
- inpanel/public/partials/logout.html +22 -0
- inpanel/public/partials/main.html +534 -0
- inpanel/public/partials/plugins/index.html +55 -0
- inpanel/public/partials/plugins/plugins.html +13 -0
- inpanel/public/partials/secure.html +13 -0
- inpanel/public/partials/service/apache.html +147 -0
- inpanel/public/partials/service/cron.html +71 -0
- inpanel/public/partials/service/index.html +293 -0
- inpanel/public/partials/service/iptables.html +40 -0
- inpanel/public/partials/service/lighttpd.html +63 -0
- inpanel/public/partials/service/mariadb.html +113 -0
- inpanel/public/partials/service/memcache.html +36 -0
- inpanel/public/partials/service/minio.html +44 -0
- inpanel/public/partials/service/mongodb.html +44 -0
- inpanel/public/partials/service/mysql.html +113 -0
- inpanel/public/partials/service/named.html +61 -0
- inpanel/public/partials/service/nginx.html +296 -0
- inpanel/public/partials/service/ntp.html +40 -0
- inpanel/public/partials/service/php.html +250 -0
- inpanel/public/partials/service/proftpd.html +59 -0
- inpanel/public/partials/service/pureftpd.html +59 -0
- inpanel/public/partials/service/redis.html +40 -0
- inpanel/public/partials/service/samba.html +58 -0
- inpanel/public/partials/service/sendmail.html +40 -0
- inpanel/public/partials/service/ssh.html +186 -0
- inpanel/public/partials/service/tomcat.html +65 -0
- inpanel/public/partials/service/vsftpd.html +195 -0
- inpanel/public/partials/setting.html +299 -0
- inpanel/public/partials/site/apache/site.html +277 -0
- inpanel/public/partials/site/index.html +344 -0
- inpanel/public/partials/site/nginx/site.html +558 -0
- inpanel/public/partials/sorry.html +19 -0
- inpanel/public/partials/storage/autofm.html +103 -0
- inpanel/public/partials/storage/backup.html +42 -0
- inpanel/public/partials/storage/index.html +360 -0
- inpanel/public/partials/storage/migrate.html +93 -0
- inpanel/public/partials/storage/movedata.html +98 -0
- inpanel/public/partials/storage/remote.html +77 -0
- inpanel/public/partials/utils/cron.html +486 -0
- inpanel/public/partials/utils/firewall.html +266 -0
- inpanel/public/partials/utils/index.html +193 -0
- inpanel/public/partials/utils/network.html +118 -0
- inpanel/public/partials/utils/process.html +239 -0
- inpanel/public/partials/utils/repository.html +373 -0
- inpanel/public/partials/utils/shell.html +28 -0
- inpanel/public/partials/utils/ssl.html +319 -0
- inpanel/public/partials/utils/time.html +109 -0
- inpanel/public/partials/utils/user.html +359 -0
- inpanel/public/robots.txt +2 -0
- inpanel/remote.py +109 -0
- inpanel/templates/file/preview.html +34 -0
- inpanel/templates/index.html +93 -0
- inpanel/utils.py +282 -0
- inpanel/web.py +1811 -0
- inpanel/yum.py +756 -0
- inpanel-1.2.1.dist-info/METADATA +399 -0
- inpanel-1.2.1.dist-info/RECORD +198 -0
- inpanel-1.2.1.dist-info/WHEEL +5 -0
- inpanel-1.2.1.dist-info/entry_points.txt +2 -0
- inpanel-1.2.1.dist-info/licenses/LICENSE +30 -0
- inpanel-1.2.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
<div navbar ng-init="currentItem='utils.cron'"></div>
|
|
2
|
+
<div ng-hide="loaded">
|
|
3
|
+
<div loading></div>
|
|
4
|
+
</div>
|
|
5
|
+
|
|
6
|
+
<div id="main" ng-init="load()" ng-show="loaded">
|
|
7
|
+
<div class="module-header">
|
|
8
|
+
<h3>定时任务管理</h3>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="well" ng-hide="has_cron_service">
|
|
11
|
+
<p>系统检测到 Cron 当前尚未安装。</p>
|
|
12
|
+
<p>是否要开始安装?</p>
|
|
13
|
+
<p><a class="btn btn-default" href="#/service/cron">立即安装</a></p>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="tabbable">
|
|
16
|
+
<ul class="nav nav-tabs">
|
|
17
|
+
<li ng-class="'active' | iftrue:activeTabName=='normal'"><a href="#normal" ng-click="tab_sec('normal')" data-toggle="tab">用户任务</a></li>
|
|
18
|
+
<li ng-class="'active' | iftrue:activeTabName=='system'"><a href="#system" ng-click="tab_sec('system')" data-toggle="tab">系统任务</a></li>
|
|
19
|
+
<li ng-class="'active' | iftrue:activeTabName=='environment'"><a href="#environment" ng-click="tab_sec('environment')" data-toggle="tab">环境变量</a></li>
|
|
20
|
+
<li ng-class="'active' | iftrue:activeTabName=='local'"><a href="#local" ng-click="tab_sec('local')" data-toggle="tab">本地任务</a></li>
|
|
21
|
+
</ul>
|
|
22
|
+
<div class="tab-content">
|
|
23
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='normal'" id="normal">
|
|
24
|
+
<div ng-show="loading.normal">
|
|
25
|
+
<div waiting></div>
|
|
26
|
+
</div>
|
|
27
|
+
<div ng-show="!loading.normal">
|
|
28
|
+
<div class="row">
|
|
29
|
+
<div class="col-md-6 col-sm-6 col-xs-5">
|
|
30
|
+
<h5>用户任务列表</h5>
|
|
31
|
+
</div>
|
|
32
|
+
<div class="col-md-6 col-sm-6 col-xs-7">
|
|
33
|
+
<div class="form-inline pull-right">
|
|
34
|
+
<select class="form-control input-sm" ng-model="cron_normal.user" ng-change="load_normal_list()" ng-options="user for user in users" style="display: inline-block;width: 100px;"></select>
|
|
35
|
+
<div class="btn-group btn-group-sm">
|
|
36
|
+
<button class="btn btn-default" title="刷新列表" ng-disabled="!loaded" ng-click="load_normal_list()"><i class="glyphicon glyphicon-refresh"></i></button>
|
|
37
|
+
<button class="btn btn-default" title="添加任务" ng-disabled="!loaded" ng-click="add_cron_normal()"><i class="glyphicon glyphicon-plus"></i></button>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="table-responsive">
|
|
43
|
+
<table class="table table-hover table-bordered table-condensed">
|
|
44
|
+
<thead>
|
|
45
|
+
<tr>
|
|
46
|
+
<th style="width: 50px;">序号</th>
|
|
47
|
+
<th style="width: 65px;">用户</th>
|
|
48
|
+
<th style="width: 50px;">分钟</th>
|
|
49
|
+
<th style="width: 50px;">小时</th>
|
|
50
|
+
<th style="width: 50px;">天</th>
|
|
51
|
+
<th style="width: 50px;">月份</th>
|
|
52
|
+
<th style="width: 65px;">星期</th>
|
|
53
|
+
<th>命令</th>
|
|
54
|
+
<th style="width: 100px;">操作</th>
|
|
55
|
+
</tr>
|
|
56
|
+
</thead>
|
|
57
|
+
<tbody>
|
|
58
|
+
<tr ng-show="cron_normal.list.length < 1">
|
|
59
|
+
<td colspan="9">当前列表任务为空</td>
|
|
60
|
+
</tr>
|
|
61
|
+
<tr ng-repeat="info in cron_normal.list">
|
|
62
|
+
<td>{{info.id}}</td>
|
|
63
|
+
<td>{{info.user}}</td>
|
|
64
|
+
<td>{{info.minute}}</td>
|
|
65
|
+
<td>{{info.hour}}</td>
|
|
66
|
+
<td>{{info.day}}</td>
|
|
67
|
+
<td>{{info.month}}</td>
|
|
68
|
+
<td>{{info.weekday}}</td>
|
|
69
|
+
<td><code>{{info.command}}</code></td>
|
|
70
|
+
<td>
|
|
71
|
+
<button class="btn btn-default btn-xs" ng-click="cron_detail(info, 'normal')">查看</button>
|
|
72
|
+
<button class="btn btn-default btn-xs" ng-click="cron_del_confirm(info, 'normal')">删除</button>
|
|
73
|
+
</td>
|
|
74
|
+
</tr>
|
|
75
|
+
</tbody>
|
|
76
|
+
</table>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='system'" id="system">
|
|
81
|
+
<div ng-show="loading.system"><div waiting></div></div>
|
|
82
|
+
<div ng-show="!loading.system">
|
|
83
|
+
<div class="row">
|
|
84
|
+
<div class="col-md-6 col-sm-6 col-xs-5">
|
|
85
|
+
<h5>系统任务列表</h5>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="col-md-6 col-sm-6 col-xs-7">
|
|
88
|
+
<div class="form-inline pull-right">
|
|
89
|
+
<select class="form-control input-sm" ng-model="cron_system.user" ng-change="load_system_list()" ng-options="user for user in users" style="display: inline-block;width: 100px;">
|
|
90
|
+
<option value="">全部</option>
|
|
91
|
+
</select>
|
|
92
|
+
<div class="btn-group btn-group-sm">
|
|
93
|
+
<button class="btn btn-default" title="刷新列表" ng-disabled="!loaded" ng-click="load_system_list()"><i class="glyphicon glyphicon-refresh"></i></button>
|
|
94
|
+
<button class="btn btn-default" title="添加任务" ng-disabled="!loaded" ng-click="add_cron_system()"><i class="glyphicon glyphicon-plus"></i></button>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="table-responsive">
|
|
100
|
+
<table class="table table-hover table-bordered table-condensed">
|
|
101
|
+
<thead>
|
|
102
|
+
<tr>
|
|
103
|
+
<th style="width: 50px;">ID</th>
|
|
104
|
+
<th style="width: 50px;">分钟</th>
|
|
105
|
+
<th style="width: 50px;">小时</th>
|
|
106
|
+
<th style="width: 50px;">天</th>
|
|
107
|
+
<th style="width: 50px;">月份</th>
|
|
108
|
+
<th style="width: 65px;">星期</th>
|
|
109
|
+
<th style="width: 65px;">用户</th>
|
|
110
|
+
<th>命令</th>
|
|
111
|
+
<th style="width: 100px;">操作</th>
|
|
112
|
+
</tr>
|
|
113
|
+
</thead>
|
|
114
|
+
<tbody>
|
|
115
|
+
<tr ng-show="cron_system.list.length < 1">
|
|
116
|
+
<td colspan="9">当前列表任务为空</td>
|
|
117
|
+
</tr>
|
|
118
|
+
<tr ng-repeat="info in cron_system.list">
|
|
119
|
+
<td>{{info.id}}</td>
|
|
120
|
+
<td>{{info.minute}}</td>
|
|
121
|
+
<td>{{info.hour}}</td>
|
|
122
|
+
<td>{{info.day}}</td>
|
|
123
|
+
<td>{{info.month}}</td>
|
|
124
|
+
<td>{{info.weekday}}</td>
|
|
125
|
+
<td>{{info.user}}</td>
|
|
126
|
+
<td><code>{{info.command}}</code></td>
|
|
127
|
+
<td>
|
|
128
|
+
<button class="btn btn-default btn-xs" ng-click="cron_detail(info, 'system')">查看</button>
|
|
129
|
+
<button class="btn btn-default btn-xs" ng-click="cron_del_confirm(info, 'system')">删除</button>
|
|
130
|
+
</td>
|
|
131
|
+
</tr>
|
|
132
|
+
</tbody>
|
|
133
|
+
</table>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='environment'" id="environment">
|
|
138
|
+
<div ng-show="loading.environment"><div waiting></div></div>
|
|
139
|
+
<div ng-show="!loading.environment">
|
|
140
|
+
<div class="pull-left">
|
|
141
|
+
<h5>环境变量(未完成)</h5>
|
|
142
|
+
</div>
|
|
143
|
+
<div class="pull-right">
|
|
144
|
+
<div class="btn-group btn-group-sm">
|
|
145
|
+
<button class="btn btn-default" title="刷新列表" ng-disabled="!loaded" ng-click="load_environment_list()"><i class="glyphicon glyphicon-refresh"></i></button>
|
|
146
|
+
<button class="btn btn-default" title="添加环境变量" ng-disabled="!loaded" ng-click="add_environment()"><i class="glyphicon glyphicon-plus"></i></button>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='local'" id="local">
|
|
152
|
+
<div ng-show="loading.local"><div waiting></div></div>
|
|
153
|
+
<div ng-show="!loading.local">
|
|
154
|
+
<div class="pull-left">
|
|
155
|
+
<h5>本地任务(控制面板运行的任务,未完成)</h5>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="pull-right">
|
|
158
|
+
<div class="btn-group btn-group-sm">
|
|
159
|
+
<button class="btn btn-default" title="刷新列表" ng-disabled="!loaded" ng-click="load_local_list()"><i class="glyphicon glyphicon-refresh"></i></button>
|
|
160
|
+
<button class="btn btn-default" title="添加本地任务" ng-disabled="!loaded" ng-click="add_cron_local()"><i class="glyphicon glyphicon-plus"></i></button>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<div id="cron-add-confirm" class="modal fade">
|
|
170
|
+
<div class="modal-dialog">
|
|
171
|
+
<div class="modal-content">
|
|
172
|
+
<div class="modal-header">
|
|
173
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
174
|
+
<h3 class="modal-title" ng-show="task_id">
|
|
175
|
+
<span ng-show="task_level=='normal'">查看普通任务</span>
|
|
176
|
+
<span ng-show="task_level=='system'">查看系统任务</span>
|
|
177
|
+
</h3>
|
|
178
|
+
<h3 class="modal-title" ng-hide="task_id">
|
|
179
|
+
<span ng-show="task_level=='normal'">添加普通任务</span>
|
|
180
|
+
<span ng-show="task_level=='system'">添加系统任务</span>
|
|
181
|
+
</h3>
|
|
182
|
+
</div>
|
|
183
|
+
<div class="modal-body">
|
|
184
|
+
<form class="" onsubmit="return false">
|
|
185
|
+
<div class="form-group">
|
|
186
|
+
<div class="row">
|
|
187
|
+
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
|
|
188
|
+
<label for="common_options">快速设置</label>
|
|
189
|
+
<select id="common_options" class="form-control" ng-model="common_options" ng-change="select_common_option()">
|
|
190
|
+
<option value="">请选择</option>
|
|
191
|
+
<option value="* * * * *">每分钟一次(* * * * *)</option>
|
|
192
|
+
<option value="*/5 * * * *">每五分钟一次(*/5 * * * *)</option>
|
|
193
|
+
<option value="0,30 * * * *">每小时两次(0,30 * * * *)</option>
|
|
194
|
+
<option value="0 * * * *">每小时一次(0 * * * *)</option>
|
|
195
|
+
<option value="0 0,12 * * *">每天两次(0 0,12 * * *)</option>
|
|
196
|
+
<option value="0 0 * * *">每天一次(0 0 * * *)</option>
|
|
197
|
+
<option value="0 0 * * 0">每周一次(0 0 * * 0)</option>
|
|
198
|
+
<option value="0 0 1,15 * *">在每月的第 1 日和第 15 日(0 0 1,15 * *)</option>
|
|
199
|
+
<option value="0 0 1 * *">每月一次(0 0 1 * *)</option>
|
|
200
|
+
<option value="0 0 1 1 *">每年一次(0 0 1 1 *)</option>
|
|
201
|
+
</select>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
|
|
204
|
+
<label for="task_email">电子邮箱</label>
|
|
205
|
+
<input type="text" ng-model="task_email" class="form-control" id="task_email" placeholder="接收通知的电子邮箱地址">
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
</div>
|
|
209
|
+
<div class="form-group">
|
|
210
|
+
<div class="row">
|
|
211
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
212
|
+
<label for="minute">分钟</label>
|
|
213
|
+
<input id="minute" ng-model="cron_time.minute" type="text" class="form-control" size="4" ng-change="input_single_option('minute')" placeholder="分钟">
|
|
214
|
+
</div>
|
|
215
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
216
|
+
<label for="minute_options">快速选择</label>
|
|
217
|
+
<select id="minute_options" ng-model="options.minute" class="form-control" ng-change="select_single_option('minute')">
|
|
218
|
+
<option value="">请选择</option>
|
|
219
|
+
<option value="*">每分钟一次(*)</option>
|
|
220
|
+
<option value="*/2">每两分钟一次(*/2)</option>
|
|
221
|
+
<option value="*/3">每三分钟一次(*/3)</option>
|
|
222
|
+
<option value="*/4">每四分钟一次(*/4)</option>
|
|
223
|
+
<option value="*/5">每五分钟一次(*/5)</option>
|
|
224
|
+
<option value="*/10">每十分钟一次(*/10)</option>
|
|
225
|
+
<option value="*/15">每十五分钟一次(*/15)</option>
|
|
226
|
+
<option value="0,30">每三十分钟一次(0,30)</option>
|
|
227
|
+
<option value="--" disabled>-- 分钟 --</option>
|
|
228
|
+
<option value="0">:00 (整点开始时。) (0)</option>
|
|
229
|
+
<option value="1">:01 (1)</option>
|
|
230
|
+
<option value="2">:02 (2)</option>
|
|
231
|
+
<option value="3">:03 (3)</option>
|
|
232
|
+
<option value="4">:04 (4)</option>
|
|
233
|
+
<option value="5">:05 (5)</option>
|
|
234
|
+
<option value="6">:06 (6)</option>
|
|
235
|
+
<option value="7">:07 (7)</option>
|
|
236
|
+
<option value="8">:08 (8)</option>
|
|
237
|
+
<option value="9">:09 (9)</option>
|
|
238
|
+
<option value="10">:10 (10)</option>
|
|
239
|
+
<option value="11">:11 (11)</option>
|
|
240
|
+
<option value="12">:12 (12)</option>
|
|
241
|
+
<option value="13">:13 (13)</option>
|
|
242
|
+
<option value="14">:14 (14)</option>
|
|
243
|
+
<option value="15">:15 (整点过去一刻钟时。) (15)</option>
|
|
244
|
+
<option value="16">:16 (16)</option>
|
|
245
|
+
<option value="17">:17 (17)</option>
|
|
246
|
+
<option value="18">:18 (18)</option>
|
|
247
|
+
<option value="19">:19 (19)</option>
|
|
248
|
+
<option value="20">:20 (20)</option>
|
|
249
|
+
<option value="21">:21 (21)</option>
|
|
250
|
+
<option value="22">:22 (22)</option>
|
|
251
|
+
<option value="23">:23 (23)</option>
|
|
252
|
+
<option value="24">:24 (24)</option>
|
|
253
|
+
<option value="25">:25 (25)</option>
|
|
254
|
+
<option value="26">:26 (26)</option>
|
|
255
|
+
<option value="27">:27 (27)</option>
|
|
256
|
+
<option value="28">:28 (28)</option>
|
|
257
|
+
<option value="29">:29 (29)</option>
|
|
258
|
+
<option value="30">:30 (整点过去半小时时。) (30)</option>
|
|
259
|
+
<option value="31">:31 (31)</option>
|
|
260
|
+
<option value="32">:32 (32)</option>
|
|
261
|
+
<option value="33">:33 (33)</option>
|
|
262
|
+
<option value="34">:34 (34)</option>
|
|
263
|
+
<option value="35">:35 (35)</option>
|
|
264
|
+
<option value="36">:36 (36)</option>
|
|
265
|
+
<option value="37">:37 (37)</option>
|
|
266
|
+
<option value="38">:38 (38)</option>
|
|
267
|
+
<option value="39">:39 (39)</option>
|
|
268
|
+
<option value="40">:40 (40)</option>
|
|
269
|
+
<option value="41">:41 (41)</option>
|
|
270
|
+
<option value="42">:42 (42)</option>
|
|
271
|
+
<option value="43">:43 (43)</option>
|
|
272
|
+
<option value="44">:44 (44)</option>
|
|
273
|
+
<option value="45">:45 (整点前的一刻钟时。) (45)</option>
|
|
274
|
+
<option value="46">:46 (46)</option>
|
|
275
|
+
<option value="47">:47 (47)</option>
|
|
276
|
+
<option value="48">:48 (48)</option>
|
|
277
|
+
<option value="49">:49 (49)</option>
|
|
278
|
+
<option value="50">:50 (50)</option>
|
|
279
|
+
<option value="51">:51 (51)</option>
|
|
280
|
+
<option value="52">:52 (52)</option>
|
|
281
|
+
<option value="53">:53 (53)</option>
|
|
282
|
+
<option value="54">:54 (54)</option>
|
|
283
|
+
<option value="55">:55 (55)</option>
|
|
284
|
+
<option value="56">:56 (56)</option>
|
|
285
|
+
<option value="57">:57 (57)</option>
|
|
286
|
+
<option value="58">:58 (58)</option>
|
|
287
|
+
<option value="59">:59 (59)</option>
|
|
288
|
+
</select>
|
|
289
|
+
</div>
|
|
290
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
291
|
+
<label for="hour">小时</label>
|
|
292
|
+
<input id="hour" ng-model="cron_time.hour" type="text" class="form-control" size="4" ng-change="input_single_option('hour')" placeholder="小时">
|
|
293
|
+
</div>
|
|
294
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
295
|
+
<label for="hour_options">快速选择</label>
|
|
296
|
+
<select id="hour_options" ng-model="options.hour" class="form-control" ng-change="select_single_option('hour')">
|
|
297
|
+
<option value="">请选择</option>
|
|
298
|
+
<option value="*">每小时(*)</option>
|
|
299
|
+
<option value="*/2">每隔一小时(*/2)</option>
|
|
300
|
+
<option value="*/3">每隔三小时(*/3)</option>
|
|
301
|
+
<option value="*/4">每隔四小时(*/4)</option>
|
|
302
|
+
<option value="*/6">每隔六小时(*/6)</option>
|
|
303
|
+
<option value="0,12">每十二小时(0,12)</option>
|
|
304
|
+
<option value="--" disabled>-- 小时 --</option>
|
|
305
|
+
<option value="0">12:00 a.m.午夜(0)</option>
|
|
306
|
+
<option value="1">1:00 a.m. (1)</option>
|
|
307
|
+
<option value="2">2:00 a.m. (2)</option>
|
|
308
|
+
<option value="3">3:00 a.m. (3)</option>
|
|
309
|
+
<option value="4">4:00 a.m. (4)</option>
|
|
310
|
+
<option value="5">5:00 a.m. (5)</option>
|
|
311
|
+
<option value="6">6:00 a.m. (6)</option>
|
|
312
|
+
<option value="7">7:00 a.m. (7)</option>
|
|
313
|
+
<option value="8">8:00 a.m. (8)</option>
|
|
314
|
+
<option value="9">9:00 a.m. (9)</option>
|
|
315
|
+
<option value="10">10:00 a.m. (10)</option>
|
|
316
|
+
<option value="11">11:00 a.m. (11)</option>
|
|
317
|
+
<option value="12">12:00 p.m.中午(12)</option>
|
|
318
|
+
<option value="13">1:00 p.m. (13)</option>
|
|
319
|
+
<option value="14">2:00 p.m. (14)</option>
|
|
320
|
+
<option value="15">3:00 p.m. (15)</option>
|
|
321
|
+
<option value="16">4:00 p.m. (16)</option>
|
|
322
|
+
<option value="17">5:00 p.m. (17)</option>
|
|
323
|
+
<option value="18">6:00 p.m. (18)</option>
|
|
324
|
+
<option value="19">7:00 p.m. (19)</option>
|
|
325
|
+
<option value="20">8:00 p.m. (20)</option>
|
|
326
|
+
<option value="21">9:00 p.m. (21)</option>
|
|
327
|
+
<option value="22">10:00 p.m. (22)</option>
|
|
328
|
+
<option value="23">11:00 p.m. (23)</option>
|
|
329
|
+
</select>
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
<div class="form-group">
|
|
334
|
+
<div class="row">
|
|
335
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
336
|
+
<label for="day">日</label>
|
|
337
|
+
<input type="text" ng-model="cron_time.day" class="form-control" size="4" id="day" ng-change="input_single_option('day')" placeholder="天">
|
|
338
|
+
</div>
|
|
339
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
340
|
+
<label for="day_options">快速选择</label>
|
|
341
|
+
<select id="day_options" ng-model="options.day" ng-change="select_single_option('day')" class="form-control">
|
|
342
|
+
<option value="">请选择</option>
|
|
343
|
+
<option value="*">每天(*)</option>
|
|
344
|
+
<option value="*/2">每隔一天(*/2)</option>
|
|
345
|
+
<option value="1,15">在每月的第 1 日和第 15 日(1,15)</option>
|
|
346
|
+
<option value="--" disabled>-- 天 --</option>
|
|
347
|
+
<option value="1">1 日 (1)</option>
|
|
348
|
+
<option value="2">2 日 (2)</option>
|
|
349
|
+
<option value="3">3 日 (3)</option>
|
|
350
|
+
<option value="4">4 日 (4)</option>
|
|
351
|
+
<option value="5">5 日 (5)</option>
|
|
352
|
+
<option value="6">6 日 (6)</option>
|
|
353
|
+
<option value="7">7 日 (7)</option>
|
|
354
|
+
<option value="8">8 日 (8)</option>
|
|
355
|
+
<option value="9">9 日 (9)</option>
|
|
356
|
+
<option value="10">10 日 (10)</option>
|
|
357
|
+
<option value="11">11 日 (11)</option>
|
|
358
|
+
<option value="12">12 日 (12)</option>
|
|
359
|
+
<option value="13">13 日 (13)</option>
|
|
360
|
+
<option value="14">14 日 (14)</option>
|
|
361
|
+
<option value="15">15 日 (15)</option>
|
|
362
|
+
<option value="16">16 日 (16)</option>
|
|
363
|
+
<option value="17">17 日 (17)</option>
|
|
364
|
+
<option value="18">18 日 (18)</option>
|
|
365
|
+
<option value="19">19 日 (19)</option>
|
|
366
|
+
<option value="20">20 日 (20)</option>
|
|
367
|
+
<option value="21">21 日 (21)</option>
|
|
368
|
+
<option value="22">22 日 (22)</option>
|
|
369
|
+
<option value="23">23 日 (23)</option>
|
|
370
|
+
<option value="24">24 日 (24)</option>
|
|
371
|
+
<option value="25">25 日 (25)</option>
|
|
372
|
+
<option value="26">26 日 (26)</option>
|
|
373
|
+
<option value="27">27 日 (27)</option>
|
|
374
|
+
<option value="28">28 日 (28)</option>
|
|
375
|
+
<option value="29">29 日 (29)</option>
|
|
376
|
+
<option value="30">30 日 (30)</option>
|
|
377
|
+
<option value="31">31 日 (31)</option>
|
|
378
|
+
</select>
|
|
379
|
+
</div>
|
|
380
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
381
|
+
<label for="month">月份</label>
|
|
382
|
+
<input type="text" ng-model="cron_time.month" class="form-control" size="4" id="month" ng-change="input_single_option('month')" placeholder="月份">
|
|
383
|
+
</div>
|
|
384
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
385
|
+
<label for="month_options">快速选择</label>
|
|
386
|
+
<select id="month_options" ng-model="options.month" ng-change="select_single_option('month')" class="form-control">
|
|
387
|
+
<option value="">请选择</option>
|
|
388
|
+
<option value="*">每月(*)</option>
|
|
389
|
+
<option value="*/2">每隔一月(*/2)</option>
|
|
390
|
+
<option value="*/4">每隔三个月(*/4)</option>
|
|
391
|
+
<option value="1,7">每六个月(1,7)</option>
|
|
392
|
+
<option value="--" disabled>-- 个月 --</option>
|
|
393
|
+
<option value="1">一月(1)</option>
|
|
394
|
+
<option value="2">二月(2)</option>
|
|
395
|
+
<option value="3">三月(3)</option>
|
|
396
|
+
<option value="4">四月(4)</option>
|
|
397
|
+
<option value="5">五月(5)</option>
|
|
398
|
+
<option value="6">六月(6)</option>
|
|
399
|
+
<option value="7">七月(7)</option>
|
|
400
|
+
<option value="8">八月(8)</option>
|
|
401
|
+
<option value="9">九月(9)</option>
|
|
402
|
+
<option value="10">十月(10)</option>
|
|
403
|
+
<option value="11">十一月(11)</option>
|
|
404
|
+
<option value="12">十二月(12)</option>
|
|
405
|
+
</select>
|
|
406
|
+
</div>
|
|
407
|
+
</div>
|
|
408
|
+
</div>
|
|
409
|
+
<div class="form-group">
|
|
410
|
+
<div class="row">
|
|
411
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
412
|
+
<label for="weekday">星期</label>
|
|
413
|
+
<input type="text" ng-model="cron_time.weekday" class="form-control" size="4" id="weekday" ng-change="input_single_option('weekday')" placeholder="星期">
|
|
414
|
+
</div>
|
|
415
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
416
|
+
<label for="weekday_options">快速选择</label>
|
|
417
|
+
<select id="weekday_options" ng-model="options.weekday" class="form-control" ng-change="select_single_option('weekday')">
|
|
418
|
+
<option value="">请选择</option>
|
|
419
|
+
<option value="*">每天(*)</option>
|
|
420
|
+
<option value="1-5">每个工作日(1-5)</option>
|
|
421
|
+
<option value="0,6">每个周末(6,0)</option>
|
|
422
|
+
<option value="1,3,5">每星期一、星期三和星期五(1,3,5)</option>
|
|
423
|
+
<option value="2,4">每星期二和星期四(2,4)</option>
|
|
424
|
+
<option value="--" disabled>--星期--</option>
|
|
425
|
+
<option value="0">星期日(0)</option>
|
|
426
|
+
<option value="1">星期一(1)</option>
|
|
427
|
+
<option value="2">星期二(2)</option>
|
|
428
|
+
<option value="3">星期三(3)</option>
|
|
429
|
+
<option value="4">星期四(4)</option>
|
|
430
|
+
<option value="5">星期五(5)</option>
|
|
431
|
+
<option value="6">星期六(6)</option>
|
|
432
|
+
</select>
|
|
433
|
+
</div>
|
|
434
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
435
|
+
<label for="task_user">用户</label>
|
|
436
|
+
<input type="text" ng-model="task_user" class="form-control" id="task_user" ng-disabled="task_id" placeholder="用户">
|
|
437
|
+
</div>
|
|
438
|
+
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
|
439
|
+
<label for="task_user_options">选择用户</label>
|
|
440
|
+
<select class="form-control" ng-model="task_user" id="task_user_options" ng-disabled="task_id" ng-options="user for user in users">
|
|
441
|
+
<option value="">请选择</option>
|
|
442
|
+
</select>
|
|
443
|
+
</div>
|
|
444
|
+
</div>
|
|
445
|
+
</div>
|
|
446
|
+
<div class="form-group">
|
|
447
|
+
<div class="row">
|
|
448
|
+
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
|
|
449
|
+
<label for="task_time">执行时间</label>
|
|
450
|
+
<input type="text" ng-model="task_time" class="form-control" id="task_time" placeholder="任务执行时间" readonly>
|
|
451
|
+
</div>
|
|
452
|
+
<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8">
|
|
453
|
+
<label for="task_command">执行命令</label>
|
|
454
|
+
<input type="text" ng-model="task_command" class="form-control" size="45" id="task_command" placeholder="任务执行命令">
|
|
455
|
+
</div>
|
|
456
|
+
</div>
|
|
457
|
+
</div>
|
|
458
|
+
</form>
|
|
459
|
+
</div>
|
|
460
|
+
<div class="modal-footer">
|
|
461
|
+
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">取消</button>
|
|
462
|
+
<button class="btn btn-primary" ng-show="task_id" ng-click="update_cron_jobs()">更新</button>
|
|
463
|
+
<button class="btn btn-primary" ng-hide="task_id" ng-click="add_cron_jobs()">添加</button>
|
|
464
|
+
</div>
|
|
465
|
+
</div>
|
|
466
|
+
</div>
|
|
467
|
+
</div>
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
<div id="cron-delete-confirm" class="modal fade">
|
|
471
|
+
<div class="modal-dialog" role="document">
|
|
472
|
+
<div class="modal-content">
|
|
473
|
+
<div class="modal-header">
|
|
474
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
475
|
+
<h3 class="modal-title">删除任务 ?</h3>
|
|
476
|
+
</div>
|
|
477
|
+
<div class="modal-body">
|
|
478
|
+
<p>确认删除当前任务?</p>
|
|
479
|
+
</div>
|
|
480
|
+
<div class="modal-footer">
|
|
481
|
+
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">取消</button>
|
|
482
|
+
<button class="btn btn-primary" ng-click="del_cron_jobs()">确定</button>
|
|
483
|
+
</div>
|
|
484
|
+
</div>
|
|
485
|
+
</div>
|
|
486
|
+
</div>
|