Исходный код вики $services.localization.render('extension.extensions')
Версия 1.1 от superadmin на 2020/10/06 10:51
Скрыть последних авторов
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 1 | {{template name="extension.vm" output="false"/}} |
2 | |||
3 | {{velocity}} | ||
4 | ## HTML cleaner messes up the content of the legend tag. | ||
5 | {{html clean="false"}} | ||
6 | #if ($isAjaxRequest) | ||
7 | #handleExtensionRequest() | ||
8 | #else | ||
9 | <div class="full column"> | ||
10 | #displayExtensionSearchBar() | ||
11 | |||
12 | #if ($request.extensionId && $request.extensionVersion) | ||
13 | ## Advanced search. | ||
14 | #handleExtensionRequest() | ||
15 | #else | ||
16 | ## Simple search. | ||
17 | #set ($noResultsMessageKey = 'extensions.search.noResults') | ||
18 | #set ($paginationParams = {}) | ||
19 | ## Dump whitespace generated by the pagination macro | ||
20 | #set ($discard = "#paginationPrepareParams($paginationParams)") | ||
21 | #set ($repository = $extensionManager) | ||
22 | #if ($request.repo) | ||
23 | #set ($selectedRepositoryId = $request.repo) | ||
24 | #elseif (!$selectedRepositoryId) | ||
25 | #set ($selectedRepositoryId = 'recommended') | ||
26 | #end | ||
27 | #if ("$!selectedRepositoryId" != '') | ||
28 | #set ($repository = $extensionManager.getRepository($selectedRepositoryId)) | ||
29 | #if ("$!request.search" == '') | ||
30 | ## Fetch extensions from known repositories. | ||
31 | #if ($selectedRepositoryId == 'core') | ||
32 | #set($extensions = $services.extension.core.getCoreExtensions()) | ||
33 | #elseif ($selectedRepositoryId == 'installed') | ||
34 | #if ($xcontext.isMainWiki()) | ||
35 | #set($extensions = $services.extension.installed.getInstalledExtensions()) | ||
36 | #else | ||
37 | #set($extensions = $services.extension.installed.getInstalledExtensions($extensionNamespace)) | ||
38 | #end | ||
39 | #elseif ($selectedRepositoryId == 'local') | ||
40 | #set($extensions = $services.extension.local.getLocalExtensions()) | ||
41 | #end | ||
42 | #if ($extensions) | ||
43 | #set ($totalHits = $extensions.size()) | ||
44 | #if ($totalHits == 0) | ||
45 | #set ($noResultsMessageKey = "extensions.search.repository.${selectedRepositoryId}.empty") | ||
46 | #end | ||
47 | ## All extensions from the specified repository have been fetched. We need to display only the current page. | ||
48 | #set ($extensions = $extensions.subList($paginationParams.firstItem, $mathtool.min($extensions.size(), $mathtool.add($paginationParams.firstItem, $paginationParams.itemsPerPage)))) | ||
49 | #end | ||
50 | #end | ||
51 | #end | ||
52 | #if (!$extensions) | ||
53 | #set($extensionQuery = $services.extension.newQuery("$!request.search")) | ||
54 | #set($void = $extensionQuery.setOffset($paginationParams.firstItem)) | ||
55 | #set($void = $extensionQuery.setLimit($paginationParams.itemsPerPage)) | ||
56 | #if ($selectedRepositoryId == 'installed') | ||
57 | #if ($xcontext.isMainWiki()) | ||
58 | #set ($extensions = $services.extension.installed.repository.searchInstalledExtensions($extensionQuery)) | ||
59 | #else | ||
60 | ## When searching for installed extensions in a subwiki we need to take the namespace into account. | ||
61 | #set ($extensions = $services.extension.installed.repository.searchInstalledExtensions($extensionNamespace, $extensionQuery)) | ||
62 | #end | ||
63 | #else | ||
64 | #set ($extensions = $repository.search("$!request.search", $paginationParams.firstItem, $paginationParams.itemsPerPage)) | ||
65 | #end | ||
66 | #set ($totalHits = $extensions.totalHits) | ||
67 | #end | ||
68 | #if ($selectedRepositoryId == 'recommended') | ||
69 | #if (!$extensions.iterator().hasNext()) | ||
70 | <div class="box warningmessage">$services.localization.render('extensions.search.repository.recommended.fallback', ["<em>$!escapetool.xml($request.search)</em>", "<strong>$services.localization.render('extensions.search.repository.remote.label')</strong>"])</div> | ||
71 | ## Fallback to all remote extensions | ||
72 | #set ($repository = $extensionManager) | ||
73 | #set($selectedRepositoryId = '') | ||
74 | #set ($extensions = $repository.search("$!request.search", $paginationParams.firstItem, $paginationParams.itemsPerPage)) | ||
75 | #else | ||
76 | <div class="box infomessage">$services.localization.render('extensions.search.repository.recommended.disclaimer') | ||
77 | <form action="${xwiki.relativeRequestURL}"> | ||
78 | #if ($request.section) | ||
79 | <input type="hidden" name="section" value="${escapetool.xml($request.section)}" /> | ||
80 | #end | ||
81 | <input type="hidden" name="search" value="$!{escapetool.xml($request.search)}" /> | ||
82 | <input type="hidden" name="repo" value="" /> | ||
83 | <input type="submit" value="${escapetool.xml($services.localization.render('extensions.search.repository.remote.label'))}" class="button secondary"/> | ||
84 | </form> | ||
85 | </div> | ||
86 | #end | ||
87 | #end | ||
88 | #if (!$extensions.iterator().hasNext()) | ||
89 | <div class="box infomessage">$services.localization.render($noResultsMessageKey, ["<em>$!escapetool.xml($request.search)</em>"])</div> | ||
90 | #else | ||
91 | #if ($totalHits && $totalHits > $paginationParams.itemsPerPage) | ||
92 | #set ($hasPagination = true) | ||
93 | #set ($paginationParams.totalItems = $totalHits) | ||
94 | #set ($paginationParams.url = $doc.getURL($xcontext.action, $request.getQueryString().replaceAll('(^|&)firstIndex=[^&]++&?', '$1'))) | ||
95 | #pagination($paginationParams) | ||
96 | #end | ||
97 | #foreach($extension in $extensions) | ||
98 | #displayExtension($extension) | ||
99 | #end | ||
100 | #if ($hasPagination) | ||
101 | #set ($discard = $paginationParams.put('position', 'bottom')) | ||
102 | #pagination($paginationParams) | ||
103 | #end | ||
104 | #end | ||
105 | #end | ||
106 | </div> | ||
107 | #end | ||
108 | {{/html}} | ||
109 | {{/velocity}} |