<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<section class="container type">
    <header class="row">
        <div class="col-md-12">
            <div class="media">
                <div class="media-left" ng-if="type.symbolicName">
                    <img ng-src="{{::type | iconGeneratorPipe:'symbolicName'}}" class="media-object" alt="{{::type.symbolicName}}'s logo" />
                </div>
                <div class="media-body">
                    <h4 class="media-heading">
                        <i class="fa fa-star" ng-if="type.template" aria-label="This item is a template"></i>
                        {{::(type.displayName || type.symbolicName)}}
                        <div class="btn-group version-dropdown" uib-dropdown dropdown-append-to-body="true">
                            <button uib-dropdown-toggle id="versions-dropdown" type="button" class="btn btn-sm btn-default"><span><i class="fa fa-code-fork"></i> {{::type.version}}</span>
                                <span class="caret" ng-if="versions && versions.length > 1"></span></button>
                            <ul class="dropdown-menu dropdown-menu-right versions-dropdown-list" uib-dropdown-menu role="menu" aria-labelledby="versions-dropdown">
                                <li role="menuitem" ng-repeat="version in versions track by (version.bundleSymbolicName + version.bundleVersion + version.typeVersion)" ng-class="{'active': version.bundleSymbolicName + ':' + version.bundleVersion === type.containingBundle && version.typeVersion === type.version}">
                                    <a ui-sref="{bundleSymbolicName: version.bundleSymbolicName, bundleVersion: version.bundleVersion, typeVersion: version.typeVersion}">
                                        <span class="itemVersion"><i class="fa fa-code-fork"></i> {{::version.typeVersion}}</span>
                                        <span class="sym-name-in">in</span>
                                        <span class="bundle"><i class="fa fa-fw fa-file-zip-o"></i> {{::version.bundleSymbolicName}}:{{::version.bundleVersion}}</span>
                                    </a>
                                </li>
                            </ul>
                        </div>
                        <span ng-if="type.deprecated" class="label label-warning">deprecated</span>
                        <span ng-if="type.disabled" class="label label-default">disabled</span>
                    </h4>
                    <p class="media-bundle sym-name-section">
                        <span class="sym-name"><i class="fa fa-fw fa-bookmark sym-name"></i> <samp>{{::type.symbolicName}}</samp></span>
                        <span class="sym-name-in">in</span>
                        <a ui-sref="bundle" class="text-muted">
                            <i class="fa fa-fw fa-file-zip-o"></i> {{::type.containingBundle}}
                        </a>
                    </p>
                    <p class="media-aliases text-muted" ng-if="type.aliases.length > 0"><small>
                        <i class="fa fa-fw fa-exclamation-circle"></i> This type has the following aliases:
                        <code ng-repeat="alias in type.aliases track by alias">{{::alias}}</code>
                    </small></p>
                    <md-if-oneline data="typeDescription"></md-if-oneline>
                    <p class="media-types">
                        <span ng-repeat="supertype in type.supertypes | limitTo:state.limit track by supertype" class="label label-supertype pull-left">
                            <i class="fa fa-fw fa-puzzle-piece "></i>
                            {{::supertype}}
                        </span>
                        <span class="extra pull-left">
                            <span ng-if="type.supertypes.length > state.limit">+ {{type.supertypes.length - state.limit}}</span>
                            <span ng-class="{'more': type.supertypes.length > state.limit, 'less': type.supertypes.length === state.limit}" ng-click="toggleSupertypes()">(See {{type.supertypes.length > state.limit ? 'more' : 'less'}})</span>
                        </span>
                    </p>
                </div>
            </div>
        </div>
    </header>

    <div class="row">
        <div class="col-md-12">
            <div class="pull-right">
                <div class="btn-group" uib-dropdown ng-if="isEditable()">
                    <button uib-dropdown-toggle type="button" class="btn btn-primary"><i class="fa fa-fw fa-edit"></i> Edit <span class="caret"></span></button>
                    <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu role="menu" aria-labelledby="edit-dropdown">
                        <li role="menuitem" ng-if="type.supertypes.includes('org.apache.brooklyn.api.entity.Entity') && composerUrl">
                            <a ng-href="{{ composerUrl }}#!/graphical?bundleSymbolicName={{type.containingBundle.split(':')[0]}}&bundleVersion={{type.containingBundle.split(':')[1]}}&typeSymbolicName={{type.symbolicName}}&typeVersion={{type.version}}">Using graphical designer</a>
                        </li>
                        <li role="menuitem" ng-if="type.supertypes.includes('org.apache.brooklyn.api.entity.Entity') && composerUrl">
                            <a ng-href="{{ composerUrl }}#!/yaml?bundleSymbolicName={{type.containingBundle.split(':')[0]}}&bundleVersion={{type.containingBundle.split(':')[1]}}&typeSymbolicName={{type.symbolicName}}&typeVersion={{type.version}}">Using YAML editor</a>
                        </li>
                        <li role="menuitem" ng-if="type.supertypes.includes('org.apache.brooklyn.api.location.Location')">
                            <a ng-href="brooklyn-ui-location-manager/#!/location?symbolicName={{type.symbolicName}}&version={{type.version}}">Using location manager</a>
                        </li>
                    </ul>
                </div>
                <button ng-if="isDeployable()" ng-click="deploy($event)" class="btn btn-success">
                    <i class="fa fa-fw fa-rocket"></i> Deploy
                </button>
            </div>
            <uib-tabset active="tab">
                <uib-tab heading="Description" ng-if="typeDescription.isMultiline">
                    <md-if-multiline data="::typeDescription"></md-if-multiline>
                    <div style="padding-bottom: 48px;"></div>
                </uib-tab>

                <uib-tab heading="Config" ng-if="isNonEmpty(type.config)">
                    <br-table ng-model="type.config" columns="tables.config.columns" col-width="20"></br-table>
                </uib-tab>
                
                <uib-tab heading="Sensors" ng-if="isNonEmpty(type.sensors)">
                    <br-table ng-model="type.sensors" columns="tables.sensors.columns" col-width="20"></br-table>
                </uib-tab>
                
                <!-- DASHBOARD STATUS TEMPLATE :: START -->
                <script type="text/ng-template" id="catalog/type/effector/parameters.html">
                    <div ng-repeat="param in item.parameters track by $index"
                            uib-tooltip="{{param.description}}"
                            tooltip-enable="param.description"
                            tooltip-placement="left">
                        <span class="paramName">{{ param.name }}</span>
                        <span class="paramDefaultValue" ng-if="param.defaultValue">{{ param.defaultValue }}</span>
                        <span class="paramType">{{ param.type }}</span>
                    </div>
                </script>
                
                <uib-tab heading="Effectors" ng-if="isNonEmpty(type.effectors)">
                    <br-table ng-model="type.effectors" columns="tables.effectors.columns" col-width="20"></br-table>
                </uib-tab>

                <uib-tab heading="Blueprint" ng-if="isNonEmpty(type.plan.data)">
                    <pre>{{type.plan.data}}</pre>
                </uib-tab>
                
            </uib-tabset>
        </div>
    </div>
</section>
