﻿{% 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.9.1.min.js' %}"></script>
  <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script type="text/javascript" src="{% static 'log4javascript-1.4.6/log4javascript.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">

             <a href="{% url 'admin:index' %}"><h1 id="site-name"><img class="logo" height="70" width="259" src="{% static 'open-cloud-login-themed-light.png' %}"/></h1></a>
      {% block header %}
        {% if not is_popup %}
          <!-- Header -->
          <div id="header" class="header">
            
            <div id="branding">
                  {% 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 %}
            </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,' %}
                <a href="http://{{ request.get_host}}/admin/core/user/{{user.id}}">{{user.email}}</a>
                <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 %}
            <div id=openCloudTopPage>
            {% include "/opt/planetstack/templates/admin/newminidashboard.html" %}

<!--            <div id="minDashboard">
                <div class="hide">{{ app_label|capfirst|escape }}</div> 
                <div class="hide selectedMainNav">{{ opts.verbose_name_plural|capfirst }}</div> 
                <div class="hide currentOriginalNode">{{ original|truncatewords:"18" }}</div>


               <label class="nodetextbox nodesLabel" style="display: none;" > </label>
              <label class="nodelabel nodesValue" style="display: none;" ></label>
                <span class="nodesCnt hide"></span>
              <label class="nodetextbox cpuLabel" style="display: none;" ></label>
              <label class="nodelabel cpuValue" style="display: none;" ></label>
                <span class="cpuCnt hide"></span>
            <label class="nodetextbox bandwidthLabel" style="display: none;" ></label>
              <label class="nodelabel bandwidthValue" style="width:60px;display: none;"></label>
                <span class="bandUsage hide"></span>
            </div> -->
            </div> 

              {% 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 %}
            {% 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 -->
          <span class="clearfix"></span>
          </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>
  <script src="{% static 'page_analytics.js' %}"></script>
  <script type="text/javascript" src="//www.google.com/jsapi"></script>
  <script src="{% static 'planetstack_graphs.js' %}"></script>
  <!-- src="{% static 'planetstack_graphs_old.js' %}" -->

  {% block extrajs %}{% endblock %}
<script src="http://d3js.org/d3.v3.js"></script>
	<div class="modal fade hide" id="chartsModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
	  <div class="modal-dialog">
	    <div class="modal-content">
	      <!--<div class="modal-header">
		<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
		<h4 class="modal-title" id="myModalLabel">OpenCloud</h4>
	      </div>-->
	      <div class="modal-body" style="overflow-y:hidden; overflow-x:hidden;">
		<div class="chartContainer">
			<div class="row">
				<div class=" padding">
				</div>
			</div>

			<div class="row">
				<div class=" heading">
					<p id="chartHeading" class="heading">OpenCloud</p>	
				</div>
			</div>
			<div class="row">
				<div class="padding"></div>
				<div class="padding"></div>
			</div>
			<div class="row">
				<div id="graph" class="graph">
				</div>
			</div>
		</div>
                <div id="graph_work" style="display:none"></div>
	      </div>
	      <!--<div class="modal-footer">
		<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
	      </div>-->
	    </div><!-- /.modal-content -->
	  </div><!-- /.modal-dialog -->
	</div><!-- /.modal -->


<script>




</script>
</body>
</html>
