5. 履歴・コメントモジュールの利用方法¶
この章では、スクリプト開発モデルで履歴・コメントモジュールを利用する手順や注意事項を説明します。
5.1. アプリケーションへの組み込み¶
5.1.1. スクリプト開発モデルで履歴・コメントモジュールを組み込む¶
埋め込みたいモジュールのHTMLファイルに、以下の記述を追加します。ヘッダ部(<imart type=“head”> 〜 </imart>)に、以下を記述します。
- <meta http-equiv="X-Intramart-Secure-Token" content="<imart type="imSecureToken" mode="value" />"> CSRF(クロスサイト・リクエスト・フォージェリ)対策用のSecureTokenを出力するmetaタグ
- src="im_journal/bundles/js/journal.bundle.js" を指定したscriptタグ
script内で、window.ImJournal.Journal を実行します。<imart type="head"> <meta http-equiv="X-Intramart-Secure-Token" content="<imart type="imSecureToken" mode="value" />"> <script type="text/javascript" src="im_journal/bundles/js/journal.bundle.js"></script> </imart> <!-- 埋め込むアプリケーションの記述 --> <div id="im-journal"></div> <!-- 埋め込むアプリケーションの記述 --> <script> const elementId = 'im-journal'; const eventGroupKey = { journalSampleId: '1' }; const application = 'im-journal-sample'; const options = { sortOrder: 'asc', eventTypeIds: [ 'im_journal_comment', 'im_journal_sample_log' ] }; new window.ImJournal.Journal(elementId, eventGroupKey, application, options); </script>引数については次の通りです。
引数名 | 必須/任意 | 型 | 説明 | 省略時の動作 |
---|---|---|---|---|
elementId | 必須 | string | 埋め込む場所に置いたdivタグのid属性を指定します。 | なし |
eventGroupKey | 必須 | object | イベントグループを一意に設定するためのキーです。
オブジェクトのKeyは任意の値を指定します。
|
なし |
application | 必須 | string | 埋め込むアプリケーションを指定します。 | なし |
options | 任意 | object | 履歴情報の昇順および降順の切り替えや、履歴に表示するイベントの絞り込みを行います。
利用可能なオプションについては以下のとおりです。
・ sortOrder : string
履歴の昇順および降順を指定するオプションです。
昇順を asc、降順を desc で指定します。
・ eventTypeIds : Array<string>
履歴に表示するものを絞り込むためのオプションです。
・ showEventCount : boolean
履歴件数の表示非表示を制御するためのオプションです。
・ showAttachmentCount : boolean
取得した添付ファイルの件数の表示非表示を制御するためのオプションです。
・ indicatorStyle : string
履歴・コメントモジュール自体のインジケータの表示制御をするためのオプションです。
表示しない場合は hide、表示する場合は show で指定します。
|
sortOrder
降順で表示されます。
eventTypeIds
絞り込みは行われません。
showEventCount
履歴件数を表示します。
showAttachmentCount
添付ファイルの件数を表示します。
indicatorStyle
インジケータを表示します。
|
コラム
eventTypeIdsに指定できるイベントのIDは以下です。
図: 履歴・コメントモジュール
5.2. 操作権限設定の実装¶
履歴・コメントモジュールは、各アプリケーションの業務データに従って、操作権限の設定が必要です。操作権限の設定はJavaで実装します。
5.2.1. 操作権限の設定を行うJavaファイルの作成¶
操作権限の設定を行うJournalSamplePolicyクラスを作成します。getApplication の戻り値は HTMLファイル で指定した application と同じ値にしてください。getPermissions の引数 JournalEventGroupKey eventGroupKey は HTMLファイル で指定した eventGroupKey と同じ値です。getPermissions の戻り値として、操作権限の配列を返却してください。操作権限については、サンプルコードの次の表を参照してください。サンプルコードでは、src/main/java/jp/co/intra_mart/journal/sample/policy ディレクトリ配下に JournalSamplePolicy.java を作成して実装します。package jp.co.intra_mart.journal.sample.policy; import java.util.HashSet; import java.util.Set; import jp.co.intra_mart.foundation.journal.event.JournalEventGroupKey; import jp.co.intra_mart.foundation.journal.policy.JournalPermission; import jp.co.intra_mart.foundation.journal.policy.JournalPolicyProvider; public class JournalSamplePolicy implements JournalPolicyProvider{ @Override public String getApplication() { return "im-journal-sample"; } @Override public Set<JournalPermission> getPermissions(final JournalEventGroupKey eventGroupKey) { final Set<JournalPermission> permissions = new HashSet<>(); permissions.add(JournalPermission.READ_EVENT); permissions.add(JournalPermission.REGISTER_COMMENT); permissions.add(JournalPermission.UPDATE_COMMENT); permissions.add(JournalPermission.DELETE_COMMENT); return permissions; } }操作権限は以下の通りです。
操作権限 説明 READ_EVENT 履歴情報の参照権限です。履歴情報の参照が許可されます。この権限のみの場合は読み取り専用となり、コメントの投稿や添付ファイルの追加ができません。REGISTER_COMMENT コメントの登録権限です。この権限では、コメントの投稿が許可されます。UPDATE_COMMENT コメントの更新権限です。この権限では、自分が投稿したコメントの編集が許可されます。ただし、この権限には登録権限は含まれません。DELETE_COMMENT コメントの削除権限です。この権限では、自分が投稿したコメントの削除が許可されます。ただし、この権限には登録権限は含まれません。READ_ATTACHMENT 添付ファイルの参照権限です。この権限では、履歴・コメントモジュールに添付ファイルタブが表示され、添付ファイル一覧の参照が許可されます。REGISTER_ATTACHMENT 添付ファイルの追加権限です。この権限では、コメント投稿時にファイルの添付が許可されます。DELETE_ATTACHMENT 添付ファイルの削除権限です。この権限では、自分が添付したファイルの削除が許可されます。DENY 参照を拒否します。この権限では、履歴・コメントモジュールが表示されません。
5.2.2. 操作権限の設定を行うクラスの登録¶
作成したJournalSamplePolicyクラスは、ServiceLoaderクラスを利用して読み込まれるサービスプロバイダとして扱います。
その為、ServiceLoaderとして読み込みを行う為のプロバイダ構成ファイルを配置します。
プロバイダ構成ファイルはクラスパス上の /META-INF/services/jp.co.intra_mart.foundation.journal.policy.JournalPolicyProvider ファイルです。
intra-mart e Builder for Accel Platform を利用する場合には、プロジェクト配下より src/main/resources/META-INF/services ディレクトリを作成した後、 jp.co.intra_mart.foundation.journal.policy.JournalPolicyProvider ファイルを作成してください。
プロバイダ構成ファイルには、作成したパッケージ指定クラスのFQDNを指定します。
jp.co.intra_mart.journal.sample.policy.JournalSamplePolicy