{% if translation is defined and translation is not null %}
{% set translation_id = translation.id %}
{% elseif work is defined and work is not null %}
{% set translation = work.selectTranslation() %}
{% set translation_id = translation.id %}
{% elseif passage is not null %}
{% set work = passage.findWork() %}
{% set translation = work.selectTranslation() %}
{% set translation_id = translation.id %}
{% endif %}
{% if passage is not empty %}
{% include "NCBSWBundle:Exposition:display_framework/passage_text.html.twig" %}
{% if work_toc is defined and work_toc is not empty %}
{% set nColNum = 0 %}
{% if column_num is defined %}
{% set nColNum = column_num %}
{% endif %}
{% set bHas2Columns = (columns is defined and columns|length == 2) %}
{% set bHas3Columns = (columns is defined and columns|length == 3) %}
{% set sToc = '' %}
{% set sHrefStart = " href=\"javascript:gotoToc('" %}
{% set sHrefEnd = "',"~nColNum~");\" " %}
{% set sClassName = 'list-group-item d-flex justify-content-between align-items-center list-group-item-action' %}
{% set sActiveElemID = "activeTOC"~nColNum %}
<div class="tab-content-header"><i class="fas fa-list-ol"></i> {{ app.session.get('ui_str')["exposition.slider.tab.toc"] }}</div>
{% for toc_record in work_toc %}
{% set link_spec = toc_record['link_spec'] %}{% set href_str = '' %}{% set class_str = " class='"~sClassName~"' " %}{% if passage_id is defined and passage_id == toc_record['startpassage_id'] %}{% elseif bInFrame %}{#
#}{% set href_str = sHrefStart~path('exposition_frame_passage', {'translationUrl': toc_record['translation_url'], 'divisionUrls': toc_record['division_url'], 'passageNumber': toc_record['startpassageorder']})~sHrefEnd %}{% elseif bHas3Columns %}{% if nColNum == 3 %}{#
#}{% set href_str = sHrefStart~path('arbitrary_three_column', multicolumn_route_params|merge({('column3Details'): link_spec}) )~sHrefEnd %}{% elseif nColNum == 2 %}{% set href_str = sHrefStart~path('arbitrary_three_column', multicolumn_route_params|merge({('column2Details'): link_spec}) )~sHrefEnd %}{% elseif nColNum == 1 %}{% set href_str = sHrefStart~path('arbitrary_three_column', multicolumn_route_params|merge({('column1Details'): link_spec}) )~sHrefEnd %}{% endif %}{% elseif bHas2Columns %}{% if nColNum == 2 %}{% set href_str = sHrefStart~path('arbitrary_two_column', multicolumn_route_params|merge({('column2Details'): link_spec}) )~sHrefEnd %}{% elseif nColNum == 1 %}{% set href_str = sHrefStart~path('arbitrary_two_column', multicolumn_route_params|merge({('column1Details'): link_spec}) )~sHrefEnd %}{% endif %}{#
#}{% else %}{#
#}{% set href_str = sHrefStart~path('exposition_translation_division_passage', {'translationUrl': toc_record['translation_url'], 'divisionUrls': toc_record['division_url'], 'passageNumber': toc_record['startpassageorder']}) %}{% if compare_to is defined and compare_to is not null %}{% set href_str = href_str ~ "?compareTo=" ~ compare_to.url %}{% endif %}{% if compare_to2 is defined and compare_to2 is not null %}{% set href_str = href_str ~ ";;" ~ compare_to2.url %}{% endif %}{% set href_str = href_str ~ sHrefEnd %}{#
#}{% endif %}
{% if passage_order is defined and passage_order >= toc_record['startpassageorder'] and (toc_record['nextstartpassageorder'] == '' or passage_order < toc_record['nextstartpassageorder']) %}
{% set class_str = " class='"~sClassName~" active' id='"~sActiveElemID~"'" %}
{% endif %}
{% set sToc = sToc ~"<a "~href_str~" " ~ class_str ~ " >"~toc_record['toc_text']~" <span class='badge badge-pill'>"~toc_record['link_text']~"</span></a> " %}
{% endfor %}
{{ sToc|trim|raw }}
{% endif %}
{% if related_concept_list is defined and related_concept_list is not empty %}
<p><b><i>{{ app.session.get('ui_str')["related.concepts"] }}:</i></b>
{% for curr_record in related_concept_list %}
<p><a href="/gte?t={{ curr_record.translation_id }}&l={{ translation.getLanguage.id }}" target=_blank >{{ curr_record.title }}</a>
{% endfor %}
{% endif %}
{% set nPct = app.request.get('pct') %}
{% if nPct > 0 %}
<script>
function scrollToPercentage(element, percentage) {
var nMoreOffset = -30;
var nOffset = getElementTopPosition(element) + nMoreOffset;
const scrollHeight = element.scrollHeight;
const scrollTopPosition = scrollHeight * (percentage / 100) + nOffset;
setTimeout(function () {
window.scrollTo({ top: scrollTopPosition });
//element.animate({ scrollTop: scrollTopPosition }, 300);
},500);
}
function getElementTopPosition(element) {
let topPosition = element.offsetTop;
let currentElement = element.offsetParent;
while (currentElement !== null) {
topPosition += currentElement.offsetTop;
currentElement = currentElement.offsetParent;
}
return topPosition;
}
$( document ).ready(function() {
const textElement = document.getElementById('tts0');
scrollToPercentage(textElement, {{ nPct }});
});
</script>
{% endif %}
{% else %}
<p>{{ app.session.get('ui_str')["exposition.passage.notfound"] }}</p>
{% endif %}