summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Reporting/templates/clients/detail.html
blob: 6732bb8c9d539c975e0dfa685d5fdb9050f2fb29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
{% extends "base.html" %}
{% load bcfg2_tags %}
{% comment %}
This is needed for Django versions less than 1.5
{% endcomment %}
{% load url from future %}

{% block title %}Bcfg2 - Client {{client.name}}{% endblock %}

{% block extra_header_info %}
<style type="text/css">
.node_data {
    border: 1px solid #98DBCC;
    margin: 10px;
    padding-left: 18px;
}
.node_data td {
    padding: 1px 20px 1px 2px;
}
span.history_links {
    font-size: 90%;
    margin-left: 50px;
}
span.history_links a {
    font-size: 90%;
}
</style>
{% endblock %}

{% block body_onload %}javascript:clientdetailload(){% endblock %}

{% block pagebanner %}Client Details{% endblock %}

{% block content %}
  <div class='detail_header'>
    <h2>{{client.name}}</h2>
    <a href='{% url "reports_client_manage" %}#{{ client.name }}'>[manage]</a>
  <span class='history_links'><a href="{% url "reports_client_history" client.name %}">View History</a> | Jump to&nbsp;
    <select id="quick" name="quick" onchange="javascript:pageJump('quick');">
    <option value="" selected="selected">--- Time ---</option>
    {% for i in client.interactions.all|slice:":25" %}
        <option value="{% url "reports_client_detail_pk" hostname=client.name pk=i.id %}">{{i.timestamp|date:"c"}}</option>
    {% endfor %}
  </select></span>
  </div>

  {% if interaction.isstale %}
  <div class="warningbox">
    This node did not run within the last 24 hours &#8212; it may be out of date.
  </div>
  {% endif %}
  <table class='node_data'>
    <tr><td>Timestamp</td><td>{{interaction.timestamp}}</td></tr>
    {% if interaction.server %}
    <tr><td>Served by</td><td>{{interaction.server}}</td></tr>
    {% endif %}
    {% if interaction.profile %}
    <tr><td>Profile</td><td>{{interaction.profile}}</td></tr>
    {% endif %}
    {% if interaction.repo_rev_code %}
    <tr><td>Revision</td><td>{{interaction.repo_rev_code}}</td></tr>
    {% endif %}
    <tr><td>State</td><td class='{{interaction.state}}-lineitem'>{{interaction.state|capfirst}}</td></tr>
    <tr><td>Managed entries</td><td>{{interaction.total_count}}</td></tr>
    {% if not interaction.isclean %}
    <tr><td>Deviation</td><td>{{interaction.percentbad|floatformat:"3"}}%</td></tr>
    {% endif %}
  </table>

  {% for group in interaction.groups.all %}
  {% if forloop.first %}
  <div class='entry_list'>
    <div class='entry_list_head' onclick='javascript:toggleMe("groups_table");'>
      <h3>Group membership</h3>
      <div class='entry_expand_tab' id='plusminus_groups_table'>[+]</div>
    </div>
    <table id='groups_table' class='entry_list' style='display: none'>
  {% endif %}
        <tr class='{% cycle listview,listview_alt %}'>
          <td class='entry_list_type'>{{group}}</td>
        </tr>
  {% if forloop.last %}
    </table>
  </div>
  {% endif %}
  {% endfor %}

  {% for bundle in interaction.bundles.all %}
  {% if forloop.first %}
  <div class='entry_list'>
    <div class='entry_list_head' onclick='javascript:toggleMe("bundles_table");'>
      <h3>Bundle membership</h3>
      <div class='entry_expand_tab' id='plusminus_bundles_table'>[+]</div>
    </div>
    <table id='bundles_table' class='entry_list' style='display: none'>
  {% endif %}
        <tr class='{% cycle listview,listview_alt %}'>
          <td class='entry_list_type'>{{bundle}}</td>
        </tr>
  {% if forloop.last %}
    </table>
  </div>
  {% endif %}
  {% endfor %}

  {% for entry_type, entry_list in entry_types.items %}
  {% if entry_list %}
  <div class='entry_list'>
    <div class='entry_list_head {{entry_type}}-lineitem' onclick='javascript:toggleMe("{{entry_type}}_table");'>
      <h3>{{ entry_type|capfirst }} Entries &#8212; {{ entry_list|length }}</h3>
      <div class='entry_expand_tab' id='plusminus_{{entry_type}}_table'>[+]</div>
    </div>
    <table id='{{entry_type}}_table' class='entry_list'>
      {% for entry in entry_list %}
        <tr class='{% cycle listview,listview_alt %}'>
          <td class='entry_list_type'>{{entry.entry_type}}</td>
          <td><a href="{% url "reports_item" entry.class_name entry.pk interaction.pk %}">
              {{entry.name}}</a></td>
        </tr>
      {% endfor %}
    </table>
  </div>
  {% endif %}
  {% endfor %}

  {% if interaction.failures.all %}
  <div class='entry_list'>
    <div class='entry_list_head failed-lineitem' onclick='javascript:toggleMe("failures_table");'>
      <h3>Failed Entries &#8212; {{ interaction.failures.all|length }}</h3>
      <div class='entry_expand_tab' id='plusminus_failures_table'>[+]</div>
    </div>
    <table id='failures_table' class='entry_list' style='display: none'>
      {% for failure in interaction.failures.all %}
        <tr class='{% cycle listview,listview_alt %}'>
          <td class='entry_list_type'>{{failure.entry_type}}</td>
          <td><a href="{% url "reports_item" failure.class_name failure.pk interaction.pk %}">
              {{failure.name}}</a></td>
        </tr>
      {% endfor %}
    </table>
  </div>
  {% endif %}

  {% if entry_list %}
  <div class="entry_list recent_history_wrapper">
    <div class="entry_list_head" style="border-bottom: 2px solid #98DBCC;">
      <h4 style="display: inline"><a href="{% url "reports_client_history" client.name %}">Recent Interactions</a></h4>
    </div>
    <div class='recent_history_box'>
      {% include "widgets/interaction_list.inc" %}
      <div style='padding-left: 5px'><a href="{% url "reports_client_history" client.name %}">more...</a></div>
    </div>
  </div>
  {% endif %}
{% endblock %}