Changes for page Supervisors
From version 94.1
edited by Andrea Omicini
on 29/01/2023 21:43
on 29/01/2023 21:43
Change comment:
There is no comment for this version
To version 90.1
edited by Andrea Omicini
on 29/01/2023 21:18
on 29/01/2023 21:18
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -4,6 +4,88 @@ 4 4 ## thesis page with menus 5 5 #set( $thesisMenu = true ) 6 6 ## 7 +#### get parameters 8 +## user 9 +#if( $request.user && $request.user.trim() != "" ) 10 + #set( $userNamePar = $request.user.trim() ) 11 + #if( !$userNamePar.contains('XWiki.') ) 12 + #set( $userNamePar = "XWiki.$userNamePar" ) 13 + #end 14 + #if( !$xwiki.exists( $userNamePar ) ) 15 +{{warning}}{{italiano}}L'utente “$userNamePar” non esiste{{/italiano}}{{english}}User “$userNamePar” does not exist{{/english{{/warning}} 16 + #set( $userNamePar = "" ) 17 + #end 18 +#else 19 + #set( $userNamePar = "" ) 20 +#end 21 +## $userNamePar is either empty or an XWiki user name 22 +## 23 +## name 24 +#if( $request.name && $request.name.trim() != "" ) 25 + #set( $firstNamePar = $request.name.trim() ) 26 +#else 27 + #set( $firstNamePar = "" ) 28 +#end 29 +## surname 30 +#if( $request.surname && $request.surname.trim() != "" ) 31 + #set( $lastNamePar = $request.surname.trim() ) 32 +#else 33 + #set( $lastNamePar = "" ) 34 +#end 35 +## name and surname should be both instantiated, or none 36 +#if( $firstNamePar == "" || $lastNamePar == "") 37 + #set( $firstNamePar = "" ) 38 + #set( $lastNamePar = "" ) 39 +#end 40 +## firstNamePar and lastNamePar are both instantiated, or none 41 +## 42 +#### variable defaults 43 +#set( $oneUser = false ) 44 +#set( $apiceUser = false ) 45 +#set( $userFirstName = "" ) 46 +#set( $userLastName = "" ) 47 +#### handle who 48 +#if( $userName ) 49 +## from a personal page, "XWiki.$userName" $userName form 50 + #if( !$xwiki.exists( $userName ) ) 51 +{{warning}}User $userName does not exist{{/warning}} 52 + #else 53 +## $userName is an XWiki user name 54 + #set( $oneUser = true ) 55 + #set( $apiceUser = true ) 56 + #set( $userDoc = $xwiki.getDocument($userName) ) 57 + #set( $userFirstName = $userDoc.display("first_name") ) 58 + #set( $userLastName = $userDoc.display("last_name") ) 59 + #end 60 +#elseif( $userNamePar != "" ) 61 + #set( $oneUser = true) 62 + #set( $apiceUser = true ) 63 + #set( $userName = $userNamePar ) 64 + #set( $userdoc = $xwiki.getDocument($userName) ) 65 + #set( $userFirstName = $userdoc.display("first_name") ) 66 + #set( $userLastName = $userdoc.display("last_name") ) 67 +#elseif( $firstNamePar != "" && $lastNamePar != "" ) 68 +## from the URL, "name=Firstname&surname=Lastname" parameter 69 + #set( $oneUser = true ) 70 + #set( $apiceUser = false ) 71 + #set( $userFirstName = $firstNamePar ) 72 + #set( $userLastName = $lastNamePar ) 73 +#end 74 +#if( $oneUser ) 75 + #if( $apiceUser ) 76 + #set( $userString = "%$userName%" ) 77 + #set( $parameterString = "user=$userName" ) 78 + #else 79 + #set( $userName = "$userFirstName $userLastName" ) 80 + #set( $userString = "%$userName%" ) 81 + #set( $parameterString = "name=$userFirstName&surname=$userLastName" ) 82 + #end 83 +#else 84 + #set( $userName = "" ) 85 + #set( $userString = "" ) 86 + #set( $parameterString = "" ) 87 +#end 88 +## 7 7 #### tag parameter possibly brings name to be used as tag 8 8 ## no tag parameter --> just the cloud 9 9 ## yes tag parameter --> the item list ... ... @@ -13,8 +13,8 @@ 13 13 ## subtitle 14 14 >{{stringEngIta eng="$objectEngPlural" ita= "$objectItaPlural"/}}#if( $oneUser ) / $userFirstName $userLastName#{end} 15 15 ## set query 16 - #set( $query = ", BaseObject as obj, StringProperty as prop1, DateProperty as prop2 17 - where obj.name = doc.fullName and obj.className = '${objectSpace}.${objectClass}' and obj.name <> '${objectSpace}.${objectTemplate}' and prop1.id.id = obj.id and prop2.id.id = obj.id and prop1.name = 'status' and lower(prop1.value) = 'completed' and prop2.name = 'end' order by prop2.value desc" ) 98 + #set( $query = ", BaseObject as obj, LargeStringProperty as prop0, StringProperty as prop1, DateProperty as prop2 99 + 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 = 'supervisors' #if( $oneUser )and prop0.value like '$userString'#end and prop1.name = 'status' and lower(prop1.value) = 'completed' and prop2.name = 'end' order by prop2.value desc" ) 18 18 ## execute query 19 19 #set( $itemFound = $xwiki.searchDocuments($query) ) 20 20 #set( $itemFoundNo = $itemFound.size() ) ... ... @@ -24,22 +24,21 @@ 24 24 #foreach( $item in $itemFound ) 25 25 ## set $doc & $obj 26 26 #set( $itemDoc = $xwiki.getDocument($item) ) 27 - # if( $itemDoc.getValue("supervisors")!= "")28 - Doc.getValue("supervisors").split(",") )109 + #set( $itemObj = $itemDoc.getObject("${objectSpace}.${objectClass}") ) 110 + #set( $nameList = $itemObj.getValue("supervisors").split(",") ) 29 29 ## set user-item map 30 - 112 + #foreach( $name in $nameList ) 31 31 #### build name lists 32 - 114 + #if( $nameMap.keySet().contains($name) ) 33 33 ## nameMap already contains current name 34 34 ## add $item to nameMap for current name 35 - 36 - 117 + #set( $discard = $nameMap[$name].add($item) ) 118 + #elseif( !$oneUser || $oneUser && $name != $userName ) 37 37 ## nameMap does not contain name or selected user 38 38 ## add name / selected user to nameMap 39 - 121 + #set( $nameMap[$name] = [] ) 40 40 ## adding $item to nameMap for $name 41 - #set( $discard = $nameMap[$name].add($item) ) 42 - #end 123 + #set( $discard = $nameMap[$name].add($item) ) 43 43 #end 44 44 #end 45 45 #### END / feed name list from each item ... ... @@ -61,17 +61,21 @@ 61 61 #elseif( $nameItemNo == 2 )#set( $tagSize = "100%" ) 62 62 #else#set( $tagSize = "90%" ) 63 63 #end 64 -[[(% style='font-size:$tagSize; white-space: nowrap' %){{namesFromUsers linked='false'}}$name{{/namesFromUsers}}(%%)>>$doc||queryString='tag=$name']](% style='font-style:normal;color:$theme.textPrimaryColor;font-size:75%' %),,$nameItemNo,, (%%) #end 145 +[[(% style='font-size:$tagSize; white-space: nowrap' %){{namesFromUsers linked='false'}}$name{{/namesFromUsers}}(%%)>>$doc||queryString='tag=$name#if( $oneUser )&$parameterString#end']](% style='font-style:normal;color:$theme.textPrimaryColor;font-size:75%' %),,$nameItemNo,, (%%) #end 65 65 ))) 66 66 ## cloud bottom 67 67 (% style='font-style:oblique;font-size:smaller;text-align:right;color:$theme.textSecondaryColor' %)((( 149 +#if( $oneUser ) 150 +[ $nameFoundNo #if( $nameFoundNo == 1 ){{stringEngIta eng="co-supervisor" ita="co-supervisore"/}}#else{{stringEngIta eng="co-supervisors" ita="co-supervisori"/}}#end / $itemFoundNo #if( $itemFoundNo == 1 ){{stringEngIta eng="$objectEngSingular.toLowerCase()" ita="$objectItaSingular.toLowerCase()"/}}#else{{stringEngIta eng = "$objectEngPlural.toLowerCase()" ita = "$objectItaPlural.toLowerCase()"/}}#end ] 151 +#else 68 68 [ $nameFoundNo #if( $nameFoundNo == 1 ){{stringEngIta eng="supervisor" ita="supervisore"/}}#else{{stringEngIta eng="supervisors" ita="supervisori"/}}#end / $itemFoundNo #if( $itemFoundNo == 1 ){{stringEngIta eng="$objectEngSingular.toLowerCase()" ita="$objectItaSingular.toLowerCase()"/}}#else{{stringEngIta eng = "$objectEngPlural.toLowerCase()" ita="$objectItaPlural.toLowerCase()"/}}#end ] 153 +#end 69 69 ))) 70 70 #### YES TAG PARAMETER 71 71 #else 72 72 ## set query 73 73 #set( $query = ", BaseObject as obj, LargeStringProperty as prop0, StringProperty as prop1, DateProperty as prop2 74 - 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 = 'supervisors' and prop0.value like '%$request.tag%' and prop1.name = 'status' and lower(prop1.value) = 'completed' and prop2.name = 'end' order by prop2.value desc" ) 159 + 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 = 'supervisors' and prop0.value like '%$request.tag%' #if( $request.user )and prop0.value like '%$request.user%'#end #if( $request.name && $request.surname )and prop0.value like '%$request.name $request.surname%'#end and prop1.name = 'status' and lower(prop1.value) = 'completed' and prop2.name = 'end' order by prop2.value desc" ) 75 75 ## execute query 76 76 #set( $itemFound = $xwiki.searchDocuments($query) ) 77 77 #set( $itemFoundNo = $itemFound.size() ) ... ... @@ -83,7 +83,23 @@ 83 83 [[image:icon:book]] {{thesis}}$item{{/thesis}} 84 84 #end 85 85 ))) 86 -## thesis list bottom 171 +## embodied page? 172 + #if( $userName && $userSpace ) 173 + #set( $embodiedPage = true ) 174 + #else 175 + #set( $embodiedPage = false ) 176 + #end 177 +## talk list bottom 178 + #if( $embodiedPage ) 179 +(% style='font-style:oblique;font-size:smaller;text-align:right;color:$theme.textSecondaryColor' %)((([ [[{{stringEngIta eng="co-supervisor cloud" ita="nuvola co-supervisori" /}}>>$doc]] / {{stringEngIta eng = "$objectEngPlural.toLowerCase()" ita = "$objectItaPlural.toLowerCase()"/}} ])))(%%) 180 + #else 181 + #if( $request.user ) 182 +(% style='font-style:oblique;font-size:smaller;text-align:right;color:$theme.textSecondaryColor' %)((([ [[{{stringEngIta eng="co-supervisor cloud" ita="nuvola co-supervisori" /}}>>$doc||queryString="user=$request.user"]] / {{namesFromUsers linked='false'}}$request.user{{/namesFromUsers}} / {{stringEngIta eng = "$objectEngPlural.toLowerCase()" ita = "$objectItaPlural.toLowerCase()"/}} ])))(%%) 183 + #elseif( $request.name && $request.surname ) 184 +(% style='font-style:oblique;font-size:smaller;text-align:right;color:$theme.textSecondaryColor' %)((([ [[{{stringEngIta eng="co-supervisor cloud" ita="nuvola co-supervisori" /}}>>$doc||queryString="name=$request.name&surname=$request.surname"]] / {{namesFromUsers linked='false'}}$request.name $request.surname{{/namesFromUsers}} / {{stringEngIta eng = "$objectEngPlural.toLowerCase()" ita = "$objectItaPlural.toLowerCase()"/}} ])))(%%) 185 + #else 87 87 (% style='font-style:oblique;font-size:smaller;text-align:right;color:$theme.textSecondaryColor' %)((([ [[{{stringEngIta eng="supervisor cloud" ita="nuvola supervisori" /}}>>$doc||]] / {{stringEngIta eng = "$objectEngPlural.toLowerCase()" ita = "$objectItaPlural.toLowerCase()"/}} ])))(%%) 187 + #end 188 + #end 88 88 #end 89 89 {{/velocity}}