Modified: manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editjob.jsp URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editjob.jsp?rev=1684303&r1=1684302&r2=1684303&view=diff ============================================================================== --- manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editjob.jsp (original) +++ manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/editjob.jsp Tue Jun 9 01:30:36 2015 @@ -2,1938 +2,1925 @@ <% -/* $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); - } - - // 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(); + // 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); + } - // 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(); + // 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(); + } - // 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()); + } - // 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); + } + } - // Set up the predefined tabs - tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Name")); - sequenceArray.add(null); - tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Connection")); - sequenceArray.add(null); - if (connectionName.length() > 0) - { - tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Scheduling")); - sequenceArray.add(null); - if (relationshipTypes != null && relationshipTypes.length > 0) - { - tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.HopFilters")); - sequenceArray.add(null); - } - } + // Get the names of the various Javascript methods we'll need to call + String checkMethod = "checkSpecification"; + String saveCheckMethod = "checkSpecificationForSave"; + String[] pipelineCheckMethods = new String[pipelineConnectionNames.length]; + String[] pipelineCheckForSaveMethods = new String[pipelineConnectionNames.length]; + String[] notificationCheckMethods = new String[notificationConnectionNames.length]; + String[] notificationCheckForSaveMethods = new String[notificationConnectionNames.length]; + + for (int j = 0; j < pipelineConnectionNames.length; j++) { + pipelineCheckMethods[j] = "unknown"; + pipelineCheckForSaveMethods[j] = "unknown"; + } + for (int j = 0; j < notificationConnectionNames.length; j++) { + notificationCheckMethods[j] = "unknown"; + notificationCheckForSaveMethods[j] = "unknown"; + } - // 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); - } - } + 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"?> -<!DOCTYPE html> -<meta http-equiv="X-UA-Compatible" content="IE=edge"/> - -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <link rel="StyleSheet" href="style.css" type="text/css" media="screen"/> - <title> - <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"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(); - } - } +<script type="text/javascript"> + <!-- + <% + String title = null; + if (description.length() > 0) + { + title = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EditJob") + " - " + org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description); + } + else + { + title = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EditaJob"); + } + %> + $.ManifoldCF.setTitle('<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "editjob.ApacheManifoldCFEditJob")%>', + '<%=title%>', + 'jobs' + ); + + // 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 = ""; + $.ManifoldCF.submit(document.editjob); + } + } - // Use this method to repost the form and pick a new tab - function SelectSequencedTab(newtab, sequencenumber) - { - if (checkForm()) - { - document.editjob.tabname.value = newtab; - document.editjob.sequencenumber.value = sequencenumber; - document.editjob.submit(); - } - } + // Use this method to repost the form and pick a new tab + function SelectSequencedTab(newtab, sequencenumber) { + if (checkForm()) { + document.editjob.tabname.value = newtab; + document.editjob.sequencenumber.value = sequencenumber; + $.ManifoldCF.submit(document.editjob); + } + } - // 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 set the anchor request. + function postFormSetAnchor(anchorValue) { + if (checkForm()) { + if (anchorValue != "") + document.editjob.action = document.editjob.action + "#" + anchorValue; + $.ManifoldCF.submit(document.editjob); + } + } - // Use this method to repost the form - function postFormNew() - { - if (checkForm()) - { - document.editjob.submit(); - } - } + // Use this method to repost the form + function postFormNew() { + if (checkForm()) { + $.ManifoldCF.submit(document.editjob); + } + } - // Deprecated - function postForm(schedCount) - { - if (checkForm()) - { - document.editjob.submit(); - } - } + // Deprecated + function postForm(schedCount) { + if (checkForm()) { + $.ManifoldCF.submit(document.editjob); + } + } - 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(); - } - - function InsertPipelineStageTransformation(n) - { - if (editjob.transformation_connectionname.value == "") - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectATransformationStageConnectionName")%>"); - editjob.transformation_connectionname.focus(); - return; - } - eval("document.editjob.pipeline_"+n+"_op.value = 'InsertTransformation'"); - postFormSetAnchor("pipeline_"+(n+1)+"_tag"); - } - - function InsertPipelineStageOutput(n) - { - if (editjob.output_connectionname.value == "") - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectAnOutputStageConnectionName")%>"); - editjob.output_connectionname.focus(); - return; - } - eval("document.editjob.pipeline_"+n+"_op.value = 'InsertOutput'"); - postFormSetAnchor("pipeline_"+(n+1)+"_tag"); - } - - function AppendPipelineStageOutput() - { - if (editjob.output_connectionname.value == "") - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectAnOutputStageConnectionName")%>"); - editjob.output_connectionname.focus(); - return; - } - document.editjob.output_op.value="Add"; - postFormSetAnchor("output_tag"); - } - - function DeletePipelineStage(n) - { - eval("document.editjob.pipeline_"+n+"_op.value = 'Delete'"); - if (n == 0) - postFormSetAnchor("pipeline_tag"); - else - postFormSetAnchor("pipeline_"+(n-1)+"_tag"); - } - - function AppendNotification() - { - if (editjob.notification_connectionname.value == "") - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectANotificationConnectionName")%>"); - editjob.notification_connectionname.focus(); - return; - } - document.editjob.notification_op.value="Add"; - postFormSetAnchor("notification_tag"); - } - - function DeleteNotification(n) - { - eval("document.editjob.notification_"+n+"_op.value = 'Delete'"); - if (n == 0) - postFormSetAnchor("notification_tag"); - else - postFormSetAnchor("notification_"+(n-1)+"_tag"); - } - - function AddScheduledTime() - { - if (editjob.duration.value != "" && !isInteger(editjob.duration.value)) - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.DurationMustBeAValidInteger")%>"); - editjob.duration.focus(); - return; - } - document.editjob.recordop.value="Add Scheduled Time"; - postFormSetAnchor("add_schedule"); - } - - function RemoveSchedule(n) - { - eval("document.editjob.recordop"+n+".value = 'Remove Schedule'"); - if (n == 0) - postFormSetAnchor("add_schedule"); - else - postFormSetAnchor("remove_schedule_"+(n-1)); - } + if (window.<%=saveCheckMethod%>) { + if (<%=saveCheckMethod%>() == false) + return; + } + document.editjob.op.value = "Save"; + $.ManifoldCF.submit(document.editjob); + } + } - 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 Cancel() { + document.editjob.op.value = "Cancel"; + $.ManifoldCF.submit(document.editjob); + } + + function Continue() { + document.editjob.op.value = "Continue"; + postFormNew(); + } + + function InsertPipelineStageTransformation(n) { + if (editjob.transformation_connectionname.value == "") { + alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectATransformationStageConnectionName")%>"); + editjob.transformation_connectionname.focus(); + return; + } + eval("document.editjob.pipeline_" + n + "_op.value = 'InsertTransformation'"); + postFormSetAnchor("pipeline_" + (n + 1) + "_tag"); + } + + function InsertPipelineStageOutput(n) { + if (editjob.output_connectionname.value == "") { + alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectAnOutputStageConnectionName")%>"); + editjob.output_connectionname.focus(); + return; + } + eval("document.editjob.pipeline_" + n + "_op.value = 'InsertOutput'"); + postFormSetAnchor("pipeline_" + (n + 1) + "_tag"); + } + + function AppendPipelineStageOutput() { + if (editjob.output_connectionname.value == "") { + alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectAnOutputStageConnectionName")%>"); + editjob.output_connectionname.focus(); + return; + } + document.editjob.output_op.value = "Add"; + postFormSetAnchor("output_tag"); + } + + function DeletePipelineStage(n) { + eval("document.editjob.pipeline_" + n + "_op.value = 'Delete'"); + if (n == 0) + postFormSetAnchor("pipeline_tag"); + else + postFormSetAnchor("pipeline_" + (n - 1) + "_tag"); + } + + function AppendNotification() { + if (editjob.notification_connectionname.value == "") { + alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.SelectANotificationConnectionName")%>"); + editjob.notification_connectionname.focus(); + return; + } + document.editjob.notification_op.value = "Add"; + postFormSetAnchor("notification_tag"); + } + + function DeleteNotification(n) { + eval("document.editjob.notification_" + n + "_op.value = 'Delete'"); + if (n == 0) + postFormSetAnchor("notification_tag"); + else + postFormSetAnchor("notification_" + (n - 1) + "_tag"); + } + + function AddScheduledTime() { + if (editjob.duration.value != "" && !isInteger(editjob.duration.value)) { + alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.DurationMustBeAValidInteger")%>"); + editjob.duration.focus(); + return; + } + document.editjob.recordop.value = "Add Scheduled Time"; + postFormSetAnchor("add_schedule"); + } + + function RemoveSchedule(n) { + eval("document.editjob.recordop" + n + ".value = 'Remove Schedule'"); + if (n == 0) + postFormSetAnchor("add_schedule"); + else + postFormSetAnchor("remove_schedule_" + (n - 1)); + } + + function checkForm() { + if (!checkRecrawl()) + return false; + if (!checkMaxRecrawl()) + return false; + if (!checkRecrawlConsistent()) + return false; + if (!checkReseed()) + return false; + if (!checkExpiration()) + return false; + if (!checkSchedule()) + return false; + <% for (int j = 0; j < pipelineCheckMethods.length; j++) { %> - if (window.<%=pipelineCheckMethods[j]%>) - { - if (<%=pipelineCheckMethods[j]%>() == false) - return false; - } -<% + if (window.<%=pipelineCheckMethods[j]%>) { + if (<%=pipelineCheckMethods[j]%>() == false) + return false; + } + <% } for (int j = 0; j < notificationCheckMethods.length; j++) { %> - if (window.<%=notificationCheckMethods[j]%>) - { - if (<%=notificationCheckMethods[j]%>() == false) - return false; - } -<% - } -%> - // Check the connector part - if (window.<%=checkMethod%>) - { - if (<%=checkMethod%>() == false) - return false; - } - return true; - } - - function checkSchedule() - { - var i = 0; - var schedCount = <%=Integer.toString(scheduleRecords.size())%>; - while (i < schedCount) - { - var propertyname = "duration" + i; - if (eval("editjob."+propertyname+".value") != "" && !isInteger(eval("editjob."+propertyname+".value"))) - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.DurationMustBeAValidInteger")%>"); - eval("editjob."+propertyname+".focus()"); - return false; - } - i = i+1; - } - return true; - } - - function checkRecrawl() - { - if (editjob.recrawlinterval.value != "" && !isInteger(editjob.recrawlinterval.value)) - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.RecrawlIntervalMustBeAValidIntegerOrNull")%>"); - editjob.recrawlinterval.focus(); - return false; - } - return true; - } - - function checkMaxRecrawl() - { - if (editjob.maxrecrawlinterval.value != "" && !isInteger(editjob.maxrecrawlinterval.value)) - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.MaxRecrawlIntervalMustBeAValidIntegerOrNull")%>"); - editjob.maxrecrawlinterval.focus(); - return false; - } - return true; - } - - function checkRecrawlConsistent() - { - if (editjob.maxrecrawlinterval.value != "" && editjob.recrawlinterval.value != "" && parseInt(editjob.maxrecrawlinterval.value) < parseInt(editjob.recrawlinterval.value)) - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.MaxRecrawlIntervalMustBeLargerThanRecrawlInterval")%>"); - editjob.maxrecrawlinterval.focus(); - return false; - } - return true; - } - - function checkReseed() - { - if (editjob.reseedinterval.value != "" && !isInteger(editjob.reseedinterval.value)) - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.ReseedIntervalMustBeAValidIntegerOrNull")%>"); - editjob.reseedinterval.focus(); - return false; - } - return true; - } - - function checkExpiration() - { - if (editjob.expirationinterval.value != "" && !isInteger(editjob.expirationinterval.value)) - { - alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"editjob.ExpirationIntervalMustBeAValidIntegerOrNull")%>"); - editjob.expirationinterval.focus(); - return false; - } - return true; - } - - function isInteger(value) - { - var anum=/(^\d+$)/; - return anum.test(value); - } - - function isRegularExpression(value) - { - try - { - var foo = "teststring"; - foo.search(value.replace(/\(\?i\)/,"")); - return true; - } - catch (e) - { - return false; - } - } - - //--> - </script> -<% - if (connection != null) - { - IRepositoryConnector repositoryConnector = repositoryConnectorPool.grab(connection); - if (repositoryConnector != null) - { - try - { - repositoryConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),documentSpecification,0,tabsArray); - } - finally - { - repositoryConnectorPool.release(connection,repositoryConnector); - } - } - Integer repositoryConnectionSequenceNumber = new Integer(0); - while (sequenceArray.size() < tabsArray.size()) - { - sequenceArray.add(repositoryConnectionSequenceNumber); - } - } -%> - -<% - for (int j = 0; j < pipelineConnectionNames.length; j++) - { - if (pipelineIsOutputs[j]) - { - IOutputConnection outputConnection = outputMgr.load(pipelineConnectionNames[j]); - if (outputConnection != null) - { - IOutputConnector outputConnector = outputConnectorPool.grab(outputConnection); - if (outputConnector != null) - { - try - { - outputConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),pipelineSpecifications[j],1+j,tabsArray); - } - finally - { - outputConnectorPool.release(outputConnection,outputConnector); - } - } - } - } - else - { - ITransformationConnection transformationConnection = transformationMgr.load(pipelineConnectionNames[j]); - if (transformationConnection != null) - { - ITransformationConnector transformationConnector = transformationConnectorPool.grab(transformationConnection); - if (transformationConnector != null) - { - try - { - transformationConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),pipelineSpecifications[j],1+j,tabsArray); - } - finally - { - transformationConnectorPool.release(transformationConnection,transformationConnector); - } - } - } - } - Integer connectionSequenceNumber = new Integer(1+j); - while (sequenceArray.size() < tabsArray.size()) - { - sequenceArray.add(connectionSequenceNumber); - } - } - -%> - -<% - for (int j = 0; j < notificationConnectionNames.length; j++) - { - INotificationConnection notificationConnection = notificationMgr.load(notificationConnectionNames[j]); - if (notificationConnection != null) - { - INotificationConnector notificationConnector = notificationConnectorPool.grab(notificationConnection); - if (notificationConnector != null) - { - try - { - notificationConnector.outputSpecificationHeader(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),notificationSpecifications[j],1+pipelineConnectionNames.length+j,tabsArray); - } - finally - { - notificationConnectorPool.release(notificationConnection,notificationConnector); - } - } - } - Integer connectionSequenceNumber = new Integer(1+pipelineConnectionNames.length+j); - while (sequenceArray.size() < tabsArray.size()) - { - sequenceArray.add(connectionSequenceNumber); - } - } -%> - -</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> -<% + if (window.<%=notificationCheckMethods[j]%>) { + if (<%=notificationCheckMethods[j]%>() == false) + return false; + } + <% } - 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%>'/> -<% - } + // Check the connector part + if (window.<%=checkMethod%>) { + if (<%=checkMethod%>() == false) + return false; + } + return true; + } - // 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"><hr/></td> - </tr> - <tr> - <td class="description"> - <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.ScheduleTypeColon")%></nobr> - </td> - <td class="value" colspan="3"> - <select name="scheduletype" size="1"> - <option value='<%=IJobDescription.TYPE_CONTINUOUS%>' <%=(type==IJobDescription.TYPE_CONTINUOUS)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.RescanDocumentsDynamically")%></option> - <option value='<%=IJobDescription.TYPE_SPECIFIED%>' <%=(type==IJobDescription.TYPE_SPECIFIED)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.ScanEveryDocumentOnce")%></option> - </select> - </td> - </tr> - <tr> - <td class="description"> - <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.RecrawlIntervalIfContinuousColon")%></nobr> - </td> - <td class="value" colspan="3"> - <nobr><input type="text" size="5" name="recrawlinterval" value='<%=((recrawlInterval==null)?"":recrawlInterval.toString())%>'/> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.minutesBlankInfinity")%></nobr> - </td> - </tr> - <tr> - <td class="description"> - <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MaxRecrawlIntervalIfContinuousColon")%></nobr> - </td> - <td class="value" colspan="3"> - <nobr><input type="text" size="5" name="maxrecrawlinterval" value='<%=((maxRecrawlInterval==null)?"":maxRecrawlInterval.toString())%>'/> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.minutesBlankInfinity")%></nobr> - </td> - </tr> - <tr> - <td class="description"> - <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.ExpirationIntervalIfContinuousColon")%></nobr> - </td> - <td class="value" colspan="3"> - <nobr><input type="text" size="5" name="expirationinterval" value='<%=((expirationInterval==null)?"":expirationInterval.toString())%>'/> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.minutesBlankInfinity")%></nobr> - </td> - </tr> - <tr> - <td class="description"> - <nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.ReseedIntervalIfContinuousColon")%></nobr> - </td> - <td class="value" colspan="3"> - <nobr><input type="text" size="5" name="reseedinterval" value='<%=((reseedInterval==null)?"":reseedInterval.toString())%>'/> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.minutesBlankInfinity")%></nobr> - </td> - </tr> -<% - } - else - { -%> - <input type="hidden" name="scheduletype" value='<%=type%>'/> - <input type="hidden" name="recrawlinterval" value='<%=((recrawlInterval==null)?"":recrawlInterval.toString())%>'/> - <input type="hidden" name="maxrecrawlinterval" value='<%=((maxRecrawlInterval==null)?"":maxRecrawlInterval.toString())%>'/> - <input type="hidden" name="reseedinterval" value='<%=((reseedInterval==null)?"":reseedInterval.toString())%>'/> - <input type="hidden" name="expirationinterval" value='<%=((expirationInterval==null)?"":expirationInterval.toString())%>'/> -<% - } -%> - <tr> - <td class="separator" colspan="4"><hr/></td> - </tr> -<% - if (scheduleRecords.size() == 0) - { -%> - <tr><td class="message" colspan="4"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.NoScheduleSpecified")%></td></tr> -<% - } - else - { - int l = 0; - while (l < scheduleRecords.size()) - { - ScheduleRecord sr = (ScheduleRecord)scheduleRecords.get(l); - Long srDuration = sr.getDuration(); - EnumeratedValues srDayOfWeek = sr.getDayOfWeek(); - EnumeratedValues srMonthOfYear = sr.getMonthOfYear(); - EnumeratedValues srDayOfMonth = sr.getDayOfMonth(); - EnumeratedValues srYear = sr.getYear(); - EnumeratedValues srHourOfDay = sr.getHourOfDay(); - EnumeratedValues srMinutesOfHour = sr.getMinutesOfHour(); - boolean srRequestMinimum = sr.getRequestMinimum(); - String postFix = Integer.toString(l); - int k; + 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; + } - if (l > 0) - { -%> - <tr> - <td class="separator" colspan="4"><hr/></td> - </tr> -<% - } -%> - <tr> - <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.ScheduledTimeColon")%></nobr></td> - <td colspan="3" class="value"> - <select class="schedulepulldown" multiple="true" name='<%="dayofweek"+postFix%>' size="3"> - <option value="none" <%=(srDayOfWeek==null)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.AnyDayOfWeek")%></option> - <option value="0" <%=(srDayOfWeek!=null&&srDayOfWeek.checkValue(0))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Sundays")%></option> - <option value="1" <%=(srDayOfWeek!=null&&srDayOfWeek.checkValue(1))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Mondays")%></option> - <option value="2" <%=(srDayOfWeek!=null&&srDayOfWeek.checkValue(2))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Tuesdays")%></option> - <option value="3" <%=(srDayOfWeek!=null&&srDayOfWeek.checkValue(3))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Wednesdays")%></option> - <option value="4" <%=(srDayOfWeek!=null&&srDayOfWeek.checkValue(4))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Thursdays")%></option> - <option value="5" <%=(srDayOfWeek!=null&&srDayOfWeek.checkValue(5))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Fridays")%></option> - <option value="6" <%=(srDayOfWeek!=null&&srDayOfWeek.checkValue(6))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Saturdays")%></option> - </select> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.at")%> - <select class="schedulepulldown" multiple="true" name='<%="hourofday"+postFix%>' size="3"> - <option value="none" <%=(srHourOfDay==null)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MidnightAnyHourOfDay")%></option> -<% - k = 0; - while (k < 24) - { - int q = k; - String ampm; - if (k < 12) - ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.am"); - else - { - ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.pm"); - q -= 12; - } - String hour; - if (q == 0) - q = 12; -%> - <option value='<%=k%>' <%=(srHourOfDay!=null&&srHourOfDay.checkValue(k))?"selected=\"selected\"":""%>><%=Integer.toString(q)+" "+ampm%></option> -<% - k++; - } -%> - </select> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.plus")%> - <select class="schedulepulldown" multiple="true" name='<%="minutesofhour"+postFix%>' size="3"> - <option value="none" <%=(srMinutesOfHour==null)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Nothing")%></option> -<% - k = 0; - while (k < 60) - { -%> - <option value='<%=k%>' <%=(srMinutesOfHour!=null&&srMinutesOfHour.checkValue(k))?"selected=\"selected\"":""%>><%=Integer.toString(k)%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.minutes")%></option> -<% - k++; - } -%> - </select> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.in")%> - <select class="schedulepulldown" multiple="true" name='<%="monthofyear"+postFix%>' size="3"> - <option value="none" <%=(srMonthOfYear==null)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.EveryMonthOfYear")%></option> - <option value="0" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(0))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.January")%></option> - <option value="1" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(1))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.February")%></option> - <option value="2" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(2))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.March")%></option> - <option value="3" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(3))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.April")%></option> - <option value="4" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(4))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.May")%></option> - <option value="5" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(5))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.June")%></option> - <option value="6" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(6))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.July")%></option> - <option value="7" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(7))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.August")%></option> - <option value="8" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(8))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.September")%></option> - <option value="9" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(9))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.October")%></option> - <option value="10" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(10))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.November")%></option> - <option value="11" <%=(srMonthOfYear!=null&&srMonthOfYear.checkValue(11))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.December")%></option> - </select> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.on")%> - <select class="schedulepulldown" multiple="true" name='<%="dayofmonth"+postFix%>' size="3"> - <option value="none" <%=(srDayOfMonth==null)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.AnyDayOfMonth")%></option> -<% - k = 0; - while (k < 31) - { - int value = (k+1) % 10; - String suffix; - if (value == 1 && k != 10) - suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.st"); - else if (value == 2 && k != 11) - suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.nd"); - else if (value == 3 && k != 12) - suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.rd"); - else - suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.th"); -%> - <option value='<%=Integer.toString(k)%>' <%=(srDayOfMonth!=null&&srDayOfMonth.checkValue(k))?"selected=\"selected\"":""%>><%=Integer.toString(k+1)+suffix+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.dayofmonth")%></option> -<% - k++; - } -%> - </select><input type="hidden" name='<%="year"+postFix%>' value="none"/> - </td> - </tr> - <tr> - <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MaximumRunTimeColon")%></nobr></td> - <td class="value"> - <input type="text" size="5" name='<%="duration"+postFix%>' value='<%=((srDuration==null)?"":new Long(srDuration.longValue()/60000L).toString())%>'/> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.minutes")%> - </td> - <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.JobInvocationColon")%></nobr></td> - <td class="value"> - <select class="schedulepulldown" multiple="false" name='<%="invocation"+postFix%>' size="2"> - <option value="complete" <%=(srRequestMinimum==false)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Complete")%></option> - <option value="minimal" <%=srRequestMinimum?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Minimal")%></option> - </select> - </td> - </tr> - <tr> - <td class="message" colspan="4"> - <a name='<%="remove_schedule_"+Integer.toString(l)%>'><input type="button" value="<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.RemoveSchedule")%>" onClick='<%="Javascript:RemoveSchedule("+Integer.toString(l)+")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"editjob.RemoveScheduleRecord")+Integer.toString(l)%>'/></a> - <input type="hidden" name='<%="recordop"+postFix%>' value=""/> - </td> - </tr> -<% - l++; - } - } -%> + 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; + } - <tr> - <td class="separator" colspan="4"><hr/></td> - </tr> - <tr> - <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.ScheduledTimeColon")%></nobr></td> - <td colspan="3" class="value"> - <select class="schedulepulldown" multiple="true" name="dayofweek" size="3"> - <option value="none" <%=(dayOfWeek==null)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.AnyDayOfWeek")%></option> - <option value="0" <%=(dayOfWeek!=null&&dayOfWeek.checkValue(0))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Sundays")%></option> - <option value="1" <%=(dayOfWeek!=null&&dayOfWeek.checkValue(1))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Mondays")%></option> - <option value="2" <%=(dayOfWeek!=null&&dayOfWeek.checkValue(2))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Tuesdays")%></option> - <option value="3" <%=(dayOfWeek!=null&&dayOfWeek.checkValue(3))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Wednesdays")%></option> - <option value="4" <%=(dayOfWeek!=null&&dayOfWeek.checkValue(4))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Thursdays")%></option> - <option value="5" <%=(dayOfWeek!=null&&dayOfWeek.checkValue(5))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Fridays")%></option> - <option value="6" <%=(dayOfWeek!=null&&dayOfWeek.checkValue(6))?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Saturdays")%></option> - </select> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.at")%> - <select class="schedulepulldown" multiple="true" name="hourofday" size="3"> - <option value="none" <%=(hourOfDay==null)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MidnightAnyHourOfDay")%></option> -<% - int k = 0; - while (k < 24) - { - int q = k; - String ampm; - if (k < 12) - ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.am"); - else - { - ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.pm"); - q -= 12; - } - String hour; - if (q == 0) - q = 12; -%> - <option value='<%=k%>' <%=(hourOfDay!=null&&hourOfDay.checkValue(k))?"selected=\"selected\"":""%>><%=Integer.toString(q)+" "+ampm%></option> -<% - k++; - } -%> - </select> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.plus")%> - <select class="schedulepulldown" multiple="true" name="minutesofhour" size="3">
[... 1723 lines stripped ...]
