<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">FAO: Rod Widdowson et al</div><div class=""><br class=""></div>I'm going to leave this here, since the shibboleth-ds on JIRA appears to have a versioning issue on its setup (its missing the idpselect_languages.js from the build by quick look), but can't login there to submit properly:<div class=""><br class=""></div><div class="">Issue with preferedIdPs not detecting overlap with userSelectedIdPs.</div><div class=""><br class=""></div><div class="">Suggested fix with relatively clunky javascript implementation:</div><div class=""><br class=""></div><div class=""><div class=""><font face="Courier New" class=""> var getPreferredIdPs = function() {</font></div><div class=""><font face="Courier New" class=""> var idps = [];</font></div><div class=""><font face="Courier New" class=""> var i;</font></div><span style="font-family: 'Courier New';" class=""> var j;</span></div><div class=""><font face="Courier New" class=""> var insert;<br class=""></font><div class=""><font face="Courier New" class=""> var idp;</font></div><div class=""><font face="Courier New" class=""><br class=""></font></div><div class=""><font face="Courier New" class=""> //</font></div><div class=""><font face="Courier New" class=""> // populate start of array with preselected IdPs</font></div><div class=""><font face="Courier New" class=""> //</font></div><div class=""><font face="Courier New" class=""> if (null != preferredIdP){</font></div><div class=""><font face="Courier New" class=""> for (i=0; i < preferredIdP.length && i < maxPreferredIdPs-1; i++){</font></div><div class=""><font face="Courier New" class=""> idps[i] = getIdPFor(preferredIdP[i]);</font></div><div class=""><font face="Courier New" class=""> }</font></div><div class=""><font face="Courier New" class=""> }</font></div><div class=""><font face="Courier New" class=""> </font></div><div class=""><font face="Courier New" class=""> //</font></div><div class=""><font face="Courier New" class=""> // And then the cookie based ones</font></div><div class=""><font face="Courier New" class=""> //</font></div><div class=""><font face="Courier New" class=""> userSelectedIdPs = retrieveUserSelectedIdPs();</font></div><div class=""><font face="Courier New" class=""> for (i=0; i < userSelectedIdPs.length && idps.length < maxPreferredIdPs; i++){</font></div><div class=""><font face="Courier New" class=""> idp = getIdPFor(userSelectedIdPs[i]);</font></div><div class=""><font face="Courier New" class=""> insert = true;</font></div><div class=""><font face="Courier New" class=""> for (j = 0; j < idps.length; j++){</font></div><div class=""><font face="Courier New" class=""> if (idps[j] === idp){</font></div><div class=""><font face="Courier New" class=""> insert = false;</font></div><div class=""><font face="Courier New" class=""> }</font></div><div class=""><font face="Courier New" class=""> }</font></div><div class=""><font face="Courier New" class=""> if (insert){</font></div><div class=""><font face="Courier New" class=""> idps.push(idp);</font></div><div class=""><font face="Courier New" class=""> }</font></div><div class=""><font face="Courier New" class=""> }</font></div><div class=""><font face="Courier New" class=""> return idps;</font></div><div class=""><font face="Courier New" class=""> };</font></div></div><div class=""><br class=""></div><div class="">PS. also modified the second cycler to run from idps.length, removing the need for offset etc.</div><div class=""><br class=""></div><div class="">If anyone knows a better way of comparing objects within an array in javascript that could be of use here.</div><div class=""><br class=""></div><div class="">Regards,</div><div class=""><br class=""><div apple-content-edited="true" class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Callum Smith</div><div class="">Instruct & Strubi Web Developer</div><div class="">University of Oxford</div><div class="">e. <a href="mailto:callum@strubi.ox.ac.uk" class="">callum@strubi.ox.ac.uk</a></div><div class="">p. +44 (0)1865 2 87782</div></div></div><br class=""></div></body></html>