Symfoware

Symfowareについての考察blog

Redmine 選択された項目に連動して、他の項目を変更(Custom JS plugin)

タイトルに迷うのですが、やりたいことは

カスタム項目を2つ追加した。

515_01.png

515_02.png


最初の項目の選択に従い、2つ目の選択肢を変更したい

515_03.png



Custom JS plugin



どうやったら実現できるか悩みながらプラグインのリストを見ていると
http://www4176uf.sakura.ne.jp/projects/r-labs/plugin_list/index

Redmine Custom JS pluginを見つけました。
https://github.com/martin-denizet/redmine_custom_js

これをインストールして、コンボボックスを連動させるjsを書けば良さそうです。

プラグインをインストールしてみます。


# cd /opt/redmine-2.6.0/plugins
# git clone https://github.com/martin-denizet/redmine_custom_js.git



データベースのマイグレーションは不要です。
テスト用のサーバーを起動して確認しました。


# cd ../
# ruby script/rails server webrick -e production




[管理] - [プラグイン]を表示して、一覧に追加されていればロード成功です。

515_04.png





設定



プラグインの「設定」をクリックすると、jsを記載する画面が表示されます。

515_05.png

ここに記載したjsは全ての画面に適用されるようです。
ざっくりですが、こんなjsを記載して適用しました。


  1. $(document).ready(function(){
  2.     $('#issue_custom_field_values_1').on('change', function(){
  3.         var set_value = '';
  4.         switch($(this).val()) {
  5.         case '選択肢1':
  6.             set_value = '従属1';
  7.             break;
  8.         case '選択肢2':
  9.             set_value = '従属2';
  10.             break;
  11.         case '選択肢3':
  12.             set_value = '従属3';
  13.             break;
  14.         case '選択肢4':
  15.             set_value = '従属4';
  16.             break;
  17.         case '選択肢5':
  18.             set_value = '従属5';
  19.             break;
  20.         }
  21.         $('#issue_custom_field_values_2').val(set_value);
  22.     });
  23. });




Redmine自身がjQueryを使用しているので、ここでも使用可能です。
また、IDはhtmlのソースを表示して確認しながら記載しました。

これで望みの動作になりました。


関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/11/30(日) 16:19:27|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<apache2 mod_access_tokenをPythonから使用する | ホーム | Python + OpenCV + pillowで笑い男を顔に上書き>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1558-86a71c48
この記事にトラックバックする(FC2ブログユーザー)