NewAgreementScreen: Use REST API to get list of available agreements
Change-Id: I3fb4bde6e4d5c50010bd821eee61d95afd671204
This commit is contained in:
		@@ -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() {
 | 
			
		||||
  }
 | 
			
		||||
@@ -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() {
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
@@ -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;
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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,16 +87,8 @@ 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;
 | 
			
		||||
              postRPC();
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
    available = Gerrit.info().auth().contributorAgreements();
 | 
			
		||||
    postRPC();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
@@ -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);
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user