issueDataset.js: enabled sending many issue ids for status change by splitting up

This commit is contained in:
KarpAlex
2022-10-06 03:25:57 +02:00
parent edd310351b
commit fb70ba3da5
+57 -50
View File
@@ -3,12 +3,13 @@
*/
var IssuesDataset = {
// number of max issue ids that can be sent in one request for status change
maxIssuesPerRequest: 1000,
/**
* adds person table additional actions html (above and beneath it)
*/
appendTableActionsHtml: function()
{
appendTableActionsHtml: function() {
let auswahlStatus =
'<div class="input-group">' +
'<select class="form-control d-inline auswahlStatus">' +
@@ -78,56 +79,26 @@ var IssuesDataset = {
/**
* sets functionality for the actions above and beneath the person table
*/
setTableActions: function()
{
$(".setStatus").click(function()
setTableActions: function() {
$(".setStatus").click(function() {
let status_kurzbz = $(".auswahlStatus").val();
let issue_ids_sel = $("#filterTableDataset input:checked[name=issue_id\\[\\]]");
if(status_kurzbz.length <= 0)
return FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("fehlermonitoring", "bitteStatusWaehlen"));
if(issue_ids_sel.length <= 0)
return FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("fehlermonitoring", "bitteFehlerWaehlen"));
let issue_ids = [];
for (let i = 0; i < issue_ids_sel.length; i++)
{
let status_kurzbz = $(".auswahlStatus").val();
let issue_ids_sel = $("#filterTableDataset input:checked[name=issue_id\\[\\]]");
if(status_kurzbz.length <= 0)
return FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("fehlermonitoring", "bitteStatusWaehlen"));
if(issue_ids_sel.length <= 0)
return FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("fehlermonitoring", "bitteFehlerWaehlen"));
let issue_ids = [];
for (let i = 0; i < issue_ids_sel.length; i++)
{
issue_ids.push($(issue_ids_sel[i]).val());
}
FHC_AjaxClient.ajaxCallPost(
'system/issues/Issues/changeIssueStatus',
{
"issue_ids": issue_ids,
"status_kurzbz": status_kurzbz
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isError(data))
{
FHC_DialogLib.alertError(
FHC_PhrasesLib.t("fehlermonitoring", "statusAendernFehler") + ": "
+ FHC_AjaxClient.getError(data)
);
}
else if (FHC_AjaxClient.hasData(data))
{
FHC_FilterWidget.reloadDataset();
FHC_DialogLib.alertSuccess(FHC_AjaxClient.getData(data));
}
else
FHC_DialogLib.alertError(FHC_PhrasesLib.t("fehlermonitoring", "statusAendernUnbekannterFehler"));
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(FHC_PhrasesLib.t("fehlermonitoring", "statusAendernFehler") + ": " + textStatus);
}
}
);
issue_ids.push($(issue_ids_sel[i]).val());
}
);
IssuesDataset.changeIssueStatus(issue_ids, status_kurzbz);
});
$(".selectAll").click(function()
{
@@ -143,6 +114,42 @@ var IssuesDataset = {
trs.find("input[name=issue_id\\[\\]]").prop("checked", false);
}
);
},
changeIssueStatus: function(issue_ids, status_kurzbz) {
FHC_AjaxClient.ajaxCallPost(
'system/issues/Issues/changeIssueStatus',
{
// split up issue ids if too much data for single request
"issue_ids": issue_ids.slice(0, IssuesDataset.maxIssuesPerRequest),
"status_kurzbz": status_kurzbz
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isError(data))
{
FHC_DialogLib.alertError(
FHC_PhrasesLib.t("fehlermonitoring", "statusAendernFehler") + ": "
+ FHC_AjaxClient.getError(data)
);
}
else if (FHC_AjaxClient.hasData(data))
{
if (issue_ids.length < IssuesDataset.maxIssuesPerRequest)
{
FHC_DialogLib.alertSuccess(FHC_AjaxClient.getData(data));
FHC_FilterWidget.reloadDataset();
}
else // send next chunk of data
IssuesDataset.changeIssueStatus(issue_ids.slice(IssuesDataset.maxIssuesPerRequest), status_kurzbz);
}
else
FHC_DialogLib.alertError(FHC_PhrasesLib.t("fehlermonitoring", "statusAendernUnbekannterFehler"));
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(FHC_PhrasesLib.t("fehlermonitoring", "statusAendernFehler") + ": " + textStatus);
}
}
);
}
};