125 lines
4.1 KiB
HTML
125 lines
4.1 KiB
HTML
Content-type:text/html; charset=UTF-8;
|
|
Access-Control-Allow-Origin: *
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Cache-control" content="public">
|
|
<meta http-equiv="Content-Script-Type" content="javascript" />
|
|
<meta http-equiv="Content-Style-Type" content="text/css" />
|
|
<title>Playlist <TMPL_VAR project_title></title>
|
|
|
|
<script>
|
|
/**
|
|
* @fileoverview dragscroll - scroll area by dragging
|
|
* @version 0.0.8
|
|
*
|
|
* @license MIT, see http://github.com/asvd/dragscroll
|
|
* @copyright 2015 asvd <heliosframework@gmail.com>
|
|
*/
|
|
|
|
|
|
(function (root, factory) {
|
|
if (typeof define === 'function' && define.amd) {
|
|
define(['exports'], factory);
|
|
} else if (typeof exports !== 'undefined') {
|
|
factory(exports);
|
|
} else {
|
|
factory((root.dragscroll = {}));
|
|
}
|
|
}(this, function (exports) {
|
|
var _window = window;
|
|
var _document = document;
|
|
var mousemove = 'mousemove';
|
|
var mouseup = 'mouseup';
|
|
var mousedown = 'mousedown';
|
|
var EventListener = 'EventListener';
|
|
var addEventListener = 'add'+EventListener;
|
|
var removeEventListener = 'remove'+EventListener;
|
|
var newScrollX, newScrollY;
|
|
|
|
var dragged = [];
|
|
var reset = function(i, el) {
|
|
for (i = 0; i < dragged.length;) {
|
|
el = dragged[i++];
|
|
el = el.container || el;
|
|
el[removeEventListener](mousedown, el.md, 0);
|
|
_window[removeEventListener](mouseup, el.mu, 0);
|
|
_window[removeEventListener](mousemove, el.mm, 0);
|
|
}
|
|
|
|
// cloning into array since HTMLCollection is updated dynamically
|
|
dragged = [].slice.call(_document.getElementsByClassName('dragscroll'));
|
|
for (i = 0; i < dragged.length;) {
|
|
(function(el, lastClientX, lastClientY, pushed, scroller, cont){
|
|
(cont = el.container || el)[addEventListener](
|
|
mousedown,
|
|
cont.md = function(e) {
|
|
if (!el.hasAttribute('nochilddrag') ||
|
|
_document.elementFromPoint(
|
|
e.pageX, e.pageY
|
|
) == cont
|
|
) {
|
|
pushed = 1;
|
|
lastClientX = e.clientX;
|
|
lastClientY = e.clientY;
|
|
|
|
e.preventDefault();
|
|
}
|
|
}, 0
|
|
);
|
|
|
|
_window[addEventListener](
|
|
mouseup, cont.mu = function() {pushed = 0;}, 0
|
|
);
|
|
|
|
_window[addEventListener](
|
|
mousemove,
|
|
cont.mm = function(e) {
|
|
if (pushed) {
|
|
(scroller = el.scroller||el).scrollLeft -=
|
|
newScrollX = (- lastClientX + (lastClientX=e.clientX));
|
|
scroller.scrollTop -=
|
|
newScrollY = (- lastClientY + (lastClientY=e.clientY));
|
|
if (el == _document.body) {
|
|
(scroller = _document.documentElement).scrollLeft -= newScrollX;
|
|
scroller.scrollTop -= newScrollY;
|
|
}
|
|
}
|
|
}, 0
|
|
);
|
|
})(dragged[i++]);
|
|
}
|
|
}
|
|
|
|
|
|
if (_document.readyState == 'complete') {
|
|
reset();
|
|
} else {
|
|
_window[addEventListener]('load', reset, 0);
|
|
}
|
|
|
|
exports.reset = reset;
|
|
}));
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="playlist_container" class="dragscroll">
|
|
<TMPL_LOOP NAME=events>
|
|
<a href="<TMPL_VAR widget_render_url>/<TMPL_VAR .controllers.event>/<TMPL_VAR event_id>.html#<TMPL_VAR event_uri escape=url>" >
|
|
<div id="event_playlist_<TMPL_VAR event_id>" class="eventContainer event">
|
|
<div class="top" title="<TMPL_VAR full_title><TMPL_IF excerpt>. <TMPL_VAR excerpt></TMPL_IF>">
|
|
<TMPL_VAR weekday_short_name> <TMPL_VAR start_time_name>
|
|
</div>
|
|
<div class="bottom">
|
|
<TMPL_IF series_name><TMPL_VAR series_name><TMPL_ELSE><TMPL_VAR title></TMPL_IF>
|
|
</div>
|
|
</div>
|
|
</a>
|
|
</TMPL_LOOP>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|