Cleaning up elenph excerpt template

This commit is contained in:
Georgy Litvinov 2021-03-02 14:14:48 +01:00
parent cc6c590df6
commit 05f26298f6
2 changed files with 262 additions and 300 deletions

View file

@ -1,265 +0,0 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#-- Individual profile page template for foaf:Person individuals -->
<!--[if IE 7]>
<link rel="stylesheet" href="${urls.base}/css/individual/ie7-standard-view.css" />
<![endif]-->
<#-- <#include "individual-setup.ftl"> -->
<#import "individual-qrCodeGenerator.ftl" as qr>
<#import "lib-vivo-properties.ftl" as vp>
<#--Number of labels present-->
<#if !labelCount??>
<#assign labelCount = 0 >
</#if>
<#--Number of available locales-->
<#if !localesCount??>
<#assign localesCount = 1>
</#if>
<#--Number of distinct languages represented, with no language tag counting as a language, across labels-->
<#if !languageCount??>
<#assign languageCount = 1>
</#if>
<#assign qrCodeIcon = "qr-code-icon.png">
<#assign visRequestingTemplate = "foaf-person-2column">
<#--add the VIVO-ORCID interface -->
<#include "individual-orcidInterface.ftl">
<section id="individual-intro" class="vcard person" role="region"><span itemscope itemtype="http://schema.org/Person">
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
<#include "individual-adminPanel.ftl">
<header>
<#if relatedSubject??>
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p>
<#else>
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
<#-- Label -->
<@p.label individual editable labelCount localesCount/>
</h1>
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
<#if title?has_content> <#-- true when the property is in the list, even if not populated (when editing) -->
<#if (title.statements?size < 1) >
<@p.addLinkWithLabel title editable />
<#elseif editable>
<h2>${title.name?capitalize!}</h2>
<@p.verboseDisplay title />
</#if>
<#list title.statements as statement>
<#if !editable >
<div id="titleContainer"><span itemprop="jobTitle" class="display-title-not-editable">${statement.preferredTitle}</span></div>
<#else>
<span itemprop="jobTitle" class="display-title-editable">${statement.preferredTitle}</span>
<@p.editingLinks "${title.localName}" "${title.name}" statement editable title.rangeUri />
</#if>
</#list>
</#if>
<#-- If preferredTitle is unpopulated, display mostSpecificTypes -->
<#if ! (title.statements)?has_content>
<@p.mostSpecificTypesPerson individual editable/>
</#if>
</#if>
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
<#include "individual-iconControls.ftl">
</span>
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
</header>
<!-- Positions -->
<#include "individual-positions.ftl">
<!-- Overview -->
<#if !editable>
<p></p>
</#if>
<#include "individual-overview.ftl">
<!-- Research Areas -->
<#include "individual-researchAreas.ftl">
<!-- Geographic Focus -->
<#include "individual-geographicFocus.ftl">
<#include "individual-openSocial.ftl">
</section> <!-- end individual-info -->
</span></section> <!-- end individual-intro -->
<#assign nameForOtherGroup = "${i18n().other}">
<#if !editable>
<#-- We don't want to see the first name and last name unless we might edit them. -->
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!>
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!>
</#if>
<#if !editable>
<#if authors??>
<#list authors as author>
<div class="affiliations" >
<b><#if author.authorFamily??>${author.authorFamily}&nbsp;</#if><#if author.authorGivenName??>${author.authorGivenName}</#if></b>
<#if author.orgName??>
<br><span style="color:rgba(0,0,0,0.54);">${author.orgName}</span>
</#if>
<#if author.orgAddress??>
<br>
<span style="color:rgba(0,0,0,0.54);">Адрес организации: <#if author.orgPostalCode??>${author.orgPostalCode},&nbsp;</#if>${author.orgAddress}&nbsp;</span>
</#if>
</div>
</#list>
</#if>
<#else>
<#assign pubAuthors = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#hasAuthor")!>
<#if pubAuthors?has_content>
<div class="label">Авторы: <@p.addLink pubAuthors editable /> <@p.verboseDisplay pubAuthors /> </div>
<#if pubAuthors.statements?has_content >
<div class="pubAuthors" style="list-style:none;">
<@p.objectProperty pubAuthors editable />
</div>
</#if>
</#if>
</#if>
<#if articles?has_content>
<div class="label">В составе статей: </div>
<div>
<#list articles as article>
<#if article?has_content >
<div style="list-style:none;border:none;width: 100%;text-align:left;" class="article">
<a href="${urls.base}/individual?uri=${article.articleUri?url}"">${article.articleName}</a>
</div>
</#if>
</#list>
</div>
</#if>
<#assign rubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if rubrics?has_content>
<div class="label">Относится к: <@p.addLink rubrics editable /> <@p.verboseDisplay rubrics /> </div>
<#if rubrics.statements?has_content >
<div class="rubrics" style="list-style:none;">
<@p.objectProperty rubrics editable />
</div>
</#if>
</#if>
<#assign keywords = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#keywords")!>
<#if keywords?has_content >
<div class="label">Ключевые слова: <@p.addLink keywords editable /> <@p.verboseDisplay keywords /> </div>
<#if keywords.statements?has_content && keywords.type == "data">
<div class="keywords" style="list-style:none;">
<@p.dataPropertyList keywords editable />
</div>
</#if>
</#if>
<#assign htmlExcerpt = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#htmlExcerpt")!>
<#if htmlExcerpt?has_content >
<#if htmlExcerpt.statements?has_content && htmlExcerpt.type == "data">
<div class="htmlExcerpt" style="list-style:none;">
<@p.dataPropertyList htmlExcerpt editable />
<#-- object property -->
</div>
<#else>
<div class="label">Текст отрывка: <@p.addLink htmlExcerpt editable /> <@p.verboseDisplay htmlExcerpt /> </div>
</#if>
</#if>
<#assign works = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#works")!>
<#if works.statements?has_content || editable >
<br/>
<div class="works" style="list-style:none;">
<h2 class="label">Источники: <@p.addLink works editable /> <@p.verboseDisplay works /></h2>
<@p.dataPropertyList works editable />
</div>
</#if>
<#assign biblio= propertyGroups.pullProperty("https://litvinovg.pro/text_structures#bibliography")!>
<#if biblio.statements?has_content || editable >
<br/>
<div class="biblio" style="list-style:none;">
<h2 class="label">Литература: <@p.addLink biblio editable /> <@p.verboseDisplay biblio /></h2>
<@p.dataPropertyList biblio editable />
</div>
</#if>
<#-- <#include "individual-property-group-tabs.ftl"> -->
<#if profilePageTypesEnabled && (targetedView?has_content || user.loggedIn) >
<span id="quickViewLink" >
<a href="${urls.base}/display/${individual.localName}?destination=quickView" >
<img id="quickViewIcon" src="${urls.images}/individual/quickViewIcon.png" alt="${i18n().quick_view_icon}"/>
</a>
</span>
</#if>
<#if !editable>
<script>
var title = $('div#titleContainer').width();
var name = $('h1.vcard').width();
var total = parseInt(title,10) + parseInt(name,10);
if ( name < 280 && total > 600 ) {
var diff = total - 600;
$('div#titleContainer').width(title - diff);
}
else if ( name > 279 && name + title > 600 ) {
$('div#titleContainer').width('620');
}
</script>
</#if>
<script>
var imagesPath = '${urls.images}';
</script>
<#assign rdfUrl = individual.rdfUrl>
<#if rdfUrl??>
<script>
var individualRdfUrl = '${rdfUrl}';
</script>
</#if>
<script type="text/javascript">
var individualUri = '${individual.uri!}';
var individualPhoto = '${individual.thumbNail!}';
var exportQrCodeUrl = '${urls.base}/qrcode?uri=${individual.uri!}';
var baseUrl = '${urls.base}';
var profileTypeData = {
processingUrl: '${urls.base}/edit/primitiveRdfEdit',
individualUri: '${individual.uri!}',
defaultProfileType: '${profileType!}'
};
var i18nStrings = {
errorProcessingTypeChange: '${i18n().error_processing_type_change}',
displayLess: '${i18n().display_less}',
displayMoreEllipsis: '${i18n().display_more_ellipsis}',
showMoreContent: '${i18n().show_more_content}',
verboseTurnOff: '${i18n().verbose_turn_off}',
standardviewTooltipOne: '${i18n().standardview_tooltip_one}',
standardviewTooltipTwo: '${i18n().standardview_tooltip_two}',
researchAreaTooltipOne: '${i18n().research_area_tooltip_one}',
researchAreaTooltipTwo: '${i18n().research_area_tooltip_two}'
};
var i18nStringsUriRdf = {
shareProfileUri: '${i18n().share_profile_uri}',
viewRDFProfile: '${i18n().view_profile_in_rdf}',
closeString: '${i18n().close}'
};
</script>
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/css/individual/individual.css" />',
'<link rel="stylesheet" href="${urls.base}/css/individual/individual-vivo.css" />',
'<link rel="stylesheet" href="${urls.base}/css/individual/individual-2column-view.css" />',
'<link rel="stylesheet" href="${urls.base}/js/jquery-ui/css/smoothness/jquery-ui-1.12.1.css" />',
'<link rel="stylesheet" type="text/css" href="${urls.base}/css/jquery_plugins/qtip/jquery.qtip.min.css" />')}
${headScripts.add('<script type="text/javascript" src="${urls.base}/js/tiny_mce/tiny_mce.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/qtip/jquery.qtip.min.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/json2.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/jquery.truncator.js"></script>')}
${scripts.add('<script async type="text/javascript" src="${urls.base}/js/individual/individualUriRdf.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/individual/individualQtipBubble.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/jquery-ui/js/jquery-ui-1.12.1.min.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/individual/individualUtils.js?vers=1.5.1"></script>',
'<script async type="text/javascript" src="${urls.base}/js/individual/moreLessController.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/individual/individualProfilePageType.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/imageUpload/imageUploadUtils.js"></script>',
'<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>',
'<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
<script type="text/javascript">
i18n_confirmDelete = "${i18n().confirm_delete}";
</script>

View file

@ -1,42 +1,269 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#--
This version of individual--foaf-person.ftl is a "router" template. The original VIVO
version of this template now resides in the /themes/wilma/templates directory.
This version of the template is used when the profile page types feature is enabled.
This template serves to "rout" the user to the correct template based (1) the
profile page type of the foaf person being displayed or (2) the targeted view that
the user wants to see. For example, when a user is routed to a quick view template,
the user has the option of displaying the full view. If the user chooses that option,
the targetedView variable gets set.
This template could also be used to load just the "individual--foaf-person-2column.ftl"
without enabling profile page types. "individual--foaf-person-2column.ftl" is a slightly
different design than the "individual--foaf-person.ftl" template in the themes/wilma
directory.
-->
<#include "individual-setup.ftl">
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
<#assign selectedTemplate = "elenphExcerpt-internal.ftl" >
<#-- Individual profile page template for foaf:Person individuals -->
<#if profilePageTypesEnabled >
<#assign profilePageType = profileType >
<#-- targetedView takes precedence over the profilePageType. -->
<#if targetedView?has_content>
<#if targetedView != "standardView">
<#assign selectedTemplate = "individual--foaf-person-quickview.ftl" >
</#if>
<#elseif profilePageType == "quickView" >
<#assign selectedTemplate = "individual--foaf-person-quickview.ftl" >
</#if>
<!--[if IE 7]>
<link rel="stylesheet" href="${urls.base}/css/individual/ie7-standard-view.css" />
<![endif]-->
<#-- <#include "individual-setup.ftl"> -->
<#import "individual-qrCodeGenerator.ftl" as qr>
<#import "lib-vivo-properties.ftl" as vp>
<#--Number of labels present-->
<#if !labelCount??>
<#assign labelCount = 0 >
</#if>
<#include selectedTemplate >
<#--Number of available locales-->
<#if !localesCount??>
<#assign localesCount = 1>
</#if>
<#--Number of distinct languages represented, with no language tag counting as a language, across labels-->
<#if !languageCount??>
<#assign languageCount = 1>
</#if>
<#assign qrCodeIcon = "qr-code-icon.png">
<#assign visRequestingTemplate = "foaf-person-2column">
<#--add the VIVO-ORCID interface -->
<#include "individual-orcidInterface.ftl">
<section id="individual-intro" class="vcard person" role="region"><span itemscope itemtype="http://schema.org/Person">
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
<#include "individual-adminPanel.ftl">
<header>
<#if relatedSubject??>
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p>
<#else>
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
<#-- Label -->
<@p.label individual editable labelCount localesCount/>
</h1>
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
<#if title?has_content> <#-- true when the property is in the list, even if not populated (when editing) -->
<#if (title.statements?size < 1) >
<@p.addLinkWithLabel title editable />
<#elseif editable>
<h2>${title.name?capitalize!}</h2>
<@p.verboseDisplay title />
</#if>
<#list title.statements as statement>
<#if !editable >
<div id="titleContainer"><span itemprop="jobTitle" class="display-title-not-editable">${statement.preferredTitle}</span></div>
<#else>
<span itemprop="jobTitle" class="display-title-editable">${statement.preferredTitle}</span>
<@p.editingLinks "${title.localName}" "${title.name}" statement editable title.rangeUri />
</#if>
</#list>
</#if>
<#-- If preferredTitle is unpopulated, display mostSpecificTypes -->
<#if ! (title.statements)?has_content>
<@p.mostSpecificTypesPerson individual editable/>
</#if>
</#if>
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
<#include "individual-iconControls.ftl">
</span>
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
</header>
<!-- Positions -->
<#include "individual-positions.ftl">
<!-- Overview -->
<#if !editable>
<p></p>
</#if>
<#include "individual-overview.ftl">
<!-- Research Areas -->
<#include "individual-researchAreas.ftl">
<!-- Geographic Focus -->
<#include "individual-geographicFocus.ftl">
<#include "individual-openSocial.ftl">
</section> <!-- end individual-info -->
</span></section> <!-- end individual-intro -->
<#assign nameForOtherGroup = "${i18n().other}">
<#if !editable>
<#-- We don't want to see the first name and last name unless we might edit them. -->
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!>
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!>
</#if>
<#if !editable>
<#if authors??>
<#list authors as author>
<div class="affiliations" >
<b><#if author.authorFamily??>${author.authorFamily}&nbsp;</#if><#if author.authorGivenName??>${author.authorGivenName}</#if></b>
<#if author.orgName??>
<br><span style="color:rgba(0,0,0,0.54);">${author.orgName}</span>
</#if>
<#if author.orgAddress??>
<br>
<span style="color:rgba(0,0,0,0.54);">Адрес организации: <#if author.orgPostalCode??>${author.orgPostalCode},&nbsp;</#if>${author.orgAddress}&nbsp;</span>
</#if>
</div>
</#list>
</#if>
<#else>
<#assign pubAuthors = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#hasAuthor")!>
<#if pubAuthors?has_content>
<div class="label">Авторы: <@p.addLink pubAuthors editable /> <@p.verboseDisplay pubAuthors /> </div>
<#if pubAuthors.statements?has_content >
<div class="pubAuthors" style="list-style:none;">
<@p.objectProperty pubAuthors editable />
</div>
</#if>
</#if>
</#if>
<#if articles?has_content>
<div class="label">В составе статей: </div>
<div>
<#list articles as article>
<#if article?has_content >
<div style="list-style:none;border:none;width: 100%;text-align:left;" class="article">
<a href="${urls.base}/individual?uri=${article.articleUri?url}"">${article.articleName}</a>
</div>
</#if>
</#list>
</div>
</#if>
<#assign rubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if rubrics?has_content>
<div class="label">Относится к: <@p.addLink rubrics editable /> <@p.verboseDisplay rubrics /> </div>
<#if rubrics.statements?has_content >
<div class="rubrics" style="list-style:none;">
<@p.objectProperty rubrics editable />
</div>
</#if>
</#if>
<#assign keywords = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#keywords")!>
<#if keywords?has_content >
<div class="label">Ключевые слова: <@p.addLink keywords editable /> <@p.verboseDisplay keywords /> </div>
<#if keywords.statements?has_content && keywords.type == "data">
<div class="keywords" style="list-style:none;">
<@p.dataPropertyList keywords editable />
</div>
</#if>
</#if>
<#assign htmlExcerpt = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#htmlExcerpt")!>
<#if htmlExcerpt?has_content >
<#if htmlExcerpt.statements?has_content && htmlExcerpt.type == "data">
<div class="htmlExcerpt" style="list-style:none;">
<@p.dataPropertyList htmlExcerpt editable />
<#-- object property -->
</div>
<#else>
<div class="label">Текст отрывка: <@p.addLink htmlExcerpt editable /> <@p.verboseDisplay htmlExcerpt /> </div>
</#if>
</#if>
<#assign works = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#works")!>
<#if works.statements?has_content || editable >
<br/>
<div class="works" style="list-style:none;">
<h2 class="label">Источники: <@p.addLink works editable /> <@p.verboseDisplay works /></h2>
<@p.dataPropertyList works editable />
</div>
</#if>
<#assign biblio= propertyGroups.pullProperty("https://litvinovg.pro/text_structures#bibliography")!>
<#if biblio.statements?has_content || editable >
<br/>
<div class="biblio" style="list-style:none;">
<h2 class="label">Литература: <@p.addLink biblio editable /> <@p.verboseDisplay biblio /></h2>
<@p.dataPropertyList biblio editable />
</div>
</#if>
<#-- <#include "individual-property-group-tabs.ftl"> -->
<#if profilePageTypesEnabled && (targetedView?has_content || user.loggedIn) >
<span id="quickViewLink" >
<a href="${urls.base}/display/${individual.localName}?destination=quickView" >
<img id="quickViewIcon" src="${urls.images}/individual/quickViewIcon.png" alt="${i18n().quick_view_icon}"/>
</a>
</span>
</#if>
<#if !editable>
<script>
var title = $('div#titleContainer').width();
var name = $('h1.vcard').width();
var total = parseInt(title,10) + parseInt(name,10);
if ( name < 280 && total > 600 ) {
var diff = total - 600;
$('div#titleContainer').width(title - diff);
}
else if ( name > 279 && name + title > 600 ) {
$('div#titleContainer').width('620');
}
</script>
</#if>
<script>
var imagesPath = '${urls.images}';
</script>
<#assign rdfUrl = individual.rdfUrl>
<#if rdfUrl??>
<script>
var individualRdfUrl = '${rdfUrl}';
</script>
</#if>
<script type="text/javascript">
var individualUri = '${individual.uri!}';
var individualPhoto = '${individual.thumbNail!}';
var exportQrCodeUrl = '${urls.base}/qrcode?uri=${individual.uri!}';
var baseUrl = '${urls.base}';
var profileTypeData = {
processingUrl: '${urls.base}/edit/primitiveRdfEdit',
individualUri: '${individual.uri!}',
defaultProfileType: '${profileType!}'
};
var i18nStrings = {
errorProcessingTypeChange: '${i18n().error_processing_type_change}',
displayLess: '${i18n().display_less}',
displayMoreEllipsis: '${i18n().display_more_ellipsis}',
showMoreContent: '${i18n().show_more_content}',
verboseTurnOff: '${i18n().verbose_turn_off}',
standardviewTooltipOne: '${i18n().standardview_tooltip_one}',
standardviewTooltipTwo: '${i18n().standardview_tooltip_two}',
researchAreaTooltipOne: '${i18n().research_area_tooltip_one}',
researchAreaTooltipTwo: '${i18n().research_area_tooltip_two}'
};
var i18nStringsUriRdf = {
shareProfileUri: '${i18n().share_profile_uri}',
viewRDFProfile: '${i18n().view_profile_in_rdf}',
closeString: '${i18n().close}'
};
</script>
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/css/individual/individual.css" />',
'<link rel="stylesheet" href="${urls.base}/css/individual/individual-vivo.css" />',
'<link rel="stylesheet" href="${urls.base}/css/individual/individual-2column-view.css" />',
'<link rel="stylesheet" href="${urls.base}/js/jquery-ui/css/smoothness/jquery-ui-1.12.1.css" />',
'<link rel="stylesheet" type="text/css" href="${urls.base}/css/jquery_plugins/qtip/jquery.qtip.min.css" />')}
${headScripts.add('<script type="text/javascript" src="${urls.base}/js/tiny_mce/tiny_mce.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/qtip/jquery.qtip.min.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/json2.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/jquery.truncator.js"></script>')}
${scripts.add('<script async type="text/javascript" src="${urls.base}/js/individual/individualUriRdf.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/individual/individualQtipBubble.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/jquery-ui/js/jquery-ui-1.12.1.min.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/individual/individualUtils.js?vers=1.5.1"></script>',
'<script async type="text/javascript" src="${urls.base}/js/individual/moreLessController.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/individual/individualProfilePageType.js"></script>',
'<script async type="text/javascript" src="${urls.base}/js/imageUpload/imageUploadUtils.js"></script>',
'<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>',
'<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
<script type="text/javascript">
i18n_confirmDelete = "${i18n().confirm_delete}";
</script>