<!--
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 id="index" class="clearfix">

  <div class="clearfix">

    <div class="index-left">

      <div class="block" id="instance">

          <h2><span>Instance</span></h2>

          <div class="content">

            <ul class="data" ngShow="system">

              <li class="start_time"><dl class="clearfix">
                <dt><span>Start</span></dt>
                  <dd class="timeago">{{system.jvm.jmx.startTime | timeago}}</dd>
              </dl></li>

<!--
              <li class="host"><dl class="clearfix">
                <dt><span>Host</span></dt>
                  <dd></dd>
              </dl></li>

              <li class="dir dir_cwd"><dl class="clearfix">
                <dt><span>CWD</span></dt>
                <dd></dd>
              </dl></li>

              <li class="dir dir_instance"><dl class="clearfix">
                <dt><span>Instance</span></dt>
                <dd></dd>
              </dl></li>

              <li class="dir dir_data"><dl class="clearfix">
                <dt><span>Data</span></dt>
                <dd></dd>
              </dl></li>

              <li class="dir dir_index"><dl class="clearfix">
                <dt><span>Index</span></dt>
                <dd></dd>
              </dl></li>
-->
            </ul>

          </div>

      </div>

      <div class="block" id="versions">

          <h2><span>Versions</span></h2>

          <div class="content">

            <ul class="data">

              <li class="solr solr_spec_version"><dl class="clearfix">
                <dt><span>solr-spec</span></dt>
                  <dd>{{system.lucene["solr-spec-version"]}}</dd>
              </dl></li>
              
              <li class="solr_impl_version"><dl class="clearfix">
                <dt class=""><span>solr-impl</span></dt>
                  <dd>{{system.lucene["solr-impl-version"]}}</dd>
              </dl></li>
              
              <li class="lucene lucene_spec_version"><dl class="clearfix">
                <dt><span>lucene-spec</span></dt>
                  <dd>{{system.lucene["lucene-spec-version"]}}</dd>
              </dl></li>

              <li class="lucene_impl_version"><dl class="clearfix">            
                <dt><span>lucene-impl</span></dt>
                  <dd>{{system.lucene["lucene-impl-version"]}}</dd>
              </dl></li>
            
            </ul>

          </div>

      </div>

    </div>
      
    <div class="index-right">

      <div class="block" id="system">

          <h2><span>System</span>
    <small class="bar-desc">{{load_average[0]}} {{load_average[1]}} {{load_average[2]}}</small>
    </h2>
          <a class="reload" ng-click="reload()"><span>reload</span></a>

          <div class="content">

            <div id="physical-memory-bar" ng-show="system.system.totalPhysicalMemorySize && system.system.freePhysicalMemorySize">

              <p data-desc="physical-memory-bar">Physical Memory
         <small class="bar-desc">{{memoryPercentage}}</small>
        </p>
              <div class="bar-holder bar-lvl-2">

                <div class="bar-max bar">
                  <span class="bar-max val">{{memoryMax}}</span>

                  <div class="bar-total bar" ng-style="{width:memoryPercentage}">
                    <span class="bar-total val" title="raw: {{memoryTotal}}B">{{memoryTotalDisplay}}</span>

                  </div>

                </div>

              </div>

            </div>

            <div id="swap-space-bar" ng-show="system.system.totalSwapSpaceSize && system.system.freeSwapSpaceSize">

              <p data-desc="swap-space-bar">Swap Space
          <small class="bar-desc">{{swapPercentage}}</small>
        </p>
              <div class="bar-holder bar-lvl-2">

                <div class="bar-max bar">
                  <span class="bar-max val">{{swapMax}}</span>

                  <div class="bar-total bar" ng-style="{width:swapPercentage}">
                    <span class="bar-total val" title="raw:{{swapTotal}}B">{{swapTotalDisplay}}</span>

                  </div>

                </div>

              </div>

            </div>

          <div id="file-descriptor-bar" ng-show="system.system.maxFileDescriptorCount && system.system.openFileDescriptorCount">

              <p data-desc="file-descriptor-bar">File Descriptor Count
          <small class="bar-desc">{{fileDescriptorPercentage}}</small>
        </p>
              <div class="bar-holder bar-lvl-2">

                <div class="bar-max bar">
                  <span class="bar-max val">{{system.system.maxFileDescriptorCount}}</span>

                  <div class="bar-total bar" ng-style="{width:fileDescriptorPercentage}">
                    <span class="bar-total val">{{system.system.openFileDescriptorCount}}</span>

                  </div>

                </div>

              </div>

            </div>

            <p class="no-info" ng-show="noInfo">Sorry, no information available</p>

          </div>

      </div>

    </div>

  </div>

  <div class="clearfix">

    <div class="index-left">

      <div class="block" id="jvm">

          <h2><span>JVM</span></h2>

          <div class="content clearfix">

            <ul class="data">

              <li class="jvm_version"><dl class="clearfix">            
                <dt><span>Runtime</span></dt>
                  <dd>{{system.jvm.name}} {{system.jvm.version}}</dd>
              </dl></li>

              <li class="processors"><dl class="clearfix">            
                <dt><span>Processors</span></dt>
                  <dd>{{system.jvm.processors}}</dd>
              </dl></li>

              <li class="command_line_args"><dl class="clearfix">
                <dt><span>Args</span></dt>
                <dd ng-repeat="arg in commandLineArgs" ng-class="{'odd':$odd}">{{arg}}</dd>
              </dl></li>
            
            </ul>

          </div>

      </div>

    </div>
    <div class="index-right">

      <div class="block" id="jvm-memory">

          <h2><span data-desc="jvm-memory-bar">JVM-Memory
       <small class="bar-desc">{{javaMemoryPercentage}}</small>
    </span></h2>

          <div class="content">

            <div id="jvm-memory-bar">
              <div class="bar-holder bar-lvl-3">

                <div class="bar-max bar">
                  <span class="bar-max val" title="raw: {{javaMemoryMax}}">{{javaMemoryMax}}</span>

                  <div class="bar-total bar" ng-style="{width: javaMemoryTotalPercentage}">
                    <span class="bar-total val" title="raw: {{javaMemoryTotal}}B">{{javaMemoryTotalDisplay}}</span>

                    <div class="bar-used bar" ng-style="{width: javaMemoryUsedPercentage}">
                      <span class="bar-used val" title="raw: {{javaMemoryUsed}}B">{{javaMemoryUsedDisplay}}</span>

                    </div>

                  </div>

                </div>

              </div>
            </div>

          </div>

      </div>

    </div>

  </div>

</div>
