<!--
 * 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.
-->
<div class="page-title clearfix">
    <div class="fontLoader">
        <i class="fa fa-refresh fa-spin-custom"></i>
    </div>
    <div class="entityDetail form-horizontal col-sm-12">
        <h1 class="title row">
            <div data-id="entityIcon" class="entity-icon-box"></div>
            <span data-id="title"></span>
        </h1> {{#if entityUpdate}}
        <div data-id="editButtonContainer" class="pull-right"></div>
        {{/if}}
        <div class="form-group">
            <span class="control-label-sm-pr pull-left">Classifications:</span>
            <div class="pull-left" data-id="tagList">
                <button class="btn btn-action btn-sm" title="Add Classification" data-id="addTag">
                    <i class="fa fa-plus"> </i>
                </button>
            </div>
        </div>
        <div class="form-group termBox">
            <span class="control-label-sm-pr pull-left">Term:</span>
            <div class="pull-left" data-id="termList">
                <button class="btn btn-action btn-sm" title="Add Term" data-id="addTerm">
                    <i class="fa fa-plus"> </i>
                </button>
            </div>
        </div>
        <div class="form-group" style="display: none;" data-id="propagatedTagDiv">
            <span class="control-label-sm-pr pull-left">Propagated Classifications:</span>
            <div class="pull-left" data-id="propagatedTagList">
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-sm-12 default-tab">
            <ul class="nav nav-tabs" data-id="tab-list">
                <li role="properties" class="tab active"><a href="#tab-details" aria-controls="tab-details" role="tab" data-toggle="tab">Properties</a></li>
                <li role="lineage" class="tab lineageGraph" style="display:none"><a href="#tab-lineage" aria-controls="tab-lineage" role="tab" data-toggle="tab">Lineage</a></li>
                <li role="relationship" class="tab"><a href="#tab-relationship" aria-controls="tab-relationship" role="tab" data-toggle="tab">Relationships</a></li>
                <li role="classification"><a href="#tab-tagTable" aria-controls="tab-tagTable" role="tab" data-toggle="tab">Classifications</a></li>
                <li role="audit" class="tab"><a href="#tab-audit" aria-controls="tab-audit" role="tab" data-toggle="tab">Audits</a></li>
                <li role="raudits" class="tab replicationTab" style="display:none"><a href="#tab-raudit" aria-controls="tab-raudit" role="tab" data-toggle="tab">Export/Import Audits</a></li>
                <li role="schema" class="tab schemaTable" style="display:none"><a href="#tab-schema" aria-controls="tab-schema" role="tab" data-toggle="tab">Schema</a></li>
                <li role="profile" class="tab profileTab" style="display:none"><a href="#tab-profile" aria-controls="tab-profile" role="tab" data-toggle="tab">Profile</a></li>
            </ul>
        </div>
    </div>
</div>
<div>
    <div class="tab-content">
        <div id="tab-details" role="properties" class="tab-pane active animated fadeIn">
            <div class="row">
                <div class="col-md-6">
                    <div id="r_entityDetailTableLayoutView">
                        <div class="fontLoader-relative">
                            <i class="fa fa-refresh fa-spin-custom"></i>
                        </div>
                    </div>
                </div>
                <div class="col-md-6">
                    <div id="r_entityUserDefineView"></div>
                </div>
            </div>
        </div>
        <div id="tab-lineage" role="lineage" class="tab-pane animated fadeIn">
            <div id="r_lineageLayoutView" class="animated position-relative" align="center">
                <div class="fontLoader-relative">
                    <i class="fa fa-refresh fa-spin-custom"></i>
                </div>
            </div>
        </div>
        <div id="tab-relationship" role="relationship" class="tab-pane animated fadeIn">
            <div id="r_relationshipLayoutView" class="animated position-relative">
                <div class="fontLoader-relative">
                    <i class="fa fa-refresh fa-spin-custom"></i>
                </div>
            </div>
        </div>
        <div id="tab-tagTable" role="classification" class="tab-pane animated fadeIn">
            <div id="r_tagTableLayoutView">
                <div class="fontLoader-relative">
                    <i class="fa fa-refresh fa-spin-custom"></i>
                </div>
            </div>
        </div>
        <div id="tab-audit" role="audit" class="tab-pane animated fadeIn">
            <div id="r_auditTableLayoutView">
                <div class="fontLoader-relative">
                    <i class="fa fa-refresh fa-spin-custom"></i>
                </div>
            </div>
        </div>
        <div id="tab-raudit" role="raudits" class="tab-pane">
            <div id="r_replicationAuditTableLayoutView">
                <div class="fontLoader-relative">
                    <i class="fa fa-refresh fa-spin-custom"></i>
                </div>
            </div>
        </div>
        <div id="tab-schema" role="schema" class="tab-pane animated fadeIn">
            <div id="r_schemaTableLayoutView">
                <div class="fontLoader-relative">
                    <i class="fa fa-refresh fa-spin-custom"></i>
                </div>
            </div>
        </div>
        <div id="tab-profile" role="profile" class="tab-pane animated fadeIn">
            <div id="r_profileLayoutView">
                <div class="fontLoader-relative">
                    <i class="fa fa-refresh fa-spin-custom"></i>
                </div>
            </div>
        </div>
    </div>
</div>
</div>
