青山と申します。
タイトルの通り、レコードの編集または再利用について
レコード詳細画面を開いた時点で「あれ?どっちだったかな?ということがあります。
再利用を押した際にポップアップし、
「新しくレコードを追加して作成しますか?」
はい いいえ
のような事は可能でしょうか?
青山と申します。
タイトルの通り、レコードの編集または再利用について
レコード詳細画面を開いた時点で「あれ?どっちだったかな?ということがあります。
再利用を押した際にポップアップし、
「新しくレコードを追加して作成しますか?」
はい いいえ
のような事は可能でしょうか?
新規登録画面の表示イベント(app.record.create.show)のeventオブジェクトにreuseというプロパティがありますので、これを利用すると対応可能かと思います。
kintone.events.on([‘app.record.create.show’], function(event) {
if (event.reuse) {
var result = confirm(‘新しくレコードを追加して作成しますか?’);
if (!result) {
// cancelの時には、画面遷移等の処理
}
}
return event;
});
山下様
ご返信ありがとうございます。
ダイヤログのキャンセルを選択したときに、開いたレコードを閉じることはできますでしょうか?
キャンセルボタン相当の動きを取ろうとすると、再利用元のレコードの詳細表示画面に遷移させられますので、これに合わせようとすると、現状では
(1) (詳細画面表示イベントで)Webストレージに再利用元のURLを保持しておき、これを利用して遷移させる
(2) URLの?record=xxxが再利用元のレコードIDなので、これを利用して再利用元のURLを生成して遷移させる
(3) キャンセルボタンのクリックボタンを発火させる
の3パターンくらい考えられそうですが、手軽ですが(2)、(3)はアップデート耐性が低いので、(1)がいいのかなぁと思います。
山下様
ご返信ありがとうございます。
いろいろ方法があるのですね。
今回下記の様にしたいと考えていますが、
上記(1)を選択するときに書くサンプルコードがあればご教授頂きたいのですが
参考になるものはご存知でしょうか?
よろしくお願いいたします。
kintone.events.on([‘app.record.create.show’], function(event) {
if (event.reuse) {
var result = confirm(‘注:編集画面ではありません。新しくレコードを追加して作成しますか?’);
alert(‘OKが押されました。作業を続けてください。’);
} else {
alert(‘キャンセルが押されました。再度編集を行ってください。’);
}
}
return event;
});
特にサンプルは持ち合わせていませんので、ちょっと書いてみると次のような感じではないでしょうか。WebStorageや画面遷移の方法はググればより色々情報が得られると思います。
kintone.events.on([‘app.record.detail.show’], function(event) {
window.localStorage.setItem(‘reuse’, location.href);
return event;
});
kintone.events.on([‘app.record.create.show’], function(event) {
if (event.reuse) {
var result = confirm(‘注:編集画面ではありません。新しくレコードを追加して作成しますか?’);
alert(‘OKが押されました。作業を続けてください。’);
} else {
alert(‘キャンセルが押されました。再度編集を行ってください。’);
var url = window.localStorage.getItem(‘reuse’);
window.localStorage.removeItem(‘reuse’);
location.href = url;
}
}
return event;
});
山下様
ご返信ありがとうございます。
URLを仮に”https://test.cybozu.com/k/100/"としましたが
表示されません。何か原因はありますでしょうか?
よろしくお願いいたします
(function() {
“use strict”;
kintone.events.on([‘app.record.detail.show’], function(event) {
window.localStorage.setItem(‘reuse’, location.href);
return event;
});
kintone.events.on([‘app.record.create.show’], function(event) {
if (event.reuse) {
var result = confirm(‘注:編集画面ではありません。新しくレコードを追加して作成しますか?’);
alert(‘OKが押されました。作業を続けてください。’);
} else {
alert(‘キャンセルが押されました。再度編集を行ってください。’);
var url = window.localStorage.getItem(‘reuse’);
var url = window.localStorage.removeItem(‘reuse’);
location.href = “https://test.cybozu.com/k/100/”;
}
return event;
});
})();
ifはる部分がおかしいですね。失礼しました。
(function() {
“use strict”;
kintone.events.on([‘app.record.detail.show’], function(event) {
window.localStorage.setItem(‘reuse’, location.href);
return event;
});
kintone.events.on([‘app.record.create.show’], function(event) {
if (event.reuse) {
var result = confirm(‘注:編集画面ではありません。新しくレコードを追加して作成しますか?’);
if(result){
alert(‘OKが押されました。作業を続けてください。’);
}else {
alert(‘キャンセルが押されました。再度編集を行ってください。’);
var url = window.localStorage.getItem(‘reuse’);
var url = window.localStorage.removeItem(‘reuse’);
location.href = “https://test.cybozu.com/k/100/”;
}
}
return event;
});
})();
ちなみに、飛ばし先をアプリのトップ(決まったリンク)にするので良ければ、Webストレージの利用は不要ですね。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。