summaryrefslogtreecommitdiff
path: root/src/main/webapp/wayf-ndn.jsp
diff options
context:
space:
mode:
authorLeif Johansson <leifj@sunet.se>2011-11-25 21:31:03 +0100
committerLeif Johansson <leifj@sunet.se>2011-11-25 21:31:03 +0100
commit9f111e922e2d1246ced00a5f2e3270b0baec5bd1 (patch)
treec28c86f9ec573a03d00a421d000c71471a5031f5 /src/main/webapp/wayf-ndn.jsp
parent3909e6d89e01e4cd8777377c63037896bb95aa2f (diff)
tabbed layout
Diffstat (limited to 'src/main/webapp/wayf-ndn.jsp')
-rw-r--r--src/main/webapp/wayf-ndn.jsp269
1 files changed, 11 insertions, 258 deletions
diff --git a/src/main/webapp/wayf-ndn.jsp b/src/main/webapp/wayf-ndn.jsp
index db186d1..b2c4a63 100644
--- a/src/main/webapp/wayf-ndn.jsp
+++ b/src/main/webapp/wayf-ndn.jsp
@@ -10,136 +10,13 @@
<%request.setCharacterEncoding("UTF-8");%>
<%response.setCharacterEncoding("UTF-8");%>
-
-<logic:present name="showComments" scope="Request">
-
-<!-- TO CONFIGURE THIS FOR A SPECIFIC SITE
- =====================================
-
- Before you deploy this jsp you need to look for CONFIG below.
- These mark places where you should make changes.
-
- If you want to make more profound changes but only to the jsp,
- you should read the sections marked PROGRAMMING NOTE below.-->
-
-<!-- PROGRAMMING NOTE
-
- "requestURL" contains the URL that was specified to get the
- WAYF going. The jsp uses it mostly for submitting result back to
- the WAYF and error reporting -->
-
-</logic:present>
-
- <jsp:useBean id="requestURL" scope="request" class="java.lang.String"/>
-
-<logic:present name="showComments" scope="Request">
-
-<!-- PROGRAMMING NOTE
-
- shire, target, provider and time are all part of the Shibboleth
- 1.3 discovery protocol and need to be specified as parameters to the WAYF
-
- entityID, return, returnIDParam are all part of the
- SAML Discovery protocol.
-
-
--->
-</logic:present>
-
+<jsp:useBean id="requestURL" scope="request" class="java.lang.String"/>
<logic:notPresent name="entityID" scope="request">
<logic:notPresent name="shire" scope="request">
-
<jsp:forward page = "wayferror.jsp"/>
</logic:notPresent>
</logic:notPresent>
-
-<logic:present name="showComments" scope="Request">
-
-<!-- PROGRAMMING NOTE
- In addition to the above. The WAYF may also supply the following to
- the jsp.
-
- "cookieList" If this exists it represents the contents of the
- _saml_idp cookie (possibly filtered to remove IdPs which
- cannot serve the SP). It is a Collection of IdPSite objects,
- which themselves have the following properties:
-
- "name" The uri for the IdP, which needs to be returned to the
- WAYF in the "origin" parameter.
-
- "displayName" User friendly name (taken from its alias)
-
- "addressFor" The (ungarnished) URL for the IdP. This could be
- used to create a direct hyperlink to the IdP
-
- "sites" If this exists it contains all the possible IdPs for for
- the SP (possibly filtered). It is a Collection of IdPSite
- Objects which are described above. This is only present if
- provideList was defined true in the configuration.
-
- "siteLists" If this exists it contains all the possible metadata
- files which can service for the SP (possibly filtered). It
- is a collection of IdPSiteSetEntry Objects which have two
- properties:
-
- "name" This is the displayName from the Metadata element in
- the WAYF configuration file
-
- "sites" This represents the IdPs. Again it is a collection
- of IdPSite Objects
-
- It is only present if provideListOfList was defined true in
- the configuration.
-
- "singleSiteList" if this is present, then there is only one
- IdPSiteSetEntry Object in "siteLists".
-
- "searchresultempty" If this is present then it means that a
- search was performed, but no suitable IdPs were returned.
-
- "searchresults" If this is present it represents the list of IdPs
- which matched a previous search. It is a Collection of
- IdPSite Objects. -->
-
-<!-- PROGRAMMING NOTE
-
- The jsp communicates back to the WAYF via the parameters listed
- above, and:
-
- "action" what the WAYF has to do. Possible contents are:
-
- "lookup" - refresh the screen.
- "search" - perform a search on the contents parameter "string"
- "selection" - redirect to the IdP with the uri "origin"
-
- "cache" preserve any selection in the _saml_idp cookie. A
- value of "session" makes the cookie last for the browser
- session, "perm" gives it the lifetime specified in the
- configuration file.
-
- The tabindex is hard wired. Fortunately the standard allows us to
- have duplicate numbers and says the order is the order things
- get emitted. We use these numbers
-
- 10 - Recently used sites hyperlinks
- 20 - <clear button for above>
- 25 - AutoSuggestion
- 30 Federation selection
- 40 IdP within Selection
- 50 Select button
- 60 How long to remember selector
- 70 Search entry
- 80 Search Button
- 90 List of search results
- 100 Select search result
- 110 How long to remember search results
- 120 Hyperlink to admin user.
-
--->
-
-</logic:present>
-
<head>
<link rel="stylesheet" type="text/css" href="NORDUnet.css"/>
<link type="text/css" href="jquery-ui-1.9pre/themes/base/jquery-ui.css" rel="stylesheet" />
@@ -149,138 +26,10 @@
<script type="text/javascript">
$(function() {
$("input:submit, input:reset, input:button, a",".button").button();
- $("#sitelist").menu();
+ $("#sitelist").tabs();
});
</script>
<script type="text/javascript">
- $.widget( "ui.iosMenu", {
- options: {
- backText: 'Back',
- slideDuration: 200,
- slideEasing: 'linear'
- },
-
- _insertBackButtons: function() {
- this.element.find( 'li ul, li ol' ).prepend(
- $( '<li>' +
- ' <span class="ui-icon ui-icon-carat-1-w"></span>' +
- ' <a href="#menu-back" class="ios-menu-back-link">' +
- this.options.backText +
- ' </a>' +
- '</li>'
- ) );
- return this;
- },
-
- _create: function( options ) {
- var iosMenu = this;
-
- iosMenu
- ._insertBackButtons()
- .element
- .addClass( 'ios-style' )
- .menu({
- // When a submenu shows up, place it just to the right
- // of the current menu. Later, we'll slide it into view.
- position: {
- my: 'left top',
- at: 'right top',
- of: iosMenu.element
- }
- });
-
- var menu = iosMenu.element.data( 'menu' );
-
- // Override menu#select to account for nesting and back buttons:
- menu.select = function( event ) {
- if ( menu.active && menu.active.find( '> .ios-menu-back-link' ).length ) {
- // if you selected "back", go back:
- menu.focus( event, menu.active );
- if ( menu.left( event ) ) {
- event.stopImmediatePropagation();
- }
- event.preventDefault();
- } else if ( menu.active && menu.active.find( '> ul' ).length ) {
- // if you selected something with children, show the children:
- menu.focus( event, menu.active );
- if ( menu.right( event ) ) {
- event.stopImmediatePropagation();
- }
- event.preventDefault();
- } else {
- menu._trigger( 'select', event, { item: menu.active } );
- }
- };
-
- // Override menu#left to enable sliding behavior:
- menu.left = function( event ) {
- var newItem = this.active && this.active.parents( 'li:not(.ui-menubar-item) ').first(),
- self = this,
- parent;
- if ( newItem && newItem.length ) {
- newItem.find( '> a' ).addClass( 'ui-state-focus' ).removeClass( 'ui-state-active' );
- parent = this.active.parent();
- parent
- .attr( 'aria-hidden', 'true' )
- .attr( 'aria-expanded', 'false' )
- .animate({
- left: self.element.css( 'width' )
- }, iosMenu.options.slideDuration, iosMenu.options.slideEasing, function() {
- parent.hide();
- self.focus( event, newItem );
- })
- return true;
- } else if ( event && event.which === $.ui.keyCode.ESCAPE ) {
- // #left gets called both for left-arrow and escape. If it's the
- // latter and we're at the top, fire a "close" event:
- self._trigger( 'close', event );
- }
- };
-
- // Override menu#_open to enable sliding behavior:
- var menuOpenWithoutSliding = menu._open;
- menu._open = function ( submenu ) {
- menuOpenWithoutSliding.call( this, submenu );
- submenu.animate({
- left: 0
- }, iosMenu.options.slideDuration, iosMenu.options.slideEasing);
- };
-
- // Override menu#_startOpening so that hovering doesn't
- // initiate the sliding:
- menu._startOpening = function() {
- clearTimeout( this.timer );
- }
- },
-
- destroy: function() {
- var menu = this.element && this.element.data( 'menu' );
- menu && menu.destroy();
- }
- });
-
- $(function() {
- var list = $( '#sites' );
- var firstLI = list.find( 'li' ).first();
- list
- .iosMenu()
- .focus()
- .menu( 'focus', {}, firstLI )
- .bind( 'menuselect', function( event, ui ) {
- $('#origin').attr('value',$(ui.item).attr('rel'));
- $('#selector').submit();
- });
- });
- </script>
- <style>
- .ios-style, .ios-style ul, .ios-style ol { background: #fff; height: 200px; padding: 2px; width: 420px; }
- .ios-style { overflow-x: hidden; overflow-y: auto; }
- //.ios-style::-webkit-scrollbar { width: 5px; height: 5px; }
- //.ios-style::-webkit-scrollbar-thumb { background: rgba(128, 128, 128, 0.6); border-radius: 4px; }
- .ios-style ul, .ios-style ol { overflow-y: visible; border: none; }
- .ios-style.ui-menu-icons .ui-menu-item a { position: inherit; }
- .ios-style .ui-menu-item a { cursor: pointer; outline: none; }
- </style>
</head>
<body id="homepage">
@@ -360,10 +109,14 @@
<li style="vertical-align: top;">
<h2>Full list of identity providers</h2>
<logic:present name="siteLists" scope="request">
- <ul id="sites">
+ <div id="sites">
+ <ul>
+ <logic:iterate id="siteset" name="siteLists">
+ <li><a href="#<jsp:getProperty name="siteset" property="name"/>"><jsp:getProperty name="siteset" property="name"/></a></li>
+ </logic:iterate>
+ </ul>
<logic:iterate id="siteset" name="siteLists">
- <li>
- <a href="#<jsp:getProperty name="siteset" property="name"/>"><jsp:getProperty name="siteset" property="name"/></a>
+ <div id="#<jsp:getProperty name="siteset" property="name"/>">
<ul>
<logic:iterate id="site" name="siteset" property="sites">
<logic:present name="entityID" scope="request">
@@ -386,9 +139,9 @@
</logic:notPresent>
</logic:iterate>
</ul>
- </li>
+ </div>
</logic:iterate>
- </ul>
+ </div>
</logic:present>
</li>
</ul>