{% load admin_static %}{% load suit_tags %}{% load url from future %}<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<head>
  <title>{% block title %}  {%if title %} {{ title }} | {% endif %} {{ 'ADMIN_NAME'|suit_conf }}{% endblock %}</title>
  <link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% endblock %}"/>
  <link rel="stylesheet" type="text/css" href="{% static 'suit/bootstrap/css/bootstrap.min.css' %}" media="all"/>
  <link rel="stylesheet" type="text/css" href="{% static 'suit/css/suit.css' %}" media="all">
  <link rel="stylesheet" type="text/css" href="{% static 'planetstack.css' %}" media="all">
  {% block extrastyle %}{% endblock %}
  {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}"/>{% endif %}
  <script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% static "admin/" %}{% endfilter %}";</script>
  <script src="{% static 'suit/js/jquery-1.8.3.min.js' %}"></script>
  <script type="text/javascript">var Suit = { $: $.noConflict() }; if (!$) $ = Suit.$; </script>
  {% if 'SHOW_REQUIRED_ASTERISK'|suit_conf %}
  <style type="text/css">.required:after { content: '*'; margin: 0 0 0 5px; position: absolute; color: #ccc;}</style>
  {% endif %}
  {% block extrahead %}{% endblock %}
  {% block blockbots %}
    <meta name="robots" content="NONE,NOARCHIVE"/>{% endblock %}
  <link rel="shortcut icon" href="{% static 'favicon.png' %}">

</head>
{% load i18n %}

<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">

<!-- Sticky footer wrap -->
<div id="wrap">

  <!-- Container -->
  {% block container %}
    <div id="container">

      {% block header %}
        {% if not is_popup %}
          <!-- Header -->
          <div id="header" class="header">
            
            <div id="branding">
              <table width="100%">
                <tr>
                  <td width="70%">
             <!-- <a href="{% url 'admin:index' %}"><h1 id="site-name">{% block branding %}{{ 'ADMIN_NAME'|suit_conf }}{% endblock %}</h1></a>-->
             <a href="{% url 'admin:index' %}"><h1 id="site-name"><img src="{% static 'open-cloud-themed.png' %}"/></h1></a>
             </td>
              <td width="30%">
                  {% block quick-search %}
                {% with 'SEARCH_URL'|suit_conf as search_url %}
                  {% if search_url %}
                    <form class="form-search nav-quick-search" autocomplete="off" action="{% if '/' in search_url %}{{ search_url }}{% else %}{% url search_url %}{% endif %}" method="GET">
                      <i class="input-icon icon-search"></i>
                      <input type="text" name="q" class="input-medium search-query" id="quick-search">
                      <input type="submit" class="submit" value="">
                    </form>
                  {% endif %}
                {% endwith %}
              {% endblock %}
                 </td>
               </tr>
             </table>
            </div>
          
            {% block header_time %}
            <div id="branding2">
            <!--<div class="header-content header-content-first">
              <div class="header-column icon">
                <i class="icon-time"></i>
              </div>
              <div class="header-column">
                <span class="date"> {% suit_date %}</span><br>
                <span class="time" id="clock">{% suit_time %}</span>
              </div>
            </div>-->
          
            {% endblock %}

            {% block header_content %}
              <!--<div class="header-content">
                <div class="header-column icon">
                  <i class="icon-comment"></i>
                </div>
                <div class="header-column">
                  <a href="" class="grey"><b>2</b> new messages</a>
                </div>
              </div>-->
            {% endblock %}

            {% if user.is_active and user.is_staff %}
              <div id="user-tools">
                {% trans 'Welcome,' %}
                <strong>
                  {% filter force_escape %}
                    {% firstof user.first_name user.username %}{% endfilter %}</strong>.
                <span class="user-links">
                {% block userlinks %}
                  {% url 'django-admindocs-docroot' as docsroot %}
                  {% if docsroot %}
                    <a href="{{ docsroot }}">{% trans 'Documentation' %}</a>
                   <span class="separator">|</span>
                  {% endif %}
                  <a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a>
                  <span class="separator">|</span>
                  <a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
                  </span>
                {% endblock %}
              </div>
            {% endif %}

            {% block nav-global %}{% endblock %}

          </div>
           </div>
        {% endif %}
        <!-- END Header -->
      {% endblock %}


      <div class="suit-columns {{ is_popup|yesno:'one-column,two-columns' }}">

        {% block content-center %}
          <div id="suit-center" class="suit-column">

            {% if not is_popup %}
              {% block breadcrumbs %}
                <ul class="breadcrumb"> 
                  <li><a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
                    {% if title %}
                      <span class="divider">&raquo;</span>
                      </li>
                      <li class="active">
                      {{ title }}
                    {% endif %}
                    </li>
                </ul>
              {% endblock %}
               <label class="nodetextbox" >Active Nodes: </label>
              <label class="nodelabel" >37</label>
              <label class="nodetextbox">CPU Utilization: </label>
              <label class="nodelabel" >12%</label>
            <label class="nodetextbox">Bytes Transferred:</label>     
              <label class="nodelabel" style="width:60px;">4321GB</label>
            {% endif %}

            {% block messages %}
              {% if messages %}

                {% for message in messages %}
                  <div class="alert alert-{% firstof message.tags 'info' %}">
                    <button class="close" data-dismiss="alert">×</button>
                    <strong>
                      {% if message.tags %}{{ message.tags|capfirst }}{% else %}
                        Message{% endif %}!</strong>
                    {{ message }}
                  </div>
                {% endfor %}
              {% endif %}
            {% endblock messages %}

            <!-- Content -->
            <div id="content" class="{% block coltype %}colM{% endblock %} row-fluid">
              {% block pretitle %}{% endblock %}
              {% block content_title %}{% if title %}
                <h2 class="content-title">{{ title }}</h2>
              {% endif %}{% endblock %}
              {% block content %}
                {% block object-tools %}{% endblock %}
                {{ content }}
              {% endblock %}
              {% block sidebar_content %}
                {% block sidebar %}{% endblock %}
              {% endblock %}
            </div>
            <!-- END Content -->
          </div>
        {% endblock %}


        {% block content-left %}
          {% if not is_popup %}
            <div id="suit-left" class="suit-column">
         

              {% include 'suit/menu.html' %}

            </div>
          {% endif %}
        {% endblock %}

      </div>
    </div>
  {% endblock %}

  {% if not is_popup %}
  <!-- Sticky footer push -->
  <div id="push"></div>
  {% endif %}

</div>

{% block footer %}
  {% if not is_popup %}
  <div id="footer" class="footer">
    <div class="content">
      <div class="tools">
        {% block footer_links %}
          <a href="http://djangosuit.com/support/" target="_blank" class="icon"><i class="icon-question-sign"></i>Support</a>
          <a href="http://djangosuit.com/pricing/" target="_blank" class="icon"><i class="icon-bookmark"></i>Licence</a>
          <a href="http://github.com/darklow/django-suit/issues" target="_blank" class="icon"><i class="icon-comment"></i>Report a bug</a>
        {% endblock %}
      </div>

      <div class="copyright">
        {% block copyright %}
          Copyright &copy; 2013 DjangoSuit.com<br>Developed by <a href="http://djangosuit.com" target="_blank">DjangoSuit.com</a>
        {% endblock %}
      </div>

      <div class="branding">{% block footer_branding %}
        {% with 'ADMIN_NAME'|suit_conf as admin_name %}
          {{ admin_name }}
          {% if admin_name == 'Django Suit' %}
            v{{ 'VERSION'|suit_conf }}
          {% endif %}
        {% endwith %}
      {% endblock %}</div>
    </div>
  </div>
  {% endif %}
{% endblock %}

  <script src="{% static 'suit/bootstrap/js/bootstrap.min.js' %}"></script>
  <script src="{% static 'suit/js/suit.js' %}"></script>
  {% block extrajs %}{% endblock %}

</body>
</html>
