Использование стандартной для SuiteCRM javascript функций removeFromValidate
и addToValidate
позволяет изменить списка полей, которые необходимо заполнить при редактировании записи. Ниже пример скрипта, который можно загрузить на форму ‘editview’.
/* * formName (string) - id тега 'form', которая содержит поля * field (string) - id поля * typeField (string) - тип поля * validSwitch (boolean) - включить (true) или выключить (false) контроль заполнения поля */ function validate_fields_by_status(formName,field,typeField,validSwitch){ removeFromValidate(formName,field); let label =''; if($('#'+field).parent().prev().hasClass('label')){ label = $('#'+field).parent().prev().html().split(':')[0]; } addToValidate(formName,field,typeField,validSwitch,label); }
Загрузить скрипт можно несколькими способами, приведу два из них. Оба предусматривают изменение файла editviewdefs.php
конкретного модуля. Для примера назовем модуль – CustomModules. Создайте или отредактируйте файл в пользовательской директории custom/modules/CustomModules/metadata/
. Обратите внимание, что изменение файлов не позволяет после этого использовать инструмент Studio.
- Загрузить javascript непосредственно в файл
<?php $viewdefs ['CustomModules'] =array( 'EditView' => array( ... 'templateMeta' => array( ... 'javascript' =>'<script type="text/javascript"> /* javascript код */ </script>', ... ), ), );
- Загрузить javascript во внешний файл, например
custom/modules/CustomModules/metadata/js/script.js
, а затем уже включить его файлeditviewdefs.php
.
<?php $viewdefs ['CustomModules'] =array( 'EditView' => array( ... 'templateMeta' => array( ... 'includes' => array( 0 => array( 'file' => 'custom/modules/CustomModules/metadata/js/script.js', ), ), ... ), ), );