[TASK] Replace confirm on delete icon in list module table 69/46969/2
authorFrank Naegler <frank.naegler@typo3.org>
Mon, 29 Feb 2016 10:31:38 +0000 (11:31 +0100)
committerWouter Wolters <typo3@wouterwolters.nl>
Mon, 29 Feb 2016 17:54:04 +0000 (18:54 +0100)
This patch replaces the old JavaScript confirm dialog on the delete button
in list module tables.

Resolves: #73737
Releases: master, 7.6
Change-Id: Ie4a0c25111a04217069793653b9eac16fce2a778
Reviewed-on: https://review.typo3.org/46969
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php

index 13b382a..2c94454 100644 (file)
@@ -1961,15 +1961,29 @@ class DatabaseRecordList extends AbstractDatabaseRecordList
      */
     public function linkClipboardHeaderIcon($string, $table, $cmd, $warning = '', $title = '')
     {
      */
     public function linkClipboardHeaderIcon($string, $table, $cmd, $warning = '', $title = '')
     {
-        $onClickEvent = 'document.dblistForm.cmd.value=' . GeneralUtility::quoteJSvalue($cmd) . ';document.dblistForm.cmd_table.value='
-            . GeneralUtility::quoteJSvalue($table) . ';document.dblistForm.submit();';
+        $jsCode = 'document.dblistForm.cmd.value=' . GeneralUtility::quoteJSvalue($cmd)
+            . ';document.dblistForm.cmd_table.value='
+            . GeneralUtility::quoteJSvalue($table)
+            . ';document.dblistForm.submit();';
+
+        $attributes = [
+            'class' => 'btn btn-default'
+        ];
+        if ($title !== '') {
+            $attributes['title'] = $title;
+        }
         if ($warning) {
         if ($warning) {
-            $onClickEvent = 'if (confirm(' . GeneralUtility::quoteJSvalue($warning) . ')){' . $onClickEvent . '}';
+            $attributes['class'] = 'btn btn-default t3js-modal-trigger';
+            $attributes['data-href'] = 'javascript:' . $jsCode;
+            $attributes['data-severity'] = 'warning';
+            $attributes['data-title'] = $title;
+            $attributes['data-content'] = $warning;
         }
         }
-        if ($title !== '') {
-            $title = 'title="' . htmlspecialchars($title) . '" ';
+        $attributesString = '';
+        foreach ($attributes as $key => $value) {
+            $attributesString .= ' ' . $key . '="' . htmlspecialchars($value) . '"';
         }
         }
-        return '<a class="btn btn-default" href="#" ' . $title . ' onclick="' . htmlspecialchars(($onClickEvent . 'return false;')) . '">' . $string . '</a>';
+        return '<a href="#" ' . $attributesString . '>' . $string . '</a>';
     }
 
     /**
     }
 
     /**