Использование стандартной для 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',
),
),
...
),
),
);