diff --git a/apps/ops/models/adhoc.py b/apps/ops/models/adhoc.py
index 3e119c98f..cedbbb4ff 100644
--- a/apps/ops/models/adhoc.py
+++ b/apps/ops/models/adhoc.py
@@ -168,7 +168,10 @@ class AdHoc(models.Model):
@property
def tasks(self):
- return json.loads(self._tasks)
+ try:
+ return json.loads(self._tasks)
+ except:
+ return []
@tasks.setter
def tasks(self, item):
diff --git a/apps/ops/templates/ops/adhoc_detail.html b/apps/ops/templates/ops/adhoc_detail.html
index abbb16c04..8b340b808 100644
--- a/apps/ops/templates/ops/adhoc_detail.html
+++ b/apps/ops/templates/ops/adhoc_detail.html
@@ -186,6 +186,19 @@
- {% include 'users/_user_update_pk_modal.html' %}
+{% endblock %}
+{% block custom_foot_js %}
+
{% endblock %}
diff --git a/apps/ops/templates/ops/adhoc_history_detail.html b/apps/ops/templates/ops/adhoc_history_detail.html
index b8a48d4e5..5091470d5 100644
--- a/apps/ops/templates/ops/adhoc_history_detail.html
+++ b/apps/ops/templates/ops/adhoc_history_detail.html
@@ -19,7 +19,7 @@
{% trans 'Run history detail' %}
- {% trans 'Output' %}
+ {% trans 'Output' %}
@@ -141,4 +141,14 @@
{% include 'users/_user_update_pk_modal.html' %}
{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
diff --git a/apps/ops/templates/ops/task_adhoc.html b/apps/ops/templates/ops/task_adhoc.html
index 82c25e667..34e0797e6 100644
--- a/apps/ops/templates/ops/task_adhoc.html
+++ b/apps/ops/templates/ops/task_adhoc.html
@@ -25,7 +25,7 @@
{% trans 'Run history' %}
- {% trans 'Last run output' %}
+ {% trans 'Last run output' %}
@@ -78,52 +78,60 @@
{% endblock %}
{% block custom_foot_js %}
-
+ $(td).html(cellData);
+ }},
+ {targets: 2, createdCell: function (td, cellData, rowData) {
+ var dataLength = cellData.length;
+ $(td).html(dataLength);
+ }},
+ {targets: 4, createdCell: function (td, cellData) {
+ if (!cellData) {
+ $(td).html("Admin")
+ } else {
+ $(td).html(cellData)
+ }
+ }},
+ {targets: 5, createdCell: function (td, cellData, rowData) {
+ if (!cellData) {
+ $(td).html("")
+ } else {
+ $(td).html(cellData.user)
+ }
+ }},
+ {targets: 6, createdCell: function (td, cellData) {
+ var d = new Date(cellData);
+ $(td).html(d.toLocaleString())
+ }},
+ {targets: 7, createdCell: function (td, cellData, rowData) {
+ var detail_btn = '{% trans "Detail" %}'.replace('{{ DEFAULT_PK }}', cellData);
+ if (cellData) {
+ $(td).html(detail_btn);
+ }
+ }}
+ ],
+ ajax_url: '{% url "api-ops:adhoc-list" %}?task={{ object.pk }}',
+ columns: [{data: function(){return ""}}, {data: "short_id" }, {data: "hosts"}, {data: "pattern"},
+ {data: "run_as"}, {data: "become"}, {data: "date_created"}, {data: "id"}]
+ };
+ jumpserver.initDataTable(options);
+}).on('click', '.celery-task-log', function () {
+ var history_pk = "{{ object.latest_history.pk }}";
+ if (!history_pk) {
+ alert("没有运行历史");
+ return
+ }
+ var url = '{% url 'ops:celery-task-log' pk=DEFAULT_PK %}'.replace('{{ DEFAULT_PK }}', history_pk);
+ window.open(url, '', 'width=800,height=600,left=400,top=400')
+})
+
{% endblock %}
diff --git a/apps/ops/templates/ops/task_detail.html b/apps/ops/templates/ops/task_detail.html
index d8f9520be..bbeaad660 100644
--- a/apps/ops/templates/ops/task_detail.html
+++ b/apps/ops/templates/ops/task_detail.html
@@ -26,7 +26,7 @@
{% trans 'Run history' %}
- {% trans 'Last run output' %}
+ {% trans 'Last run output' %}
@@ -165,4 +165,19 @@
{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
diff --git a/apps/ops/templates/ops/task_history.html b/apps/ops/templates/ops/task_history.html
index 184987766..9a63acc6a 100644
--- a/apps/ops/templates/ops/task_history.html
+++ b/apps/ops/templates/ops/task_history.html
@@ -25,7 +25,7 @@
{% trans 'Run history' %}
- {% trans 'Last run output' %}
+ {% trans 'Last run output' %}
@@ -148,6 +148,14 @@ function initTable() {
$(document).ready(function () {
initTable();
+}).on('click', '.celery-task-log', function () {
+ var history_pk = "{{ object.latest_history.pk }}";
+ if (!history_pk) {
+ alert("没有运行历史");
+ return
+ }
+ var url = '{% url 'ops:celery-task-log' pk=DEFAULT_PK %}'.replace('{{ DEFAULT_PK }}', history_pk);
+ window.open(url, '', 'width=800,height=600,left=400,top=400')
})
diff --git a/config_example.py b/config_example.py
index e37df23b0..5f5301f0e 100644
--- a/config_example.py
+++ b/config_example.py
@@ -78,7 +78,7 @@ class Config:
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379
# REDIS_PASSWORD = ''
- # REDIS_DB_CELERY_BROKER = 3
+ # REDIS_DB_CELERY = 3
# REDIS_DB_CACHE = 4
# Use OpenID authorization