diff --git a/src/resources/lang/ca/crud.php b/src/resources/lang/ca/crud.php
index 68976b40c9..8dd506d5a6 100644
--- a/src/resources/lang/ca/crud.php
+++ b/src/resources/lang/ca/crud.php
@@ -164,6 +164,10 @@
'select_entry' => 'Selecciona un element',
'select_entries' => 'Selecciona elements',
'upload_multiple_files_selected' => 'Files selected. After save, they will show up above.',
+ 'clipboard' => [
+ 'confirmation_message' => 'Element copiat correctament',
+ 'error_message' => 'No s\'ha pogut copiar l\'element',
+ ],
// Table field
'table_cant_add' => 'No es pot afegir una nova :entity',
diff --git a/src/resources/lang/en/crud.php b/src/resources/lang/en/crud.php
index 7387c9bf47..c7063705bc 100644
--- a/src/resources/lang/en/crud.php
+++ b/src/resources/lang/en/crud.php
@@ -169,6 +169,10 @@
'select_entry' => 'Select an entry',
'select_entries' => 'Select entries',
'upload_multiple_files_selected' => 'Files selected. After save, they will show up above.',
+ 'clipboard' => [
+ 'confirmation_message' => 'Item copied successfully',
+ 'error_message' => 'Failed to copy item',
+ ],
//Table field
'table_cant_add' => 'Cannot add new :entity',
diff --git a/src/resources/lang/es/crud.php b/src/resources/lang/es/crud.php
index a40806d61c..6f839134c2 100644
--- a/src/resources/lang/es/crud.php
+++ b/src/resources/lang/es/crud.php
@@ -163,6 +163,10 @@
'new_item' => 'Nuevo elemento',
'select_entry' => 'Selecciona un elemento',
'select_entries' => 'Selecciona elementos',
+ 'clipboard' => [
+ 'confirmation_message' => 'Elemento copiado correctamente',
+ 'error_message' => 'No se pudo copiar el elemento',
+ ],
// Table field
'table_cant_add' => 'No se puede agregar una nueva :entity',
diff --git a/src/resources/views/crud/columns/clipboard.blade.php b/src/resources/views/crud/columns/clipboard.blade.php
new file mode 100644
index 0000000000..86099ff9c1
--- /dev/null
+++ b/src/resources/views/crud/columns/clipboard.blade.php
@@ -0,0 +1,59 @@
+{{-- regular object attribute --}}
+@php
+ $column['value'] = $column['value'] ?? data_get($entry, $column['name']);
+ $column['escaped'] = $column['escaped'] ?? true;
+ $column['limit'] = $column['limit'] ?? 32;
+ $column['prefix'] = $column['prefix'] ?? '';
+ $column['suffix'] = $column['suffix'] ?? '';
+ $column['text'] = $column['default'] ?? '-';
+
+ if ($column['value'] instanceof \Closure) {
+ $column['value'] = $column['value']($entry);
+ }
+
+ if (is_array($column['value'])) {
+ $column['value'] = json_encode($column['value']);
+ }
+
+ if (!empty($column['value'])) {
+ $column['text'] = $column['prefix'] . Str::limit($column['value'], $column['limit'], '…') . $column['suffix'];
+ }
+@endphp
+
+
+ @includeWhen(!empty($column['wrapper']), 'crud::columns.inc.wrapper_start')
+ @if ($column['escaped'])
+ {{ $column['text'] }}
+ @else
+ {!! $column['text'] !!}
+ @endif
+
+
+ @includeWhen(!empty($column['wrapper']), 'crud::columns.inc.wrapper_end')
+
+
+@bassetBlock('backpack/crud/columns/clipboard.js')
+
+@endBassetBlock