Merge pull request #1000 from ostcar/javascript
Fixed some javascript related problems
This commit is contained in:
commit
5040de8dcb
@ -1,5 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from json import dumps
|
||||||
from time import time
|
from time import time
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
@ -116,7 +117,7 @@ def get_projector_overlays():
|
|||||||
return render_to_string('projector/all_overlays.html', {'overlays': overlays})
|
return render_to_string('projector/all_overlays.html', {'overlays': overlays})
|
||||||
|
|
||||||
|
|
||||||
def get_projector_overlays_js():
|
def get_projector_overlays_js(as_json=False):
|
||||||
"""
|
"""
|
||||||
Returns JS-Code for the active overlays.
|
Returns JS-Code for the active overlays.
|
||||||
|
|
||||||
@ -127,6 +128,8 @@ def get_projector_overlays_js():
|
|||||||
if overlay.is_active():
|
if overlay.is_active():
|
||||||
overlay_js = overlay.get_javascript()
|
overlay_js = overlay.get_javascript()
|
||||||
if overlay_js:
|
if overlay_js:
|
||||||
|
if as_json:
|
||||||
|
overlay_js = dumps(overlay_js)
|
||||||
javascript.append(overlay_js)
|
javascript.append(overlay_js)
|
||||||
return javascript
|
return javascript
|
||||||
|
|
||||||
|
@ -106,6 +106,7 @@ def countdown(sender, **kwargs):
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
'load_file': static('javascript/countdown.js'),
|
'load_file': static('javascript/countdown.js'),
|
||||||
|
'call': 'update_countdown();',
|
||||||
'projector_countdown_start': start,
|
'projector_countdown_start': start,
|
||||||
'projector_countdown_duration': duration,
|
'projector_countdown_duration': duration,
|
||||||
'projector_countdown_pause': pause,
|
'projector_countdown_pause': pause,
|
||||||
@ -164,8 +165,9 @@ def projector_clock(sender, **kwargs):
|
|||||||
"""
|
"""
|
||||||
Returns JavaScript for the projector
|
Returns JavaScript for the projector
|
||||||
"""
|
"""
|
||||||
|
javascript = 'projector.set_server_time(%d);update_clock();' % int(time())
|
||||||
return {'load_file': static('javascript/clock.js'),
|
return {'load_file': static('javascript/clock.js'),
|
||||||
'server_time': int(time())}
|
'call': javascript}
|
||||||
|
|
||||||
return Overlay(name, None, get_projector_html, get_projector_js,
|
return Overlay(name, None, get_projector_html, get_projector_js,
|
||||||
allways_active=True)
|
allways_active=True)
|
||||||
|
@ -5,10 +5,9 @@ function update_clock() {
|
|||||||
currentHours = normalise(currentHours);
|
currentHours = normalise(currentHours);
|
||||||
currentMinutes = normalise(currentMinutes);
|
currentMinutes = normalise(currentMinutes);
|
||||||
$('#currentTime').html(currentHours + ':' + currentMinutes);
|
$('#currentTime').html(currentHours + ':' + currentMinutes);
|
||||||
setTimeout('update_clock()', 200);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update_clock();
|
setInterval('update_clock()', 200);
|
||||||
|
|
||||||
function normalise(i) {
|
function normalise(i) {
|
||||||
if (i < 10) {
|
if (i < 10) {
|
||||||
|
@ -38,10 +38,9 @@ function update_countdown() {
|
|||||||
if(seconds !== undefined) {
|
if(seconds !== undefined) {
|
||||||
$('#overlay_countdown_inner').html(seconds);
|
$('#overlay_countdown_inner').html(seconds);
|
||||||
}
|
}
|
||||||
setTimeout('update_countdown()', 200);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update_countdown();
|
setInterval('update_countdown()', 200);
|
||||||
|
|
||||||
function normalise(i) {
|
function normalise(i) {
|
||||||
if(i < 10) {
|
if(i < 10) {
|
||||||
|
@ -37,13 +37,19 @@ var projector = {
|
|||||||
return date;
|
return date;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
set_server_time: function(value) {
|
||||||
|
var local_time = Date.parse(new Date().toUTCString());
|
||||||
|
projector.server_time_offset = local_time - value * 1000;
|
||||||
|
},
|
||||||
|
|
||||||
update_data: function(data) {
|
update_data: function(data) {
|
||||||
$.each(data, function (key, value) {
|
$.each(data, function (key, value) {
|
||||||
if (key === 'load_file')
|
if (key === 'load_file')
|
||||||
projector.load_file(value);
|
projector.load_file(value);
|
||||||
else if (key === 'server_time') {
|
else if (key === 'call') {
|
||||||
var local_time = Date.parse(new Date().toUTCString());
|
try {
|
||||||
projector.server_time_offset = local_time - value * 1000;
|
eval(value);
|
||||||
|
} catch (e) {}
|
||||||
} else
|
} else
|
||||||
projector[key] = value;
|
projector[key] = value;
|
||||||
});
|
});
|
||||||
|
@ -14,12 +14,14 @@
|
|||||||
<script type="text/javascript" src="{% static 'javascript/sockjs-0.3.min.js' %}"></script>
|
<script type="text/javascript" src="{% static 'javascript/sockjs-0.3.min.js' %}"></script>
|
||||||
<script type="text/javascript" src="{% static 'javascript/projector.js' %}"></script>
|
<script type="text/javascript" src="{% static 'javascript/projector.js' %}"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
{% for js in overlay_js %}
|
{% for js in overlay_js %}
|
||||||
projector.update_data({{ js|safe }});
|
projector.update_data({{ js|safe }});
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% for key, value in calls.items %}
|
{% for key, value in calls.items %}
|
||||||
projector.{{ key }}({{ value }});
|
projector.{{ key }}({{ value }});
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
@ -51,7 +51,7 @@ class ProjectorView(TemplateView):
|
|||||||
kwargs.update({
|
kwargs.update({
|
||||||
'content': get_projector_content(),
|
'content': get_projector_content(),
|
||||||
'overlays': get_projector_overlays(),
|
'overlays': get_projector_overlays(),
|
||||||
'overlay_js': get_projector_overlays_js(),
|
'overlay_js': get_projector_overlays_js(as_json=True),
|
||||||
'reload': True,
|
'reload': True,
|
||||||
'calls': config['projector_js_cache']})
|
'calls': config['projector_js_cache']})
|
||||||
# For the Preview
|
# For the Preview
|
||||||
|
@ -33,7 +33,7 @@ class ProjectorViewTest(TestCase):
|
|||||||
context = view.get_context_data()
|
context = view.get_context_data()
|
||||||
mock_get_projector_content.assert_called_with()
|
mock_get_projector_content.assert_called_with()
|
||||||
mock_get_projector_overlays.assert_called_with()
|
mock_get_projector_overlays.assert_called_with()
|
||||||
mock_get_projector_overlays_js.assert_called_with()
|
mock_get_projector_overlays_js.assert_called_with(as_json=True)
|
||||||
self.assertTrue(context['reload'])
|
self.assertTrue(context['reload'])
|
||||||
self.assertEqual(context['calls'], 'js_cache')
|
self.assertEqual(context['calls'], 'js_cache')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user