- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
09-13-2024 01:55 AM - 編集済み 09-17-2024 04:57 PM
〇概要
サービスポータルのService Catalogのトップ画面にOOTBでは「人気のあるアイテム(SC Category Page)」が表示されるが、これを表示ユーザーが最近使用したカタログアイテムの履歴が表示されるようにしたく、その方法を教えていただきたいです。
〇要望
Service Catalogのトップ画面(sc_category)に各ユーザーが最近使用したカタログアイテムの履歴が表示されるようにする。
カテゴリを選択時に紐づくカタログアイテムを表示する
〇確認したこと
InstanceのWidgetを「人気のある最近のアイテムウィジェット(Recent & Popular Items widget)」に変更した。
トップ画面は要求を満たしたが、カテゴリメニュー(SC Categories)でカテゴリを選択してもカタログアイテムの表示が切り替わらなくなってしまった。
〇知りたいこと
下記のいずれか
・Widgetを「人気のあるアイテム(SC Category Page)」にしたまま、オプション等で要望を満たす方法
・Widgetを「人気のある最近のアイテムウィジェット(Recent & Popular Items widget)」に変更し、かつカテゴリを選択時に紐づくカタログアイテムを表示する方法
・要望を満たせるその他のWidget
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
09-25-2024 03:26 AM - 編集済み 09-25-2024 03:27 AM
なるべく小さい影響で実現したいので、(大きな改造は技術力と開発や維持メンテナンスのコストが必要)
一番小さい影響は、ページレイアウトとして SC Category Page Widget の上にRecent & Popular Items Widgetを配置してしまう。カテゴリーを選択しても常に上に表示されてしまうのが少々煩わしいです。
常に表示されるのが煩わしいなら、それを解消するための改造する方法として、
Recent & Popular Items widgetに少々の改造(クローンして改造)をして、カテゴリーを選択されたら、非表示にする改造をする。
Widgetでは、URLを見てカテゴリーを選択しているかどうかを判定しています。
SC Category Page WidgetのServer Scriptの最初には以下のように書かれています。これはURLにsys_idが設定されていればそれをCategoryIDとして使用しています。
Server Script
data.category_id = $sp.getParameter("sys_id");
HTMLでは、以下のように記述して、category_id 変数が設定されていなければ囲まれた部分を消します。
HTML
<div ng-if="!data.category_id">
<!-- 表示処理 -->
</div>
このくらいなら、小さい改造で済むと思います。
ほかに、Widgetの中にWidgetを埋め込む形で実現すると、OOTBのWidgetをクローンしないで、Upgradeの影響を回避する方法などにするとより良いとは思いますが、ここで説明するには長くなってしまいます。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
09-25-2024 03:26 AM - 編集済み 09-25-2024 03:27 AM
なるべく小さい影響で実現したいので、(大きな改造は技術力と開発や維持メンテナンスのコストが必要)
一番小さい影響は、ページレイアウトとして SC Category Page Widget の上にRecent & Popular Items Widgetを配置してしまう。カテゴリーを選択しても常に上に表示されてしまうのが少々煩わしいです。
常に表示されるのが煩わしいなら、それを解消するための改造する方法として、
Recent & Popular Items widgetに少々の改造(クローンして改造)をして、カテゴリーを選択されたら、非表示にする改造をする。
Widgetでは、URLを見てカテゴリーを選択しているかどうかを判定しています。
SC Category Page WidgetのServer Scriptの最初には以下のように書かれています。これはURLにsys_idが設定されていればそれをCategoryIDとして使用しています。
Server Script
data.category_id = $sp.getParameter("sys_id");
HTMLでは、以下のように記述して、category_id 変数が設定されていなければ囲まれた部分を消します。
HTML
<div ng-if="!data.category_id">
<!-- 表示処理 -->
</div>
このくらいなら、小さい改造で済むと思います。
ほかに、Widgetの中にWidgetを埋め込む形で実現すると、OOTBのWidgetをクローンしないで、Upgradeの影響を回避する方法などにするとより良いとは思いますが、ここで説明するには長くなってしまいます。