大変お世話になっております。
まだまだうまくカスタマイズできなくて、
を参考にしながら進めておりますがつまずいてしまい、初投稿させていただきました。
一覧画面で、以下のように、更新ボタンをクリックすると「年齢」「継続年数」を今日の日付けで自動で埋めることができるようにしたいですが、全然反応しておりません。
「今日」を認識させるように、どうすればよろしいか全然想定できなくて・・・ぜひともご指導のほど、知恵やアドバイスをいただければ幸いです。
どうぞよろしくお願い致します。
以下コードになります。
(function() {
"use strict";
kintone.events.on('app.record.index.show', function(event){
var button = document.createElement('button');
button.innerText = 'update';
kintone.app.getHeaderMenuSpaceElement().appendChild(button);
button.addEventListener('click', function(){
//ここに更新処理をかく
var getBody = { app: kintone.app.getId(),};
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', getBody, function (resp) {
var records = resp["records"];
var putBody = { app: kintone.app.getId(),
records: []
};
records.forEach(function(record){
var birthDayFieldCode = record['生年月日'].value;
var joiningDayFieldCode = record['入社日'].value;
/**
* 経過年月日を計算する
* @param {string} dateStr 日付文字列
* @returns {object} 計算結果のオブジェクト
*/
var calculateDuration = function(dateStr) {
var currentDate = luxon.DateTime.local().startOf('day');
var date = luxon.DateTime.fromISO(dateStr).startOf('day');
// 経過期間を計算する
var duration = currentDate.diff(date, ['years', 'months', 'days']);
return duration.toObject();
};
// 年齢を計算する
var birthDayValue = record['生年月日'].value;
var birthDayDuration = calculateDuration(birthDayValue);
record['年齢'].value = (birthDayDuration.years + '歳' + birthDayDuration.months + 'ヶ月');
// 入社からの経過年月を計算する
var joiningDayValue = record['入社日'].value;
var joiningDayDuration = calculateDuration(joiningDayValue);
record['勤続年数'].value = (joiningDayDuration.years + '年' + joiningDayDuration.months + 'ヶ月');
// リクエストパラメータ作成
putBody.records.push({
"id": record.$id.value,
"records": {
"勤続年数": {
"value": record.勤続年数.value
},
"年齢": {
"value": record.年齢.value
},
}
});
});
kintone.api(kintone.api.url('/k/v1/records', true), 'PUT', putBody, function(resp){
// success
alert("更新成功");
location.reload(); // 成功したら画面を更新
}, function(resp) {
// error
alert("更新失敗");
});
});
});
});
})();
どうぞよろしくお願い致します。