You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by ki...@apache.org on 2015/06/09 03:30:37 UTC

svn commit: r1684303 [2/18] - in /manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp: ./ css/ javascript/ less/

Modified: manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editauthority.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editauthority.jsp?rev=1684303&r1=1684302&r2=1684303&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editauthority.jsp (original)
+++ manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editauthority.jsp Tue Jun  9 01:30:36 2015
@@ -2,621 +2,574 @@
 
 <%
 
-/* $Id$ */
+  /* $Id$ */
 
 /**
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You 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.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
 %>
 
 <%
-    // The contract of this edit page is as follows.  It is either called directly, in which case it is expected to be creating
-    // a connection or beginning the process of editing an existing connection, or it is called via redirection from execute.jsp, in which case
-    // the connection object being edited will be placed in the thread context under the name "ConnectionObject".
-    try
-    {
-	// Get the domain manager handle
-	IAuthorizationDomainManager domainMgr = AuthorizationDomainManagerFactory.make(threadContext);
-	// Get the connection manager handle
-	IAuthorityConnectionManager connMgr = AuthorityConnectionManagerFactory.make(threadContext);
-	// Also get the list of available connectors
-	IAuthorityConnectorManager connectorManager = AuthorityConnectorManagerFactory.make(threadContext);
-	// Get the mapping connection manager
-	IMappingConnectionManager mappingConnMgr = MappingConnectionManagerFactory.make(threadContext);
-	// Get the group manager
-	IAuthorityGroupManager authGroupManager = AuthorityGroupManagerFactory.make(threadContext);
-	
-	// Figure out what the current tab name is.
-	String tabName = variableContext.getParameter("tabname");
-	if (tabName == null || tabName.length() == 0)
-		tabName = Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Name");
-
-	String connectionName = null;
-	IAuthorityConnection connection = (IAuthorityConnection)threadContext.get("ConnectionObject");
-	if (connection == null)
-	{
-		// We did not go through execute.jsp
-		// We might have received an argument specifying the connection name.
-		connectionName = variableContext.getParameter("connname");
-		// If the connectionname is not null, load the connection description and prepopulate everything with what comes from it.
-		if (connectionName != null && connectionName.length() > 0)
-		{
-			connection = connMgr.load(connectionName);
-		}
-	}
-
-	// Setup default fields
-	boolean isNew = true;
-	String description = "";
-	String className = "";
-	int maxConnections = 10;
-	ConfigParams parameters = new ConfigParams();
-	String prereq = null;
-	String authDomain = "";
-	String groupName = "";
-	
-	if (connection != null)
-	{
-		// Set up values
-		isNew = connection.getIsNew();
-		connectionName = connection.getName();
-		description = connection.getDescription();
-		className = connection.getClassName();
-		parameters = connection.getConfigParams();
-		maxConnections = connection.getMaxConnections();
-		prereq = connection.getPrerequisiteMapping();
-		authDomain = connection.getAuthDomain();
-		if (authDomain == null)
-			authDomain = "";
-		groupName = connection.getAuthGroup();
-		if (groupName == null)
-			groupName = "";
-	}
-	else
-		connectionName = null;
-
-	if (connectionName == null)
-		connectionName = "";
-
-	// Initialize tabs array
-	ArrayList tabsArray = new ArrayList();
-
-	// Set up the predefined tabs
-	tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Name"));
-	tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Type"));
-	if (className.length() > 0)
-	{
-		tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Prerequisites"));
-		tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Throttling"));
-	}
-
-%>
-
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html>
-<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-	<link rel="StyleSheet" href="style.css" type="text/css" media="screen"/>
-	<title>
-		<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.ApacheManifoldCFEditAuthority")%>
-	</title>
-
-	<script type="text/javascript">
-	<!--
-	// Use this method to repost the form and pick a new tab
-	function SelectTab(newtab)
-	{
-		if (checkForm())
-		{
-			document.editconnection.tabname.value = newtab;
-			document.editconnection.submit();
-		}
-	}
-
-	// Use this method to repost the form,
-	// and set the anchor request.
-	function postFormSetAnchor(anchorValue)
-	{
-		if (checkForm())
-		{
-			if (anchorValue != "")
-				document.editconnection.action = document.editconnection.action + "#" + anchorValue;
-			document.editconnection.submit();
-		}
-	}
-
-	// Use this method to repost the form
-	function postForm()
-	{
-		if (checkForm())
-		{
-			document.editconnection.submit();
-		}
-	}
-
-	function Save()
-	{
-		if (checkForm())
-		{
-			// Can't submit until all required fields have been set.
-			// Some of these don't live on the current tab, so don't set
-			// focus.
-
-			// Check our part of the form, for save
-			if (editconnection.connname.value == "")
-			{
-				alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.ConnectionMustHaveAName")%>");
-				SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.Name")%>");
-				document.editconnection.connname.focus();
-				return;
-			}
-			if (editconnection.authoritygroup.value == "")
-			{
-				alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.ConnectionMustHaveAGroup")%>");
-				SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.Type")%>");
-				document.editconnection.authoritygroup.focus();
-				return;
-			}
-			if (window.checkConfigForSave)
-			{
-				if (!checkConfigForSave())
-					return;
-			}
-			document.editconnection.op.value="Save";
-			document.editconnection.submit();
-		}
-	}
-
-	function Continue()
-	{
-		document.editconnection.op.value="Continue";
-		postForm();
-	}
-
-	function Cancel()
-	{
-		document.editconnection.op.value="Cancel";
-		document.editconnection.submit();
-	}
-
-	function checkForm()
-	{
-		if (!checkConnectionCount())
-			return false;
-		if (window.checkConfig)
-			return checkConfig();
-		return true;
-	}
-
-	function checkConnectionCount()
-	{
-		if (!isInteger(editconnection.maxconnections.value))
-		{
-			alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.TheMaximumNumberOfConnectionsMustBeAValidInteger")%>");
-			editconnection.maxconnections.focus();
-			return false;
-		}
-		return true;
-	}
-
-	function isRegularExpression(value)
-	{
-		try
-		{
-			var foo = "teststring";
-                        foo.search(value.replace(/\(\?i\)/,""));
-			return true;
-		}
-		catch (e)
-		{
-			return false;
-		}
-
-	}
-
-	function isInteger(value)
-	{
-		var anum=/(^\d+$)/;
-		return anum.test(value);
-	}
-
-	//-->
-	</script>
-<%
-	AuthorityConnectorFactory.outputConfigurationHeader(threadContext,className,new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),parameters,tabsArray);
-
-	// Get connectors, since this will be needed to determine what to display.
-	IResultSet set = connectorManager.getConnectors();
-	// Same for authority groups
-	IAuthorityGroup[] set2 = authGroupManager.getAllGroups();
-
-%>
-
-</head>
-
-<body class="standardbody">
-
-    <table class="page">
-      <tr><td colspan="2" class="banner"><jsp:include page="banner.jsp" flush="true"/></td></tr>
-      <tr><td class="navigation"><jsp:include page="navigation.jsp" flush="true"/></td>
-       <td class="darkwindow">
-<%
-	if (set2.length == 0)
-	{
-%>
-	<p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.EditAuthorityConnection")%></p>
-	<table class="displaytable"><tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.NoAuthorityGroupsDefinedCreateOneFirst")%></td></tr></table>
-<%
-	}
-	else if (set.getRowCount() == 0)
-	{
-%>
-	<p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.EditAuthorityConnection")%></p>
-	<table class="displaytable"><tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.NoAuthorityConnectorsRegistered")%></td></tr></table>
-<%
-	}
-	else
-	{
-%>
-	<form class="standardform" name="editconnection" action="execute.jsp" method="POST" enctype="multipart/form-data">
-	    <input type="hidden" name="op" value="Continue"/>
-	    <input type="hidden" name="type" value="authority"/>
-	    <input type="hidden" name="tabname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(tabName)%>'/>
-	    <input type="hidden" name="isnewconnection" value='<%=(isNew?"true":"false")%>'/>
-	    <table class="tabtable">
-	      <tr class="tabspacerrow">
-		<td class="spacertab" colspan="<%=tabsArray.size()%>"></td>
-		<td class="remaindertab" rowspan="3">
-<%
-	  if (description.length() > 0)
-	  {
-%>
-			  <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.EditAuthority")%> '<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description)%>'</nobr>
-<%
-	  }
-	  else
-	  {
-%>
-		          <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.EditAnAuthority")%></nobr>
-<%
-	  }
-%>
-		</td>
-	      </tr>
-	      <tr class="tabsequencerow">
-		<td class="blanksequencetab" colspan="<%=tabsArray.size()%>"></td>
-	      </tr>
-	      <tr class="tabrow">
-<%
-	  int tabNum = 0;
-	  while (tabNum < tabsArray.size())
-	  {
-		String tab = (String)tabsArray.get(tabNum++);
-		if (tab.equals(tabName))
-		{
-%>
-		      <td class="activetab"><nobr><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(tab)%></nobr></td>
-<%
-		}
-		else
-		{
-%>
-		      <td class="passivetab"><nobr><a href="javascript:void(0);" alt='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(tab)+" "+Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.tab")%>' onclick='<%="javascript:SelectTab(\""+tab+"\");return false;"%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(tab)%></a></nobr></td>
-<%
-		}
-	  }
-%>
-	      </tr>
-	      <tr class="tabbodyrow">
-		<td class="tabbody" colspan='<%=Integer.toString(tabsArray.size()+1)%>'>
+  // The contract of this edit page is as follows.  It is either called directly, in which case it is expected to be creating
+  // a connection or beginning the process of editing an existing connection, or it is called via redirection from execute.jsp, in which case
+  // the connection object being edited will be placed in the thread context under the name "ConnectionObject".
+  try {
+    // Get the domain manager handle
+    IAuthorizationDomainManager domainMgr = AuthorizationDomainManagerFactory.make(threadContext);
+    // Get the connection manager handle
+    IAuthorityConnectionManager connMgr = AuthorityConnectionManagerFactory.make(threadContext);
+    // Also get the list of available connectors
+    IAuthorityConnectorManager connectorManager = AuthorityConnectorManagerFactory.make(threadContext);
+    // Get the mapping connection manager
+    IMappingConnectionManager mappingConnMgr = MappingConnectionManagerFactory.make(threadContext);
+    // Get the group manager
+    IAuthorityGroupManager authGroupManager = AuthorityGroupManagerFactory.make(threadContext);
+
+    // Figure out what the current tab name is.
+    String tabName = variableContext.getParameter("tabname");
+    if (tabName == null || tabName.length() == 0)
+      tabName = Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Name");
+
+    String connectionName = null;
+    IAuthorityConnection connection = (IAuthorityConnection) threadContext.get("ConnectionObject");
+    if (connection == null) {
+      // We did not go through execute.jsp
+      // We might have received an argument specifying the connection name.
+      connectionName = variableContext.getParameter("connname");
+      // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it.
+      if (connectionName != null && connectionName.length() > 0) {
+        connection = connMgr.load(connectionName);
+      }
+    }
 
-<%
+    // Setup default fields
+    boolean isNew = true;
+    String description = "";
+    String className = "";
+    int maxConnections = 10;
+    ConfigParams parameters = new ConfigParams();
+    String prereq = null;
+    String authDomain = "";
+    String groupName = "";
+
+    if (connection != null) {
+      // Set up values
+      isNew = connection.getIsNew();
+      connectionName = connection.getName();
+      description = connection.getDescription();
+      className = connection.getClassName();
+      parameters = connection.getConfigParams();
+      maxConnections = connection.getMaxConnections();
+      prereq = connection.getPrerequisiteMapping();
+      authDomain = connection.getAuthDomain();
+      if (authDomain == null)
+        authDomain = "";
+      groupName = connection.getAuthGroup();
+      if (groupName == null)
+        groupName = "";
+    } else
+      connectionName = null;
+
+    if (connectionName == null)
+      connectionName = "";
+
+    // Initialize tabs array
+    ArrayList tabsArray = new ArrayList();
+
+    // Set up the predefined tabs
+    tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Name"));
+    tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Type"));
+    if (className.length() > 0) {
+      tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Prerequisites"));
+      tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Throttling"));
+    }
 
-	  // Name tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Name")))
-	  {
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.NameColon")%></nobr></td><td class="value" colspan="4">
-<%
-	    // If the connection doesn't exist yet, we are allowed to change the name.
-	    if (isNew)
-	    {
 %>
-					<input type="text" size="32" name="connname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
-<%
-	    }
-	    else
-	    {
-%>
-					<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(connectionName)%>
-					<input type="hidden" name="connname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
-<%
-	    }
-%>
-				</td>
-			</tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.DescriptionColon")%></nobr></td><td class="value" colspan="4">
-					<input type="text" size="50" name="description" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(description)%>'/>
-				</td>
-			</tr>
-		    </table>
-<%
-	  }
-	  else
-	  {
-		// Hiddens for the Name tab
-%>
-		    <input type="hidden" name="connname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
-		    <input type="hidden" name="description" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(description)%>'/>
-<%
-	  }
+<script type="text/javascript">
+  <!--
 
+  <%
+  String title = null;
+              if (description.length() > 0) {
+            title = Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.EditAuthority") + " - " + org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description);
+  } else {
+  title = Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.EditAnAuthority");
+    }
+  %>
 
-	  // "Type" tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Type")))
-	  {
-	    IResultSet domainSet = domainMgr.getDomains();
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.ConnectionTypeColon")%></nobr></td>
-				<td class="value" colspan="4">
-<%
-	    if (className.length() > 0)
-	    {
-		String value = connectorManager.getDescription(className);
-		if (value == null)
-		{
-%>
-					<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.UNREGISTERED")%> <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(className)%></nobr>
-<%
-		}
-		else
-		{
-%>
-					<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(value)%>
-<%
-		}
-%>
-					<input type="hidden" name="classname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(className)%>'/>
-<%
-	    }
-	    else
-	    {
-		int i = 0;
-%>
-					<select name="classname" size="1">
-<%
-		while (i < set.getRowCount())
-		{
-			IResultRow row = set.getRow(i++);
-			String thisClassName = row.getValue("classname").toString();
-			String thisDescription = row.getValue("description").toString();
-%>
-						<option value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(thisClassName)%>'
-							<%=className.equals(thisClassName)?"selected=\"selected\"":""%>><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(thisDescription)%></option>
-<%
-		}
-%>
-					</select>
-<%
-	    }
-%>
-				</td>
-			</tr>
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.AuthorityGroupColon")%></nobr></td>
-				<td class="value" colspan="1">
-					<select name="authoritygroup" size="1">
-						<option value=""><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.SelectAGroup")%></option>
-<%
-	    for (int i = 0; i < set2.length; i++)
-	    {
-		IAuthorityGroup row = set2[i];
-		String thisAuthorityName = row.getName();
-		String thisDescription = row.getDescription();
-		if (thisDescription == null || thisDescription.length() == 0)
-			thisDescription = thisAuthorityName;
-%>
-						<option value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(thisAuthorityName)%>'
-							<%=(groupName.equals(thisAuthorityName))?"selected=\"selected\"":""%>><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(thisDescription)%></option>
-<%
-	    }
-%>
-					</select>
-				</td>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.AuthorizationDomainColon")%></nobr></td>
-				<td class="value" colspan="1">
-					<select name="authdomain" size="1">
-						<option value="" <%=(authDomain == null || authDomain.length() == 0)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.DefaultDomainNone")%></option>
-<%
-	    for (int i = 0; i < domainSet.getRowCount(); i++)
-	    {
-		IResultRow row = domainSet.getRow(i);
-		String domainName = (String)row.getValue("domainname");
-		String thisDescription = (String)row.getValue("description");
-		if (thisDescription == null || thisDescription.length() == 0)
-			thisDescription = domainName;
-%>
-						<option value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(domainName)%>'
-							<%=(authDomain!=null && domainName.equals(authDomain))?"selected=\"selected\"":""%>><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(thisDescription)%></option>
-<%
-	    }
-%>
-					</select>
-				</td>
-			</tr>
-		    </table>
-<%
-	  }
-	  else
-	  {
-		// Hiddens for the "Type" tab
-%>
-		    <input type="hidden" name="classname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(className)%>'/>
-		    <input type="hidden" name="authdomain" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(authDomain)%>'/>
-		    <input type="hidden" name="authoritygroup" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(groupName)%>'/>
-<%
-	  }
-
-	  // The "Prerequisites" tab
-	  IMappingConnection[] mappingConnections = mappingConnMgr.getAllConnections();
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Prerequisites")))
-	  {
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.PrerequisiteUserMappingColon")%></nobr></td>
-				<td class="value" colspan="4">
-					<input type="hidden" name="prerequisites_present" value="true"/>
-<%
-	    if (prereq == null)
-	    {
-%>
-					<input type="radio" name="prerequisites" value="" checked="true"/>&nbsp;<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.NoPrerequisites")%><br/>
-<%
-	    }
-	    else
-	    {
-%>
-					<input type="radio" name="prerequisites" value=""/>&nbsp;<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.NoPrerequisites")%><br/>
-<%
-	    }
+  $.ManifoldCF.setTitle('<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.ApacheManifoldCFEditAuthority")%>',
+      '<%=title%>',
+      'authorities'
+  );
+
+  // Use this method to repost the form and pick a new tab
+  function SelectTab(newtab) {
+    if (checkForm()) {
+      document.editconnection.tabname.value = newtab;
+      $.ManifoldCF.submit(document.editconnection);
+    }
+  }
 
-	    for (IMappingConnection mappingConnection : mappingConnections)
-	    {
-		String mappingName = mappingConnection.getName();
-		String mappingDescription = mappingName;
-		if (mappingConnection.getDescription() != null && mappingConnection.getDescription().length() > 0)
-			mappingDescription += " (" + mappingConnection.getDescription()+")";
-		if (prereq != null && prereq.equals(mappingName))
-		{
-%>
-					<input type="radio" name="prerequisites" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(mappingName)%>' checked="true"/>&nbsp;<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(mappingDescription)%><br/>
-<%
-		}
-		else
-		{
-%>
-					<input type="radio" name="prerequisites" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(mappingName)%>'/>&nbsp;<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(mappingDescription)%><br/>
-<%
-		}
-	    }
-%>
-				</td>
-			</tr>
-		    </table>
-<%
-	  }
-	  else
-	  {
-		// Hiddens for Prerequisites tab
-%>
-		    <input type="hidden" name="prerequisites_present" value="true"/>
-<%
-		if (prereq != null)
-		{
-%>
-		    <input type="hidden" name="prerequisites" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(prereq)%>'/>
-<%
-		}
-	  }
-	  
-	  // The "Throttling" tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Throttling")))
-	  {
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editauthority.MaxConnectionsColon")%></nobr></td>
-				<td class="value" colspan="4"><input type="text" size="6" name="maxconnections" value='<%=Integer.toString(maxConnections)%>'/></td>
-			</tr>
-		    </table>
-<%
-	  }
-	  else
-	  {
-		// Hiddens for "Throttling" tab
-%>
-		    <input type="hidden" name="maxconnections" value='<%=Integer.toString(maxConnections)%>'/>
-<%
-	  }
+  // Use this method to repost the form,
+  // and set the anchor request.
+  function postFormSetAnchor(anchorValue) {
+    if (checkForm()) {
+      if (anchorValue != "")
+        document.editconnection.action = document.editconnection.action + "#" + anchorValue;
+      $.ManifoldCF.submit(document.editconnection);
+    }
+  }
 
-	  if (className.length() > 0)
-		AuthorityConnectorFactory.outputConfigurationBody(threadContext,className,new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),parameters,tabName);
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="4"><hr/></td></tr>
-			<tr><td class="message" colspan="4"><nobr>
-<%
-	  if (className.length() > 0)
-	  {
-%>
-			    <input type="button" value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.Save")%>" onClick="javascript:Save()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.SaveThisAuthorityConnection")%>"/>
-<%
-	  }
-	  else
-	  {
-		if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editauthority.Type")))
-		{
-%>
-			    <input type="button" value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.Continue")%>" onClick="javascript:Continue()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.ContinueToNextPage")%>"/>
-<%
-		}
-	  }
-%>
-			    &nbsp;<input type="button" value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.Cancel")%>" onClick="javascript:Cancel()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.CancelAuthorityEditing")%>"/></nobr></td>
-			</tr>
-		    </table>
-		</td>
-	      </tr>
-	    </table>
-	</form>
-<%
-	}
-%>
-       </td>
-      </tr>
-    </table>
+  // Use this method to repost the form
+  function postForm() {
+    if (checkForm()) {
+      $.ManifoldCF.submit(document.editconnection);
+    }
+  }
 
-</body>
+  function Save() {
+    if (checkForm()) {
+      // Can't submit until all required fields have been set.
+      // Some of these don't live on the current tab, so don't set
+      // focus.
+
+      // Check our part of the form, for save
+      if (editconnection.connname.value == "") {
+        alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.ConnectionMustHaveAName")%>");
+        SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.Name")%>");
+        document.editconnection.connname.focus();
+        return;
+      }
+      if (editconnection.authoritygroup.value == "") {
+        alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.ConnectionMustHaveAGroup")%>");
+        SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.Type")%>");
+        document.editconnection.authoritygroup.focus();
+        return;
+      }
+      if (window.checkConfigForSave) {
+        if (!checkConfigForSave())
+          return;
+      }
+      document.editconnection.op.value = "Save";
+      $.ManifoldCF.submit(document.editconnection);
+    }
+  }
 
-</html>
+  function Continue() {
+    document.editconnection.op.value = "Continue";
+    postForm();
+  }
+
+  function Cancel() {
+    document.editconnection.op.value = "Cancel";
+    $.ManifoldCF.submit(document.editconnection);
+  }
+
+  function checkForm() {
+    if (!checkConnectionCount())
+      return false;
+    if (window.checkConfig)
+      return checkConfig();
+    return true;
+  }
+
+  function checkConnectionCount() {
+    if (!isInteger(editconnection.maxconnections.value)) {
+      alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editauthority.TheMaximumNumberOfConnectionsMustBeAValidInteger")%>");
+      editconnection.maxconnections.focus();
+      return false;
+    }
+    return true;
+  }
 
-<%
+  function isRegularExpression(value) {
+    try {
+      var foo = "teststring";
+      foo.search(value.replace(/\(\?i\)/, ""));
+      return true;
     }
-    catch (ManifoldCFException e)
-    {
-	e.printStackTrace();
-	variableContext.setParameter("text",e.getMessage());
-	variableContext.setParameter("target","listauthorities.jsp");
-%>
-	<jsp:forward page="error.jsp"/>
-<%
+    catch (e) {
+      return false;
     }
-%>
 
+  }
+
+  function isInteger(value) {
+    var anum = /(^\d+$)/;
+    return anum.test(value);
+  }
+
+  //-->
+</script>
+<%
+  AuthorityConnectorFactory.outputConfigurationHeader(threadContext, className, new org.apache.manifoldcf.ui.jsp.JspWrapper(out, adminprofile), pageContext.getRequest().getLocale(), parameters, tabsArray);
+  // Get connectors, since this will be needed to determine what to display.
+  IResultSet set = connectorManager.getConnectors();
+%>
+
+<div class="row">
+  <div class="col-md-12">
+    <%
+      // Same for authority groups
+      IAuthorityGroup[] set2 = authGroupManager.getAllGroups();
+      if (set2.length == 0) {
+    %>
+    <div class="callout callout-warning">
+      <p><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.NoAuthorityGroupsDefinedCreateOneFirst")%>
+      </p>
+    </div>
+    <%
+    } else if (set.getRowCount() == 0) {
+    %>
+    <div class="callout callout-warning">
+      <p><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.NoAuthorityConnectorsRegistered")%>
+      </p>
+    </div>
+    <%
+    } else {
+    %>
+    <div class="box box-primary">
+      <form class="standardform" name="editconnection" action="execute.jsp" method="POST" enctype="multipart/form-data">
+        <input type="hidden" name="op" value="Continue"/>
+        <input type="hidden" name="type" value="authority"/>
+        <input type="hidden" name="tabname"
+               value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(tabName)%>'/>
+        <input type="hidden" name="isnewconnection" value='<%=(isNew?"true":"false")%>'/>
+
+        <div class="box-body">
+          <ul class="nav nav-tabs" role="tablist">
+            <%
+              int tabNum = 0;
+              int activeTab = 0;
+              while (tabNum < tabsArray.size()) {
+                String tab = (String) tabsArray.get(tabNum++);
+                if (tab.equals(tabName)) {
+            %>
+            <li class="active">
+              <a href="#tab_<%=tabNum%>"
+                 data-toggle="tab"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(tab)%>
+              </a>
+            </li>
+            <%
+            } else {
+            %>
+            <li>
+              <a href="#tab_<%=tabNum%>" data-toggle="tab"
+                 alt='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(tab)+" "+Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.tab")%>'
+                 onclick='<%="javascript:SelectTab(\""+tab+"\");return false;"%>'>
+                <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(tab)%>
+              </a>
+            </li>
+            <%
+                }
+              }
+            %>
+          </ul>
+          <%
+
+            // Name tab
+            if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Name"))) {
+          %>
+          <div class="tab-pane active" id="tab_<%=activeTab%>">
+            <div class="form-group">
+              <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.NameColon")%>
+              </label>
+              <%
+                // If the connection doesn't exist yet, we are allowed to change the name.
+                if (isNew) {
+              %>
+              <input type="text" size="32" name="connname" class="form-control" placeholder="Name..."
+                     value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
+              <%
+              } else {
+              %>
+              <input type="text" size="32" class="form-control" disabled
+                     value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
+              <input type="hidden" name="connname"
+                     value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
+              <%
+                }
+              %>
+            </div>
+            <div class="form-group">
+              <label
+                  for="description"><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.DescriptionColon")%>
+              </label>
+              <input type="text" size="50" class="form-control" name="description" id="description"
+                     value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(description)%>'/>
+            </div>
+          </div>
+          <%
+          } else {
+            // Hiddens for the Name tab
+          %>
+          <input type="hidden" name="connname"
+                 value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
+          <input type="hidden" name="description"
+                 value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(description)%>'/>
+          <%
+            }
+
+
+            // "Type" tab
+            if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Type"))) {
+              IResultSet domainSet = domainMgr.getDomains();
+          %>
+          <div class="tab-pane active" id="tab_<%=activeTab%>">
+            <div class="form-group">
+              <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.ConnectionTypeColon")%>
+              </label>
+
+              <%
+                if (className.length() > 0) {
+                  String value = connectorManager.getDescription(className);
+                  if (value == null) {
+              %>
+              <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.UNREGISTERED")%> <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(className)%>
+              </nobr>
+              <%
+              } else {
+              %>
+              <input type="text" class="form-control" disabled
+                     value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(value)%>'/>
+              <%
+                }
+              %>
+              <input type="hidden" name="classname"
+                     value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(className)%>'/>
+              <%
+              } else {
+                int i = 0;
+              %>
+              <select name="classname" class="form-control">
+                <%
+                  while (i < set.getRowCount()) {
+                    IResultRow row = set.getRow(i++);
+                    String thisClassName = row.getValue("classname").toString();
+                    String thisDescription = row.getValue("description").toString();
+                %>
+                <option value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(thisClassName)%>'
+                    <%=className.equals(thisClassName) ? "selected=\"selected\"" : ""%>><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(thisDescription)%>
+                </option>
+                <%
+                  }
+                %>
+              </select>
+              <%
+                }
+              %>
+            </div>
+            <div class="form-group">
+              <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.AuthorityGroupColon")%>
+              </label>
+              <select name="authoritygroup" class="form-control">
+                <option
+                    value=""><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.SelectAGroup")%>
+                </option>
+                <%
+                  for (int i = 0; i < set2.length; i++) {
+                    IAuthorityGroup row = set2[i];
+                    String thisAuthorityName = row.getName();
+                    String thisDescription = row.getDescription();
+                    if (thisDescription == null || thisDescription.length() == 0)
+                      thisDescription = thisAuthorityName;
+                %>
+                <option value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(thisAuthorityName)%>'
+                    <%=(groupName.equals(thisAuthorityName)) ? "selected=\"selected\"" : ""%>><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(thisDescription)%>
+                </option>
+                <%
+                  }
+                %>
+              </select>
+            </div>
+            <div class="form-group">
+              <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.AuthorizationDomainColon")%>
+              </label>
+              <select name="authdomain" class="form-control">
+                <option
+                    value="" <%=(authDomain == null || authDomain.length() == 0) ? "selected=\"selected\"" : ""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.DefaultDomainNone")%>
+                </option>
+                <%
+                  for (int i = 0; i < domainSet.getRowCount(); i++) {
+                    IResultRow row = domainSet.getRow(i);
+                    String domainName = (String) row.getValue("domainname");
+                    String thisDescription = (String) row.getValue("description");
+                    if (thisDescription == null || thisDescription.length() == 0)
+                      thisDescription = domainName;
+                %>
+                <option value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(domainName)%>'
+                    <%=(authDomain != null && domainName.equals(authDomain)) ? "selected=\"selected\"" : ""%>><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(thisDescription)%>
+                </option>
+                <%
+                  }
+                %>
+              </select>
+            </div>
+          </div>
+          <%
+          } else {
+            // Hiddens for the "Type" tab
+          %>
+          <input type="hidden" name="classname"
+                 value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(className)%>'/>
+          <input type="hidden" name="authdomain"
+                 value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(authDomain)%>'/>
+          <input type="hidden" name="authoritygroup"
+                 value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(groupName)%>'/>
+          <%
+            }
+
+            // The "Prerequisites" tab
+            IMappingConnection[] mappingConnections = mappingConnMgr.getAllConnections();
+            if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Prerequisites"))) {
+          %>
+          <div class="tab-pane active" id="tab_<%=activeTab%>">
+            <div class="form-group">
+              <strong><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.PrerequisiteUserMappingColon")%>
+              </strong>
+
+              <div class="radio">
+                <label>
+
+
+                  <input type="hidden" name="prerequisites_present" value="true"/>
+                  <%
+                    if (prereq == null) {
+                  %>
+                  <input type="radio" name="prerequisites" value=""
+                         checked="true"/>&nbsp;<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.NoPrerequisites")%>
+                  <br/>
+                  <%
+                  } else {
+                  %>
+                  <input type="radio" name="prerequisites"
+                         value=""/>&nbsp;<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.NoPrerequisites")%>
+                  <br/>
+                  <%
+                    }
+
+                    for (IMappingConnection mappingConnection : mappingConnections) {
+                      String mappingName = mappingConnection.getName();
+                      String mappingDescription = mappingName;
+                      if (mappingConnection.getDescription() != null && mappingConnection.getDescription().length() > 0)
+                        mappingDescription += " (" + mappingConnection.getDescription() + ")";
+                      if (prereq != null && prereq.equals(mappingName)) {
+                  %>
+                  <input type="radio" name="prerequisites"
+                         value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(mappingName)%>'
+                         checked="true"/>&nbsp;<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(mappingDescription)%>
+                  <br/>
+                  <%
+                  } else {
+                  %>
+                  <input type="radio" name="prerequisites"
+                         value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(mappingName)%>'/>&nbsp;<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(mappingDescription)%>
+                  <br/>
+                  <%
+                      }
+                    }
+                  %>
+                </label>
+              </div>
+            </div>
+          </div>
+          <%
+          } else {
+            // Hiddens for Prerequisites tab
+          %>
+          <input type="hidden" name="prerequisites_present" value="true"/>
+          <%
+            if (prereq != null) {
+          %>
+          <input type="hidden" name="prerequisites"
+                 value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(prereq)%>'/>
+          <%
+              }
+            }
+
+            // The "Throttling" tab
+            if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Throttling"))) {
+          %>
+          <div class="tab-pane active" id="tab_<%=activeTab%>">
+            <div class="form-group">
+              <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editauthority.MaxConnectionsColon")%>
+              </label>
+              <input type="text" size="6" name="maxconnections" class="form-control"
+                     value='<%=Integer.toString(maxConnections)%>'/>
+            </div>
+          </div>
+          <%
+          } else {
+            // Hiddens for "Throttling" tab
+          %>
+          <input type="hidden" name="maxconnections" value='<%=Integer.toString(maxConnections)%>'/>
+          <%
+            }
+
+            if (className.length() > 0)
+              AuthorityConnectorFactory.outputConfigurationBody(threadContext, className, new org.apache.manifoldcf.ui.jsp.JspWrapper(out, adminprofile), pageContext.getRequest().getLocale(), parameters, tabName);
+          %>
+        </div>
+
+        <div class="box-footer clearfix">
+          <div class="btn-group">
+            <%
+              if (className.length() > 0) {
+            %>
+            <input type="button" class="btn btn-primary"
+                   value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.Save")%>"
+                   onClick="javascript:Save()"
+                   alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.SaveThisAuthorityConnection")%>"/>
+            <%
+            } else {
+              if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "editauthority.Type"))) {
+            %>
+            <input type="button" class="btn btn-primary"
+                   value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.Continue")%>"
+                   onClick="javascript:Continue()"
+                   alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.ContinueToNextPage")%>"/>
+
+
+            <%
+                }
+              }
+            %>
+            <input type="button" class="btn btn-primary"
+                   value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.Cancel")%>"
+                   onClick="javascript:Cancel()"
+                   alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editauthority.CancelAuthorityEditing")%>"/>
+
+
+          </div>
+        </div>
+      </form>
+      <%
+        }
+      %>
+
+      <%
+      } catch (ManifoldCFException e) {
+        e.printStackTrace();
+        variableContext.setParameter("text", e.getMessage());
+        variableContext.setParameter("target", "listauthorities.jsp");
+      %>
+      <jsp:forward page="error.jsp"/>
+      <%
+        }
+      %>
+    </div>
+  </div>
+</div>
\ No newline at end of file