+
+
@@ -2475,6 +2480,11 @@
getParam('field')]]]>
+
diff --git a/resources/js/database/structure.ts b/resources/js/database/structure.ts
index 79dd95bf3c..6884e1ca2b 100644
--- a/resources/js/database/structure.ts
+++ b/resources/js/database/structure.ts
@@ -1,7 +1,7 @@
import $ from 'jquery';
import * as bootstrap from 'bootstrap';
import { AJAX } from '../modules/ajax.ts';
-import { getForeignKeyCheckboxLoader, loadForeignKeyCheckbox } from '../modules/functions.ts';
+import { copyToClipboard, displayCopyNotification, getForeignKeyCheckboxLoader, loadForeignKeyCheckbox } from '../modules/functions.ts';
import { Navigation } from '../modules/navigation.ts';
import { CommonParams } from '../modules/common.ts';
import { ajaxRemoveMessage, ajaxShowMessage } from '../modules/ajax-message.ts';
@@ -33,6 +33,7 @@ AJAX.registerTeardown('database/structure.js', function () {
$(document).off('click', 'a.truncate_table_anchor.ajax');
$(document).off('click', 'a.drop_table_anchor.ajax');
$(document).off('click', 'a.favorite_table_anchor.ajax');
+ $(document).off('click', '#copyStructureBtn');
$('a.real_row_count').off('click');
$('a.row_count_sum').off('click');
$('select[name=submit_mult]').off('change');
@@ -323,4 +324,40 @@ AJAX.registerOnload('database/structure.js', function () {
event.preventDefault();
fetchRealRowCount($(this));
});
+
+ function copyStructureSql (sql: string): void {
+ if (typeof navigator.clipboard !== 'undefined' && typeof navigator.clipboard.writeText === 'function') {
+ navigator.clipboard.writeText(sql).then(() => {
+ displayCopyNotification(true);
+ }).catch(() => {
+ displayCopyNotification(copyToClipboard(sql, '