Tabulator フィルター

 

 

 

 

 

ログインユーザーの登録レコードを表示するテーブルで、アドミンユーザーの場合、全グループのデータが表示されるので、Tabulatorのフィルターを使ってユーザー別にフィルターできるようにしました。

< コード例 >

アドミンユーザーの場合、マルチセレクトでグループを選べるセレクトタグを配置します。


// アドミンユーザーグループ名フィルター用 //
  if (isAdmin) {

    const uajax = new MyAjax("include/GetGroupNames.php", {})
    const groups = uajax.exec()
    
    // マルチセレクトタグ //
    const st = new SelectTag()
    const html = st.getGroups(groups, groups)
    //console.log(html)

    $(".groupsel").removeClass("dsp_none")
    $("#group_select").html(html)
    // マルチプルセレクト by vanillaSelectBox //
    let gpsel = new vanillaSelectBox("#groupsel", {
      maxWidth: 600,
      maxHeight: 600,
      minWidth: -1,
      //selected: cntrys + ""   <== これは出来ないので先にselectのoptionにセット
    })


  }

検索処理後、Tabulatorのフィルターを使って選んだグループ名で絞込みます。


    // アドミンユーザーフィルター値配列取得 //
    let filtervals = []
    if (isAdmin) {
      filtervals = $("#groupsel").val()
      //alert(filtervals)
    }


    // -C ブックリスト検索 (グループ名は指定しない) //
    const reqUserGroup = userGroup === "Admin" ? "%%" : userGroup
    const initajax = new MyAjax("include/GetBookList.php", {group: reqUserGroup, mindt: mindt, maxdt: maxdt})
    const seracheddata = initajax.exec()["data"]
    console.log(seracheddata)
    // グリッドの更新 //
    table.setData(seracheddata) // localなのでURLは要らぬ
    
    // アドミンユーザーフィルターの実行 //
    if (isAdmin) {
      table.setFilter("NM_GROUP", "in", filtervals);
    }
    // タイトルのレコード数  //
    $("#reccnt").text(table.getDataCount("active"))

< 画面例 >

初期設定 全グループ
グループ指定

コメントを残す