add live reloading of results page fragments

This commit is contained in:
Frédéric Péters 2011-11-22 23:11:52 +01:00
parent 0ddc19292e
commit 3159b95385
2 changed files with 67 additions and 0 deletions

View File

@ -47,6 +47,7 @@
<span>Nombre de résultats : <span tal:replace="python:len(deputy_results)"/></span>
</div>
<div class="results-var">
<div class="results">
<ul>
<tal:entry tal:repeat="deputy python: deputy_batch">
@ -71,6 +72,7 @@
<div tal:define="batch deputy_batch">
<div metal:use-macro="view/batch_macros/macros/navigation" />
</div>
</div>
</div>
@ -80,6 +82,7 @@
<span>Nombre de résultats : <span tal:replace="python:len(doc_results)"/></span>
</div>
<div class="results-var">
<div class="results">
<ul>
<tal:entry tal:repeat="doc doc_batch">
@ -94,6 +97,7 @@
<div tal:define="batch doc_batch">
<div metal:use-macro="view/batch_macros/macros/navigation" />
</div>
</div>
</div>
@ -103,6 +107,7 @@
<span>Nombre de résultats : <span tal:replace="python:len(event_results)"/></span>
</div>
<div class="results-var">
<div class="results">
<ul>
<tal:entry tal:repeat="event event_batch">
@ -116,6 +121,7 @@
<div tal:define="batch event_batch">
<div metal:use-macro="view/batch_macros/macros/navigation" />
</div>
</div>
</div>
@ -125,6 +131,7 @@
<span>Nombre de résultats : <span tal:replace="python:len(page_results)"/></span>
</div>
<div class="results-var">
<div class="results">
<ul>
<tal:entry tal:repeat="page page_batch">
@ -139,10 +146,36 @@
<div tal:define="batch page_batch">
<div metal:use-macro="view/batch_macros/macros/navigation" />
</div>
</div>
</div>
</div>
<script type="text/javascript">
function load_results(elem)
{
var base = $(elem).parents('.results-var');
var base_spec = ' #' + $(elem).parents('.results-var').parent()[0].id + ' .results-var > div';
jQuery.get($(elem).attr('href'), null, function(data, textStatus, jqXHR) {
if (textStatus == 'notmodified')
return;
if (textStatus == 'success') {
$(base).html($(data).find(base_spec));
console.log('ici:', $(base).find('.listingBar a'));
$(base).find('.listingBar a').click(function() { return load_results($(this)); });
}
});
return false;
}
(function($) {
$().ready(function() {
$('.results-var .listingBar a').click(function() { return load_results($(this)); });
});
})(jQuery);
</script>
</tal:main-macro>
</metal:main>

View File

@ -42,6 +42,7 @@
<a class="button" tal:attributes="href view/deputy_form_url">Filtre avancé</a>
</div>
<div class="results-var">
<div class="results">
<ul>
<tal:entry tal:repeat="deputy python: deputy_batch">
@ -66,6 +67,7 @@
<div tal:define="batch deputy_batch">
<div metal:use-macro="view/batch_macros/macros/navigation" />
</div>
</div>
</div>
@ -76,6 +78,7 @@
<a class="button" tal:attributes="href view/docdos_form_url">Filtre avancé</a>
</div>
<div class="results-var">
<div class="results">
<ul>
<tal:entry tal:repeat="doc doc_batch">
@ -90,6 +93,7 @@
<div tal:define="batch doc_batch">
<div metal:use-macro="view/batch_macros/macros/navigation" />
</div>
</div>
</div>
@ -100,6 +104,7 @@
<a class="button" tal:attributes="href view/event_form_url">Filtre avancé</a>
</div>
<div class="results-var">
<div class="results">
<ul>
<tal:entry tal:repeat="event event_batch">
@ -109,6 +114,7 @@
</tal:entry>
</ul>
</div>
</div>
<div tal:define="batch event_batch">
<div metal:use-macro="view/batch_macros/macros/navigation" />
@ -122,6 +128,7 @@
<span>Nombre de résultats : <span tal:replace="python:len(page_results)"/></span>
</div>
<div class="results-var">
<div class="results">
<ul>
<tal:entry tal:repeat="page page_batch">
@ -136,10 +143,37 @@
<div tal:define="batch page_batch">
<div metal:use-macro="view/batch_macros/macros/navigation" />
</div>
</div>
</div>
</div>
<script type="text/javascript">
function load_results(elem)
{
var base = $(elem).parents('.results-var');
var base_spec = ' #' + $(elem).parents('.results-var').parent()[0].id + ' .results-var > div';
jQuery.get($(elem).attr('href'), null, function(data, textStatus, jqXHR) {
if (textStatus == 'notmodified')
return;
if (textStatus == 'success') {
$(base).html($(data).find(base_spec));
console.log('ici:', $(base).find('.listingBar a'));
$(base).find('.listingBar a').click(function() { return load_results($(this)); });
}
});
return false;
}
(function($) {
$().ready(function() {
$('.results-var .listingBar a').click(function() { return load_results($(this)); });
});
})(jQuery);
</script>
</tal:main-macro>
</metal:main>