Changes for page Card Navigation

Last modified by Calvin Henderson on 2025/03/11 10:29

From version 18.9
edited by calvin_henderson
on 2024/12/18 13:45
Change comment: There is no comment for this version
To version 20.3
edited by calvin_henderson
on 2024/12/19 07:33
Change comment: There is no comment for this version

Summary

Details

XWiki.WikiMacroClass[0]
code
... ... @@ -2,35 +2,39 @@
2 2  #set($wikiRef = $doc.documentReference.getWikiReference().getName())
3 3  #set($docRef = $doc.getFullName())
4 4  #set($entries = $wikimacro.content)
5 -#set ($targetSyntaxId = $wikimacro.context.transformationContext.targetSyntax.type.id)
6 -#if ($targetSyntaxId == 'annotatedhtml' || $targetSyntaxId == 'annotatedxhtml')
7 -[[Icon search>>https://fontawesome.com/v6/search?m=free]]
8 -Icon Name|Title|URL
9 ----------|-----|---
10 -{{wikimacrocontent/}}
11 -#else
5 +#if("$xcontext.action" != "edit")
12 12  
13 13  
14 14  {{html wiki="false"}}
15 - <div style="display: grid;
16 - grid-template-columns: 1fr 1fr 1fr;
17 - gap: 10px;
18 - ">
9 + <div style="display: flex; flex-direction: row; gap: 10px; max-width: 1790px; flex-wrap: wrap;">
19 19   #foreach($entry in $entries.split('\n'))
20 - #set($card = $entry.split('\|'))
21 - <a href="$card[2]" style="text-decoration:none;">
22 - <div style="
23 - display:grid;
24 - text-align:center;
25 - padding:8px;
26 - border-radius:5px;
27 - border:1px solid rgba(222,222,222,1);
28 - border-bottom: 3px solid rgba(222,222,222,1);
29 - ">
30 - <i class="fa $card[0]" style="font-size:4em;"></i>
31 - <h3>$card[1]</h3>
32 - </div>
33 - </a>
11 + #set($doc = $xwiki.getDocument($card[2]))
12 + #set($canView =
13 + $card[2].toString().startsWith('http')
14 + || $services.security.authorization.hasAccess('view', $card[2])
15 + || $services.security.authorization.hasAccess('edit', $card[2])
16 + || $services.security.authorization.hasAccess('admin', $card[2])
17 + )
18 + #if ($canView)
19 + #set($card = $entry.split('\|'))
20 + <a href="$card[2]" style="text-decoration:none;">
21 + <div style="
22 + display:grid;
23 + text-align:center;
24 + align-items: center;
25 + justify-items: center;
26 + padding:8px;
27 + border-radius:5px;
28 + border:1px solid rgba(222,222,222,1);
29 + border-bottom: 3px solid rgba(222,222,222,1);
30 + min-width: 350px; max-width: 350px;
31 + min-height: 150px; max-height: 150px;
32 + ">
33 + <i class="fa $card[0]" style="font-size:4em;"></i>
34 + <h3 style="margin-top: 0;">$card[1]</h3>
35 + </div>
36 + </a>
37 + #end
34 34   #end
35 35   </div>
36 36  {{/html}}