<!--
Copyright 2014 Glyptodon LLC.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->

<div class="view" ng-class="{loading: !isLoaded()}">

    <!-- Main property editor -->
    <div class="header">
        <h2>{{'MANAGE_CONNECTION.SECTION_HEADER_EDIT_CONNECTION' | translate}}</h2>
        <guac-user-menu permissions="permissions"></guac-user-menu>
    </div>
    <div class="section">
        <table class="properties">
            
            <!-- Edit connection name -->
            <tr>
                <th>{{'MANAGE_CONNECTION.FIELD_HEADER_NAME' | translate}}</th>
              
                <td><input type="text" ng-model="connection.name" autocorrect="off" autocapitalize="off"/></td>
            </tr>
            
            <!-- Edit connection location -->
            <tr>
                <th>{{'MANAGE_CONNECTION.FIELD_HEADER_LOCATION' | translate}}</th>
              
                <td>
                    <location-chooser value="connection.parentIdentifier" root-group="rootGroup"></location-chooser>
                </td>
            </tr>
            
            
            <!-- Edit connection protocol -->
            <tr>
                <th>{{'MANAGE_CONNECTION.FIELD_HEADER_PROTOCOL' | translate}}</th>
                <td>
                    <select ng-model="connection.protocol" ng-options="name as getProtocolName(protocol.name) | translate for (name, protocol) in protocols | orderBy: name"></select>
                </td>
            </tr>
        </table>
    </div>

    <!-- Connection parameters -->
    <h2 class="header">{{'MANAGE_CONNECTION.SECTION_HEADER_PARAMETERS' | translate}}</h2>
    <div class="section" ng-class="{loading: !parameters}">
        <table class="properties">
            
            <!-- All the different possible editable field types -->
            <tr ng-repeat="parameter in protocols[connection.protocol].parameters">
                <th>{{getProtocolParameterName(connection.protocol, parameter.name) | translate}}</th>
                <td>
                    <guac-connection-parameter protocol="protocols[connection.protocol]" name="parameter.name" parameters="parameters"></guac-connection-parameter>
                </td>
            </tr>
        </table>
    </div>

    <!-- Form action buttons -->
    <div class="action-buttons">
        <button ng-show="canSaveConnection" ng-click="saveConnection()">{{'MANAGE_CONNECTION.ACTION_SAVE' | translate}}</button>
        <button ng-show="canCloneConnection" ng-click="cloneConnection()">{{'MANAGE_CONNECTION.ACTION_CLONE' | translate}}</button>
        <button ng-click="cancel()">{{'MANAGE_CONNECTION.ACTION_CANCEL' | translate}}</button>
        <button ng-show="canDeleteConnection" ng-click="deleteConnection()" class="danger">{{'MANAGE_CONNECTION.ACTION_DELETE' | translate}}</button>
    </div>

    <!-- Connection history -->
    <h2 class="header">{{'MANAGE_CONNECTION.SECTION_HEADER_HISTORY' | translate}}</h2>
    <div class="history section" ng-class="{loading: !historyEntryWrappers}">
        <p ng-hide="historyEntryWrappers.length">{{'MANAGE_CONNECTION.INFO_CONNECTION_NOT_USED' | translate}}</p>

        <!-- History list -->
        <table ng-show="historyEntryWrappers.length">
            <thead>
                <tr>
                    <th>{{'MANAGE_CONNECTION.TABLE_HEADER_HISTORY_USERNAME' | translate}}</th>
                    <th>{{'MANAGE_CONNECTION.TABLE_HEADER_HISTORY_START' | translate}}</th>
                    <th>{{'MANAGE_CONNECTION.TABLE_HEADER_HISTORY_DURATION' | translate}}</th>
                </tr>
            </thead>
            <tbody>
                <tr ng-repeat="wrapper in wrapperPage">
                    <td class="username">{{wrapper.entry.username}}</td>
                    <td class="start">{{wrapper.entry.startDate | date:historyDateFormat}}</td>
                    <td class="duration">{{wrapper.durationText | translate:"{VALUE: wrapper.duration.value, UNIT: wrapper.duration.unit}"}}</td>
                </tr>
            </tbody>
        </table>

        <!-- Pager controls for history list -->
        <guac-pager page="wrapperPage" items="historyEntryWrappers"></guac-pager>

    </div>

</div>
