🎉
Pleasanter:期限付きテーブルのエディタで「開始」入力時に既定値を加算した日時を「完了」に自動入力するスクリプト
Pleasanterの期限付きテーブルで、開始(StartTime)項目を入力すると開始=完了あるいは環境によっては開始の一日後が完了(CompletionTime)項目に入力されますが、会議室予約の帳票として会議室利用は原則1時間の場合に、開始に1時間加算したものを完了に自動入力するスクリプトです。
完了項目の「エディタの書式」(EditorFormat値)を取得したかったのですが、スクリプトでは難しいようです。完了(CompletionTime)の文字数(10,16,19)で「エディタの書式」を判定してます。
StartTime_Add_CompletionTime
// 開始入力時に既定値(例:0日,1時間,0分,0秒)を完了にプラス
$p.on('change', 'StartTime', function(){
const addDate = 0;
const addHour = 1;
const addMin = 0;
const addSec = 0;
// let stTime = $('#StartTime').val();
let stTime = $p.getControl('StartTime').val();
// let stTime = $p.getValue('StartTime');
console.log('stTime:' + stTime)
let stDate = new Date(stTime);
console.log('stDate:' + stDate)
let Y = stDate.getFullYear();
let M0 = stDate.getMonth();
let M1 = stDate.getMonth() + 1;
// let D = stDate.getDate();
let D = stDate.getDate() + addDate;
// let H = stDate.getHours();
let H = stDate.getHours() + addHour;
// let m = stDate.getMinutes();
let m = stDate.getMinutes() + addMin;
// let S = stDate.getSeconds();
let S = stDate.getSeconds() + addSec;
console.log(Y,M1,D,H,m,S)
let edDate = new Date(Y, M0, D, H, m, S);
console.log('edDate:' + edDate)
Y = edDate.getFullYear();
M0 = ('0' + (edDate.getMonth() )).slice(-2);
M1 = ('0' + (edDate.getMonth() + 1)).slice(-2);
D = ('0' + edDate.getDate()).slice(-2);
H = ('0' + edDate.getHours()).slice(-2);
m = ('0' + edDate.getMinutes()).slice(-2);
S = ('0' + edDate.getSeconds()).slice(-2);
console.log(Y,M1,D,H,m,S)
let cmpTime = $p.getControl('CompletionTime').val();
let cmpTimeLen = cmpTime.length ;
console.log('CompletionTime:' + cmpTime + '(' + cmpTimeLen + ')')
let endDate;
// <label for="EditorFormat">エディタの書式</label>
// 年月日 option:nth-child(1) Ymd
if(cmpTimeLen == 10){
endDate = Y + '/' + M1 + '/' + D ;// YYYY/MM/DD
}
// 日付と時刻(分) option:nth-child(2) Ymdhm
else if(cmpTimeLen == 16){
endDate = Y + '/' + M1 + '/' + D + ' ' + H + ':' + m ;// YYYY/MM/DD HH:mm
}
// 日付と時刻(秒) option:nth-child(3) Ymdhms
else if(cmpTimeLen == 19){
endDate = Y + '/' + M1 + '/' + D + ' ' + H + ':' + m + ':' + S ;// YYYY/MM/DD HH:mm:SS
}
console.log('endDate:' + endDate)
$p.set($p.getControl('CompletionTime'), endDate);
console.log('CompletionTime:', $p.getControl('CompletionTime').val() )
})
Discussion