diff --git a/public/js/issues/issuesDataset.js b/public/js/issues/issuesDataset.js
index 57a8fb4fd..79549244e 100644
--- a/public/js/issues/issuesDataset.js
+++ b/public/js/issues/issuesDataset.js
@@ -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 =
'
' +
'' +
@@ -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);
+ }
+ }
+ );
}
};