背景・実現したいこと
kintoneのサンプルアプリ【ファイル管理】を利用し、都度アップされたファイルについて、テーブル内の【確認済】をクリックすると、クリックした日時とユーザー名(表示名)が自動で入るようにしたいです。
※画像には入っていませんが『A確認』の左側には、ファイルと変更内容を入れるフィールドがあります。
承認者は2名想定で、Aさんが『A承認』で【確認済】にチェックを入れると、その日時が『A確認日時』へ、そのクリックしたユーザー名(表示名)が『A確認者』へ自動で入るという動きです。
エラー情報 (開発者ツールのコンソール)
以前、【kintone】チェックボックスクリック時に、ユーザー名(表示名)を入れたいという投稿をさせていただき、解決しましたが、テーブル内でそれをした時に正常に動きませんでした。
それぞれの動きはできていて、必要なフィールドに値は入ります。
しかし、2行目で確認済をクリックすると、1行目の確認日時と確認者まで変わってしまいます。
利用したソースコード
(function() {
"use strict";
kintone.events.on(['app.record.create.change.A確認', 'app.record.edit.change.A確認'], function(event){
var tableRecords = event.record.変更履歴.value;
const user01 = kintone.getLoginUser();
var date01 = new Date();
event.record.変更履歴.value[0].value.A確認者.value.splice(0);
event.record.変更履歴.value[0].value.A確認日時.value = "";
if(event.record.変更履歴.value[0].value.A確認.value[0] === "確認済"){
event.record.変更履歴.value[0].value.A確認日時.value = formatDateTime(date01);
event.record.変更履歴.value[0].value.A確認者.value.push({code:user01.code, name:user01.name});
}
return event;
});
kintone.events.on(['app.record.create.change.B確認', 'app.record.edit.change.B確認'], function(event){
var tableRecords = event.record.変更履歴.value;
const user02 = kintone.getLoginUser();
var date02 = new Date();
event.record.変更履歴.value[0].value.B確認者.value.splice(0);
event.record.変更履歴.value[0].value.B確認日時.value = "";
if(event.record.変更履歴.value[0].value.B確認.value[0] === "確認済"){
event.record.変更履歴.value[0].value.B確認日時.value = formatDateTime(date02);
event.record.変更履歴.value[0].value.B確認者.value.push({code:user02.code, name:user02.name});
}
return event;
});
kintone.events.on(['app.record.create.change.A確認', 'app.record.edit.change.A確認'], function(event){
var tableRecords = event.record.変更履歴.value;
const user03 = kintone.getLoginUser();
var date03 = new Date();
event.record.変更履歴.value[1].value.A確認者.value.splice(0);
event.record.変更履歴.value[1].value.A確認日時.value = "";
if(event.record.変更履歴.value[1].value.A確認.value[0] === "確認済"){
event.record.変更履歴.value[1].value.A確認日時.value = formatDateTime(date03);
event.record.変更履歴.value[1].value.A確認者.value.push({code:user03.code, name:user03.name});
}
return event;
});
kintone.events.on(['app.record.create.change.B確認', 'app.record.edit.change.B確認'], function(event){
var tableRecords = event.record.変更履歴.value;
const user04 = kintone.getLoginUser();
var date04 = new Date();
event.record.変更履歴.value[1].value.B確認者.value.splice(0);
event.record.変更履歴.value[1].value.B確認日時.value = "";
if(event.record.変更履歴.value[1].value.B確認.value[0] === "確認済"){
event.record.変更履歴.value[1].value.B確認日時.value = formatDateTime(date04);
event.record.変更履歴.value[1].value.B確認者.value.push({code:user04.code, name:user04.name});
}
return event;
});
})();
function formatDateTime(dt) {
var y = dt.getFullYear();
var m = ('00' + (dt.getMonth()+1)).slice(-2);
var d = ('00' + dt.getDate()).slice(-2);
var hh = ('00' + dt.getHours()).slice(-2);
var mi = ('00' + dt.getMinutes()).slice(-2);
return (y + '-' + m + '-' + d + ' ' + hh + ':' + mi);
}
今は2行目までのコードしかなく、行が増えた場合に対応できないので、行数を固定しようと思っています。
もし、行数を固定しなくても、都度増えた行数に対して動く書き方があれば、そちらも教えていただきたいです。
よろしくお願い致します。