SweetAlertを利用して、レコードの保存後にプロセス処理を促すアラートを表示するコードを用意しました。
レコード保存ボタンを押すとアラートは問題なく出るのですが、アラートの「OK」を選択してもレコード編集画面のまま遷移しません。レコードの保存はされています。
アラートを「OK」で閉じた後、保存したレコード詳細画面に遷移させたいのですが、下記コードをどのように修正すればよろしいでしょうか?
kintone.events.on([
'app.record.create.submit.success'
],
function(event) {
return new kintone.Promise(function(resolve, reject) {
swal({
title: "保存完了",
text: "内容に問題なければ「提出する」⇒「実行」を押してください。",
type: "warning",
}
);
}
).then(function(r) {
return event;
}
);
});
助言頂けますと幸いです。
宜しくお願い致します!
こちらで如何でしょうか。
(function() {
"use strict";
kintone.events.on('app.record.edit.submit.success', function(e) {
var recordId = e.record.$id.value;
return new kintone.Promise(function(resolve, reject) {
swal({
title: "保存完了",
text: "内容に問題なければ「提出する」⇒「実行」を押してください。",
type: "warning"
});
window.location.href = window.location.origin + window.location.pathname + "#record=" + recordId;
}).then(function(r) {
return event;
});
});
})();
>FM様
ご確認頂きありがとうございます!
記載頂いたコードで試してみたところ、保存後の画面遷移は問題なく行われましたが、かわりにアラートが出なくなってしまいました…。
ここからどこを書き換えていけばいいのか、自分でも模索してみます。
もし追加でアドバイス頂けるようであれば助かります…!!
失礼致しました。上のコードに大分抜けがありました。
(function() {
"use strict";
kintone.events.on('app.record.create.submit.success', function(e) { // <-上のコードだとeditにしてました。
var recordId = e.record.$id.value;
return new kintone.Promise(function(resolve, reject) {
swal({
title: "保存完了",
text: "内容に問題なければ「提出する」⇒「実行」を押してください。",
type: "warning"
}, function(){
// ダイアログクローズ後の処理
window.location.href = window.location.origin + window.location.pathname + "#record=" + recordId;
});
}).then(function(r) {
return event;
});
});
})();
>FM様
引き続きアドバイスありがとうございます!
新しく頂いたコードですと、アラートの「OK」を選択してもレコード編集画面のまま遷移しませんでした。
ダイアログクローズ後の処理について、試しに別のURL(アプリの一覧画面のURL)を指定してみたところ問題なくアラート⇒OK⇒画面遷移の流れが出来ましたので、保存したレコードのURL取得がきちんと出来ていないということになると思うのですが…自分で調べてみてもFM様に記載頂いた内容で問題ないはずなのにな、と思います。
ちなみにSweetAlertはCybozu CDNからv2.1.2を読み込んで使っていますが、バージョンが影響する可能性はありますでしょうか?
質問が続いてしまい申し訳ございません。
もしよろしければ、またご返答頂けると幸いです。
確認不足で申し訳ないです。
app.record.create.submit.success時とapp.record.edit.submit.success時ではURLが若干違うようで、そこで意図しない挙動になっていました。
swal部分を以下に書き換えれば行けると思います。
バージョンは1.1.0を使っていましたが、別URLを指定して推移できていたなら関係無いです。
swal({
title: "保存完了",
text: "内容に問題なければ「提出する」⇒「実行」を押してください。",
type: "warning"
}, function(){
var pathname = window.location.pathname;
pathname = pathname.substring(0, pathname.lastIndexOf('/')) + '/show';
window.location.href = window.location.origin + pathname + "#record=" + recordId;
});
>FM様
ありがとうございます!!!!!!!!!
swal部分を変更したところ、上手く動作致しました!!!!
確認不足だなんてとんでもないです、とても勉強になりました!
本当にありがとうございました!!