(function() {
“use strict”;
// mobile.app.record.create.showとmobile.app.record.edit.showイベントに対するハンドラを設定
kintone.events.on(
[“mobile.app.record.create.show”, “mobile.app.record.edit.show”],
function(event) {
// 任意のスペースフィールドにボタンを設置
var mySpaceFieldButton = document.createElement(“button”);
mySpaceFieldButton.id = “my_space_field_button”;
mySpaceFieldButton.innerHTML = “作業開始”;
mySpaceFieldButton.style.width = “80px”;
mySpaceFieldButton.style.height = “50px”;
mySpaceFieldButton.onclick = function() {
var tableFieldCode = “作業実績_0”; // 作業実績のテーブルフィールドコード
var startDateFieldCode = “作業開始”; // 作業開始日付フィールドコード
var endDateFieldCode = “作業終了”; // 作業終了日付フィールドコード
var resultFieldCode = “作業実績”; // 作業実績のドロップダウンフィールドコード
var noteFieldCode = “備考欄”; // 備考欄のフィールドコード
var record = kintone.mobile.app.record.get();
var table = record.record[tableFieldCode].value;
// 空白の作業開始フィールドを探す
var emptyRowIndex = -1;
for (var i = 0; i < table.length; i++) {
if (!table[i].value[startDateFieldCode].value) {
emptyRowIndex = i;
break;
}
}
if (emptyRowIndex !== -1) {
// 空白の作業開始フィールドが見つかった場合
table[emptyRowIndex].value[startDateFieldCode].value = moment().format(
"YYYY-MM-DDTHH:mm"
);
} else {
// 空白の作業開始フィールドが見つからなかった場合、新しい行を追加
var newRow = {};
newRow[startDateFieldCode] = {
type: "DATETIME",
value: moment().format("YYYY-MM-DDTHH:mm"),
};
newRow[endDateFieldCode] = {
type: "DATETIME",
value: "",
}; // 作業終了日付フィールドを空白に設定
newRow[resultFieldCode] = {
type: "DROP_DOWN",
value: "",
}; // 作業実績ドロップダウンを空白に設定
newRow[noteFieldCode] = {
type: "MULTI_LINE_TEXT",
value: "",
}; // 備考欄を空白に設定
table.push({ value: newRow }); // 新しい行をテーブルの末尾に追加
}
kintone.mobile.app.record.set(record);
alert("作業開始!\n保存を押してください!");
};
// レコードの情報を取得
var record = kintone.mobile.app.record.get().record;
var startDateFieldValue = record["作業開始"].value;
// 現在の日時を取得
var currentDate = moment();
// 作業開始日時フィールドの日付が現在の日付以前の場合、作業開始ボタンを非表示にする
if (
startDateFieldValue &&
moment(startDateFieldValue).isAfter(currentDate)
) {
mySpaceFieldButton.style.display = "none";
}
var spaceElement = kintone.mobile.app.record.getSpaceElement(
"my_space_field"
);
spaceElement.innerHTML = "";
spaceElement.appendChild(mySpaceFieldButton);
}
);
})();
作業開始日時フィールドの日付が現在時刻以前の場合は、非表示に
作業開始日時フィールドの日付が現在時刻以前の場合は、表示にしたいのですが
うまくいきません。どこが誤っているのでしょうか?