change Add Build Queue list box in editSchedule.jsp to an optiontransferselect box
git-svn-id: https://svn.apache.org/repos/asf/continuum/branches/continuum-parallel-builds@734072 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java b/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
index 0a07d22..23a5fc1 100644
--- a/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
+++ b/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
@@ -21,7 +21,6 @@
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import org.apache.maven.continuum.ContinuumException;
@@ -72,20 +71,49 @@
private String dayOfWeek = "?";
private String year;
-
- private List<BuildQueue> schedulesBuildQueue;
-
- private BuildQueue buildQueue;
-
- private List<BuildQueue> buildQueues;
-
- private List<String> buildQueueIds;
+
+ private List<String> availableBuildQueues;
+
+ private List<String> selectedBuildQueues = new ArrayList<String>();
public void prepare()
throws Exception
{
super.prepare();
+
+ populateBuildQueues();
+ }
+
+ private void populateBuildQueues()
+ throws ContinuumException
+ {
+ List<BuildQueue> buildQueues = null;
+ if( schedule != null )
+ {
+ buildQueues = schedule.getBuildQueues();
+ for( BuildQueue buildQueue : buildQueues )
+ {
+ selectedBuildQueues.add( buildQueue.getName() );
+ }
+
+ }
+
+ availableBuildQueues = new ArrayList<String>();
+
buildQueues = getContinuum().getAllBuildQueues();
+ for( BuildQueue buildQueue : buildQueues )
+ {
+ availableBuildQueues.add( buildQueue.getName() );
+ }
+
+ // remove selected build queues from available build queues
+ for( String buildQueue : selectedBuildQueues )
+ {
+ if( availableBuildQueues.contains( buildQueue ) )
+ {
+ availableBuildQueues.remove( buildQueue );
+ }
+ }
}
public String summary()
@@ -106,8 +134,7 @@
return REQUIRES_AUTHENTICATION;
}
- buildQueueIds = new ArrayList<String>();
-
+
schedules = getContinuum().getSchedules();
return SUCCESS;
@@ -154,7 +181,7 @@
delay = schedule.getDelay();
maxJobExecutionTime = schedule.getMaxJobExecutionTime();
- getBuildQueueIdsFromSchedule();
+ populateBuildQueues();
}
else
{
@@ -165,22 +192,6 @@
return SUCCESS;
}
- private void getBuildQueueIdsFromSchedule()
- {
- if ( schedule != null )
- {
- List<BuildQueue> buildQueues = schedule.getBuildQueues();
- if ( buildQueueIds == null )
- {
- buildQueueIds = new ArrayList<String>();
- }
- for ( BuildQueue buildQueue : buildQueues )
- {
- buildQueueIds.add( buildQueue.getName() );
- }
- }
- }
-
public String save()
throws ContinuumException
{
@@ -247,16 +258,15 @@
schedule.setName( name );
schedule.setMaxJobExecutionTime( maxJobExecutionTime );
- // remove old build queues
+ // remove old build queues
schedule.setBuildQueues( null );
- // add selected build queues
- for ( String buildQueueId : buildQueueIds )
+ for( String name : selectedBuildQueues )
{
- BuildQueue buildQueue = getContinuum().getBuildQueueByName( buildQueueId );
+ BuildQueue buildQueue = getContinuum().getBuildQueueByName( name );
schedule.addBuildQueue( buildQueue );
}
-
+
return schedule;
}
@@ -485,43 +495,23 @@
return ( second + " " + minute + " " + hour + " " + dayOfMonth + " " + month + " " + dayOfWeek + " " + year ).trim();
}
- public BuildQueue getBuildQueue()
+ public List<String> getAvailableBuildQueues()
{
- return buildQueue;
+ return availableBuildQueues;
}
- public void setBuildQueue( BuildQueue buildQueue )
+ public void setAvailableBuildQueues( List<String> availableBuildQueues )
{
- this.buildQueue = buildQueue;
+ this.availableBuildQueues = availableBuildQueues;
}
- public List<BuildQueue> getBuildQueues()
+ public List<String> getSelectedBuildQueues()
{
- return buildQueues;
+ return selectedBuildQueues;
}
- public void setBuildQueues( List<BuildQueue> buildQueues )
+ public void setSelectedBuildQueues( List<String> selectedBuildQueues )
{
- this.buildQueues = buildQueues;
- }
-
- public List<String> getBuildQueueIds()
- {
- return buildQueueIds == null ? Collections.EMPTY_LIST : buildQueueIds;
- }
-
- public void setBuildQueueIds( List<String> buildQueueIds )
- {
- this.buildQueueIds = buildQueueIds;
- }
-
- public List<BuildQueue> getSchedulesBuildQueue()
- {
- return schedulesBuildQueue;
- }
-
- public void setSchedulesBuildQueue( List<BuildQueue> schedulesBuildQueue )
- {
- this.schedulesBuildQueue = schedulesBuildQueue;
+ this.selectedBuildQueues = selectedBuildQueues;
}
}
diff --git a/continuum-webapp/src/main/resources/localization/Continuum.properties b/continuum-webapp/src/main/resources/localization/Continuum.properties
index 8680204..12f6307 100644
--- a/continuum-webapp/src/main/resources/localization/Continuum.properties
+++ b/continuum-webapp/src/main/resources/localization/Continuum.properties
@@ -618,6 +618,7 @@
schedule.dayOfWeek.label = Day of Week
schedule.year.label = Year [optional]
schedule.remove.error = The schedule can't be removed, it is probably used by a build definition.
+schedule.buildqueues.label = Add Build Queue
schedule.buildqueues.define = Configure the used build queues
schedule.available.buildqueues = --- Available Build Queues ---
schedule.available.buildqueues.used = --- Used Build Queues ---
diff --git a/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp b/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp
index 610bf6f..7c5b4e5 100644
--- a/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp
+++ b/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp
@@ -72,9 +72,16 @@
<s:textfield label="%{getText('schedule.quietPeriod.label')}" name="delay">
<s:param name="desc"><p><s:text name="schedule.quietPeriod.message"/></p></s:param>
</s:textfield>
-
- <s:select label="Add Build Queue" id="buildQueueIds" name="buildQueueIds" listKey="name" listValue="name" multiple="true"
- list="buildQueues" />
+
+ <s:optiontransferselect label="%{getText('schedule.buildqueues.label')}" name="availableBuildQueues"
+ list="availableBuildQueues" size="8" multiple="true" emptyOption="false"
+ doubleName="selectedBuildQueues" doubleList="selectedBuildQueues" doubleSize="8"
+ doubleMultiple="true" doubleEmptyOption="false"
+ addAllToRightOnclick="selectAllOptions(document.getElementById('saveSchedule_availableBuildQueues'));selectAllOptions(document.getElementById('saveSchedule_selectedBuildQueues'));"
+ addToRightOnclick="selectAllOptions(document.getElementById('saveSchedule_availableBuildQueues'));selectAllOptions(document.getElementById('saveSchedule_selectedBuildQueues'));"
+ addAllToLeftOnclick="selectAllOptions(document.getElementById('saveSchedule_availableBuildQueues'));selectAllOptions(document.getElementById('saveSchedule_selectedBuildQueues'));"
+ addToLeftOnclick="selectAllOptions(document.getElementById('saveSchedule_availableBuildQueues'));selectAllOptions(document.getElementById('saveSchedule_selectedBuildQueues'));"
+ />
<s:checkbox label="%{getText('schedule.enabled.label')}" name="active" value="active" fieldValue="true">
<s:param name="desc"><p><s:text name="schedule.enabled.message"/></p></s:param>