Loading [MathJax]/extensions/tex2jax.js

Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Pleasanter

Pleasanter項目の活性制御のやり方について(スクリプト)

投稿日:2023年5月16日 更新日:

 

<目次>

(1) Pleasanter項目の活性制御のやり方について(スクリプト)
 (1-1) やりたいこと
 (1-2) 設定箇所
 (1-3) パターン①:ステータスに応じて「静的」に制御
 (1-4) パターン①:ステータスに応じて「静的」に制御
 (1-5) まとめ

(1) Pleasanter項目の活性制御のやり方について(スクリプト)

(1-1) やりたいこと

・Pleasanter項目の活性制御のやり方(スクリプトによる制御)を理解する。
・静的な制御(ステータスに応じて初期の活性制御をハンドリング)のやり方を理解する。
・動的な制御(ステータスを切り替えると、リアルタイムに活性制御も追従)のやり方を理解する。

目次にもどる

(1-2) 設定箇所

・Pleasanterの場合、「スクリプト」にカスタムのJavaScriptを記述して、フロントエンドを制御する事ができます。
(図110)
・設定画面内にスクリプトと適用範囲を入れるだけで、すぐに有効化できます。
(図111)
・普通に明細を作成/編集する分には「新規作成」と「編集」が付いていればOK。

目次にもどる

(1-3) パターン①:ステータスに応じて「静的」に制御

⇒ステータスに応じた、初期状態を制御する

(サンプルスクリプト)
  1. $p.events.on_editor_load = function () {
  2. console.log("活性制御テスト");
  3. switch($("#Issues_Status").val()) {
  4. // 未着手
  5. case '100':
  6. // 非活性
  7. $('#Issues_ClassA').prop('disabled', true).css('background-color','#5b5b5b');
  8. break;
  9. // 準備中
  10. case '150':
  11. // 非活性
  12. $('#Issues_ClassB').prop('disabled', true).css('background-color','#5b5b5b');
  13. break;
  14. // 実施中
  15. case '200':
  16. // 非活性
  17. $('#Issues_ClassC').prop('disabled', true).css('background-color','#5b5b5b');
  18. break;
  19. // レビュー
  20. case '300':
  21. // 非活性
  22. $('#Issues_ClassD').prop('disabled', true).css('background-color','#5b5b5b');
  23. break;
  24. // 完了
  25. case '900':
  26. // 非活性
  27. $('#Issues_ClassE').prop('disabled', true).css('background-color','#5b5b5b');
  28. break;
  29. // 保留
  30. case '910':
  31. // 非活性
  32. $('#Issues_ClassF').prop('disabled', true).css('background-color','#5b5b5b');
  33. break;
  34. default:
  35. break;
  36. }
  37. }
(補足)
・$p.events.on_editor_loadで「編集画面」を読み込んだときに実行するメソッドを定義しています。
(参考)開発者向け機能:スクリプト:$p.events.on_editor_load

目次にもどる

(1-4) パターン②:ステータスに応じて「静的」に制御

⇒プルダウンに応じてリアルタイムに制御する

(サンプルスクリプト)

  1. $(document).on('change', '#Issues_Status', function () {
  2. console.log("活性制御テスト");
  3. switch($("#Issues_Status").val()) {
  4. // 未着手
  5. case '100':
  6. // 非活性
  7. $('#Issues_ClassA').prop('disabled', true).css('background-color','#5b5b5b');
  8. $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
  9. $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
  10. $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
  11. $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
  12. $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
  13. break;
  14. // 準備中
  15. case '150':
  16. // 非活性
  17. $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
  18. $('#Issues_ClassB').prop('disabled', true).css('background-color','#5b5b5b');
  19. $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
  20. $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
  21. $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
  22. $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
  23. break;
  24. // 実施中
  25. case '200':
  26. // 非活性
  27. $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
  28. $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
  29. $('#Issues_ClassC').prop('disabled', true).css('background-color','#5b5b5b');
  30. $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
  31. $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
  32. $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
  33. break;
  34. // レビュー
  35. case '300':
  36. // 非活性
  37. $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
  38. $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
  39. $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
  40. $('#Issues_ClassD').prop('disabled', true).css('background-color','#5b5b5b');
  41. $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
  42. $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
  43. break;
  44. // 完了
  45. case '900':
  46. // 非活性
  47. $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
  48. $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
  49. $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
  50. $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
  51. $('#Issues_ClassE').prop('disabled', true).css('background-color','#5b5b5b');
  52. $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
  53. break;
  54. // 保留
  55. case '910':
  56. // 非活性
  57. $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
  58. $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
  59. $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
  60. $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
  61. $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
  62. $('#Issues_ClassF').prop('disabled', true).css('background-color','#5b5b5b');
  63. break;
  64. default:
  65. break;
  66. }
  67. })

 

(動画121)明細編集時に項目を選択すると、それに応じた活性制御が動的に追従する

(補足)
・動的に切り替える時は、各パターンでIssues_ClassA~Fまで全部について、制御を明記する必要があります。
・そうしないと、グレーアウトがどんどん累積していったりします(動的に切り替わらない)
・よって、ステータス単位で活性にする項目は、色をffffffに明示的に指定する必要あり

目次にもどる

(1-5) まとめ

・非活性(例)

  1. $('#Issues_ClassF').prop('disabled', true).css('background-color','#5b5b5b');

・活性(例)

  1. $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');

・動的制御

  1. $(document).on('change', '[制御に使う項目]', function () { //制御処理 }

・(参考)項目の非表示

  1. $('#Issues_ClassF').css('display','none');
・(参考)項目の再表示
  1. $('#Issues_ClassF').css('display','');

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Pleasanter
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

PleasanterのAPIをPythonからコールするサンプルをご紹介

  <目次> (1) PleasanterのAPIをPythonからコールするサンプルをご紹介  (1-0) やりたいこと  (1-1) サンプルサイト  (1-2) サンプルプログラム   …

Pleasanterでcssを設定する方法

  <目次> (1) Pleasanterでcssを設定する方法  やりたいこと  設定箇所  サンプルcssコード  適用結果 (1) Pleasanterでcssを設定する方法 やりたい …

PleasanterのAPIの使い方&レコード作成の例をご紹介

  <目次> (1) PleasanterのAPIの使い方&レコード作成の例をご紹介  やりたいこと  (1-0) 概要  (1-1) STEP1:テスト用サイトのインポート  (1-2) …

プリザンター(Pleasanter)でワークフローを試作してみた

  <目次> (1) プリザンター(Pleasanter)でワークフローを試作してみた。  (1-0) 概要  (1-1) STEP1:フロントエンド開発①(画面項目定義)  (1-2) S …

  • English (United States)
  • 日本語
S