Skip to content

Commit

Permalink
improved the new contract UI logic to make sure only valid informatio…
Browse files Browse the repository at this point in the history
…n is displayed and the create button is only active when appropriate
  • Loading branch information
EricWittmann committed Jan 16, 2015
1 parent f86ea4b commit 3fd9a21
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 11 deletions.
Expand Up @@ -15,13 +15,15 @@
*/
package io.apiman.manager.ui.client.local.pages;

import io.apiman.manager.api.beans.apps.ApplicationStatus;
import io.apiman.manager.api.beans.apps.ApplicationVersionBean;
import io.apiman.manager.api.beans.contracts.ContractBean;
import io.apiman.manager.api.beans.contracts.NewContractBean;
import io.apiman.manager.api.beans.search.SearchCriteriaBean;
import io.apiman.manager.api.beans.search.SearchCriteriaFilterBean;
import io.apiman.manager.api.beans.search.SearchResultsBean;
import io.apiman.manager.api.beans.services.ServiceBean;
import io.apiman.manager.api.beans.services.ServiceStatus;
import io.apiman.manager.api.beans.summary.ApplicationSummaryBean;
import io.apiman.manager.api.beans.summary.ApplicationVersionSummaryBean;
import io.apiman.manager.api.beans.summary.ServicePlanSummaryBean;
Expand Down Expand Up @@ -59,6 +61,7 @@
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.TextBox;


