JavaScript на сохранить SugarCRM - PullRequest
1 голос
/ 25 февраля 2012

Я пытаюсь создать всплывающее окно в sugarcrm для модуля заметок. Когда пользователь нажимает «Сохранить заметку», я хочу проверить, что поле notes_c не пустое. Если оно пустое, я хотел бы, чтобы всплыла ошибка и было сказано, что заметка пуста. Они могут либо отменить, либо сохранить в любом случае. Ниже приведен код, который я добавил, но не могу отобразить всплывающее окно.

Я добавил кнопки в custom / modules / Notes / metadata / editviewdefs.php

  array (
    'enctype' => 'multipart/form-data',
    'headerTpl' => 'modules/Notes/tpls/EditViewHeader.tpl',
    'buttons' => array(
                        array('customCode'=>'<input id="samples_transfer_save" type="submit" value="Save Note" name="button" onclick="this.form.action.value=\'Save\'; return (check_save() && check_form(\'EditView\'));"  class="button" accesskey="S" title="Save [Alt+S]"/>&nbsp;'),
                        'CANCEL',
       ),
  ),
  'includes'=> array('file'=>'custom/modules/Notes/checksave.js'),

Кнопки отображаются, и форма сохраняет ее, но не отображает ошибку, если это поле пусто.

Вот файл JS с именем checkave.js

function check_save() {
              if(document.getElementById('notes_c').value == '') {
                      document.getElementById('warning').innerHTML = 'Warning: No Public Notes Entered';
                      $j("#warning").fadeIn("slow");
                      setTimeout('$j("#warning").fadeOut("slow");',20000);
                      return false;
              }else {
                      return true;
              }
      }

Ответы [ 2 ]

3 голосов
/ 26 февраля 2012

Лучший способ сделать это - перейти в Studio, отредактировать поле notes_c и установить флажок «Обязательное поле». Это позаботится о проверке для вас.

Если вы настаиваете на добавлении ваших собственных js для проверки, то вы можете оставить кнопки по умолчанию, но в вашем js-файле переопределите функцию onsubmit.

document.EditView.onsubmit = check_save;
1 голос
/ 19 февраля 2015

Чтобы добавить пользовательские скрипты в SugarCRM, я делаю это:

в logic_hook.php

<?php

$hook_version = 1;
$hook_array = Array();

$hook_array['after_ui_frame'] = Array();
$hook_array['after_ui_frame'][] = Array(1, 'JQuery', 'custom/modules/Accounts/custom_code/customscripts.php','JQuery', 'JQuery'); 

?>

после в файле класса jquery

<?php

class JQuery{

    function JQuery($event, $arguments){
        echo '<script type="text/javascript" src="custom/modules/Accounts/custom_code/jmask.js"></script>';
        echo '<script type="text/javascript" src="custom/modules/Accounts/custom_code/scripts.js"></script>';           
    }

}
?>

и создайте обычный JS-файл, называемый скриптами, и импортируйте jmask.

...