<!--                                                                  -->
<!--  Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--  $Id$  -->
<!--                                                                  -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:template name="userSummaryLayout">

        <div class="User-main-nav">

            <xsl:if test="Params/search">
                <div>
                    <strong>
                        <xsl:if test="Pages/TotalResults"><xsl:value-of select="Pages/TotalResults" /></xsl:if>
                        <xsl:if test="not(Pages/TotalResults)">0</xsl:if>
                    </strong>
                    result<xsl:if test="Pages/TotalResults != 1 or not(Pages/TotalResults)">s</xsl:if> found for <strong><xsl:value-of select="Params/search" /></strong>
                </div>
            </xsl:if>

            <xsl:if test="Access/rps/user/search or Access/rps/user/edit">
                <div class="User-main-navinner InformationCols">
                    <xsl:if test="Access/rps/user/edit">
                        <div class="InformationCols-item">
                            <h3>Add Users</h3>
                            <ul class="ControlsList">
                                <li class="ControlsList-item">
                                    <xsl:call-template name="uiButton">
                                        <xsl:with-param name="content" select="'Create New User'" />
                                        <xsl:with-param name="type" select="'text-inline'"/>
                                        <xsl:with-param name="size" select="'large'"/>
                                        <xsl:with-param name="iconLeftType" select="'add'"/>
                                        <xsl:with-param name="url" select="'/rps/user?c=edit'"/>
                                    </xsl:call-template>
                                </li>
                                <li class="ControlsList-item">
                                    <xsl:call-template name="uiButton">
                                        <xsl:with-param name="content" select="'Import Existing User'" />
                                        <xsl:with-param name="type" select="'text-inline'"/>
                                        <xsl:with-param name="size" select="'large'"/>
                                        <xsl:with-param name="iconLeftType" select="'upload'"/>
                                        <xsl:with-param name="url" select="'/rps/user?c=import'"/>
                                    </xsl:call-template>
                                </li>
                            </ul>
                        </div>
                    </xsl:if>
                    <xsl:if test="Access/rps/user/search">
                        <div class="User-main-navinner-form InformationCols-item InformationCols-item-double">
                            <form action="/rps/user" id="userSearch">
                                <h3>Search Users</h3>
                                <input type="hidden" name="c" value="search" />

                                <label class="InputWrapper InputWrapper-with-icon InputWrapper-with-icon-right ControlsGroup-item">
                                    <input class="Input MainSearch-query-input" placeholder="Search..." value="{Params/Query}" type="text" name="Query" />
                                    <div class="InputWrapper-icon Icon-trigger" onclick="document.getElementById('userSearch').submit();">
                                        <xsl:call-template name="icon">
                                            <xsl:with-param name="type" select="'search'" />
                                            <xsl:with-param name="role" select="'action'" />
                                        </xsl:call-template>
                                    </div>
                                </label>
                                <xsl:if test="normalize-space(Params/Query)">
                                    <xsl:call-template name="uiButton">
                                        <xsl:with-param name="content" select="'Clear Search Results'" />
                                        <xsl:with-param name="type" select="'primary'"/>
                                        <xsl:with-param name="name" select="'clear'"/>
                                        <xsl:with-param name="className" select="'Form-button'"/>
                                        <xsl:with-param name="onClick">location.href='/rps/user'</xsl:with-param>
                                    </xsl:call-template>
                                </xsl:if>
                            </form>
                        </div>
                    </xsl:if>
                </div>
            </xsl:if>
        </div>

        <xsl:call-template name="userSummaryChart" />

    </xsl:template>

    <xsl:template name="userSummaryChart">
        <div class="User-main-summary">
            <xsl:call-template name="searchNav" />
            <div class="Table-wrapper-overflow-disabled">
                <table class="Table Table-with-highlight">
                    <thead>
                        <xsl:call-template name="usersHeaderRow" />
                    </thead>
                    <tbody>
                        <xsl:call-template name="filterForm" />
                        <xsl:for-each select="AppUser">
                            <xsl:call-template name="usersDataRow" />
                        </xsl:for-each>
                    </tbody>
                </table>
            </div>
            <xsl:call-template name="searchNav" />
        </div>
    </xsl:template>

    <xsl:template name="filterForm">

      <script type="text/javascript">
        <xsl:text disable-output-escaping="yes"><![CDATA[
            function resetUserTypeAndSubmit(el) {
                document.getElementById('userType').value = '';
                el.form.submit();
            }
        ]]></xsl:text>
      </script>

        <div id="fileterList" style="margin-bottom: 20px;" >
            <form action="/rps/user" method="get" class="Form Form-horizontal Form-horizontal-padded">
                <div class="Form-item" style="display: inline-block;">
                    <label class="Form-label">
                        <span class="Form-label-caption">User Status</span>
                        <div class="Form-input-wrapper">
                            <xsl:variable name="itemList">
                                <map>
                                    <mapEntry><name>Active Users</name><value>0</value></mapEntry>
                                    <mapEntry><name>Disabled Users</name><value>1</value></mapEntry>
                                    <mapEntry><name>All Users</name><value></value></mapEntry>
                                </map>
                            </xsl:variable>
                            <xsl:call-template name="uiDropdown">
                                <xsl:with-param name="items" select="$itemList"/>
                                <xsl:with-param name="name" select="'userStatus'"/>
                                <xsl:with-param name="className" select="'Dropdown-filterby'"/>
                                <xsl:with-param name="active" select="/Root/Params/userStatus"/>
                                <xsl:with-param name="onChange" select="'resetUserTypeAndSubmit(this)'"/>
                            </xsl:call-template>
                        </div>
                    </label>
                </div>

                <div class="Form-item" style="display: inline-block; margin-left: 20px;">
                    <label class="Form-label">
                        <span class="Form-label-caption">User Type</span>
                        <div class="Form-input-wrapper">
                            <xsl:variable name="itemList">
                                <map>
                                    <mapEntry><name>All</name><value></value></mapEntry>

                                    <xsl:variable name="hasUserStatusParam" select="boolean(/Root/Params/userStatus)"/>
                                    <xsl:variable name="selectedUserStatus" select="string(/Root/Params/userStatus)"/>

                                    <xsl:choose>
                                        <!-- undefined => default (active) -->
                                        <xsl:when test="not($hasUserStatusParam)">
                                            <xsl:for-each select="/Root/AccessLevelList/AccessLevel[AccessLevelID = /Root/AccessLevelStatusList[Disabled = 0]/AccessLevelID]">
                                                <mapEntry>
                                                    <name><xsl:value-of select="Name"/></name>
                                                    <value><xsl:value-of select="AccessLevelID"/></value>
                                                </mapEntry>
                                            </xsl:for-each>
                                        </xsl:when>
                                        <!-- '' => all (active and disabled) -->
                                        <xsl:when test="$selectedUserStatus = ''">
                                            <xsl:for-each select="/Root/AccessLevelList/AccessLevel[AccessLevelID = /Root/AccessLevelStatusList/AccessLevelID]">
                                                <mapEntry>
                                                    <name><xsl:value-of select="Name"/></name>
                                                    <value><xsl:value-of select="AccessLevelID"/></value>
                                                </mapEntry>
                                            </xsl:for-each>
                                        </xsl:when>
                                        <!-- selected => (active or disabled) -->
                                        <xsl:otherwise>
                                            <xsl:for-each select="/Root/AccessLevelList/AccessLevel[AccessLevelID = /Root/AccessLevelStatusList[Disabled = $selectedUserStatus]/AccessLevelID]">
                                                <mapEntry>
                                                    <name><xsl:value-of select="Name"/></name>
                                                    <value><xsl:value-of select="AccessLevelID"/></value>
                                                </mapEntry>
                                            </xsl:for-each>
                                        </xsl:otherwise>
                                    </xsl:choose>
                                </map>
                            </xsl:variable>
                            <xsl:call-template name="uiDropdown">
                                <xsl:with-param name="items" select="$itemList"/>
                                <xsl:with-param name="name" select="'userType'"/>
                                <xsl:with-param name="id" select="'userType'"/>
                                <xsl:with-param name="className" select="'Dropdown-filterby'"/>
                                <xsl:with-param name="active" select="/Root/Params/userType"/>
                                <xsl:with-param name="onChange" select="'this.form.submit()'"/>
                            </xsl:call-template>
                        </div>
                    </label>
                </div>
            </form>
        </div>
    </xsl:template>

    <xsl:template name="usersHeaderRow">
        <tr class="Table-row Table-row-header">
            <th class="Table-col">First Name</th>
            <th class="Table-col">Last Name</th>
            <th class="Table-col">E-mail</th>
            <th class="Table-col">Location</th>
            <th class="Table-col">Phone Number</th>
            <th class="Table-col">Type</th>
            <th class="Table-col">Disabled</th>
            <xsl:if test="Access/rps/user/loginas">
                <th class="Table-col Table-col-all-actions">Actions</th>
            </xsl:if>
            <xsl:if test="Access/rps/user/edit">
                <th class="Table-col Table-col-icon">Edit</th>
            </xsl:if>
        </tr>
    </xsl:template>

    <xsl:template name="usersDataRow">
        <xsl:variable name="accessLevel" select="AccessLevel" />
        <tr class="Table-row Table-row-data">
            <td class="Table-col"><xsl:value-of select="FirstName" /></td>
            <td class="Table-col"><xsl:value-of select="LastName" /></td>
            <td class="Table-col"><a href="user?UserID={UserID}&amp;c=show"><xsl:value-of select="Email" /></a></td>
            <td class="Table-col"><xsl:value-of select="Address/City" /><xsl:if test="normalize-space(Address/City) and normalize-space(Address/StateProvince)">, </xsl:if><xsl:value-of select="Address/StateProvince" /></td>
            <td class="Table-col"><xsl:value-of select="Phone1" /></td>
            <td class="Table-col"><xsl:value-of select="/Root/AccessLevelList/AccessLevel[AccessLevelID = $accessLevel]/Name" /></td>
            <td class="Table-col"><xsl:if test="Disabled = 0">No</xsl:if><xsl:if test="Disabled = 1">Yes</xsl:if></td>

            <xsl:if test="/Root/Access/rps/user/edit or /Root/Access/rps/user/loginas">
                <td class="Table-col Table-col-all-actions">
                    <xsl:variable name="logInAsTest">
                        <xsl:if test="/Root/Access/rps/user/loginas and UserID != /Root/User/UserID and Disabled = 0 and (/Root/AccessLevelList/AccessLevel[AccessLevelID = /Root/User/AccessLevel]/CanEditList/CanEdit[@id = $accessLevel] = 1)">1</xsl:if>
                    </xsl:variable>
                    <xsl:if test="$logInAsTest = 1">
                        <a href="?c=loginas&amp;UserID={UserID}" title="Log In As This User" class="js-tooltip">Log In As</a>
                    </xsl:if>
                </td>
            </xsl:if>
            <xsl:if test="/Root/Access/rps/user/edit or /Root/Access/rps/user/loginas">
                <td class="Table-col Table-col-icon">
                    <xsl:variable name="editTest">
                        <xsl:if test="/Root/Access/rps/user/edit  and (/Root/AccessLevelList/AccessLevel[AccessLevelID = /Root/User/AccessLevel]/CanEditList/CanEdit[@id = $accessLevel] = 1)">1</xsl:if>
                    </xsl:variable>
                    <xsl:if test="$editTest = 1">
                        <a href="/rps/user?c=edit&amp;UserID={UserID}" title="Edit This User" class="js-tooltip">
                            <xsl:call-template name="icon">
                                <xsl:with-param name="type" select="'edit'" />
                                <xsl:with-param name="role" select="'action'" />
                            </xsl:call-template>
                        </a>
                    </xsl:if>
                </td>
            </xsl:if>
        </tr>
    </xsl:template>

</xsl:stylesheet>
