From ac5648f58ec280a044d351bd5896fcfcf85b9a28 Mon Sep 17 00:00:00 2001
From: Madhu S R <madhu.sr@vtigersolutions.com>
Date: Sat, 6 Apr 2024 07:37:53 +0530
Subject: [PATCH] #Fixes::158909513::madhusr::It is allowing to hide the
 mandatory fields in layout editor

---
 .gitignore                                           |  1 +
 .../v7/modules/Settings/LayoutEditor/FieldCreate.tpl |  2 +-
 .../Settings/LayoutEditor/resources/LayoutEditor.js  | 12 ++++++++----
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore
index 1b58a9326..585abce2b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 vendor/*
 !vendor/.htaccess
+.vscode/*
\ No newline at end of file
diff --git a/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl b/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl
index db9c43a4e..af3e377fa 100644
--- a/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl
+++ b/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl
@@ -141,7 +141,7 @@
 								<input type="hidden" name="presence" value="1"/>
 								<label class="checkbox">
 									<input type="checkbox" class ='cursorPointer bootstrap-switch' id="fieldPresence" name="presence" {if $FIELD_MODEL->isViewable()} checked {/if}
-										{if $FIELD_MODEL->isActiveOptionDisabled()} readonly="readonly" {/if} {if $FIELD_MODEL->isMandatory()} readonly="readonly" {/if}
+										{if $FIELD_MODEL->isActiveOptionDisabled()} optionDisabled = "true" readonly="readonly" {/if} {if $FIELD_MODEL->isMandatory()} readonly="readonly" {/if}
 										data-on-text="Yes" data-off-text="No" value="{$FIELD_MODEL->get('presence')}"/>
 								</label>
 							</div>
diff --git a/layouts/v7/modules/Settings/LayoutEditor/resources/LayoutEditor.js b/layouts/v7/modules/Settings/LayoutEditor/resources/LayoutEditor.js
index 603295ad4..b8c46da53 100644
--- a/layouts/v7/modules/Settings/LayoutEditor/resources/LayoutEditor.js
+++ b/layouts/v7/modules/Settings/LayoutEditor/resources/LayoutEditor.js
@@ -504,15 +504,19 @@ Vtiger.Class('Settings_LayoutEditor_Js', {
 					data.find('input[name="quickcreate"]').prop('checked', true).attr('readonly', 'readonly');
 					data.find('input[name="quickcreate"]').removeClass('cursorPointer').addClass('cursorPointerNotAllowed');
 				}
-				data.find('input[name="presence"]').attr('checked', true).attr('readonly', 'readonly');
-				data.find('#fieldPresence').bootstrapSwitch('toggleReadonly', true);
+				if(data.find('#fieldPresence').attr('optionDisabled') != 'true'){
+					data.find('input[name="presence"]').attr('checked', true).attr('readonly', 'readonly');
+					data.find('#fieldPresence').bootstrapSwitch('toggleReadonly', true);
+				}
 			} else {
 				if (data.find('input[name="isquickcreatesupported"]').val()) {
 					data.find('input[name="quickcreate"]').removeAttr('readonly');
 					data.find('input[name="quickcreate"]').removeClass('cursorPointerNotAllowed').addClass('cursorPointer');
 				}
-				data.find('input[name="presence"]').removeAttr('readonly');
-				data.find('#fieldPresence').bootstrapSwitch('toggleReadonly');
+				if(data.find('#fieldPresence').attr('optionDisabled') != 'true'){
+					data.find('input[name="presence"]').removeAttr('readonly');
+					data.find('#fieldPresence').bootstrapSwitch('toggleReadonly');
+				}
 			}
 		})
 		data.find('input[type="checkbox"]').on('click', function (e) {
-- 
GitLab