Aipoの登録画面でユーザー選択を追加する

登録画面でユーザーや設備を登録する部分についてはaipo.widget.MemberNormalSelectListを使って実装しています。

実際にユーザー選択を追加したい場合はvmファイルに以下を追加します。

<div dojoType="aipo.widget.MemberNormalSelectList"
        id="membernormalselect"
        widgetId="membernormalselect"
        buttonAddId="button_member_add"
        buttonRemoveId="button_member_remove"
        memberFromId="tmp_member_from"
        memberToTitle="$l10n.SCHEDULE_ENTRY_USER_LIST"
        memberToId="member_to"
        memberFromUrl="$!jslink.getPortletById($!portlet.ID).addQueryData('template','UserLiteJSONScreen').addQueryData('mode','group').addQueryData('groupname','LoginUser')"
        memberFromOptionKey="name"
        memberFromOptionValue="aliasName"
        groupSelectId="tmp_group"
        groupSelectPreOptionKey="LoginUser"
        groupSelectPreOptionValue="$l10n.SCHEDULE_ALL_GROUP"
        groupSelectOptionKey="groupId"
        groupSelectOptionValue="name"
        memberGroupUrl="$!jslink.getPortletById($!portlet.ID).addQueryData('template','ScheduleUserGroupLiteJSONScreen').addQueryData('mode','mygroup_and_post')"
        changeGroupUrl="$!jslink.getPortletById($!portlet.ID).addQueryData('template','UserLiteJSONScreen').addQueryData('mode','group')">
    </div>

idやURLを適宜変えることで、ユーザー選択部分を実装することができます。

選択時に実行される関数はMemberNormalSelectList.js内で定義されていて、dojoAttachEventを使って各イベントに対して関数を実行させています。