<目次>
(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','');