﻿{% 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>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script type="text/javascript" src="{% static 'log4javascript-1.4.6/log4javascript.js' %}"></script>
  <script type="text/javascript" src="{% static 'uploadTextarea.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>

              {% 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="statusMsg" id="statusMsg">
      <!-- this is a placeholder for xoslib views to display status messages -->
      </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 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>
