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 - - + @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 + + + @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); + }); +