ここしばらく Pleasanter を触っています。
あれこれ適当に触ってると、テーブルの一覧に関する設定と、ビューに関する設定で、ちょっと不思議な挙動に出会ったので、メモっておきます。
- Pleasanter 1.4.13.0, Docker 版
一覧表示について
まずは、テストのために、シンプルな記録テーブルを追加します。適当なフォルダを作って、『標準』タブから『記録テーブル』を追加しておきます。
適当なレコードを2つほど追加しておきます。
画面から見て分かるように、この時点ではビューがありません(右上にビューの選択肢がでていません)。
一覧に表示する項目の追加
次に、『テーブルの管理』を選択して、『一覧』タブを選択します。デフォルトでは表示項目が、
のようになっています。ここに、適当な項目、ここでは、『分類A』を追加して、
更新しておきます。これで、一覧を表示すると、
追加した『分類A』が増えてますね。期待通りの挙動です。
ビューを追加
Pleasanter には『ビュー』という便利な機能があります。ここでいう『ビュー』とは表示項目をはじめフィルタ条件やソート条件などの各種条件をあらかじめプリセットした設定セットのようなものだととらえています(『カレンダー』とか『カンバン』とかは、『ビューモード』と呼んでいると思います)。
ということで、先ほどのテーブルにビューを追加してみます。『テーブルの管理』を開いて、『ビュー』タブを選択します。
この時点だと、ビューはありません。そこで、『新規作成』ボタンを押すと、
のようにビューの設定画面が表示されます。ここで、ビューの名称として『ビュー1』を入力し、その他はデフォルトのままとしておきます。画面下部にある『追加』ボタンを押してビューを追加し、さらにテーブルの管理画面で『更新』を押しておきます。
ビューを切り替え
テーブルの画面に戻ると、一覧画面の右上に
『ビュー』というドロップダウンリストが現れ、選択できるようになっています。選択肢は、
空欄と先ほど追加した『ビュー1』です。空欄はビュー設定前の設定内容(何て呼ぶのが適切なんでしょうかね?ここでは仮に『名無しのビュー』とでもしておきます)になります。この時点だと、『ビュー1』を選んでも、表示項目が『名無しのビュー』と同じなので、画面は変わりません。
『名無しのビュー』の設定を変更
個人的におや?と思ったのはここからです。ビューの選択肢が2つあるので、設定内容は個別に管理されていると思ってました。
なので、この状態から『名無しのビュー』の一覧の表示項目を変更してみます。テーブル管理を開いて、『一覧』タブを選んで、表示項目に『分類B』を追加しておきます。
この状態で、一覧を表示すると、
となってます。で、ここから、ビューをさきほどの『ビュー1』に切り替えると、
ん?『ビュー1』を選択しているにもかかわらず『分類B』が表示されています。
画面更新が正しくできなくて一時的に不整合が起きてるのかな?と思って、ブラウザの画面をリロードしても変わりません。不思議です。念のために、ログアウトして再ログインしても変わりません。どういうこと?
なんにしも、キャッシュとか画面更新とかの問題ではないようです。
調査
ということで、直観に反するので、この状況について調査してみました。テーブルの管理を開いて、『ビュー1』の設定内容(『一覧』)を確認すると、
あれれ?なぜか、『分類B』が追加されています。
どういうこと?
さらに調査
ちょっと疑わしい挙動なので、追加調査として、ここで『ビュー1』の『一覧』に、さらに表示項目を追加してみます。
これを保存して、更新してから、もう一度一覧画面を表示させます。
『ビュー1』を選択すると、『分類C』がでてきます。一方、『名無しのビュー』を選んだ場合は、
『分類C』がでてきません。なるほど、なんとなくわかりました。
推測
上記のことから、
- ビューを新規に作成した時点では、『名無しのビュー』の設定内容を参照しているだけと思われる
- なので、『名無しのビュー』に対する変更が、ビューにも反映される
- しかし、ビュー側(『ビュー1』)で設定内容を変更すると、新たに設定内容を持つようになる
という挙動になっているように推測されます。
ビューを複数持った場合も、ビュー側で一覧の内容を変更したものは個別の設定になり、ビュー側で一覧の内容を変更しないものは常に『名無しのビュー』の内容がビュー側に反映されるという挙動になってました。
所感
ちょっと直観的ではない挙動ですが、ま、こんな挙動のようです。
あてずっぽうですが、この挙動だと、ビューに関する一覧での表示項目の設定内容が『名無しのビュー』へのリファレンスだけで済むので、その分設定内容を保持しなくてもよい、というのをメリットとしているのかもしれませんね。
ま、なんにせよ、多分、バグというよりは、ドキュメント等では触れられていないけど、既定の挙動ではないかな?と思います。
とはいえ、直観的ではなかったのでちょっと驚いた、ということでまとめてみました。ご参考までに。