Changes for page eFit Financial Knowledge Base
Last modified by Isaac Mejia on 2026/06/08 19:59
From version 3.1
edited by Isaac Mejia
on 2026/05/21 14:09
on 2026/05/21 14:09
Change comment:
There is no comment for this version
To version 2.1
edited by Isaac Mejia
on 2026/05/20 18:33
on 2026/05/20 18:33
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,224 +1,1 @@ 1 -{{velocity}} 2 -## --------------------------------------------- 3 -## KB Home (Main.WebHome) 4 -## eFit Financial Knowledge Base 5 -## --------------------------------------------- 6 - 7 -## 1) Find all top-level spaces in the efit wiki 8 -#set ($xwql = 9 - "select doc.fullName, doc.title, doc.name, doc.space " + 10 - "from XWikiDocument doc " + 11 - "where doc.name = 'WebHome' " + 12 - "and doc.space <> 'Main' " + 13 - "and doc.space <> 'XWiki' " + 14 - "and doc.space <> 'xwiki' " + 15 - "and doc.hidden <> true " + 16 - "order by lower(doc.space)" 17 -)## 18 -#set ($query = $services.query.xwql($xwql))## 19 -#set ($rows = $query.execute())## 20 - 21 -## 2) Icon map 22 -#set ($kbCategoryIcons = { 23 - "User_Guides": "📘", 24 - "Announcements": "📣", 25 - "Technical_Knowledge_Base": "⚙️" 26 -})## 27 - 28 -## 3) Descriptions 29 -#set ($kbCategoryDescriptions = { 30 - "User_Guides": "Step-by-step guides for using Club Advantage.", 31 - "Announcements": "Feature releases and platform updates.", 32 - "Technical_Knowledge_Base": "Technical guides and troubleshooting." 33 -})## 34 - 35 -## 4) Display names 36 -#set ($kbCategoryLabels = { 37 - "User_Guides": "User Guides", 38 - "Announcements": "Announcements", 39 - "Technical_Knowledge_Base": "Technical Knowledge Base" 40 -})## 41 - 42 -## 5) Allowlist 43 -#set ($allowedSpaces = ["User_Guides", "Announcements", "Technical_Knowledge_Base"])## 44 - 45 -## 6) Build category objects 46 -#set ($kbCategories = [])## 47 - 48 -#foreach ($space in $allowedSpaces)## 49 - #set ($label = $kbCategoryLabels.get($space))## 50 - #set ($desc = $kbCategoryDescriptions.get($space))## 51 - #set ($icon = $kbCategoryIcons.get($space))## 52 - 53 - ## Count non-hidden, non-WebHome pages in this space and subspaces 54 - #set ($articleCount = 0)## 55 - #set ($countXwql = 56 - "select count(doc.fullName) " + 57 - "from XWikiDocument doc " + 58 - "where (doc.space = :space or doc.space like :spacePrefix) " + 59 - "and doc.name <> 'WebHome' " + 60 - "and doc.hidden <> true" 61 - )## 62 - #set ($countQuery = $services.query.xwql($countXwql))## 63 - #set ($discard = $countQuery.bindValue("space", $space))## 64 - #set ($discard = $countQuery.bindValue("spacePrefix", $space + ".%"))## 65 - #set ($resultList = $countQuery.execute())## 66 - #if ($resultList && $resultList.size() > 0)## 67 - #set ($articleCount = $resultList.get(0))## 68 - #end## 69 - 70 - ## Build clean URL 71 - #set ($cleanUrl = "/" + $space + "/")## 72 - 73 - #set ($entry = { 74 - "label": $label, 75 - "desc": $desc, 76 - "icon": $icon, 77 - "url": $cleanUrl, 78 - "count": $articleCount 79 - })## 80 - #set ($discard = $kbCategories.add($entry))## 81 -#end## 82 - 83 -{{html clean="false"}} 84 -<div class="kb-home"> 85 - 86 - <!-- HERO --> 87 - <div class="kb-hero"> 88 - <h1 class="kb-hero-title">eFit Financial Knowledge Base</h1> 89 - <p class="kb-hero-subtitle"> 90 - Guides, walkthroughs, and best practices to help you and your team get the most out of Club Advantage. 91 - </p> 92 - </div> 93 - 94 - <!-- CATEGORY GRID --> 95 - <div class="kb-section"> 96 - <h2 class="kb-section-title">Browse by category</h2> 97 - 98 - <div class="kb-category-grid"> 99 - #foreach ($cat in $kbCategories) 100 - #set ($label = $cat.get("label")) 101 - #set ($desc = $cat.get("desc")) 102 - #set ($icon = $cat.get("icon")) 103 - #set ($url = $cat.get("url")) 104 - #set ($count = $cat.get("count")) 105 - 106 - <a class="kb-card" href="$url"> 107 - <div> 108 - <div class="kb-card-title"> 109 - <span class="kb-card-icon">$icon</span> 110 - $escapetool.xml($label) 111 - </div> 112 - <div class="kb-card-body"> 113 - $escapetool.xml($desc) 114 - </div> 115 - </div> 116 - <div class="kb-card-meta"> 117 - #if ($count == 1) 118 - 1 article 119 - #elseif ($count > 1) 120 - $count articles 121 - #else 122 - Category 123 - #end 124 - </div> 125 - </a> 126 - #end 127 - </div> 128 - </div> 129 - 130 -</div> 131 - 132 -<style> 133 -body.viewbody.page-WebHome #xwikicontent .kb-hero { 134 - padding: 4.2rem 1rem 3.3rem !important; 135 - max-width: 1100px; 136 - margin: 0 auto; 137 - text-align: center; 138 -} 139 - 140 -body.viewbody.page-WebHome #xwikicontent .kb-hero-title { 141 - font-size: 3.5rem !important; 142 - font-weight: 800 !important; 143 - line-height: 1.15; 144 - margin-bottom: 1rem !important; 145 - color: #0f172a; 146 -} 147 - 148 -body.viewbody.page-WebHome #xwikicontent .kb-hero-subtitle { 149 - font-size: 1.35rem !important; 150 - line-height: 1.7; 151 - color: #4b5563 !important; 152 - max-width: 720px; 153 - margin: 0 auto 2.3rem !important; 154 -} 155 - 156 -body.viewbody.page-WebHome #xwikicontent .kb-section { 157 - margin-top: 4.6rem !important; 158 -} 159 - 160 -body.viewbody.page-WebHome #xwikicontent .kb-section-title { 161 - text-align: center; 162 - font-size: 1.5rem; 163 - font-weight: 700; 164 - margin-bottom: 2rem; 165 - color: #0f172a; 166 -} 167 - 168 -body.viewbody.page-WebHome #xwikicontent .kb-category-grid { 169 - display: grid; 170 - grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); 171 - gap: 1.5rem; 172 - max-width: 1100px; 173 - margin: 0 auto; 174 - padding: 0 1rem; 175 -} 176 - 177 -body.viewbody.page-WebHome #xwikicontent .kb-card { 178 - display: flex; 179 - flex-direction: column; 180 - justify-content: space-between; 181 - padding: 1.5rem; 182 - border: 1px solid #e5e7eb; 183 - border-radius: 12px; 184 - text-decoration: none; 185 - color: inherit; 186 - background: #fff; 187 - box-shadow: 0 1px 3px rgba(0,0,0,0.06); 188 - transition: box-shadow 0.2s, transform 0.2s; 189 -} 190 - 191 -body.viewbody.page-WebHome #xwikicontent .kb-card:hover { 192 - box-shadow: 0 8px 24px rgba(0,0,0,0.1); 193 - transform: translateY(-2px); 194 -} 195 - 196 -body.viewbody.page-WebHome #xwikicontent .kb-card-title { 197 - font-size: 1.1rem; 198 - font-weight: 700; 199 - color: #2563eb; 200 - margin-bottom: 0.5rem; 201 -} 202 - 203 -body.viewbody.page-WebHome #xwikicontent .kb-card-icon { 204 - margin-right: 0.4rem; 205 -} 206 - 207 -body.viewbody.page-WebHome #xwikicontent .kb-card-body { 208 - font-size: 0.95rem; 209 - color: #6b7280; 210 - line-height: 1.5; 211 -} 212 - 213 -body.viewbody.page-WebHome #xwikicontent .kb-card-meta { 214 - margin-top: 1rem; 215 - font-size: 0.85rem; 216 - color: #9ca3af; 217 - text-transform: uppercase; 218 - letter-spacing: 0.05em; 219 -} 220 -</style> 221 - 222 -{{/html}} 223 -{{/velocity}} 224 - 1 +{{children/}}