Kintone

(() => {
  'use strict';

  const SPACE_CODE = 'specs_btn_space';
  const BTN_ID = 'add_btn';

  const SET_FIELDS = [
    ['cpu_1','memory_1','disk_1','os_1'],
    ['cpu_2','memory_2','disk_2','os_2'],
    ['cpu_3','memory_3','disk_3','os_3'],
    ['cpu_4','memory_4','disk_4','os_4'],
    ['cpu_5','memory_5','disk_5','os_5']
  ];

  let visibleCount = 1; // 最初は1セットだけ

  const showSet = (i) => {
    SET_FIELDS[i].forEach(code=>{
      kintone.app.record.setFieldShown(code,true);
    });
  };

  const hideSet = (i) => {
    SET_FIELDS[i].forEach(code=>{
      kintone.app.record.setFieldShown(code,false);
    });
  };


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

      // ★最初は1セットだけ表示
      showSet(0);

      hideSet(1);
      hideSet(2);
      hideSet(3);
      hideSet(4);


      const space =
      kintone.app.record.getSpaceElement(SPACE_CODE);

      if(!space) return event;


      if(document.getElementById(BTN_ID))
      return event;


      const btn=document.createElement('button');

      btn.textContent="フィールド追加";

      btn.onclick=function(){

        if(visibleCount>=5){
          alert("最大5セットまで");
          return;
        }

        showSet(visibleCount);

        visibleCount++;

      };

      space.appendChild(btn);

      return event;

    });

})();

コメント

タイトルとURLをコピーしました