@y_minamitani9534 さん
ありがとうございます。
デバッグツールで探ってみます、!
先程のタブ生成するコードの
contentContainer.appendChild(createTabContent(fieldChoice01.fieldChoice0));
このような書き方は問題ないのでしょうか?
以下はconfig.jsです。長いですが、一応記載いたします。
(function (PLUGIN_ID) {
‘use strict’;
var TextField = ;
var tabFields = {};
var tabFields2 = {};
var tabFields3 = {};
var config = kintone.plugin.app.getConfig(PLUGIN_ID);
var h2 = document.createElement(“h2”);
var b1 = document.createElement(“b”);
var b2 = document.createElement(“b”);
var h3_1 = document.createElement(“h3”);
var h3_2 = document.createElement(“h3”);
var h3_3 = document.createElement(“h3”);
h2.innerHTML = “タブ表示の設定”;
b1.innerHTML = “タブ情報”;
h3_1.innerHTML =“①”;
h3_2.innerHTML =“②”;
h3_3.innerHTML =“③”;
//タブ名入力1
var textBox1 = new Kuc.Text({
label:‘①タブ名入力’,
id:‘tabName’,
requiredIcon: false,
})
//タブ名入力2
var textBox2 = new Kuc.Text({
label:‘②タブ名入力’,
id:‘tabName2’,
requiredIcon: false,
})
//タブ名入力3
var textBox3 = new Kuc.Text({
label:‘③タブ名入力’,
id:‘tabName3’,
requiredIcon: false,
})
b2.innerHTML = “タブ表示設定”;
//フィールド選択1
tabFields.tabField0 = new Kuc.Dropdown({
label:‘表示するフィールド1’,
items:TextField,
requiredIcon: false,
})
//フィールド選択1の+ボタン
let plus = document.createElement(“button”);
plus.innerHTML =“+”;
plus.id = ‘plusId’;
plus.addEventListener(“click”,addplus);
//+ボタン押下で項目追加する処理1
let numFields = 1;
function addplus(){
if(numFields < 10){
tabFields[‘tabField’+numFields] = new Kuc.Dropdown({
label: ‘表示するフィールド’ + (numFields +1),
items: TextField,
requiredIcon: false,
});
const ttarget =document.getElementById(“target”);
ttarget.appendChild(tabFields[‘tabField’+numFields]);
ttarget.appendChild(document.createElement(“br”));
numFields++;
}
}
//フィールド選択2
tabFields2.tabField2_0 = new Kuc.Dropdown({
label:‘表示するフィールド1’,
items:TextField,
requiredIcon: false,
})
//フィールド選択2の+ボタン
let plus2 = document.createElement(“button”);
plus2.innerHTML =“+”;
plus2.id = ‘plusId’;
plus2.addEventListener(“click”,addplus2);
//+ボタン押下で項目追加する処理2
let numFields2 = 1;
function addplus2(){
if(numFields2 < 10){
tabFields2[‘tabField2_’+numFields2] = new Kuc.Dropdown({
label: ‘表示するフィールド’ + (numFields2 +1),
items: TextField,
requiredIcon: false,
});
const ttarget2 =document.getElementById(“target2”);
ttarget2.appendChild(tabFields2[‘tabField2_’+numFields2]);
ttarget2.appendChild(document.createElement(“br”));
numFields2++;
}
}
//フィールド選択3
tabFields3.tabField3_0 = new Kuc.Dropdown({
label:‘表示するフィールド1’,
items:TextField,
requiredIcon: false,
})
//フィールド選択3の+ボタン
let plus3 = document.createElement(“button”);
plus3.innerHTML =“+”;
plus3.id = ‘plusId’;
plus3.addEventListener(“click”,addplus3);
//+ボタン押下で項目追加する処理3
let numFields3 = 1;
function addplus3(){
if(numFields3 < 10){
tabFields3[‘tabField3_’+numFields3] = new Kuc.Dropdown({
label: ‘表示するフィールド’ + (numFields3 +1),
items: TextField,
requiredIcon: false,
});
const ttarget3 =document.getElementById(“target3”);
ttarget3.appendChild(tabFields3[‘tabField3_’+numFields3]);
ttarget3.appendChild(document.createElement(“br”));
numFields3++;
}
}
//サブミットボタン表示
const buttonSubmit = new Kuc.Button({
text: ‘保存’,
type: ‘submit’
})
//キャンセルボタン表示
const buttonCancel = new Kuc.Button({
text: ‘キャンセル’
})
const target = document.getElementById(“target”);
const target2 = document.getElementById(“target2”);
const target3 = document.getElementById(“target3”);
const footer = document.getElementById(“footer”);
target.before(h2);
target.appendChild(b1);
target.appendChild(document.createElement(“br”));
target.appendChild(textBox1);
target.appendChild(document.createElement(“br”));
target.appendChild(textBox2);
target.appendChild(document.createElement(“br”));
target.appendChild(textBox3);
target.appendChild(document.createElement(“br”));
target.appendChild(document.createElement(“br”));
target.appendChild(b2);
target.appendChild(document.createElement(“br”));
target.appendChild(h3_1);
target.appendChild(tabFields.tabField0);
target.appendChild(plus);
target.appendChild(document.createElement(“br”));
target2.appendChild(h3_2);
target2.appendChild(tabFields2.tabField2_0);
target2.appendChild(plus2);
target2.appendChild(document.createElement(“br”));
target3.appendChild(h3_3);
target3.appendChild(tabFields3.tabField3_0);
target3.appendChild(plus3);
target3.appendChild(document.createElement(“br”));
footer.appendChild(buttonCancel);
footer.appendChild(buttonSubmit);
//保存ボタン時の処理
buttonSubmit.addEventListener(‘click’, event => {
//1
const configData ={};
for (let i = 0; i < numFields; i++) {
configData['tabSelect' + i] = tabFields['tabField' + i].value;
}
//2
for (let i = 0; i < numFields2; i++) {
configData['tabSelect2_' + i] = tabFields2['tabField2_' + i].value;
}
//3
for (let i = 0; i < numFields3; i++) {
configData['tabSelect3_' + i] = tabFields3['tabField3_' + i].value;
}
//入力されたデータをセット
kintone.plugin.app.setConfig(configData,function(){
alert('プラグインの設定が保存されました。アプリを更新してください。');
window.location.href = '../../flow?app=' + kintone.app.getId();
});
//入力されたタブ名1を取得
function getTabName1(){
var getTab = document.getElementById('tabName').value;
localStorage.setItem('tabName',getTab);
return getTab;
}
getTabName1();
//入力されたタブ名2を取得
function getTabName2(){
var getTab2 = document.getElementById('tabName2').value;
localStorage.setItem('tabName2',getTab2);
return getTab2;
}
getTabName2();
//入力されたタブ名3を取得
function getTabName3(){
var getTab3 = document.getElementById('tabName3').value;
localStorage.setItem('tabName3',getTab3);
return getTab3;
}
getTabName3();
});
console.log(config);
buttonCancel.addEventListener(‘click’, event => {
window.location.href = ‘…/…/’ + kintone.app.getId() + ‘/plugin/’;
});
// フィールドをドロップダウンに表示
KintoneConfigHelper.getFields([“SINGLE_LINE_TEXT”, “MULTI_LINE_TEXT”, “RICH_TEXT”, “NUMBER”,
“CALC”, “RADIO_BUTTON”, “CHECK_BOX”, “MULTI_SELECT”, “DROP_DOWN”, “DATE”, “TIME”, “DATETIME”,
“FILE”, “LINK”, “USER_SELECT”, “ORGANIZATION_SELECT”, “GROUP_SELECT”, “REFERENCE_TABLE”, “SPACER”,
“GROUP”, “SUBTABLE”, “RECORD_NUMBER”, “CREATOR”, “CREATED_TIME”, “MODIFIER”, “UPDATED_TIME”]).then(function (resp) {
for (var i = 0; i < resp.length; i++) {
var item;
// サブテーブルのフィールドコードを除外
if (!isSubtableField(resp[i])) {
// サブテーブルのフィールドの場合、関連する親テーブルの情報も取得して表示
if (resp[i].subtableCode) {
item = { ‘label’: resp[i].subtableCode + ‘.’ + resp[i].label, ‘value’: resp[i].subtableCode + ‘.’ + resp[i].code };
} else {
item = { ‘label’: resp[i].label, ‘value’: resp[i].code };
}
TextField.push(item);
}
}
});
// サブテーブル内のフィールドかどうかを判定する関数
function isSubtableField(field) {
// サブテーブル内のフィールドの場合、subtableCode プロパティが存在します
return !!field.subtableCode;
}
})(kintone.$PLUGIN_ID);