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

(1-3) パターン①:ステータスに応じて「静的」に制御
- $p.events.on_editor_load = function () {
- console.log("活性制御テスト");
- switch($("#Issues_Status").val()) {
- // 未着手
- case '100':
- // 非活性
- $('#Issues_ClassA').prop('disabled', true).css('background-color','#5b5b5b');
- break;
- // 準備中
- case '150':
- // 非活性
- $('#Issues_ClassB').prop('disabled', true).css('background-color','#5b5b5b');
- break;
- // 実施中
- case '200':
- // 非活性
- $('#Issues_ClassC').prop('disabled', true).css('background-color','#5b5b5b');
- break;
- // レビュー
- case '300':
- // 非活性
- $('#Issues_ClassD').prop('disabled', true).css('background-color','#5b5b5b');
- break;
- // 完了
- case '900':
- // 非活性
- $('#Issues_ClassE').prop('disabled', true).css('background-color','#5b5b5b');
- break;
- // 保留
- case '910':
- // 非活性
- $('#Issues_ClassF').prop('disabled', true).css('background-color','#5b5b5b');
- break;
- default:
- break;
- }
- }
(1-4) パターン②:ステータスに応じて「静的」に制御
(サンプルスクリプト)
- $(document).on('change', '#Issues_Status', function () {
- console.log("活性制御テスト");
- switch($("#Issues_Status").val()) {
- // 未着手
- case '100':
- // 非活性
- $('#Issues_ClassA').prop('disabled', true).css('background-color','#5b5b5b');
- $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
- break;
- // 準備中
- case '150':
- // 非活性
- $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassB').prop('disabled', true).css('background-color','#5b5b5b');
- $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
- break;
- // 実施中
- case '200':
- // 非活性
- $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassC').prop('disabled', true).css('background-color','#5b5b5b');
- $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
- break;
- // レビュー
- case '300':
- // 非活性
- $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassD').prop('disabled', true).css('background-color','#5b5b5b');
- $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
- break;
- // 完了
- case '900':
- // 非活性
- $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassE').prop('disabled', true).css('background-color','#5b5b5b');
- $('#Issues_ClassF').prop('disabled', false).css('background-color','#ffffff');
- break;
- // 保留
- case '910':
- // 非活性
- $('#Issues_ClassA').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassB').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassC').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassD').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
- $('#Issues_ClassF').prop('disabled', true).css('background-color','#5b5b5b');
- break;
- default:
- break;
- }
- })
(動画121)明細編集時に項目を選択すると、それに応じた活性制御が動的に追従する
(補足)
・動的に切り替える時は、各パターンでIssues_ClassA~Fまで全部について、制御を明記する必要があります。
・そうしないと、グレーアウトがどんどん累積していったりします(動的に切り替わらない)
・よって、ステータス単位で活性にする項目は、色をffffffに明示的に指定する必要あり
(1-5) まとめ
・非活性(例)
- $('#Issues_ClassF').prop('disabled', true).css('background-color','#5b5b5b');
・活性(例)
- $('#Issues_ClassE').prop('disabled', false).css('background-color','#ffffff');
・動的制御
- $(document).on('change', '[制御に使う項目]', function () { //制御処理 }
・(参考)項目の非表示
- $('#Issues_ClassF').css('display','none');
- $('#Issues_ClassF').css('display','');