サブテーブルの追加削除を制限したい

レコード内に設置しているサブテーブルの横にある「+」「-」の表記を消すもしくは、使えなくする方法を探しています。

record[“サブテーブル名”].disabled = true;

上記の記述だと追加削除はできてしまいます。

 

皆様のお知恵をお借りしたく、どうぞよろしくお願い致します。

 

 

かめ様

お世話になっております。
cstapの江田と申します。

下記のコードでボタンを非表示にできます。
ただし、DOM要素のクラス名は予告なく変更される可能性があるので注意が必要です。

(function() {
"use strict";
kintone.events.on(['app.record.create.show','app.record.edit.show'], function(event) {
[].forEach.call(document.getElementsByClassName("subtable-operation-gaia"), function(button){
button.style.display = 'none';
});
});
})();

sctap江田様

ご回答ありがとうございます。実現できました。とても助かりました。

追加で質問なのですが、こちらは1レコードに複数サブテーブルがあると全ての追加や削除ができなくなりますよね。

個別に指定は可能なのでしょうか?

かめ様

以下のようなコードで実現できるかと思います。

(function() {
"use strict";
var tableNo = 0; //ボタンを消したいテーブルの番号。(0始まり)
kintone.events.on(['app.record.create.show','app.record.edit.show'], function(event) {
[].forEach.call(document.getElementsByClassName("subtable-gaia")[tableNo].getElementsByClassName("subtable-operation-gaia"), function(button){
button.style.display = 'none';
});
});
})();

江田様

動作確認できました。重ね重ねありがとうございました。

横から失礼致します。

江田様が提示されている方法は、モバイル版でも動作しますでしょうか。

イベントの指定部分を以下のとおりに変更したのですが、スマートフォンのアプリでは

追加と削除のボタンが表示されたままでした。

kintone.events.on([' **mobile.** app.record.create.show',' **mobile.** app.record.edit.show'], function(event) {

ご教示の程、よろしくお願い致します。

kintone初心者さま

江田様のソースの

kintone.events.on([' **mobile.** app.record.create.show',' **mobile.** app.record.edit.show'], function(event) {

を変更しただけではモバイル端末では追加&削除のボタンは表示されたままです。

下記のように携帯のDOMに合わせたコードにすると可能かと思います。

[].forEach.call(document.getElementsByClassName("subtable-row-buttons-gaia"), function(button){
button.style.display = 'none';
});

かめ様

 

ご返信ありがとうございます。

DOMがPC用と携帯用で別物になるのですね。

ご教示のとおり、携帯のDOMに変更したところ

スマートフォンで追加&削除のボタンを非表示にすることができました。

大変勉強になりました。本当にありがとうございました!

ボタンを消したいテーブルの番号を調べる方法をご教示いただけないでしょうか?

yamatami様

テーブル番号は、該当レコードの上から設置されている順番に0,1,2,3…と設定されています。

かめ様

ありがとうございます。

アプリの動作テストで実行したときに、+、マイナスボタンが表示されたままだったのでなやんでいたのですが、

アプリを更新してテストしてみたところ、非表示になっていました。

ありがとうございました。

 

個別のテーブルを消す場合に、テーブルの番号を入れている例が↑にありますが、サブテーブルの番号がクラス名subtable-gaiaで検索すると、その隣に「subtable-XXXXXXXX(XXXは数字)」というのがあるので、これを利用して、次のように書くといくつもサブテーブルがあるときに指定できます。

(function () {
"use strict";
kintone.events.on(['app.record.create.show', 'app.record.edit.show'], function (event) {
[].forEach.call(document.getElementsByClassName("subtable-XXXXXXXX")[0].getElementsByClassName("subtable-operation-gaia"), function (button) {
button.style.display = 'none';
});
});
})();

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。