sbd-npm 1.4.6 → 1.4.8
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.
- package/package.json +1 -1
- package/status.js +64 -23
- package/util.js +1 -1
package/package.json
CHANGED
package/status.js
CHANGED
@@ -3,6 +3,8 @@ $(function () {
|
|
3
3
|
let Status = {
|
4
4
|
|
5
5
|
tab_token: "status_nav",
|
6
|
+
task_status: 0,
|
7
|
+
task_timer_id: 0,
|
6
8
|
data: {},
|
7
9
|
|
8
10
|
fetch_data: function () {
|
@@ -161,7 +163,7 @@ $(function () {
|
|
161
163
|
if (!document.getElementById("process_div_body")) {
|
162
164
|
Util.init_table_skeleton({
|
163
165
|
"element_id": "process_div",
|
164
|
-
"caption": '<caption class="text-right" id="process_num"></caption>',
|
166
|
+
"caption": '<caption class="text-right">共 <span class="label label-info" id="process_num"></span> 进程,<input checked type="checkbox" id="is_py_process"> 只显示Python进程</caption>',
|
165
167
|
"head_cols": [
|
166
168
|
{"name": "进程ID", "table_sort": 1},
|
167
169
|
{"name": "进程名", "table_sort": 1},
|
@@ -173,24 +175,30 @@ $(function () {
|
|
173
175
|
{"name": "创建时间", "table_sort": 1},
|
174
176
|
]
|
175
177
|
});
|
178
|
+
$("#is_py_process").click(function () {
|
179
|
+
Util.show_loading();
|
180
|
+
Util.set_table_loading("process_div_body");
|
181
|
+
Status.handle_process();
|
182
|
+
});
|
176
183
|
}
|
177
|
-
|
178
|
-
|
184
|
+
let is_py_process = $("#is_py_process").prop("checked") ? "1" : "0";
|
185
|
+
Util.post(location.pathname, {active_div: localStorage[Status.tab_token], is_py_process: is_py_process}, function (j) {
|
186
|
+
let html = [], process_num = 0;
|
179
187
|
j["data"].forEach(function (item) {
|
180
188
|
process_num++;
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
189
|
+
html.push("<tr>");
|
190
|
+
html.push("<td>", item["pid"], "</td>");
|
191
|
+
html.push("<td>", item["name"], "</td>");
|
192
|
+
html.push("<td>", item["username"], "</td>");
|
193
|
+
html.push("<td>", item["status"], "</td>");
|
194
|
+
html.push("<td data-val='", item["rss"], "'>", Util.trans_byte_size(item["rss"]), "</td>");
|
195
|
+
html.push("<td data-val='", item["vms"], "'>", Util.trans_byte_size(item["vms"]), "</td>");
|
196
|
+
html.push("<td title='", item["cmdline"], "'>", Util.sub_str(item["cmdline"], 60), "</td>");
|
197
|
+
html.push("<td>", Util.seconds_to_format(item["create_time"]), "</td>");
|
198
|
+
html.push("</tr>");
|
191
199
|
});
|
192
|
-
$("#process_div_body").html(
|
193
|
-
$("#process_num").html(
|
200
|
+
$("#process_div_body").html(html.join(""));
|
201
|
+
$("#process_num").html(process_num);
|
194
202
|
Util.hide_tips();
|
195
203
|
});
|
196
204
|
},
|
@@ -394,10 +402,11 @@ $(function () {
|
|
394
402
|
ht_html.push('<div class="page-header" style="margin-top: 15px; text-align: center;">');
|
395
403
|
ht_html.push('<div class="form-inline">');
|
396
404
|
ht_html.push('<div class="form-group">');
|
397
|
-
ht_html.push('<input data-toggle="tooltip" data-placement="top" title="要执行的任务内容" placeholder="要执行的任务内容" value="" type="text" class="form-control" id="task_content" autocomplete="off"
|
405
|
+
ht_html.push('<input data-toggle="tooltip" data-placement="top" title="要执行的任务内容" placeholder="要执行的任务内容" value="" type="text" class="form-control" id="task_content" autocomplete="off" />');
|
398
406
|
ht_html.push('</div> ');
|
399
407
|
ht_html.push('<button class="btn btn-default" id="task_add">添加任务</button>');
|
400
|
-
ht_html.push('<
|
408
|
+
ht_html.push('<input type="checkbox" id="is_refresh_task"> 定时刷新数据');
|
409
|
+
ht_html.push(' <span id="task_tips"></span>');
|
401
410
|
ht_html.push('</div>');
|
402
411
|
ht_html.push('<form class="form-horizontal" style="margin-top: 10px;">');
|
403
412
|
ht_html.push('<div class="form-group" id="task_result_zone"></div>');
|
@@ -413,12 +422,19 @@ $(function () {
|
|
413
422
|
$("#task_tips").html("");
|
414
423
|
Util.post(location.pathname, {active_div: "task_add", "task_content": task_content}, function (j) {
|
415
424
|
if (j["code"] && j["code"] === 1) {
|
416
|
-
|
425
|
+
Status.task_status = 1;
|
426
|
+
$("#task_add").html('任务处理中...').removeClass("btn-default").addClass("btn-warning");
|
417
427
|
if (!document.getElementById("task_result")) {
|
418
428
|
$("#task_result_zone").html('<textarea rows="20" id="task_result" class="form-control"></textarea>');
|
419
429
|
}
|
420
430
|
$("#task_result").val("任务 `" + task_content + "` 处理中...");
|
431
|
+
if ($("#is_refresh_task").prop("checked")) {
|
432
|
+
Status.task_timer_id = setTimeout(function () {
|
433
|
+
Status.fetch_task_data();
|
434
|
+
}, 5678);
|
435
|
+
}
|
421
436
|
} else {
|
437
|
+
Status.task_status = 0;
|
422
438
|
if (j["code"] && j["code"] === 2) {
|
423
439
|
$("#task_tips").html("<b class='text-danger'>已添加新任务在处理中!</b>");
|
424
440
|
} else if (j["code"] && j["code"] === 3) {
|
@@ -436,21 +452,41 @@ $(function () {
|
|
436
452
|
}
|
437
453
|
return false;
|
438
454
|
});
|
455
|
+
$("#is_refresh_task").click(function() {
|
456
|
+
if (Status.task_status > 0) {
|
457
|
+
clearTimeout(Status.task_timer_id);
|
458
|
+
if ($("#is_refresh_task").prop("checked")) {
|
459
|
+
Status.fetch_task_data();
|
460
|
+
}
|
461
|
+
}
|
462
|
+
});
|
439
463
|
}
|
464
|
+
Status.fetch_task_data();
|
465
|
+
},
|
466
|
+
|
467
|
+
fetch_task_data: function() {
|
440
468
|
Util.post(location.pathname, {active_div: localStorage[Status.tab_token]}, function (j) {
|
441
469
|
if (j["code"] && j["code"] > 1 && j["content"]) {
|
442
470
|
let ta_obj = $("#task_add");
|
443
471
|
let tc_obj = $("#task_content");
|
444
472
|
tc_obj.val(j["content"]);
|
445
473
|
if (j["code"] === 4) {
|
446
|
-
|
447
|
-
|
474
|
+
if (Status.task_status > 0) {
|
475
|
+
clearTimeout(Status.task_timer_id);
|
476
|
+
}
|
477
|
+
Status.task_status = 0;
|
478
|
+
ta_obj.html('添加任务').prop('disabled', false).removeClass("btn-warning").addClass("btn-default");
|
448
479
|
tc_obj.prop('disabled', false);
|
449
|
-
$("#task_tips").html("<b class='text-success'>任务 `" + j["content"] + "`
|
480
|
+
$("#task_tips").html("<b class='text-success'>任务 `" + j["content"] + "` DONE</b>");
|
450
481
|
} else {
|
451
|
-
|
452
|
-
ta_obj.prop('disabled', true);
|
482
|
+
Status.task_status = 1;
|
483
|
+
ta_obj.html('任务处理中...').prop('disabled', true).removeClass("btn-default").addClass("btn-warning");
|
453
484
|
tc_obj.prop('disabled', true);
|
485
|
+
if ($("#is_refresh_task").prop("checked")) {
|
486
|
+
Status.task_timer_id = setTimeout(function () {
|
487
|
+
Status.fetch_task_data();
|
488
|
+
}, 3456);
|
489
|
+
}
|
454
490
|
}
|
455
491
|
if (!document.getElementById("task_result")) {
|
456
492
|
$("#task_result_zone").html('<textarea rows="20" id="task_result" class="form-control"></textarea>');
|
@@ -464,6 +500,11 @@ $(function () {
|
|
464
500
|
tr_obj.val("任务 `" + j["content"] + "` 处理中...");
|
465
501
|
}
|
466
502
|
}
|
503
|
+
} else {
|
504
|
+
if (Status.task_status > 0) {
|
505
|
+
clearTimeout(Status.task_timer_id);
|
506
|
+
}
|
507
|
+
Status.task_status = 0;
|
467
508
|
}
|
468
509
|
Util.hide_tips();
|
469
510
|
});
|
package/util.js
CHANGED
@@ -3271,7 +3271,7 @@ const Util = {
|
|
3271
3271
|
pack_fund_rating: function (item) {
|
3272
3272
|
if (item["rating"]) {
|
3273
3273
|
let rating = item["rating"];
|
3274
|
-
if (rating.includes("买入") || rating.includes("增持")) {
|
3274
|
+
if (rating.includes("买入") || rating.includes("增持") || rating.includes("推荐")) {
|
3275
3275
|
return "<b class='text-danger'>" + rating + "</b>";
|
3276
3276
|
} else if (rating.includes("卖出") || rating.includes("减持")) {
|
3277
3277
|
return "<b class='text-success'>" + rating + "</b>";
|