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=1685187&r1=1685186&r2=1685187&view=diff
==============================================================================
--- manifoldcf/trunk/framework/crawler-ui/src/main/webapp/editjob.jsp (original)
+++ manifoldcf/trunk/framework/crawler-ui/src/main/webapp/editjob.jsp Fri Jun 
12 22:54:43 2015
@@ -2,265 +2,293 @@
 
 <%
 
-  /* $Id$ */
+/* $Id$ */
 
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+* 
+* http://www.apache.org/licenses/LICENSE-2.0
+* 
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
 %>
 
 <%
-  // The contract of this edit page is as follows.  It is either called 
directly, in which case it is expected to be creating
-  // a job or beginning the process of editing an existing job, or it is 
called via redirection from execute.jsp, in which case
-  // the job object being edited will be placed in the thread context under 
the name "JobObject".
-  // 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);
-    }
+    // The contract of this edit page is as follows.  It is either called 
directly, in which case it is expected to be creating
+    // a job or beginning the process of editing an existing job, or it is 
called via redirection from execute.jsp, in which case
+    // the job object being edited will be placed in the thread context under 
the name "JobObject".
+    // 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();
 
-    // 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();
-    }
+       // 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);
-      }
-    }
+       // 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());
+       }
 
-    // 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";
-    }
+       // 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);
+               }
+       }
 
-    if (connection != null) {
-      IRepositoryConnector connector = 
RepositoryConnectorFactory.getConnectorNoCheck(connection.getClassName());
-      if (connector != null) {
-        checkMethod = connector.getFormCheckJavascriptMethodName(0);
-        saveCheckMethod = connector.getFormPresaveCheckJavascriptMethodName(0);
-      }
-    }
+       // 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 < 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);
-        }
+       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"?>
@@ -269,1666 +297,1643 @@
 
 <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();
-      }
-    }
+       <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>
 
-    // 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();
-      }
-    }
+       <script type="text/javascript">
+       <!--
 
-    // 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 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
-    function postFormNew() {
-      if (checkForm()) {
-        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();
+               }
+       }
 
-    // Deprecated
-    function postForm(schedCount) {
-      if (checkForm()) {
-        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;
-        }
-        <%
+       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;
-        }
-        <%
+                       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.<%=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();
-    }
+                       if (window.<%=saveCheckMethod%>)
+                       {
+                               if (<%=saveCheckMethod%>() == false)
+                                       return;
+                       }
+                       document.editjob.op.value="Save";
+                       document.editjob.submit();
+               }
+       }
 
-    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 Cancel()
+       {
+               document.editjob.op.value="Cancel";
+               document.editjob.submit();
+       }
 
-    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 Continue()
+       {
+               document.editjob.op.value="Continue";
+               postFormNew();
+       }
 
-    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 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 DeletePipelineStage(n) {
-      eval("document.editjob.pipeline_" + n + "_op.value = 'Delete'");
-      if (n == 0)
-        postFormSetAnchor("pipeline_tag");
-      else
-        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 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 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 DeleteNotification(n) {
-      eval("document.editjob.notification_" + n + "_op.value = 'Delete'");
-      if (n == 0)
-        postFormSetAnchor("notification_tag");
-      else
-        postFormSetAnchor("notification_" + (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 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 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;
-      <%
+       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;
-      }
-      <%
+               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;
-      }
-      <%
+               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;
-    }
+               // Check the connector part
+               if (window.<%=checkMethod%>)
+               {
+                       if (<%=checkMethod%>() == false)
+                               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 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 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 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 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 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 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 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 isInteger(value) {
-      var anum = /(^\d+$)/;
-      return anum.test(value);
-    }
+       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 isRegularExpression(value) {
-      try {
-        var foo = "teststring";
-        foo.search(value.replace(/\(\?i\)/, ""));
-        return true;
-      }
-      catch (e) {
-        return false;
-      }
-    }
+       function isInteger(value)
+       {
+               var anum=/(^\d+$)/;
+               return anum.test(value);
+       }
 
-    //-->
-  </script>
-  <%
-    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);
-      }
-    }
-  %>
+       function isRegularExpression(value)
+       {
+               try
+               {
+                       var foo = "teststring";
+                        foo.search(value.replace(/\(\?i\)/,""));
+                       return true;
+               }
+               catch (e)
+               {
+                       return false;
+               }
+       }
 
-  <%
-    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);
-      }
-    }
+       //-->
+       </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);
-      }
-    }
-  %>
+<%
+       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>
 
 <body class="standardbody">
 
-<table class="page">
-  <tr>
-    <td colspan="2" class="banner">
-      <jsp:include page="banner.jsp" flush="true"/>
-    </td>
-  </tr>
-  <tr>
-    <td class="navigation">
-      <jsp:include page="navigation.jsp" flush="true"/>
-    </td>
-    <td class="darkwindow">
-      <%
-        if (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 {
-              %>
-              <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++) {
-                  String pipelineConnectionName = pipelineConnectionNames[j];
-                  String pipelineDescription = pipelineDescriptions[j];
-                  if (pipelineDescription == null)
-                    pipelineDescription = "";
-              %>
-              <input name="pipeline_<%=j%>_isoutput" type="hidden" 
value='<%=pipelineIsOutputs[j]?"true":"false"%>'/>
-              <input name="pipeline_<%=j%>_precedent" type="hidden" 
value="<%=pipelinePrerequisites[j]%>"/>
-              <input type="hidden" name="pipeline_<%=j%>_connectionname" 
value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(pipelineConnectionName)%>"/>
-              <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%>'/>
-              <%
-                }
-
-                // Scheduling tab
-                if 
(tabName.equals(Messages.getString(pageContext.getRequest().getLocale(), 
"editjob.Scheduling")) && tabSequenceInt == -1) {
-              %>
-              <table class="displaytable">
-                <%
-                  if (model != -1 && model != 
IRepositoryConnector.MODEL_ADD_CHANGE_DELETE && model != 
IRepositoryConnector.MODEL_CHAINED_ADD_CHANGE_DELETE) {
-                %>
-                <tr>
-                  <td class="separator" colspan="4">

[... 1802 lines stripped ...]

Reply via email to