You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2014/12/21 17:26:16 UTC

svn commit: r1647163 - /manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/editjob.jsp

Author: kwright
Date: Sun Dec 21 16:26:16 2014
New Revision: 1647163

URL: http://svn.apache.org/r1647163
Log:
Add notification support on connections tab

Modified:
    manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/editjob.jsp

Modified: manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/editjob.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/editjob.jsp?rev=1647163&r1=1647162&r2=1647163&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/editjob.jsp (original)
+++ manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/editjob.jsp Sun Dec 21 16:26:16 2014
@@ -33,6 +33,8 @@
 	IJobManager manager = JobManagerFactory.make(threadContext);
 	IRepositoryConnectionManager connMgr = RepositoryConnectionManagerFactory.make(threadContext);
 	IRepositoryConnection[] connList = connMgr.getAllConnections();
+	INotificationConnectionManager notificationMgr = NotificationConnectionManagerFactory.make(threadContext);
+	INotificationConnection[] notificationList = notificationMgr.getAllConnections();
 	IOutputConnectionManager outputMgr = OutputConnectionManagerFactory.make(threadContext);
 	IOutputConnection[] outputList = outputMgr.getAllConnections();
 	ITransformationConnectionManager transformationMgr = TransformationConnectionManagerFactory.make(threadContext);
@@ -40,6 +42,7 @@
 
 	IOutputConnectorPool outputConnectorPool = OutputConnectorPoolFactory.make(threadContext);
 	IRepositoryConnectorPool repositoryConnectorPool = RepositoryConnectorPoolFactory.make(threadContext);
+	INotificationConnectorPool notificationConnectorPool = NotificationConnectorPoolFactory.make(threadContext);
 	ITransformationConnectorPool transformationConnectorPool = TransformationConnectorPoolFactory.make(threadContext);
 
 	// Figure out tab name and sequence number
@@ -89,6 +92,10 @@
 	int[] pipelinePrerequisites = new int[0];
 	Specification[] pipelineSpecifications = new Specification[0];
 	
+	String[] notificationConnectionNames = new String[0];
+	String[] notificationDescriptions = new String[0];
+	Specification[] notificationSpecifications = new Specification[0];
+	
 	ArrayList scheduleRecords = new ArrayList();
 
 	EnumeratedValues dayOfWeek = null;
@@ -139,6 +146,16 @@
 			pipelinePrerequisites[j] = job.getPipelineStagePrerequisite(j);
 			pipelineSpecifications[j] = job.getPipelineStageSpecification(j);
 		}
+		notificationConnectionNames = new String[job.countNotifications()];
+		notificationDescriptions = new String[job.countNotifications()];
+		notificationSpecifications = new Specification[job.countNotifications()];
+		for (int j = 0; j < job.countNotifications(); j++)
+		{
+			notificationConnectionNames[j] = job.getNotificationConnectionName(j);
+			notificationDescriptions[j] = job.getNotificationDescription(j);
+			notificationSpecifications[j] = job.getNotificationSpecification(j);
+		}
+		
 		type = job.getType();
 		startMethod = job.getStartMethod();
 		hopcountMode = job.getHopcountMode();
@@ -204,11 +221,19 @@
 	String saveCheckMethod = "checkSpecificationForSave";
 	String[] pipelineCheckMethods = new String[pipelineConnectionNames.length];
 	String[] pipelineCheckForSaveMethods = new String[pipelineConnectionNames.length];
+	String[] notificationCheckMethods = new String[notificationConnectionNames.length];
+	String[] notificationCheckForSaveMethods = new String[notificationConnectionNames.length];
+	
 	for (int j = 0; j < pipelineConnectionNames.length; j++)
 	{
 		pipelineCheckMethods[j] = "unknown";
 		pipelineCheckForSaveMethods[j] = "unknown";
 	}
+	for (int j = 0; j < notificationConnectionNames.length; j++)
+	{
+		notificationCheckMethods[j] = "unknown";
+		notificationCheckForSaveMethods[j] = "unknown";
+	}
 	
 	if (connection != null)
 	{
@@ -250,6 +275,20 @@
 		}
 	}
 
+	for (int j = 0; j < notificationConnectionNames.length; j++)
+	{
+		INotificationConnection notificationConnection = notificationMgr.load(notificationConnectionNames[j]);
+		if (notificationConnection != null)
+		{
+			INotificationConnector notificationConnector = NotificationConnectorFactory.getConnectorNoCheck(notificationConnection.getClassName());
+			if (notificationConnector != null)
+			{
+				notificationCheckMethods[j] = notificationConnector.getFormCheckJavascriptMethodName(1+pipelineConnectionNames.length+j);
+				notificationCheckForSaveMethods[j] = notificationConnector.getFormPresaveCheckJavascriptMethodName(1+pipelineConnectionNames.length+j);
+			}
+
+		}
+	}
 %>
 
 <?xml version="1.0" encoding="utf-8"?>
@@ -413,7 +452,28 @@
 		else
 			postFormSetAnchor("pipeline_"+(n-1)+"_tag");
 	}
+
+	function AppendNotification()
+	{
+		if (editjob.notification_connectionname.value == "")
+		{
+			alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectANotificationConnectionName")%>");
+			editjob.notification_connectionname.focus();
+			return;
+		}
+		document.editjob.notification_op.value="Add";
+		postFormSetAnchor("notification_tag");
+	}
 	
