CreateFedlet.jsp revision e8721886dbfd32e88cc7077cbee4b6bb1b44b443
1689N/A<%--
1689N/A DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
1689N/A
1689N/A Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
1689N/A
1689N/A The contents of this file are subject to the terms
1689N/A of the Common Development and Distribution License
1689N/A (the License). You may not use this file except in
6983N/A compliance with the License.
6983N/A
1689N/A You can obtain a copy of the License at
1689N/A https://opensso.dev.java.net/public/CDDLv1.0.html or
1689N/A opensso/legal/CDDLv1.0.txt
1689N/A See the License for the specific language governing
6983N/A permission and limitations under the License.
6983N/A
6983N/A When distributing Covered Code, include this CDDL
6983N/A Header Notice in each file and include the License file
1689N/A at opensso/legal/CDDLv1.0.txt.
1689N/A If applicable, add the following below the CDDL Header,
1689N/A with the fields enclosed by brackets [] replaced by
1689N/A your own identifying information:
1689N/A "Portions Copyrighted [year] [name of copyright owner]"
5154N/A
7238N/A $Id: CreateFedlet.jsp,v 1.13 2009/08/14 18:32:47 asyhuang Exp $
1689N/A
1689N/A--%>
1689N/A
1689N/A<%@ page info="CreateFedlet" language="java" %>
1689N/A<%@taglib uri="/WEB-INF/jato.tld" prefix="jato" %>
1689N/A<%@taglib uri="/WEB-INF/cc.tld" prefix="cc" %>
1689N/A<%
3352N/A request.setCharacterEncoding("UTF-8");
3853N/A%>
1689N/A<jato:useViewBean
1689N/A className="com.sun.identity.console.task.CreateFedletViewBean"
1689N/A fireChildDisplayEvents="true" >
1689N/A
6375N/A<cc:i18nbundle baseName="amConsole" id="amConsole"
3352N/A locale="<%=((com.sun.identity.console.base.AMViewBeanBase)viewBean).getUserLocale()%>"/>
1689N/A
1689N/A<cc:header name="hdrCommon" pageTitle="webconsole.title" bundleID="amConsole" copyrightYear="2008" fireDisplayEvents="true">
7238N/A
7238N/A<link rel="stylesheet" type="text/css" href="../console/css/openam.css" />
7238N/A<script language="javascript" src="../console/js/am.js"></script>
7238N/A<script language="javascript" src="../console/js/tasksPage.js"></script>
7238N/A<script language="javascript" src="../com_sun_web_ui/js/dynamic.js"></script>
1689N/A
1689N/A<div id="main" style="position: absolute; margin: 0; border: none; padding: 0; width:auto; height:101%;">
1689N/A<div id="divhelp" style="display: none; position:absolute; margin: 0; border: 1px solid #AABCC8; padding: 0; width:400px; height:200px; background:#FCFCFC">
1689N/A<table border=0 cellpadding=2 cellspacing=0 width="100%">
1689N/A<tr><td width=99%><span id="divHelpmsg" /></td>
1689N/A<td width="1%" valign="top">
1689N/A<img src="../console/images/tasks/close.gif" width="16" height="16" onClick="hideHelp()" />
1689N/A</td>
1689N/A</tr>
6375N/A</table>
1689N/A</div>
1689N/A
1689N/A<cc:form name="CreateFedlet" method="post">
1689N/A<jato:hidden name="szCache" />
1689N/A<script language="javascript">
1689N/A function confirmLogout() {
6375N/A return confirm("<cc:text name="txtLogout" defaultValue="masthead.logoutMessage" bundleID="amConsole"/>");
1689N/A }
1689N/A
6375N/A function cancelOp() {
1689N/A document.location.replace("../task/Home");
1689N/A return false;
6375N/A }
1689N/A
1689N/A function realmSelect(radio) {
6375N/A hideCOTObjs();
1689N/A hideIDPObjs();
1689N/A getCircleOfTrust(radio.value);
6375N/A var choiceCOT = frm.elements['CreateFedlet.choiceCOT'];
6375N/A if(choiceCOT.length>0) {
6375N/A cotSelect(choiceCOT.options[0]);
6375N/A }
1689N/A }
1689N/A
6375N/A function cotSelect(radio) {
1689N/A getIDP(radio.value);
1689N/A var idpobj = frm.elements['CreateFedlet.choiceIDP'];
1689N/A if (idpobj.options.length > 1) {
1689N/A showIDPObjs();
1689N/A }
1689N/A }
1689N/A
1689N/A function hideRealm() {
1689N/A var frm = document.forms['CreateFedlet'];
1689N/A var realmobj = frm.elements['CreateFedlet.tfRealm'];
1689N/A if (realmobj.options.length < 2) {
1689N/A hideRealmObjs();
1689N/A }
1689N/A var cotobj = frm.elements['CreateFedlet.choiceCOT'];
1689N/A if (cotobj.options.length < 2) {
1689N/A document.getElementById('cotfld').style.display = 'none';
1689N/A document.getElementById('cottxt').innerHTML = cotobj.value;
1689N/A }
1689N/A var idpobj = frm.elements['CreateFedlet.choiceIDP'];
1689N/A if (idpobj.options.length < 2) {
1689N/A document.getElementById('idpfld').style.display = 'none';
1689N/A document.getElementById('idptxt').innerHTML = idpobj.value;
1689N/A }
1689N/A }
1689N/A
1689N/A function hideRealmObjs() {
1689N/A document.getElementById('realmlbl').style.display = 'none';
1689N/A document.getElementById('realmfld').style.display = 'none';
1689N/A }
1689N/A
1689N/A function showCOTObjs() {
1689N/A document.getElementById('cotlbl').style.display = '';
1689N/A document.getElementById('cotfld').style.display = '';
1689N/A }
1689N/A
1689N/A function hideCOTObjs() {
1689N/A document.getElementById('cotlbl').style.display = 'none';
1689N/A document.getElementById('cotfld').style.display = 'none';
1689N/A }
1689N/A
1689N/A function showIDPObjs() {
1689N/A document.getElementById('idplbl').style.display = '';
1689N/A document.getElementById('idpfld').style.display = '';
1689N/A }
1689N/A
1689N/A function hideIDPObjs() {
1689N/A document.getElementById('idplbl').style.display = 'none';
1689N/A document.getElementById('idpfld').style.display = 'none';
1689N/A }
1689N/A
1689N/A</script>
1689N/A
1689N/A<cc:primarymasthead name="mhCommon" bundleID="amConsole" logoutOnClick="return confirmLogout();" locale="<%=((com.sun.identity.console.base.AMViewBeanBase)viewBean).getUserLocale()%>"/>
1689N/A<table border="0" cellpadding="10" cellspacing="0" width="100%">
1689N/A <tr>
1689N/A <td>
1689N/A <cc:alertinline name="ialertCommon" bundleID="amConsole" />
1689N/A </td>
1689N/A </tr>
4134N/A</table>
1689N/A
1689N/A<%-- PAGE CONTENT --------------------------------------------------------- --%>
1689N/A<cc:pagetitle name="pgtitle" bundleID="amConsole" pageTitleText="page.title.create.fedlet" showPageTitleSeparator="true" viewMenuLabel="" pageTitleHelpMessage="" showPageButtonsTop="true" showPageButtonsBottom="false" />
1689N/A
1689N/A<table border="0" cellpadding="20" cellspacing="0">
1689N/A<tr><td>
1689N/A <cc:text name="txtDesc" defaultValue="page.desc.create.fedlet" bundleID="amConsole" />
1689N/A</td></tr>
1689N/A</table>
1689N/A
1689N/A
1689N/A<cc:propertysheet name="propertyAttributes" bundleID="amConsole" showJumpLinks="false"/>
7238N/A
6375N/A</cc:form>
1689N/A</cc:header>
1689N/A</div>
1689N/A<div id="dlg" class="dvs" style="width:600px; height: 225px; margin-left:-300px"></div>
1689N/A
1689N/A<script language="javascript">
7238N/A
6375N/A var msgCreating = "<p><img src=\"../console/images/processing.gif\" width=\"66\" height\"66\"/></p><cc:text name="txtConfiguring" defaultValue="creating.fedlet.waiting" bundleID="amConsole" escape="false" />";
1689N/A var ttlCreated = "<h3><cc:text name="txtTtlCreated" defaultValue="fedlet.created.title" escape="false" bundleID="amConsole" /></h3>";
1689N/A var msgCreated = "<p>&nbsp;</p><input name=\"btnOK\" type=\"submit\" class=\"Btn1\" value=\"<cc:text name="txtOKBtn" defaultValue="ajax.ok.button" bundleID="amConsole" />\" onClick=\"document.location.replace(\'../task/Home\');return false;\" /></div></p>";
1689N/A var closeBtn = "<p>&nbsp;</p><p><div class=\"TtlBtnDiv\"><input name=\"btnClose\" type=\"submit\" class=\"Btn1\" value=\"<cc:text name="txtCloseBtn" defaultValue="ajax.close.button" bundleID="amConsole" />\" onClick=\"focusMain();return false;\" /></div></p>";
1689N/A
1689N/Avar msgMissingAttrMappingValues = "<cc:text name="txtMissingAttrValues" defaultValue="configure.provider.missing.attribute.mapping.values" bundleID="amConsole" escape="false" />" + "<p>" + closeBtn + "</p>";
1689N/A
1689N/A var frm = document.forms['CreateFedlet'];
7238N/A var btn1 = frm.elements['CreateFedlet.button1'];
6375N/A btn1.onclick = submitPage;
1689N/A var btn2 = frm.elements['CreateFedlet.button2'];
1689N/A btn2.onclick = cancelOp;
1689N/A var ajaxObj = getXmlHttpRequestObject();
1689N/A var userLocale = "<%= viewBean.getUserLocale().toString() %>";
1689N/A
1689N/A function submitPage() {
1689N/A document.getElementById('dlg').style.top = '300px';
1689N/A fade();
1689N/A document.getElementById('dlg').innerHTML = '<center>' +
1689N/A msgCreating + '</center>';
1689N/A var url = "../console/ajax/AjaxProxy.jsp";
1689N/A var params = 'locale=' + userLocale +
1689N/A '&class=com.sun.identity.workflow.CreateFedlet' + getData();
2086N/A ajaxPost(ajaxObj, url, params, configured);
1689N/A return false;
1689N/A }
1689N/A
1689N/A function getData() {
1689N/A var cot = frm.elements['CreateFedlet.choiceCOT'].value;
7238N/A var idp = frm.elements['CreateFedlet.choiceIDP'].value;
6375N/A var realm = frm.elements['CreateFedlet.tfRealm'].value;
1689N/A var entityId = frm.elements['CreateFedlet.tfEntityId'].value;
1689N/A var assertConsumer = frm.elements['CreateFedlet.tfAssertConsumer'].value;
1689N/A
1689N/A return "&realm=" + escapeEx(realm) +
1689N/A "&cot=" + escapeEx(cot) +
7238N/A "&idp=" + escapeEx(idp) +
6375N/A "&entityId=" + escapeEx(entityId) +
1689N/A "&assertionconsumer=" + escapeEx(assertConsumer) +
1689N/A "&attributemappings=" + escapeEx(getNameAttributeMapping());
1689N/A }
1689N/A
1689N/A function getNameAttributeMapping() {
1689N/A var attrMappings = '';
1689N/A var table = getActionTable();
7238N/A var rows = table.getElementsByTagName('TR');
6375N/A for (var i = rows.length-1; i >=3; --i) {
1689N/A var inputs = rows[i].getElementsByTagName('input');
1689N/A var cb = inputs[0];
1689N/A attrMappings += cb.getAttribute("value") + '|';
1689N/A }
1689N/A return attrMappings;
1689N/A }
1689N/A
7238N/A
6375N/A function configured() {
1689N/A if (ajaxObj.readyState == 4) {
1689N/A var result = hexToString(ajaxObj.responseText);
1689N/A var status = result.substring(0, result.indexOf('|'));
1689N/A var result = result.substring(result.indexOf('|') +1);
1689N/A var msg = '<center><p>' + result + '</p></center>';
1689N/A if (status == 0) {
1689N/A msg = '<center>' + ttlCreated + msg + msgCreated + '</center>';
1689N/A } else {
3853N/A msg = msg + '<center>' + closeBtn + '</center>';
3853N/A }
3853N/A document.getElementById('dlg').innerHTML = msg;
3853N/A }
3853N/A }
3853N/A
3853N/A function getCircleOfTrust(realm) {
3853N/A var url = "../console/ajax/AjaxProxy.jsp";
3853N/A var params = 'locale=' + userLocale +
3853N/A '&class=com.sun.identity.workflow.GetCircleOfTrusts' +
3853N/A '&realm=' + escapeEx(realm);
3853N/A ajaxPost(ajaxObj, url, params, circleOfTrust);
5791N/A }
3853N/A
3853N/A function getIDP(cot) {
7238N/A clearOptions(frm, 'CreateFedlet.choiceIDP');
3853N/A var url = "../console/ajax/AjaxProxy.jsp";
3853N/A var realm = frm.elements['CreateFedlet.tfRealm'].value;
7238N/A var params = 'locale=' + userLocale +
7238N/A '&class=com.sun.identity.workflow.GetHostedIDPs' +
3853N/A '&realm=' + escapeEx(realm) +
3853N/A '&cot=' + escapeEx(cot);
3853N/A ajaxPost(ajaxObj, url, params, gotIDPs);
1689N/A }
1689N/A
1689N/A function circleOfTrust() {
1689N/A if (ajaxObj.readyState == 4) {
1689N/A var result = hexToString(ajaxObj.responseText);
1689N/A var status = result.substring(0, result.indexOf('|'));
1689N/A var result = result.substring(result.indexOf('|') +1);
1689N/A var msg = '';
1689N/A if (status == 0) {
2086N/A result = result.replace(/^\s+/, '');
1689N/A result = result.replace(/\s+$/, '');
1689N/A if (result.length == 0) {
1689N/A } else {
1689N/A var cots = result.split('|');
1689N/A var choiceCOT = frm.elements['CreateFedlet.choiceCOT'];
1689N/A for (var i = choiceCOT.length - 1; i>=0; i--) {
7238N/A choiceCOT.remove(i);
6375N/A }
1689N/A for (var i = 0; i < cots.length; i++) {
1689N/A choiceCOT.options[i] = new Option(cots[i], cots[i]);
1689N/A }
1689N/A showCOTObjs();
1689N/A }
1689N/A if (presetcot) {
7238N/A selectOption(frm, 'CreateFedlet.choiceCOT', presetcot);
6375N/A presetcot = null;
1689N/A }
1689N/A } else {
1689N/A msg = '<center><p>' + result + '</p></center>';
1689N/A msg = msg + '<center>' + closeBtn + '</center>';
1689N/A document.getElementById('dlg').innerHTML = msg;
1689N/A ajaxObj = getXmlHttpRequestObject();
1689N/A }
1689N/A }
7238N/A }
6375N/A
1689N/A function gotIDPs() {
1689N/A if (ajaxObj.readyState == 4) {
1689N/A var result = hexToString(ajaxObj.responseText);
1689N/A var status = result.substring(0, result.indexOf('|'));
1689N/A var result = result.substring(result.indexOf('|') +1);
7238N/A var msg = '';
6375N/A if (status == 0) {
1689N/A result = result.replace(/^\s+/, '');
1689N/A result = result.replace(/\s+$/, '');
1689N/A if (result.length == 0) {
1689N/A } else {
1689N/A var idps = result.split('|');
7238N/A var choiceIDP = frm.elements['CreateFedlet.choiceIDP'];
6375N/A for (var i = 0; i < idps.length; i++) {
1689N/A choiceIDP.options[i] = new Option(idps[i], idps[i]);
1689N/A }
1689N/A showIDPObjs();
1689N/A }
1689N/A } else {
7238N/A msg = '<center><p>' + result + '</p></center>';
6375N/A msg = msg + '<center>' + closeBtn + '</center>';
1689N/A document.getElementById('dlg').innerHTML = msg;
1689N/A ajaxObj = getXmlHttpRequestObject();
1689N/A }
1689N/A }
1689N/A }
7238N/A
6375N/A
1689N/A function addAttrMapping() {
1689N/A var name = frm.elements['CreateFedlet.tfAttrMappingName'].value;
1689N/A var assertn = frm.elements['CreateFedlet.tfAttrMappingAssertion'].value;
1689N/A name = name.replace(/^\s+/, '');
1689N/A name = name.replace(/\s+$/, '');
1689N/A assertn = assertn.replace(/^\s+/, '');
1689N/A assertn = assertn.replace(/\s+$/, '');
1689N/A if ((name == '') || (assertn == '')) {
1689N/A document.getElementById('dlg').style.top = '450px';
1689N/A fade();
1689N/A document.getElementById('dlg').innerHTML = '<center>' +
7238N/A msgMissingAttrMappingValues + '</center>';
6375N/A } else {
1689N/A addPropertyRow(name, assertn);
1689N/A frm.elements['CreateFedlet.tfAttrMappingName'].value = '';
1689N/A frm.elements['CreateFedlet.tfAttrMappingAssertion'].value = '';
1689N/A }
1689N/A }
7238N/A
6375N/A function addPropertyRow(name, assertn) {
1689N/A var table = getActionTable();
1689N/A var tBody = table.getElementsByTagName("TBODY").item(0);
1689N/A var row = document.createElement("TR");
1689N/A var cell1 = document.createElement("TD");
1689N/A var cell2 = document.createElement("TD");
1689N/A var cell3 = document.createElement("TD");
1689N/A
3352N/A cell1.setAttribute("align", "center");
3352N/A cell1.setAttribute("valign", "top");
1689N/A
3352N/A var cb = document.createElement("input");
3352N/A var textnode1 = document.createTextNode(assertn);
3352N/A var textnode2 = document.createTextNode(name);
1689N/A cb.setAttribute("type", "checkbox");
1881N/A cb.setAttribute("value", assertn + "=" + name);
1881N/A cb.onclick = function() {toggleTblButtonState('CreateFedlet', 'CreateFedlet.tblattrmapping', 'tblButton', 'CreateFedlet.deleteAttrMappingBtn', this);};
1881N/A cell1.appendChild(cb);
1881N/A cell2.appendChild(textnode1);
3352N/A cell3.appendChild(textnode2);
1689N/A row.appendChild(cell1);
3352N/A row.appendChild(cell2);
3352N/A row.appendChild(cell3);
3352N/A tBody.appendChild(row);
1689N/A }
3352N/A
3352N/A function getActionTable() {
3352N/A var nodes = document.getElementsByTagName("table");
3352N/A var len = nodes.length;
1689N/A for (var i = 0; i < len; i++) {
3352N/A if (nodes[i].className == 'Tbl') {
3352N/A return nodes[i];
3352N/A }
3352N/A }
1689N/A }
1689N/A
1689N/A function deletePropertyRow() {
3352N/A var table = getActionTable();
3352N/A var rows = table.getElementsByTagName('TR');
1689N/A for (var i = rows.length-1; i >=3; --i) {
1689N/A var inputs = rows[i].getElementsByTagName('input');
1689N/A var cb = inputs[0];
1689N/A if (cb.checked) {
1689N/A table.deleteRow(i-1);
1689N/A }
3352N/A }
1689N/A tblBtnCounter['tblButton'] = 0;
1689N/A ccSetButtonDisabled('CreateFedlet.deleteAttrMappingBtn', 'CreateFedlet', true);
1689N/A return false;
1689N/A }
1689N/A
1689N/A function userAttrSelect(menu) {
1689N/A frm.elements['CreateFedlet.tfAttrMappingName'].value = menu.value;
1689N/A }
1689N/A
1689N/A var presetcot = null;
1689N/A
1689N/A<%
3352N/A String cot = request.getParameter("cot");
1689N/A String idp = request.getParameter("entityId");
1689N/A if ((cot != null) && (cot.trim().length() > 0)) {
1881N/A out.println("hideRealmObjs();");
1881N/A out.println("hideIDPObjs();");
3352N/A out.println("presetcot = \"" + cot + "\";");
3352N/A out.println("document.getElementById('cotfld').style.display = 'none';");
3352N/A out.println("document.getElementById('cottxt').innerHTML = \"" +
3352N/A cot + "\";");
3352N/A out.println("document.getElementById('idpfld').style.display = 'none';");
3352N/A out.println("document.getElementById('idplbl').style.display = '';");
3352N/A out.println("document.getElementById('idptxt').innerHTML = \"" +
1881N/A idp + "\";");
3352N/A } else {
3352N/A out.println("hideRealm();");
3352N/A }
3352N/A
3352N/A%>
3352N/A getActionTable().deleteRow(2);
1881N/A
1881N/A function unescapeQuote(str) {
1881N/A str = str.replace(/&quot;/g, '"');
1881N/A str = str.replace(/&lt;/g, '<');
5154N/A str = str.replace(/&gt;/g, '>');
5154N/A return str;
5154N/A }
3352N/A
3352N/A var infoRealm = unescapeQuote("<cc:text name="txtInfoRealm" defaultValue="create.fedlet.help.realm" bundleID="amConsole" />");
3352N/A var infoEntityId = unescapeQuote("<cc:text name="txtInfoEntityId" defaultValue="create.fedlet.help.entity.id" bundleID="amConsole" />");
3352N/A var infoAssertConsumer = unescapeQuote("<cc:text name="txtInfoAssertConsumer" defaultValue="create.fedlet.help.assert.consumer" bundleID="amConsole" />");
3352N/A var infoMenuUserAttributes = unescapeQuote("<cc:text name="txtInfoMenuUserAttributes" defaultValue="configure.provider.help.user.attributes.choices" bundleID="amConsole" />");
3352N/A
3352N/A</script>
3352N/A
3902N/A</jato:useViewBean>
3902N/A