Changes for page Administration
Last modified by Leon Poon on 2025/05/12 14:26
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -9,7 +9,7 @@ 9 9 #set ($adminAction = 'admin') 10 10 #set ($crtCategoryId = "$!{request.category}") 11 11 #if ($crtCategoryId != '') 12 - #set ($crtCategoryId = $m athtool.toInteger($crtCategoryId))12 + #set ($crtCategoryId = $numbertool.toNumber($crtCategoryId).intValue()) 13 13 #end 14 14 #set ($crtSectionId = "$!{request.section}") 15 15 ... ... @@ -16,6 +16,9 @@ 16 16 ## 17 17 ## Admin menu map 18 18 ## 19 +## displayInSection: menu.name | sectionOrder: 200 | page: Menu.MenuConfigurationSection 20 +## displayInSection: panels.applications | sectionOrder: 400 | page: PanelsCode.ApplicationsPanelConfigurable 21 +## displayInSection: panels.navigation | sectionOrder: 500 | page: PanelsCode.NavigationConfigurationSection 19 19 #set($adminMenu = [ 20 20 { 21 21 'id' : 'lf', ... ... @@ -23,8 +23,8 @@ 23 23 'displayBeforeCategory': 'content', 24 24 'children': [ 25 25 {'id' : 'Themes', 'perSpace' : true, 'order' : 100}, 26 - {'id' : 'Panels.PanelWizard', 'perSpace' : true, 'order' : 200},27 - {'id' : 'Presentation', 'perSpace' : true, 'order' : 300}29 + {'id' : 'Panels.PanelWizard', 'perSpace' : true, 'order' : 300}, 30 + {'id' : 'Presentation', 'perSpace' : true, 'order' : 600} 28 28 ] 29 29 }, 30 30 { ... ... @@ -84,7 +84,7 @@ 84 84 #set ($crtCategory = $NULL) 85 85 #foreach ($category in $adminMenu) 86 86 ## "Standard" URLs and icons for categories 87 - #set ($category.url = $xwiki.getURL($currentDoc, $adminAction, "category=${mathtool.sub($ velocityCount, 1)}"))90 + #set ($category.url = $xwiki.getURL($currentDoc, $adminAction, "category=${mathtool.sub($foreach.count, 1)}")) 88 88 #if ($xwiki.getDocument('XWiki.AdminSheet').getAttachment("${category.id}.png")) 89 89 #set ($category.iconReference = "XWiki.AdminSheet@${category.id}.png") 90 90 #else ... ... @@ -93,7 +93,7 @@ 93 93 #set ($category.description = $services.localization.render("admin.${category.id}.description").trim()) 94 94 #set ($category.cssClass = "${category.id}Icon") 95 95 #set ($category.name = $services.localization.render("admin.${category.id}").trim()) 96 - #if ("$!{crtCategoryId}" != '' && $ velocityCount == $mathtool.add($crtCategoryId, 1))99 + #if ("$!{crtCategoryId}" != '' && $foreach.count == $mathtool.add($crtCategoryId, 1)) 97 97 #set ($crtCategory = $category) 98 98 #end 99 99 ## ... ... @@ -229,10 +229,14 @@ 229 229 230 230 #macro (verticalNavigation $menu $options) 231 231 {{html clean="false"}} 232 - <div id="$!options.id" class="panel-group $!options.cssClass" role="tablist" aria-multiselectable="true"> 235 + <nav id="$!options.id" class="panel-group $!options.cssClass" 236 + aria-label="$escapetool.xml($services.localization.render('administration.menu.label'))"> 233 233 <div class="panel xform"> 234 - <input type="text" class="form-control panel-group-filter" autocomplete="off" 235 - placeholder="$escapetool.xml($services.localization.render('administration.menu.search.hint'))" /> 238 + <label for="adminsearchmenu" class="hidden">$services.localization.render('search')</label> 239 + <input type="text" class="form-control panel-group-filter" autocomplete="off" id="adminsearchmenu" 240 + placeholder="$escapetool.xml($services.localization.render('administration.menu.search.hint'))" 241 + ## Disable the search input initially until the JavaScript code that handles the search is ready. 242 + disabled="disabled" /> 236 236 </div> 237 237 #foreach ($item in $menu) 238 238 #verticalNavigationItem($item $options) ... ... @@ -242,7 +242,7 @@ 242 242 $escapetool.xml($services.localization.render('administration.menu.search.noResults')) 243 243 </div> 244 244 </div> 245 - </ div>252 + </nav> 246 246 {{/html}} 247 247 #end 248 248 ... ... @@ -258,11 +258,11 @@ 258 258 #set ($children = []) 259 259 #sortCollectionOfMapsByField($item.children, 'order', 99999, 'asc', $children) 260 260 <div class="panel panel-default"> 261 - <a class="panel-heading#if (!$isActive) collapsed#end" role="tab"id="panel-heading-$escapedId"268 + <a class="panel-heading#if (!$isActive) collapsed#end" id="panel-heading-$escapedId" 262 262 href="$!item.url" data-toggle="collapse"#if ("$!options.id" != '') data-parent="#$options.id" #end 263 263 data-target="#panel-body-$escapedId" aria-expanded="$isActive" aria-controls="panel-body-$escapedId" 264 264 title="$!escapetool.xml($item.description)">$!services.icon.renderHTML($item.icon)$escapetool.xml($name)</a> 265 - < divclass="panel-collapse collapse#if ($isActive) in#end"role="tabpanel"id="panel-body-$escapedId"272 + <section class="panel-collapse collapse#if ($isActive) in#end" id="panel-body-$escapedId" 266 266 aria-labelledby="panel-heading-$escapedId"> 267 267 <div class="list-group"> 268 268 #foreach ($child in $children) ... ... @@ -269,7 +269,7 @@ 269 269 #verticalNavigationItem($child $options) 270 270 #end 271 271 </div> 272 - </ div>279 + </section> 273 273 </div> 274 274 #else 275 275 <a class="list-group-item#if ($isActive) active#end" data-id="$escapedId" ... ... @@ -284,7 +284,7 @@ 284 284 ## Administration Sheet, used to display a common UI for some wiki features (presentation, users, 285 285 ## groups, rights etc.) at global / space level and also for several applications. 286 286 ##************************************************************************************************** 287 -#if($xcontext.action == 'view') 294 +#if($xcontext.action == 'view' && "$!request.viewer" == '') 288 288 $response.sendRedirect($xwiki.getURL($doc.getFullName(), 'admin', $request.getQueryString()))## 289 289 #else 290 290 $xwiki.jsx.use('XWiki.AdminSheet')## ... ... @@ -327,7 +327,7 @@ 327 327 #end 328 328 #end 329 329 (% id="document-title" %)((( 330 - = $services.localization.render("administration.sectionTitle$level", [$sectionName]) = 337 + = $services.localization.render("administration.sectionTitle$level", 'xwiki/2.1', [$sectionName]) = 331 331 ## Display the category/section description below the title. 332 332 #set ($categoryOrSectionId = $crtCategory.id) 333 333 #if ("$!crtSection.id" != '') ... ... @@ -361,11 +361,8 @@ 361 361 ##------------------------------------------------------------------------------------------------------------ 362 362 ## The Administration allows editing other pages from different applications inside the admin context (UI) 363 363 ##------------------------------------------------------------------------------------------------------------ 364 - #if ("$!{request.editmode}" == 'inline' && $xwiki.exists($section)) 365 - #set ($discard = $xcontext.setDisplayMode('edit')) 366 - {{html clean="false"}}{{include reference="XWiki.AdminInlineSheet" /}}{{/html}} 367 - #elseif ($xwiki.exists("XWiki.Admin${section}Sheet")) 368 - ## Custom XE administration section 371 + #if ($xwiki.exists("XWiki.Admin${section}Sheet")) 372 + ## Handle known XWiki administration sections 369 369 {{include reference="XWiki.Admin${section}Sheet" /}} 370 370 #elseif ($xwiki.exists($section)) 371 371 {{html clean="false"}}#includeForm($section){{/html}}
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -3,6 +3,8 @@ 3 3 $(document).on('click', '.admin-menu a.panel-heading', function(event) { 4 4 event.preventDefault(); 5 5 }); 6 + // Mark the administration menu as ready for user interaction. 7 + $('.admin-menu').attr('data-ready', true); 6 6 }); 7 7 8 8 /** ... ... @@ -24,7 +24,7 @@ 24 24 // Filter the categories. 25 25 panelGroup.find('a.panel-heading').each(function() { 26 26 var panel = $(this).closest('.panel'); 27 - var hasVisibleSections = panel.find('.list-group-item').not('.hidden'). size()> 0;29 + var hasVisibleSections = panel.find('.list-group-item').not('.hidden').length > 0; 28 28 var matchesFilterQuery = !filterItem.call($(this), text); 29 29 panel.toggle(hasVisibleSections || matchesFilterQuery); 30 30 if (!hasVisibleSections && matchesFilterQuery) { ... ... @@ -48,7 +48,7 @@ 48 48 .next('.panel-collapse').addClass('in').css('height', ''); 49 49 } 50 50 // Show/Hide the "No results." message. 51 - var hasVisibleCategories = panelGroup.find('a.panel-heading').filter(':visible'). size()> 0;53 + var hasVisibleCategories = panelGroup.find('a.panel-heading').filter(':visible').length > 0; 52 52 panelGroup.find('.noitems').toggleClass('hidden', hasVisibleCategories); 53 53 }; 54 54 ... ... @@ -59,6 +59,8 @@ 59 59 var panelGroup = $(this).closest('.panel-group'); 60 60 var text = $(this).val().toLowerCase(); 61 61 // Schedule a new filter operation. 62 - timeoutId = setTimeout($.proxy(filterPanelGroup, panelGroup, text), 500); 63 - }); 64 + timeoutId = setTimeout(filterPanelGroup.bind(panelGroup, text), 500); 65 + 66 + // Finally, enable the search input. 67 + }).prop('disabled', false); 64 64 });
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -89,8 +89,8 @@ 89 89 } 90 90 91 91 .admin-menu .panel-heading.collapsed { 92 - border-bottom-left-radius: 3px;93 - border-bottom-right-radius: 3px;92 + border-bottom-left-radius: 5px; 93 + border-bottom-right-radius: 5px; 94 94 } 95 95 96 96 .admin-menu a.panel-heading { ... ... @@ -112,8 +112,8 @@ 112 112 } 113 113 114 114 .admin-menu .panel-collapse > .list-group:last-child .list-group-item.last { 115 - border-bottom-right-radius: 3px;116 - border-bottom-left-radius: 3px;115 + border-bottom-right-radius: 5px; 116 + border-bottom-left-radius: 5px; 117 117 } 118 118 119 119 .admin-menu .panel.noitems > .panel-heading {