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 ...]
