diff --git a/modules/weko-search-ui/weko_search_ui/admin.py b/modules/weko-search-ui/weko_search_ui/admin.py index 84a2a1fc96..f155eb7e2a 100644 --- a/modules/weko-search-ui/weko_search_ui/admin.py +++ b/modules/weko-search-ui/weko_search_ui/admin.py @@ -537,6 +537,8 @@ def get_status(self): """Get status of import process.""" data = request.get_json() result = [] + success_count = 0 + fail_count = 0 if data and data.get("tasks"): status = "done" for task_item in data.get("tasks"): @@ -568,9 +570,25 @@ def get_status(self): if not (task.successful() or task.failed()) or status == "doing" else "done" ) - response_object = {"status": status, "result": result} + if task and isinstance(task.result, dict) \ + and task.result.get("success"): + success_count += 1 + if task and isinstance(task.result, dict) \ + and "error_id" in task.result: + fail_count += 1 + response_object = { + "status": status, + "result": result, + "success_count": success_count, + "fail_count": fail_count + } else: - response_object = {"status": "error", "result": result} + response_object = { + "status": "error", + "result": result, + "success_count": success_count, + "fail_count": fail_count + } return jsonify(response_object) @expose("/export_import", methods=["POST"]) diff --git a/modules/weko-search-ui/weko_search_ui/static/js/weko_search_ui/import.js b/modules/weko-search-ui/weko_search_ui/static/js/weko_search_ui/import.js index d60aba2187..71edd263a1 100644 --- a/modules/weko-search-ui/weko_search_ui/static/js/weko_search_ui/import.js +++ b/modules/weko-search-ui/weko_search_ui/static/js/weko_search_ui/import.js @@ -40,7 +40,11 @@ const end_date = document.getElementById("end_date").value; const importResult = document.getElementById("import_result").value; const end = document.getElementById("end").value; const statusLabel = document.getElementById("status").value; +const action = document.getElementById("action").value; +const workflow_status = document.getElementById("workflow_status").value; const done = document.getElementById("done").value; +const to_do = document.getElementById("to_do").value; +const doing = document.getElementById("doing").value; const processing = document.getElementById("processing").value; const waiting = document.getElementById("waiting").value; const result_label = document.getElementById("result").value; @@ -86,6 +90,29 @@ function showErrorMsg(msg) { '×' + msg + ''); } +function getResultErrorMsg(error_id) { + let msg = ''; + switch (error_id) { + case 'is_duplicated_doi': + msg = is_duplicated_doi; + break; + case 'is_withdraw_doi': + msg = is_withdraw_doi; + break; + case 'item_is_deleted': + msg = item_is_deleted; + break; + case 'item_is_being_edit': + msg = item_is_being_edit; + break; + } + if (msg === '') { + return error_id; + } else { + return 'Error msg : ' + msg; + } +} + function getTaskResult(task_result) { if (!task_result) return ''; if (task_result.success) return succses; @@ -146,7 +173,9 @@ class MainLayout extends React.Component { is_import: true, import_status: false, isShowMessage: false, - isChecking: false + isChecking: false, + success_count: 0, + fail_count: 0 } this.handleChangeTab = this.handleChangeTab.bind(this) this.handleCheck = this.handleCheck.bind(this) @@ -338,7 +367,9 @@ class MainLayout extends React.Component { .done((res) => { that.setState({ - tasks: res.result + tasks: res.result, + success_count: res.success_count, + fail_count: res.fail_count }) if (res.status === 'done') { that.setState({ @@ -356,7 +387,7 @@ class MainLayout extends React.Component { } render() { - const { tab, tabs, list_record, is_import, tasks, import_status, isShowMessage, isChecking } = this.state; + const { tab, tabs, list_record, is_import, tasks, import_status, isShowMessage, isChecking, success_count, fail_count } = this.state; return (