Changes for page ExternalApps
Last modified by bougault on 2019/09/12 12:46
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,29 +1,103 @@ 1 1 {{velocity}} 2 -{{html}} 2 +{{html clean="false"}} 3 3 ## space: $spaceDoc <br /> 4 4 ## children: $spaceDoc.getChildren() 5 5 6 -#set($query = 'select app.titlefrom Document doc, doc.object(ExternalApps.Code.ExternalAppsClass) as app')7 -#set($apps = $services.query.xwql($query).addFilter('hidden').execute()) 6 +#set($query = 'select doc from Document doc, doc.object(ExternalApps.Code.ExternalAppsClass) as app') 7 +#set($applications = $services.query.xwql($query).addFilter('hidden').execute()) 8 8 9 +<style> 10 +.applications { 11 + display: grid; 12 + grid-gap: 10px; 13 +} 9 9 10 -#* 11 -#foreach($child in $spaceDoc.getChildren()) 12 - #set($childDoc = $xwiki.getDocument($child)) 13 - #set($URL = $childDoc.display('url')) 14 - #set($title = $childDoc.display('title')) 15 - <div> 16 - #if($childDoc.getAttachment('logo.png').isImage()) 17 - <img src="$childDoc.getAttachmentURL('logo.png')" width="75" height="75" alt="$title.replace('"', '\"')"> 18 - #else 19 - <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mN89x8AAuEB74Y0o2cAAAAASUVORK5CYII=" width="75" height="75" alt=""> 20 - #end 21 - <h3>$title</h3> 22 - <a href="$URL">$URL</a> 23 - <p>$!childDoc.getValue('description')</p> 24 - <input id="$child.concat('-visibility')" type="checkbox" #if($childDoc.getValue('private') == 'Yes')checked#end disabled /><label for="$child.concat('-visibility')">Private</label> 25 - </div> 26 -#end 27 -*# 15 +@media screen and (min-width: 640px) { 16 + .applications { 17 + grid-template-columns: 1fr 1fr; 18 + } 19 +} 20 + 21 +@media screen and (min-width: 900px) { 22 + .applications { 23 + grid-template-columns: 1fr 1fr 1fr; 24 + } 25 +} 26 + 27 +@media screen and (min-width: 1200px) { 28 + .applications { 29 + grid-template-columns: 1fr 1fr 1fr 1fr; 30 + } 31 +} 32 + 33 +@media screen and (min-width: 1800px) { 34 + .applications { 35 + grid-template-columns: 1fr 1fr 1fr 1fr 1fr; 36 + } 37 +} 38 + 39 +.application { 40 + border: 1px solid var(--color-support-light); 41 + padding: 1rem; 42 + height: 100%; 43 +} 44 + 45 +.application img { 46 + display: block; 47 + margin: 0 auto 1.5rem auto; 48 +} 49 + 50 +.application .title { 51 + text-align: center; 52 + height: 3em; 53 +} 54 + 55 +.application .tags { 56 + display: flex; 57 + justify-content: space-around; 58 + margin-bottom: 1.5rem; 59 +} 60 + 61 +.application .tags span { 62 + font-size: .8rem; 63 + border: 1px solid var(--color-support-dark); 64 + padding: .2rem .3rem; 65 + border-radius: var(--border-radius-default); 66 +} 67 + 68 +.application .description { 69 + text-align: center; 70 +} 71 +</style> 72 + 73 + 74 +<div class="applications"> 75 + #foreach($application in $applications) 76 + #set($app = $xwiki.getDocument($application)) 77 + #set($URL = $app.display('url')) 78 + #set($title = $app.display('title')) 79 + #set($category = $app.display('category')) 80 + <div> 81 + <div class="application"> 82 + #if($app.getAttachment('logo.png').isImage()) 83 + <img src="$app.getAttachmentURL('logo.png')" width="75" height="75" alt="$title.replace('"', '\"')"> 84 + #else 85 + <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mN89x8AAuEB74Y0o2cAAAAASUVORK5CYII=" width="75" height="75" alt=""> 86 + #end 87 + <div class="tags"><span>$category</span></div> 88 + <h3 class="title">$title</h3> 89 + ##<a href="$URL">$URL</a> 90 + <p class="description">$!app.getValue('description')</p> 91 + ##<input id="$application.concat('-visibility')" type="checkbox" #if($app.getValue('private') == 1)checked#end disabled /><label for="$application.concat('-visibility')">Private</label> 92 + 93 + <div> 94 + ##$app.getValue('maintainers') 95 + ##$app.display('maintainers') 96 + </div> 97 + 98 + </div> 99 + </div> 100 + #end 101 +</div> 28 28 {{/html}} 29 29 {{/velocity}}