This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
collective.dms.basecontent/src/collective/dms/basecontent/browser/templates/versionsviewlet.pt

62 lines
2.2 KiB
XML

<div id="fieldset-versions">
<fieldset>
<legend i18n:translate=""
tal:content="viewlet/label">label</legend>
<tal:listing define="results viewlet/table/values">
<tal:b condition="results">
<table tal:replace="structure viewlet/table/render" />
<div tal:define="version python:results[0].getObject()"
tal:replace="structure version/@@versionviewer" />
</tal:b>
<tal:b condition="not:results" replace="viewlet/noresult_message" />
</tal:listing>
</fieldset>
<script type="text/javascript">
$(document).ready(function(){
var initial_timeout = null;
$('.version-link').closest('tr').bind('select-version', function() {
/* a version has been selected, disable initial timeout */
window.clearTimeout(initial_timeout);
initial_timeout = null;
var trigger = $(this).find('a.version-link');
if (trigger.closest('tr').hasClass('selected')) {
// the version is already selected, no need to reload it
return;
}
var url = trigger.attr('href') + '/@@dvdata';
$.getJSON(url, function(data) {
window.documentData = data;
window.initializeDV();
trigger.closest('table').find('tr').removeClass('selected');
trigger.closest('tr').addClass('selected');
});
});
function async_load_dv() {
// click on the first version if no version was selected by the user
// within the 6s.
$(".version-link:last").closest('tr').trigger('select-version');
}
if (window.documentData && window.documentData.pages == null) {
// the version was just added, update DV after 6s
initial_timeout = setTimeout(async_load_dv, 6000);
} else {
// window.documentData is already filled, we don't need to call @@dvdata
// So we mark it as selected before triggering the select-version event.
$(".version-link:last").closest('tr').addClass('selected').trigger('select-version');
}
$(".version-link").closest('tr').click(function(){
$(this).closest('tr').trigger('select-version');
});
$(".version-link").click(function(){
$(this).closest('tr').trigger('select-version');
return false;
});
});
</script>
</div>