summaryrefslogtreecommitdiff
path: root/templates/apps
diff options
context:
space:
mode:
Diffstat (limited to 'templates/apps')
-rw-r--r--templates/apps/auth/login.html11
-rw-r--r--templates/apps/room/create.html1
-rw-r--r--templates/apps/room/fragments/occupation.txt1
-rw-r--r--templates/apps/room/launch.html34
-rw-r--r--templates/apps/room/list.html79
-rw-r--r--templates/apps/room/modify.html3
-rw-r--r--templates/apps/room/recordings.html46
-rw-r--r--templates/apps/room/retry.html13
-rw-r--r--templates/apps/room/tag.html32
-rw-r--r--templates/apps/room/update.html1
-rw-r--r--templates/apps/room/widget.html41
-rw-r--r--templates/apps/stats/domain.html33
-rw-r--r--templates/apps/stats/room.html31
-rw-r--r--templates/apps/stats/user.html31
14 files changed, 357 insertions, 0 deletions
diff --git a/templates/apps/auth/login.html b/templates/apps/auth/login.html
new file mode 100644
index 0000000..e72e73a
--- /dev/null
+++ b/templates/apps/auth/login.html
@@ -0,0 +1,11 @@
+{% extends "base.html" %}
+{% block headline %}Login{% endblock %}
+{% block title %}SUNET Meeting Tools{% endblock %}
+{% block content %}
+<div class="hero-unit">
+ <h1>Online Meetings</h1>
+ <p>Welcome to the meeting tools. Either <a class="btn btn-small btn-primary" href="/accounts/login-federated">Login</a> to manage
+ your meeting rooms and recordings, or ...</p>
+ <a class="btn btn-large btn-success pull-right" href="/accounts/login-federated?next=/user/myroom">Click here to Start a Meeting Now &raquo;&raquo;</a>
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/templates/apps/room/create.html b/templates/apps/room/create.html
new file mode 100644
index 0000000..b8b3b68
--- /dev/null
+++ b/templates/apps/room/create.html
@@ -0,0 +1 @@
+{% extends "apps/room/modify.html" %}
diff --git a/templates/apps/room/fragments/occupation.txt b/templates/apps/room/fragments/occupation.txt
new file mode 100644
index 0000000..705b6bf
--- /dev/null
+++ b/templates/apps/room/fragments/occupation.txt
@@ -0,0 +1 @@
+{%if nusers %}There are {{nusers}} users present, {{nhosts}} of whom are hosts.{%else%}The room is currently unoccupied.{%endif%} \ No newline at end of file
diff --git a/templates/apps/room/launch.html b/templates/apps/room/launch.html
new file mode 100644
index 0000000..204345d
--- /dev/null
+++ b/templates/apps/room/launch.html
@@ -0,0 +1,34 @@
+{% extends "base.html" %}
+{% load datehumanize %}
+{% block widgets %}
+{% endblock %}
+{% block content %}
+ <div class="page-header">
+ <h1>Entering {{room.name}}</h1>
+ </div>
+ <div class="ui-widget">
+ <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em; width: 80%">
+ <p><span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
+ <strong>Note</strong>
+ You are about to enter the meeting room '{{room.name}}'.
+ {%if room.nusers == 0 %}
+ You are the first user to enter the room.
+ {%else%}
+ There are {{room.nusers}} other participants in the room right now.
+ {% endif %}
+ {%if room.nhosts == 0 %} There are no hosts in the room right now. This means that the participants in the room may not be able to make full use of the room.
+ If you are hosting this meeting and are comfortable with the Adobe Connect software you may press 'Enter as Host' below to become the first host.
+ {% endif %}
+ </p>
+ </div>
+ </div>
+ <br/>
+ <div>
+ <a class="btn btn-large" href="/rooms#{{room.id}}">Cancel</a>
+ {%if room.nhosts == 0 %}
+ <a class="btn btn-large btn-success" href="/accounts/login-federated?next=/promote/{{room.id}}">Enter as Host</a>
+ {% endif %}
+ <a class="btn btn-large btn-primary" href="/launch/{{room.id}}">Enter as Participant</a>
+
+ </div>
+{% endblock %} \ No newline at end of file
diff --git a/templates/apps/room/list.html b/templates/apps/room/list.html
new file mode 100644
index 0000000..4e83466
--- /dev/null
+++ b/templates/apps/room/list.html
@@ -0,0 +1,79 @@
+{% extends "base.html" %}
+{% load datehumanize %}
+{% load roomurl %}
+{% load tagging_tags %}
+{% block widgets %}
+ $(".collapse").collapse({'parent': '#rooms'});
+ $(".occupation").click(function(e) {
+ $(this).find(".occupation-info").first().load("/api/room/"+$(this).parents('.accordion-body').attr('id')+"/occupation")
+ });
+ $(".occupation").ajaxStart(function() {
+ $(".occupation i.icon-refresh").removeClass("icon-refresh").addClass("spinner").spin("custom");
+ }).ajaxStop(function() {
+ $(".occupation i.spinner").spin(false);
+ $(".occupation i.spinner").addClass("icon-refresh").removeClass("spinner");
+ });
+{% endblock %}
+{% block meta %}
+{% if tags %}
+<link rel="alternate" type="application/rss+xml" title="{{title}} (RSS 2.0)" href="/room/+{{tags}}.rss" />
+<link rel="alternate" type="application/atom+xml" title="{{title}} (ATOM 1.0)" href="/room/+{{tags}}.atom" />
+{% endif %}
+{% endblock %}
+{% block content %}
+ <div class="page-header">
+ <h1>{{title}}</h1>
+ </div>
+ {% if rooms %}
+ <div id="rooms" class="accordion">
+ {% for r in rooms %}
+ <div class="room accordion-group">
+ <div class="accordion-heading"><a href="#{{r.id}}" class="accordion-toggle" data-toggle="collapse" data-parent="#rooms">{{r.name}}</a></div>
+ <div id="{{r.id}}" class="accordion-body collapse in">
+ <div class="accordion-inner">
+ {% tags_for_object r as tags %}
+ <p><a target="_connect" href="{{r|roomurl}}">{{r|roomurl}}</a></p>
+ <p class="well">{% if r.description %}{{r.description|safe}}{% else %}<em>No description available...</em>{% endif %}</p>
+ <ul class="unstyled" style="padding-left: 2px;">
+ {% if tags %}<li>&raquo;&nbsp;{% for tag in tags %}<a class="badge" href="/room/+{{tag}}">{{tag}}</a>{% endfor %}{%if edit %}&nbsp;<a class="btn btn-mini btn-info" href="/room/{{r.id}}/tag">manage room tags</a>{%endif%}</li>{% endif %}
+ <li>&raquo;&nbsp;Created by {{r.creator}} {{r.timecreated|datehumanize}}.</li>
+ <li>&raquo;&nbsp;<span class="occupation"><span class="occupation-info">{%if r.nusers%}There are {{r.nusers}} users present, {{r.nhosts}} of whom are hosts.{%else%}The room is currently unoccupied.{%endif%}</span><a href="#" class="btn btn-mini btn-info"><i class="icon-refresh"> </i>refresh</a></span></li>
+ {% if r.self_cleaning %}<li>&raquo;&nbsp;Room will be reset when empty.</li>{%else%}<li>&raquo;&nbsp;Room state is preserved between sessions.</li>{% endif %}
+ {% if r.allow_host %}<li>&raquo;&nbsp;First participant can elect to become host.</li>{% endif %}
+ {% if r.lastvisited %}<li>&raquo;&nbsp;Last visited {{r.lastvisited|datehumanize}}</li>{%endif%}
+ <li>&raquo;&nbsp;Hosted on {{r.acc.name}} <a class="btn btn-mini btn-info" href="/stats/room/{{r.id}}">room usage plot</a></li>
+ </ul>
+ <br/>
+ <div class="btn-group">
+ <a class="btn" target="_blank" href="/go/{{r.id}}">Enter Room</a>
+ {% if edit %}
+ <a class="btn" href="/room/{{r.id}}/tag">Room Tags</a>
+ <a class="btn" href="/room/{{r.id}}/recordings">Room Recordings</a>
+ <a class="btn" href="/room/{{r.id}}/modify">Modify Room</a>
+ {% if room.is_locked %}
+ <a class="btn" href="/room/{{r.id}}/unlock">Unlock Room</a>
+ {% endif %}
+ <a class="btn btn-danger" href="/room/{{r.id}}/delete">Delete Room</a>
+ {% endif %}
+ </div>
+ </div>
+ </div>
+ </div>
+ {% endfor %}
+ </div>
+ {% else %}
+ <p>Nothing comes to mind right now...</p>
+ {% endif %}
+ <br/>
+ {% if edit %}
+ <div class="btn-group">
+ <a class="btn btn-success" href="/room/create">Create a New Room</a>
+ </div>
+ {% endif %}
+{% endblock %}
+{% block validators %}
+{% if tags %}
+<a href="http://feed1.w3.org/check.cgi?url=/room/+{{tags}}.atom"><img src="{{STATIC_URL}}/img/valid-atom.png" alt="[Valid Atom 1.0]" title="Validate my Atom 1.0 feed" /></a>
+<a href="http://feed1.w3.org/check.cgi?url=/room/+{{tags}}.rss"><img src="{{STATIC_URL}}/img/valid-rss-rogers.png" alt="[Valid RSS]" title="Validate my RSS feed" /></a>
+{% endif %}
+{% endblock %} \ No newline at end of file
diff --git a/templates/apps/room/modify.html b/templates/apps/room/modify.html
new file mode 100644
index 0000000..a2e1b3a
--- /dev/null
+++ b/templates/apps/room/modify.html
@@ -0,0 +1,3 @@
+{% extends "edit.html" %}
+{% block widgets %}
+{% endblock %} \ No newline at end of file
diff --git a/templates/apps/room/recordings.html b/templates/apps/room/recordings.html
new file mode 100644
index 0000000..8e95b09
--- /dev/null
+++ b/templates/apps/room/recordings.html
@@ -0,0 +1,46 @@
+{% extends "base.html" %}
+
+{% load datehumanize %}
+{% load roomurl %}
+{% load tagging_tags %}
+{% block widgets %}
+$(".collapse").collapse({'parent': '#recordings'});
+{% endblock %}
+{% block meta %}
+<link rel="alternate" type="application/rss+xml" title="{{title}} recordings (RSS 2.0)" href="/room/{{room.id}}/recordings.rss" />
+<link rel="alternate" type="application/atom+xml" title="{{title}} recordings (ATOM 1.0)" href="/room/{{room.id}}/recordings.atom" />
+{% endblock %}
+{% block content %}
+ <div class="page-header">
+ <h1>Recordings in '{{room.name}}'</h1>
+ </div>
+ {% if recordings %}
+ <div id="recordings" class="accordion">
+ {% for r in recordings %}
+ <div class="recording accordion-group">
+ <div class="accordion-heading"><a class="accordion-toggle" data-toggle="collapse" href="#{{r.sco_id}}">{{r.name}}</a></div>
+ <div id="{{r.sco_id}}" class="accordion-body collapse in">
+ <div class="accordion-inner">
+ <p><a target="_connect" href="{{r.url}}">{{r.url}}</a></p>
+ <div class="well">{% if r.description %}{{r.description|safe}}{% else %}<em>No description available...</em>{% endif %}</div>
+ <ul class="unstyled">
+ <li>&raquo;&nbsp;Created {{r.date_created|datehumanize}}.</li>
+ <li>&raquo;&nbsp;Modified {{r.date_modified|datehumanize}}.</li>
+ <li>&raquo;&nbsp;Hosted on {{room.acc.name}}</li>
+ </ul>
+ <a class="btn btn-info" target="_connect" href="{{r.url}}">Play Recording</a>
+ </div>
+ </div>
+ </div>
+ {% endfor %}
+ </div>
+ {% else %}
+ <p>No recordings right now...</p>
+ {% endif %}
+ <br/>
+ <a class="btn" href="/room#{{room.id}}">Back to '{{room.name}}'</a>
+{% endblock %}
+{% block validators %}
+<a href="http://feed1.w3.org/check.cgi?url={% baseurl %}/room/{{room.id}}/recordings.atom"><img src="{{STATIC_URL}}/img/valid-atom.png" alt="[Valid Atom 1.0]" title="Validate my Atom 1.0 feed" /></a>
+<a href="http://feed1.w3.org/check.cgi?url={% baseurl %}/room/{{room.id}}/recordings.rss"><img src="{{STATIC_URL}}/img/valid-rss-rogers.png" alt="[Valid RSS]" title="Validate my RSS feed" /></a>
+{% endblock %} \ No newline at end of file
diff --git a/templates/apps/room/retry.html b/templates/apps/room/retry.html
new file mode 100644
index 0000000..28054cc
--- /dev/null
+++ b/templates/apps/room/retry.html
@@ -0,0 +1,13 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta HTTP-EQUIV="REFRESH" content="{{wait}}; url=/go/{{room.urlpath}}"/>
+</head>
+<body>
+<h1>Room is temporarily locked</h1>
+<p>Retrying room in {{wait}} seconds...</p>
+<img src="{{STATIC_URL}}img/ajax-loader.gif"/>
+</body>
+</html> \ No newline at end of file
diff --git a/templates/apps/room/tag.html b/templates/apps/room/tag.html
new file mode 100644
index 0000000..087862f
--- /dev/null
+++ b/templates/apps/room/tag.html
@@ -0,0 +1,32 @@
+{% extends "edit.html" %}
+{% load datehumanize %}
+{% load roomurl %}
+{% block widgets %}
+
+{% endblock %}
+{% block formstyle %}
+class="form-inline"
+{% endblock %}
+{% block justbeforeform %}
+<div>
+ <div class="alert">
+ <i class="icon-info-sign"> </i>
+ <strong>Note Well</strong> Tags are a way to group related rooms together. Tagging your
+ room makes your room show up in public lists of rooms hosted on this service and it
+ therefore makes your room visible. This does <em>not</em> mean that anyone can access
+ your room.
+ </div>
+ {% if tags %}
+ <div>
+ {% for tag in tags %}
+ <span class="btn-group">
+ <a class="btn btn-small" href="/room/+{{tag}}">{{tag}}</a>&nbsp;
+ <a class="btn btn-small btn-warning" href="/room/{{room.id}}/untag/{{tag}}"><i class="icon-remove"></i></a>
+ </span>
+ {% endfor %}
+ </div>
+ {% else %}
+ <div class="alert">There are no tags yet...</div>
+</div>
+ {% endif %}
+{% endblock %}
diff --git a/templates/apps/room/update.html b/templates/apps/room/update.html
new file mode 100644
index 0000000..01f1990
--- /dev/null
+++ b/templates/apps/room/update.html
@@ -0,0 +1 @@
+{% extends "edit.html" %}
diff --git a/templates/apps/room/widget.html b/templates/apps/room/widget.html
new file mode 100644
index 0000000..a658a17
--- /dev/null
+++ b/templates/apps/room/widget.html
@@ -0,0 +1,41 @@
+{% extends "base.html" %}
+{% block content %}
+<div class="page-header">
+ <h1>{{title}}</h1>
+</div>
+
+<div class="alert">
+ <i class="icon-info-sign"></i>
+ The meetingtools jquery widget allows you to easily embed lists of meetings in your own
+ web page using the popular <a href="http://jquery.com">jQuery javascript library</a>.
+</div>
+
+<p>Copy the sample html below in order to list rooms tagged with <em>{{tags}}</em>.</p>
+
+<pre class="pre-scrollable prettyprint linenums language-xml">
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;script type="text/javascript"
+ src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"&gt;&lt;/script&gt;
+ &lt;script type="text/javascript"
+ src="{% baseurl %}/site-media/js/jquery.meetingtools.js"&gt;&lt;/script&gt;
+ &lt;link href="{% baseurl %}/site-media/css/jquery.meetingtools.css"
+ rel="stylesheet" type="text/css" /&gt;
+ &lt;script type="text/javascript"&gt;
+ $(function() {
+ $("#meetings").meetingtools({tags: '{{tags}}',url: '{% baseurl %}'});
+ });
+ &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;h1&gt;Meetings...&lt;/h1&gt;
+ &lt;div id="meetings"&gt;&lt;img src="{% baseurl %}/site-media/img/ajax-loader.gif"/&gt;&lt;/div&gt;
+ &lt;/body&gt;
+&lt;/html&gt;
+</pre>
+
+<p>
+ Change the tags option in the call to 'meetingtools' in order to list other rooms. Override
+ the CSS elements in jquery.meetingtools.css in order to apply your own skin to the generated html.
+</p>
+{% endblock %} \ No newline at end of file
diff --git a/templates/apps/stats/domain.html b/templates/apps/stats/domain.html
new file mode 100644
index 0000000..f7d9ad3
--- /dev/null
+++ b/templates/apps/stats/domain.html
@@ -0,0 +1,33 @@
+{% extends "base.html" %}
+{% load datehumanize %}
+{% block widgets %}
+$.ajax({
+ url: '/api/stats/domain/{{domain}}',
+ method: 'GET',
+ success: function (resp) {
+ var graph = $('#graph');
+ series = [{label: 'Meeting minutes for {{domain}}',data: resp['data']}];
+ $.plot(graph,series,{
+ lines: { show: true },
+ points: { show: true },
+ xaxis: { mode: "time" }
+ });
+ $('#minutes').append(resp['minutes']);
+ $('#rooms').append(resp['rooms']);
+ $('#users').append(resp['users']);
+ }
+});
+{% endblock %}
+{% block content %}
+<h1>Meeting statistics for {{domain}}</h1>
+<div id="graph" style="width:600px;height:300px; display: block; float: left; margin-right: 30px;"></div>
+<div>
+<h2>Summary</h2>
+<table>
+ <tr><td><b>Total minutes:</b></td><td id="minutes"></td></tr>
+ <tr><td><b>Total rooms:</b></td><td id="rooms"></td></tr>
+ <tr><td><b>Total unique users:</b></td><td id="users"></td></tr>
+ <tr><td colspan="2" style="padding-top: 10px;"><a href="/stats">Look at your own statistics</a></td></tr>
+</table>
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/templates/apps/stats/room.html b/templates/apps/stats/room.html
new file mode 100644
index 0000000..d5e35dd
--- /dev/null
+++ b/templates/apps/stats/room.html
@@ -0,0 +1,31 @@
+{% extends "base.html" %}
+{% load datehumanize %}
+{% block widgets %}
+$.ajax({
+ url: '/api/stats/room/{{room.id}}',
+ method: 'GET',
+ success: function (resp) {
+ var graph = $('#graph');
+ series = [{label: 'Meeting minutes for {{room.name}}',data: resp['data']}];
+ $.plot(graph,series,{
+ lines: { show: true },
+ points: { show: true },
+ xaxis: { mode: "time" }
+ });
+ $('#minutes').append(resp['minutes']);
+ $('#users').append(resp['users']);
+ }
+});
+{% endblock %}
+{% block content %}
+<h1>Meeting statistics for {{room.name}}</h1>
+<div id="graph" style="width:600px;height:300px; display: block; float: left; margin-right: 30px;"></div>
+<div>
+<h2>Summary</h2>
+<table>
+ <tr><td><b>Total minutes:</b></td><td id="minutes"></td></tr>
+ <tr><td><b>Total unique users:</b></td><td id="users"></td></tr>
+ <tr><td colspan="2" style="padding-top: 10px;"><a href="/stats">Look at your own statistics</a></td></tr>
+</table>
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/templates/apps/stats/user.html b/templates/apps/stats/user.html
new file mode 100644
index 0000000..8b08c6c
--- /dev/null
+++ b/templates/apps/stats/user.html
@@ -0,0 +1,31 @@
+{% extends "base.html" %}
+{% load datehumanize %}
+{% block widgets %}
+$.ajax({
+ url: '/api/stats/user/{{username}}',
+ method: 'GET',
+ success: function (resp) {
+ var graph = $('#graph');
+ series = [{label: 'Meeting minutes for {{username}}',data: resp['data']}];
+ $.plot(graph,series,{
+ lines: { show: true },
+ points: { show: true },
+ xaxis: { mode: "time" }
+ });
+ $('#minutes').append(resp['minutes']);
+ $('#rooms').append(resp['rooms']);
+ }
+});
+{% endblock %}
+{% block content %}
+<h1>Meeting statistics for {{username}}</h1>
+<div id="graph" style="width:600px;height:300px; display: block; float: left; margin-right: 20px;"></div>
+<div>
+<h2>Summary</h2>
+<table>
+ <tr><td><b>Total minutes:</b></td><td id="minutes"></td></tr>
+ <tr><td><b>Total rooms:</b></td><td id="rooms"></td></tr>
+ <tr><td colspan="2" style="padding-top: 10px;"><a href="/stats/domain/{{domain}}">Look at statistics for {{domain}}</a></td></tr>
+</table>
+</div>
+{% endblock %} \ No newline at end of file