りんちゃんの日記

日常を書き留めていきます。

redmine カスタムフィールドの値によって特定のフィールドの表示・非表示・値を設定する

a※view_customizeプラグインを使用

//カスタムフィールドの値によって特定のフィールドの表示・非表示・値を設定する

 

パスのパターン /*
プロジェクトのパターン test01
挿入位置 チケット入力欄の下
種別 JavaScript
//カスタムフィールドの値によって特定のフィールドの表示・非表示を設定する
$(function() {

  const changeVisibility  = function() {
    switch($('#issue_custom_field_values_10').val()) {


      case 'A':
        $('#issue_custom_field_values_11').parent().show();
        $('#issue_custom_field_values_12').parent().hide();
        $('#issue_custom_field_values_11').val('Aが選択されました');
        //alert('Aが選択されました');
        break;

      case 'B':
        $('#issue_custom_field_values_11').parent().hide();
        $('#issue_custom_field_values_12').parent().show();
        $('#issue_custom_field_values_12').val('Bが選択されました');
        //alert('Bが選択されました');
        break;

      default:
        $('#issue_custom_field_values_11').parent().show();
        $('#issue_custom_field_values_12').parent().show();
        $('#issue_custom_field_values_11').val('test01');
        $('#issue_custom_field_values_12').val('test02');
        break;
    }
  }

  changeVisibility ();


  // 値が変わったタイミングで切り替え
  $('#all_attributes').on('change', '#issue_custom_field_values_10', function(e) {
    changeVisibility ();
  });

  // ステータス変更時などにDOMが差し替えられるので
  // フォームの内容が書き変わるたびに表示切替
  var _replaceIssueFormWith = replaceIssueFormWith;
  replaceIssueFormWith = function(html){

    _replaceIssueFormWith(html);

    changeVisibility ();
  };



});

---------------------------------------------------------------------------------------

別パターン

 

$(function() {

  // 表示の切り替え
  var changeVisibility = function() {

    var visible = $('#issue_custom_field_values_5').val() == 'A';

    if (visible) {
      $('#issue_custom_field_values_2').parent().show();
      $('.cf_2').show();
    } else {
      $('#issue_custom_field_values_3').parent().hide();
      $('.cf_3').hide();
    }
  };

  // 現時点のもので表示切替
  changeVisibility();

  // ステータスが変わったタイミングで切り替え
  $('#all_attributes').on('change', '#issue_custom_field_values_5', function(e) {
    changeVisibility();
  });

  // ステータス変更時などにDOMが差し替えられるので
  // フォームの内容が書き変わるたびに表示切替
  var _replaceIssueFormWith = replaceIssueFormWith;
  replaceIssueFormWith = function(html){

    _replaceIssueFormWith(html);

    changeVisibility();
  };
})