The Explorable Topology: Supporting Agent Autonomy on the Internet
Failed to execute the [velocity] macro. Cause: [Error number 9001 in 9: Access denied in edit mode on document xwiki:Publication.HimatWsdaal99]. Click on this message for details.
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [{{html clean="false" wiki="true"}}
################################################################################
################################################################################
## Publications Class Sheet
################################################################################
################################################################################
#template("apice_macros.vm")
#setobjectspace("Publications")
#docobj()
#nolangpar()
#template("apice_publication_macros.vm")
#hidepub()
#template("apice_publication_bibtex.vm")
################################################################################
##### BIBTEXMAP CONTAINS BIBTEX DATA FIELDS / START
################################################################################
## BibTeX data represented in $bibtexMap: key / field name, value / field value
## create $bibtexMap from BibTeX record
#bibtomap()
## INVARIANT: $bibtexMap contains BibTeX data any time the sheet is loaded
################################################################################
##### BIBTEXMAP CONTAINS BIBTEX DATA FIELDS / END
################################################################################
##
################################################################################
## BIBTEX PARAMETERS / START
################################################################################
########## FROMBIBTEX / START
## all, record: from bibtex record to data
## [fieldname]: from bibtex field to data field
## all: from each bibtex field to the corresponding data field
##########
## handle parameter / start
#if( $request.frombibtex && $request.frombibtex.trim() != "" )
#set( $frombibtex = $request.frombibtex.trim().toLowerCase() )
#end
## handle parameter / end
##
## select source fields / start
#set( $sourceFields = [] )
## $sourceFields is going to contain all the BibTeX fields to be actually copied to data
#if( $frombibtex == "all" || $frombibtex == "record" || $entryFields.contains($frombibtex) )
## set $sourceFields
#if( $frombibtex == "all" || $frombibtex == "record" )
#set( $sourceFields = $bibtexMap.keySet() )
#else
#set( $sourceFields = [$frombibtex] )
#end
#end
## select source fields / end
##
## copy source fields in $sourceFields to $obj fields / start
#if( $sourceFields.size() > 0 )
#foreach( $sourceField in $sourceFields )
#if( $bibtexNotToDataFields.contains($sourceField) )
## crossref, key – nothing to do
#elseif( $bibtexMapKeys.contains($sourceField) )
## entrytype, entrykey – maybe something to do in the near future
#elseif( $sourceField == "author" || $sourceField == "editor" )
## BibTeX author, editor to data authors, editors – for now, no other fields here to handle, just people names
#set( $bibtexPeople = $bibtexMap[$sourceField] )
## from $bibtexPeople to $apicePeople
#peopletodata()
## $apicePeople filled with data author or editor values
#set( $discard = $obj.set($sourceField,$apicePeople) )
#elseif( $entryFields.contains($sourceField) )
## an admissible BibTeX entry for APICe, those above excluded
#if( $sourceField == "month" )
## handle month from BibTeX
#set( $bibtexMonth = $bibtexMap[$sourceField] )
#if( $engMonthReverseMap.keySet().contains($bibtexMonth.toLowerCase()) )
#set( $discard = $obj.set("month",$engMonthReverseMap[$bibtexMonth.toLowerCase()]) )
#elseif( $itaMonthReverseMap.keySet().contains($bibtexMonth.toLowerCase()) )
#set( $discard = $obj.set("month",$itaMonthReverseMap[$bibtexMonth.toLowerCase()]) )
#elseif( $itaMonthShortReverseMap.keySet().contains($bibtexMonth.toLowerCase()) )
#set( $discard = $obj.set("month",$itaMonthShortReverseMap[$bibtexMonth.toLowerCase()]) )
#elseif( $engMonthMap.keySet().contains($bibtexMonth.toLowerCase()) )
#set( $discard = $obj.set("month",$bibtexMonth.toLowerCase()) )
#else
#set( $discard = $obj.set("month",$bibtexMonth) )
#end
#elseif( $sourceField == "pages" )
## handle pages from BibTeX
#set( $discard = $obj.set("pages",$bibtexMap["pages"].replaceAll("-+","–").replaceAll("–+","–").replaceAll("—+","–")) )
## handle other fields from BibTeX
#else
#set( $discard = $obj.set($sourceField,$bibtexMap[$sourceField]) )
#end
#end
#end
#end
## copy source fields in $sourceFields to $obj fields / end
##
########## FROMBIBTEX / END
##
########## FROMDATA / START
## record: from data to bibtex record
## [fieldname]: from data field to bibtex field
## all: from each data field to the corresponding bibtex field
##########
## handle parameter / start
#if( $request.fromdata && $request.fromdata.trim() != "" )
#set( $fromdata = $request.fromdata.trim().toLowerCase() )
#end
## handle parameter / end
##
## select source fields / start
#set( $sourceFields = [] )
## $sourceFields is going to contain all the BibTeX fields to get copied from data
#if( $fromdata == "all" || $fromdata == "record" || $matchingEntryFields.contains($fromdata) )
## set $sourceFields
#if( $fromdata == "all" || $fromdata == "record" )
#set( $sourceFields = $matchingEntryFields )
#else
#set( $sourceFields = [$fromdata] )
#end
#end
## select source fields / end
##
#if( $sourceFields.size() > 0 )
## update $bibtexMap from non-empty data
#foreach( $sourceField in $sourceFields )
#if( $sourceField == "year" )
#if( $mathtool.toInteger($datetool.getYear($obj.getValue("year"))) > 0 )
#set( $bibtexMap["year"] = $datetool.getYear($obj.getValue("year")) )
#end
#elseif( $sourceField == "numpages" || $sourceField == "articleno" || $sourceField == "chapter" )
#if( $mathtool.toInteger($obj.getValue($sourceField)) > 0 )
#set( $bibtexMap[$sourceField] = $mathtool.toInteger($obj.getValue($sourceField)) )
#end
#elseif( !$obj.getValue($sourceField).isEmpty() )
#if( $sourceField == "author" || $sourceField == "editor" )
#set( $apicePeople = $obj.getValue($sourceField).split(",") )
#set( $bibtexPeople = "" )
#foreach( $apicePerson in $apicePeople )
#if( $apicePerson.trim() != "" )
#if( $bibtexPeople != "" )
#set( $bibtexPeople = $bibtexPeople + " and " )
#end
#if( $apicePerson.contains("XWiki.") && $xwiki.exists($apicePerson) )
#set( $bibtexPeople = $bibtexPeople + $xwiki.getDocument($apicePerson).getValue("last_name") + ", " + $xwiki.getDocument($apicePerson).getValue("first_name") )
#else
#set( $bibtexPeople = $bibtexPeople + $apicePerson )
#end
#end
#end
#set( $bibtexMap[$sourceField] = $bibtexPeople )
#elseif( $sourceField == "pages" )
#set( $bibtexMap["pages"] = $obj.getValue("pages").replaceAll("–","--").replaceAll("—","--").trim() )
#else
#set( $bibtexMap[$sourceField] = $obj.getValue($sourceField) )
#end
#end
#end
## from $bibtexMap from $bibtexRecord
#maptobib
## now $bibtexRecord is updated
#end
########## FROMDATA / END
##
########## SETTYPE / START
## parameter: the entry type to set
##########
## handle parameter / start
#if( $request.settype && $request.settype.trim() != "" && $bibtexEntryTypes.contains($request.settype.trim().toLowerCase()) )
#set( $settype = $request.settype.trim().toLowerCase() )
#else
#set( $settype = "" )
#end
## handle parameter / end
##
## select source fields / start
## if not empty, $settype contains the new entry type to be set
#if( $settype != "" )
## update $bibtexMap
#set( $bibtexMap["entrytype"] = $settype )
## from $bibtexMap from $bibtexRecord
#maptobib
## now $bibtexRecord is updated
#end
########## SETTYPE / END
##
################################################################################
## BIBTEX PARAMETERS / END
################################################################################
##
################################################################################
######## OVERALL GUI / START
################################################################################
## set $action
#if( $xcontext.action == "edit" && $xwiki.hasAccessLevel("edit") )
#set( $action = "edit" )
#else
#set( $action = "view" )
#end
## set $modeList
#set( $modeList = [ 'data', 'bibtex', 'attach' ] )
## set $mode
## default
#set( $mode = $modeList[0] )
## set $attachments array
#set( $attachments = [] )
#foreach( $attachment in $doc.attachmentList )
#set( $discard = $attachments.add($attachment.filename) )
#end
## set views for attach mode
#set( $attachmentviews = [ 'pdf', 'openaccess', 'cover' ] )
#set( $guestattachmentviews = [ 'openaccess', 'cover' ] )
## find attachment fields defined and available as attachments
#set( $attachmentvalues = {} )
#foreach( $attachmentview in $attachmentviews )
#if( $doc.getValue($attachmentview).trim() != '' )
#set( $attachmentvalues[$attachmentview] = $doc.getValue($attachmentview).trim() )
#end
#end
#set( $guestattachmentvalues = {} )
#foreach( $guestattachmentview in $guestattachmentviews )
#if( $doc.getValue($guestattachmentview).trim() != '' )
#set( $guestattachmentvalues[$guestattachmentview] = $doc.getValue($guestattachmentview).trim() )
#end
#end
## set $modeGuestList
## guest see data
#set( $modeGuestList = [ 'data' ] )
## guest see bibtex?
#if( $doc.getValue('bibtex').trim() != '' )
#set( $discard = $modeGuestList.add('bibtex') )
#end
## guest see attach?
#foreach( $guestattachmentview in $guestattachmentvalues.keySet() )
#if( $attachments.contains($guestattachmentvalues[$guestattachmentview]) )
#set( $discard = $modeGuestList.add('attach') )
#break
#end
#end
## set attachment field vars
#set( $pdf = $doc.getValue('pdf').trim() )
#set( $openaccess = $doc.getValue('openaccess').trim() )
#set( $cover = $doc.getValue('cover').trim() )
## set $currentModeList
#if( $hasEdit )
#set( $currentModeList = $modeList )
#else
#set( $currentModeList = $modeGuestList )
#end
## get mode parameter
#if( $request.mode && $request.mode.trim() != "" && $currentModeList.contains($request.mode.trim().toLowerCase()) )
#set( $mode = $request.mode.trim().toLowerCase() )
#end
## draw bar
#themodebar( $currentModeList $mode $action )
## DATA MODE
## set $dataModeList
#set( $dataModeList = [ 'pub','apice','bibtex'] )
##
## set $dataMode
## default
#set( $dataMode = $dataModeList[0] )
## get mode parameter
#if( $request.data && $request.data.trim() != "" && $dataModeList.contains($request.data.trim().toLowerCase()) )
#set( $dataMode = $request.data.trim().toLowerCase() )
#end
## draw data bar
##
## data bar headers
#set( $databarHeaders = { 'pub' : "$services.localization.render('data')", 'apice' : 'APICe', 'bibtex' : 'BibTeX' } )
#if( $action == "edit" && $mode == "data" )
<table class="databar"><tr>
#foreach( $datamode in $dataModeList )
<td width="33%" class='#if( $datamode == $dataMode )modedataeditselected#{else}basebutton#end'><a href='$doc.getURL($action,"mode=data&data=$datamode")'>$databarHeaders[$datamode] [[image:$barActionImages["edit"]||height=$barHeight]]</a></td>
#end
</tr></table>
#end
##
################################################################################
######## OVERALL GUI / END
################################################################################
##
################################################################################
## ATTACH MODE / START
################################################################################
#### VIEW MODE / START
#if( $mode == "attach" && $action == "view" )
##
#if( $isGuest )
#set( $theattachmentvalues = $guestattachmentvalues )
#else
#set( $theattachmentvalues = $attachmentvalues )
#end
#if( $theattachmentvalues.size() <= 0 )
$response.sendRedirect( $xwiki.getURL($doc, 'view', "mode=data") )
#else
#if( $request.attach && $request.attach.trim() != "" && $theattachmentvalues.keySet().contains($request.attach) )
#set( $attachMode = $request.attach )
#else
#foreach( $val in $theattachmentvalues.keySet() )#set( $attachMode = $val )#break#end
#end
#end
#if( $theattachmentvalues.size() > 1 )
## view bar
#set( $displaytabwidth = 100 / $theattachmentvalues.size() )
<table class="viewbar"><tr>
#foreach( $theattachmentview in $theattachmentvalues.keySet() )
<td width="$displaytabwidth%" class='#if( $theattachmentview == $attachMode )modedataeditselected#{else}basebutton#end'><a href='$doc.getURL($action,"mode=attach&attach=$theattachmentview")'>$services.localization.render("${objectSpace}.Class_${theattachmentview}_short")</a></td>
#end
</tr></table>
#end
## ATTACHMENT VIEW / START
#if( $attachMode == 'pdf' || $attachMode == 'openaccess' )
<div class="mainheader" style="margin: 0 0 0 0; color: $theme.textPrimaryColor">
$services.localization.render("${objectSpace}.Class_${attachMode}").toLowerCase()
</div>
<center>
#if( $theattachmentvalues[$attachMode].endsWith('.pdf') )
{{pdf filename="$theattachmentvalues[$attachMode]"/}}
#else
[[$theattachmentvalues[$attachMode]>>attach:$theattachmentvalues[$attachMode]||target="_blank"]]
#end
</center>
#end
#if( $attachMode == 'cover' )
<div class="mainheader" style="margin: 0 0 0 0; color: $theme.textPrimaryColor">
$services.localization.render("${objectSpace}.Class_${attachMode}").toLowerCase()
</div>
<center>
#if( $theattachmentvalues[$attachMode].endsWith('.pdf') )
{{pdf filename="$theattachmentvalues[$attachMode]"/}}
#else
[[[[image:$theattachmentvalues[$attachMode]]]>>attach:$theattachmentvalues[$attachMode]||target="_blank"]]
#end
</center>
#end
## ATTACHMENT VIEW / END
#end
#### VIEW MODE / END
##
#### INLINE MODE / START
#if( $mode == "attach" && $action == "edit" )
#### ATTACHED DOCUMENTS / START
<table>
<tr class="fieldrow1">
<td style="text-align: right" width="50%">
{{attachmentSelector classname='${objectSpace}.Class' property='pdf' filter='pdf' defaultValue=' ' buttontext='$services.localization.render("${objectSpace}.Class_pdf_short")'/}}
</td><td>
#fieldlink("pdf")
</td>
</tr><tr class="fieldrow1">
<td style="text-align: right" width="50%">
{{attachmentSelector classname="${objectSpace}.Class" property='openaccess' filter='pdf' defaultValue=" " buttontext='$services.localization.render("${objectSpace}.Class_openaccess_short")'/}}
</td><td>
#fieldlink("openaccess")
</td>
</tr><tr class="fieldrow1">
<td style="text-align: right" width="50%">
{{attachmentSelector classname="${objectSpace}.Class" property='epub' filter='epub,azw,mobi' defaultValue=" " buttontext='$services.localization.render("${objectSpace}.Class_epub_short")'/}}
</td><td>
#fieldlink("epub")
</td>
</tr><tr class="fieldrow1">
<td style="text-align: right" width="50%">
{{attachmentSelector classname="${objectSpace}.Class" property='html' filter='htm,html,xhtml,zip' defaultValue=" " buttontext='$services.localization.render("${objectSpace}.Class_html_short")'/}}
</td><td>
#fieldlink("html")
</td>
</tr><tr class="fieldrow2">
<td style="text-align: right" width="50%">
{{attachmentSelector classname="${objectSpace}.Class" property='cover' filter='pdf,png,gif,jpeg,jpg,tiff,tif' defaultValue=" " buttontext='$services.localization.render("${objectSpace}.Class_cover_short")'/}}
</td><td>
#fieldlink("cover")
</td>
</tr>
</table>
#### ATTACHED DOCUMENTS / END
#end
#### INLINE MODE / END
################################################################################
## ATTACH MODE / END
################################################################################
##
################################################################################
## BIBTEX MODE / START
################################################################################
#### VIEW MODE / START
#if( $mode == "bibtex" && $action == "view" )
## BibTeX record / START
{{pubBibtex formatted=true}}$doc{{/pubBibtex}}
## BibTeX record / END
#end
#### VIEW MODE / END
##
#### INLINE MODE / START
#if( $mode == "bibtex" && $action == "edit" )
## set data fields to copy from
#set( $fieldsFromData = [] )
## add non empty data fields
#foreach( $fieldKey in $matchingEntryFields )
#if( $fieldKey == "numpages" || $fieldKey == "articleno" || $fieldKey == "chapter" )
## integer fields
#if( $mathtool.toInteger($obj.getValue($fieldKey)) > 0 )
#set( $discard = $fieldsFromData.add($fieldKey) )
#end
#elseif( $fieldKey == "year" )
## year field
#if( $mathtool.toInteger($datetool.getYear($obj.getValue("year"))) > 0 )
#set( $discard = $fieldsFromData.add("year") )
#end
#elseif( !$obj.getValue($fieldKey).isEmpty() )
## other non-empty fields
#set( $discard = $fieldsFromData.add($fieldKey) )
#end
#end
## $fieldsFromData built
## INVARIANT: $fieldsFromData contains only the keys of the non-empty fields to be possibly copied in $bibtexMap
##
<hr class="bordercolorline"/>
## BibTeX entry type / start
<div style='vertical-align:middle; text-align:center; font-size:smaller; font-family:monospace; margin:-1em 0 -1em 0'>
#foreach( $entrytype in $bibtexEntryTypes )
#if( $bibtexMap['entrytype'] == $entrytype )
<a class='secondarybutton' href='$doc.getURL('edit',"mode=$mode&settype=$entrytype")'> $entrytype </a>
#else
<a class='primarybutton' href='$doc.getURL('edit',"mode=$mode&settype=$entrytype")'> $entrytype </a>
#end
#end
</div>
<hr class="bordercolorline"/>
## BibTeX entry type / end
##
## BibTeX record / start
<table><tr>
<td style='vertical-align: middle; font-size: larger; text-align: right' width="20%">#fieldlinkshort("bibtex")</td>
<td style='vertical-align:top; text-align:center'>$doc.display("bibtex")</td>
<td style='vertical-align: middle; font-size: larger; text-align: left' width="20%">
<a class='primarybutton' href='$doc.getURL('edit',"mode=bibtex&fromdata=all")'> ⟽ #if( $xcontext.language == "it" )da tutti i campi dati#{else}from all data fields#{end}</a>
</td>
</tr></table>
## BibTeX record / end
##
<hr class="bordercolorline"/>
## field key cloud for from data: all fields, non-empty one linked
<div style='vertical-align:middle; text-align:center; font-size:smaller; font-family:monospace; margin:-1em 0 -1em 0'>
#foreach( $fieldKey in $matchingEntryFields )
#if( $fieldsFromData.contains($fieldKey) )
#if( $bibtexMap.keySet().contains($fieldKey) )
<a class='secondarybutton' href='$doc.getURL('edit',"mode=$mode&fromdata=$fieldKey")'> $fieldKey </a>
#else
<a class='primarybutton' href='$doc.getURL('edit',"mode=$mode&fromdata=$fieldKey")'> $fieldKey </a>
#end
#else
<span class='textprimary'> $fieldKey </span>
#end
#end
</div>
<hr class="bordercolorline"/>
##
#end
#### INLINE MODE / END
################################################################################
## BIBTEX MODE / END
################################################################################
##
################################################################################
## DATA MODE / START
################################################################################
#### VIEW MODE / START
#if( $mode == "data" && $action == "view" )
## check for language / default
#nodoclang()
## authors or editors / start
#if( !$obj.getValue("author").isEmpty() && $obj.getValue("sort") != "edited" && $obj.getValue("sort") != "special" )
<div class="mainheader">
{{pubAuthors}}$doc{{/pubAuthors}}
</div>
#elseif( !$obj.getValue("editor").isEmpty() && ( $obj.getValue("sort") == "edited" || $obj.getValue("sort") == "special") )
<div class="mainheader">
{{pubEditors}}$doc{{/pubEditors}} //({{editorString short='true' uppercase="false"/}})//
</div>
#end
## authors or editors / end
##
## pub data / start
<div class="textprimary" align="right" style="font-size: smaller; padding: 0 0 .5em 0">
## article / start
#if( $doc.getValue('sort') == 'article' || $doc.getValue('sort') == 'special' || ( $doc.getValue('sort') == 'editorial' && $doc.getValue("journal") != '' ) )
#if( $doc.getValue("journal") != '' )
<div>
//$doc.display("journal")//#if( $doc.display("volume") != '' ) $doc.display("volume")#if( $doc.display("number") != '' )($doc.display("number"))#end#end#if( $doc.display("pages") != '' ), {{stringEngIta eng="pages" ita="pp."/}} $doc.display("pages")#elseif( $doc.display("articleno") != '' ), {{stringEngIta eng="article" ita="articolo"/}} $doc.display("articleno")#if( $doc.display("numpages") != '' ) ($doc.display("numpages") {{stringEngIta eng="pages" ita="pagine"/}})#end#end
</div>
#end
## article / end
##
## in proceedings / start
#elseif( $doc.getValue('sort') == 'inproceedings' || $doc.getValue('sort') == 'chapter' || ( $doc.getValue('sort') == 'editorial' && $doc.display("booktitle") != '' ) )
#if( !$obj.getValue("editor").isEmpty() )
<div>
{{pubEditors linked='false' eds='true'}}$doc{{/pubEditors}}
</div>
#end
#if( $doc.display("booktitle") != '' )
<div>
//$doc.display("booktitle")//#if( $doc.display("part") != "" ), {{stringEngIta eng="part" ita="parte")/}} $doc.display("part")#end#if( $doc.display("chapter") != "" ), {{stringEngIta eng="chapter" ita="capitolo")/}} $doc.display("chapter")#end#if ($doc.display("pages") != ''), {{stringEngIta eng="pages" ita="pp."/}} $doc.display("pages")#{end}
</div>
#end
#if( $doc.display("series") != '' )
<div>
$doc.display("series")#if( $doc.display("subseries") != '' ) ($doc.display("subseries"))#end#if( $doc.display("volume") != '' ) $doc.display("volume")#if( $doc.display("number") != '' )($doc.display("number"))#end#end
</div>
#end
#if( $doc.display("publisher") != '' )
<div>
$doc.display("publisher")#if( $doc.display("address") != '' ), $doc.display("address")#end
</div>
#end
## in proceedings / end
##
## books & edited / start
#elseif( $doc.getValue('sort') == 'book' || $doc.getValue('sort') == 'edited' )
#if( $doc.display("series") != '' )
<div>
$doc.display("series")#if( $doc.display("subseries") != '' ) ($doc.display("subseries"))#end#if( $doc.display("volume") != '' ) $doc.display("volume")#if( $doc.display("number") != '' )($doc.display("number"))#end#end
</div>
#end
#if( $doc.display("publisher") != '' )
<div>
$doc.display("publisher")#if( $doc.display("address") != '' ), $doc.display("address")#end
</div>
#end
## books & edited / end
##
## phd thesis / start
#elseif( $doc.getValue('sort') == 'phdthesis' )
#if( $doc.display("school") != '' )
<div>
$doc.display("school")
</div>
#end
#if( $doc.display("organization") != '' || $doc.display("institution") != '' )
<div>
$doc.display("organization")#if( $doc.display("organization") != '' && $doc.display("institution") != '' ), #{end}$doc.display("institution")
</div>
#end
#if( $doc.display("address") != '' )
<div>
$doc.display("address")
</div>
#end
## phd thesis / end
##
## technical report / start
#elseif( $doc.getValue('sort') == 'techrep' )
#if( $doc.display("organization") != '' || $doc.display("institution") != '' )
<div>
$doc.display("organization")#if( $doc.display("organization") != '' && $doc.display("institution") != '' ), #end$doc.display("institution")
</div>
#end
#if( $doc.display("series") != '' )
<div>
$doc.display("series")#if( $doc.display("volume") != '' ) $doc.display("volume")#if( $doc.display("number") != '' )($doc.display("number"))#end#elseif( $doc.display("number") != '' ) $doc.display("number")#end
</div>
#end
#if( $doc.display("type") != '' )
<div>
$doc.display("type")#if( $doc.display("number") != '' ) $doc.display("number")#end
</div>
#end
## technical report / end
##
## other / start
#elseif( $doc.getValue('sort') == 'other' )
#if( $doc.display("journal") != '' )
<div>
//$doc.display("journal")//#if( $doc.display("volume") != '' ) $doc.display("volume")#if( $doc.display("number") != '' )($doc.display("number"))#end#end
</div>
#end
## other / end
#end
##
## month & year for all sorts / start
#if( $doc.display("year") != '' )
#if( $doc.display("month") != '' ){{monthEngIta}}$doc.getValue('month'){{/monthEngIta}} #{end}$doc.display("year")
#end
## month & year for all sorts / end
</div>
## pub data / end
##
## ABSTRACT / START
#if( $doc.display("abstract","view") != "" )
<div width=100% style="border-color:$theme.borderColor; border-style:hidden solid solid hidden; border-width: thin; text-align: justify; text-justify: inter-word; font-size: normal; padding: .5em .5em 0 0">
$doc.display('abstract')
</div>
#end
## ABSTRACT / END
##
## KEYWORDS / START
#if( $doc.display("keywords","view") != "" )
<div width=100% style="border-color: $theme.borderColor; border-style: solid hidden hidden solid; border-width: thin; color: $theme.textSecondaryColor; font-size: smaller; padding: .5em 0 .5em .5em">
//$services.localization.render("${mainSpace}.Class_keywords_short").toLowerCase()//
 
<span style="color: $theme.textColor; font-size: larger">$doc.display("keywords")</span>
</div>
#end
## KEYWORDS / END
##
## APICE FROM HERE / START
## talks
#if( $doc.display("talk","view") != "" )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render("${mainSpace}.Class_talk_short").toLowerCase()
</div>
#template('apice_talk_macros.vm')
#foreach( $talk in $doc.getValue("talk") )
<div style="font-size: smaller; text-align: right">
#talkicon() #talklinked($talk)
</div>
#end
#end
## events
#if( $doc.display("event-venue","view") != "" )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render("${mainSpace}.Class_event-venue_short").toLowerCase()
</div>
#template('apice_event_macros.vm')
#foreach( $event in $doc.getValue("event-venue") )
<div style="font-size: smaller; text-align: right">
#eventicon() #eventlinked($event)
</div>
#end
#end
## journals & series
#if( $doc.display("journal-venue","view") != "" )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render("${mainSpace}.Class_journal-venue_short").toLowerCase()
</div>
#template('apice_journal_macros.vm')
#foreach( $journal in $doc.getValue("journal-venue") )
<div style="font-size: smaller; text-align: right">
#journalicon() #journallinked($journal)
</div>
#end
#end
## publications
#if( $doc.display("pub-venue","view") != "" )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render("${mainSpace}.Class_pub-venue_short").toLowerCase()
</div>
#foreach( $pub in $doc.getValue("pub-venue") )
<div style="font-size: smaller; text-align: right">
#pubicon() #publinked($pub)
</div>
#end
#end
## projects
#if( $doc.display("project","view") != "" )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render("${mainSpace}.Class_project_short").toLowerCase()
</div>
#template('apice_project_macros.vm')
#foreach( $project in $doc.getValue("project") )
<div style="font-size: smaller; text-align: right">
#projecticon() {{project}}$project{{/project}}
</div>
#end
#end
## superseding publication
#if( $doc.display("pub-super","view") != "" )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render("supersededby").toLowerCase()
</div>
#foreach( $pub in $doc.getValue("pub-super") )
<div style="font-size: smaller; text-align: right">
#pubicon() #publinked($pub)
</div>
#end
#end
## APICE FROM HERE / END
##
## APICE TO HERE / START
## publication container
#set( $from = ", BaseObject as obj#if( !$hasEdit ), StringProperty as propAccess #end, DBStringListProperty as propPubvenue join propPubvenue.list list" )
#set( $where = "obj.name = doc.fullName and obj.className = 'Publications.Class' and obj.name <> 'Publication.Template' #if( !$hasEdit ) and propAccess.id.id = obj.id and propAccess.name = 'access' and propAccess.value <> 'hidden' #end and propPubvenue.id.id = obj.id and propPubvenue.name = 'pub-venue' and list like '$doc.fullName' " )
#set( $query = $from + " where " + $where )
#set( $pubvenueList = $xwiki.searchDocuments($query) )
## talks
#set( $from = ", BaseObject as obj, DBStringListProperty as propPub join propPub.list list" )
#set( $where = "obj.name = doc.fullName and obj.className = 'Talks.Class' and obj.name <> 'Talk.Template' and propPub.id.id = obj.id and propPub.name = 'pub' and list like '$doc.fullName' " )
#set( $query = $from + " where " + $where )
#set( $talkList = $xwiki.searchDocuments($query) )
##
## superseding publication
#set( $from = ", BaseObject as obj#if( !$hasEdit ), StringProperty as propAccess #end, DBStringListProperty as propSuperseded join propSuperseded.list supersededby" )
#set( $where = "obj.name = doc.fullName and obj.className = 'Publications.Class' and obj.name <> 'Publication.Template' #if( !$hasEdit ) and propAccess.id.id = obj.id and propAccess.name = 'access' and propAccess.value <> 'hidden' #end and propSuperseded.id.id = obj.id and propSuperseded.name = 'pub-super' and supersededby like '$doc.fullName' " )
#set( $query = $from + " where " + $where )
#set( $supersededList = $xwiki.searchDocuments($query) )
## HEADER / START
#if( $pubvenueList.size() > 0 || $talkList.size() > 0 || $supersededList.size() > 0 )
<div class="mainheader" style="color: $theme.textPrimaryColor; margin: .25em 0 -.25em 0">
$services.localization.render('worksas').toLowerCase()
</div>
#end
## HEADER / END
##
## PUBLICATIONS / START
#if( $pubvenueList.size() > 0 )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render('Publications.Class_pub-venue_short').toLowerCase() $services.localization.render('for').toLowerCase()
</div>
#foreach( $pub in $pubvenueList )
<div style="font-size: smaller; text-align: right">
#pubicon() #publinked($pub)
</div>
#end
#end
## PUBLICATIONS / END
##
## TALKS / START
#if( $talkList.size() > 0 )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render('Talks.Class_pub').toLowerCase() $services.localization.render('for').toLowerCase() $services.localization.render('talk').toLowerCase()
</div>
#template('apice_talk_macros.vm')
#foreach( $talk in $talkList )
<div style="font-size: smaller; text-align: right">
#talkicon() #talklinked($talk)
</div>
#end
#end
## TALKS / END
##
## SUPERSEDED / START
#if( $supersededList.size() > 0 )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .25em .5em .25em 0; margin: .5em 0 0 0">
$services.localization.render('Publications.Class_pub-super_short').toLowerCase() $services.localization.render('for').toLowerCase()
</div>
#foreach( $pub in $supersededList )
<div style="font-size: smaller; text-align: right">
#pubicon() #publinked($pub)
</div>
#end
#end
## SUPERSEDED / END
##
## APICE TO HERE / END
#end
#### VIEW MODE / END
##
#### INLINE MODE / START
#if( $mode == "data" && $action == "edit" )
##
#newobjtitle()
## PUB DATA / START
#if( $dataMode == "pub" )
## SELECT FIELDS / START
#set( $selectdatafields = [ 'status', 'sort', 'access' ] )
<table style="font-size: smaller; text-align: left" width="100%"><tr class="fieldrow1">
#foreach( $selectdatafields in $selectdatafields )
<td style="text-align: right; vertical-align: middle; padding: 0" width="11%">
#fieldlinkshort($selectdatafields)
</td><td width="22%">
$doc.display($selectdatafields)
</td>
#end
</tr></table>
## SELECT FIELDS / END
##
## ALL FROM BIBTEX / START
<div align="right" style="margin: -1em 0 0 0">
<a class="basebutton" style="font-size: smaller; padding: .5em" href='$doc.getURL('edit',"mode=data&data=$dataMode&frombibtex=all")'>#if( $xcontext.language == 'it' )tutti i campi disponibili da #{else}all available fields from #{end}<span style='font-family:monospace'>BibTeX</span></a>
</div>
## ALL FROM BIBTEX / END
##
## MAIN DATA FIELDS / START
#set( $maindatafields = [ 'title', 'subtitle', 'author', 'editor' ] )
<table style="font-size: smaller; text-align: left" width="100%">
#foreach( $maindatafield in $maindatafields )
<tr class="fieldrow1">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($maindatafield)
</td><td style="vertical-align: middle" width="60%">
$doc.display($maindatafield)
</td><td style="vertical-align: middle" width="20%">
#bibtexlink($maindatafield)
</td>
</tr>
#end
</table>
## MAIN DATA FIELDS / END
##
## DESCRIPTOR FIELDS / START
#set( $descriptorfields = [ 'abstract', 'keywords' ] )
<table style="font-size: smaller; text-align: left; margin: -1em 0 0 0" width="100%">
#foreach( $descriptorfield in $descriptorfields )
<tr class="fieldrow2">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($descriptorfield)
</td><td style="vertical-align: middle" width="60%">
$doc.display($descriptorfield)
</td><td style="vertical-align: middle" width="20%">
#bibtexlink($descriptorfield)
</td>
</tr>
#end
</table>
## DESCRIPTOR FIELDS / END
##
## CONTAINER FIELDS / START
#set( $wherewhenfields = [ 'journal', 'booktitle', 'series', 'subseries', 'volume', 'number', 'publisher' ] )
<table style="font-size: smaller; text-align: left; margin: 0 0 0 0" width="100%">
#foreach( $wherewhenfield in $wherewhenfields )
<tr class="fieldrow1">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($wherewhenfield)
</td><td style="vertical-align: middle" width="60%">
$doc.display($wherewhenfield)
</td><td style="vertical-align: middle" width="20%">
#bibtexlink($wherewhenfield)
</td>
</tr>
#end
</table>
## CONTAINER FIELDS / END
##
## WHERE & WHEN FIELDS / START
#set( $wherewhenfields = [ 'year', 'month', 'venue' ] )
<table style="font-size: smaller; text-align: left; margin: 0 0 0 0" width="100%">
#foreach( $wherewhenfield in $wherewhenfields )
<tr class="fieldrow2">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($wherewhenfield)
</td><td style="vertical-align: middle" width="60%">
$doc.display($wherewhenfield)
</td><td style="vertical-align: middle" width="20%">
#bibtexlink($wherewhenfield)
</td>
</tr>
#end
</table>
## WHERE & WHEN FIELDS / END
##
## PART FIELDS / START
#set( $partsfields = [ 'pages', 'numpages', 'articleno', 'chapter', 'part' ] )
<table style="font-size: smaller; text-align: left; margin: 0 0 0 0" width="100%">
#foreach( $partsfield in $partsfields )
<tr class="fieldrow1">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($partsfield)
</td><td style="vertical-align: middle" width="60%">
$doc.display($partsfield)
</td><td style="vertical-align: middle" width="20%">
#bibtexlink($partsfield)
</td>
</tr>
#end
</table>
## PART FIELDS / END
##
## ISBN/ISSN FIELDS / START
#set( $partsfields = [ 'issn', 'eissn', 'isbn', 'eisbn', 'isbn13', 'isbn10' ] )
<table style="font-size: smaller; text-align: left; margin: 0 0 0 0" width="100%">
#foreach( $partsfield in $partsfields )
<tr class="fieldrow2">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($partsfield)
</td><td style="vertical-align: middle" width="60%">
$doc.display($partsfield)
</td><td style="vertical-align: middle" width="20%">
#bibtexlink($partsfield)
</td>
</tr>
#end
</table>
## ISBN/ISSN FIELDS / END
##
## URL / START
#set( $partsfields = [ 'url', 'urlpdf', 'urlopenaccess', 'urlworking' ] )
<table style="font-size: smaller; text-align: left; margin: 0 0 0 0" width="100%">
#foreach( $partsfield in $partsfields )
<tr class="fieldrow1">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($partsfield)
</td><td style="vertical-align: middle" width="60%">
$doc.display($partsfield)
</td><td style="vertical-align: middle" width="20%">
#bibtexlink($partsfield)
</td>
</tr>
#end
</table>
## URL / END
##
## ID / START
#set( $partsfields = [ 'doi', 'iris', 'acm', 'ieee', 'scopus', 'wos', 'scholar', 'semanticscholar', 'dblp', 'pubmed', 'arxiv' ] )
<table style="font-size: smaller; text-align: left; margin: 0 0 0 0" width="100%">
#foreach( $partsfield in $partsfields )
<tr class="fieldrow2">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($partsfield)
</td><td style="vertical-align: middle" width="60%">
$doc.display($partsfield)
</td><td style="vertical-align: middle" width="20%">
#bibtexlink($partsfield)
</td>
</tr>
#end
</table>
## ID / END
#end
## PUB DATA / END
##
## APICE DATA / START
#if( $dataMode == "apice" )
#set( $apicedatafields = [ 'talk', 'event-venue', 'journal-venue', 'pub-venue', 'project', 'pub-super' ] )
<table style="font-size: smaller; text-align: left" width="100%">
#foreach( $apicedatafield in $apicedatafields )
<tr class="#if( $foreach.count%2 == 1 )fieldrow1#{else}fieldrow2#end">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($apicedatafield)
</td><td style="vertical-align: middle">
$doc.display($apicedatafield)
</td>
</tr>
#end
</table>
#end
## APICE DATA / END
##
## BIBTEX DATA / START
#if( $dataMode == "bibtex" )
#set( $bibdatafields = [ 'address', 'location', 'institution', 'organization', 'school', 'edition', 'howpublished', 'type', 'note', 'annote' ] )
<table style="font-size: smaller; text-align: left" width="100%">
#foreach( $bibdatafield in $bibdatafields )
<tr class="#if( $foreach.count%2 == 1)fieldrow1#{else}fieldrow2#end">
<td style="text-align: right; vertical-align: middle" width="20%">
#fieldlinkshort($bibdatafield)
</td><td style="vertical-align: middle">
$doc.display($bibdatafield)
</td><td style="text-align: left; vertical-align: middle" width="20%">
#bibtexlink($bibdatafield)
</td>
</tr>
#end
</table>
#end
## BIBTEX DATA / END
#end
#### INLINE MODE / END
################################################################################
## DATA MODE / END
################################################################################
{{/html}}]
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:186)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:60)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:279)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:182)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:311)
at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:88)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.executeInCurrentExecutionContext(DocumentContentAsyncExecutor.java:395)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.execute(DocumentContentAsyncExecutor.java:268)
at org.xwiki.display.internal.DocumentContentAsyncRenderer.execute(DocumentContentAsyncRenderer.java:112)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:290)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:67)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:43)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:245)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.applySheet(SheetDocumentDisplayer.java:225)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.maybeDisplayWithSheet(SheetDocumentDisplayer.java:180)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:111)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42)
at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:1366)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1503)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1452)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1421)
at com.xpn.xwiki.api.Document.displayDocument(Document.java:787)
at jdk.internal.reflect.GeneratedMethodAccessor747.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:704)
at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:75)
at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:242)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.xwiki.velocity.internal.directive.TryCatchDirective.render(TryCatchDirective.java:86)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor303.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor303.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:846)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:832)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:91)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:85)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2565)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:651)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:394)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with namespace [xwiki:Publications.Sheet]
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:227)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:173)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:177)
... 188 more
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'save' in class com.xpn.xwiki.api.Document threw exception com.xpn.xwiki.XWikiException: Error number 9001 in 9: Access denied in edit mode on document xwiki:Publication.HimatWsdaal99 at xwiki:Classes.Skins.ObjectSkin^XWiki.XWikiSkinFileOverrideClass[6].content[line 164, column 8]
at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:308)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:235)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
... 190 more
Caused by: com.xpn.xwiki.XWikiException: Error number 9001 in 9: Access denied in edit mode on document xwiki:Publication.HimatWsdaal99
at com.xpn.xwiki.api.Document.save(Document.java:2614)
at com.xpn.xwiki.api.Document.save(Document.java:2585)
at jdk.internal.reflect.GeneratedMethodAccessor3321.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
... 205 more