SweetAlert起動後の画面遷移について

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部分を変更したところ、上手く動作致しました!!!!

 

確認不足だなんてとんでもないです、とても勉強になりました!

本当にありがとうございました!!