Changes for page Per Status

From version 76.1
edited by Andrea Omicini
on 03/01/2023 00:02
Change comment: There is no comment for this version
To version 86.3
edited by Andrea Omicini
on 18/03/2023 09:35
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -81,26 +81,44 @@
81 81   #set( $statusList = [$statusPar] )
82 82   #end
83 83  #end
84 -$statusList
85 85  ##
86 86  ## query to structures
87 87  #set( $pubMap = {} )
88 88  #set( $pubNo = 0 )
89 89  #foreach( $status in $statusList )
90 -$status
91 - #set( $from = ", BaseObject as obj, LargeStringProperty as prop0, LargeStringProperty as prop1, StringProperty as prop2" )
92 - #set( $where = "obj.name = doc.fullName and obj.className = '${objectSpace}.${objectClass}' and obj.name <> '${objectSpace}.${objectTemplate}' and prop0.id.id = obj.id and prop1.id.id = obj.id and prop2.id.id = obj.id and prop0.name = 'author' and prop1.name = 'editor' and ( prop0.value like '$userString' or ( prop0.value = '' and prop1.value like '$userString' ) ) and prop2.name = 'status' and prop2.value = '$status'" )
89 + #set( $from = ", BaseObject as obj, LargeStringProperty as prop0, LargeStringProperty as prop1, StringProperty as prop2, StringProperty as prop3" )
90 + #set( $where = "obj.name = doc.fullName and obj.className = '${objectSpace}.${objectClass}' and obj.name <> '${objectSpace}.${objectTemplate}' and prop0.id.id = obj.id and prop1.id.id = obj.id and prop2.id.id = obj.id and prop3.id.id = obj.id and prop0.name = 'author' and prop1.name = 'editor' and ( prop0.value like '$userString' or ( prop0.value = '' and prop1.value like '$userString' ) ) and prop2.name = 'status' and prop2.value = '$status' and prop3.name = 'access' and prop3.value = 'visible'" )
93 93   #set( $sql = $from + " where " + $where )
94 94   #set( $pubFound = $xwiki.searchDocuments($sql) )
95 95   #set( $pubStatusNo = $pubFound.size() )
96 -$pubFound
97 -$pubFound.size()
98 98   #if( $pubStatusNo > 0 )
99 99   #set( $pubMap[$status] = $pubFound )
100 100   #set( $pubNo = $pubNo + $pubStatusNo )
101 101   #end
102 102  #end
103 -$pubMap
104 -
105 -
99 +## output results
100 +## page subtitle
101 +{{id name="top"/}}
102 +>(%%)$pubNo #if( $pubNo == 1 ){{stringEngIta eng="$objectEngSingular.toLowerCase()" ita="$objectItaSingular.toLowerCase()"/}}#{else}{{stringEngIta eng="$objectEngPlural.toLowerCase()" ita="$objectItaPlural.toLowerCase()"/}}#{end} / #if( $oneStatus ){{pubStatus uppercase='false' plural='true'}}$statusPar{{/pubStatus}}#{else}{{pubStatus uppercase='false' plural='true'}}unpublished{{/pubStatus}}#{end}#if( $oneUser ) / $userFirstName $userLastName#{end}(%%)
103 +## stop if no pubs are found
104 +#if( $pubNo == 0 || $pubMap.keySet().size() == 0 )
105 +## redundant double check
106 + #stop
107 +#end
108 +## some pubs found
109 +## page index
110 +#if( $pubMap.keySet().size() > 1 )
111 +## found more than one status
112 +{{id name="index"/}}
113 +(% style="font-size:smaller; text-align:right; padding:1em 1.5em 0.25em 1.5em; background-color:$theme.highlightColor" %)(((#foreach( $status in $pubMap.keySet() )#if( !$foreach.first ) | #end[[{{pubStatus uppercase='false' plural='true'}}$status{{/pubStatus}}>>||anchor="$status"]]#end)))
114 +#end
115 +## pubs displayed per year
116 +#foreach( $status in $pubMap.keySet() )
117 +(% style="border-style:solid hidden hidden solid; border-color:$theme.borderColor; text-align:left; font-style:oblique" %)|{{id name='$status'/}}[[{{pubStatus uppercase='false' plural='true'}}$status{{/pubStatus}}>>$doc.name||queryString='status=$status#if( $oneUser )#if( $apiceUser )&user=$userName#{else}&name=$userFirstName&surname=$userLastName#end#end']]
118 + #foreach( $pub in $pubMap[$status] )
119 +(% style="border-style:hidden hidden hidden hidden" %)|{{pub inline='false' linked='title'}}$pub{{/pub}}
120 + #end
121 + #set( $pubStatusNo = $pubMap[$status].size() )
122 +(% style="border-style:hidden solid solid hidden; border-color:$theme.borderColor; text-align:right; font-style:oblique; font-size:smaller" %)|($pubStatusNo #if( $pubStatusNo == 1 ){{stringEngIta eng='publication' ita='pubblicazione'/}} {{pubStatus uppercase='false' plural='false'}}$status{{/pubStatus}}#{else}{{stringEngIta eng='publications' ita='pubblicazioni'/}} {{pubStatus uppercase='false' plural='true'}}$status{{/pubStatus}}#end) [[[{{stringEngIta eng='top' ita='in cima'/}}]>>||anchor="top"]] [[[{{stringEngIta eng='bottom' ita='in fondo'/}}]>>||anchor="bottom"]]
123 +#end
106 106  {{/velocity}}