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/13 22:28:33 UTC
svn commit: r1685321 [4/16] -
/manifoldcf/trunk/framework/crawler-ui/src/main/webapp/
Modified: manifoldcf/trunk/framework/crawler-ui/src/main/webapp/editjob.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/crawler-ui/src/main/webapp/editjob.jsp?rev=1685321&r1=1685320&r2=1685321&view=diff
==============================================================================
--- manifoldcf/trunk/framework/crawler-ui/src/main/webapp/editjob.jsp (original)
+++ manifoldcf/trunk/framework/crawler-ui/src/main/webapp/editjob.jsp Sat Jun 13 20:28:32 2015
@@ -29,266 +29,266 @@
// It may also be called directly with a parameter of "origjobid", which implies that a copy operation should be started.
try
{
- // Get the job manager handle
- 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);
- ITransformationConnection[] transformationList = transformationMgr.getAllConnections();
-
- 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
- String tabName = variableContext.getParameter("tabname");
- String tabSequenceNumber = variableContext.getParameter("sequencenumber");
- int tabSequenceInt;
- if (tabName == null || tabName.length() == 0)
- {
- tabName = Messages.getString(pageContext.getRequest().getLocale(),"editjob.Name");
- tabSequenceInt = -1;
- }
- else
- {
- if (tabSequenceNumber == null || tabSequenceNumber.length() == 0)
- tabSequenceInt = -1;
- else
- tabSequenceInt = Integer.parseInt(tabSequenceNumber);
- }
-
- // Get a loaded job object, somehow.
- String jobID = null;
- IJobDescription job = (IJobDescription)threadContext.get("JobObject");
- if (job == null)
- {
- // We did not go through execute.jsp
- // We might have received an argument specifying the connection name.
- jobID = variableContext.getParameter("jobid");
- String origJobID = variableContext.getParameter("origjobid");
- if (origJobID == null || origJobID.length() == 0)
- origJobID = jobID;
- if (origJobID != null)
- job = manager.load(new Long(origJobID));
- }
- else
- jobID = job.getID().toString();
-
- // Setup default fields
- String connectionName = "";
- String description = "";
- int type = IJobDescription.TYPE_SPECIFIED;
- Specification documentSpecification = new Specification();
-
- // Pipeline data
- String[] pipelineConnectionNames = new String[0];
- String[] pipelineDescriptions = new String[0];
- boolean[] pipelineIsOutputs = new boolean[0];
- 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;
- EnumeratedValues dayOfMonth = null;
- EnumeratedValues monthOfYear = null;
- EnumeratedValues year = null;
- EnumeratedValues hourOfDay = null;
- EnumeratedValues minutesOfHour = null;
- // Duration in minutes
- Long duration = null;
- // RequestMinimum flag
- boolean requestMinimum = false;
-
- // Priority
- int priority = 5;
- // Minimum recrawl interval (Default: 1 day)
- Long recrawlInterval = new Long(60L * 24L);
- // Maximum recrawl interval (Default: none)
- Long maxRecrawlInterval = null;
- // Reseed interval (Default: 60 minutes)
- Long reseedInterval = new Long(60L);
- // Expiration interval (Default: never)
- Long expirationInterval = null;
- // Start method
- int startMethod = IJobDescription.START_DISABLE;
- // Hopcount mode
- int hopcountMode = IJobDescription.HOPCOUNT_ACCURATE;
- // Hop filters
- Map hopFilterMap = new HashMap();
-
- // If the job is not null, prepopulate everything with what comes from it.
- if (job != null)
- {
- // Set up values
- description = job.getDescription();
- connectionName = job.getConnectionName();
-
- pipelineConnectionNames = new String[job.countPipelineStages()];
- pipelineDescriptions = new String[job.countPipelineStages()];
- pipelineIsOutputs = new boolean[job.countPipelineStages()];
- pipelinePrerequisites = new int[job.countPipelineStages()];
- pipelineSpecifications = new Specification[job.countPipelineStages()];
- for (int j = 0; j < job.countPipelineStages(); j++)
- {
- pipelineConnectionNames[j] = job.getPipelineStageConnectionName(j);
- pipelineDescriptions[j] = job.getPipelineStageDescription(j);
- pipelineIsOutputs[j] = job.getPipelineStageIsOutputConnection(j);
- 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();
- documentSpecification = job.getSpecification();
- // Fill in schedule records from job
- for (int j = 0; j < job.getScheduleRecordCount(); j++)
- {
- scheduleRecords.add(job.getScheduleRecord(j));
- }
-
- priority = job.getPriority();
- Long value = job.getInterval();
- recrawlInterval = (value==null)?null:new Long(value.longValue()/60000L);
- value = job.getMaxInterval();
- maxRecrawlInterval = (value==null)?null:new Long(value.longValue()/60000L);
- value = job.getReseedInterval();
- reseedInterval = (value==null)?null:new Long(value.longValue()/60000L);
- value = job.getExpiration();
- expirationInterval = (value==null)?null:new Long(value.longValue()/60000L);
- hopFilterMap = job.getHopCountFilters();
- }
-
-
- // This form reposts to itself. It basically only allows the connection to be picked once; once done, the repost occurs
- // and cannot be undone.
- // Therefore, there are three possible entry conditions:
- // 1) no jobid w/no connection name, which indicates a brand-new job without a chosen connection
- // 2) no jobid w/a connection name, which indicates that the connection at least has been chosen
- // 3) a jobid and a connection name, which indicates that we are editing an existing connection.
- // There are similar combinations for output connections.
-
- int model = IRepositoryConnector.MODEL_ADD_CHANGE_DELETE;
- String[] relationshipTypes = null;
- List<String> tabsArray = new ArrayList<String>();
- List<Integer> sequenceArray = new ArrayList<Integer>();
-
- IRepositoryConnection connection = null;
- if (connectionName.length() > 0)
- {
- connection = connMgr.load(connectionName);
- model = RepositoryConnectorFactory.getConnectorModel(threadContext,connection.getClassName());
- relationshipTypes = RepositoryConnectorFactory.getRelationshipTypes(threadContext,connection.getClassName());
- }
-
- // Set up the predefined tabs
- tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Name"));
- sequenceArray.add(null);
- tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Connection"));
- sequenceArray.add(null);
- if (connectionName.length() > 0)
- {
- tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Scheduling"));
- sequenceArray.add(null);
- if (relationshipTypes != null && relationshipTypes.length > 0)
- {
- tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.HopFilters"));
- sequenceArray.add(null);
- }
- }
-
- // Get the names of the various Javascript methods we'll need to call
- String checkMethod = "checkSpecification";
- 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)
- {
- IRepositoryConnector connector = RepositoryConnectorFactory.getConnectorNoCheck(connection.getClassName());
- if (connector != null)
- {
- checkMethod = connector.getFormCheckJavascriptMethodName(0);
- saveCheckMethod = connector.getFormPresaveCheckJavascriptMethodName(0);
- }
- }
-
- for (int j = 0; j < pipelineConnectionNames.length; j++)
- {
- if (pipelineIsOutputs[j])
- {
- IOutputConnection outputConnection = outputMgr.load(pipelineConnectionNames[j]);
- if (outputConnection != null)
- {
- IOutputConnector outputConnector = OutputConnectorFactory.getConnectorNoCheck(outputConnection.getClassName());
- if (outputConnector != null)
- {
- pipelineCheckMethods[j] = outputConnector.getFormCheckJavascriptMethodName(1+j);
- pipelineCheckForSaveMethods[j] = outputConnector.getFormPresaveCheckJavascriptMethodName(1+j);
- }
- }
- }
- else
- {
- ITransformationConnection transformationConnection = transformationMgr.load(pipelineConnectionNames[j]);
- if (transformationConnection != null)
- {
- ITransformationConnector transformationConnector = TransformationConnectorFactory.getConnectorNoCheck(transformationConnection.getClassName());
- if (transformationConnector != null)
- {
- pipelineCheckMethods[j] = transformationConnector.getFormCheckJavascriptMethodName(1+j);
- pipelineCheckForSaveMethods[j] = transformationConnector.getFormPresaveCheckJavascriptMethodName(1+j);
- }
- }
- }
- }
-
- 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);
- }
+ // Get the job manager handle
+ 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);
+ ITransformationConnection[] transformationList = transformationMgr.getAllConnections();
+
+ 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
+ String tabName = variableContext.getParameter("tabname");
+ String tabSequenceNumber = variableContext.getParameter("sequencenumber");
+ int tabSequenceInt;
+ if (tabName == null || tabName.length() == 0)
+ {
+ tabName = Messages.getString(pageContext.getRequest().getLocale(),"editjob.Name");
+ tabSequenceInt = -1;
+ }
+ else
+ {
+ if (tabSequenceNumber == null || tabSequenceNumber.length() == 0)
+ tabSequenceInt = -1;
+ else
+ tabSequenceInt = Integer.parseInt(tabSequenceNumber);
+ }
+
+ // Get a loaded job object, somehow.
+ String jobID = null;
+ IJobDescription job = (IJobDescription)threadContext.get("JobObject");
+ if (job == null)
+ {
+ // We did not go through execute.jsp
+ // We might have received an argument specifying the connection name.
+ jobID = variableContext.getParameter("jobid");
+ String origJobID = variableContext.getParameter("origjobid");
+ if (origJobID == null || origJobID.length() == 0)
+ origJobID = jobID;
+ if (origJobID != null)
+ job = manager.load(new Long(origJobID));
+ }
+ else
+ jobID = job.getID().toString();
+
+ // Setup default fields
+ String connectionName = "";
+ String description = "";
+ int type = IJobDescription.TYPE_SPECIFIED;
+ Specification documentSpecification = new Specification();
+
+ // Pipeline data
+ String[] pipelineConnectionNames = new String[0];
+ String[] pipelineDescriptions = new String[0];
+ boolean[] pipelineIsOutputs = new boolean[0];
+ 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;
+ EnumeratedValues dayOfMonth = null;
+ EnumeratedValues monthOfYear = null;
+ EnumeratedValues year = null;
+ EnumeratedValues hourOfDay = null;
+ EnumeratedValues minutesOfHour = null;
+ // Duration in minutes
+ Long duration = null;
+ // RequestMinimum flag
+ boolean requestMinimum = false;
+
+ // Priority
+ int priority = 5;
+ // Minimum recrawl interval (Default: 1 day)
+ Long recrawlInterval = new Long(60L * 24L);
+ // Maximum recrawl interval (Default: none)
+ Long maxRecrawlInterval = null;
+ // Reseed interval (Default: 60 minutes)
+ Long reseedInterval = new Long(60L);
+ // Expiration interval (Default: never)
+ Long expirationInterval = null;
+ // Start method
+ int startMethod = IJobDescription.START_DISABLE;
+ // Hopcount mode
+ int hopcountMode = IJobDescription.HOPCOUNT_ACCURATE;
+ // Hop filters
+ Map hopFilterMap = new HashMap();
+
+ // If the job is not null, prepopulate everything with what comes from it.
+ if (job != null)
+ {
+ // Set up values
+ description = job.getDescription();
+ connectionName = job.getConnectionName();
+
+ pipelineConnectionNames = new String[job.countPipelineStages()];
+ pipelineDescriptions = new String[job.countPipelineStages()];
+ pipelineIsOutputs = new boolean[job.countPipelineStages()];
+ pipelinePrerequisites = new int[job.countPipelineStages()];
+ pipelineSpecifications = new Specification[job.countPipelineStages()];
+ for (int j = 0; j < job.countPipelineStages(); j++)
+ {
+ pipelineConnectionNames[j] = job.getPipelineStageConnectionName(j);
+ pipelineDescriptions[j] = job.getPipelineStageDescription(j);
+ pipelineIsOutputs[j] = job.getPipelineStageIsOutputConnection(j);
+ 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();
+ documentSpecification = job.getSpecification();
+ // Fill in schedule records from job
+ for (int j = 0; j < job.getScheduleRecordCount(); j++)
+ {
+ scheduleRecords.add(job.getScheduleRecord(j));
+ }
+
+ priority = job.getPriority();
+ Long value = job.getInterval();
+ recrawlInterval = (value==null)?null:new Long(value.longValue()/60000L);
+ value = job.getMaxInterval();
+ maxRecrawlInterval = (value==null)?null:new Long(value.longValue()/60000L);
+ value = job.getReseedInterval();
+ reseedInterval = (value==null)?null:new Long(value.longValue()/60000L);
+ value = job.getExpiration();
+ expirationInterval = (value==null)?null:new Long(value.longValue()/60000L);
+ hopFilterMap = job.getHopCountFilters();
+ }
+
+
+ // This form reposts to itself. It basically only allows the connection to be picked once; once done, the repost occurs
+ // and cannot be undone.
+ // Therefore, there are three possible entry conditions:
+ // 1) no jobid w/no connection name, which indicates a brand-new job without a chosen connection
+ // 2) no jobid w/a connection name, which indicates that the connection at least has been chosen
+ // 3) a jobid and a connection name, which indicates that we are editing an existing connection.
+ // There are similar combinations for output connections.
+
+ int model = IRepositoryConnector.MODEL_ADD_CHANGE_DELETE;
+ String[] relationshipTypes = null;
+ List<String> tabsArray = new ArrayList<String>();
+ List<Integer> sequenceArray = new ArrayList<Integer>();
+
+ IRepositoryConnection connection = null;
+ if (connectionName.length() > 0)
+ {
+ connection = connMgr.load(connectionName);
+ model = RepositoryConnectorFactory.getConnectorModel(threadContext,connection.getClassName());
+ relationshipTypes = RepositoryConnectorFactory.getRelationshipTypes(threadContext,connection.getClassName());
+ }
+
+ // Set up the predefined tabs
+ tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Name"));
+ sequenceArray.add(null);
+ tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Connection"));
+ sequenceArray.add(null);
+ if (connectionName.length() > 0)
+ {
+ tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Scheduling"));
+ sequenceArray.add(null);
+ if (relationshipTypes != null && relationshipTypes.length > 0)
+ {
+ tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.HopFilters"));
+ sequenceArray.add(null);
+ }
+ }
+
+ // Get the names of the various Javascript methods we'll need to call
+ String checkMethod = "checkSpecification";
+ 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)
+ {
+ IRepositoryConnector connector = RepositoryConnectorFactory.getConnectorNoCheck(connection.getClassName());
+ if (connector != null)
+ {
+ checkMethod = connector.getFormCheckJavascriptMethodName(0);
+ saveCheckMethod = connector.getFormPresaveCheckJavascriptMethodName(0);
+ }
+ }
+
+ for (int j = 0; j < pipelineConnectionNames.length; j++)
+ {
+ if (pipelineIsOutputs[j])
+ {
+ IOutputConnection outputConnection = outputMgr.load(pipelineConnectionNames[j]);
+ if (outputConnection != null)
+ {
+ IOutputConnector outputConnector = OutputConnectorFactory.getConnectorNoCheck(outputConnection.getClassName());
+ if (outputConnector != null)
+ {
+ pipelineCheckMethods[j] = outputConnector.getFormCheckJavascriptMethodName(1+j);
+ pipelineCheckForSaveMethods[j] = outputConnector.getFormPresaveCheckJavascriptMethodName(1+j);
+ }
+ }
+ }
+ else
+ {
+ ITransformationConnection transformationConnection = transformationMgr.load(pipelineConnectionNames[j]);
+ if (transformationConnection != null)
+ {
+ ITransformationConnector transformationConnector = TransformationConnectorFactory.getConnectorNoCheck(transformationConnection.getClassName());
+ if (transformationConnector != null)
+ {
+ pipelineCheckMethods[j] = transformationConnector.getFormCheckJavascriptMethodName(1+j);
+ pipelineCheckForSaveMethods[j] = transformationConnector.getFormPresaveCheckJavascriptMethodName(1+j);
+ }
+ }
+ }
+ }
+
+ 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"?>
@@ -297,452 +297,452 @@
<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(),"editjob.ApacheManifoldCFEditJob")%>
- </title>
-
- <script type="text/javascript">
- <!--
-
- // Use this method to repost the form and pick a new tab
- function SelectTab(newtab)
- {
- if (checkForm())
- {
- document.editjob.tabname.value = newtab;
- document.editjob.sequencenumber.value = "";
- document.editjob.submit();
- }
- }
-
- // Use this method to repost the form and pick a new tab
- function SelectSequencedTab(newtab, sequencenumber)
- {
- if (checkForm())
- {
- document.editjob.tabname.value = newtab;
- document.editjob.sequencenumber.value = sequencenumber;
- document.editjob.submit();
- }
- }
-
- // Use this method to repost the form,
- // and set the anchor request.
- function postFormSetAnchor(anchorValue)
- {
- if (checkForm())
- {
- if (anchorValue != "")
- document.editjob.action = document.editjob.action + "#" + anchorValue;
- document.editjob.submit();
- }
- }
-
- // Use this method to repost the form
- function postFormNew()
- {
- if (checkForm())
- {
- document.editjob.submit();
- }
- }
-
- // Deprecated
- function postForm(schedCount)
- {
- if (checkForm())
- {
- document.editjob.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 (editjob.description.value == "")
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.JobMustHaveAName")%>");
- SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.Name")%>");
- document.editjob.description.focus();
- return;
- }
-<%
- for (int j = 0; j < pipelineCheckForSaveMethods.length; j++)
- {
-%>
- if (window.<%=pipelineCheckForSaveMethods[j]%>)
- {
- if (<%=pipelineCheckForSaveMethods[j]%>() == false)
- return;
- }
-<%
- }
- for (int j = 0; j < notificationCheckForSaveMethods.length; j++)
- {
-%>
- if (window.<%=notificationCheckForSaveMethods[j]%>)
- {
- if (<%=notificationCheckForSaveMethods[j]%>() == false)
- return;
- }
-<%
- }
-%>
- if (window.<%=saveCheckMethod%>)
- {
- if (<%=saveCheckMethod%>() == false)
- return;
- }
- document.editjob.op.value="Save";
- document.editjob.submit();
- }
- }
-
- function Cancel()
- {
- document.editjob.op.value="Cancel";
- document.editjob.submit();
- }
-
- function Continue()
- {
- document.editjob.op.value="Continue";
- postFormNew();
- }
-
- function InsertPipelineStageTransformation(n)
- {
- if (editjob.transformation_connectionname.value == "")
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectATransformationStageConnectionName")%>");
- editjob.transformation_connectionname.focus();
- return;
- }
- eval("document.editjob.pipeline_"+n+"_op.value = 'InsertTransformation'");
- postFormSetAnchor("pipeline_"+(n+1)+"_tag");
- }
-
- function InsertPipelineStageOutput(n)
- {
- if (editjob.output_connectionname.value == "")
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectAnOutputStageConnectionName")%>");
- editjob.output_connectionname.focus();
- return;
- }
- eval("document.editjob.pipeline_"+n+"_op.value = 'InsertOutput'");
- postFormSetAnchor("pipeline_"+(n+1)+"_tag");
- }
-
- function AppendPipelineStageOutput()
- {
- if (editjob.output_connectionname.value == "")
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectAnOutputStageConnectionName")%>");
- editjob.output_connectionname.focus();
- return;
- }
- document.editjob.output_op.value="Add";
- postFormSetAnchor("output_tag");
- }
-
- function DeletePipelineStage(n)
- {
- eval("document.editjob.pipeline_"+n+"_op.value = 'Delete'");
- if (n == 0)
- postFormSetAnchor("pipeline_tag");
- 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))
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.DurationMustBeAValidInteger")%>");
- editjob.duration.focus();
- return;
- }
- document.editjob.recordop.value="Add Scheduled Time";
- postFormSetAnchor("add_schedule");
- }
-
- function RemoveSchedule(n)
- {
- eval("document.editjob.recordop"+n+".value = 'Remove Schedule'");
- if (n == 0)
- postFormSetAnchor("add_schedule");
- else
- postFormSetAnchor("remove_schedule_"+(n-1));
- }
-
- function checkForm()
- {
- if (!checkRecrawl())
- return false;
- if (!checkMaxRecrawl())
- return false;
- if (!checkRecrawlConsistent())
- return false;
- if (!checkReseed())
- return false;
- if (!checkExpiration())
- return false;
- if (!checkSchedule())
- return false;
-<%
- for (int j = 0; j < pipelineCheckMethods.length; j++)
- {
-%>
- if (window.<%=pipelineCheckMethods[j]%>)
- {
- if (<%=pipelineCheckMethods[j]%>() == false)
- return false;
- }
-<%
- }
- for (int j = 0; j < notificationCheckMethods.length; j++)
- {
-%>
- if (window.<%=notificationCheckMethods[j]%>)
- {
- if (<%=notificationCheckMethods[j]%>() == false)
- return false;
- }
-<%
- }
-%>
- // Check the connector part
- if (window.<%=checkMethod%>)
- {
- if (<%=checkMethod%>() == false)
- return false;
- }
- return true;
- }
-
- function checkSchedule()
- {
- var i = 0;
- var schedCount = <%=Integer.toString(scheduleRecords.size())%>;
- while (i < schedCount)
- {
- var propertyname = "duration" + i;
- if (eval("editjob."+propertyname+".value") != "" && !isInteger(eval("editjob."+propertyname+".value")))
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.DurationMustBeAValidInteger")%>");
- eval("editjob."+propertyname+".focus()");
- return false;
- }
- i = i+1;
- }
- return true;
- }
-
- function checkRecrawl()
- {
- if (editjob.recrawlinterval.value != "" && !isInteger(editjob.recrawlinterval.value))
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.RecrawlIntervalMustBeAValidIntegerOrNull")%>");
- editjob.recrawlinterval.focus();
- return false;
- }
- return true;
- }
-
- function checkMaxRecrawl()
- {
- if (editjob.maxrecrawlinterval.value != "" && !isInteger(editjob.maxrecrawlinterval.value))
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.MaxRecrawlIntervalMustBeAValidIntegerOrNull")%>");
- editjob.maxrecrawlinterval.focus();
- return false;
- }
- return true;
- }
-
- function checkRecrawlConsistent()
- {
- if (editjob.maxrecrawlinterval.value != "" && editjob.recrawlinterval.value != "" && parseInt(editjob.maxrecrawlinterval.value) < parseInt(editjob.recrawlinterval.value))
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.MaxRecrawlIntervalMustBeLargerThanRecrawlInterval")%>");
- editjob.maxrecrawlinterval.focus();
- return false;
- }
- return true;
- }
-
- function checkReseed()
- {
- if (editjob.reseedinterval.value != "" && !isInteger(editjob.reseedinterval.value))
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.ReseedIntervalMustBeAValidIntegerOrNull")%>");
- editjob.reseedinterval.focus();
- return false;
- }
- return true;
- }
-
- function checkExpiration()
- {
- if (editjob.expirationinterval.value != "" && !isInteger(editjob.expirationinterval.value))
- {
- alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.ExpirationIntervalMustBeAValidIntegerOrNull")%>");
- editjob.expirationinterval.focus();
- return false;
- }
- return true;
- }
-
- function isInteger(value)
- {
- var anum=/(^\d+$)/;
- return anum.test(value);
- }
-
- function isRegularExpression(value)
- {
- try
- {
- var foo = "teststring";
+ <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(),"editjob.ApacheManifoldCFEditJob")%>
+ </title>
+
+ <script type="text/javascript">
+ <!--
+
+ // Use this method to repost the form and pick a new tab
+ function SelectTab(newtab)
+ {
+ if (checkForm())
+ {
+ document.editjob.tabname.value = newtab;
+ document.editjob.sequencenumber.value = "";
+ document.editjob.submit();
+ }
+ }
+
+ // Use this method to repost the form and pick a new tab
+ function SelectSequencedTab(newtab, sequencenumber)
+ {
+ if (checkForm())
+ {
+ document.editjob.tabname.value = newtab;
+ document.editjob.sequencenumber.value = sequencenumber;
+ document.editjob.submit();
+ }
+ }
+
+ // Use this method to repost the form,
+ // and set the anchor request.
+ function postFormSetAnchor(anchorValue)
+ {
+ if (checkForm())
+ {
+ if (anchorValue != "")
+ document.editjob.action = document.editjob.action + "#" + anchorValue;
+ document.editjob.submit();
+ }
+ }
+
+ // Use this method to repost the form
+ function postFormNew()
+ {
+ if (checkForm())
+ {
+ document.editjob.submit();
+ }
+ }
+
+ // Deprecated
+ function postForm(schedCount)
+ {
+ if (checkForm())
+ {
+ document.editjob.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 (editjob.description.value == "")
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.JobMustHaveAName")%>");
+ SelectTab("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.Name")%>");
+ document.editjob.description.focus();
+ return;
+ }
+<%
+ for (int j = 0; j < pipelineCheckForSaveMethods.length; j++)
+ {
+%>
+ if (window.<%=pipelineCheckForSaveMethods[j]%>)
+ {
+ if (<%=pipelineCheckForSaveMethods[j]%>() == false)
+ return;
+ }
+<%
+ }
+ for (int j = 0; j < notificationCheckForSaveMethods.length; j++)
+ {
+%>
+ if (window.<%=notificationCheckForSaveMethods[j]%>)
+ {
+ if (<%=notificationCheckForSaveMethods[j]%>() == false)
+ return;
+ }
+<%
+ }
+%>
+ if (window.<%=saveCheckMethod%>)
+ {
+ if (<%=saveCheckMethod%>() == false)
+ return;
+ }
+ document.editjob.op.value="Save";
+ document.editjob.submit();
+ }
+ }
+
+ function Cancel()
+ {
+ document.editjob.op.value="Cancel";
+ document.editjob.submit();
+ }
+
+ function Continue()
+ {
+ document.editjob.op.value="Continue";
+ postFormNew();
+ }
+
+ function InsertPipelineStageTransformation(n)
+ {
+ if (editjob.transformation_connectionname.value == "")
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectATransformationStageConnectionName")%>");
+ editjob.transformation_connectionname.focus();
+ return;
+ }
+ eval("document.editjob.pipeline_"+n+"_op.value = 'InsertTransformation'");
+ postFormSetAnchor("pipeline_"+(n+1)+"_tag");
+ }
+
+ function InsertPipelineStageOutput(n)
+ {
+ if (editjob.output_connectionname.value == "")
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectAnOutputStageConnectionName")%>");
+ editjob.output_connectionname.focus();
+ return;
+ }
+ eval("document.editjob.pipeline_"+n+"_op.value = 'InsertOutput'");
+ postFormSetAnchor("pipeline_"+(n+1)+"_tag");
+ }
+
+ function AppendPipelineStageOutput()
+ {
+ if (editjob.output_connectionname.value == "")
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectAnOutputStageConnectionName")%>");
+ editjob.output_connectionname.focus();
+ return;
+ }
+ document.editjob.output_op.value="Add";
+ postFormSetAnchor("output_tag");
+ }
+
+ function DeletePipelineStage(n)
+ {
+ eval("document.editjob.pipeline_"+n+"_op.value = 'Delete'");
+ if (n == 0)
+ postFormSetAnchor("pipeline_tag");
+ 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))
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.DurationMustBeAValidInteger")%>");
+ editjob.duration.focus();
+ return;
+ }
+ document.editjob.recordop.value="Add Scheduled Time";
+ postFormSetAnchor("add_schedule");
+ }
+
+ function RemoveSchedule(n)
+ {
+ eval("document.editjob.recordop"+n+".value = 'Remove Schedule'");
+ if (n == 0)
+ postFormSetAnchor("add_schedule");
+ else
+ postFormSetAnchor("remove_schedule_"+(n-1));
+ }
+
+ function checkForm()
+ {
+ if (!checkRecrawl())
+ return false;
+ if (!checkMaxRecrawl())
+ return false;
+ if (!checkRecrawlConsistent())
+ return false;
+ if (!checkReseed())
+ return false;
+ if (!checkExpiration())
+ return false;
+ if (!checkSchedule())
+ return false;
+<%
+ for (int j = 0; j < pipelineCheckMethods.length; j++)
+ {
+%>
+ if (window.<%=pipelineCheckMethods[j]%>)
+ {
+ if (<%=pipelineCheckMethods[j]%>() == false)
+ return false;
+ }
+<%
+ }
+ for (int j = 0; j < notificationCheckMethods.length; j++)
+ {
+%>
+ if (window.<%=notificationCheckMethods[j]%>)
+ {
+ if (<%=notificationCheckMethods[j]%>() == false)
+ return false;
+ }
+<%
+ }
+%>
+ // Check the connector part
+ if (window.<%=checkMethod%>)
+ {
+ if (<%=checkMethod%>() == false)
+ return false;
+ }
+ return true;
+ }
+
+ function checkSchedule()
+ {
+ var i = 0;
+ var schedCount = <%=Integer.toString(scheduleRecords.size())%>;
+ while (i < schedCount)
+ {
+ var propertyname = "duration" + i;
+ if (eval("editjob."+propertyname+".value") != "" && !isInteger(eval("editjob."+propertyname+".value")))
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.DurationMustBeAValidInteger")%>");
+ eval("editjob."+propertyname+".focus()");
+ return false;
+ }
+ i = i+1;
+ }
+ return true;
+ }
+
+ function checkRecrawl()
+ {
+ if (editjob.recrawlinterval.value != "" && !isInteger(editjob.recrawlinterval.value))
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.RecrawlIntervalMustBeAValidIntegerOrNull")%>");
+ editjob.recrawlinterval.focus();
+ return false;
+ }
+ return true;
+ }
+
+ function checkMaxRecrawl()
+ {
+ if (editjob.maxrecrawlinterval.value != "" && !isInteger(editjob.maxrecrawlinterval.value))
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.MaxRecrawlIntervalMustBeAValidIntegerOrNull")%>");
+ editjob.maxrecrawlinterval.focus();
+ return false;
+ }
+ return true;
+ }
+
+ function checkRecrawlConsistent()
+ {
+ if (editjob.maxrecrawlinterval.value != "" && editjob.recrawlinterval.value != "" && parseInt(editjob.maxrecrawlinterval.value) < parseInt(editjob.recrawlinterval.value))
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.MaxRecrawlIntervalMustBeLargerThanRecrawlInterval")%>");
+ editjob.maxrecrawlinterval.focus();
+ return false;
+ }
+ return true;
+ }
+
+ function checkReseed()
+ {
+ if (editjob.reseedinterval.value != "" && !isInteger(editjob.reseedinterval.value))
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.ReseedIntervalMustBeAValidIntegerOrNull")%>");
+ editjob.reseedinterval.focus();
+ return false;
+ }
+ return true;
+ }
+
+ function checkExpiration()
+ {
+ if (editjob.expirationinterval.value != "" && !isInteger(editjob.expirationinterval.value))
+ {
+ alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.ExpirationIntervalMustBeAValidIntegerOrNull")%>");
+ editjob.expirationinterval.focus();
+ return false;
+ }
+ return true;
+ }
+
+ function isInteger(value)
+ {
+ var anum=/(^\d+$)/;
+ return anum.test(value);
+ }
+
+ function isRegularExpression(value)
+ {
+ try
+ {
+ var foo = "teststring";
foo.search(value.replace(/\(\?i\)/,""));
- return true;
- }
- catch (e)
- {
- return false;
- }
- }
-
- //-->
- </script>
-<%
- if (connection != null)
- {
- IRepositoryConnector repositoryConnector = repositoryConnectorPool.grab(connection);
- if (repositoryConnector != null)
- {
- try
- {
- repositoryConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),documentSpecification,0,tabsArray);
- }
- finally
- {
- repositoryConnectorPool.release(connection,repositoryConnector);
- }
- }
- Integer repositoryConnectionSequenceNumber = new Integer(0);
- while (sequenceArray.size() < tabsArray.size())
- {
- sequenceArray.add(repositoryConnectionSequenceNumber);
- }
- }
-%>
-
-<%
- for (int j = 0; j < pipelineConnectionNames.length; j++)
- {
- if (pipelineIsOutputs[j])
- {
- IOutputConnection outputConnection = outputMgr.load(pipelineConnectionNames[j]);
- if (outputConnection != null)
- {
- IOutputConnector outputConnector = outputConnectorPool.grab(outputConnection);
- if (outputConnector != null)
- {
- try
- {
- outputConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),pipelineSpecifications[j],1+j,tabsArray);
- }
- finally
- {
- outputConnectorPool.release(outputConnection,outputConnector);
- }
- }
- }
- }
- else
- {
- ITransformationConnection transformationConnection = transformationMgr.load(pipelineConnectionNames[j]);
- if (transformationConnection != null)
- {
- ITransformationConnector transformationConnector = transformationConnectorPool.grab(transformationConnection);
- if (transformationConnector != null)
- {
- try
- {
- transformationConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),pipelineSpecifications[j],1+j,tabsArray);
- }
- finally
- {
- transformationConnectorPool.release(transformationConnection,transformationConnector);
- }
- }
- }
- }
- Integer connectionSequenceNumber = new Integer(1+j);
- while (sequenceArray.size() < tabsArray.size())
- {
- sequenceArray.add(connectionSequenceNumber);
- }
- }
-
-%>
-
-<%
- for (int j = 0; j < notificationConnectionNames.length; j++)
- {
- INotificationConnection notificationConnection = notificationMgr.load(notificationConnectionNames[j]);
- if (notificationConnection != null)
- {
- INotificationConnector notificationConnector = notificationConnectorPool.grab(notificationConnection);
- if (notificationConnector != null)
- {
- try
- {
- notificationConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),notificationSpecifications[j],1+pipelineConnectionNames.length+j,tabsArray);
- }
- finally
- {
- notificationConnectorPool.release(notificationConnection,notificationConnector);
- }
- }
- }
- Integer connectionSequenceNumber = new Integer(1+pipelineConnectionNames.length+j);
- while (sequenceArray.size() < tabsArray.size())
- {
- sequenceArray.add(connectionSequenceNumber);
- }
- }
+ return true;
+ }
+ catch (e)
+ {
+ return false;
+ }
+ }
+
+ //-->
+ </script>
+<%
+ if (connection != null)
+ {
+ IRepositoryConnector repositoryConnector = repositoryConnectorPool.grab(connection);
+ if (repositoryConnector != null)
+ {
+ try
+ {
+ repositoryConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),documentSpecification,0,tabsArray);
+ }
+ finally
+ {
+ repositoryConnectorPool.release(connection,repositoryConnector);
+ }
+ }
+ Integer repositoryConnectionSequenceNumber = new Integer(0);
+ while (sequenceArray.size() < tabsArray.size())
+ {
+ sequenceArray.add(repositoryConnectionSequenceNumber);
+ }
+ }
+%>
+
+<%
+ for (int j = 0; j < pipelineConnectionNames.length; j++)
+ {
+ if (pipelineIsOutputs[j])
+ {
+ IOutputConnection outputConnection = outputMgr.load(pipelineConnectionNames[j]);
+ if (outputConnection != null)
+ {
+ IOutputConnector outputConnector = outputConnectorPool.grab(outputConnection);
+ if (outputConnector != null)
+ {
+ try
+ {
+ outputConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),pipelineSpecifications[j],1+j,tabsArray);
+ }
+ finally
+ {
+ outputConnectorPool.release(outputConnection,outputConnector);
+ }
+ }
+ }
+ }
+ else
+ {
+ ITransformationConnection transformationConnection = transformationMgr.load(pipelineConnectionNames[j]);
+ if (transformationConnection != null)
+ {
+ ITransformationConnector transformationConnector = transformationConnectorPool.grab(transformationConnection);
+ if (transformationConnector != null)
+ {
+ try
+ {
+ transformationConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),pipelineSpecifications[j],1+j,tabsArray);
+ }
+ finally
+ {
+ transformationConnectorPool.release(transformationConnection,transformationConnector);
+ }
+ }
+ }
+ }
+ Integer connectionSequenceNumber = new Integer(1+j);
+ while (sequenceArray.size() < tabsArray.size())
+ {
+ sequenceArray.add(connectionSequenceNumber);
+ }
+ }
+
+%>
+
+<%
+ for (int j = 0; j < notificationConnectionNames.length; j++)
+ {
+ INotificationConnection notificationConnection = notificationMgr.load(notificationConnectionNames[j]);
+ if (notificationConnection != null)
+ {
+ INotificationConnector notificationConnector = notificationConnectorPool.grab(notificationConnection);
+ if (notificationConnector != null)
+ {
+ try
+ {
+ notificationConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),notificationSpecifications[j],1+pipelineConnectionNames.length+j,tabsArray);
+ }
+ finally
+ {
+ notificationConnectorPool.release(notificationConnection,notificationConnector);
+ }
+ }
+ }
+ Integer connectionSequenceNumber = new Integer(1+pipelineConnectionNames.length+j);
+ while (sequenceArray.size() < tabsArray.size())
+ {
+ sequenceArray.add(connectionSequenceNumber);
+ }
+ }
%>
</head>
@@ -754,1168 +754,1168 @@
<tr><td class="navigation"><jsp:include page="navigation.jsp" flush="true"/></td>
<td class="darkwindow">
<%
- if (connList.length == 0)
- {
+ if (connList.length == 0)
+ {
+%>
+ <p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EditaJob")%></p>
+ <table class="displaytable"><tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoRepositoryConnectionsDefinedCreateOneFirst")%></td></tr></table>
+<%
+ }
+ else if (outputList.length == 0)
+ {
+%>
+ <p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EditaJob")%></p>
+ <table class="displaytable"><tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoOutputConnectionsDefinedCreateOneFirst")%></td></tr></table>
+<%
+ }
+ else
+ {
+%>
+ <form class="standardform" name="editjob" action="execute.jsp" method="POST" enctype="multipart/form-data">
+ <input type="hidden" name="op" value="Continue"/>
+ <input type="hidden" name="type" value="job"/>
+ <input type="hidden" name="index" value=""/>
+ <input type="hidden" name="tabname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(tabName)%>'/>
+ <input type="hidden" name="sequencenumber" value='<%=((tabSequenceInt==-1)?"":Integer.toString(tabSequenceInt))%>'/>
+<%
+ if (jobID != null)
+ {
+%>
+ <input type="hidden" name="jobid" value='<%=jobID%>'/>
+<%
+ }
+%>
+ <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(),"editjob.EditJob")%> '<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description)%>'</nobr>
+<%
+ }
+ else
+ {
+%>
+ <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EditaJob")%></nobr>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr class="tabsequencerow">
+<%
+ Integer currentSequenceNumber = null;
+ int startColumn = 0;
+ for (int tabNum = 0; tabNum < tabsArray.size(); tabNum++)
+ {
+ boolean doswitch = false;
+ Integer sequenceNumber = sequenceArray.get(tabNum);
+ if (sequenceNumber == null || currentSequenceNumber == null)
+ doswitch = (sequenceNumber != null || currentSequenceNumber != null);
+ else
+ doswitch = !sequenceNumber.equals(currentSequenceNumber);
+ if (doswitch)
+ {
+ int colspan = tabNum - startColumn;
+ if (colspan > 0)
+ {
+ if (currentSequenceNumber == null)
+ {
+%>
+ <td class="blanksequencetab" colspan="<%=colspan%>"></td>
+<%
+ }
+ else
+ {
+%>
+ <td class="sequencetab" colspan="<%=colspan%>"><%=(currentSequenceNumber.intValue()+1)%>.</td>
+<%
+ }
+ }
+ startColumn = tabNum;
+ currentSequenceNumber = sequenceNumber;
+ }
+ }
+ if (startColumn != tabsArray.size())
+ {
+ int colspan = tabsArray.size() - startColumn;
+ if (currentSequenceNumber == null)
+ {
+%>
+ <td class="blanksequencetab" colspan="<%=colspan%>"></td>
+<%
+ }
+ else
+ {
+%>
+ <td class="sequencetab" colspan="<%=colspan%>"><%=(currentSequenceNumber.intValue()+1)%>.</td>
+<%
+ }
+ }
+ // Final (remainder) cell left out on purpose; filled in above.
+%>
+ </tr>
+ <tr class="tabrow">
+<%
+ for (int tabNum = 0; tabNum < tabsArray.size(); tabNum++)
+ {
+ String tab = tabsArray.get(tabNum);
+ Integer sequenceNumber = sequenceArray.get(tabNum);
+ int sequenceNumberInt = (sequenceNumber == null)?-1:sequenceNumber.intValue();
+ if (tab.equals(tabName) && (tabSequenceInt == -1 || sequenceNumberInt == tabSequenceInt))
+ {
+%>
+ <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(),"editjob.tab")%>' onclick='<%="javascript:SelectSequencedTab(\""+tab+"\",\""+((sequenceNumber==null)?"":sequenceNumber.toString())+"\");return false;"%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(tab)%></a></nobr></td>
+<%
+ }
+ }
+ // Missing remainder tab ON PURPOSE -- comes from rowspan=2 tab above
+%>
+ </tr>
+ <tr class="tabbodyrow">
+ <td class="tabbody" colspan='<%=Integer.toString(tabsArray.size()+1)%>'>
+
+ <input type="hidden" name="schedulerecords" value='<%=Integer.toString(scheduleRecords.size())%>'/>
+<%
+ // The NAME tab
+ if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Name")) && tabSequenceInt == -1)
+ {
+%>
+ <table class="displaytable">
+ <tr>
+ <td class="separator" colspan="4"><hr/></td>
+ </tr>
+ <tr>
+ <td class="description" colspan="1"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NameColon")%></nobr></td><td class="value" colspan="3">
+ <input type="text" size="50" name="description" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(description)%>'/>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+ else
+ {
+%>
+ <input type="hidden" name="description" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(description)%>'/>
+<%
+ }
+
+ // Hop Filters tab
+ if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editjob.HopFilters")) && tabSequenceInt == -1)
+ {
+ if (relationshipTypes != null)
+ {
+%>
+ <table class="displaytable">
+ <tr>
+ <td class="separator" colspan="4"><input type="hidden" name="hopfilters" value="true"/><hr/></td>
+ </tr>
+<%
+ int i = 0;
+ while (i < relationshipTypes.length)
+ {
+ String relationshipType = relationshipTypes[i++];
+ String mapField = "";
+ Long mapValue = (Long)hopFilterMap.get(relationshipType);
+ if (mapValue != null)
+ mapField = mapValue.toString();
+%>
+ <tr>
+ <td class="description" colspan="1"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MaximumHopCountForType")%> '<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(relationshipType)%>'<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.colon")%></nobr></td>
+ <td class="value" colspan="3" >
+ <input name='<%="hopmax_"+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(relationshipType)%>' type="text" size="5" value='<%=mapField%>'/>
+ </td>
+ </tr>
+<%
+ }
+%>
+ <tr><td class="separator" colspan="4"><hr/></td></tr>
+ <tr>
+ <td class="description" colspan="1"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.HopCountModeColon")%></nobr></td>
+ <td class="value" colspan="3">
+ <nobr><input type="radio" name="hopcountmode" value='<%=Integer.toString(IJobDescription.HOPCOUNT_ACCURATE)%>' <%=((hopcountMode==IJobDescription.HOPCOUNT_ACCURATE)?"checked=\"true\"":"")%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.DeleteUnreachableDocuments")%></input></nobr><br/>
+ <nobr><input type="radio" name="hopcountmode" value='<%=Integer.toString(IJobDescription.HOPCOUNT_NODELETE)%>' <%=((hopcountMode==IJobDescription.HOPCOUNT_NODELETE)?"checked=\"true\"":"")%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.KeepUnreachableDocumentsForNow")%></input></nobr><br/>
+ <nobr><input type="radio" name="hopcountmode" value='<%=Integer.toString(IJobDescription.HOPCOUNT_NEVERDELETE)%>' <%=((hopcountMode==IJobDescription.HOPCOUNT_NEVERDELETE)?"checked=\"true\"":"")%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.KeepUnreachableDocumentsForever")%></input></nobr><br/>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+ }
+ else
+ {
+ if (relationshipTypes != null)
+ {
+%>
+ <input type="hidden" name="hopfilters" value="true"/>
+<%
+ int i = 0;
+ while (i < relationshipTypes.length)
+ {
+ String relationshipType = relationshipTypes[i++];
+ String mapField = "";
+ Long mapValue = (Long)hopFilterMap.get(relationshipType);
+ if (mapValue != null)
+ mapField = mapValue.toString();
+%>
+ <input name='<%="hopmax_"+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(relationshipType)%>' type="hidden" value='<%=mapField%>'/>
+ <input name="hopcountmode" type="hidden" value='<%=Integer.toString(hopcountMode)%>'/>
+<%
+ }
+ }
+ }
+
+ // Connection tab
+ if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Connection")) && tabSequenceInt == -1)
+ {
+ int rowCounter = 0;
+
+%>
+ <table class="displaytable">
+ <tr><td class="separator" colspan="4"><hr/></td></tr>
+ <tr>
+ <td colspan="1" class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.PipelineColon")%></nobr></td>
+ <td class="boxcell" colspan="3">
+ <table class="formtable">
+ <tr class="formheaderrow">
+ <td class="formcolumnheader">
+ <input name="pipeline_count" type="hidden" value="<%=pipelineConnectionNames.length%>"/>
+ </td>
+ <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageNumber")%></nobr></td>
+ <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageType")%></nobr></td>
+ <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StagePrecedent")%></nobr></td>
+ <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageDescription")%></nobr></td>
+ <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageConnectionName")%></nobr></td>
+ </tr>
+ <tr class="<%=((rowCounter++ % 2)==0)?"evenformrow":"oddformrow"%>">
+ <td class="formcolumncell"></td>
+ <td class="formcolumncell">1.</td>
+ <td class="formcolumncell"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Repository")%></td>
+ <td class="formcolumncell"></td>
+ <td class="formcolumncell"></td>
+ <td class="formcolumncell">
+<%
+ if (connectionName.length() == 0)
+ {
+%>
+ <select name="connectionname" size="1">
+ <option <%="".equals(connectionName)?"selected=\"selected\"":""%> value="">-- <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoneSelected")%> --</option>
+<%
+ for (IRepositoryConnection conn : connList)
+ {
+%>
+ <option <%=conn.getName().equals(connectionName)?"selected=\"selected\"":""%> value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(conn.getName())%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(conn.getName())%></option>
+<%
+ }
+%>
+ </select>
+<%
+ }
+ else
+ {
+%>
+ <input type="hidden" name="connectionname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(connectionName)%>
+<%
+ }
+%>
+ </td>
+ </tr>
+<%
+ // A map of stage number to reference count
+ Map<Integer,Integer> referenceCounts = new HashMap<Integer,Integer>();
+ // A list of precedents to pick from, displayed at the end
+ List<Integer> precedents = new ArrayList<Integer>();
+ // Repository connection is always allowed
+ precedents.add(new Integer(-1));
+ Set<String> alreadyPresent = new HashSet<String>();
+ for (int j = 0; j < pipelineConnectionNames.length; j++)
+ {
+ if (pipelineIsOutputs[j])
+ alreadyPresent.add(pipelineConnectionNames[j]);
+ else
+ precedents.add(new Integer(j));
+ if (pipelinePrerequisites[j] != -1)
+ {
+ Integer thisOne = new Integer(pipelinePrerequisites[j]);
+ Integer x = referenceCounts.get(thisOne);
+ if (x == null)
+ referenceCounts.put(thisOne,new Integer(1));
+ else
+ referenceCounts.put(thisOne,new Integer(x.intValue() + 1));
+ }
+ }
+ boolean anyTransformationButtons = false;
+ for (int j = 0; j < pipelineConnectionNames.length; j++)
+ {
+ String pipelineConnectionName = pipelineConnectionNames[j];
+ String pipelineDescription = pipelineDescriptions[j];
+ if (pipelineDescription == null)
+ pipelineDescription = "";
+ String pipelineType = pipelineIsOutputs[j]?Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Output"):Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Transformation");
+%>
+ <tr class="<%=((rowCounter++ % 2)==0)?"evenformrow":"oddformrow"%>">
+ <td class="formcolumncell">
+ <input name="pipeline_<%=j%>_op" type="hidden" value="Continue"/>
+ <a name="pipeline_<%=j%>_tag"/>
+<%
+ // We don't want to leave orphans around. If the pipeline stage is an output, we can delete it ONLY if:
+ // -- the precedent is -1, OR
+ // -- the precedent is not -1 BUT more than one stage refers to the precedent
+ if (!pipelineIsOutputs[j] || pipelinePrerequisites[j] == -1 || referenceCounts.get(new Integer(pipelinePrerequisites[j])).intValue() > 1)
+ {
+%>
+ <input type="button" value="<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Delete")%>" alt='<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Deletepipelinestage")%>' onclick="javascript:DeletePipelineStage(<%=j%>);"/>
+<%
+ }
+ if (transformationList.length > 0)
+ {
+ anyTransformationButtons = true;
+%>
+ <input type="button" value="<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.InsertTransformationBefore")%>" alt='<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Insertnewtransformationhere")%>' onclick="javascript:InsertPipelineStageTransformation(<%=j%>);"/>
+<%
+ }
+ if (outputList.length != alreadyPresent.size())
+ {
+%>
+ <input type="button" value="<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.InsertOutputBefore")%>" alt='<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Insertnewoutputhere")%>' onclick="javascript:InsertPipelineStageOutput(<%=j%>);"/>
+<%
+ }
+%>
+ </td>
+ <td class="formcolumncell"><%=(j+2)%>.</td>
+ <td class="formcolumncell"><%=pipelineType%>
+ <input name="pipeline_<%=j%>_isoutput" type="hidden" value='<%=pipelineIsOutputs[j]?"true":"false"%>'/>
+ </td>
+ <td class="formcolumncell"><%=(pipelinePrerequisites[j] + 2)%>.
+ <input name="pipeline_<%=j%>_precedent" type="hidden" value="<%=pipelinePrerequisites[j]%>"/>
+ </td>
+ <td class="formcolumncell">
+ <input name="pipeline_<%=j%>_description" type="text" size="30" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(pipelineDescription)%>"/>
+ </td>
+ <td class="formcolumncell">
+ <nobr><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(pipelineConnectionName)%></nobr>
+ <input name="pipeline_<%=j%>_connectionname" type="hidden" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(pipelineConnectionName)%>"/>
+ </td>
+ </tr>
+<%
+ }
+ if (anyTransformationButtons)
+ {
+%>
+ <tr class="formrow"><td class="formseparator" colspan="4"><hr/></td></tr>
+ <tr class="formrow">
+ <td class="formcolumncell">
+ <a name="transformation_tag"/>
+ </td>
+ <td class="formcolumncell"></td>
+ <td class="formcolumncell"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Transformation")%></td>
+ <td class="formcolumncell"></td>
+ <td class="formcolumncell">
+ <input name="transformation_description" type="text" size="30" value=""/>
+ </td>
+ <td class="formcolumncell">
+ <select name="transformation_connectionname" size="1">
+ <option selected="selected" value="">-- <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoneSelected")%> --</option>
+<%
+ for (ITransformationConnection conn : transformationList)
+ {
+%>
+ <option value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(conn.getName())%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(conn.getName())%></option>
+<%
+ }
+%>
+ </select>
+ </td>
+ </tr>
+<%
+ }
+ if (outputList.length != alreadyPresent.size())
+ {
+%>
+ <tr class="formrow"><td class="formseparator" colspan="4"><hr/></td></tr>
+ <tr class="formrow">
+ <td class="formcolumncell">
+ <a name="output_tag"/>
+ <input type="button" value='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editjob.AddOutput")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editjob.AddAnOutput")%>' onclick="javascript:AppendPipelineStageOutput();"/>
+ <input name="output_op" type="hidden" value="Continue"/>
+ </td>
+ <td class="formcolumncell"></td>
+ <td class="formcolumncell"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Output")%></td>
+ <td class="formcolumncell">
+ <select name="output_precedent" size="1">
+<%
+ for (Integer pre : precedents)
+ {
+%>
+ <option value="<%=pre%>"><%=(pre.intValue()+2)%></option>
+<%
+ }
+%>
+ </select>
+ </td>
+ <td class="formcolumncell">
+ <input name="output_description" type="text" size="30" value=""/>
+ </td>
+ <td class="formcolumncell">
+ <select name="output_connectionname" size="1">
+ <option selected="selected" value="">-- <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoneSelected")%> --</option>
+<%
+ for (IOutputConnection conn : outputList)
+ {
+ 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>
+
+<%
+ 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="notification_count" type="hidden" value="<%=notificationConnectionNames.length%>"/>
+ </td>
+ <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageNumber")%></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>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.PriorityColon")%></nobr></td>
+ <td class="value">
+ <select name="priority" size="1">
+ <option value="1" <%=(priority==1)?"selected=\"selected\"":""%>>1 <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Highest")%></option>
+ <option value="2" <%=(priority==2)?"selected=\"selected\"":""%>>2</option>
+ <option value="3" <%=(priority==3)?"selected=\"selected\"":""%>>3</option>
+ <option value="4" <%=(priority==4)?"selected=\"selected\"":""%>>4</option>
+ <option value="5" <%=(priority==5)?"selected=\"selected\"":""%>>5</option>
+ <option value="6" <%=(priority==6)?"selected=\"selected\"":""%>>6</option>
+ <option value="7" <%=(priority==7)?"selected=\"selected\"":""%>>7</option>
+ <option value="8" <%=(priority==8)?"selected=\"selected\"":""%>>8</option>
+ <option value="9" <%=(priority==9)?"selected=\"selected\"":""%>>9</option>
+ <option value="10" <%=(priority==10)?"selected=\"selected\"":""%>>10 <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Lowest")%></option>
+ </select>
+ </td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StartMethodColon")%></nobr></td>
+ <td class="value">
+ <select name="startmethod" size="1">
+ <option value='<%=IJobDescription.START_WINDOWBEGIN%>' <%=(startMethod==IJobDescription.START_WINDOWBEGIN)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StartWhenScheduleWindowStarts")%></option>
+ <option value='<%=IJobDescription.START_WINDOWINSIDE%>' <%=(startMethod==IJobDescription.START_WINDOWINSIDE)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StartEvenInsideAScheduleWindow")%></option>
+ <option value='<%=IJobDescription.START_DISABLE%>' <%=(startMethod==IJobDescription.START_DISABLE)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.DontAutomaticallyStartThisJob")%></option>
+ </select>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+ else
+ {
%>
- <p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EditaJob")%></p>
- <table class="displaytable"><tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoRepositoryConnectionsDefinedCreateOneFirst")%></td></tr></table>
+ <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%>"/>
<%
- }
- else if (outputList.length == 0)
- {
-%>
- <p class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EditaJob")%></p>
- <table class="displaytable"><tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoOutputConnectionsDefinedCreateOneFirst")%></td></tr></table>
-<%
- }
- else
- {
-%>
- <form class="standardform" name="editjob" action="execute.jsp" method="POST" enctype="multipart/form-data">
- <input type="hidden" name="op" value="Continue"/>
- <input type="hidden" name="type" value="job"/>
- <input type="hidden" name="index" value=""/>
- <input type="hidden" name="tabname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(tabName)%>'/>
- <input type="hidden" name="sequencenumber" value='<%=((tabSequenceInt==-1)?"":Integer.toString(tabSequenceInt))%>'/>
-<%
- if (jobID != null)
- {
-%>
- <input type="hidden" name="jobid" value='<%=jobID%>'/>
-<%
- }
-%>
- <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(),"editjob.EditJob")%> '<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description)%>'</nobr>
-<%
- }
- else
- {
-%>
- <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EditaJob")%></nobr>
-<%
- }
-%>
- </td>
- </tr>
- <tr class="tabsequencerow">
-<%
- Integer currentSequenceNumber = null;
- int startColumn = 0;
- for (int tabNum = 0; tabNum < tabsArray.size(); tabNum++)
- {
- boolean doswitch = false;
- Integer sequenceNumber = sequenceArray.get(tabNum);
- if (sequenceNumber == null || currentSequenceNumber == null)
- doswitch = (sequenceNumber != null || currentSequenceNumber != null);
- else
- doswitch = !sequenceNumber.equals(currentSequenceNumber);
- if (doswitch)
- {
- int colspan = tabNum - startColumn;
- if (colspan > 0)
- {
- if (currentSequenceNumber == null)
- {
-%>
- <td class="blanksequencetab" colspan="<%=colspan%>"></td>
-<%
- }
- else
- {
-%>
- <td class="sequencetab" colspan="<%=colspan%>"><%=(currentSequenceNumber.intValue()+1)%>.</td>
-<%
- }
- }
- startColumn = tabNum;
- currentSequenceNumber = sequenceNumber;
- }
- }
- if (startColumn != tabsArray.size())
- {
- int colspan = tabsArray.size() - startColumn;
- if (currentSequenceNumber == null)
- {
-%>
- <td class="blanksequencetab" colspan="<%=colspan%>"></td>
-<%
- }
- else
- {
-%>
- <td class="sequencetab" colspan="<%=colspan%>"><%=(currentSequenceNumber.intValue()+1)%>.</td>
-<%
- }
- }
- // Final (remainder) cell left out on purpose; filled in above.
-%>
- </tr>
- <tr class="tabrow">
-<%
- for (int tabNum = 0; tabNum < tabsArray.size(); tabNum++)
- {
- String tab = tabsArray.get(tabNum);
- Integer sequenceNumber = sequenceArray.get(tabNum);
- int sequenceNumberInt = (sequenceNumber == null)?-1:sequenceNumber.intValue();
- if (tab.equals(tabName) && (tabSequenceInt == -1 || sequenceNumberInt == tabSequenceInt))
- {
-%>
- <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(),"editjob.tab")%>' onclick='<%="javascript:SelectSequencedTab(\""+tab+"\",\""+((sequenceNumber==null)?"":sequenceNumber.toString())+"\");return false;"%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(tab)%></a></nobr></td>
-<%
- }
- }
- // Missing remainder tab ON PURPOSE -- comes from rowspan=2 tab above
-%>
- </tr>
- <tr class="tabbodyrow">
- <td class="tabbody" colspan='<%=Integer.toString(tabsArray.size()+1)%>'>
-
- <input type="hidden" name="schedulerecords" value='<%=Integer.toString(scheduleRecords.size())%>'/>
-<%
- // The NAME tab
- if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Name")) && tabSequenceInt == -1)
- {
-%>
- <table class="displaytable">
- <tr>
- <td class="separator" colspan="4"><hr/></td>
- </tr>
- <tr>
- <td class="description" colspan="1"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NameColon")%></nobr></td><td class="value" colspan="3">
- <input type="text" size="50" name="description" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(description)%>'/>
- </td>
- </tr>
- </table>
-<%
- }
- else
- {
-%>
- <input type="hidden" name="description" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(description)%>'/>
-<%
- }
-
- // Hop Filters tab
- if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editjob.HopFilters")) && tabSequenceInt == -1)
- {
- if (relationshipTypes != null)
- {
-%>
- <table class="displaytable">
- <tr>
- <td class="separator" colspan="4"><input type="hidden" name="hopfilters" value="true"/><hr/></td>
- </tr>
-<%
- int i = 0;
- while (i < relationshipTypes.length)
- {
- String relationshipType = relationshipTypes[i++];
- String mapField = "";
- Long mapValue = (Long)hopFilterMap.get(relationshipType);
- if (mapValue != null)
- mapField = mapValue.toString();
-%>
- <tr>
- <td class="description" colspan="1"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MaximumHopCountForType")%> '<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(relationshipType)%>'<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.colon")%></nobr></td>
- <td class="value" colspan="3" >
- <input name='<%="hopmax_"+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(relationshipType)%>' type="text" size="5" value='<%=mapField%>'/>
- </td>
- </tr>
-<%
- }
-%>
- <tr><td class="separator" colspan="4"><hr/></td></tr>
- <tr>
- <td class="description" colspan="1"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.HopCountModeColon")%></nobr></td>
- <td class="value" colspan="3">
- <nobr><input type="radio" name="hopcountmode" value='<%=Integer.toString(IJobDescription.HOPCOUNT_ACCURATE)%>' <%=((hopcountMode==IJobDescription.HOPCOUNT_ACCURATE)?"checked=\"true\"":"")%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.DeleteUnreachableDocuments")%></input></nobr><br/>
- <nobr><input type="radio" name="hopcountmode" value='<%=Integer.toString(IJobDescription.HOPCOUNT_NODELETE)%>' <%=((hopcountMode==IJobDescription.HOPCOUNT_NODELETE)?"checked=\"true\"":"")%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.KeepUnreachableDocumentsForNow")%></input></nobr><br/>
- <nobr><input type="radio" name="hopcountmode" value='<%=Integer.toString(IJobDescription.HOPCOUNT_NEVERDELETE)%>' <%=((hopcountMode==IJobDescription.HOPCOUNT_NEVERDELETE)?"checked=\"true\"":"")%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.KeepUnreachableDocumentsForever")%></input></nobr><br/>
- </td>
- </tr>
- </table>
-<%
- }
- }
- else
- {
- if (relationshipTypes != null)
- {
-%>
- <input type="hidden" name="hopfilters" value="true"/>
-<%
- int i = 0;
- while (i < relationshipTypes.length)
- {
- String relationshipType = relationshipTypes[i++];
- String mapField = "";
- Long mapValue = (Long)hopFilterMap.get(relationshipType);
- if (mapValue != null)
- mapField = mapValue.toString();
-%>
- <input name='<%="hopmax_"+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(relationshipType)%>' type="hidden" value='<%=mapField%>'/>
- <input name="hopcountmode" type="hidden" value='<%=Integer.toString(hopcountMode)%>'/>
-<%
- }
- }
- }
-
- // Connection tab
- if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Connection")) && tabSequenceInt == -1)
- {
- int rowCounter = 0;
-
-%>
- <table class="displaytable">
- <tr><td class="separator" colspan="4"><hr/></td></tr>
- <tr>
- <td colspan="1" class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.PipelineColon")%></nobr></td>
- <td class="boxcell" colspan="3">
- <table class="formtable">
- <tr class="formheaderrow">
- <td class="formcolumnheader">
- <input name="pipeline_count" type="hidden" value="<%=pipelineConnectionNames.length%>"/>
- </td>
- <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageNumber")%></nobr></td>
- <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageType")%></nobr></td>
- <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StagePrecedent")%></nobr></td>
- <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageDescription")%></nobr></td>
- <td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageConnectionName")%></nobr></td>
- </tr>
- <tr class="<%=((rowCounter++ % 2)==0)?"evenformrow":"oddformrow"%>">
- <td class="formcolumncell"></td>
- <td class="formcolumncell">1.</td>
- <td class="formcolumncell"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Repository")%></td>
- <td class="formcolumncell"></td>
- <td class="formcolumncell"></td>
- <td class="formcolumncell">
-<%
- if (connectionName.length() == 0)
- {
-%>
- <select name="connectionname" size="1">
- <option <%="".equals(connectionName)?"selected=\"selected\"":""%> value="">-- <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoneSelected")%> --</option>
-<%
- for (IRepositoryConnection conn : connList)
- {
-%>
- <option <%=conn.getName().equals(connectionName)?"selected=\"selected\"":""%> value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(conn.getName())%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(conn.getName())%></option>
-<%
- }
-%>
- </select>
-<%
- }
- else
- {
-%>
- <input type="hidden" name="connectionname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(connectionName)%>
-<%
- }
-%>
- </td>
- </tr>
-<%
- // A map of stage number to reference count
- Map<Integer,Integer> referenceCounts = new HashMap<Integer,Integer>();
- // A list of precedents to pick from, displayed at the end
- List<Integer> precedents = new ArrayList<Integer>();
- // Repository connection is always allowed
- precedents.add(new Integer(-1));
- Set<String> alreadyPresent = new HashSet<String>();
- for (int j = 0; j < pipelineConnectionNames.length; j++)
- {
- if (pipelineIsOutputs[j])
- alreadyPresent.add(pipelineConnectionNames[j]);
- else
- precedents.add(new Integer(j));
- if (pipelinePrerequisites[j] != -1)
- {
- Integer thisOne = new Integer(pipelinePrerequisites[j]);
- Integer x = referenceCounts.get(thisOne);
- if (x == null)
- referenceCounts.put(thisOne,new Integer(1));
- else
- referenceCounts.put(thisOne,new Integer(x.intValue() + 1));
- }
- }
- boolean anyTransformationButtons = false;
- for (int j = 0; j < pipelineConnectionNames.length; j++)
- {
- String pipelineConnectionName = pipelineConnectionNames[j];
- String pipelineDescription = pipelineDescriptions[j];
- if (pipelineDescription == null)
- pipelineDescription = "";
- String pipelineType = pipelineIsOutputs[j]?Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Output"):Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Transformation");
-%>
- <tr class="<%=((rowCounter++ % 2)==0)?"evenformrow":"oddformrow"%>">
- <td class="formcolumncell">
- <input name="pipeline_<%=j%>_op" type="hidden" value="Continue"/>
- <a name="pipeline_<%=j%>_tag"/>
-<%
- // We don't want to leave orphans around. If the pipeline stage is an output, we can delete it ONLY if:
- // -- the precedent is -1, OR
- // -- the precedent is not -1 BUT more than one stage refers to the precedent
- if (!pipelineIsOutputs[j] || pipelinePrerequisites[j] == -1 || referenceCounts.get(new Integer(pipelinePrerequisites[j])).intValue() > 1)
- {
-%>
- <input type="button" value="<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Delete")%>" alt='<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Deletepipelinestage")%>' onclick="javascript:DeletePipelineStage(<%=j%>);"/>
-<%
- }
- if (transformationList.length > 0)
- {
- anyTransformationButtons = true;
-%>
- <input type="button" value="<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.InsertTransformationBefore")%>" alt='<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Insertnewtransformationhere")%>' onclick="javascript:InsertPipelineStageTransformation(<%=j%>);"/>
-<%
- }
- if (outputList.length != alreadyPresent.size())
- {
-%>
- <input type="button" value="<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.InsertOutputBefore")%>" alt='<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Insertnewoutputhere")%>' onclick="javascript:InsertPipelineStageOutput(<%=j%>);"/>
-<%
- }
-%>
- </td>
- <td class="formcolumncell"><%=(j+2)%>.</td>
- <td class="formcolumncell"><%=pipelineType%>
- <input name="pipeline_<%=j%>_isoutput" type="hidden" value='<%=pipelineIsOutputs[j]?"true":"false"%>'/>
- </td>
- <td class="formcolumncell"><%=(pipelinePrerequisites[j] + 2)%>.
[... 1436 lines stripped ...]