NewAgreementScreen: Use REST API to get list of available agreements

Change-Id: I3fb4bde6e4d5c50010bd821eee61d95afd671204
This commit is contained in:
David Pursehouse
2016-08-22 23:36:00 +09:00
parent 630929fd39
commit bfc0c378bc
20 changed files with 44 additions and 35 deletions

View File

@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.client.account;
package com.google.gerrit.client.info;
import com.google.gwt.core.client.JavaScriptObject;
@@ -20,6 +20,7 @@ public class AgreementInfo extends JavaScriptObject {
public final native String name() /*-{ return this.name; }-*/;
public final native String description() /*-{ return this.description; }-*/;
public final native String url() /*-{ return this.url; }-*/;
public final native GroupInfo autoVerifyGroup() /*-{ return this.auto_verify_group; }-*/;
protected AgreementInfo() {
}

View File

@@ -18,6 +18,7 @@ import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.extensions.client.AccountFieldName;
import com.google.gerrit.extensions.client.AuthType;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.core.client.JsArrayString;
import java.util.ArrayList;
@@ -63,6 +64,14 @@ public class AuthInfo extends JavaScriptObject {
return fields;
}
public final List<AgreementInfo> contributorAgreements() {
List<AgreementInfo> agreements = new ArrayList<>();
for (AgreementInfo a : Natives.asList(_contributorAgreements())) {
agreements.add(a);
}
return agreements;
}
public final boolean siteHasUsernames() {
if (isCustomExtension()
&& httpPasswordUrl() != null
@@ -92,6 +101,8 @@ public class AuthInfo extends JavaScriptObject {
private native String authTypeRaw() /*-{ return this.auth_type; }-*/;
private native JsArrayString _editableAccountFields()
/*-{ return this.editable_account_fields; }-*/;
private native JsArray<AgreementInfo> _contributorAgreements()
/*-{ return this.contributor_agreements; }-*/;
protected AuthInfo() {
}

View File

@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.client.groups;
package com.google.gerrit.client.info;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gwt.core.client.JavaScriptObject;

View File

@@ -12,9 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.client.groups;
package com.google.gerrit.client.info;
import com.google.gerrit.client.info.AccountInfo;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;

View File

@@ -89,7 +89,7 @@ import com.google.gerrit.client.diff.Unified;
import com.google.gerrit.client.documentation.DocScreen;
import com.google.gerrit.client.editor.EditScreen;
import com.google.gerrit.client.groups.GroupApi;
import com.google.gerrit.client.groups.GroupInfo;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.RestApi;
import com.google.gerrit.client.ui.Screen;

View File

@@ -16,6 +16,7 @@ package com.google.gerrit.client.account;
import com.google.gerrit.client.VoidResult;
import com.google.gerrit.client.info.AccountInfo;
import com.google.gerrit.client.info.AgreementInfo;
import com.google.gerrit.client.info.GpgKeyInfo;
import com.google.gerrit.client.rpc.CallbackGroup;
import com.google.gerrit.client.rpc.NativeMap;

View File

@@ -15,6 +15,7 @@
package com.google.gerrit.client.account;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.info.AgreementInfo;
import com.google.gerrit.client.rpc.ScreenLoadCallback;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.client.ui.FancyFlexTable;

View File

@@ -16,6 +16,7 @@ package com.google.gerrit.client.account;
import com.google.gerrit.client.ErrorDialog;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.info.AgreementInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.NativeString;
import com.google.gerrit.client.rpc.Natives;
@@ -23,7 +24,6 @@ import com.google.gerrit.client.ui.AccountScreen;
import com.google.gerrit.client.ui.OnEditEnabler;
import com.google.gerrit.client.ui.SmallHeading;
import com.google.gerrit.common.PageLinks;
import com.google.gerrit.common.data.ContributorAgreement;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -51,8 +51,8 @@ import java.util.Set;
public class NewAgreementScreen extends AccountScreen {
private final String nextToken;
private Set<String> mySigned;
private List<ContributorAgreement> available;
private ContributorAgreement current;
private List<AgreementInfo> available;
private AgreementInfo current;
private VerticalPanel radios;
@@ -87,17 +87,9 @@ public class NewAgreementScreen extends AccountScreen {
}
}});
Gerrit.SYSTEM_SVC
.contributorAgreements(new GerritCallback<List<ContributorAgreement>>() {
@Override
public void onSuccess(final List<ContributorAgreement> result) {
if (isAttached()) {
available = result;
available = Gerrit.info().auth().contributorAgreements();
postRPC();
}
}
});
}
@Override
protected void onInitUI() {
@@ -163,12 +155,12 @@ public class NewAgreementScreen extends AccountScreen {
}
radios.add(hdr);
for (final ContributorAgreement cla : available) {
final RadioButton r = new RadioButton("cla_id", cla.getName());
for (final AgreementInfo cla : available) {
final RadioButton r = new RadioButton("cla_id", cla.name());
r.addStyleName(Gerrit.RESOURCES.css().contributorAgreementButton());
radios.add(r);
if (mySigned.contains(cla.getName())) {
if (mySigned.contains(cla.name())) {
r.setEnabled(false);
final Label l = new Label(Util.C.newAgreementAlreadySubmitted());
l.setStyleName(Gerrit.RESOURCES.css().contributorAgreementAlreadySubmitted());
@@ -182,8 +174,8 @@ public class NewAgreementScreen extends AccountScreen {
});
}
if (cla.getDescription() != null && !cla.getDescription().equals("")) {
final Label l = new Label(cla.getDescription());
if (cla.description() != null && !cla.description().equals("")) {
final Label l = new Label(cla.description());
l.setStyleName(Gerrit.RESOURCES.css().contributorAgreementShortDescription());
radios.add(l);
}
@@ -204,7 +196,7 @@ public class NewAgreementScreen extends AccountScreen {
}
private void doEnterAgreement() {
AccountApi.enterAgreement("self", current.getName(),
AccountApi.enterAgreement("self", current.name(),
new GerritCallback<NativeString>() {
@Override
public void onSuccess(NativeString result) {
@@ -219,9 +211,9 @@ public class NewAgreementScreen extends AccountScreen {
});
}
private void showCLA(final ContributorAgreement cla) {
private void showCLA(AgreementInfo cla) {
current = cla;
String url = cla.getAgreementUrl();
String url = cla.url();
if (url != null && url.length() > 0) {
agreementGroup.setVisible(true);
agreementHtml.setText(Gerrit.C.rpcStatusWorking());
@@ -255,7 +247,7 @@ public class NewAgreementScreen extends AccountScreen {
agreementGroup.setVisible(false);
}
finalGroup.setVisible(cla.getAutoVerify() != null);
finalGroup.setVisible(cla.autoVerifyGroup() != null);
yesIAgreeBox.setText("");
submit.setEnabled(false);
}

View File

@@ -21,8 +21,8 @@ import com.google.gerrit.client.Dispatcher;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.groups.GroupApi;
import com.google.gerrit.client.groups.GroupAuditEventInfo;
import com.google.gerrit.client.groups.GroupInfo;
import com.google.gerrit.client.info.AccountInfo;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.client.ui.FancyFlexTable;

View File

@@ -17,7 +17,7 @@ package com.google.gerrit.client.admin;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.VoidResult;
import com.google.gerrit.client.groups.GroupApi;
import com.google.gerrit.client.groups.GroupInfo;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.ui.AccountGroupSuggestOracle;
import com.google.gerrit.client.ui.OnEditEnabler;

View File

@@ -18,8 +18,8 @@ import com.google.gerrit.client.Dispatcher;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.VoidResult;
import com.google.gerrit.client.groups.GroupApi;
import com.google.gerrit.client.groups.GroupInfo;
import com.google.gerrit.client.info.AccountInfo;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.client.ui.AccountGroupSuggestOracle;

View File

@@ -17,7 +17,7 @@ package com.google.gerrit.client.admin;
import static com.google.gerrit.client.Dispatcher.toGroup;
import com.google.gerrit.client.groups.GroupApi;
import com.google.gerrit.client.groups.GroupInfo;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.ui.MenuScreen;
import com.google.gerrit.reviewdb.client.AccountGroup;

View File

@@ -21,7 +21,7 @@ import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.NotFoundScreen;
import com.google.gerrit.client.account.AccountCapabilities;
import com.google.gerrit.client.groups.GroupApi;
import com.google.gerrit.client.groups.GroupInfo;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.ui.OnEditEnabler;
import com.google.gerrit.client.ui.Screen;

View File

@@ -18,9 +18,9 @@ import static com.google.gerrit.client.admin.Util.C;
import com.google.gerrit.client.Dispatcher;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.groups.GroupInfo;
import com.google.gerrit.client.groups.GroupList;
import com.google.gerrit.client.groups.GroupMap;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.client.ui.HighlightingInlineHyperlink;
import com.google.gerrit.client.ui.NavigationTable;

View File

@@ -16,8 +16,8 @@ package com.google.gerrit.client.change;
import com.google.gerrit.client.admin.Util;
import com.google.gerrit.client.changes.ChangeApi;
import com.google.gerrit.client.groups.GroupBaseInfo;
import com.google.gerrit.client.info.AccountInfo;
import com.google.gerrit.client.info.GroupBaseInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.client.ui.AccountSuggestOracle;

View File

@@ -16,6 +16,7 @@ package com.google.gerrit.client.groups;
import com.google.gerrit.client.VoidResult;
import com.google.gerrit.client.info.AccountInfo;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.NativeString;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.client.rpc.RestApi;

View File

@@ -15,6 +15,7 @@
package com.google.gerrit.client.groups;
import com.google.gerrit.client.info.AccountInfo;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwtjsonrpc.client.impl.ser.JavaSqlTimestamp_JsonSerializer;

View File

@@ -14,6 +14,7 @@
package com.google.gerrit.client.groups;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.RestApi;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gwt.core.client.JsArray;

View File

@@ -14,6 +14,7 @@
package com.google.gerrit.client.groups;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.NativeMap;
import com.google.gerrit.client.rpc.RestApi;
import com.google.gwt.user.client.rpc.AsyncCallback;

View File

@@ -14,8 +14,8 @@
package com.google.gerrit.client.ui;
import com.google.gerrit.client.groups.GroupInfo;
import com.google.gerrit.client.groups.GroupMap;
import com.google.gerrit.client.info.GroupInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.reviewdb.client.AccountGroup;