Move most of javascript in util.js. Enabled paging with arrow keys. Refactor a little. re #73
This commit is contained in:
parent
a509e3389d
commit
c96d629ad0
29
index.php
29
index.php
|
@ -65,35 +65,6 @@
|
||||||
<link rel="stylesheet" type="text/css" href="<?php echo getUrlWithVersion(getCurrentCss ()) ?>" media="screen" />
|
<link rel="stylesheet" type="text/css" href="<?php echo getUrlWithVersion(getCurrentCss ()) ?>" media="screen" />
|
||||||
<link rel="stylesheet" type="text/css" href="<?php echo getUrlWithVersion("resources/normalize/normalize.css") ?>" />
|
<link rel="stylesheet" type="text/css" href="<?php echo getUrlWithVersion("resources/normalize/normalize.css") ?>" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var template, result;
|
|
||||||
|
|
||||||
function ajaxifyLinks () {
|
|
||||||
if (history.pushState) {
|
|
||||||
$("a[href^='index']").click (function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
var url = $(this).attr('href');
|
|
||||||
jsonurl = url.replace ("index", "getJSON");
|
|
||||||
$.getJSON(jsonurl, function(data) {
|
|
||||||
history.pushState(data, "", url);
|
|
||||||
result = template (data);
|
|
||||||
document.title = data.title;
|
|
||||||
$(".container").html (result);
|
|
||||||
|
|
||||||
ajaxifyLinks ();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.onpopstate = function(event) {
|
|
||||||
//alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
|
|
||||||
result = template (event.state);
|
|
||||||
document.title = event.state.title;
|
|
||||||
$(".container").html (result);
|
|
||||||
|
|
||||||
ajaxifyLinks ();
|
|
||||||
};
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
// Handler for .ready() called.
|
// Handler for .ready() called.
|
||||||
|
|
|
@ -70,9 +70,9 @@
|
||||||
</div>
|
</div>
|
||||||
{{? it.isPaginated == 1}}
|
{{? it.isPaginated == 1}}
|
||||||
<div class="footcenter">
|
<div class="footcenter">
|
||||||
{{? it.prevLink != ""}}<a href="{{=it.prevLink}}" ><img src="images/previous.png?v={{=it.version}}" alt="{{=it.i18n.previousAlt}}" /></a>{{?}}
|
{{? it.prevLink != ""}}<a id="prevLink" href="{{=it.prevLink}}" ><img src="images/previous.png?v={{=it.version}}" alt="{{=it.i18n.previousAlt}}" /></a>{{?}}
|
||||||
<p> {{=it.currentPage}} / {{=it.maxPage}} </p>
|
<p> {{=it.currentPage}} / {{=it.maxPage}} </p>
|
||||||
{{? it.nextLink != ""}}<a href="{{=it.nextLink}}" ><img src="images/next.png?v={{=it.version}}" alt="{{=it.i18n.nextAlt}}" /></a>{{?}}
|
{{? it.nextLink != ""}}<a id="nextLink" href="{{=it.nextLink}}" ><img src="images/next.png?v={{=it.version}}" alt="{{=it.i18n.nextAlt}}" /></a>{{?}}
|
||||||
</div>
|
</div>
|
||||||
{{?}}
|
{{?}}
|
||||||
</footer>
|
</footer>
|
42
util.js
42
util.js
|
@ -1,3 +1,5 @@
|
||||||
|
var template, result;
|
||||||
|
|
||||||
function htmlEscape(str) {
|
function htmlEscape(str) {
|
||||||
return String(str)
|
return String(str)
|
||||||
.replace(/&/g, '&')
|
.replace(/&/g, '&')
|
||||||
|
@ -6,3 +8,43 @@ function htmlEscape(str) {
|
||||||
.replace(/</g, '<')
|
.replace(/</g, '<')
|
||||||
.replace(/>/g, '>');
|
.replace(/>/g, '>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function navigateTo (url) {
|
||||||
|
jsonurl = url.replace ("index", "getJSON");
|
||||||
|
$.getJSON(jsonurl, function(data) {
|
||||||
|
history.pushState(data, "", url);
|
||||||
|
updatePage (data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updatePage (data) {
|
||||||
|
result = template (data);
|
||||||
|
document.title = data.title;
|
||||||
|
$(".container").html (result);
|
||||||
|
|
||||||
|
ajaxifyLinks ();
|
||||||
|
}
|
||||||
|
|
||||||
|
function ajaxifyLinks () {
|
||||||
|
if (history.pushState) {
|
||||||
|
$("a[href^='index']").click (function (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
var url = $(this).attr('href');
|
||||||
|
navigateTo (url);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onpopstate = function(event) {
|
||||||
|
updatePage (event.state);
|
||||||
|
};
|
||||||
|
|
||||||
|
$(document).keydown(function(e){
|
||||||
|
if (e.keyCode == 37 && $("#prevLink").length > 0) {
|
||||||
|
navigateTo ($("#prevLink").attr('href'));
|
||||||
|
}
|
||||||
|
if (e.keyCode == 39 && $("#nextLink").length > 0) {
|
||||||
|
navigateTo ($("#nextLink").attr('href'));
|
||||||
|
}
|
||||||
|
});
|
Loading…
Reference in a new issue