diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
index 3ae6fc4a4932db803a6dd5567d6a606c02e64823..a0d26a869e3be3b46af7974c8d02ee74afc1263a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
@@ -170,8 +170,8 @@ public class ChartController extends BaseController
 		}
 
 		model.addAttribute("charts", chartService.getAllEntitiesAsc());
-		model.addAttribute("currentChart", chartService.getRepository().getOne(ID));
-		return "charts/manage";
+		model.addAttribute("chartToDelete", chartService.getRepository().getOne(ID));
+		return "charts/deleteChartModal";
 	}
 
 	@GetMapping(value = "/{ID}/delete")
diff --git a/src/main/resources/static/js/categories.js b/src/main/resources/static/js/categories.js
index 90822bdf935190cc0aa7122d3425d0cea7bea4e9..b3479347e2ff0a843a36757efda57f0fa04097c5 100644
--- a/src/main/resources/static/js/categories.js
+++ b/src/main/resources/static/js/categories.js
@@ -1,7 +1,5 @@
 $(document).ready(function()
 {
-    $('#modalConfirmDelete').modal('open');
-
     if($('#category-name').length)
     {
         document.getElementById('category-name').focus();
diff --git a/src/main/resources/static/js/charts.js b/src/main/resources/static/js/charts.js
index 896d50c8a05e3123347c06826ac493cfcd73b5fc..9f6494963897303793ec846f0ae71c1c08de3b04 100644
--- a/src/main/resources/static/js/charts.js
+++ b/src/main/resources/static/js/charts.js
@@ -13,11 +13,6 @@ $(document).ready(function()
         editor.save();
     }
 
-    if($("#modalConfirmDelete").length)
-    {
-        $('#modalConfirmDelete').modal('open');
-    }
-
     if($(".datepicker").length)
     {
         chartPickerStartDate = M.Datepicker.init(document.getElementById('chart-datepicker'), {
@@ -121,10 +116,18 @@ $(document).ready(function()
         document.getElementById('buttonShowChartSettings').classList.toggle('hidden', true);
     });
 
-    filterChartPreviews(selectChartID);
+    if($(".chart-preview-column").length)
+    {
+        filterChartPreviews(selectChartID);
+
+        let showEditSettingsButton = document.getElementsByName('NewChartSettings')[0].classList.contains('hidden');
+        document.getElementById('buttonShowChartSettings').classList.toggle('hidden', !showEditSettingsButton);
+    }
 
-    let showEditSettingsButton = document.getElementsByName('NewChartSettings')[0].classList.contains('hidden');
-    document.getElementById('buttonShowChartSettings').classList.toggle('hidden', !showEditSettingsButton);
+    $('.button-request-delete-chart').click(function()
+    {
+        fetchAndShowModalContent(this.dataset.url, '#deleteModalContainerOnDemand', '#modalConfirmDelete', function(){});
+    });
 });
 
 function createDatePickerEnd(minDate, selectedDate)
diff --git a/src/main/resources/templates/categories/deleteCategoryModal.ftl b/src/main/resources/templates/categories/deleteCategoryModal.ftl
index 15bc49cf3769e68ac48aa44d5ce9fd92ded24304..705490ea2577c4d3484890f9ca8ccadadb15ee55 100644
--- a/src/main/resources/templates/categories/deleteCategoryModal.ftl
+++ b/src/main/resources/templates/categories/deleteCategoryModal.ftl
@@ -17,7 +17,7 @@
     </div>
 
     <div class="modal-footer background-color">
-        <@header.buttonLink url='/categories' icon='clear' localizationKey='cancel' color='red' classes='modal-action modal-close text-white'/>
+        <@header.buttonLink url='' icon='clear' localizationKey='cancel' color='red' classes='modal-action modal-close text-white' noUrl=true/>
         <@header.buttonLink url='' icon='delete' localizationKey='delete' color='green' id='buttonDeleteCategory' classes='modal-action modal-close text-white' noUrl=true/>
     </div>
 </div>
\ No newline at end of file
diff --git a/src/main/resources/templates/charts/deleteChartModal.ftl b/src/main/resources/templates/charts/deleteChartModal.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..c104d879048b148c1c51d042c3cf0742bb601d69
--- /dev/null
+++ b/src/main/resources/templates/charts/deleteChartModal.ftl
@@ -0,0 +1,7 @@
+<#global locale = static["de.thecodelabs.utils.util.Localization"]>
+<#import "/spring.ftl" as s>
+<#import "../helpers/header.ftl" as header>
+
+<@header.modalConfirmDelete title=locale.getString("info.title.chart.delete") confirmUrl='/charts' itemId=chartToDelete.getID() confirmButtonTextKey='info.title.chart.delete'>
+    <p>${locale.getString("info.text.chart.delete", chartToDelete.getName())}</p>
+</@header.modalConfirmDelete>
\ No newline at end of file
diff --git a/src/main/resources/templates/charts/manage.ftl b/src/main/resources/templates/charts/manage.ftl
index e032e8cf5ff46fc1344461ca8bc17593a308ec12..13ebd1386347b607c91ccf559fd6263ee26ee9fd 100644
--- a/src/main/resources/templates/charts/manage.ftl
+++ b/src/main/resources/templates/charts/manage.ftl
@@ -46,7 +46,7 @@
                                     <td>
                                         <@header.buttonFlat url='/charts/' + chart.ID?c + '/edit' icon='edit' localizationKey='' classes="no-padding text-default"/>
                                         <#if (chart.getType().name() == "CUSTOM")>
-                                            <@header.buttonFlat url='/charts/' + chart.ID?c + '/requestDelete' icon='delete' localizationKey='' classes="no-padding text-default"/>
+                                            <@header.buttonFlat url='/charts/' + chart.ID?c + '/requestDelete' icon='delete' localizationKey='' classes="no-padding text-default button-request-delete-chart" isDataUrl=true/>
                                         </#if>
                                     </td>
                                 </tr>
@@ -59,11 +59,7 @@
                 </@header.content>
             </div>
 
-            <#if currentChart??>
-                <@header.modalConfirmDelete title=locale.getString("info.title.chart.delete") confirmUrl='/charts' cancelUrlBase='/charts/manage' itemId=currentChart.getID() confirmButtonTextKey='info.title.chart.delete'>
-                    <p>${locale.getString("info.text.chart.delete", currentChart.getName())}</p>
-                </@header.modalConfirmDelete>
-            </#if>
+            <div id="deleteModalContainerOnDemand"></div>
         </main>
 
         <#import "../helpers/scripts.ftl" as scripts>
diff --git a/src/main/resources/templates/helpers/header.ftl b/src/main/resources/templates/helpers/header.ftl
index 485ab5ffbe7f1f425acf15f1fd1244089b4c33fa..927776432b3d7f084c2795f6e98e12ec262e4803 100644
--- a/src/main/resources/templates/helpers/header.ftl
+++ b/src/main/resources/templates/helpers/header.ftl
@@ -45,7 +45,7 @@
     </#if>
 </#macro>
 
-<#macro modalConfirmDelete title confirmUrl cancelUrlBase itemId confirmButtonTextKey id="modalConfirmDelete" classes="">
+<#macro modalConfirmDelete title confirmUrl itemId confirmButtonTextKey id="modalConfirmDelete" classes="">
     <div id="${id}" class="modal background-color ${classes}">
         <div class="modal-content">
             <h4>${title}</h4>
@@ -53,7 +53,7 @@
             <#nested>
         </div>
         <div class="modal-footer background-color">
-            <@buttonLink url=cancelUrlBase icon='clear' localizationKey='cancel' color='red' classes='modal-action modal-close text-white'/>
+            <@buttonLink url='' icon='clear' localizationKey='cancel' color='red' classes='modal-action modal-close text-white' noUrl=true/>
             <@buttonLink url=confirmUrl + '/' + itemId?c + '/delete' icon='delete' localizationKey=confirmButtonTextKey color='green' classes='modal-action modal-close text-white'/>
         </div>
     </div>