diff --git a/static/js/nextbutton.js b/static/js/nextbutton.js new file mode 100644 index 0000000000000000000000000000000000000000..48060e4238da0ab0efde3c0d0dfd46b616aa492e --- /dev/null +++ b/static/js/nextbutton.js @@ -0,0 +1,46 @@ +var keyhash = ""; +var changehash = false; +var notificationArea; +var timeout; + +function hashkey(e) { + return e.keyCode + ";" + e.charCode; +} + +function clickNextSpeaker() { + var rows = document.getElementById("next-speaker-table").rows; + if (rows.length > 1) { + var row = rows[1]; + var a = row.children[2].childNodes[1]; + a.click(); + } +} + +window.onkeypress = function(e) { + if (changehash) { + keyhash = hashkey(e); + changehash = false; + sessionStorage["keyhash"] = keyhash; + notificationArea.innerHTML = "Key has been set."; + timeout = window.setTimeout(function() { notificationArea.innerHTML = ""; }, 5000); + } else { + if (hashkey(e) == keyhash) { + clickNextSpeaker(); + } + } +}; + +function setkeyhash() { + changehash = true; + notificationArea.innerHTML = "Please click the key."; + window.clearTimeout(timeout); +} + +var nextbuttoncachedonloadfunction = window.onload; +window.onload = function() { + nextbuttoncachedonloadfunction(); + if (sessionStorage["keyhash"]) { + keyhash = sessionStorage["keyhash"]; + } + notificationArea = document.getElementById("rede-layout-notification"); +}; diff --git a/templates/layout.html b/templates/layout.html index cc60baf3ebd115edcb35dbd2c31f1e165855bd2b..318dc3449259abef4e47798608a3992c620748b0 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -28,6 +28,8 @@ {% include "content_time.html" %} </span> <div class="mdl-layout-spacer"></div> + <span id="rede-layout-notification" class="rede-layout-title"></span> + <div class="mdl-layout-spacer"></div> <button class="mdl-button mdl-js-button mdl-js-ripple-effet mdl-button--icon" id="hdrbtn"> <i class="material-icons">more_vert</i> </button> @@ -83,6 +85,9 @@ <a class="mdl-navigation__link" href="{{ url_for("speech.show") }}"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">announcement</i>Pending speakers</a> {% if current_user.is_authenticated() and "admin" in current_user.roles %} <a class="mdl-navigation__link" href="{{ url_for("admin.index") }}"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">computer</i>Administration</a> + {% block additional_sidelinks %} + <!-- put your additional sidelinks here --> + {% endblock %} {% endif %} </nav> </div> diff --git a/templates/speech_index.html b/templates/speech_index.html index ad81430ae33c1bc9f315d6642dd779c566207e5c..cf9cf5045cdab2021b088cb2d64e55c4c095126e 100644 --- a/templates/speech_index.html +++ b/templates/speech_index.html @@ -2,9 +2,17 @@ {% from "macros.html" import render_form %} {% block title %}Statements{% endblock %} +{% block additional_js %} +<script src="{{ url_for('static', filename='js/nextbutton.js') }}" async></script> +{% endblock %} + +{% block additional_sidelinks %} +<a href="#" class="mdl-navigation__link" onclick="setkeyhash()">Set Next Key</a> +{% endblock %} + {% block content %} {% for statements, add_form, event in meta %} - <table class="mdl-data-table mdl-js-table mdl-shadow--2dp mdl-cell mdl-cell--6-col mdl-cell--4-col-tablet mdl-cell--4-col-phone sortable"> + <table id="next-speaker-table" class="mdl-data-table mdl-js-table mdl-shadow--2dp mdl-cell mdl-cell--6-col mdl-cell--4-col-tablet mdl-cell--4-col-phone sortable"> <thead> <tr> <th class="mdl-data-table__cell--non-numeric">Speaker</th> diff --git a/templates/update.js b/templates/update.js index 6246d0fb0662548aad3b2e224d8f89b4c4833eb6..754d490a35174d92d3c31589fc4a19bad51c2e0b 100644 --- a/templates/update.js +++ b/templates/update.js @@ -27,5 +27,5 @@ var {{ prefix }}f = window.onload; window.onload=function() { {{ prefix }}f(); window.setInterval({{ prefix }}request, 1000 * {{ update_interval }}); -} +};