ログインユーザーの登録レコードを表示するテーブルで、アドミンユーザーの場合、全グループのデータが表示されるので、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"))
< 画面例 >
初期設定 全グループ |
グループ指定 |