<div ng-controller="SettingsController" class="user" data-ng-init="onInit()">

    <div id="wrapper">

        <div id="genericHeading">
            <a href ng-click="goToPage('/')"><img src="img/logo-small.png" width="100" height="43" alt="[matrix]"/></a>
        </div>

        <h1>Settings</h1>
        <div class="section">
            <form>
                <div class="profile-avatar">
                    <img ng-src="{{ (null !== profile.avatarUrl) ? profile.avatarUrl : 'img/default-profile.png' }}" m-file-input="profile.avatarFile"/>
                </div>
                <div>
                    <input id="user-displayname-input" size="40" ng-model="profile.displayName" placeholder="Your display name"/>
                    <br/>
                    <button id="user-save-button"
                            ng-disabled="(profile.displayName === profileOnServer.displayName) && (profile.avatarUrl === profileOnServer.avatarUrl)"
                            ng-click="saveProfile()">Save changes</button>
                </div>
            </form>
        </div>
        <br/>

        <h3>Linked emails</h3>
        <div class="section">
            <form>
                <input size="40" ng-model="linkedEmails.linkNewEmail" ng-enter="linkEmail(linkedEmails.linkNewEmail)" />
                <button ng-disabled="!linkedEmails.linkNewEmail" ng-click="linkEmail(linkedEmails.linkNewEmail)">
                    Link Email
                </button>
                {{ emailFeedback }}
            </form>
            <form ng-hide="!linkedEmails.emailBeingAuthed">
                Enter validation token for {{ linkedEmails.emailBeingAuthed }}:
                <br />
                <input size="20" ng-model="linkedEmails.emailCode" ng-enter="submitEmailCode(linkedEmails.emailCode)" />
                <button ng-disabled="!linkedEmails.emailCode || !linkedEmails.linkNewEmail" ng-click="submitEmailCode(linkedEmails.emailCode)">
                    Submit Code
                </button>   
            </form>
            <table>
                <tr ng-repeat="(address, info) in linkedEmails.linkedEmailList">
                    <td>{{address}}</td>
                </tr>
            </table>
        </div>
        <br/>
        
        <h3>Desktop notifications</h3>
        <div class="section" ng-switch="settings.notifications">
            <div ng-switch-when="granted">
                Notifications are enabled.
            </div>
            <div ng-switch-when="denied">
                You have denied permission for notifications.<br/>
                To enable it, reset the notification setting for this web site into your browser settings.
            </div>
            <div ng-switch-when="default">
                <button ng-click="requestNotifications()" style="font-size: 14pt">Enable desktop notifications</button>
            </div>
            <div ng-switch-default="">
                Sorry, your browser does not support notifications.
            </div>
        </div>
        <br/>
        
        <h3>Configuration</h3>
        <div class="section">
            <div>Home server: {{ config.homeserver }} </div>
            <div>Identity server: {{ config.identityServer }} </div>
            <div>User ID: {{ config.user_id }} </div>
            <div>Access token: {{ config.access_token }} </div>
        </div>
        <br/>
        
        <h3>Commands</h3>
        <div class="section">
            The following commands are available in the room chat:
            <ul>
                <li>/nick &lt;display_name&gt;: change your display name</li>
                <li>/me &lt;action&gt;: send the action you are doing. /me will be replaced by your display name</li>
                <li>/kick &lt;user_id&gt; [&lt;reason&gt;]: kick the user</li>
                <li>/ban &lt;user_id&gt; [&lt;reason&gt;]: ban the user</li>
                <li>/unban &lt;user_id&gt;: unban the user</li>
                <li>/op &lt;user_id&gt; &lt;power_level&gt;: set user power level</li>
                <li>/deop &lt;user_id&gt;: reset user power level to the room default value</li>
            </ul>
        </div>
        <br/>

        {{ feedback }}

    </div>    
</div>