diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php
index 15ccf856ec..a83b006c56 100755
--- a/resources/views/hardware/view.blade.php
+++ b/resources/views/hardware/view.blade.php
@@ -414,19 +414,24 @@
@if ($field->isFieldDecryptable($asset->{$field->db_column_name()} ))
@can('assets.view.encrypted_custom_fields')
- ********
-
- @if (($field->format=='URL') && ($asset->{$field->db_column_name()}!=''))
- {{ Helper::gracefulDecrypt($field, $asset->{$field->db_column_name()}) }}
- @elseif (($field->format=='DATE') && ($asset->{$field->db_column_name()}!=''))
- {{ \App\Helpers\Helper::gracefulDecrypt($field, \App\Helpers\Helper::getFormattedDateObject($asset->{$field->db_column_name()}, 'date', false)) }}
- @else
- {{ Helper::gracefulDecrypt($field, $asset->{$field->db_column_name()}) }}
- @endif
-
-
- {{ trans('general.copy_to_clipboard') }}
-
+ @php
+ $fieldSize=strlen(Helper::gracefulDecrypt($field, $asset->{$field->db_column_name()}))
+ @endphp
+ @if ($fieldSize>0)
+ {{ str_repeat('*', $fieldSize) }}
+
+ @if (($field->format=='URL') && ($asset->{$field->db_column_name()}!=''))
+ {{ Helper::gracefulDecrypt($field, $asset->{$field->db_column_name()}) }}
+ @elseif (($field->format=='DATE') && ($asset->{$field->db_column_name()}!=''))
+ {{ \App\Helpers\Helper::gracefulDecrypt($field, \App\Helpers\Helper::getFormattedDateObject($asset->{$field->db_column_name()}, 'date', false)) }}
+ @else
+ {{ Helper::gracefulDecrypt($field, $asset->{$field->db_column_name()}) }}
+ @endif
+
+
+ {{ trans('general.copy_to_clipboard') }}
+
+ @endif
@else
{{ strtoupper(trans('admin/custom_fields/general.encrypted')) }}
@endcan
diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php
index 216632ccf8..03442bd0b4 100644
--- a/resources/views/layouts/default.blade.php
+++ b/resources/views/layouts/default.blade.php
@@ -1041,6 +1041,64 @@
});
});
+ // Select encrypted custom fields to hide them in the asset list
+ $(document).ready(function() {
+ // Selector for elements with css-padlock class
+ var selector = 'td.css-padlock';
+
+ // Function to add original value to elements
+ function addValue($element) {
+ // Get original value of the element
+ var originalValue = $element.text().trim();
+
+ // Show asterisks only for not empty values
+ if (originalValue !== '') {
+ // This is necessary to avoid loop because value is generated dynamically
+ if (originalValue !== '' && originalValue !== asterisks) $element.attr('value', originalValue);
+
+ // Hide the original value and show asterisks of the same length
+ var asterisks = '*'.repeat(originalValue.length);
+ $element.text(asterisks);
+
+ // Add click event to show original text
+ $element.click(function() {
+ var $this = $(this);
+ if ($this.text().trim() === asterisks) {
+ $this.text($this.attr('value'));
+ } else {
+ $this.text(asterisks);
+ }
+ });
+ }
+ }
+ // Add value to existing elements
+ $(selector).each(function() {
+ addValue($(this));
+ });
+
+ // Function to handle mutations in the DOM because content is generated dynamically
+ var observer = new MutationObserver(function(mutations) {
+ mutations.forEach(function(mutation) {
+ // Check if new nodes have been inserted
+ if (mutation.type === 'childList') {
+ mutation.addedNodes.forEach(function(node) {
+ if ($(node).is(selector)) {
+ addValue($(node));
+ } else {
+ $(node).find(selector).each(function() {
+ addValue($(this));
+ });
+ }
+ });
+ }
+ });
+ });
+
+ // Configure the observer to observe changes in the DOM
+ var config = { childList: true, subtree: true };
+ observer.observe(document.body, config);
+ });
+