summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/installer/resources/build.xml34
-rw-r--r--src/installer/resources/install.properties3
-rw-r--r--src/installer/resources/wayfconfig.xml24
-rw-r--r--src/main/webapp/wayf.css18
-rw-r--r--src/main/webapp/wayf.jsp117
5 files changed, 171 insertions, 25 deletions
diff --git a/src/installer/resources/build.xml b/src/installer/resources/build.xml
index ae85dfa..ba7a5cd 100644
--- a/src/installer/resources/build.xml
+++ b/src/installer/resources/build.xml
@@ -10,23 +10,37 @@
<!-- Load ant-contrib tasks -->
<taskdef resource="net/sf/antcontrib/antlib.xml" />
+
+ <!-- Load Internet2 ant extensions -->
+ <taskdef resource="edu/internet2/middleware/ant/antlib.xml" />
<!-- install - for deployment -->
<target name="install" description="Creates the discovery service home directory, install configuration files, and create the service's WAR.">
- <input message="Is this a new installation? Answering 'yes' will overwrite your current configuration."
- addproperty="new.install"
- validargs="yes,no"
- defaultvalue="no" />
-
+ <input message="Where should the Shibboleth Discovert Service software be installed?"
+ addproperty="ds.home.input"
+ defaultvalue="${ds.home}" />
+ <var name="ds.home" value="${ds.home.input}" />
+
+ <pathToAbsolutePath path="${ds.home}" addproperty="ds.home.path" />
+ <pathToUrl path="${ds.home}" addproperty="ds.home.url" />
+
<if>
- <equals arg1="${new.install}" arg2="yes" />
+ <available file="${ds.home.path}" property="ds.home.exists"/>
<then>
- <input message="Where should the Shibboleth Discovert Service software be installed?"
- addproperty="ds.home.input"
- defaultvalue="${ds.home}" />
- <var name="ds.home" value="${ds.home.input}" />
+ <input message="The directory '${ds.home.path}' already exists. Would you like to overwrite your existing configuration?"
+ addproperty="install.config"
+ validargs="yes,no"
+ defaultvalue="no" />
+ </then>
+ <else>
+ <var name="install.config" value="yes"/>
+ </else>
+ </if>
+ <if>
+ <equals arg1="${install.config}" arg2="yes" />
+ <then>
<propertyfile file="${resources.dir}/install.properties">
<entry key="ds.home" value="${ds.home}" />
</propertyfile>
diff --git a/src/installer/resources/install.properties b/src/installer/resources/install.properties
index c37d1c1..6de85c4 100644
--- a/src/installer/resources/install.properties
+++ b/src/installer/resources/install.properties
@@ -1 +1,2 @@
-ds.home = /etc/DiscoveryService \ No newline at end of file
+#Mon Jun 28 14:25:15 CEST 2010
+ds.home=/opt/shibboleth-ds
diff --git a/src/installer/resources/wayfconfig.xml b/src/installer/resources/wayfconfig.xml
index 1cd22d7..a797b54 100644
--- a/src/installer/resources/wayfconfig.xml
+++ b/src/installer/resources/wayfconfig.xml
@@ -18,11 +18,12 @@
The jspFile & errorJspFile attributes control the display
The provideList attribute controls whether a single list of all
- possible IdPs is presented. The default wayf.jsp works best
- if this is true when provideListofList is true.
+ possible IdPs is presented. This also controls whether the
+ Quick search dialog is presented.
The provideListOfList attribute controls whether multiple lists
- are presented (one for each MetadataProvider).
+ are presented (one for each MetadataProvider). Rather than all
+ the entities as one.
The showUsableIdPs attribute controls the contents of the above
lists. The single list (provideList=true) is trimmed by
@@ -43,8 +44,8 @@
<Default
jspFile="wayf.jsp"
errorJspFile="wayferror.jsp"
- provideList="false"
- provideListOfList="true"
+ provideList="true"
+ provideListOfList="false"
warnOnBadBinding="false"
showUnusableIdPs="false">
<SearchIgnore>
@@ -156,4 +157,17 @@
</DiscoveryServiceHandler>
-->
+<!-- The Javascript handler downloads javascript arrays with the IdPs and the cookies -->
+ <DiscoveryServiceHandler
+ location=".+/js.wayf"
+ provideList="true"
+ provideListOfList="false"
+ default="false"
+ jspFile="/javascript.jsp">
+ <Federation identifier="FirstSite"/>
+ <PluginInstance identifier="CookiePlugin"/>
+ </DiscoveryServiceHandler>
+
+
+
</WayfConfig>
diff --git a/src/main/webapp/wayf.css b/src/main/webapp/wayf.css
index 4056aa3..0eeb26c 100644
--- a/src/main/webapp/wayf.css
+++ b/src/main/webapp/wayf.css
@@ -102,3 +102,21 @@ span.warning {
text-align: center;
margin-top: 1.5em;
}
+
+div.dropdown {
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid black;
+ position: absolute;
+}
+
+div.dropdown div {
+ background-color: white;
+ cursor: default;
+ padding: 0px 3px;
+}
+
+div.dropdown div.current {
+ background-color: #3366cc;
+ color: white;
+}
diff --git a/src/main/webapp/wayf.jsp b/src/main/webapp/wayf.jsp
index 74ba11d..3a9e258 100644
--- a/src/main/webapp/wayf.jsp
+++ b/src/main/webapp/wayf.jsp
@@ -123,6 +123,7 @@
10 - Recently used sites hyperlinks
20 - <clear button for above>
+ 25 - AutoSuggestion
30 Federation selection
40 IdP within Selection
50 Select button
@@ -158,15 +159,14 @@ Select an identity provider
<!--CONFIG-->
The Service you are trying to reach requires that you
-authenticate with your home institution, please select it from the
-list below.
+authenticate with your home organization, enter the name below.
</p>
<logic:present name="cookieList" scope="request">
<h2>
-Recently used institutions:
+Recently used organizations:
</h2>
@@ -178,6 +178,7 @@ Recently used institutions:
simulating the user having specified a permanent cookie -->
</logic:present>
+
<logic:iterate id="site" name="cookieList">
<p class="text">
<logic:present name="entityID" scope="request">
@@ -230,13 +231,54 @@ Recently used institutions:
</div>
</form>
- </logic:present>
+ </logic:present> <!-- Previous Selections -->
- <div class="list">
+<logic:present name="showComments" scope="Request">
+
+<!-- PROGRAMMING NOTE
+
+ Add the "instant serach" dialogue.
+
+</logic:present>
+ <div class="list">
+ <logic:present name="sites" scope="request">
+ <h2>
+ Enter insititution name:
+ </h2>
+ <form autocomplete="OFF" action="">
+ <div>
+ <logic:notPresent name="entityID" scope="request">
+ <input type="hidden" name="shire" value="<bean:write name="shire" />" />
+ <input type="hidden" name="target" value="<bean:write name="target" />" />
+ <input type="hidden" name="providerId" value="<bean:write name="providerId" />" />
+ <logic:present name="time" scope="request">
+ <input type="hidden" name="time" value="<bean:write name="time" />" />
+ </logic:present>
+ </logic:notPresent>
+ <logic:present name="entityID" scope="request">
+ <input type="hidden" name="entityID" value="<bean:write name="entityID" />" />
+ <input type="hidden" name="returnX" value="<bean:write name="returnX" />" />
+ <input type="hidden" name="returnIDParam" value="<bean:write name="returnIDParam" />" />
+ </logic:present>
+ <input type="hidden" id="enterOrigin" name="origin" value="unspec" />
+ <input type="hidden" id="enterType" name="action" value="search" />
+ <input type="text" id="enterText" name="string" value="" tabindex="25" size="54"/>
+ <input type="submit" id="enterSubmit" value="Search"/>
+ <input type="hidden" name="cache" value="perm"/>
+ </div>
+ </form>
+ </logic:present>
+
<h2>
-Choose from a list:
+<logic:present name="showComments" scope="Request">
+
+Provide a static drop down or a dynamically republished one. - you may wish to remove this code
+
+</logic:present>
+
+Or choose from a list:
</h2>
@@ -259,7 +301,7 @@ Choose from a list:
<input type="hidden" name="returnIDParam" value="<bean:write name="returnIDParam" />" />
</logic:present>
<input type="hidden" name="action" value="selection" />
- <select name="origin" tabindex="40">
+ <select name="origin" id="hackForie6" tabindex="40">
<logic:iterate id="site" name="sites">
<option value="<jsp:getProperty name="site" property="name" />">
<jsp:getProperty name="site" property="displayName" />
@@ -314,7 +356,7 @@ Choose from a list:
<table id="tab">
<tr>
<th>Federation </th>
- <th>Institution</th>
+ <th>organization</th>
</tr>
<tr><td>
<select name="FedSelector" size="10" id="FedSelect" tabindex="30"
@@ -378,7 +420,14 @@ Choose from a list:
</form>
</logic:present>
</div>
+
+
<div class="search">
+
+<logic:present name="showComments" scope="Request">
+
+<!-- This is here for completeness - it shows the "old fashioned way" to do search -->
+
<span class="option">or</span>
<h2>
@@ -412,6 +461,9 @@ Search by keyword:
</div>
</form>
+<!-- The end of the old code. Below is where search results go 00>
+
+</logic:present>
<logic:present name="searchResultsEmpty" scope="request">
<p class="error">
@@ -540,7 +592,54 @@ function changedFed(X, Selected) {
-->
</script>
</logic:present>
-
+
+<logic:present name="sites" scope="request">
+
+<logic:present name="showComments" scope="Request">
+ <!-- Load the autosuggest code.
+
+ PROGRAMMING NOTE - the "ie6Hack" is to do with an issue in ie6 in which the
+ psuedo drop down floats below the real dropdown. The hack is that we jsut disable
+ the real drop down when the pseudo one is about. This can seem weird for some
+ layouts and so if you are not deploying against ie6 you can just send an
+ empty array.
+ -->
+</logic:present>
+ <script language="javascript" type="text/javascript" src="Suggest.js"></script>
+ <script language="javascript" type="text/javascript">
+<!--
+window.onload = function() {
+
+<logic:notPresent name="siteLists" scope="request">
+ var ie6Hack = [ document.getElementById("hackForie6")];
+</logic:notPresent>
+
+<logic:present name="siteLists" scope="request">
+ var ie6Hack = [ document.getElementById("FedSelect"), document.getElementById("originIdp")];
+</logic:present>
+ var control = new TypeAheadControl(theElements,
+ document.getElementById("enterText"),
+ document.getElementById("enterOrigin"),
+ document.getElementById("enterSubmit"),
+ document.getElementById("enterType"),
+ ie6Hack);
+
+
+ document.getElementById("enterText").focus();
+}
+
+
+var theElements = [
+ <logic:iterate id="site" name="sites">
+ ["<%= ((edu.internet2.middleware.shibboleth.wayf.IdPSite)site).getDisplayName().replace("\n","").toString() %>",
+ "<jsp:getProperty name="site" property="name" />"],
+ </logic:iterate>
+ ];
+
+-->
+ </script>
+</logic:present>
+
</body>
</html>