ホーム・ページ・ポートレット
アプリケーションで新規ポートレットを追加したり、既存のポートレットをオーバーライドしたりすることができます。
すべてのポートレットには、以下のファイルがあります。
<portlet_name>.config.js<portlet_name>.controller.js<portlet_name>.tpl.html<portlet_name>-mini.controller.js<portlet_name>.mini.tpl.html
ポートレットの追加またはオーバーライド
ポートレットは、 registerCustomPortlet() メソッドを使用して登録またはオーバーライドできます。 カスタム・ポートレットを登録し、デフォルト・ポートレットのシーケンスまたは可視性または personaConfig をオーバーライドするためのレジストリー・メカニズムが用意されています。 config.js ファイルは、カスタム・ポートレット用に作成する必要があります。また、オーバーライドする必要があるポートレット用にも作成する必要があります。
デフォルト・ポートレットをオーバーライドする場合は、デフォルト・ポートレットの templateUrl および controller を変更することはできません。 オーバーライドは、ポートレットのシーケンス、可視性、 resourceId および personaConfig を変更する場合にのみサポートされます。 ただし、 templateUrl およびコントローラーを変更するには、オーバーライドしてから新規カスタム・ポートレットを登録することにより、デフォルト・ポートレットを非表示にすることをお勧めします。
- 新規ポートレットと、関連するテンプレート HTML、CSS、および Controller JS ファイルを、ランタイム内の関連するフォルダーに定義します。
- 以下のコード・スニペットに示すように、カスタム・ポートレットを登録するための新規構成ファイルを定義します。
angular.module('store').config(['iscPortletPvdrProvider', function(iscPortletPvdrProvider) { iscPortletPvdrProvider.registerCustomPortlet(customName, customConfigJson);
registerCustomMethodPortlet 方式
このメソッドは、新規ポートレットをホーム・ページに追加するために使用します。 これは、新規ポートレットを登録するため、またはデフォルトのポートレット構成属性
sequenceNumber、 showPortlet、 resourceId 、および personaConfigをオーバーライドするためにのみ、お客様が使用する必要があります。注: この方法を使用する場合は、ポートレット名がデフォルト・ポートレットの名前と競合していないことを確認してください。 これを行うには、新規ポートレットとして定義されているポートレットの名前の前または末尾に「
extn_」を追加するか、デフォルト・ポートレットをオーバーライドします。 例えば、デフォルト・ポートレットの名前と競合する「find-products-portlet.config.js」としてポートレットに名前を付ける代わりに、ポートレットの名前を「extn_find-products-portlet.config.js」または「find-products-portlet_extn.config.js」に変更します。 これは、カスタム・ポートレット用に定義されている場合、 miniViewTemplateUrl 属性および miniViewController 属性に適用されます。 古い仕様ポートレット (以前にリリース 17.3に定義されていたもの) を含め、定義されているすべてのポートレットについて、このガイドラインに従うことをお勧めします。customName {String} ポートレットの論理名。 これは、アプリケーション内のポートレットごとに固有でなければなりません。 同じ名前のカスタムポートレットが2つ以上ある場合、2つ目以降のポートレットは無視されます。 ただし、デフォルト・ポートレットの sequenceNumber、 showPortlet、 resourceId および personaConfig 属性は、デフォルト・ポートレット名を渡すことにより、このメソッドを使用してオーバーライドできます。注:
customName を "moretasksportlet" にすることはできません。 これはアプリケーションで予約されています。customConfigJson {object} これは、ポートレットのさまざまなプロパティーの JSON 構成です。 使用されるサポート対象属性は以下のとおりです。templateUrl {String}: 新規カスタム・ポートレットの場合は必須です。 これはポートレットの HTML テンプレートの URL であり、デフォルト・ポートレットをオーバーライドするために渡された場合は無視されます。controller {String}: 新規カスタム・ポートレットの場合は必須です。 これはポートレットのコントローラーの名前であり、デフォルト・ポートレットをオーバーライドするために渡された場合は無視されます。sequenceNumber {Number}: ポートレットは、この番号の昇順でソートされます。 したがって、数値が小さいほど、ポートレットは先頭に表示され、数値が大きいほど、ポートレットはシーケンスの後の方に表示されます。 カスタム・ポートレットの場合は、この値を 10 の倍数で指定しないでください。 これは、デフォルト・ポートレットの対応する値をオーバーライドするために渡すことができます。 新しい仕様ポートレット (リリース 17.3 以降) の場合、これはpersonaConfig.personaSequenceNumberに置き換えられます。showPortlet {Boolean}: 新規カスタム・ポートレットの場合は必須です。 これは、ポートレットを UI に表示するかどうかを示すフラグです。 これをfalseに設定すると、ユーザーがポートレットに対するリソース許可を持っているかどうかに関係なく、UI にポートレットは表示されません。 これは、デフォルト・ポートレットの対応する値をオーバーライドするために渡すことができます。resourceId {String}: 新規カスタム・ポートレットの場合は必須です。 これは、ポートレットのリソース許可です。 パイプを使用して、複数のリソース・アクセス権を結合することができます (例:'EXTN000015|EXTN000012|EXTN000028')。 ユーザーが、指定されたリソース ID の少なくとも 1 つを表示する許可を持っている場合、ポートレットが表示されます。 これは、デフォルト・ポートレットの対応する値をオーバーライドするために渡すことができます。personaConfig {object}: 新規カスタム・ポートレットの場合は必須です。 これは、ポートレットが新しい仕様ポートレット (17.3 以降) であるかどうかを決定する新しい JSON 構成です。 定義されていない場合、ポートレットは古い仕様ポートレットとして扱われます。 これには、モデル・ユーザー関連のレンダリング決定を行うために必要な属性が含まれています。 サポートされる属性は以下のとおりです。personaName {String}: 新規カスタム・ポートレットの場合は必須です。 これは、 Sterling Business Centerで定義されているペルソナの名前です。 これは、CommonCodeCodeType「WSC_HOMEPAGE_PERSONA」のCodeNameに対応します。 これは、ポートレットが、現在選択されているペルソナで使用可能なポートレットの 1 つであるかどうかを判別するために UI で使用されます。 これは、personaNameが現在選択されているモデル・ユーザーと一致する場合にのみ、リストで考慮されます。 この属性は、可視性を保証するものではありません。 可視性は、showPortletとresourceIdの組み合わせによって決定されます。personaSequenceNumber {Number}: 新規カスタム・ポートレットの場合は必須です。 これは、新しい仕様ポートレット (17.3 以降) のsequenceNumber属性に取って代わります。 デフォルト・ポートレットの場合は、5 の倍数で指定する必要があります。 同じペルソナに対して表示されるすべてのポートレットは、この番号の昇順に配置されます。 ただし、カスタム・ポートレットの場合、この値は 5 の倍数ではありません。miniViewTemplateUrl {String}: 新規カスタム・ポートレットの場合は必須です。 「その他のタスク」 ポートレットにオーバーフローしたときに、ポートレットのミニ・ビューまたは小さいビューを作成するために使用されるテンプレートの URL 。miniViewController {String}: 新規カスタム・ポートレットの場合は必須です。 「その他のタスク」ポートレットにオーバーフローしたときに、ポートレットのミニ/スモール・ビューに数値を表示するためのマッシュアップ /API 呼び出しを行うために使用されるコントローラーの名前。
templateUrl、controller、sequenceNumber(オプション)、showPortlet、resourceIdなどの古い仕様ポートレットに適用可能なその他の属性は、引き続き有効です。- デフォルト・ポートレットには、さらにサイト・マップ属性が含まれています。 これらはサイト・マップの作成に使用され、必須ではありません。 カスタム・ポートレットには、サイト・マップ属性は必要ありません。
iscPortletPvdrProvider.registerCustomPortlet('extnfindproductsportlet', {
templateUrl: './store/views/home/extn_find-products-portlet.tpl.html',
controller: 'store.views.home.extn_find-products-portlet',
showPortlet: true,
resourceId: 'EXTN000031',
personaConfig: {
personaName: 'Customer_Service',
personaSequenceNumber: 11,//these are in non-multiples of 5.
miniViewTemplateUrl: './store/views/home/extn_find-products-portlet-mini.tpl.html',
miniViewController: 'store.views.home.extn_find-products-portlet-mini'
}
});デフォルト・ポートレット (新規仕様) をオーバーライドするには、 permission、 persona 、および personaSequenceNumberを変更します。iscPortletPvdrProvider.registerCustomPortlet('findproductsportlet', {
resourceId: 'EXTN000071',
personaConfig: {
personaName: 'Custom_Customer_Service',//this is assumed to be a new persona added to SBC.
personaSequenceNumber: 11//these are in non-multiples of 5.
}
});