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,281 +1,462 @@ 1 -{{velocity}} 2 -#set ($discard = $doc.use('InstalledApp.Code.InstalledAppClass')) 3 -#set($query = 'select doc from Document doc, doc.object(ExternalApps.Code.ExternalAppsClass) as app') 4 -#set($applications = $services.query.xwql($query).addFilter('hidden').execute()) 5 -#if ($xcontext.action == 'edit') 6 -#set ($discard = $xwiki.ssx.use('Collaboratory.Apps.IFrameApp.Code.IFrameAppCss')) 7 -#set ($discardjs = $xwiki.jsx.use('Collaboratory.Apps.IFrameApp.Code.IFrameAppJs')) 1 +{{include reference="Collaboratory.Collaboratory\.Apps.Apps.Code.AppsMacros"/}} 8 8 9 -#macro( applications $applications) 10 -<div class="applications"> 11 - #foreach($application in $applications) 12 - #set($selectField = $application.toString().concat('-selected')) 13 - #set($detailsField = $application.toString().concat('-details')) 14 - <div class="application"> 15 - ## TODO: if not in edit mode, do not define the input + fieldname 16 - <input type="radio" data-type="select" name="InstalledApp.Code.InstalledAppClass_0_app" id="$selectField" value="$application" /> 17 - <input type="checkbox" data-type="details" name="detailedView" id="$detailsField" /> 18 - <label for="$detailsField" class="details-overlay"></label> 19 - #application( $application $selectField $detailsField) 20 - </div> 21 - #end 22 -</div> 23 -#end 3 +(% class="applications" %) 4 +((( 5 +(% class="application" %) 6 +((( 7 +(% class="application-content" %) 8 +((( 9 +(% class="app-logo" %) 10 +((( 11 + 12 +))) 24 24 25 -#macro( application $application $selectField $detailsField) 26 - #set($app = $xwiki.getDocument($application)) 27 - #set($title = $app.getDisplayTitle()) 28 - <div class="application-content"> 29 - #if($app.getAttachment('logo.png').isImage()) 30 - <img src="$app.getAttachmentURL('logo.png')" width="75" height="75" alt="$app.getValue('title').replace('"', '\"')"> 31 - #else 32 - <img 33 - src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mN89x8AAuEB74Y0o2cAAAAASUVORK5CYII=" 34 - width="75" 35 - height="75" 36 - alt="" 37 - > 38 - #end 39 - <div class="tags"><span>$app.getValue('category')</span></div> 40 - <h3 class="title">$title</h3> 41 - <p class="description">$!app.getValue('description')</p> 42 - <div class="application-buttons"> 43 - <label for="$detailsField" class="btn label-more"></label> 44 - <label for="$selectField" class="btn btn-primary choose-app">Choose this App</label> 45 - </div> 46 - <div class="details"> 47 - <h4>Maintainers</h4> 48 - [list of maintainers] 49 - <h4>Documentation</h4> 50 - App documentation link 51 - <h4>URL</h4> 52 - $app.getValue('url') 53 - </div> 54 - </div> 55 -#end 14 +(% class="tags" %) 15 +((( 16 +Brain Simulation Platform 17 +))) 56 56 57 -{{html wiki="true"}} 58 -(% class="xform" %) 19 +(% class="title" %) 20 +=== Model Catalog === 21 + 22 +(% class="description" %) 23 +A catalog of models developed and/or used in HBP 24 + 25 +(% class="application-buttons" %) 59 59 ((( 60 - ; <label#if ($xcontext.action == 'edit') for="ExternalApps.Code.ExternalAppsClass_0_title"#end>$escapetool.xml($doc.displayPrettyName('title', false, false))</label>## 61 - (% class="xHint" %)$services.localization.render('Required. This is how the item will be displayed in the navigation') 62 - : $doc.display('title') 27 + 63 63 ))) 64 -{{/html}} 65 65 66 -{{html clean="false"}} 30 +(% class="details" %) 31 +((( 32 +==== Maintainers ==== 67 67 68 -##{{html clean="false"}} 69 -##set ($displayDocExtra = false) 70 -<style> 71 -#document-title { 72 - visibility: hidden; 73 -} 34 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 74 74 75 -.applications { 76 - display: grid; 77 - grid-gap: 20px; 78 -} 36 +==== Documentation ==== 79 79 80 -@media screen and (min-width: 640px) { 81 - .applications { 82 - grid-template-columns: 1fr 1fr; 83 - } 84 -} 85 -/* 86 -@media screen and (min-width: 900px) { 87 - .applications { 88 - grid-template-columns: 1fr 1fr 1fr; 89 - } 90 -} 91 -*/ 38 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 92 92 93 -@media screen and (min-width: 1200px) { 94 - .applications { 95 - grid-template-columns: 1fr 1fr 1fr; 96 - } 97 -} 40 +==== URL ==== 98 98 99 -@media screen and (min-width: 1800px) { 100 - .applications { 101 - grid-template-columns: 1fr 1fr 1fr 1fr; 102 - } 103 -} 104 -.application { 105 -background: var(--color-support-light); 106 -} 42 +[[https:~~/~~/validation-v1.brainsimulation.eu/>>url:https://validation-v1.brainsimulation.eu/]] 43 +))) 44 +))) 45 +))) 107 107 108 -.application-content { 109 - border: 1px solid var(--color-support-light); 110 - background: var(--color-white); 111 - padding: 1rem; 112 - height: 100%; 113 - font-weight: normal; 114 - display: block; 115 - position: relative; 116 - padding-bottom: 3rem; 117 -} 47 +(% class="application" %) 48 +((( 49 +(% class="application-content" %) 50 +((( 51 +(% class="app-logo" %) 52 +((( 53 + 54 +))) 118 118 119 -.application-content .details { 120 - display: none; 121 -} 56 +(% class="tags" %) 57 +((( 58 +Neuromorphic 59 +))) 122 122 61 +(% class="title" %) 62 +=== PyNN model builder (staging) === 123 123 124 -.application .application-buttons { 125 - display: flex; 126 - position: absolute; 127 - bottom: 0px; 128 - left: 0; 129 - right:0; 130 -} 64 +(% class="description" %) 65 +A graphical interface for building and simulating spiking network models 131 131 132 -.application .application-buttons .btn { 133 - width: 50%; 134 - margin: 0; 135 - border-radius: 0 !important; 136 -} 67 +(% class="application-buttons" %) 68 +((( 69 + 70 +))) 137 137 138 -.application img { 139 - display: block; 140 - margin: 0 auto 1.5rem auto; 141 -} 72 +(% class="details" %) 73 +((( 74 +==== Maintainers ==== 142 142 143 -.application .title { 144 - text-align: center; 145 - height: 3em; 146 -} 76 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 147 147 148 -.application .tags { 149 - display: flex; 150 - justify-content: space-around; 151 - margin-bottom: 1.5rem; 152 -} 78 +==== Documentation ==== 153 153 154 -.application .tags span { 155 - font-size: .8rem; 156 - border: 1px solid var(--color-support-dark); 157 - padding: .2rem .3rem; 158 - border-radius: var(--border-radius-default); 159 -} 80 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 160 160 161 -.application .description { 162 - text-align: center; 163 -} 82 +==== URL ==== 164 164 165 - .applicationsinput[type="radio"],166 - .applications input[type="checkbox"]{167 - display: none;168 - }84 +[[https:~~/~~/nmpi-staging.hbpneuromorphic.eu/gui/app.html#!/home>>url:https://nmpi-staging.hbpneuromorphic.eu/gui/app.html#!/home]] 85 +))) 86 +))) 87 +))) 169 169 89 +(% class="application" %) 90 +((( 91 +(% class="application-content" %) 92 +((( 93 +(% class="app-logo" %) 94 +((( 95 + 96 +))) 170 170 171 -.applications input[data-type="select"]:checked ~ div.application-content { 172 - border: 1px solid var(--color-primary); 173 -} 98 +(% class="tags" %) 99 +((( 100 +Neuromorphic 101 +))) 174 174 103 +(% class="title" %) 104 +=== Neuromorphic Computing Platform Resource Manager === 175 175 176 -.applications input[data-type="details"]:checked ~ div.application-content { 177 - position: fixed; 178 - top: 50%; 179 - left: 50%; 180 - width: 80vw; 181 - height: 80vh; 182 - margin-left:-40vw; 183 - margin-top: -40vh; 184 - background: #FFF; 185 - z-index: 255; 186 - overflow: auto; 187 -} 106 +(% class="description" %) 107 +An application for requesting access to the HBP Neuromorphic Computing Systems and for tracking quota usage once access is granted. 188 188 189 -.label-more { 190 - cursor: zoom-in; 191 -} 192 -.label-more::before { 193 - content: "More"; 194 -} 195 -.applications input[data-type="details"]:checked ~ .application-content .details { 196 - display: block; 197 -} 109 +(% class="application-buttons" %) 110 +((( 111 + 112 +))) 198 198 199 -.details-overlay { 200 - display: none; 201 - cursor: zoom-out; 202 -} 114 +(% class="details" %) 115 +((( 116 +==== Maintainers ==== 203 203 204 -.applications input[data-type="details"]:checked ~ .details-overlay { 205 - width:100vw; 206 - height: 100vh; 207 - background: var(--color-support-dark); 208 - opacity: .7; 209 - content: ''; 210 - display: block; 211 - position: fixed; 212 - margin: 0; 213 - top:0; 214 - left:0; 215 - z-index: 254; 216 -} 118 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 217 217 218 -.applications input[data-type="details"]:checked ~ div .label-more { 219 - cursor: zoom-out; 220 -} 221 -.applications input[data-type="details"]:checked ~ div .label-more::before { 222 - content:"Close"; 223 -} 224 -</style> 120 +==== Documentation ==== 225 225 122 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 226 226 124 +==== URL ==== 227 227 228 -<div class="xform"> 229 -<dl> 230 -<dt> 231 -<label>Choose an application in the list below</label> 232 -<dt> 233 -</dl> 234 -</div> 126 +[[https:~~/~~/quotas.hbpneuromorphic.eu/app/>>url:https://quotas.hbpneuromorphic.eu/app/]] 127 +))) 128 +))) 129 +))) 235 235 236 -#applications( $applications ) 131 +(% class="application" %) 132 +((( 133 +(% class="application-content" %) 134 +((( 135 +(% class="app-logo" %) 136 +((( 137 + 138 +))) 237 237 238 -<script> 239 -document.addEventListener('DOMContentLoaded', function() { 240 - let saveAndView = document.querySelector('input[name="action_save"]'); 241 - Array.from(document.querySelectorAll('label.choose-app')).forEach(function(button){ 242 - button.addEventListener('click', function() { setTimeout(function() { saveAndView.click() }, 250)}); 243 - }); 244 -}); 245 -</script> 140 +(% class="tags" %) 141 +((( 142 +Neuromorphic 143 +))) 246 246 247 -{{/html}} 248 -#else 249 -##set($discard = $doc.use('InstalledApp.Code.InstalledAppClass')) 250 -#set($appId = $doc.display('app')) 251 -#set($app = $xwiki.getDocument($appId)) 252 -#*{{html clean="false"}} 253 -<style> 254 -#external-app { 255 -width: 100%; 256 -height: 100vh; 257 -} 258 -</style> 259 -<iframe id="external-app" src="$app.getValue('url')"></iframe> 260 -{{/html}} 261 -*# 145 +(% class="title" %) 146 +=== Neuromorphic Computing Platform Job Manager (staging) === 262 262 263 -{{html clean="false"}} 264 -#set ($discard = $xwiki.ssx.use('Collaboratory.Apps.IFrameApp.Code.IFrameAppCss')) 265 -#set ($discardjs = $xwiki.jsx.use('Collaboratory.Apps.IFrameApp.Code.IFrameAppJs')) 266 -<style> 267 -#iframeApp-container { 268 -background: #FFF; 269 -} 270 -</style> 148 +(% class="description" %) 149 +Staging version of Job Manager app 271 271 272 -<div id="iframeApp-container"> 273 - <div class="app-toolbar"> 274 - <button id="iframeApp-fullscreen"><span class="fa fa-arrows-alt"></span></button> 275 - </div> 276 - <iframe id="iframeApp" src="$app.get('url')"></iframe> 277 -</div> 278 -{{/html}} 279 -#end 151 +(% class="application-buttons" %) 152 +((( 153 + 154 +))) 280 280 281 -{{/velocity}} 156 +(% class="details" %) 157 +((( 158 +==== Maintainers ==== 159 + 160 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 161 + 162 +==== Documentation ==== 163 + 164 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 165 + 166 +==== URL ==== 167 + 168 +[[https:~~/~~/nmpi-staging.hbpneuromorphic.eu/app/#/queue>>url:https://nmpi-staging.hbpneuromorphic.eu/app/#/queue]] 169 +))) 170 +))) 171 +))) 172 + 173 +(% class="application" %) 174 +((( 175 +(% class="application-content" %) 176 +((( 177 +(% class="app-logo" %) 178 +((( 179 + 180 +))) 181 + 182 +(% class="tags" %) 183 +((( 184 + 185 +))) 186 + 187 +(% class="title" %) 188 +=== TestNewApp === 189 + 190 + 191 +(% class="application-buttons" %) 192 +((( 193 + 194 +))) 195 + 196 +(% class="details" %) 197 +((( 198 +==== Maintainers ==== 199 + 200 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 201 + 202 +==== Documentation ==== 203 + 204 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 205 + 206 +==== URL ==== 207 +))) 208 +))) 209 +))) 210 + 211 +(% class="application" %) 212 +((( 213 +(% class="application-content" %) 214 +((( 215 +(% class="app-logo" style="background-image:url('/bin/download/ExternalApps/Unicorn%20App/logo.png')" %) 216 +((( 217 + 218 +))) 219 + 220 +(% class="tags" %) 221 +((( 222 +Tasks 223 +))) 224 + 225 +(% class="title" %) 226 +=== Dragon App === 227 + 228 +(% class="description" %) 229 +This is a fake app for testing purpose. 230 + 231 +(% class="application-buttons" %) 232 +((( 233 + 234 +))) 235 + 236 +(% class="details" %) 237 +((( 238 +==== Maintainers ==== 239 + 240 +* [[François Bougault>>path:/bin/view/XWiki/bougault]] 241 + 242 +==== Documentation ==== 243 + 244 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 245 + 246 +==== URL ==== 247 + 248 +[[something that should not be display as an iframe>>path:something that should not be display as an iframe]] 249 +))) 250 +))) 251 +))) 252 + 253 +(% class="application" %) 254 +((( 255 +(% class="application-content" %) 256 +((( 257 +(% class="app-logo" %) 258 +((( 259 + 260 +))) 261 + 262 +(% class="tags" %) 263 +((( 264 + 265 +))) 266 + 267 +(% class="title" %) 268 +=== Toto === 269 + 270 +(% class="description" %) 271 +Lorem ipsim 272 + 273 +(% class="application-buttons" %) 274 +((( 275 + 276 +))) 277 + 278 +(% class="details" %) 279 +((( 280 +==== Maintainers ==== 281 + 282 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 283 + 284 +==== Documentation ==== 285 + 286 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 287 + 288 +==== URL ==== 289 +))) 290 +))) 291 +))) 292 + 293 +(% class="application" %) 294 +((( 295 +(% class="application-content" %) 296 +((( 297 +(% class="app-logo" %) 298 +((( 299 + 300 +))) 301 + 302 +(% class="tags" %) 303 +((( 304 +Neuroinformatics 305 +))) 306 + 307 +(% class="title" %) 308 +=== Neural Activity Resource === 309 + 310 +(% class="description" %) 311 +An app for browsing, viewing and searching neural activity datasets (e.g. electrophysiology, calcium imaging, simulation results, etc.) 312 + 313 +(% class="application-buttons" %) 314 +((( 315 + 316 +))) 317 + 318 +(% class="details" %) 319 +((( 320 +==== Maintainers ==== 321 + 322 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 323 + 324 +==== Documentation ==== 325 + 326 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 327 + 328 +==== URL ==== 329 + 330 +[[https:~~/~~/nar-browser-app.brainsimulation.eu/app/>>url:https://nar-browser-app.brainsimulation.eu/app/]] 331 +))) 332 +))) 333 +))) 334 + 335 +(% class="application" %) 336 +((( 337 +(% class="application-content" %) 338 +((( 339 +(% class="app-logo" %) 340 +((( 341 + 342 +))) 343 + 344 +(% class="tags" %) 345 +((( 346 +Neuromorphic 347 +))) 348 + 349 +(% class="title" %) 350 +=== Neuromorphic Computing Platform Job Manager v2 === 351 + 352 +(% class="description" %) 353 +Neuromorphic Computing Platform Job Manager (version 2) 354 + 355 +(% class="application-buttons" %) 356 +((( 357 + 358 +))) 359 + 360 +(% class="details" %) 361 +((( 362 +==== Maintainers ==== 363 + 364 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 365 + 366 +==== Documentation ==== 367 + 368 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 369 + 370 +==== URL ==== 371 + 372 +[[https:~~/~~/nmpi.hbpneuromorphic.eu/app/#/queue>>url:https://nmpi.hbpneuromorphic.eu/app/#/queue]] 373 +))) 374 +))) 375 +))) 376 + 377 +(% class="application" %) 378 +((( 379 +(% class="application-content" %) 380 +((( 381 +(% class="app-logo" %) 382 +((( 383 + 384 +))) 385 + 386 +(% class="tags" %) 387 +((( 388 +Neuromorphic 389 +))) 390 + 391 +(% class="title" %) 392 +=== Neuromorphic Computing Platform Guidebook === 393 + 394 +(% class="description" %) 395 +A manual for users of the HBP Neuromorphic Computing Platform 396 + 397 +(% class="application-buttons" %) 398 +((( 399 + 400 +))) 401 + 402 +(% class="details" %) 403 +((( 404 +==== Maintainers ==== 405 + 406 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 407 + 408 +==== Documentation ==== 409 + 410 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 411 + 412 +==== URL ==== 413 + 414 +[[https:~~/~~/electronicvisions.github.io/hbp-sp9-guidebook/>>url:https://electronicvisions.github.io/hbp-sp9-guidebook/]] 415 +))) 416 +))) 417 +))) 418 + 419 +(% class="application" %) 420 +((( 421 +(% class="application-content" %) 422 +((( 423 +(% class="app-logo" %) 424 +((( 425 + 426 +))) 427 + 428 +(% class="tags" %) 429 +((( 430 +Neuroinformatics 431 +))) 432 + 433 +(% class="title" %) 434 +=== KnowledgeSpace === 435 + 436 +(% class="description" %) 437 +A community encyclopedia linking brain research concepts to data, models, and literature. 438 + 439 +(% class="application-buttons" %) 440 +((( 441 + 442 +))) 443 + 444 +(% class="details" %) 445 +((( 446 +==== Maintainers ==== 447 + 448 +* [[$user.getValue('first_name') $user.getValue('last_name')>>path:/bin/view/ExternalApps/]] 449 + 450 +==== Documentation ==== 451 + 452 +[[$app.getValue('documentation')>>path:$app.getValue('documentation')]] 453 + 454 +==== URL ==== 455 + 456 +[[https:~~/~~/knowledge-space.org/>>url:https://knowledge-space.org/]] 457 +))) 458 +))) 459 +))) 460 +))) 461 + 462 +