cleanup
9404
openlp/core/api/html/assets/jquery.js
vendored
4
openlp/core/api/html/assets/jquery.min.js
vendored
@ -1,32 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* OpenLP - Open Source Lyrics Projection *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* Copyright (c) 2008-2016 OpenLP Developers *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU General Public License as published by the Free *
|
|
||||||
* Software Foundation; version 2 of the License. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT *
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
|
|
||||||
* more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License along *
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., 59 *
|
|
||||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
||||||
******************************************************************************/
|
|
||||||
body {
|
|
||||||
background-color: black;
|
|
||||||
font-family: sans-serif;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.size {
|
|
||||||
position: absolute;
|
|
||||||
top: 0px;
|
|
||||||
vertical-align: middle;
|
|
||||||
height: 100%;
|
|
||||||
background-size: cover;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* OpenLP - Open Source Lyrics Projection *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* Copyright (c) 2008-2016 OpenLP Developers *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU General Public License as published by the Free *
|
|
||||||
* Software Foundation; version 2 of the License. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT *
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
|
|
||||||
* more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License along *
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., 59 *
|
|
||||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
.ui-icon-blank {
|
|
||||||
background-image: url(../images/ui-icon-blank.png);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-icon-unblank {
|
|
||||||
background-image: url(../images/ui-icon-unblank.png);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Overwrite style from jquery-mobile.min.css */
|
|
||||||
.ui-li .ui-btn-text a.ui-link-inherit{
|
|
||||||
white-space: normal;
|
|
||||||
}
|
|
@ -1,64 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* OpenLP - Open Source Lyrics Projection *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* Copyright (c) 2008-2016 OpenLP Developers *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU General Public License as published by the Free *
|
|
||||||
* Software Foundation; version 2 of the License. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT *
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
|
|
||||||
* more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License along *
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., 59 *
|
|
||||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: black;
|
|
||||||
font-family: sans-serif;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#currentslide {
|
|
||||||
font-size: 40pt;
|
|
||||||
color: white;
|
|
||||||
padding-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#nextslide {
|
|
||||||
font-size: 40pt;
|
|
||||||
color: grey;
|
|
||||||
padding-top: 0px;
|
|
||||||
padding-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#right {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
font-size: 30pt;
|
|
||||||
color: yellow;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#notes {
|
|
||||||
font-size: 36pt;
|
|
||||||
color: salmon;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#verseorder {
|
|
||||||
font-size: 30pt;
|
|
||||||
color: green;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.currenttag {
|
|
||||||
color: lightgreen;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 340 B |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 364 B |
Before Width: | Height: | Size: 460 B |
Before Width: | Height: | Size: 453 B |
Before Width: | Height: | Size: 519 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 225 B |
Before Width: | Height: | Size: 231 B |
@ -1,177 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<!--
|
|
||||||
###############################################################################
|
|
||||||
# OpenLP - Open Source Lyrics Projection #
|
|
||||||
# --------------------------------------------------------------------------- #
|
|
||||||
# Copyright (c) 2008-2016 OpenLP Developers #
|
|
||||||
# --------------------------------------------------------------------------- #
|
|
||||||
# This program is free software; you can redistribute it and/or modify it #
|
|
||||||
# under the terms of the GNU General Public License as published by the Free #
|
|
||||||
# Software Foundation; version 2 of the License. #
|
|
||||||
# #
|
|
||||||
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
|
||||||
# more details. #
|
|
||||||
# #
|
|
||||||
# You should have received a copy of the GNU General Public License along #
|
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
|
||||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
|
||||||
###############################################################################
|
|
||||||
-->
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1" />
|
|
||||||
<title>${app_title}</title>
|
|
||||||
<link rel="stylesheet" href="/assets/jquery.mobile.min.css" />
|
|
||||||
<link rel="stylesheet" href="/css/openlp.css" />
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
|
|
||||||
<script type="text/javascript" src="/assets/jquery.min.js"></script>
|
|
||||||
<script type="text/javascript" src="/js/openlp.js"></script>
|
|
||||||
<script type="text/javascript" src="/assets/jquery.mobile.min.js"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
translationStrings = {
|
|
||||||
"go_live": "${go_live}",
|
|
||||||
"add_to_service": "${add_to_service}",
|
|
||||||
"no_results": "${no_results}",
|
|
||||||
"home": "${home}"
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div data-role="page" id="home">
|
|
||||||
<div data-role="header">
|
|
||||||
<h1>${app_title}</h1>
|
|
||||||
</div>
|
|
||||||
<div data-role="content">
|
|
||||||
<div data-role="controlgroup">
|
|
||||||
<a href="#service-manager" data-role="button" data-icon="arrow-r" data-iconpos="right">${service_manager}</a>
|
|
||||||
<a href="#slide-controller" data-role="button" data-icon="arrow-r" data-iconpos="right">${slide_controller}</a>
|
|
||||||
<a href="#alerts" data-role="button" data-icon="arrow-r" data-iconpos="right">${alerts}</a>
|
|
||||||
<a href="#search" data-role="button" data-icon="arrow-r" data-iconpos="right">${search}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="page" id="service-manager">
|
|
||||||
<div data-role="header" data-position="fixed">
|
|
||||||
<a href="#home" data-role="button" data-icon="home" data-iconpos="left">${home}</a>
|
|
||||||
<h1>${service_manager}</h1>
|
|
||||||
<a href="#" id="service-refresh" data-role="button" data-icon="refresh">${refresh}</a>
|
|
||||||
<div data-role="navbar">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#service-manager" data-theme="e">${service}</a></li>
|
|
||||||
<li><a href="#slide-controller">${slides}</a></li>
|
|
||||||
<li><a href="#alerts">${alerts}</a></li>
|
|
||||||
<li><a href="#search">${search}</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="content">
|
|
||||||
<ul data-role="listview" data-inset="true">
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div data-role="footer" data-theme="b" class="ui-bar" data-position="fixed">
|
|
||||||
<div data-role="controlgroup" data-type="horizontal" style="float: left;">
|
|
||||||
<a href="#" id="service-blank" data-role="button" data-icon="blank">${blank}</a>
|
|
||||||
<a href="#" id="service-theme" data-role="button">${theme}</a>
|
|
||||||
<a href="#" id="service-desktop" data-role="button">${desktop}</a>
|
|
||||||
<a href="#" id="service-show" data-role="button" data-icon="unblank" data-iconpos="right">${show}</a>
|
|
||||||
</div>
|
|
||||||
<div data-role="controlgroup" data-type="horizontal" style="float: left;">
|
|
||||||
<a href="#" id="service-previous" data-role="button" data-icon="arrow-l">${prev}</a>
|
|
||||||
<a href="#" id="service-next" data-role="button" data-icon="arrow-r" data-iconpos="right">${next}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="page" id="slide-controller">
|
|
||||||
<div data-role="header" data-position="fixed">
|
|
||||||
<a href="#home" data-role="button" data-icon="home" data-iconpos="left">${home}</a>
|
|
||||||
<h1>${slide_controller}</h1>
|
|
||||||
<a href="#" id="controller-refresh" data-role="button" data-icon="refresh">${refresh}</a>
|
|
||||||
<div data-role="navbar">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#service-manager">${service}</a></li>
|
|
||||||
<li><a href="#slide-controller" data-theme="e">${slides}</a></li>
|
|
||||||
<li><a href="#alerts">${alerts}</a></li>
|
|
||||||
<li><a href="#search">${search}</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="content">
|
|
||||||
<ul data-role="listview" data-inset="true">
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div data-role="footer" data-theme="b" class="ui-bar" data-position="fixed">
|
|
||||||
<div data-role="controlgroup" data-type="horizontal" style="float: left;">
|
|
||||||
<a href="#" id="controller-blank" data-role="button" data-icon="blank">${blank}</a>
|
|
||||||
<a href="#" id="controller-theme" data-role="button">${theme}</a>
|
|
||||||
<a href="#" id="controller-desktop" data-role="button">${desktop}</a>
|
|
||||||
<a href="#" id="controller-show" data-role="button" data-icon="unblank" data-iconpos="right">${show}</a>
|
|
||||||
</div>
|
|
||||||
<div data-role="controlgroup" data-type="horizontal" style="float: left;">
|
|
||||||
<a href="#" id="controller-previous" data-role="button" data-icon="arrow-l">${prev}</a>
|
|
||||||
<a href="#" id="controller-next" data-role="button" data-icon="arrow-r" data-iconpos="right">${next}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="page" id="alerts">
|
|
||||||
<div data-role="header">
|
|
||||||
<a href="#home" data-role="button" data-icon="home" data-iconpos="left">${home}</a>
|
|
||||||
<h1>${alerts}</h1>
|
|
||||||
<div data-role="navbar">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#service-manager">${service}</a></li>
|
|
||||||
<li><a href="#slide-controller">${slides}</a></li>
|
|
||||||
<li><a href="#alerts" data-theme="e">${alerts}</a></li>
|
|
||||||
<li><a href="#search">${search}</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="content">
|
|
||||||
<div data-role="fieldcontain">
|
|
||||||
<label for="alert-text">${text}:</label>
|
|
||||||
<input type="text" name="alert-text" id="alert-text" value="" />
|
|
||||||
</div>
|
|
||||||
<a href="#" id="alert-submit" data-role="button">${show_alert}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="page" id="search">
|
|
||||||
<div data-role="header" data-position="fixed">
|
|
||||||
<a href="#home" data-role="button" data-icon="home" data-iconpos="left">${home}</a>
|
|
||||||
<h1>${search}</h1>
|
|
||||||
<div data-role="navbar">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#service-manager">${service}</a></li>
|
|
||||||
<li><a href="#slide-controller">${slides}</a></li>
|
|
||||||
<li><a href="#alerts">${alerts}</a></li>
|
|
||||||
<li><a href="#search" data-theme="e">${search}</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="content">
|
|
||||||
<div data-role="fieldcontain">
|
|
||||||
<label for="search-plugin">${search}:</label>
|
|
||||||
<select name="search-plugin" id="search-plugin" data-native-menu="false"></select>
|
|
||||||
</div>
|
|
||||||
<div data-role="fieldcontain">
|
|
||||||
<label for="search-text">${text}:</label>
|
|
||||||
<input type="search" name="search-text" id="search-text" value="" />
|
|
||||||
</div>
|
|
||||||
<a href="#" id="search-submit" data-role="button">${search}</a>
|
|
||||||
<ul data-role="listview" data-inset="true"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-role="page" id="options">
|
|
||||||
<div data-role="header" data-position="inline" data-theme="b">
|
|
||||||
<h1>${options}</h1>
|
|
||||||
</div>
|
|
||||||
<div data-role="content">
|
|
||||||
<input type="hidden" id="selected-item" value="" />
|
|
||||||
<a href="#" id="go-live" data-role="button">${go_live}</a>
|
|
||||||
<a href="#" id="add-to-service" data-role="button">${add_to_service}</a>
|
|
||||||
<a href="#" id="add-and-go-to-service" data-role="button">${add_and_go_to_service}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,50 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* OpenLP - Open Source Lyrics Projection *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* Copyright (c) 2008-2016 OpenLP Developers *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU General Public License as published by the Free *
|
|
||||||
* Software Foundation; version 2 of the License. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT *
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
|
|
||||||
* more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License along *
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., 59 *
|
|
||||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
||||||
******************************************************************************/
|
|
||||||
window.OpenLP = {
|
|
||||||
loadSlide: function (event) {
|
|
||||||
$.getJSON(
|
|
||||||
"/main/image",
|
|
||||||
function (data, status) {
|
|
||||||
var img = document.getElementById('image');
|
|
||||||
img.src = data.results.slide_image;
|
|
||||||
img.style.display = 'block';
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
pollServer: function () {
|
|
||||||
if ("WebSocket" in window) {
|
|
||||||
// Let us open a web socket
|
|
||||||
var ws = new WebSocket('ws://' + location.hostname + ':4317/main_poll');
|
|
||||||
ws.binaryType = 'arraybuffer';
|
|
||||||
ws.onmessage = function (evt) {
|
|
||||||
var msg = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(evt.data)));
|
|
||||||
if (OpenLP.slideCount != msg.results.slide_count) {
|
|
||||||
OpenLP.slideCount = msg.results.slide_count;
|
|
||||||
OpenLP.loadSlide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// The browser doesn't support WebSocket
|
|
||||||
alert("WebSocket NOT supported by your Browser!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
$.ajaxSetup({ cache: false });
|
|
||||||
OpenLP.pollServer();
|
|
||||||
|
|
@ -1,390 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* OpenLP - Open Source Lyrics Projection *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* Copyright (c) 2008-2016 OpenLP Developers *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU General Public License as published by the Free *
|
|
||||||
* Software Foundation; version 2 of the License. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT *
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
|
|
||||||
* more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License along *
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., 59 *
|
|
||||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
window.OpenLP = {
|
|
||||||
getElement: function(event) {
|
|
||||||
var targ;
|
|
||||||
if (!event) {
|
|
||||||
var event = window.event;
|
|
||||||
}
|
|
||||||
if (event.target) {
|
|
||||||
targ = event.target;
|
|
||||||
}
|
|
||||||
else if (event.srcElement) {
|
|
||||||
targ = event.srcElement;
|
|
||||||
}
|
|
||||||
if (targ.nodeType == 3) {
|
|
||||||
// defeat Safari bug
|
|
||||||
targ = targ.parentNode;
|
|
||||||
}
|
|
||||||
var isSecure = false;
|
|
||||||
var isAuthorised = false;
|
|
||||||
return $(targ);
|
|
||||||
},
|
|
||||||
getSearchablePlugins: function () {
|
|
||||||
$.getJSON(
|
|
||||||
"/api/plugin/search",
|
|
||||||
function (data, status) {
|
|
||||||
var select = $("#search-plugin");
|
|
||||||
select.html("");
|
|
||||||
$.each(data.results.items, function (idx, value) {
|
|
||||||
select.append("<option value='" + value[0] + "'>" + value[1] + "</option>");
|
|
||||||
});
|
|
||||||
select.selectmenu("refresh");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
loadService: function (event) {
|
|
||||||
if (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
$.getJSON(
|
|
||||||
"/api/service/list",
|
|
||||||
function (data, status) {
|
|
||||||
var ul = $("#service-manager > div[data-role=content] > ul[data-role=listview]");
|
|
||||||
ul.html("");
|
|
||||||
$.each(data.results.items, function (idx, value) {
|
|
||||||
var text = value["title"];
|
|
||||||
if (value["notes"]) {
|
|
||||||
text += ' - ' + value["notes"];
|
|
||||||
}
|
|
||||||
var li = $("<li data-icon=\"false\">").append(
|
|
||||||
$("<a href=\"#\">").attr("value", parseInt(idx, 10)).text(text));
|
|
||||||
li.attr("uuid", value["id"])
|
|
||||||
li.children("a").click(OpenLP.setItem);
|
|
||||||
ul.append(li);
|
|
||||||
});
|
|
||||||
ul.listview("refresh");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
loadController: function (event) {
|
|
||||||
if (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
$.getJSON(
|
|
||||||
"/api/controller/live/text",
|
|
||||||
function (data, status) {
|
|
||||||
var ul = $("#slide-controller > div[data-role=content] > ul[data-role=listview]");
|
|
||||||
ul.html("");
|
|
||||||
for (idx in data.results.slides) {
|
|
||||||
var indexInt = parseInt(idx,10);
|
|
||||||
var slide = data.results.slides[idx];
|
|
||||||
var text = slide["tag"];
|
|
||||||
if (text != "") {
|
|
||||||
text = text + ": ";
|
|
||||||
}
|
|
||||||
if (slide["title"]) {
|
|
||||||
text += slide["title"]
|
|
||||||
} else {
|
|
||||||
text += slide["text"];
|
|
||||||
}
|
|
||||||
if (slide["slide_notes"]) {
|
|
||||||
text += ("<div style='font-size:smaller;font-weight:normal'>" + slide["slide_notes"] + "</div>");
|
|
||||||
}
|
|
||||||
text = text.replace(/\n/g, '<br />');
|
|
||||||
if (slide["img"]) {
|
|
||||||
text += "<img src='" + slide["img"].replace("/thumbnails/", "/thumbnails88x88/") + "'>";
|
|
||||||
}
|
|
||||||
var li = $("<li data-icon=\"false\">").append($("<a href=\"#\">").html(text));
|
|
||||||
if (slide["selected"]) {
|
|
||||||
li.attr("data-theme", "e");
|
|
||||||
}
|
|
||||||
li.children("a").click(OpenLP.setSlide);
|
|
||||||
li.find("*").attr("value", indexInt );
|
|
||||||
ul.append(li);
|
|
||||||
}
|
|
||||||
OpenLP.currentItem = data.results.item;
|
|
||||||
ul.listview("refresh");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
setItem: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
var item = OpenLP.getElement(event);
|
|
||||||
var id = item.attr("value");
|
|
||||||
if (typeof id !== "number") {
|
|
||||||
id = "\"" + id + "\"";
|
|
||||||
}
|
|
||||||
var text = "{\"request\": {\"id\": " + id + "}}";
|
|
||||||
$.getJSON(
|
|
||||||
"/api/service/set",
|
|
||||||
{"data": text},
|
|
||||||
function (data, status) {
|
|
||||||
$.mobile.changePage("#slide-controller");
|
|
||||||
$("#service-manager > div[data-role=content] ul[data-role=listview] li").attr("data-theme", "c").removeClass("ui-btn-up-e").addClass("ui-btn-up-c");
|
|
||||||
while (item[0].tagName != "LI") {
|
|
||||||
item = item.parent();
|
|
||||||
}
|
|
||||||
item.attr("data-theme", "e").removeClass("ui-btn-up-c").addClass("ui-btn-up-e");
|
|
||||||
$("#service-manager > div[data-role=content] ul[data-role=listview]").listview("refresh");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
setSlide: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
var slide = OpenLP.getElement(event);
|
|
||||||
var id = slide.attr("value");
|
|
||||||
if (typeof id !== "number") {
|
|
||||||
id = "\"" + id + "\"";
|
|
||||||
}
|
|
||||||
var text = "{\"request\": {\"id\": " + id + "}}";
|
|
||||||
$.getJSON(
|
|
||||||
"/api/controller/live/set",
|
|
||||||
{"data": text},
|
|
||||||
function (data, status) {
|
|
||||||
$("#slide-controller div[data-role=content] ul[data-role=listview] li").attr("data-theme", "c").removeClass("ui-btn-up-e").addClass("ui-btn-up-c");
|
|
||||||
while (slide[0].tagName != "LI") {
|
|
||||||
slide = slide.parent();
|
|
||||||
}
|
|
||||||
slide.attr("data-theme", "e").removeClass("ui-btn-up-c").addClass("ui-btn-up-e");
|
|
||||||
$("#slide-controller div[data-role=content] ul[data-role=listview]").listview("refresh");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
pollServer: function () {
|
|
||||||
if ("WebSocket" in window) {
|
|
||||||
// Let us open a web socket
|
|
||||||
var ws = new WebSocket('ws://' + location.hostname + ':4317/poll');
|
|
||||||
ws.binaryType = 'arraybuffer';
|
|
||||||
ws.onmessage = function (evt) {
|
|
||||||
var data = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(evt.data)));
|
|
||||||
|
|
||||||
var prevItem = OpenLP.currentItem;
|
|
||||||
OpenLP.currentSlide = data.results.slide;
|
|
||||||
OpenLP.currentItem = data.results.item;
|
|
||||||
OpenLP.isSecure = data.results.isSecure;
|
|
||||||
OpenLP.isAuthorised = data.results.isAuthorised;
|
|
||||||
if ($("#service-manager").is(":visible")) {
|
|
||||||
if (OpenLP.currentService != data.results.service) {
|
|
||||||
OpenLP.currentService = data.results.service;
|
|
||||||
OpenLP.loadService();
|
|
||||||
}
|
|
||||||
$("#service-manager div[data-role=content] ul[data-role=listview] li").attr("data-theme", "c").removeClass("ui-btn-up-e").addClass("ui-btn-up-c");
|
|
||||||
$("#service-manager div[data-role=content] ul[data-role=listview] li a").each(function () {
|
|
||||||
var item = $(this);
|
|
||||||
while (item[0].tagName != "LI") {
|
|
||||||
item = item.parent();
|
|
||||||
}
|
|
||||||
if (item.attr("uuid") == OpenLP.currentItem) {
|
|
||||||
item.attr("data-theme", "e").removeClass("ui-btn-up-c").addClass("ui-btn-up-e");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$("#service-manager div[data-role=content] ul[data-role=listview]").listview("refresh");
|
|
||||||
}
|
|
||||||
if ($("#slide-controller").is(":visible")) {
|
|
||||||
if (prevItem != OpenLP.currentItem) {
|
|
||||||
OpenLP.loadController();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var idx = 0;
|
|
||||||
$("#slide-controller div[data-role=content] ul[data-role=listview] li").attr("data-theme", "c").removeClass("ui-btn-up-e").addClass("ui-btn-up-c");
|
|
||||||
$("#slide-controller div[data-role=content] ul[data-role=listview] li a").each(function () {
|
|
||||||
var item = $(this);
|
|
||||||
if (idx == OpenLP.currentSlide) {
|
|
||||||
while (item[0].tagName != "LI") {
|
|
||||||
item = item.parent();
|
|
||||||
}
|
|
||||||
item.attr("data-theme", "e").removeClass("ui-btn-up-c").addClass("ui-btn-up-e");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
idx++;
|
|
||||||
});
|
|
||||||
$("#slide-controller div[data-role=content] ul[data-role=listview]").listview("refresh");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// The browser doesn't support WebSocket
|
|
||||||
alert("WebSocket NOT supported by your Browser!");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
nextItem: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.getJSON("/api/service/next");
|
|
||||||
},
|
|
||||||
previousItem: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.getJSON("/api/service/previous");
|
|
||||||
},
|
|
||||||
nextSlide: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.getJSON("/api/controller/live/next");
|
|
||||||
},
|
|
||||||
previousSlide: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.getJSON("/api/controller/live/previous");
|
|
||||||
},
|
|
||||||
blankDisplay: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.getJSON("/api/display/blank");
|
|
||||||
},
|
|
||||||
themeDisplay: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.getJSON("/api/display/theme");
|
|
||||||
},
|
|
||||||
desktopDisplay: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.getJSON("/api/display/desktop");
|
|
||||||
},
|
|
||||||
showDisplay: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.getJSON("/api/display/show");
|
|
||||||
},
|
|
||||||
showAlert: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
var alert = OpenLP.escapeString($("#alert-text").val())
|
|
||||||
var text = "{\"request\": {\"text\": \"" + alert + "\"}}";
|
|
||||||
$.getJSON(
|
|
||||||
"/api/alert",
|
|
||||||
{"data": text},
|
|
||||||
function () {
|
|
||||||
$("#alert-text").val("");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
search: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
var query = OpenLP.escapeString($("#search-text").val())
|
|
||||||
var text = "{\"request\": {\"text\": \"" + query + "\"}}";
|
|
||||||
$.getJSON(
|
|
||||||
"/api/" + $("#search-plugin").val() + "/search",
|
|
||||||
{"data": text},
|
|
||||||
function (data, status) {
|
|
||||||
var ul = $("#search > div[data-role=content] > ul[data-role=listview]");
|
|
||||||
ul.html("");
|
|
||||||
if (data.results.items.length == 0) {
|
|
||||||
var li = $("<li data-icon=\"false\">").text(translationStrings["no_results"]);
|
|
||||||
ul.append(li);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$.each(data.results.items, function (idx, value) {
|
|
||||||
if (typeof value[0] !== "number"){
|
|
||||||
value[0] = OpenLP.escapeString(value[0])
|
|
||||||
}
|
|
||||||
var txt = "";
|
|
||||||
if (value.length > 2) {
|
|
||||||
txt = value[1] + " ( " + value[2] + " )";
|
|
||||||
} else {
|
|
||||||
txt = value[1];
|
|
||||||
}
|
|
||||||
ul.append($("<li>").append($("<a>").attr("href", "#options")
|
|
||||||
.attr("data-rel", "dialog").attr("value", value[0])
|
|
||||||
.click(OpenLP.showOptions).text(txt)));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
ul.listview("refresh");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
showOptions: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
var element = OpenLP.getElement(event);
|
|
||||||
$("#selected-item").val(element.attr("value"));
|
|
||||||
},
|
|
||||||
goLive: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
var id = $("#selected-item").val();
|
|
||||||
if (typeof id !== "number") {
|
|
||||||
id = "\"" + id + "\"";
|
|
||||||
}
|
|
||||||
var text = "{\"request\": {\"id\": " + id + "}}";
|
|
||||||
$.getJSON(
|
|
||||||
"/api/" + $("#search-plugin").val() + "/live",
|
|
||||||
{"data": text}
|
|
||||||
);
|
|
||||||
$.mobile.changePage("#slide-controller");
|
|
||||||
},
|
|
||||||
addToService: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
var id = $("#selected-item").val();
|
|
||||||
if (typeof id !== "number") {
|
|
||||||
id = "\"" + id + "\"";
|
|
||||||
}
|
|
||||||
var text = "{\"request\": {\"id\": " + id + "}}";
|
|
||||||
$.getJSON(
|
|
||||||
"/api/" + $("#search-plugin").val() + "/add",
|
|
||||||
{"data": text},
|
|
||||||
function () {
|
|
||||||
$("#options").dialog("close");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
addAndGoToService: function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
var id = $("#selected-item").val();
|
|
||||||
if (typeof id !== "number") {
|
|
||||||
id = "\"" + id + "\"";
|
|
||||||
}
|
|
||||||
var text = "{\"request\": {\"id\": " + id + "}}";
|
|
||||||
$.getJSON(
|
|
||||||
"/api/" + $("#search-plugin").val() + "/add",
|
|
||||||
{"data": text},
|
|
||||||
function () {
|
|
||||||
//$("#options").dialog("close");
|
|
||||||
$.mobile.changePage("#service-manager");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
escapeString: function (string) {
|
|
||||||
return string.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Initial jQueryMobile options
|
|
||||||
$(document).bind("mobileinit", function(){
|
|
||||||
$.mobile.defaultDialogTransition = "none";
|
|
||||||
$.mobile.defaultPageTransition = "none";
|
|
||||||
});
|
|
||||||
// Service Manager
|
|
||||||
$("#service-manager").live("pagebeforeshow", OpenLP.loadService);
|
|
||||||
$("#service-refresh").live("click", OpenLP.loadService);
|
|
||||||
$("#service-next").live("click", OpenLP.nextItem);
|
|
||||||
$("#service-previous").live("click", OpenLP.previousItem);
|
|
||||||
$("#service-blank").live("click", OpenLP.blankDisplay);
|
|
||||||
$("#service-theme").live("click", OpenLP.themeDisplay);
|
|
||||||
$("#service-desktop").live("click", OpenLP.desktopDisplay);
|
|
||||||
$("#service-show").live("click", OpenLP.showDisplay);
|
|
||||||
// Slide Controller
|
|
||||||
$("#slide-controller").live("pagebeforeshow", OpenLP.loadController);
|
|
||||||
$("#controller-refresh").live("click", OpenLP.loadController);
|
|
||||||
$("#controller-next").live("click", OpenLP.nextSlide);
|
|
||||||
$("#controller-previous").live("click", OpenLP.previousSlide);
|
|
||||||
$("#controller-blank").live("click", OpenLP.blankDisplay);
|
|
||||||
$("#controller-theme").live("click", OpenLP.themeDisplay);
|
|
||||||
$("#controller-desktop").live("click", OpenLP.desktopDisplay);
|
|
||||||
$("#controller-show").live("click", OpenLP.showDisplay);
|
|
||||||
// Alerts
|
|
||||||
$("#alert-submit").live("click", OpenLP.showAlert);
|
|
||||||
// Search
|
|
||||||
$("#search-submit").live("click", OpenLP.search);
|
|
||||||
$("#search-text").live("keypress", function(event) {
|
|
||||||
if (event.which == 13)
|
|
||||||
{
|
|
||||||
OpenLP.search(event);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$("#go-live").live("click", OpenLP.goLive);
|
|
||||||
$("#add-to-service").live("click", OpenLP.addToService);
|
|
||||||
$("#add-and-go-to-service").live("click", OpenLP.addAndGoToService);
|
|
||||||
// Poll the server twice a second to get any updates.
|
|
||||||
$.ajaxSetup({cache: false});
|
|
||||||
$("#search").live("pageinit", function (event) {
|
|
||||||
OpenLP.getSearchablePlugins();
|
|
||||||
});
|
|
||||||
OpenLP.pollServer();
|
|
@ -1,178 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* OpenLP - Open Source Lyrics Projection *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* Copyright (c) 2008-2016 OpenLP Developers *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU General Public License as published by the Free *
|
|
||||||
* Software Foundation; version 2 of the License. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT *
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
|
|
||||||
* more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License along *
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., 59 *
|
|
||||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
||||||
******************************************************************************/
|
|
||||||
window.OpenLP = {
|
|
||||||
loadService: function (event) {
|
|
||||||
$.getJSON(
|
|
||||||
"/api/service/list",
|
|
||||||
function (data, status) {
|
|
||||||
OpenLP.nextSong = "";
|
|
||||||
$("#notes").html("");
|
|
||||||
for (idx in data.results.items) {
|
|
||||||
idx = parseInt(idx, 10);
|
|
||||||
if (data.results.items[idx]["selected"]) {
|
|
||||||
$("#notes").html(data.results.items[idx]["notes"].replace(/\n/g, "<br />"));
|
|
||||||
if (data.results.items.length > idx + 1) {
|
|
||||||
OpenLP.nextSong = data.results.items[idx + 1]["title"];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OpenLP.updateSlide();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
loadSlides: function (event) {
|
|
||||||
$.getJSON(
|
|
||||||
"/api/controller/live/text",
|
|
||||||
function (data, status) {
|
|
||||||
OpenLP.currentSlides = data.results.slides;
|
|
||||||
OpenLP.currentSlide = 0;
|
|
||||||
OpenLP.currentTags = Array();
|
|
||||||
var div = $("#verseorder");
|
|
||||||
div.html("");
|
|
||||||
var tag = "";
|
|
||||||
var tags = 0;
|
|
||||||
var lastChange = 0;
|
|
||||||
$.each(data.results.slides, function(idx, slide) {
|
|
||||||
var prevtag = tag;
|
|
||||||
tag = slide["tag"];
|
|
||||||
if (tag != prevtag) {
|
|
||||||
// If the tag has changed, add new one to the list
|
|
||||||
lastChange = idx;
|
|
||||||
tags = tags + 1;
|
|
||||||
div.append(" <span>");
|
|
||||||
$("#verseorder span").last().attr("id", "tag" + tags).text(tag);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ((slide["text"] == data.results.slides[lastChange]["text"]) &&
|
|
||||||
(data.results.slides.length >= idx + (idx - lastChange))) {
|
|
||||||
// If the tag hasn't changed, check to see if the same verse
|
|
||||||
// has been repeated consecutively. Note the verse may have been
|
|
||||||
// split over several slides, so search through. If so, repeat the tag.
|
|
||||||
var match = true;
|
|
||||||
for (var idx2 = 0; idx2 < idx - lastChange; idx2++) {
|
|
||||||
if(data.results.slides[lastChange + idx2]["text"] != data.results.slides[idx + idx2]["text"]) {
|
|
||||||
match = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (match) {
|
|
||||||
lastChange = idx;
|
|
||||||
tags = tags + 1;
|
|
||||||
div.append(" <span>");
|
|
||||||
$("#verseorder span").last().attr("id", "tag" + tags).text(tag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OpenLP.currentTags[idx] = tags;
|
|
||||||
if (slide["selected"])
|
|
||||||
OpenLP.currentSlide = idx;
|
|
||||||
})
|
|
||||||
OpenLP.loadService();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
updateSlide: function() {
|
|
||||||
// Show the current slide on top. Any trailing slides for the same verse
|
|
||||||
// are shown too underneath in grey.
|
|
||||||
// Then leave a blank line between following verses
|
|
||||||
$("#verseorder span").removeClass("currenttag");
|
|
||||||
$("#tag" + OpenLP.currentTags[OpenLP.currentSlide]).addClass("currenttag");
|
|
||||||
var slide = OpenLP.currentSlides[OpenLP.currentSlide];
|
|
||||||
var text = "";
|
|
||||||
// use title if available
|
|
||||||
if (slide["title"]) {
|
|
||||||
text = slide["title"];
|
|
||||||
} else {
|
|
||||||
text = slide["text"];
|
|
||||||
}
|
|
||||||
// use thumbnail if available
|
|
||||||
if (slide["img"]) {
|
|
||||||
text += "<br /><img src='" + slide["img"].replace("/thumbnails/", "/thumbnails320x240/") + "'><br />";
|
|
||||||
}
|
|
||||||
// use notes if available
|
|
||||||
if (slide["slide_notes"]) {
|
|
||||||
text += '<br />' + slide["slide_notes"];
|
|
||||||
}
|
|
||||||
text = text.replace(/\n/g, "<br />");
|
|
||||||
$("#currentslide").html(text);
|
|
||||||
text = "";
|
|
||||||
if (OpenLP.currentSlide < OpenLP.currentSlides.length - 1) {
|
|
||||||
for (var idx = OpenLP.currentSlide + 1; idx < OpenLP.currentSlides.length; idx++) {
|
|
||||||
if (OpenLP.currentTags[idx] != OpenLP.currentTags[idx - 1])
|
|
||||||
text = text + "<p class=\"nextslide\">";
|
|
||||||
if (OpenLP.currentSlides[idx]["title"]) {
|
|
||||||
text = text + OpenLP.currentSlides[idx]["title"];
|
|
||||||
} else {
|
|
||||||
text = text + OpenLP.currentSlides[idx]["text"];
|
|
||||||
}
|
|
||||||
if (OpenLP.currentTags[idx] != OpenLP.currentTags[idx - 1])
|
|
||||||
text = text + "</p>";
|
|
||||||
else
|
|
||||||
text = text + "<br />";
|
|
||||||
}
|
|
||||||
text = text.replace(/\n/g, "<br />");
|
|
||||||
$("#nextslide").html(text);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
text = "<p class=\"nextslide\">" + $("#next-text").val() + ": " + OpenLP.nextSong + "</p>";
|
|
||||||
$("#nextslide").html(text);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
updateClock: function() {
|
|
||||||
var div = $("#clock");
|
|
||||||
var t = new Date();
|
|
||||||
var h = t.getHours();
|
|
||||||
if (OpenLP.twelve && h > 12)
|
|
||||||
h = h - 12;
|
|
||||||
var m = t.getMinutes();
|
|
||||||
if (m < 10)
|
|
||||||
m = '0' + m + '';
|
|
||||||
div.html(h + ":" + m);
|
|
||||||
},
|
|
||||||
pollServer: function () {
|
|
||||||
if ("WebSocket" in window) {
|
|
||||||
// Let us open a web socket
|
|
||||||
var ws = new WebSocket('ws://' + location.hostname + ':4317/poll');
|
|
||||||
ws.binaryType = 'arraybuffer';
|
|
||||||
ws.onmessage = function (evt) {
|
|
||||||
var msg = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(evt.data)));
|
|
||||||
OpenLP.twelve = msg.results.twelve;
|
|
||||||
OpenLP.updateClock();
|
|
||||||
if (OpenLP.currentItem != msg.results.item ||
|
|
||||||
OpenLP.currentService != msg.results.service) {
|
|
||||||
OpenLP.currentItem = msg.results.item;
|
|
||||||
OpenLP.currentService = msg.results.service;
|
|
||||||
OpenLP.loadSlides();
|
|
||||||
}
|
|
||||||
else if (OpenLP.currentSlide != msg.results.slide) {
|
|
||||||
OpenLP.currentSlide = parseInt(msg.results.slide, 10);
|
|
||||||
OpenLP.updateSlide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// The browser doesn't support WebSocket
|
|
||||||
alert("WebSocket NOT supported by your Browser!");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
||||||
$.ajaxSetup({ cache: false });
|
|
||||||
setInterval("OpenLP.updateClock();", 1000);
|
|
||||||
OpenLP.pollServer();
|
|
||||||
OpenLP.updateClock();
|
|
@ -1,34 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<!--
|
|
||||||
###############################################################################
|
|
||||||
# OpenLP - Open Source Lyrics Projection #
|
|
||||||
# --------------------------------------------------------------------------- #
|
|
||||||
# Copyright (c) 2008-2016 OpenLP Developers #
|
|
||||||
# --------------------------------------------------------------------------- #
|
|
||||||
# This program is free software; you can redistribute it and/or modify it #
|
|
||||||
# under the terms of the GNU General Public License as published by the Free #
|
|
||||||
# Software Foundation; version 2 of the License. #
|
|
||||||
# #
|
|
||||||
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
|
||||||
# more details. #
|
|
||||||
# #
|
|
||||||
# You should have received a copy of the GNU General Public License along #
|
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
|
||||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
|
||||||
###############################################################################
|
|
||||||
-->
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<title>${live_title}</title>
|
|
||||||
<link rel="stylesheet" href="/css/main.css" />
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
|
|
||||||
<script type="text/javascript" src="/assets/jquery.min.js"></script>
|
|
||||||
<script type="text/javascript" src="/js/main.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<img id="image" class="size"/>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,41 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<!--
|
|
||||||
###############################################################################
|
|
||||||
# OpenLP - Open Source Lyrics Projection #
|
|
||||||
# --------------------------------------------------------------------------- #
|
|
||||||
# Copyright (c) 2008-2016 OpenLP Developers #
|
|
||||||
# --------------------------------------------------------------------------- #
|
|
||||||
# This program is free software; you can redistribute it and/or modify it #
|
|
||||||
# under the terms of the GNU General Public License as published by the Free #
|
|
||||||
# Software Foundation; version 2 of the License. #
|
|
||||||
# #
|
|
||||||
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
|
||||||
# more details. #
|
|
||||||
# #
|
|
||||||
# You should have received a copy of the GNU General Public License along #
|
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
|
||||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
|
||||||
###############################################################################
|
|
||||||
-->
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<title>${stage_title}</title>
|
|
||||||
<link rel="stylesheet" href="/css/stage.css" />
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
|
|
||||||
<script type="text/javascript" src="/assets/jquery.min.js"></script>
|
|
||||||
<script type="text/javascript" src="/js/stage.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<input type="hidden" id="next-text" value="${next}" />
|
|
||||||
<div id="right">
|
|
||||||
<div id="clock"></div>
|
|
||||||
<div id="notes"></div>
|
|
||||||
</div>
|
|
||||||
<div id="verseorder"></div>
|
|
||||||
<div id="currentslide"></div>
|
|
||||||
<div id="nextslide"></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|