オープンソースWebDBのプリザンター(pleasanter)ブログ

オープンソースのWebDBのプリザンター(pleasanter)のブログとサービス情報サイトです

カテゴリ : お知らせプリザンターとは?使い方スクリプト・スタイル環境構築事例動画

【わかりやすく解説】サーバスクリプトの条件「サイト設定の読み込み時」について

f:id:h-ogawa-reedex-co-jp:20210124081900p:plain


こんにちは。
リーデックス小川です。

公園を散歩していると、梅が咲いていました。春が近づいてきましたね。昼間はだいぶ暖かくなってきました。と、同時に、花粉も飛び始めましたね。気候は気持ちいいのに、花粉のせいでしばらくくしゃみ生活が始まりそうです。

さて今回は、サーバスクリプトの条件「サイト設定の読み込み時」について、わかりやすく解説していきたいと思います。サーバサイドスクリプトについては、本ブログでも紹介していますので、初めての方はぜひご覧ください。

 

条件(スクリプトの実行タイミング)は?

実行タイミングですが、サイトの設定の読み込み時、つまり、一番最初に実行されます(他の条件を含め、検証できればと考えています)。 

この条件で使えるオブジェクトとパラメータ

利用できるオブジェクトは、各条件で利用できる共通のオブジェクト以外では、下記オブジェクトとなります。

オブジェクト:siteSettings

サイトの設定情報を取得、編集できる値となっているようです。ここからは推測なのですが、データベースのSiteテーブルのSiteSetttingsカラムの内容を動的に変更、設定できるようになるのではないかと思っています。

パラーメータ

このオブジェクトで利用できるパラメータは下記となります。今日(2020年1月24日)時点では、下記の値が変更できるようです。

説明 変更可否
DefaultViewId 既定のビューを設定。

 

ビューについて、わからない方については、公式マニュアル、もしくは、下記記事も参考にしていただければと思います。
pleasanter.hatenablog.jp

 

 設定は以下のように行います。 

siteSettings.DefaultViewId = 1;

 

上記のサンプルで設定する値(1)は、テーブル管理「ビュー」で設定されているIDとなります。

f:id:h-ogawa-reedex-co-jp:20210124084813p:plain

 

サンプル

下記は、ユーザIDにより規定のビューを変更するサンプルです。

//ユーザIDが1の場合、既定のビューを1に設定する
if (context.UserId === 1) {   
    siteSettings.DefaultViewId = 1;  
//ユーザIDが2の場合、既定のビューを2に設定する
} else if (context.UserId === 2) {  
    siteSettings.DefaultViewId = 2;   
//それ以外の場合は、既定のIDを3に設定する
} else {   
    siteSettings.DefaultViewId = 3; 
}

context.UserIdの詳細はこちらでは割愛しますが、サーバスクリプトで利用できるcontextオブジェクトで、ログインしているユーザのIDが取得できるパラメータです。ユーザIDについては、メニューの「管理」→「ユーザの管理」のIDから確認できます。なお、自分のIDについては、画面右上のユーザ名の中にある「プロファイル編集」から確認できます。

f:id:h-ogawa-reedex-co-jp:20210124090647p:plain

 

実際に上記サンプルを実行する場合には、実際に登録されているユーザのIDに変更してください。変更したIDをテーブル管理の「サーバスクリプト」に登録します。

f:id:h-ogawa-reedex-co-jp:20210124085828p:plain

 

上記を変更、更新した後に、設定した当該テーブルにログインを行うことで、既定のビューが切り替わることが確認できます。

 公式マニュアル・参考サイト

まとめ

今回は、サーバスクリプトの条件「サイト設定の読み込み時」について、わかりやすく解説してみました。

サイトの設定を動的に変えることができるので、楽しみな機能です。現時点では、設定できる値も少ないですが、これから増えていくと思われますので、機能追加を待ちたいと思います。

 弊社では、スクリプトやスタイルを利用したカスタマイズについてご支援させていただいております。スクリプトについて相談したい、業務を改善のために実現したい機能がある、や、本記事や過去の記事のスクリプトを応用したい、などありましたら、お気軽にお問合せください。

それでは、今回はこの辺で。
最後までご覧いただき、ありがとうございました。