1.1.27.0 の変更点(.NET Core)
ソース基準日: 2021年5月30日(版を示すソースコミットの日付)。1.1.26.0 からの変更です。
機能追加・仕様変更
- その他 — テーマをカスタマイズできるようになった。
- その他 — ルックアップ機能が加わった。
- 運用・設定 — 読み取り専用の場合は画面に表示しない設定を行う機能が加わった。
- その他 — フルテキスト検索インデックスに含むサイト情報を制御できるようになった。
- API・拡張 — サーバースクリプトにFormsDataメソッドを追加した。
- API・拡張 — トップにスタイルとスクリプトを設置できるようになった。
- その他 — NetFramework関連プロジェクトを削除した。
不具合修正
- 画面・表示 — リンク項目でJSON形式を使用した際にリストが取得できない不具合を修正した。
- 画面・表示 — リンクのSearchFormatが表示名で表示されない不具合を修正した。
- 画面・表示 — 検索機能を有効化した複数選択項目に$p.setが正しく動作しない不具合を修正した。
- API・拡張 — サーバスクリプトのcolumnsオブジェクトのHideが一覧画面に適用されない不具合を修正した。
- その他 — 複数のレコードの復元が失敗する不具合を修正した。
- 運用・設定 — ID及びバージョン項目に不要な設定項目が表示される不具合を修正した。
- 実行環境・DB — PostgreSQLでリマインダーの期限切れの時刻判定SQLが動作しない不具合を修正した。
実装を読む
リンク選択から値を取得するルックアップ
リンク設定に Lookups を保持し、各ルックアップは取得元項目 From、代入先項目 To、取得方式 Type を持ちます。取得方式は Value と DisplayName です。取得元項目の読み取り権限を確認してから値を取り出し、権限がない場合は空文字を返します(Link.cs、Lookup.cs、Lookup.cs)。
図を読み込み中…
フルテキストに含めるサイト情報を設定する
Search.json の初期値は、パンくず FullTextIncludeBreadcrumb が false、サイトID FullTextIncludeSiteId が false、サイトタイトル FullTextIncludeSiteTitle が true です。サイト設定にも同じ項目があり、未指定の場合は全体の設定を採用します(Search.json、SiteSettings.cs)。
| 含める情報 | パラメータ | 初期値 |
|---|---|---|
| パンくず | FullTextIncludeBreadcrumb | false |
| サイトID | FullTextIncludeSiteId | false |
| サイトタイトル | FullTextIncludeSiteTitle | true |
フォームの値をサーバースクリプトから取得する
ソース上のメソッド名は context.FormsData(name) です。引数をそのまま Context.Forms.Data(name) に渡して値を返します。変更概要にある「FormData」ではなく、この版の実装名に合わせて記述します(ServerScriptModel.cs)。
const controlId = context.FormsData('ControlId');
context.Log(controlId);トップ画面のスクリプトとスタイル
トップ画面の場合は、空でない context.TopScript と context.TopStyle をそれぞれの描画対象に加えます。サイトトップであることと、設定内容が空でないことの両方を確認します(HtmlScripts.cs、HtmlStyles.cs)。
読み取り専用時に表示を抑止する
サイト設定の内部名は NoDisplayIfReadOnly です。適用判定は、サイトの権限種別が Permissions.Types.Read で、かつこの設定が有効である場合に true を返します。項目単位の Hide と区別して指定します(SiteSettings.cs)。
ユーザの初期テーマ
User.json に Theme を追加し、初期値を sunny にしています。サイトのスタイル・スクリプトの設定とは別に、ユーザのテーマを保持する変更です(User.json)。
ソース上の版番号
Web アプリのパッケージ用 Version は 1.1.6.0 です。AssemblyVersion と FileVersion は 1.1.27.0 なので、この記事は後者と対象コミットを基準にしています(Implem.Pleasanter.NetCore.csproj、Implem.Pleasanter.csproj)。