機能説明

同一の画面を参照しているユーザの一覧を表示します。
また、SharedResource APIと連動し、そのリソースのロック状態を画面上において共有します。
ロック機能を有効にした場合、画面上からSharedResource APIを用いたロックの獲得、開放を行うことが可能です。
これにより、特定の業務画面における操作を排他的に制御する画面を作成することが可能です。
この機能は同時に参照しているユーザの表示にWebSocketまたはCometを利用します。
ネットワークの状況により、同時接続中のユーザの表示が正確に行われない場合があります。

属性一覧

注釈 属性名 説明 省略時の動作 実行時評価
必須
application java.lang.String 業務アプリケーションを表す文字列を指定してください。 -
callback java.lang.String 状態が変更された際に呼び出されるコールバック関数名 -
el java.lang.String レンダリングを行うタグを指定するためのCSSセレクタ 未指定の場合、画面上に表示されません。
maximumNumberOfDisplay java.lang.Integer 画面上に表示する最大ユーザ数 5
name java.lang.String 共有リソースを扱うための名称 ランダムな名称が付与されます
style java.lang.String 表示スタイルを指定します。
“embed” “none”が指定可能です。
"embed"
useForceUnlock java.lang.Boolean 強制定期にロック開放を行う false
useLabel java.lang.Boolean ユーザ名の表示を制御します。 true
useLock java.lang.Boolean ロック機能の利用有無 false
usePicture java.lang.Boolean ユーザプロファイル画像を利用します。 true
その他 java.lang.String リソースを一意に表すキーをキー/バリュー形式で指定します。
一般的に業務データの主キーを指定してください。
-

内部タグ

なし

サンプル

ラベル、顔写真あり

ラベル、顔写真あり
<%@ taglib prefix="imt" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui" %>
<imui:head>
  <imt:sharedResource application="myapp" key="my-application-key" el="#peoples" />
</imui:head>

<div id="peoples"></div>

ラベル無し、顔写真あり

ラベル無し、顔写真あり
<%@ taglib prefix="imt" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui" %>
<imui:head">
  <imt:sharedResource application="myapp" key="my-application-key" el="#peoples" useLabel="false" />
</imui:head>

<div id="peoples"></div>

ロック機能あり

ロック機能あり
<%@ taglib prefix="imt" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui" %>
<imui:head>
  <imt:sharedResource application="myapp" key="my-application-key" el="#peoples" useLock="true" />
</imui:head>

<div id="peoples"></div>

ユーザ数表示上限を超えた場合の表現

ユーザ数表示上限を超えた場合の表現
<%@ taglib prefix="imt" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui" %>
<imui:head>
  <imt:sharedResource application="myapp" key="my-application-key" el="#peoples" maximumNumberOfDisplay="3" />
</imui:head>

<div id="peoples"></div>

コールバックの実装

コールバックの実装
<%@ taglib prefix="imt" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui" %>
<imui:head>
  <script type="text/javascript">
    function callback(event) {
      console.log(event)
      switch (event.type) {
        case 'JOIN':
          imuiShowSuccessMessage(event.sessions[0].user.displayName + 'さんが参加しました。');
          break;
        case 'LEAVE':
          imuiShowSuccessMessage(event.sessions[0].user.displayName + 'さんが離脱しました。');
          break;
        case 'LOCK_STATE_CHANGED':
          imuiShowSuccessMessage('ロック状態が変更されました。');
          break;
        case 'UPDATE':
          imuiShowSuccessMessage('このリソースが更新されたようです。');
          break;
        case 'ERROR':
          imuiShowErrorMessage('エラーが発生しました。');
          break;
        case 'OFFLINE':
          imuiShowErrorMessage('オフラインです。');
          break;
      }
    }
  </script>

  <imt:sharedResource application="myapp" key="my-application-key" el="#peoples" callback="callback" />
</imui:head>

<div id="peoples"></div>