先日、違うスレッドで似たような質問をしたのですが、
どうしてもうまくいかないので再度ご教授ください。
【行いたいフロー】
①実行前イベントの時にコメント入力をSweetAlert2で表示。
②コメントがあった場合、コメントと日付に値を入れる
コメントがない場合、日付のみ値を入れる
【現象】
console.logをみると値は入っているように見えるが、実際は入っていない
kintone.Promiseを使わないと入らないとは思いますが、
kintone.Promiseを使っても入らないのはなぜでしょうか?
ここにアップするように少しプログラムを削除したので)が一致しないかもしれません・・・
jQuery.noConflict();
(function ($) {
"use strict";
//コメント入力画面表示関数
function input_comment(event) {
var record = event.record;
var comment;//コメント用変数
//日付取得
var dt = new Date();
var y = dt.getFullYear();
var m = ("00" + (dt.getMonth()+1)).slice(-2);
var d = ("00" + dt.getDate()).slice(-2);
var day = y + "-" + m + "-" + d;
//非同期処理
return new kintone.Promise(function(resolve, reject) {
//コメント入力処理
var options = {
title: "コメント",
text: "コメントを記入して『コメント書き込みボタン』を押してください",
input: "textarea",
showCancelButton: true,
confirmButtonText: 'コメント書き込み',
allowOutsideClick: false
}
Swal.fire(options).then(function(result){
//コメント入力チェック
if (result.value) {
//コメント表示処理
let timerInterval
Swal.fire({
type: 'warning',
title: '処理中です。しばらくお待ちください。',
html: 'I will close in <strong></strong> milliseconds.',
timer: 10000,
onBeforeOpen: () => {
Swal.showLoading()
timerInterval = setInterval(() => {
Swal.getContent().querySelector('strong')
.textContent = Swal.getTimerLeft()
}, 100)
},
onClose: () => {
clearInterval(timerInterval)
}
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log('I was closed by the timer')
}
})
comment = result.value;
event['record']['コメント']['value'] = comment;
event['record']['日付']['value'] = day;
kintone.app.record.set(event);
resolve();
}else if(result.dismiss === 'cancel'){
resolve(false);
//reject(event);
}else {
//コメント未入力
let timerInterval
Swal.fire({
type: 'warning',
title: '処理中です。しばらくお待ちください。',
html: 'I will close in <strong></strong> milliseconds.',
timer: 10000,
onBeforeOpen: () => {
Swal.showLoading()
timerInterval = setInterval(() => {
Swal.getContent().querySelector('strong')
.textContent = Swal.getTimerLeft()
}, 100)
},
onClose: () => {
clearInterval(timerInterval)
}
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log('I was closed by the timer')
}
})
event['record']['日付']['value'] = day;
kintone.app.record.set(event);
resolve();
}
});
});
}
//プロセスのアクション実行前イベント
var ProcessEvents = ["app.record.detail.process.proceed"];
kintone.events.on(ProcessEvents, input_comment);
})(jQuery);