diff options
author | Eric Barboni <skygo@apache.org> | 2015-11-13 18:01:52 +0100 |
---|---|---|
committer | Eric Barboni <skygo@apache.org> | 2015-11-13 18:01:52 +0100 |
commit | b960b96e324cba97ee2a9a371a6df321c3cd622f (patch) | |
tree | b336eb1a36a79222d2255d559c073fe3189fb1fc /archiva-modules/archiva-web/archiva-rest/archiva-rest-api | |
parent | 44093a57de41344683d5121e36ba8d7a6da52cb1 (diff) | |
download | archiva-b960b96e324cba97ee2a9a371a6df321c3cd622f.tar.gz archiva-b960b96e324cba97ee2a9a371a6df321c3cd622f.zip |
change style and template to have a kind of enunciate 1.x style that we can use
Diffstat (limited to 'archiva-modules/archiva-web/archiva-rest/archiva-rest-api')
3 files changed, 1703 insertions, 1 deletions
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/archiva.css b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/archiva.css new file mode 100644 index 000000000..8f3a291d4 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/archiva.css @@ -0,0 +1,765 @@ +/* +Copyright 2015 The Apache Software Foundation. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +/* + Created on : 13 nov. 2015, 13:47:57 + Author : barboni +*/ +/** + * html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline) + * v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark + * html5doctor.com/html-5-reset-stylesheet/ + */ + +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, +small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, figcaption, figure, +footer, header, hgroup, menu, nav, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + +blockquote, q { quotes: none; } + +blockquote:before, blockquote:after, +q:before, q:after { content: ""; content: none; } + +ins { background-color: #ff9; color: #000; text-decoration: none; } + +mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; } + +del { text-decoration: line-through; } + +abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; } + +table { border-collapse: collapse; border-spacing: 0; } + +hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } + +input, select { vertical-align: middle; } + + +/** + * Font normalization inspired by YUI Library's fonts.css: developer.yahoo.com/yui/ + */ + +body { font:13px/1.231 sans-serif; *font-size:small; } /* Hack retained to preserve specificity */ +select, input, textarea, button { font:99% sans-serif; } + +/* Normalize monospace sizing: + en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome */ +pre, code, kbd, samp { font-family: monospace, sans-serif; } + + +/** + * Minimal base styles. + */ + +/* Always force a scrollbar in non-IE */ +html { overflow-y: scroll; } + +/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */ +a:hover, a:active { outline: none; } + +ul, ol { margin-left: 2em; } +ol { list-style-type: decimal; } + +/* Remove margins for navigation lists */ +nav ul, nav li { margin: 0; list-style:none; list-style-image: none; } + +small { font-size: 85%; } +strong, th { font-weight: bold; } + +td { vertical-align: top; } + +/* Set sub, sup without affecting line-height: gist.github.com/413930 */ +sub, sup { font-size: 75%; line-height: 0; position: relative; } +sup { top: -0.5em; } +sub { bottom: -0.25em; } + +pre { + /* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */ + padding: 15px; +} + +textarea { overflow: auto; } /* www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/ */ + +.ie6 legend, .ie7 legend { margin-left: -7px; } + +/* Align checkboxes, radios, text inputs with their label by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css */ +input[type="radio"] { vertical-align: text-bottom; } +input[type="checkbox"] { vertical-align: bottom; } +.ie7 input[type="checkbox"] { vertical-align: baseline; } +.ie6 input { vertical-align: text-bottom; } + +/* Hand cursor on clickable input elements */ +label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; } + +/* Webkit browsers add a 2px margin outside the chrome of form elements */ +button, input, select, textarea { margin: 0; } + +/* Colors for form validity */ +input:valid, textarea:valid { } +input:invalid, textarea:invalid { + border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red; +} +.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; } + + +/* These selection declarations have to be separate + No text-shadow: twitter.com/miketaylr/status/12228805301 + Also: hot pink! */ +::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; } +::selection { background:#FF5E99; color:#fff; text-shadow: none; } + +/* j.mp/webkit-tap-highlight-color */ +a:link { -webkit-tap-highlight-color: #FF5E99; } + +/* Make buttons play nice in IE: + www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */ +button { width: auto; overflow: visible; } + +/* Bicubic resizing for non-native sized IMG: + code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */ +.ie7 img { -ms-interpolation-mode: bicubic; } + +/** + * You might tweak these.. + */ + +body, select, input, textarea { + /* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */ + color: #444; + /* Set your base font here, to apply evenly */ + /* font-family: Georgia, serif; */ +} + +/* Headers (h1, h2, etc) have no default font-size or margin; define those yourself */ +h1, h2, h3, h4, h5, h6 { font-weight: bold; } + +a, a:active, a:visited { color: #607890; } +a:hover { color: #036; } + + +/** + * Primary styles + * + * Author: + */ + + +body{text-align:center;margin:0} +.container{text-align:left;position:relative;padding:0;margin:0 auto;width:800px} +.column{float:left;margin:0 5px 0 0;padding:0} +* html .column{overflow-x:hidden} +.border{padding-right:2px;margin-right:2px;border-right:1px solid #ddd} +.span-1{width:35px} +.span-2{width:75px} +.span-3{width:115px} +.span-4{width:155px} +.span-5{width:195px} +.span-6{width:235px} +.span-7{width:275px} +.span-8{width:315px} +.span-9{width:355px} +.span-10{width:395px} +.span-11{width:435px} +.span-12{width:475px} +.span-13{width:515px} +.span-14{width:555px} +.span-15{width:595px} +.span-16{width:635px} +.span-17{width:675px} +.span-18{width:715px} +.span-19{width:755px} +.span-20{width:795px} +.span-21{width:835px} +.span-22{width:875px} +.span-23{width:915px} +.span-24{width:955px;margin:0} +.last{margin-right:0} +.append-1{padding-right:40px} +.append-2{padding-right:80px} +.append-3{padding-right:120px} +.append-4{padding-right:160px} +.append-5{padding-right:200px} +.prepend-1{padding-left:40px} +.prepend-2{padding-left:80px} +.prepend-3{padding-left:120px} +.prepend-4{padding-left:160px} +.prepend-5{padding-left:200px} +.clear{display:inline-block} +.clear:after,.container:after{content:".";display:block;height:0;clear:both;visibility:hidden} +* html .clear{height:1%} +.clear{display:block} +h1,h2,h3,h4,h5,h6, p,ul,ol,dl,pre,form{padding-left:5px;padding-right:5px} +table{margin-left:5px;margin-right:5px} +img{margin:0 0 18px 0} +.pull-1{margin-left:-70px} +.pull-2{margin-left:-140px} +.pull-3{margin-left:-210px} +.push-0{margin:0 0 0 18px;float:right} +.push-1{margin:0 -70px 0 18px;float:right} +.push-2{margin:0 -140px 0 18px;float:right} +.push-3{margin:0 -210px 0 18px;float:right} +.deprecated{text-decoration: line-through} + +/* @end */ + +/* @group typography.css */ + +body { + font-size: 12px; + line-height: 18px; /* Do a complete find/replace on "18px" to change this */ +} + + +/* Default fonts */ +h1,h2,h3, +h4,h5,h6 { font-family: "Helvetica Neue", Helvetica, sans-serif; } +body { font-family: "Lucida Grande", Calibri, Arial, sans-serif; } +pre { font-family: Monaco, "Courier New", monospace; } +code { font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Monaco, Courier, monospace; } + + +/* Headings +-------------------------------------------------------------- */ + +h1,h2,h3,h4,h5,h6 { + color:#111; + clear:both; +} + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + color: #111; + text-decoration: none; +} + +h1 { font-size: 30px; line-height:36px; padding:10px 0 18px 0; } +h2 { font-size: 20px; line-height:36px; } +h3 { font-size: 12px; line-height:24px; } +h4 { font-size: 12px; font-weight:bold; } +h5 { font-size: 12px; font-weight:bold; } +h6 { font-size: 12px; } + + +/* Text elements +-------------------------------------------------------------- */ + +p { margin: 0 0 18px 0; text-align:justify; } +p.last { margin-bottom:0; } +p img { float: left; margin:18px 18px 18px 0; padding:0; } +p img.top { margin-top:0; } /* Use this if the image is at the top of the <p>. */ + +ul, ol { margin: 0 0 18px 0; } +ul { list-style-type:circle; } +ol { list-style-type: decimal; } +dl { margin: 0 0 18px 0; } +dl dt { font-weight: bold; } + +a { color: #A68000; text-decoration: underline; outline: none; } +a:hover { color: #000; } + +blockquote { margin: 0 0 18px 18px; color: #666; font-style: italic; } +strong { font-weight: bold; } +em { font-style: italic; } +pre { margin-bottom: 18px; background: #eee; border:1px solid #ddd; padding:16px; } +code { + background: #eee; + border: 1px solid #ddd; + color: #555; + display: block; + font: normal 1.1em "Lucida Sans Unicode",serif; + margin-bottom: 12px; + padding: 8px 10px; + white-space: pre; + overflow: auto; + max-height: 300px; +} + +/* Use this to create a horizontal ruler across a column. */ +hr { + background: #FFDF73; + color: #FFDF73; + clear: both; + float: none; + width: 100%; + height: 2px; + margin: 0 0 16px 0; + border: none; +} + + +/* Tables +-------------------------------------------------------------- */ + +table { margin-bottom: 16px; border-top:1px solid #ddd; border-left:1px solid #ddd; } +th,td { height: 13px; padding:2px 4px; border-bottom:1px solid #ddd; border-right:1px solid #ddd; } +th { font-weight:bold; } + + +/* Some default classes +-------------------------------------------------------------- */ + +p.small { font-size: 10px; margin-bottom: 18px; } +p.large { font-size: 14px; line-height:36px; } +p.quiet { color: #666; } +.hide { display: none; } + + +.caps { + font-variant: small-caps; + letter-spacing: 1px; + text-transform: lowercase; +} + +/* @end */ + +/* @group styles */ + +/* @group Header */ + +#header { + padding-top: 1.8em; + margin-bottom: 1.8em; +} +#site-name { + line-height: 36px; +} +#site-name a { + font-variant: small-caps; + font-size: 3em; + letter-spacing: 3px; + text-decoration: none; + color: #444; +} +#site-name a:visited { + color: #444; + text-decoration: none; +} +#site-name a strong { + color: black; +} +#site-description { + padding-top: 1.4em; + padding-bottom: 1.4em; +} +#site-description h3 { + font-size: 2em; + margin: 0; + font-weight: normal; +} +#site-description p#read-more { + text-align: right; + margin: 6px 0 0; +} +#site-description p#read-more a, #site-description p#read-more a:visited { + font-size: 1.4em; + color: #515151; +} +#site-description p#read-more a:hover { + color: #919191; +} +#site-description { + background-color: #4188D2; + border-top: 2px solid #fff; + color: #444; +} +/* @end */ + +/* @group Navigation */ + +ul.navigation, ul.navigation li { + list-style: none; +} +ul.navigation li { + display: inline; + margin-right: 1.3em; +} + +#primary { + line-height: 72px; + margin-bottom: -24px; + text-align: right; +} +#primary li { + padding-bottom: 5px; +} +#primary a { + color: #444; + text-decoration: none; + font-size: 1.2em; +} +#primary li:hover { + border-bottom: 6px solid #FFDF73; +} +#secondary { + padding-top: 7px; + background-color: #FFDF73; +} +#secondary ul { + list-style: none; + margin-bottom: 7px; +} +#secondary ul li { + display: inline; + list-style: none; + margin-right: 0; +} +#secondary ul li a { + color: #515151; + text-decoration: none; + padding: 8px 24px 8px 24px; + margin-left: -4px; +} +#secondary ul li a.selected { + background-color: #515151; + color: #fff; +} +#secondary ul a:hover { + background: #fff4d0; +} +/* + xBreadcrumbs (Extended Breadcrumbs) jQuery Plugin + � 2009 ajaxBlender.com + For any questions please visit www.ajaxblender.com + or email us at support@ajaxblender.com +*/ +.xbreadcrumbs { + position: relative; + z-index: 1000; +} +.xbreadcrumbs LI UL { + position: absolute; + float: left; +} +.xbreadcrumbs, .xbreadcrumbs LI, .xbreadcrumbs UL, .xbreadcrumbs UL LI { + list-style: none; + margin: 0; + padding: 0; +} +.xbreadcrumbs { clear: both; } +.xbreadcrumbs, .xbreadcrumbs LI { + float: left; +} +.xbreadcrumbs UL { + display: none; +} + +/* Base style of xBreadcrumbs */ +/* Top Level */ +.xbreadcrumbs { + background: #FFDF73; + width: 100%; +} +.xbreadcrumbs LI { + border-right: none; + padding: 5px 15px 5px 10px; + height: 16px; +} +.xbreadcrumbs LI.current { + background: none; +} +.xbreadcrumbs LI UL LI { + background: none; +} +.xbreadcrumbs LI A { + font-size: 11px; + color: #515151; + text-decoration: none; + padding-right: 2em; +} +.xbreadcrumbs LI A.home { + background: url( home.gif ) no-repeat left center; + padding-left: 20px; +} +.xbreadcrumbs LI A:HOVER, .xbreadcrumbs LI.hover A { + color: #000; +} +/* Top Level - Current Page */ +.xbreadcrumbs LI.current A { + color: #333333; + font-weight: bold; +} +/* Sub-level */ +.xbreadcrumbs LI UL { + padding: 3px; + background: #fff4d0; + font-size: 11px; + min-width: 180px; + max-height: 500px; + overflow: auto; + top: 25px; +} +.xbreadcrumbs LI UL LI { + float: left; + width: 100%; + border-right: none; + height: auto; +} +.xbreadcrumbs LI UL LI A { + text-decoration: none; + color: #666666 !important; + display: block; + padding: 4px; + border-bottom: 1px dotted #666666; +} +.xbreadcrumbs LI UL LI:last-child A { + border-bottom: none; +} +.xbreadcrumbs LI UL LI A:HOVER { + background: #fffbee; +} +body.advisories #nav-advisories,body.community #nav-community,body.blog #nav-blog,body.code #nav-code,body.about #nav-about,body.documentation #nav-documentation{border-bottom: 6px solid #FFDF73;} +/* @end */ + +/* @group Main */ + +#main { + font-size: 1.2em; + line-height: 1.5em; + color: #1E250D; +} +#main h2 { + font-size: 1.8em; + font-weight: normal; + border-bottom: 3px solid #c2b2d4; + padding-top: 10px; + padding-left: 0; + padding-right: 0; + margin-bottom: 6px; +} +#main h3 { + font-size: 1.4em; + font-weight: normal; + border-bottom: 4px solid #f7f7f7; + padding: 0 0 5px; + margin-bottom: 0.4em; +} +#main h3 .caps { + font-size: 1.3em; +} +#main .hfeed .hentry { + list-style: none; + list-style-type: none; + margin-bottom: 2em; + border-bottom: 4px solid #eee; + padding-bottom: 1em; + clear: both; +} +#main .hfeed .hentry:last-child { + border-bottom: none; +}#main .hfeed .hentry .entry-title { + border-bottom: none; +} +#main hr { + color: #FFDF73; + background-color: #FFDF73; + border-color: #FFDF73; +} +#main p { + text-align: left; + padding-left: 0; + padding-right: 0; +} +#main img { + max-width: 740px; +} +#main ol { + margin-left: 1.5em; +} +#main ul { + margin-left: 1.2em; + list-style: disc; +} +#main .intro { + font-size: 1.2em; + color: #515151; + border-bottom: 3px solid #f8fbfd; +} +#main .get-started a { + text-align: center; + background-color: #8942D6; + color: #fff; + display: block; + border-radius: 12px; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + padding: 8px 6px; + width: 10em; + font-size: 1.4em; + margin-left: auto; + margin-right: auto; + text-decoration: none; +} +#main .get-started a:hover { + background-color: #9D69D6; +} +#main pre { + max-height: 600px; + overflow: auto; +} + +/* @end */ +/* @group Footer */ + +#footer { + color: #666; + font-size: 11px; + border-top: 4px double #e7e7e7; + margin-top: 2em; + padding-top: 1.2em; + text-align: center; +} +/*#footer a { + color: #787878; + text-decoration: none; + border-bottom: 1px dotted #787878; +} +#footer a:hover { + border-bottom: 1px solid #787878; +}*/ + +/* @end */ + +.update, .note, .notice, .alert { +margin: 10px 0 20px; +padding: 5px 20px 5px 20px; +clear: both; +} +.note { + background: #e6ecf2; + border-top: 2px solid #8996ad; + border-bottom: 2px solid #8996ad; +} +.update, .notice { + background: #92ED6B; + border-top: 2px solid #2B8E00; + border-bottom: 2px solid #2B8E00; +} +.alert { + background: #ffbfbf; + border-top: 2px solid #f33; + border-bottom: 2px solid #f33; +} +.alert a { + color:#f00; +} +.alert a:visited { + color: #f33; +} + +/* JavaDoc-Specific Styles */ +.TableHeadingColor { text-align: left; border-width: 0 } +.TableSubHeadingColor { text-align: left; border-width: 0 } +.TableRowColor { text-align: left; border-width: 0 } +.NavBarCell1 { text-align: left; border-width: 0 } +.NavBarCell1Rev { text-align: left; border-width: 0 } +.FrameItemFont { text-align: left; } + +/* @end */ + + + +/** + * Non-semantic helper classes: please define your styles before this section. + */ + +/* For image replacement */ +.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; } + +/* Hide for both screenreaders and browsers: + css-discuss.incutio.com/wiki/Screenreader_Visibility */ +.hidden { display: none; visibility: hidden; } + +/* Hide only visually, but have it available for screenreaders: by Jon Neal. + www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden */ +.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } +/* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: drupal.org/node/897638 */ +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } + +/* Hide visually and from screenreaders, but maintain layout */ +.invisible { visibility: hidden; } + +/* The Magnificent Clearfix: Updated to prevent margin-collapsing on child elements. + j.mp/bestclearfix */ +.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; } +.clearfix:after { clear: both; } +/* Fix clearfix: blueprintcss.lighthouseapp.com/projects/15318/tickets/5-extra-margin-padding-bottom-of-page */ +.clearfix { zoom: 1; } + + + +/** + * Media queries for responsive design. + * + * These follow after primary styles so they will successfully override. + */ + +@media all and (orientation:portrait) { + /* Style adjustments for portrait mode goes here */ + +} + +@media all and (orientation:landscape) { + /* Style adjustments for landscape mode goes here */ + +} + +/* Grade-A Mobile Browsers (Opera Mobile, Mobile Safari, Android Chrome) + consider this: www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ */ +@media screen and (max-device-width: 480px) { + + + /* Uncomment if you don't want iOS and WinMobile to mobile-optimize the text for you: j.mp/textsizeadjust */ + /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */ +} + + +/** + * Print styles. + * + * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ + */ +@media print { + * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; + -ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */ + a, a:visited { color: #444 !important; text-decoration: underline; } + a[href]:after { content: " (" attr(href) ")"; } + abbr[title]:after { content: " (" attr(title) ")"; } + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */ + pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } + thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */ + tr, img { page-break-inside: avoid; } + @page { margin: 0.5cm; } + p, h2, h3 { orphans: 3; widows: 3; } + h2, h3{ page-break-after: avoid; } +} + diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/archiva.fmt b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/archiva.fmt new file mode 100644 index 000000000..2137bfb39 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/archiva.fmt @@ -0,0 +1,937 @@ +[#ftl] +<#-- +Copyright 2015 The Apache Software Foundation. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +[#-- @ftlvariable name="resourceApis" type="java.util.List<com.webcohesion.enunciate.api.resources.ResourceApi>" --] +[#-- @ftlvariable name="serviceApis" type="java.util.List<com.webcohesion.enunciate.api.services.ServiceApi>" --] +[#-- @ftlvariable name="data" type="java.util.List<com.webcohesion.enunciate.api.datatype.Syntax>" --] +[#-- @ftlvariable name="downloads" type="java.util.List<com.webcohesion.enunciate.api.Download>" --] +[#-- @ftlvariable name="title" type="java.lang.String" --] +[#-- @ftlvariable name="indexPageName" type="java.lang.String" --] +[#-- @ftlvariable name="disableMountpoint" type="java.lang.Boolean" --] +[#-- @ftlvariable name="apiRelativePath" type="java.lang.String" --] +[#-- @ftlvariable name="cssFile" type="java.lang.String" --] +[#-- @ftlvariable name="additionalCssFiles" type="java.util.List<java.lang.String>" --] +[#-- @ftlvariable name="copyright" type="java.lang.String" --] +[#-- @ftlvariable name="apiDoc" type="java.lang.String" --] +[#-- @ftlvariable name="swaggerUI" type="com.webcohesion.enunciate.api.InterfaceDescriptionFile" --] +[#--set up the subnavigation menus--] +[#assign nav_sections = { } /] +[#if resourceApis?size > 0] + [#assign nav_sections = nav_sections + { "Resources" : "resources.html" }/] +[/#if] +[#if serviceApis?size > 0] + [#assign nav_sections = nav_sections + { "Services" : "services.html" }/] +[/#if] +[#if data?size > 0] + [#list data as syntax] + [#assign nav_sections = { syntax.label : syntax.slug + ".html" } /] + [/#list] +[/#if] +[#if downloads?size > 0] + [#assign nav_sections = nav_sections + { "Files and Libraries" : "downloads.html"} /] +[/#if] +[#--Basic boilerplate macro.--] +[#macro boilerplate title=title breadcrumbs=[{"title" : "Home", "href" : indexPageName}] pagenav=[] codeblocks=true] +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> + + <title>${title}</title> + + <!-- Mobile viewport optimized: j.mp/bplateviewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Bootstrap core CSS --> + <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> --> + + [#if cssFile??] + <!--custom css for these pages--> + <link rel="stylesheet" href="${cssFile}"> + [/#if] + [#list additionalCssFiles as additionalCssFile] + <link rel="stylesheet" href="${additionalCssFile}"> + [/#list] + + <link href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.css" type="text/css"> + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> +</head> + +<body class="home"> + <div class="container"> + <header> + + <div id="header" class="column first last span-20"> + <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="${indexPageName}">${title}</a></div> + <div id="primary" class="column span-18 append-1 prepend-1 first last"> + <ul class="navigation"> + <li id="nav-rest"><a href="resources.html">REST</a></li> + <li id="nav-data"><a href="data.html">Data Model</a></li> + </ul> + </div> + <div> + <ul class="xbreadcrumbs" id="breadcrumbs"> +[#list breadcrumbs as crumb] +<li[#if !crumb_has_next] class="current"[/#if]> + <a href="${crumb.href}"[#if crumb_index = 0] class="home"[/#if]>${crumb.title}</a>[#if crumb_has_next] >[/#if] + + </li> + [/#list] + </ul> + </div> + </div> + <!--<nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container-fluid"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="${indexPageName}">${title}</a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav navbar-right"> + [#if serviceApis?size > 0] + <li><a href="services.html">Services</a></li> + [/#if] + [#if resourceApis?size > 0] + <li><a href="resources.html">Resources</a></li> + [/#if] + [#if data?size > 0] + <li><a href="data.html">Data Types</a></li> + [/#if] + [#if downloads?size > 0] + <li><a href="downloads.html">Files and Libraries</a></li> + [/#if] + </ul> + </div> + </div> + </nav>--> + </header> + <div id="main" class="column first last span-20"> + + [#nested/] + + <footer> + <div class="footer"> + [#if copyright??]Copyright © <script type="text/javascript" language="javascript">d = new Date;document.write(d.getFullYear());</script> <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">${copyright}</span>. [/#if]Generated by <a href="http://enunciate.webcohesion.com">Enunciate</a>. + </div> + </footer> + + </div> + + </div> + + + <!-- JavaScript placed at the end of the document so the pages load faster. --> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> + + + <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ --> + <script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.js" type="text/javascript"></script> + + +</body> +</html> +[/#macro] +[#--Macro that wraps its text in a deprecated <s> tag if the element is deprecated.--] +[#macro deprecation element] + [#assign deprecated=(element?? && element.deprecated??)/] + [#if deprecated]<s>[/#if][#nested/][#if deprecated]</s>[/#if] +[/#macro] +[@file name=indexPageName] + [#assign pagenav=[]/] + [#if resourceApis?size > 0] + [#assign pagenav=pagenav + [{ "href" : "#resources", "title" : "Resources" }]/] + [/#if] + [#if serviceApis?size > 0] + [#assign pagenav=pagenav + [{ "href" : "#services", "title" : "Services" }]/] + [/#if] + [#list data as syntax] + [#assign pagenav=pagenav + [{ "href" : "#" + syntax.slug, "title" : syntax.label }]/] + [/#list] + [@boilerplate pagenav=pagenav] + [#if apiDoc??] + <div class="jumbotron"> + <div class="container"> + ${apiDoc} + </div> + </div> + [/#if] + [#if resourceApis?size > 0] + + <h1 class="page-header" id="resources">Resources</h1> + [#list resourceApis as resourceApi] + [#if downloads?size > 0] + + <p> + The resources use a data model that is supported by a set of client-side libraries that are made available on the + <a href="downloads.html">files and libraries</a> page. + </p> + [/#if] + [#if resourceApi.wadlFile??] + + <p> + There is a <a href="${resourceApi.wadlFile.href}">WADL document</a> available that describes the resources API. + </p> + [/#if] + [#if swaggerUI??] + + <p> + You may also enjoy the <a href="${swaggerUI.href}">Swagger UI</a> provided for this API. + </p> + [/#if] + <ul> + [#list resourceApi.resourceGroups as resourceGroup] + [@processResourceGroup resourceGroup=resourceGroup/] +<li><a href="${resourceGroup.slug}.html">${resourceGroup.label}</a></li> + + [/#list] + </ul> + + [/#list] + [/#if] + [#if serviceApis?size > 0] + + <h1 class="page-header" id="services">Services</h1> + [#list serviceApis as serviceApi] + [#list serviceApi.serviceGroups as serviceGroup] + + <table class="table table-hover"> + <caption>Namespace <code>${serviceGroup.namespace!"(Default)"}</code>[#if serviceGroup.wsdlFile??] (<a href="${serviceGroup.wsdlFile.href}">wsdl</a>)[/#if]</caption> + <thead> + <tr> + <th align="center">name</th> + <th align="center">description</th> + </tr> + </thead> + <tbody data-link="row" class="rowlink"> + [#list serviceGroup.services as service] + [@processService service=service/] + <tr class="clickable-row" data-href="${service.slug}.html"> + <td>[@deprecation element=service]${service.label}[/@deprecation]</td> + <td>[@deprecation element=service]${service.description!" "}[/@deprecation]</td> + </tr> + [/#list] + </tbody> + </table> + [/#list] + [/#list] + [#if downloads?size > 0] + + <p>The services API is also accessible by a set of client-side libraries that can be downloaded from the <a href="downloads.html">files and libraries page</a>.</p> + [/#if] + [/#if] + [#if data?size > 0] + + <h1 class="page-header" id="data">Data Types</h1> + [#list data as syntax] + [@processDataSyntax syntax=syntax/] + + <h3 id="${syntax.slug}">${syntax.label}</h3> + [#list syntax.namespaces as ns] + [#if ns.types?size > 0] + + + [#if ns.uri?? && ns.uri?length > 0] + <p>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p> + [#else] + <p>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p> + [/#if] + <ul> + [#list ns.types?sort_by("label") as type] + <li><a href="${type.slug}.html">${type.label}</a></li> + + [/#list] + </ul> + + [/#if] + [/#list] + [/#list] + [/#if] + [/@boilerplate] +[/@file] +[@file name="data.html"] + [#assign pagenav=[]/] + [#list data as syntax] + [#assign pagenav=pagenav + [{ "href" : "#" + syntax.slug, "title" : syntax.label }]/] + [/#list] + [@boilerplate title=title + ": Data Types" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Types" , "href" : "data.html"}] pagenav=pagenav] + <h1 class="page-header" id="data">Data Types</h1> + [#list data as syntax] + + <h3 id="${syntax.slug}">${syntax.label}</h3> + [#list syntax.namespaces as ns] + [#if ns.types?size > 0] + + + [#if ns.uri?? && ns.uri?length > 0] + <p>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p> + [#else] + <p>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p> + [/#if] + + <ul> + [#list ns.types as type] + <li><a href="${type.slug}.html">${type.label}</a></li> + + [/#list] + </ul> + + [/#if] + [/#list] + [/#list] + [/@boilerplate] +[/@file] +[#if downloads?size > 0] + [@file name="downloads.html"] + [#assign pagenav=[]/] + [#list downloads as download] + [#assign pagenav=pagenav + [{ "href" : "#" + download.slug, "title" : download.name }]/] + [/#list] + [@boilerplate title=title + ": Files and Libraries" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, { "title" : "Files and Libraries" , "href" : "downloads.html"}] codeblocks=true pagenav=pagenav] + <h1 class="page-header">Files and Libraries</h1> + + [#list downloads as download] + <h3 id="${download.slug}">${download.name}</h3> + [#if download.created??] + <p class="lead">Created ${download.created?date?string.long}</p> + [/#if] + [#if download.description??] + <p>${download.description}</p> + [/#if] + <table class="table table-hover"> + <caption>Files</caption> + <thead> + <tr> + <th>name</th> + <th>size</th> + <th>description</th> + </tr> + </thead> + <tbody data-link="row" class="rowlink"> + [#list download.files as file] + <tr class="clickable-row" data-href="${file.name}"> + <td>${file.name}</td> + <td>${file.size}</td> + <td>${file.description!" "}</td> + </tr> + [/#list] + </tbody> + </table> + [/#list] + [/@boilerplate] + [/@file] +[/#if] +[#if resourceApis?size > 0] + [@file name="resources.html"] + [@boilerplate title=title + ": Resources" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Resources" , "href" : "resources.html"}]] + <h1 class="page-header" id="resources">Resources</h1> + + [#list resourceApis as resourceApi] + [#if downloads?size > 0] + <p> + The resources use a data model that is supported by a set of client-side libraries that are made available on the + <a href="downloads.html">files and libraries</a> page. + </p> + [/#if] + [#if resourceApi.wadlFile??] + <p> + There is a <a href="${resourceApi.wadlFile.href}">WADL document</a> available that describes the resources API. + </p> + [/#if] + [#if swaggerUI??] + <p> + You may also enjoy the <a href="${swaggerUI.href}">Swagger UI</a> provided for this API. + </p> + [/#if] + + <ul> + [#list resourceApi.resourceGroups as resourceGroup] +<li><a href="${resourceGroup.slug}.html">${resourceGroup.label}</a></li> + + [/#list] + </ul> + + [/#list] + [/@boilerplate] + [/@file] +[/#if] +[#if serviceApis?size > 0] + [@file name="services.html"] + [@boilerplate title=title + ": Services" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Services" , "href" : "services.html"}]] + <h1 class="page-header" id="services">Services</h1> + [#list serviceApis as serviceApi] + [#list serviceApi.serviceGroups as serviceGroup] + + <table class="table table-hover"> + <caption>Namespace <code>${serviceGroup.namespace}</code>[#if serviceGroup.wsdlFile??] (<a href="${serviceGroup.wsdlFile.href}">wsdl</a>)[/#if]</caption> + <thead> + <tr> + <th align="center">name</th> + <th align="center">description</th> + </tr> + </thead> + <tbody data-link="row" class="rowlink"> + [#list serviceGroup.services as service] + <tr class="clickable-row" data-href="${service.slug}.html"> + <td>[@deprecation element=service]${service.label}[/@deprecation]</td> + <td>[@deprecation element=service]${service.description!" "}[/@deprecation]</td> + </tr> + [/#list] + </tbody> + </table> + [/#list] + [/#list] + [#if downloads?size > 0] + + <p>The services API is also accessible by a set of client-side libraries that can be downloaded from the <a href="downloads.html">files and libraries page</a>.</p> + [/#if] + [/@boilerplate] + [/@file] +[/#if] +[#macro processResourceGroup resourceGroup] + [#assign pagenav=[]/] + [#list resourceGroup.resources as resource] + [#list resource.methods as method] + [#assign pagenav=pagenav + [{ "href" : "#" + method.slug, "title" : method.label + " " + resource.path }]/] + [/#list] + [/#list] + [#-- @ftlvariable name="resourceGroup" type="com.webcohesion.enunciate.api.resources.ResourceGroup" --] + [@file name=resourceGroup.slug + ".html"] + [@boilerplate title=title + ": " + resourceGroup.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Resources" , "href" : "resources.html"}, {"title" : resourceGroup.label , "href" : resourceGroup.slug + ".html"}] pagenav=pagenav] + <h1 class="page-header">${resourceGroup.label} <small>Resource</small></h1> + [#if resourceGroup.description??] + + <p>${resourceGroup.description}</p> + [/#if] + <ul> + [#list resourceGroup.resources?sort_by("path") as resource] +[#list resource.methods as method] +<li><a href="#${method.slug}">${apiRelativePath}${resourceGroup.contextPath}${resource.path}</a></li> +[/#list] + [/#list] + </ul> + [#list resourceGroup.resources?sort_by("path") as resource] + [#if resource.since?? || resource.version??] + + <dl class="dl-horizontal"> + [#if resource.since??] + <dt>Available Since</dt> + <dd>${resource.since}</dd> + [/#if] + [#if resource.version??] + <dt>Version</dt> + <dd>${resource.version}</dd> + [/#if] + </dl> + [/#if] + [#list resource.methods as method] + + <div id="${method.slug}"> + <h2>${method.label} <small>${resource.path} <a href="${apiRelativePath}${resourceGroup.contextPath}${resource.path}" class="glyphicon glyphicon-new-window" target="_blank"></a></small></h2> + [#if resourceGroup.deprecated?? || method.deprecated??] + + <div class="alert alert-danger">This method has been deprecated. [#if method.deprecated??] ${method.deprecated!""}[#else] ${resource.deprecated!""}[/#if]</div> + [/#if] + [#if method.description??] + + <p>${method.description}</p> + [/#if] + [#-- would be nice to enable a "Try it out" link to Swagger. See https://github.com/swagger-api/swagger-spec/issues/239 + [#if swaggerUI??] + + <p><a href="${swaggerUI.href}#!/${resourceGroup.label?url}/${method.slug}" class="btn btn-default">Try it out!</a></p> + [/#if] + --] + [#if (method.since?? || method.version??)] + + <dl class="dl-horizontal"> + [#if method.since??] + <dt>Available Since</dt> + <dd>${method.since}</dd> + [/#if] + [#if method.version??] + <dt>Version</dt> + <dd>${method.version}</dd> + [/#if] + </dl> + [/#if] + [#if method.parameters?size > 0] + + <table class="table"> + <caption>Request Parameters</caption> + <thead> + <tr> + <th>name</th> + <th>type</th> + <th>description</th> + <th>default</th> + </tr> + </thead> + <tbody> + [#list method.parameters as parameter] + <tr> + <td>${parameter.name}</td> + <td>${parameter.typeLabel}</td> + <td>${parameter.description!" "}</td> + <td>${parameter.defaultValue!"n/a"}</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + [#if method.requestEntity??] + + <table class="table"> + <caption>Request Body</caption> + <thead> + <tr> + <th>media type</th> + <th>data type</th> + [#if method.requestEntity.description??] + <th>description</th> + [/#if] + </tr> + </thead> + <tbody> + [#list method.requestEntity.mediaTypes as io] + <tr> + <td><abbr data-toggle="tooltip" data-placement="top" title="Use the "Content-Type: ${io.mediaType}" HTTP header to specify this media type to the server.">${io.mediaType}</abbr></td> + <td>[@referenceDataType referenceType=io.dataType!{"label" : "(custom)"}/][#if io.syntax??] (${io.syntax})[/#if]</td> + [#if io_index = 0 && method.requestEntity.description??] + <td rowspan="${method.requestEntity.mediaTypes?size}">${method.requestEntity.description}</td> + [/#if] + </tr> + [/#list] + </tbody> + </table> + [/#if] + [#if method.responseCodes?size > 0] + + <table class="table"> + <caption>Response Codes</caption> + <thead> + <tr> + <th>code</th> + <th>condition</th> + </tr> + </thead> + <tbody> + [#list method.responseCodes as responseCode] + <tr> + <td>${responseCode.code}</td> + <td>${responseCode.condition}</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + [#if method.responseEntity??] + + <table class="table"> + <caption>Response Body</caption> + <thead> + <tr> + <th>media type</th> + <th>data type</th> + [#if method.responseEntity.description??] + <th>description</th> + [/#if] + </tr> + </thead> + <tbody> + [#list method.responseEntity.mediaTypes as io] + <tr> + <td><abbr data-toggle="tooltip" data-placement="top" title="Use the "Accept: ${io.mediaType}" HTTP header to request that this media type be provided by the server.">${io.mediaType}</abbr></td> + <td>[@referenceDataType referenceType=io.dataType!{"label" : "(custom)"}/][#if io.syntax??] (${io.syntax})[/#if]</td> + [#if io_index = 0 && method.responseEntity.description??] + <td rowspan="${method.responseEntity.mediaTypes?size}">${method.responseEntity.description}</td> + [/#if] + </tr> + [/#list] + </tbody> + </table> + [/#if] + [#if method.warnings?size > 0] + + <table class="table"> + <caption>Response Warnings</caption> + <thead> + <tr> + <th>code</th> + <th>condition</th> + </tr> + </thead> + <tbody> + [#list method.warnings as responseCode] + <tr> + <td>${responseCode.code}</td> + <td>${responseCode.condition}</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + [#if method.responseHeaders?size > 0] + + <table class="table"> + <caption>Response Headers</caption> + <thead> + <tr> + <th>name</th> + <th>description</th> + </tr> + </thead> + <tbody> + [#list method.responseHeaders as header] + <tr> + <td>${header.name}</td> + <td>${header.description!" "}</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + </div> + [/#list] + [/#list] + [/@boilerplate] + [/@file] +[/#macro] +[#macro processService service] + [#assign pagenav=[]/] + [#list service.operations as operation] + [#assign pagenav=pagenav + [{ "href" : "#" + operation.slug, "title" : operation.name }]/] + [/#list] + [#-- @ftlvariable name="service" type="com.webcohesion.enunciate.api.services.Service" --] + [@file name=service.slug + ".html"] + [@boilerplate title=title + ": " + service.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : service.label , "href" : service.slug + ".html"}] pagenav=pagenav] + <h1 class="page-header">${service.label} <small>Service</small></h1> + [#if service.deprecated??] + + <div class="alert alert-danger">This service has been deprecated. ${service.deprecated}</div> + [/#if] + [#if service.description??] + + <p>${service.description}</p> + [/#if] + + <dl class="dl-horizontal"> + [#if service.namespace?? && service.namespace?length > 0] + <dt>Namespace</dt> + <dd>${service.namespace}</dd> + [/#if] + [#if service.group.wsdlFile??] + <dt>WSDL</dt> + <dd><a href="${service.group.wsdlFile.href}">${service.group.wsdlFile.href}</a></dd> + [/#if] + [#if service.path??] + <dt>Path</dt> + <dd><a href="${apiRelativePath}${service.path}">${service.path}</a></dd> + [/#if] + [#if service.since??] + <dt>Available Since</dt> + <dd>${service.since}</dd> + [/#if] + [#if service.version??] + <dt>Version</dt> + <dd>${service.version}</dd> + [/#if] + </dl> + [#list service.operations as operation] + + <h2 id="${operation.slug}">${operation.name} <small>Operation</small></h2> + [#if operation.deprecated??] + + <div class="alert alert-danger">This method has been deprecated. ${operation.deprecated}</div> + [/#if] + [#if operation.description??] + + <p>${operation.description}</p> + [/#if] + [#if (operation.since?? || operation.version??)] + + <dl class="dl-horizontal"> + [#if operation.since??] + <dt>Available Since</dt> + <dd>${operation.since}</dd> + [/#if] + [#if operation.version??] + <dt>Version</dt> + <dd>${operation.version}</dd> + [/#if] + </dl> + [/#if] + [#if operation.inputParameters?size > 0] + + <table class="table"> + <caption>Input Parameters</caption> + <thead> + <tr> + <th>name</th> + <th>type</th> + <th>description</th> + </tr> + </thead> + <tbody> + [#list operation.inputParameters as parameter] + <tr> + <td>${parameter.name}</td> + <td>[@referenceDataType referenceType=parameter.dataType/]</td> + <td>${parameter.description!" "}</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + [#if operation.outputParameters?size > 0] + + <table class="table"> + <caption>Output Parameters</caption> + <thead> + <tr> + <th>name</th> + <th>type</th> + <th>description</th> + </tr> + </thead> + <tbody> + [#list operation.outputParameters as parameter] + <tr> + <td>${parameter.name}</td> + <td>[@referenceDataType referenceType=parameter.dataType/]</td> + <td>${parameter.description!" "}</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + [#if operation.returnType??] + + <table class="table"> + <caption>Return Value</caption> + <thead> + <tr> + <th>type</th> + <th>description</th> + </tr> + </thead> + <tbody> + <tr> + <td>[#if operation.returnType.slug??]<a href="${operation.returnType.slug}.html">[/#if]${operation.returnType.label}[#if operation.returnType.slug??]</a>[/#if]</td> + <td>${operation.returnDescription!" "}</td> + </tr> + </tbody> + </table> + [/#if] + [#if operation.faults?size > 0] + + <table class="table"> + <caption>Faults</caption> + <thead> + <tr> + <th>name</th> + <th>type</th> + <th>description</th> + </tr> + </thead> + <tbody> + [#list operation.faults as fault] + <tr> + <td>${fault.name}</td> + <td>[@referenceDataType referenceType=fault.dataType/]</td> + <td>${fault.description!" "}</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + [/#list] + [/@boilerplate] + [/@file] +[/#macro] +[#macro processDataSyntax syntax] + [#-- @ftlvariable name="syntax" type="com.webcohesion.enunciate.api.datatype.Syntax" --] + [@file name=syntax.slug + ".html"] + [@boilerplate title=title + ": " + syntax.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : syntax.label , "href" : syntax.slug + ".html"} ]] + <h1 class="page-header">${syntax.label}</h1> + [#list syntax.namespaces as ns] + [#if ns.types?size > 0] + + <table class="table table-hover"> + [#if ns.uri?? && ns.uri?length > 0] + <caption>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</caption> + [#else] + <caption>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</caption> + [/#if] + <thead> + <tr> + <th align="center">type</th> + <th align="center">description</th> + </tr> + </thead> + <tbody data-link="row" class="rowlink"> + [#list ns.types as type] + [@processDataType type=type/] + <tr class="clickable-row" data-href="${type.slug}.html"> + <td>[@deprecation element=type]${type.label}[/@deprecation]</td> + <td>[@deprecation element=type]${type.description}[/@deprecation]</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + [/#list] + [/@boilerplate] + [/@file] +[/#macro] +[#macro processDataType type] + [#-- @ftlvariable name="type" type="com.webcohesion.enunciate.api.datatype.DataType" --] + [@file name=type.slug + ".html"] + [@boilerplate title=title + ": " + type.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : type.syntax.label , "href" : type.syntax.slug + ".html"}, {"title" : type.label , "href" : type.slug + ".html"} ] codeblocks=true] + <h1 class="page-header">${type.label} <small>Data Type</small></h1> + [#if type.deprecated??] + + <div class="alert alert-danger">This data type has been deprecated. ${type.deprecated}</div> + [/#if] + [#if type.description??] + + <p>${type.description}</p> + [/#if] + + <dl class="dl-horizontal"> + [#if type.namespace.uri??] + <dt>Namespace</dt> + [#if type.namespace.uri?length > 0] + <dd><code>${type.namespace.uri}</code></dd> + [#else] + <dd>(Default)</dd> + [/#if] + [/#if] + [#if type.namespace.schemaFile??] + <dt>Schema</dt> + <dd><a href="${type.namespace.schemaFile.href}">${type.namespace.schemaFile.href}</a></dd> + [/#if] + [#if type.since??] + <dt>Available Since</dt> + <dd>${type.since}</dd> + [/#if] + [#if type.version??] + <dt>Version</dt> + <dd>${type.version}</dd> + [/#if] + </dl> + [#if type.values??] + + <table class="table"> + <caption>Values</caption> + <thead> + <tr> + <th>value</th> + <th>description</th> + </tr> + </thead> + <tbody> + [#list type.values as value] + <tr> + <td>${value.value}</td> + <td>${value.description!" "}</td> + </tr> + [/#list] + </tbody> + </table> + [/#if] + [#if type.properties??] + + <table class="table"> + <caption>Properties</caption> + <thead> + <tr> + <th>name</th> + <th>data type</th> + [#list type.propertyMetadata?keys as meta] + <th>${type.propertyMetadata[meta]}</th> + [/#list] + <th>description</th> + </tr> + </thead> + <tbody> + [#list type.properties as property] + <tr> + <td>[@deprecation element=property]${property.name}[/@deprecation]</td> + <td>[@deprecation element=property][@referenceDataType referenceType=property.dataType/][/@deprecation]</td> + [#list type.propertyMetadata?keys as meta] + <td>[@deprecation element=property][@printPropertyMetadata property=property meta=meta/][/@deprecation]</td> + [/#list] + <td>[@deprecation element=property]${property.description!" "}[/@deprecation]</td> + </tr> + [/#list] + </tbody> + [#if type.supertypes??] + [#list type.supertypes as supertype] + [#if supertype.value?? && supertype.value.properties?? && supertype.value.properties?size > 0] + <tr> + <td colspan="${3 + type.propertyMetadata?size}"><h5 class="text-muted">Properties inherited from <a href="${supertype.slug}.html">${supertype.label}</a></h5></td> + </tr> + <tbody> + [#list supertype.value.properties as superProperty] + <tr> + <td>${superProperty.name}</td> + <td>[@referenceDataType referenceType=superProperty.dataType/]</td> + [#list type.propertyMetadata?keys as meta] + <td>[@printPropertyMetadata property=superProperty meta=meta/]</td> + [/#list] + <td>${superProperty.description!" "}</td> + </tr> + [/#list] + </tbody> + [/#if] + [/#list] + [/#if] + </table> + [/#if] + [#if type.example??] + + <h2>Example</h2> + + <pre class="prettyprint lang-${type.example.lang}">${type.example.body?xhtml}</pre> + [/#if] + [/@boilerplate] + [/@file] +[/#macro] +[#macro referenceDataType referenceType] +[#-- @ftlvariable name="type" type="com.webcohesion.enunciate.api.datatype.DataTypeReference" --] +[#if referenceType.containers??][#list referenceType.containers as container]${container?string} of [/#list][/#if][#if referenceType.slug??]<a href="${referenceType.slug}.html">[/#if]${referenceType.label!"(custom)"}[#if referenceType.slug??]</a>[/#if] +[/#macro] +[#macro printPropertyMetadata property meta] + [#assign metaValue=property[meta]!({ "structure" : true })/] + [#if metaValue?is_hash && metaValue.structure!false] +[#if metaValue.href??]<a href="${metaValue.href}">[/#if][#if metaValue.title??]<abbr title="${metaValue.title}">[/#if]${metaValue.value!" "}[#if metaValue.title??]</abbr>[/#if][#if metaValue.href??]</a>[/#if] + [#else] +${metaValue} + [/#if] +[/#macro]
\ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/enunciate.xml b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/enunciate.xml index 25d2dfe5c..2afff728e 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/enunciate.xml +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/enunciate/enunciate.xml @@ -34,7 +34,7 @@ <jaxws-support disabled="true"/> <docs disabled="false" title="Apache Archiva REST API" includeExampleXml="true" includeExampleJson="true" - includeDefaultDownloads="false" docsSubdir=""> + includeDefaultDownloads="false" docsSubdir="" freemarkerTemplate="${project.basedir}/src/enunciate/archiva.fmt" css="${project.basedir}/src/enunciate/archiva.css" > <!--<war docsDir="apidocs" />--> </docs> |