Expand Down Expand Up @@ -114,7 +117,7 @@ public class NewContractPage extends AbstractPage {
PlanSelectBox plan;

@Inject @DataField
Anchor createButton;
Button createButton;
@Inject @DataField
Anchor cancelButton;
@Inject @DataField
Expand Down Expand Up @@ -177,7 +180,9 @@ public void onValueChange(ValueChangeEvent<ServicePlanSummaryBean> event) {
protected void onApplicationSelected() {
hideRows(APP_VERSION_ROW, SERVICE_SEARCH_ROW, SERVICE_ROW, SERVICE_VERSION_ROW, PLAN_ROW);
showRow(SPINNER_ROW);


createButton.setEnabled(false);

searchBox.setValue(""); //$NON-NLS-1$
services.clear();

Expand All @@ -189,6 +194,9 @@ public void onSuccess(List<ApplicationVersionSummaryBean> response) {
List<String> versions = new ArrayList<String>(response.size());
String contextVersion = null;
for (ApplicationVersionSummaryBean avb : response) {
if (avb.getStatus() == ApplicationStatus.Registered || avb.getStatus() == ApplicationStatus.Retired) {
continue;
}
String avbVersion = avb.getVersion();
versions.add(avbVersion);
if (avb.getOrganizationId().equals(apporg)
Expand All @@ -197,9 +205,14 @@ public void onSuccess(List<ApplicationVersionSummaryBean> response) {
contextVersion = avbVersion;
}
}
if (contextVersion == null && versions.size() > 0) {
contextVersion = versions.get(0);
}
applicationVersion.setOptions(versions);
applicationVersion.setValue(contextVersion );
onApplicationVersionSelected();
applicationVersion.setValue(contextVersion);
if (contextVersion != null) {
onApplicationVersionSelected();
}
showRow(APP_VERSION_ROW);
hideRow(SPINNER_ROW);
}
Expand All @@ -215,6 +228,7 @@ public void onError(Throwable error) {
* Called when the user selects an application version.
*/
protected void onApplicationVersionSelected() {
createButton.setEnabled(false);
if (svc != null) {
getSpecificService();
} else {
Expand All @@ -228,22 +242,31 @@ protected void onApplicationVersionSelected() {
protected void onServiceSelected() {
hideRows(SERVICE_VERSION_ROW, PLAN_ROW);
showRow(SPINNER_ROW);
createButton.setEnabled(false);
ServiceSummaryBean service = services.getValue();
rest.getServiceVersions(service.getOrganizationId(), service.getId(), new IRestInvokerCallback<List<ServiceVersionSummaryBean>>() {
@Override
public void onSuccess(List<ServiceVersionSummaryBean> response) {
List<String> versions = new ArrayList<String>(response.size());
String initialContextServiceVersion = null;
for (ServiceVersionSummaryBean svsb : response) {
if (svsb.getStatus() != ServiceStatus.Published) {
continue;
}
String svbVersion = svsb.getVersion();
versions.add(svbVersion);
if (svsb.getOrganizationId().equals(svcorg) && svsb.getId().equals(svc) && svbVersion.equals(svcv)) {
initialContextServiceVersion = svbVersion;
}
}
if (initialContextServiceVersion == null && versions.size() > 0) {
initialContextServiceVersion = versions.get(0);
}
serviceVersion.setOptions(versions);
serviceVersion.setValue(initialContextServiceVersion);
onServiceVersionSelected();
if (initialContextServiceVersion != null) {
onServiceVersionSelected();
}
showRow(SERVICE_VERSION_ROW);
hideRow(SPINNER_ROW);
}
Expand All @@ -260,6 +283,7 @@ public void onError(Throwable error) {
protected void onServiceVersionSelected() {
hideRow(PLAN_ROW);
showRow(SPINNER_ROW);
createButton.setEnabled(false);
ServiceSummaryBean service = services.getValue();
String version = serviceVersion.getValue();
rest.getServiceVersionPlans(service.getOrganizationId(), service.getId(), version, new IRestInvokerCallback<List<ServicePlanSummaryBean>>() {
Expand Down
Expand Up @@ -141,8 +141,10 @@ public void setValue(T value) {
setSelectedIndex(idx);
setValue(value, false);
} else {
setSelectedIndex(0);
setValue(options.get(0), false);
if (options.size() > 0) {
setSelectedIndex(0);
setValue(options.get(0), false);
}
}
if (isAttached())
renderUI(getElement());
Expand Down
Expand Up @@ -59,7 +59,7 @@ <h2 class="title" data-i18n-key="new-contract">New Contract</h2>
<dl>
<dt data-i18n-key="application">Application</dt>
<dd>
<select class="selectpicker" data-live-search="true" data-role="dummy" data-field="applicationSelector">
<select class="selectpicker" data-live-search="true" data-role="dummy" data-field="applicationSelector" title="[no applications found]">
<option data-content="Bedework / <span class='emphasis'>bw-calendar</span>">Bedework / bw-calendar</option>
<option data-content="Overlord / <span class='emphasis'>dtgov</span>">Overlord / dtgov</option>
<option data-content="Overlord / <span class='emphasis'>s-ramp</span>">Overlord / s-ramp</option>
Expand All @@ -72,7 +72,7 @@ <h2 class="title" data-i18n-key="new-contract">New Contract</h2>
<dl>
<dt data-i18n-key="application-version">Application Version</dt>
<dd>
<select class="selectpicker" data-role="dummy" data-field="applicationVersion">
<select class="selectpicker" data-role="dummy" data-field="applicationVersion" title="[no versions found]">
<option>2.0</option>
<option>1.5</option>
<option>1.4</option>
Expand Down Expand Up @@ -122,7 +122,7 @@ <h2 class="title" data-i18n-key="new-contract">New Contract</h2>
<dl>
<dt data-i18n-key="service-version">Service Version</dt>
<dd>
<select data-field="serviceVersion" class="selectpicker" data-role="dummy">
<select data-field="serviceVersion" class="selectpicker" data-role="dummy" title="[no versions found]">
<option>2.0</option>
<option>1.5</option>
<option>1.4</option>
Expand All @@ -137,7 +137,7 @@ <h2 class="title" data-i18n-key="new-contract">New Contract</h2>
<dl>
<dt data-i18n-key="plan">Plan</dt>
<dd>
<select data-field="plan" class="selectpicker" data-role="dummy">
<select data-field="plan" class="selectpicker" data-role="dummy" title="[no plans found]">
<option>Platinum</option>
<option>Gold</option>
<option>Silver</option>
Expand Down

0 comments on commit 3fd9a21

Please sign in to comment.