Проверка даты для настраиваемого поля - SuiteCRM Version 7.10.4 Sugar Version 6.5.25 (сборка 344) - PullRequest
0 голосов
/ 18 мая 2018

У меня есть два поля в моем модуле: start_date_c & end_date_c с типом данных date

Эти поля не являются обязательными полями, однако, когда я вводю данные в поле end_date_c, я бы хотел, чтобы они были не меньше start_date_c

Я пробовал следующее:

но, поскольку я новичок в suiteCRM,я не могу найти положительный ответ

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Простой и линейный, попробуйте выполнить следующее в любом файле JS (добавлено в режиме редактирования модуля):

addToValidateDateBefore('EditView', 'start_date_c', 'date', false,'Date Start', 'end_date_c' );
0 голосов
/ 12 июня 2018

работал для меня.
Я добавил следующий код в поля модуля / custom_module / vardefs.php

 'audited' => true,
 'enable_range_search' => true,

и добавил следующее в поле start

'validation' => 
      array (
        'type' => 'isbefore',
        'compareto' => 'enddate',
        'blank' => true,
      ),
0 голосов
/ 18 мая 2018

Вам понадобятся 2 вещи

  1. Отредактируйте файл editviewdefs.php в модуле, в который вы хотите добавить логику.Это поле будет сгенерировано автоматически при добавлении первого настраиваемого поля в представление редактирования.
  2. Создайте пользовательскую логику JS, чтобы определить, когда поле является действительным.

Эта логика добавитобратный вызов проверки для вашего

 addToValidateCallback(
        'EditView', // Form Name
        'end_date_c', // field name
        'datetime', // Field type
        false, // Is required
        "End date cannot be earlier than start date", // Message
        function() { 
          //WRITE YOUR JS VALIDATION HERE, return true when is valid
        }); 

В файле editviewdefs.php найдите определение поля и используйте displayParams, чтобы сделать suite / sugar добавившим JS для вас.

array (
  'name' => 'end_date_c',
 'displayParams' =>
             array (
              'updateCallback' => 'FUNCTIONNAME',
          ),
),

Последний шагне требуется, если у вас уже есть глобальный пользовательский JS (например, файл style.js для пользовательской темы).

РЕДАКТИРОВАТЬ: javascript DisplaParams не будет работать, поэтому добавлен параметр updateCallback.

Теперь эта проверка работает двумя способами.

  1. UpdateCallback будет запущен onChange
  2. addtoValidateCallback будет запущен при сохранении.

Это даст вам достаточно гибкости для проверки формы.

...