本日のゴール
今日はビューに全文検索機能を実装します。
一時変数として使うスコープ変数は、データの有効範囲によって使いどころが異なります。
今後も範囲の違うスコープ変数を使いますので、使い方を知っておいて下さい。
【完成イメージ】
検索条件入力用のフィールドを作成し、検索を実行する
1 | 【検索条件を指定する】 左メニューのコントロールタブから 「編集ボックス」コントロール を、ガイド用文字「検索バー」の位置にドロップする。 |
|||||||||||||||||||||
2 | ドロップした編集ボックスを選択し、プロパティ>データをクリックする。 下記のプロパティを設定する。
【解説】
※SSJS-サーバーサイドJavaScriptの略 |
|||||||||||||||||||||
3 | アウトラインでXPageを選択し、プロパティ>データをクリックする。 |
|||||||||||||||||||||
4 | 「結果の表示で検索」の◇アイコンをクリックし、「値の計算」を選択する。 | |||||||||||||||||||||
5 | SSJSで検索条件を指定し、OKボタンをクリックする。
|
|||||||||||||||||||||
6 | プロパティ>すべてのプロパティをクリックし、styleClassに下記のクラスを割り当てる。
|
|||||||||||||||||||||
7 | 【部分更新の範囲を指定する】 検索条件用編集ボックスを選択し、イベントタブからonchengeイベントをクリックし、サーバーオプションで「部分更新」を選択し、要素の選択をクリックする。
※部分更新を指定しなかった場合、ページ全体が再読み込みされるため、無駄な通信が発生する。 |
|||||||||||||||||||||
8 | ビューパネル「viewPanel1」を選択し、OKボタンをクリックする。 ※ビューパネルの名前を変更している場合は、変更後の名前を選択する。 |
|||||||||||||||||||||
9 | 【全文索引を作成する】 データベースのプロパティを表示し、「検索の作成」ボタンをクリックする。 |
|||||||||||||||||||||
10 | 全部検索の条件を指定し、OKボタンをクリックする。 | |||||||||||||||||||||
11 | ブラウザでプレビューし、表示内容を確認する。 下記の点を確認する。
|
|||||||||||||||||||||
12 | 【検索ボックスのサイズを変更し、右寄せする】 オリジナルのスタイルシートを定義するための、リソース>スタイルシートを選択し、 「新規スタイルシート」 ボタンをクリックする。 |
|||||||||||||||||||||
13 | スタイルシートに名前をつけ、OKボタンをクリックする。
※拡張子は自動的に追加されるため、名前には拡張子をつけない |
|||||||||||||||||||||
14 | スタイルシートに横幅を設定するためのクラスを入力し、保存する。 ソースは、【オリジナルCSSクラス①】を参照。 【解説】 オリジナルのクラスは、Bootstrapや他のライブラリとのクラス名競合、混同を防ぐため先頭に「org_」をつけています。 「org_」である必要はありませんが、外部ライブラリで定義されているもの、自分で定義したものがわかるような命名規則をつけた方が、保守を含めた生産性が上がります。 |
|||||||||||||||||||||
15 | XPageのソースタブを開き、BootstrapのCSSクラスを読み込んだ後に、オリジナルのCSSクラスを読み込むタグを追加する。 ソースは、【リソースファイルの読み込み②】を参照。 |
|||||||||||||||||||||
16 | ソースタブを開き、検索条件用編集ボックスを<div>タグで囲う。 ソースは、【検索ボックス外側HTML】を参照。 |
|||||||||||||||||||||
17 | 【プレースホルダを設定する】 検索条件用編集ボックスを選択し、プロパティ>すべてのプロパティをクリックし、基本>attrsの横にある「+」ボタンをクリックする。 【解説】 attrsプロパティは、すべてのプロパティに定義されていないHTMLプロパティを追加するためのプロパティです。 data-属性などユーザーが自由に定義するプロパティを追加する場合などに利用します。 プレースホルダは、ユーザーに入力する内容をガイドするプロパティです。編集ボックスにユーザーが入力を開始すると表示されていた内容は消えます。 |
|||||||||||||||||||||
18 | 下記のプロパティを設定する。
|
|||||||||||||||||||||
19 | 【検索条件用編集ボックスの後ろに虫眼鏡アイコンを表示する】 ソースタブを開き、データソース用終端タグ</xp:this.data>の後ろにbootstrapアイコンを読み込むためのHTMLタグを追加する。 ソースは、【リソースファイルの読み込み③】を参照。 |
|||||||||||||||||||||
20 | 検索条件用編集ボックスの後ろの枠線を消すためにCSSクラスを追加する。 検索条件用編集ボックスを選択し、プロパティ>すべてのプロパティをクリックし、styleClassに下記のクラスを割り当てる。
|
|||||||||||||||||||||
21 | 検索条件用編集ボックスの終端タグ</xp:inputText>の後ろに、<button>タグとbootstrap iconを表示<i>タグを追加する。 ソースは、【検索条件用編集ボックス後ろボタンHTML】を参照。 |
|||||||||||||||||||||
22 | 【ガイド用文字を削除する】 ガイド用文字「検索バー」を削除し、XPageを保存する。 |
|||||||||||||||||||||
23 | ブラウザでプレビューし、表示内容を確認する。 下記の点を確認する。
|
【オリジナルCSSクラス①】
/* search bar */
.org_max_w250{
max-width :250px;
}
【リソースファイルの読み込み②】
<xp:styleSheet href="css/original.css"></xp:styleSheet>
【検索ボックス外側HTML】
<div class="input-group float-end org_max_w250">
(xp:inputTextタグが入る)
</div>
【リソースファイルの読み込み③】
<!--bootstrap icon-->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css" />
【検索条件用編集ボックス後ろボタンHTML】
<button class="btn btn-outline-secondary border-start-0 border" type="button">
<i class="bi bi-search"></i>
</button>
新規作成ボタンを作成する
左メニューのコントロールタブから 「ボタン」コントロール を、ガイド用文字「アクションボタン」の位置にドロップする。 |
||||||||
ドロップしたボタンを選択し、プロパティ>ボタンをクリックする。 下記のプロパティを設定する。
|
||||||||
プロパティ>すべてのプロパティをクリックし、styleClassに下記のクラスを割り当てる。
|
||||||||
【ガイド用の文字を削除する】 ガイド用文字「アクションボタン」を削除し、XPageを保存する。 |
||||||||
ブラウザでプレビューし、表示内容を確認する。 |
||||||||
【ボタンのサイズ、色を変更するためのCSSクラスを定義する】 Bootstrapのボタンクラスは、ボタンの幅が指定されていないので、ボタンサイズがバラバラになる。また、プライマリーカラーは青で面白くないので、オレンジ色にするようなCSSクラスを追加する。 リソース>スタイルシートから「css/original.css」を開く。 |
||||||||
CSSクラス内で使用する共通の変数を追加する。 ソースは、【オリジナルCSSクラス②】を参照。 |
||||||||
オレンジ色ボタンの塗りつぶしバージョンと、中抜きバージョンを定義し、スタイルシートを保存する。 ソースは、【オリジナルCSSクラス③】を参照。 【解説】 ユーザーの目的に応じて、ボタンは下記のように使い分けます。
|
||||||||
新規作成ボタンを選択し、styleClassを下記の値に変更する。
|
||||||||
ブラウザでプレビューし、表示内容を確認する。 下記の点を確認する。
|
||||||||
新規作成ボタンを選択し、styleClassを下記の値に変更する。
|
||||||||
ブラウザでプレビューし、表示内容を確認する。 下記の点を確認する。
※フォーム用XPageをまだ作っていないので、ボタンの動作は後で定義する。 |
【オリジナルCSSクラス②】
/* color variable */
:root{
--active_color :darkorange;
--hover_color :orange;
--main_color :darkorange;
}
【オリジナルCSSクラス③】
/* button */
.org_btn{
width:120px;
}
.org_btn_primary{
color:#fff;
background-color:var(--main_color);
border-color:var(--main_color);
}
.org_btn_outline_primary{
color:var(--main_color);
background-color:#fff;
border-color:var(--main_color);
}
もう一つのビューをXPage化する
これまでと同じ手順を使って、もう一つのビューを使ったXPageを作成する。
1 | XPageを選択し 「新規XPage」 ボタンをクリックする。 |
|||||||||
2 | XPageに名前をつけ、OKボタンをクリックする。
|
|||||||||
3 | プロパティ>データをクリックし、追加ボタンからDominoビューをクリックする。 | |||||||||
4 | データソースプロパティのビューで 「最終更新日ソート – xpModifiedSortVw」 を選択する。 |
|||||||||
5 | データソースの「結果の表示で検索」に検索条件を指定し、OKボタンをクリックする。
|
|||||||||
6 | ビューパネル<xp:viewPanel>に先ほど行ったプロパティ変更、CSSクラスの追加を行う。 【設定項目】
|
|||||||||
7 | 先ほど作ったXPageからデータタグ<xp:this.data>の前のタグをコピーし、貼り付ける。 | |||||||||
8 | データタグの終端データタグ</xp:this.data>から、ビューパネルタグ<xp:viewPanel>の間のタグをコピーし、貼り付ける。 | |||||||||
9 | ビューパネルタグの終端<xp:viewPanel>から、XPageの終端タグ<xp:View>の間のタグをコピーし、貼り付ける。 | |||||||||
10 | タイトル用の<h2>のタイトルを「最終更新日ソート」変更する。 | |||||||||
11 | ブラウザでプレビューし、表示内容を確認する。 下記の点を確認する。
|