+	function DeleteNotification(n)
+	{
+		eval("document.editjob.notification_"+n+"_op.value = 'Delete'");
+		if (n == 0)
+			postFormSetAnchor("notification_tag");
+		else
+			postFormSetAnchor("notification_"+(n-1)+"_tag");
+	}
+
 	function AddScheduledTime()
 	{
 		if (editjob.duration.value != "" && !isInteger(editjob.duration.value))
@@ -1081,7 +1141,94 @@
 					</table>
 				</td>
 			</tr>
-			
+
+<%
+		alreadyPresent = new HashSet<String>();
+		for (int j = 0; j < notificationConnectionNames.length; j++)
+		{
+			alreadyPresent.add(notificationConnectionNames[j]);
+		}
+		if (notificationList.length > 0)
+		{
+%>
+			<tr>
+				<td colspan="1" class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NotificationsColon")%></nobr></td>
+				<td class="boxcell" colspan="3">
+					<table class="formtable">
+						<tr class="formheaderrow">
+							<td class="formcolumnheader">
+								<input name="pipeline_count" type="hidden" value="<%=notificationConnectionNames.length%>"/>
+							</td>
+							<td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NotificationNumber")%></nobr></td>
+							<td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NotificationDescription")%></nobr></td>
+							<td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NotificationConnectionName")%></nobr></td>
+						</tr>
+<%
+			rowCounter = 0;
+			for (int j = 0; j < notificationConnectionNames.length; j++)
+			{
+				String notificationConnectionName = notificationConnectionNames[j];
+				String notificationDescription = notificationDescriptions[j];
+				if (notificationDescription == null)
+					notificationDescription = "";
+%>
+						<tr class="<%=((rowCounter++ % 2)==0)?"evenformrow":"oddformrow"%>">
+							<td class="formcolumncell">
+								<input name="notification_<%=j%>_op" type="hidden" value="Continue"/>
+								<a name="notification_<%=j%>_tag"/>
+								<input type="button" value="<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Delete")%>" alt='<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Deletenotification")%>' onclick="javascript:DeleteNotification(<%=j%>);"/>
+							</td>
+							<td class="formcolumncell"><%=(j+pipelineConnectionNames.length+2)%>.</td>
+							<td class="formcolumncell">
+								<input name="notification_<%=j%>_description" type="text" size="30" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(notificationDescription)%>"/>
+							</td>
+							<td class="formcolumncell">
+								<nobr><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(notificationConnectionName)%></nobr>
+								<input name="notification_<%=j%>_connectionname" type="hidden" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(notificationConnectionName)%>"/>
+							</td>
+						</tr>
+<%
+			}
+			if (notificationList.length != alreadyPresent.size())
+			{
+%>
+						<tr class="formrow"><td class="formseparator" colspan="4"><hr/></td></tr>
+						<tr class="formrow">
+							<td class="formcolumncell">
+								<a name="notification_tag"/>
+								<input type="button" value='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editjob.AddNotification")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editjob.AddANotification")%>' onclick="javascript:AppendNotification();"/>
+								<input name="notification_op" type="hidden" value="Continue"/>
+							</td>
+							<td class="formcolumncell"></td>
+							<td class="formcolumncell">
+								<input name="notification_description" type="text" size="30" value=""/>
+							</td>
+							<td class="formcolumncell">
+								<select name="notification_connectionname" size="1">
+									<option selected="selected" value="">-- <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoneSelected")%> --</option>
+<%
+				for (INotificationConnection conn : notificationList)
+				{
+					if (!alreadyPresent.contains(conn.getName()))
+					{
+%>
+									<option value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(conn.getName())%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(conn.getName())%></option>
+<%
+					}
+				}
+%>
+								</select>
+							</td>
+						</tr>
+<%
+			}
+%>
+					</table>
+				</td>
+			</tr>
+<%
+		}
+%>
 			<tr><td class="separator" colspan="4"><hr/></td></tr>
 			
 			<tr>
@@ -1117,6 +1264,7 @@
 %>
 		  <input type="hidden" name="connectionname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
 		  <input type="hidden" name="pipeline_count" value="<%=pipelineConnectionNames.length%>"/>
+		  <input type="hidden" name="notification_count" value="<%=notificationConnectionNames.length%>"/>
 <%
 		for (int j = 0; j < pipelineConnectionNames.length; j++)
 		{
@@ -1131,6 +1279,18 @@
 		  <input type="hidden" name="pipeline_<%=j%>_description" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(pipelineDescription)%>"/>
 <%
 		}
+		for (int j = 0; j < notificationConnectionNames.length; j++)
+		{
+			String notificationConnectionName = notificationConnectionNames[j];
+			String notificationDescription = notificationDescriptions[j];
+			if (notificationDescription == null)
+				notificationDescription = "";
+%>
+		  <input type="hidden" name="notification_<%=j%>_connectionname" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(notificationConnectionName)%>"/>
+		  <input type="hidden" name="notification_<%=j%>_description" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(notificationDescription)%>"/>
+<%
+		}
+
 %>
 		  <input type="hidden" name="priority" value='<%=priority%>'/>
 		  <input type="hidden" name="startmethod" value='<%=startMethod%>'/>