サブテーブルを使用して100件程度のチェックシートをアプリ化して
運用しています。24時間かけて1枚のチェックシート(1レコード)を消化
するのですが、サブテーブルの読み込みに5秒程度かかるため、その間に
なんらかの操作をするとデータが壊れてしまいます。
モーダルダイアログか、読み込み終わりまで操作不可にするような仕掛けを
考えているのですが、何かお知恵はございませんでしょうか。
サブテーブルを使用して100件程度のチェックシートをアプリ化して
運用しています。24時間かけて1枚のチェックシート(1レコード)を消化
するのですが、サブテーブルの読み込みに5秒程度かかるため、その間に
なんらかの操作をするとデータが壊れてしまいます。
モーダルダイアログか、読み込み終わりまで操作不可にするような仕掛けを
考えているのですが、何かお知恵はございませんでしょうか。
JavaScript のイベント処理だと、イベントが開始されるまで処理が行われませんので、
CSS で 操作を抑止して、JavaScript のイベント処理で抑止を解除されてはいかがでしょうか?
なお DOM 操作になりますので、kintone の仕様変更で動作しなくなる場合があります。
CSS
/* 編集画面で操作を抑止 */
.gaia-argoui-app-edit-form,
.editablelayout-gaia {
pointer-events: none;
}
/* 編集画面で操作を抑止解除 */
.gaia-argoui-app-edit-form.xp-pointer-auto,
.editablelayout-gaia.xp-pointer-auto {
pointer-events: auto;
}
JavaScript
(function() {
"use strict";
const cnames = ['gaia-argoui-app-edit-form','editablelayout-gaia'];
kintone.events.on(['app.record.create.show','app.record.edit.show'], function(event) {
cnames.forEach(function(cn) {
var ele = document.getElementsByClassName(cn);
if (ele.length > 0) {
ele[0].classList.add('xp-pointer-auto');
}
});
return event;
});
})();
こちら、ご教示頂いた方法で、実装してみました。ありがとうございました。