Top > 開発ガイド > コンポーネント開発Tips集 > ユーザ選択ウィンドウ

ユーザ選択ウィンドウ

対象バージョン

当ドキュメントはRubricks-0.6.x向けです。

概要

ユーザを検索/表示し、選択されたユーザのIDを取得するウィンドウを利用するための方法を解説します。

利用方法

1. rhtml内の任意の場所でユーザ選択ウィンドウを描画するヘルパを記述します。

  • API
    • render_user_select_window(options)
  • <%=
      render_user_select_window({
        :element_id => 'sample_user_select_window',
        :options    => {
          :prefix   => 'sample_user_select_',
        },
        :title      => 'Sample User Select Window',
        :variable   => 'rubricks.sample.user_select_window',
      })
    %>
    
  • options
キー備考
:element_idWindowのDOM-ID
:js_optionsWindowのオプション
:optionsユーザ選択画面のオプション(下記参照)
:titleウィンドウのタイトル文字列
:variableWindowを格納するJavaScript変数名
  • :options(ユーザ選択画面のオプション)
キーデフォルト値設定内容
:defaultnil初期表示時に選択済のユーザを表す検索条件(RubricksUser.find(:all)の条件)
:limit0選択可能なユーザの最大数(0を指定した場合は無制限)
:prefixnilHTMLのDOM-IDやJavaScriptの変数名・関数名の接頭辞
※必ずユニークな文字列を指定してください
:str_cancel_button'キャンセル'キャンセルボタンに表示する文字列
:str_selected_title'所属ユーザ'選択したユーザを表示するセレクトボックスのタイトル文字列
:str_submit_button'決定'実行ボタンに表示する文字列

2. 必要に応じてコールバック関数を指定します。

  • <script type="text/javascript">
      Object.extend(rubricks.system.user.user_select.sample_user_select_.callbacks, {
        before_cancel: function() {
          rubricks.sample.user_select_window.close();
        },
        before_submit: function(idArray, dataArray) {
          rubricks.sample.user_select_window.close();
          alert(idArray.join(','));
          $A(dataArray).each(
            function(data) {
              alert("id:" + data.id + "\nlogin_name:" + data.login_name + "\nname:" + data.name);
            }
          );
        }
      });
    </script>
    
  • 指定可能なコールバック
コールバック備考
after_add()ユーザ追加ボタン押下処理後に実行されます。
after_cancel()キャンセルボタン押下処理後に実行されます。
after_remove()ユーザ削除ボタン押下処理後に実行されます。
after_submit(idArray, dataArray)保存ボタン押下処理後に実行されます。
引数として現在選択されているユーザ情報の配列を受け取ることができます。
before_add()ユーザ追加ボタン押下処理前に実行されます。
before_cancel()キャンセルボタン押下処理前に実行されます。
before_remove()ユーザ削除ボタン押下処理前に実行されます。
before_submit(idArray, dataArray)保存ボタン押下処理前に実行されます。
引数として現在選択されているユーザ情報の配列を受け取ることができます。