using System; using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; using Codice.Client.Common; using PlasticGui; using PlasticGui.WebApi; using PlasticGui.Configuration.CloudEdition; using PlasticGui.Configuration.CloudEdition.Welcome; using Unity.PlasticSCM.Editor.UI; using Unity.PlasticSCM.Editor.UI.UIElements; using PlasticGui.WebApi.Responses; namespace Unity.PlasticSCM.Editor.Configuration.CloudEdition.Welcome { internal class SSOSignUpPanel : VisualElement, SignUp.INotify { internal SSOSignUpPanel( CloudEditionWelcomeWindow parentWindow, IPlasticWebRestApi restApi, CmConnection cmConnection) { mParentWindow = parentWindow; mRestApi = restApi; mCmConnection = cmConnection; InitializeLayoutAndStyles(); BuildComponents(); } internal void SetSignUpData( string user, string password) { mUserNameTextField.value = user; mPasswordTextField.value = password; CleanNotificationLabels(); } internal void Dispose() { mSignUpButton.clicked -= SignUpButton_Clicked; mTermsOfServiceButton.clicked -= TermsOfServiceButton_Clicked; mPrivacyPolicyButton.clicked -= PrivacyPolicyButton_Clicked; mPrivacyPolicyStatementButton.clicked -= PrivacyPolicyStatementButton_Clicked; mUserNameTextField.UnregisterValueChangedCallback( UserNameTextBox_TextChanged); mPasswordTextField.UnregisterValueChangedCallback( PasswordTextBox_TextChanged); mConfirmPasswordTextField.UnregisterValueChangedCallback( ConfirmPasswordTextBox_TextChanged); } void UserNameTextBox_TextChanged(ChangeEvent evt) { CleanNotification(mUserNotificationLabel); } void PasswordTextBox_TextChanged(ChangeEvent evt) { CleanNotification(mPasswordNotificationLabel); } void ConfirmPasswordTextBox_TextChanged(ChangeEvent evt) { CleanNotification(mConfirmPasswordNotificationLabel); } void SignUpButton_Clicked() { CleanNotificationLabels(); SignUp.Run( mRestApi, new SaveCloudEditionCreds(), new SignUp.Data( mUserNameTextField.text, mPasswordTextField.text, mConfirmPasswordTextField.text, false), mProgressControls, this); } void SignUpWithUnityButton_clicked() { mWaitingSignInPanel = new WaitingSignInPanel( mParentWindow, mParentWindow, mRestApi, mCmConnection); mParentWindow.ReplaceRootPanel(mWaitingSignInPanel); mWaitingSignInPanel.OAuthSignInForConfigure(SsoProvider.UNITY_URL_ACTION); } void TermsOfServiceButton_Clicked() { Application.OpenURL(SignUp.TERMS_OF_SERVICE_URL); } void PrivacyPolicyButton_Clicked() { Application.OpenURL(SignUp.PRIVACY_POLICY_URL); } void PrivacyPolicyStatementButton_Clicked() { Application.OpenURL(SignUp.PRIVACY_POLICY_URL); } void BuildComponents() { mUserNameTextField = this.Q("emailField"); mUserNameTextField.label = PlasticLocalization.GetString( PlasticLocalization.Name.Email); mUserNameTextField.RegisterValueChangedCallback( UserNameTextBox_TextChanged); mUserNotificationLabel = this.Q