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 [6/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/editoutput.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editoutput.jsp?rev=1684303&r1=1684302&r2=1684303&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editoutput.jsp (original)
+++ manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editoutput.jsp Tue Jun  9 01:30:36 2015
@@ -2,480 +2,420 @@
 
 <%
 
-/* $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 connection manager handle
-	IOutputConnectionManager connMgr = OutputConnectionManagerFactory.make(threadContext);
-	// Also get the list of available connectors
-	IOutputConnectorManager connectorManager = OutputConnectorManagerFactory.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(),"editoutput.Name");
-	String connectionName = null;
-	IOutputConnection connection = (IOutputConnection)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);
-		}
-	}
-
-	// Set up default fields.
-	boolean isNew = true;
-	String description = "";
-	String className = "";
-	int maxConnections = 10;
-	ConfigParams parameters = new ConfigParams();
-
-	// If there's a connection object, set up all our parameters from it.
-	if (connection != null)
-	{
-		// Set up values
-		isNew = connection.getIsNew();
-		connectionName = connection.getName();
-		description = connection.getDescription();
-		className = connection.getClassName();
-		parameters = connection.getConfigParams();
-		maxConnections = connection.getMaxConnections();
-	}
-	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(),"editoutput.Name"));
-	tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editoutput.Type"));
-	if (className.length() > 0)
-		tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editoutput.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(),"editoutput.ApacheManifoldCFEditOutputConnection")%>
-	</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(),"editoutput.ConnectionMustHaveAName")%>");
-				SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editoutput.Name")%>");
-				document.editconnection.connname.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(),"editoutput.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>
-<%
-	OutputConnectorFactory.outputConfigurationHeader(threadContext,className,new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),parameters,tabsArray);
-%>
-
-</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">
-<%
-	// Get connector list; need this to decide what to do
-	IResultSet set = connectorManager.getConnectors();
-	if (set.getRowCount() == 0)
-	{
-%>
-	<p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editoutput.EditOutputConnection")%></p>
-	<table class="displaytable"><tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editoutput.NoOutputConnectorsRegistered")%></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="output"/>
-	    <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(),"editoutput.EditOutputConnection")%> '<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description)%>'</nobr>
-<%
-	  }
-	  else
-	  {
-%>
-
-		          <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editoutput.EditAnOutputConnection")%></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(),"editoutput.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)%>'>
-<%
-
-
-	  // Name tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editoutput.Name")))
-	  {
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editoutput.NameColon")%></nobr></td><td class="value" colspan="4">
-<%
-	    // If the connection doesn't exist yet, we are allowed to change the name.
-	    if (connection == null || connectionName.length() < 1)
-	    {
-%>
-					<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(),"editoutput.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)%>'/>
-<%
-	  }
+  // 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 connection manager handle
+    IOutputConnectionManager connMgr = OutputConnectionManagerFactory.make(threadContext);
+    // Also get the list of available connectors
+    IOutputConnectorManager connectorManager = OutputConnectorManagerFactory.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(), "editoutput.Name");
+    String connectionName = null;
+    IOutputConnection connection = (IOutputConnection) 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);
+      }
+    }
 
+    // Set up default fields.
+    boolean isNew = true;
+    String description = "";
+    String className = "";
+    int maxConnections = 10;
+    ConfigParams parameters = new ConfigParams();
+
+    // If there's a connection object, set up all our parameters from it.
+    if (connection != null) {
+      // Set up values
+      isNew = connection.getIsNew();
+      connectionName = connection.getName();
+      description = connection.getDescription();
+      className = connection.getClassName();
+      parameters = connection.getConfigParams();
+      maxConnections = connection.getMaxConnections();
+    } 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(), "editoutput.Name"));
+    tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(), "editoutput.Type"));
+    if (className.length() > 0)
+      tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(), "editoutput.Throttling"));
 
-	  // "Type" tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editoutput.Type")))
-	  {
 %>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editoutput.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(),"editoutput.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>
-		    </table>
-<%
-	  }
-	  else
-	  {
-		// Hiddens for the "Type" tab
-%>
-		    <input type="hidden" name="classname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(className)%>'/>
-<%
-	  }
-
 
-	  // The "Throttling" tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editoutput.Throttling")))
-	  {
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="2"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editoutput.MaxConnectionsColon")%></nobr></td>
-				<td class="value"><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)%>'/>
-<%
-	  }
+<script type="text/javascript">
+  <!--
+  <%
+        String heading = null;
+          if (description.length() > 0)
+          {
+              heading = Messages.getBodyString(pageContext.getRequest().getLocale(),"editoutput.EditOutputConnection") + " - " + org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description);
+          }
+          else
+          {
+            heading = Messages.getBodyString(pageContext.getRequest().getLocale(),"editoutput.EditAnOutputConnection");
+          }
+        %>
+  $.ManifoldCF.setTitle('<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editoutput.ApacheManifoldCFEditOutputConnection")%>',
+      '<%=heading%>',
+      'outputs'
+  );
+  // 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);
+    }
+  }
 
-	  if (className.length() > 0)
-		OutputConnectorFactory.outputConfigurationBody(threadContext,className,new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),parameters,tabName);
+  // 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);
+    }
+  }
 
-%>
-		    <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(),"editoutput.Save")%>" onClick="javascript:Save()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.SaveThisOutputConnection")%>"/>
-<%
-	  }
-	  else
-	  {
-		if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editoutput.Type")))
-		{
-%>
-			    <input type="button" value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.Continue")%>" onClick="javascript:Continue()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.ContinueToNextPage")%>"/>
-<%
-		}
-	  }
-%>
-			    &nbsp;<input type="button" value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.Cancel")%>" onClick="javascript:Cancel()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.CancelOutputConnectionEditing")%>"/></nobr></td>
-			</tr>
-		    </table>
-		</td>
-	      </tr>
-	    </table>
-	</form>
+  // Use this method to repost the form
+  function postForm() {
+    if (checkForm()) {
+      $.ManifoldCF.submit(document.editconnection);
+    }
+  }
 
-<%
-	}
-%>
+  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(),"editoutput.ConnectionMustHaveAName")%>");
+        SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editoutput.Name")%>");
+        document.editconnection.connname.focus();
+        return;
+      }
+      if (window.checkConfigForSave) {
+        if (!checkConfigForSave())
+          return;
+      }
+      document.editconnection.op.value = "Save";
+      $.ManifoldCF.submit(document.editconnection);
+    }
+  }
 
-       </td>
-      </tr>
-    </table>
+  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(),"editoutput.TheMaximumNumberOfConnectionsMustBeAValidInteger")%>");
+      editconnection.maxconnections.focus();
+      return false;
+    }
+    return true;
+  }
 
-</body>
+  function isRegularExpression(value) {
+    try {
+      var foo = "teststring";
+      foo.search(value.replace(/\(\?i\)/, ""));
+      return true;
+    }
+    catch (e) {
+      return false;
+    }
 
-</html>
+  }
 
-<%
-    }
-    catch (ManifoldCFException e)
-    {
-	e.printStackTrace();
-	variableContext.setParameter("text",e.getMessage());
-	variableContext.setParameter("target","listoutputs.jsp");
+  function isInteger(value) {
+    var anum = /(^\d+$)/;
+    return anum.test(value);
+  }
+
+  //-->
+</script>
+<section id="script">
+  <%
+    OutputConnectorFactory.outputConfigurationHeader(threadContext, className, new org.apache.manifoldcf.ui.jsp.JspWrapper(out, adminprofile), pageContext.getRequest().getLocale(), parameters, tabsArray);
+  %>
+</section>
+
+
+<div class="row">
+  <div class="col-md-12">
+    <%
+      // Get connector list; need this to decide what to do
+      IResultSet set = connectorManager.getConnectors();
+      if (set.getRowCount() == 0) {
+    %>
+    <div class="callout callout-warning">
+      <p><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editoutput.NoOutputConnectorsRegistered")%>
+      </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="output"/>
+        <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(),"editoutput.tab")%>'
+                 onclick='<%="javascript:SelectTab(\""+tab+"\");return false;"%>'>
+                <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(tab)%>
+              </a>
+            </li>
+            <%
+                }
+              }
+            %>
+          </ul>
+          <div class="tab-content">
+            <%
+
+
+              // Name tab
+              if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "editoutput.Name"))) {
+            %>
+            <div class="tab-pane active" id="tab_<%=activeTab%>">
+              <div class="form-group">
+                <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editoutput.NameColon")%>
+                </label>
+                <%
+                  // If the connection doesn't exist yet, we are allowed to change the name.
+                  if (connection == null || connectionName.length() < 1) {
+                %>
+                <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" 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(), "editoutput.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(), "editoutput.Type"))) {
+            %>
+            <div class="tab-pane active" id="tab_<%=activeTab%>">
+              <div class="form-group">
+                <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editoutput.ConnectionTypeColon")%>
+                </label>
+                <%
+                  if (className.length() > 0) {
+                    String value = connectorManager.getDescription(className);
+                    if (value == null) {
+                %>
+                <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editoutput.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" clas="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>
+              <%
+              } else {
+                // Hiddens for the "Type" tab
+              %>
+              <input type="hidden" name="classname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(className)%>'/>
+              <%
+                }
+
+
+                // The "Throttling" tab
+                if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "editoutput.Throttling"))) {
+              %>
+              <div class="tab-pane active" id="tab_<%=activeTab%>">
+                <div class="form-group">
+                  <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editoutput.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)
+                  OutputConnectorFactory.outputConfigurationBody(threadContext, className, new org.apache.manifoldcf.ui.jsp.JspWrapper(out, adminprofile), pageContext.getRequest().getLocale(), parameters, tabName);
+
+              %>
+            </div>
+          </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(),"editoutput.Save")%>"
+                     onClick="javascript:Save()"
+                     alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.SaveThisOutputConnection")%>"/>
+              <%
+              } else {
+                if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "editoutput.Type"))) {
+              %>
+              <input type="button" class="btn btn-primary"
+                     value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.Continue")%>"
+                     onClick="javascript:Continue()"
+                     alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.ContinueToNextPage")%>"/>
+              <%
+                  }
+                }
+              %>
+              &nbsp;<input type="button" class="btn btn-primary"
+                           value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.Cancel")%>"
+                           onClick="javascript:Cancel()"
+                           alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editoutput.CancelOutputConnectionEditing")%>"/>
+            </div>
+          </div>
+      </form>
+
+      <%
+        }
+      %>
+
+
+    </div>
+  </div>
+</div>
+
+<%
+} catch (ManifoldCFException e) {
+  e.printStackTrace();
+  variableContext.setParameter("text", e.getMessage());
+  variableContext.setParameter("target", "listoutputs.jsp");
 %>
-	<jsp:forward page="error.jsp"/>
+<jsp:forward page="error.jsp"/>
 <%
-    }
+  }
 %>
 

Modified: manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/edittransformation.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/edittransformation.jsp?rev=1684303&r1=1684302&r2=1684303&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/edittransformation.jsp (original)
+++ manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/edittransformation.jsp Tue Jun  9 01:30:36 2015
@@ -2,480 +2,423 @@
 
 <%
 
-/* $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 connection manager handle
-	ITransformationConnectionManager connMgr = TransformationConnectionManagerFactory.make(threadContext);
-	// Also get the list of available connectors
-	ITransformationConnectorManager connectorManager = TransformationConnectorManagerFactory.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(),"edittransformation.Name");
-	String connectionName = null;
-	ITransformationConnection connection = (ITransformationConnection)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);
-		}
-	}
-
-	// Set up default fields.
-	boolean isNew = true;
-	String description = "";
-	String className = "";
-	int maxConnections = 10;
-	ConfigParams parameters = new ConfigParams();
-
-	// If there's a connection object, set up all our parameters from it.
-	if (connection != null)
-	{
-		// Set up values
-		isNew = connection.getIsNew();
-		connectionName = connection.getName();
-		description = connection.getDescription();
-		className = connection.getClassName();
-		parameters = connection.getConfigParams();
-		maxConnections = connection.getMaxConnections();
-	}
-	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(),"edittransformation.Name"));
-	tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"edittransformation.Type"));
-	if (className.length() > 0)
-		tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"edittransformation.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(),"edittransformation.ApacheManifoldCFEditTransformationConnection")%>
-	</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(),"edittransformation.ConnectionMustHaveAName")%>");
-				SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"edittransformation.Name")%>");
-				document.editconnection.connname.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(),"edittransformation.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>
-<%
-	TransformationConnectorFactory.outputConfigurationHeader(threadContext,className,new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),parameters,tabsArray);
-%>
-
-</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">
-<%
-	// Get connector list; need this to decide what to do
-	IResultSet set = connectorManager.getConnectors();
-	if (set.getRowCount() == 0)
-	{
-%>
-	<p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"edittransformation.EditTransformationConnection2")%></p>
-	<table class="displaytable"><tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"edittransformation.NoTransformationConnectorsRegistered")%></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="transformation"/>
-	    <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(),"edittransformation.EditTransformationConnection")%> '<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description)%>'</nobr>
-<%
-	  }
-	  else
-	  {
-%>
-
-		          <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"edittransformation.EditATransformationConnection")%></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(),"edittransformation.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 connection manager handle
+    ITransformationConnectionManager connMgr = TransformationConnectionManagerFactory.make(threadContext);
+    // Also get the list of available connectors
+    ITransformationConnectorManager connectorManager = TransformationConnectorManagerFactory.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(), "edittransformation.Name");
+    String connectionName = null;
+    ITransformationConnection connection = (ITransformationConnection) 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);
+      }
+    }
 
+    // Set up default fields.
+    boolean isNew = true;
+    String description = "";
+    String className = "";
+    int maxConnections = 10;
+    ConfigParams parameters = new ConfigParams();
+
+    // If there's a connection object, set up all our parameters from it.
+    if (connection != null) {
+      // Set up values
+      isNew = connection.getIsNew();
+      connectionName = connection.getName();
+      description = connection.getDescription();
+      className = connection.getClassName();
+      parameters = connection.getConfigParams();
+      maxConnections = connection.getMaxConnections();
+    } 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(), "edittransformation.Name"));
+    tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(), "edittransformation.Type"));
+    if (className.length() > 0)
+      tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(), "edittransformation.Throttling"));
 
-	  // Name tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"edittransformation.Name")))
-	  {
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"edittransformation.NameColon")%></nobr></td><td class="value" colspan="4">
-<%
-	    // If the connection doesn't exist yet, we are allowed to change the name.
-	    if (connection == null || connectionName.length() < 1)
-	    {
-%>
-					<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(),"edittransformation.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 heading = null;
+    if (description.length() > 0)
+    {
+      heading = Messages.getBodyString(pageContext.getRequest().getLocale(),"edittransformation.EditTransformationConnection") + " " + org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description);
+    }
+      else
+      {
+      heading = Messages.getBodyString(pageContext.getRequest().getLocale(),"edittransformation.EditATransformationConnection");
+    }
+    %>
+  $.ManifoldCF.setTitle('<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "edittransformation.ApacheManifoldCFEditTransformationConnection")%>',
+      '<%=heading%>',
+      'outputs'
+  );
+  // 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);
+    }
+  }
 
-	  // "Type" tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"edittransformation.Type")))
-	  {
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="5"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"edittransformation.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(),"edittransformation.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>
-		    </table>
-<%
-	  }
-	  else
-	  {
-		// Hiddens for the "Type" tab
-%>
-		    <input type="hidden" name="classname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(className)%>'/>
-<%
-	  }
-
-
-	  // The "Throttling" tab
-	  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"edittransformation.Throttling")))
-	  {
-%>
-		    <table class="displaytable">
-			<tr><td class="separator" colspan="2"><hr/></td></tr>
-			<tr>
-				<td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"edittransformation.MaxConnectionsColon")%></nobr></td>
-				<td class="value"><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)%>'/>
-<%
-	  }
-
-	  if (className.length() > 0)
-		TransformationConnectorFactory.outputConfigurationBody(threadContext,className,new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),parameters,tabName);
+  // 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);
+    }
+  }
 
-%>
-		    <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(),"edittransformation.Save")%>" onClick="javascript:Save()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.SaveThisTransformationConnection")%>"/>
-<%
-	  }
-	  else
-	  {
-		if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"edittransformation.Type")))
-		{
-%>
-			    <input type="button" value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.Continue")%>" onClick="javascript:Continue()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.ContinueToNextPage")%>"/>
-<%
-		}
-	  }
-%>
-			    &nbsp;<input type="button" value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.Cancel")%>" onClick="javascript:Cancel()" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.CancelTransformationConnectionEditing")%>"/></nobr></td>
-			</tr>
-		    </table>
-		</td>
-	      </tr>
-	    </table>
-	</form>
+  // Use this method to repost the form
+  function postForm() {
+    if (checkForm()) {
+      $.ManifoldCF.submit(document.editconnection);
+    }
+  }
 
-<%
-	}
-%>
+  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(),"edittransformation.ConnectionMustHaveAName")%>");
+        SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"edittransformation.Name")%>");
+        document.editconnection.connname.focus();
+        return;
+      }
+      if (window.checkConfigForSave) {
+        if (!checkConfigForSave())
+          return;
+      }
+      document.editconnection.op.value = "Save";
+      $.ManifoldCF.submit(document.editconnection);
+    }
+  }
 
-       </td>
-      </tr>
-    </table>
+  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(),"edittransformation.TheMaximumNumberOfConnectionsMustBeAValidInteger")%>");
+      editconnection.maxconnections.focus();
+      return false;
+    }
+    return true;
+  }
 
-</body>
+  function isRegularExpression(value) {
+    try {
+      var foo = "teststring";
+      foo.search(value.replace(/\(\?i\)/, ""));
+      return true;
+    }
+    catch (e) {
+      return false;
+    }
 
-</html>
+  }
 
-<%
-    }
-    catch (ManifoldCFException e)
-    {
-	e.printStackTrace();
-	variableContext.setParameter("text",e.getMessage());
-	variableContext.setParameter("target","listtransformations.jsp");
+  function isInteger(value) {
+    var anum = /(^\d+$)/;
+    return anum.test(value);
+  }
+
+  //-->
+</script>
+<%
+  TransformationConnectorFactory.outputConfigurationHeader(threadContext, className, new org.apache.manifoldcf.ui.jsp.JspWrapper(out, adminprofile), pageContext.getRequest().getLocale(), parameters, tabsArray);
+%>
+
+
+<div class="row">
+  <div class="col-md-12">
+
+    <%
+      // Get connector list; need this to decide what to do
+      IResultSet set = connectorManager.getConnectors();
+      if (set.getRowCount() == 0) {
+    %>
+    <div class="callout callout-warning">
+      <p><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "edittransformation.NoTransformationConnectorsRegistered")%>
+      </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="transformation"/>
+        <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(),"edittransformation.tab")%>'
+                 onclick='<%="javascript:SelectTab(\""+tab+"\");return false;"%>'>
+                <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(tab)%>
+              </a>
+            </li>
+            <%
+                }
+              }
+            %>
+          </ul>
+          <div class="tab-content">
+            <%
+              // Name tab
+              if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "edittransformation.Name"))) {
+            %>
+            <div class="tab-pane active" id="tab_<%=activeTab%>">
+              <div class="form-group">
+                <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "edittransformation.NameColon")%>
+                </label>
+                <%
+                  // If the connection doesn't exist yet, we are allowed to change the name.
+                  if (connection == null || connectionName.length() < 1) {
+                %>
+                <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" 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(), "edittransformation.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(), "edittransformation.Type"))) {
+            %>
+            <div class="tab-pane active" id="tab_<%=activeTab%>">
+              <div class="form-group">
+                <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "edittransformation.ConnectionTypeColon")%>
+                </label>
+                <%
+                  if (className.length() > 0) {
+                    String value = connectorManager.getDescription(className);
+                    if (value == null) {
+                %>
+                <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "edittransformation.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" clas="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>
+              <%
+              } else {
+                // Hiddens for the "Type" tab
+              %>
+              <input type="hidden" name="classname"
+                     value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(className)%>'/>
+              <%
+                }
+
+
+                // The "Throttling" tab
+                if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "edittransformation.Throttling"))) {
+              %>
+              <div class="tab-pane active" id="tab_<%=activeTab%>">
+                <div class="form-group">
+                  <label><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "edittransformation.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)
+                  TransformationConnectorFactory.outputConfigurationBody(threadContext, className, new org.apache.manifoldcf.ui.jsp.JspWrapper(out, adminprofile), pageContext.getRequest().getLocale(), parameters, tabName);
+
+              %>
+            </div>
+          </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(),"edittransformation.Save")%>"
+                     onClick="javascript:Save()"
+                     alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.SaveThisTransformationConnection")%>"/>
+              <%
+              } else {
+                if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), "edittransformation.Type"))) {
+              %>
+              <input type="button" class="btn btn-primary"
+                     value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.Continue")%>"
+                     onClick="javascript:Continue()"
+                     alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.ContinueToNextPage")%>"/>
+              <%
+                  }
+                }
+              %>
+              <input type="button" class="btn btn-primary"
+                     value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.Cancel")%>"
+                     onClick="javascript:Cancel()"
+                     alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"edittransformation.CancelTransformationConnectionEditing")%>"/>
+            </div>
+          </div>
+      </form>
+
+      <%
+        }
+      %>
+
+    </div>
+  </div>
+</div>
+
+<%
+} catch (ManifoldCFException e) {
+  e.printStackTrace();
+  variableContext.setParameter("text", e.getMessage());
+  variableContext.setParameter("target", "listtransformations.jsp");
 %>
-	<jsp:forward page="error.jsp"/>
+<jsp:forward page="error.jsp"/>
 <%
-    }
+  }
 %>
 

Modified: manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/error.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/error.jsp?rev=1684303&r1=1684302&r2=1684303&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/error.jsp (original)
+++ manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/error.jsp Tue Jun  9 01:30:36 2015
@@ -2,64 +2,44 @@
 
 <%
 
-/* $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.
+ */
 %>
 
-<?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(),"error.ApacheManifoldCFError")%>
-	</title>
-
-</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="window">
-	<p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"error.Error")%></p>
+<script type="text/javascript">
+  <!--
+  $.ManifoldCF.setTitle('<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"error.ApacheManifoldCFError")%>',
+      '<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"error.Error")%>'
+  );
+  //-->
+</script>
 
 <%
-	// These have to be fetched from request rather than variableContext since error
-	// forwards screw up the multipart wrapper
-	String errorText = variableContext.getParameter("text");
-	String target = variableContext.getParameter("target");
+  // These have to be fetched from request rather than variableContext since error
+  // forwards screw up the multipart wrapper
+  String errorText = variableContext.getParameter("text");
+  String target = variableContext.getParameter("target");
 %>
-	<table class="displaytable">
-		<tr><td class="message"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(errorText)%></td></tr>
-		<tr><td class="separator"><hr/></td></tr>
-		<tr><td class="message"><a href='<%=org.apache.manifoldcf.core.util.URLEncoder.encode(target)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"error.Return")%>">OK</a></td></tr>
-	</table>
-
-       </td>
-      </tr>
-    </table>
 
-</body>
 
-</html>
+<div class="alert alert-danger">
+  <h4><i class="icon fa fa-ban"></i> Error!</h4>
+  <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(errorText)%>
+</div>
+<a class="btn btn-primary btn-sm" href='<%=org.apache.manifoldcf.core.util.URLEncoder.encode(target)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"error.Return")%>">OK</a>
\ No newline at end of file