おせわになります。
ある住所録(氏名、都道府県、住所、年齢、emailが記載)がkintoneのアプリ
https://hogehoge.cybozu.com/k/10/
としてある場合に
この住所録を最初から「都道府県=埼玉県」でフィルタした状態で表示することは可能でしょうか?
また、その時に必要なクエリストリング
例)https://hogehoge.cybozu.com/k/10/?pref='埼玉県’ のような表現
がわかりましたらご教授いただけないでしょうか。
おせわになります。
ある住所録(氏名、都道府県、住所、年齢、emailが記載)がkintoneのアプリ
https://hogehoge.cybozu.com/k/10/
としてある場合に
この住所録を最初から「都道府県=埼玉県」でフィルタした状態で表示することは可能でしょうか?
また、その時に必要なクエリストリング
例)https://hogehoge.cybozu.com/k/10/?pref='埼玉県’ のような表現
がわかりましたらご教授いただけないでしょうか。
sfckura様
cstapの落合です。
アプリの設定からご指定の検索条件で一覧の追加を行い、デフォルトで表示したい一覧を並び替えで一番上にもってくると、ご希望の状態になるかと思います。
以上、参考になりますでしょうか?
落合様
ご回答ありがとうございます。
本件の方法だと確かに最初に表示することが出来ました。
この方法でも良いのですが
47都道府県分あるのでおなじような一覧を47回作る必要があります。
最悪この方法で対応いたします。
ただ、
https://hogehoge.cybozu.com/k/10/?pref='埼玉県’
のように、クエリストリングで動的に設定できるほうほうがありますと、
47回も作らなくて済むので助かります。
レコード一覧のメニューの右側の空白部分に都道府県のセレクトを表示して選択するとページが移動する感じでどうでしょう?
以下サンプルです。
/**
* 都道府県:pref(文字列フィールド)
*/
(function () {
"use strict";
var prefList = [
'北海道','青森県' // 全都道府県を指定してください
];
// イベント
kintone.events.on("app.record.index.show", function (event) {
var $select = document.createElement('select');
$select.id = "pref_select";
$select.onchange = function () {
var pref = this.options[this.options.selectedIndex].value;
document.location = location.origin + location.pathname + '?query=pref = "' + pref + '"'
};
for (var i = 0, l = prefList.length; i < l; i++) {
var $option = document.createElement('option');
var pref = prefList[i];
$option.value = pref;
$option.innerHTML = pref;
var queryPref = decodeURI(location.search).replace('?query=pref = "', '').replace('"', '');
if (pref === queryPref) {
$option.selected = true;
}
$select.appendChild($option);
}
kintone.app.getHeaderMenuSpaceElement().appendChild($select);
return event;
});
})();
落合さん、さすがのコードですね。
補足ですが、URLにqueryを指定することで、フィルタした状態で一覧を表示することもできます。
詳しくは、こちらを
https://cybozudev.zendesk.com/hc/ja/articles/202388664-URL内のクエリで-表示するレコードの条件を指定