From e353cd6f2bd37ea143d5806e9ee85323cddd1f97 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Wed, 21 Feb 2018 16:36:42 +0100 Subject: [PATCH] create and use Button component (#3087) --- .../qa/util/pageobjects/LoginPage.java | 5 +- .../src/main/js/api/quality-profiles.ts | 8 +- .../nav/settings/SettingsEditionsNotif.tsx | 6 +- .../SettingsEditionsNotif-test.tsx.snap | 5 +- .../organizations/CreateOrganizationForm.tsx | 47 ++++---- .../organizations/UserOrganizations.tsx | 19 ++-- .../components/WorkersForm.tsx | 13 ++- .../__snapshots__/WorkersForm-test.tsx.snap | 22 ++-- .../components/ActivationButton.tsx | 13 +-- .../components/ActivationFormModal.tsx | 36 +++---- .../coding-rules/components/BulkChange.tsx | 5 +- .../components/BulkChangeModal.tsx | 18 +--- .../components/CustomRuleButton.tsx | 8 +- .../components/CustomRuleFormModal.tsx | 33 +++--- .../RemoveExtendedDescriptionModal.tsx | 18 ++-- .../coding-rules/components/RuleDetails.tsx | 9 +- .../components/RuleDetailsCustomRules.tsx | 13 +-- .../components/RuleDetailsDescription.tsx | 35 +++--- .../components/RuleDetailsMeta.tsx | 11 +- .../components/RuleDetailsProfiles.tsx | 15 +-- .../coding-rules/components/RuleListItem.tsx | 9 +- .../components/CreateButton.tsx | 5 +- .../apps/custom-measures/components/Form.tsx | 16 ++- .../components/__tests__/Form-test.tsx | 2 +- .../__snapshots__/CreateButton-test.tsx.snap | 10 +- .../__snapshots__/Form-test.tsx.snap | 22 ++-- .../components/CreateButton.tsx | 5 +- .../apps/custom-metrics/components/Form.tsx | 13 ++- .../components/__tests__/Form-test.tsx | 2 +- .../__snapshots__/CreateButton-test.tsx.snap | 8 +- .../__snapshots__/Form-test.tsx.snap | 11 +- .../js/apps/groups/components/EditMembers.tsx | 12 +-- .../main/js/apps/groups/components/Form.tsx | 9 +- .../main/js/apps/groups/components/Header.tsx | 9 +- .../components/__tests__/EditGroup-test.tsx | 2 +- .../components/__tests__/EditMembers-test.tsx | 5 +- .../groups/components/__tests__/Form-test.tsx | 2 +- .../components/__tests__/Header-test.tsx | 2 +- .../__snapshots__/EditGroup-test.tsx.snap | 6 +- .../__snapshots__/EditMembers-test.tsx.snap | 6 +- .../__snapshots__/Form-test.tsx.snap | 11 +- .../__snapshots__/Header-test.tsx.snap | 8 +- .../js/apps/maintenance/components/App.tsx | 9 +- .../components/__tests__/App-test.tsx | 2 +- .../__tests__/__snapshots__/App-test.tsx.snap | 5 +- .../js/apps/marketplace/PendingActions.tsx | 18 ++-- .../PendingActions-test.tsx.snap | 8 +- .../marketplace/components/EditionBox.tsx | 9 +- .../components/LicenseEditionForm.tsx | 21 ++-- .../marketplace/components/PluginActions.tsx | 19 ++-- .../components/PluginChangeLogButton.tsx | 19 ++-- .../components/PluginUpdateButton.tsx | 12 ++- .../components/UninstallEditionForm.tsx | 17 ++- .../__tests__/LicenseEditionForm-test.tsx | 19 ++-- .../__tests__/UninstallEditionForm-test.tsx | 2 +- .../__snapshots__/EditionBox-test.tsx.snap | 8 +- .../LicenseEditionForm-test.tsx.snap | 38 ++++++- .../UninstallEditionForm-test.tsx.snap | 11 +- .../js/apps/overview/badges/BadgeButton.tsx | 11 +- .../js/apps/overview/badges/BadgesModal.tsx | 30 +++--- .../badges/__tests__/BadgeButton-test.tsx | 2 +- .../badges/__tests__/BadgesModal-test.tsx | 2 +- .../__snapshots__/BadgeButton-test.tsx.snap | 12 +-- .../__snapshots__/BadgesModal-test.tsx.snap | 10 +- .../main/js/apps/overview/meta/MetaTags.tsx | 13 +-- .../overview/meta/__tests__/MetaTags-test.tsx | 4 +- .../__snapshots__/MetaTags-test.tsx.snap | 24 +++-- .../permission-templates/components/Form.tsx | 13 ++- .../components/Header.tsx | 9 +- .../project/components/ApplyTemplate.tsx | 9 +- .../project/components/PageHeader.tsx | 9 +- .../portfolio/components/Subscription.tsx | 15 ++- .../__snapshots__/Subscription-test.tsx.snap | 8 +- .../components/DeleteBranchModal.tsx | 14 +-- .../components/RenameBranchModal.tsx | 16 +-- .../components/SettingForm.tsx | 22 ++-- .../__tests__/DeleteBranchModal-test.tsx | 2 +- .../__tests__/LongBranchesPattern-test.tsx | 4 +- .../__tests__/RenameBranchModal-test.tsx | 2 +- .../components/__tests__/SettingForm-test.tsx | 2 +- .../DeleteBranchModal-test.tsx.snap | 24 ++--- .../RenameBranchModal-test.tsx.snap | 36 +++---- .../__snapshots__/SettingForm-test.tsx.snap | 28 +++-- .../js/apps/projects/components/ClearAll.tsx | 25 ++--- .../components/__tests__/ClearAll-test.tsx | 2 +- .../__tests__/ProjectsSortingSelect-test.tsx | 3 +- .../__snapshots__/ClearAll-test.tsx.snap | 6 +- .../BulkApplyTemplateModal.tsx | 14 +-- .../ChangeVisibilityForm.tsx | 19 ++-- .../projectsManagement/CreateProjectForm.tsx | 27 ++--- .../apps/projectsManagement/DeleteModal.tsx | 18 ++-- .../js/apps/projectsManagement/Header.tsx | 11 +- .../projectsManagement/RestoreAccessModal.tsx | 14 +-- .../js/apps/projectsManagement/Search.tsx | 27 +++-- .../__tests__/BulkApplyTemplateModal-test.tsx | 4 +- .../__tests__/DeleteModal-test.tsx | 4 +- .../BulkApplyTemplateModal-test.tsx.snap | 72 ++++++------- .../ChangeVisibilityForm-test.tsx.snap | 33 +++--- .../CreateProjectForm-test.tsx.snap | 68 +++++------- .../__snapshots__/DeleteModal-test.tsx.snap | 44 ++++---- .../__snapshots__/Header-test.tsx.snap | 6 +- .../__snapshots__/Search-test.tsx.snap | 16 +-- .../quality-gates/components/Condition.tsx | 43 ++++---- .../components/CopyQualityGateForm.tsx | 18 ++-- .../components/CreateQualityGateForm.tsx | 16 ++- .../components/DeleteConditionForm.tsx | 18 ++-- .../components/DeleteQualityGateForm.tsx | 18 ++-- .../components/DetailsHeader.tsx | 37 +++---- .../quality-gates/components/ListHeader.tsx | 16 ++- .../components/RenameQualityGateForm.tsx | 16 ++- .../changelog/ChangelogSearch.tsx | 11 +- .../__tests__/ChangelogSearch-test.tsx | 10 +- .../components/CopyProfileForm.tsx | 16 ++- .../components/DeleteProfileForm.tsx | 19 ++-- .../components/RenameProfileForm.tsx | 16 ++- .../details/ChangeParentForm.tsx | 16 ++- .../details/ProfileInheritance.tsx | 39 ++++--- .../details/ProfilePermissions.tsx | 11 +- .../details/ProfilePermissionsForm.tsx | 11 +- .../details/ProfilePermissionsGroup.tsx | 10 +- .../details/ProfilePermissionsUser.tsx | 13 +-- .../details/ProfileProjects.tsx | 18 ++-- .../__tests__/ProfilePermissions-test.tsx | 2 +- .../ProfilePermissionsGroup-test.tsx | 4 +- .../__tests__/ProfilePermissionsUser-test.tsx | 4 +- .../ProfilePermissions-test.tsx.snap | 4 +- .../ProfilePermissionsForm-test.tsx.snap | 66 +++++------- .../home/CreateProfileForm.tsx | 23 ++-- .../apps/quality-profiles/home/PageHeader.tsx | 35 +++--- .../home/RestoreProfileForm.tsx | 18 ++-- .../js/apps/sessions/components/LoginForm.tsx | 29 +++-- .../__snapshots__/LoginForm-test.tsx.snap | 14 +-- .../system/components/ChangeLogLevelForm.tsx | 26 ++--- .../js/apps/system/components/PageActions.tsx | 44 +++++--- .../ChangeLogLevelForm-test.tsx.snap | 18 ++-- .../__snapshots__/PageActions-test.tsx.snap | 8 +- .../system-upgrade/SystemUpgradeNotif.tsx | 18 ++-- .../__tests__/SystemUpgradeNotif-test.tsx | 2 +- .../SystemUpgradeNotif-test.tsx.snap | 4 +- .../NewOrganizationForm-test.js.snap | 36 +++++-- .../__snapshots__/NewProjectForm-test.js.snap | 36 +++++-- .../__snapshots__/TokenStep-test.js.snap | 36 +++++-- .../__snapshots__/Command-test.js.snap | 15 ++- .../src/main/js/apps/users/Header.tsx | 16 ++- .../__snapshots__/Header-test.tsx.snap | 4 +- .../apps/users/components/DeactivateForm.tsx | 18 ++-- .../js/apps/users/components/PasswordForm.tsx | 45 ++++---- .../js/apps/users/components/TokensForm.tsx | 18 ++-- .../apps/users/components/TokensFormItem.tsx | 15 +-- .../js/apps/users/components/UserForm.tsx | 57 +++++----- .../js/components/common/FiltersHeader.tsx | 38 +++---- .../main/js/components/common/RestartForm.tsx | 15 +-- .../components/controls/ActionsDropdown.tsx | 5 +- .../components/controls/ClipboardButton.tsx | 11 +- .../js/components/controls/ConfirmButton.tsx | 28 ++--- .../main/js/components/controls/Dropdown.tsx | 12 ++- .../js/components/controls/SimpleModal.tsx | 20 ++-- .../controls/__tests__/Dropdown-test.tsx | 7 +- .../controls/__tests__/SimpleModal-test.tsx | 11 +- .../ClipboardButton-test.tsx.snap | 10 +- .../__snapshots__/SimpleModal-test.tsx.snap | 12 +-- .../main/js/components/facet/FacetHeader.tsx | 15 +-- .../__snapshots__/FacetHeader-test.tsx.snap | 6 +- .../src/main/js/components/ui/buttons.css | 19 ++-- .../src/main/js/components/ui/buttons.tsx | 101 +++++++++++++----- .../src/main/js/helpers/testUtils.ts | 10 +- .../should-be-able-to-provision-project.html | 2 +- ...ould-not-be-able-to-provision-project.html | 2 +- .../normal-user.html | 2 +- .../profile-admin.html | 2 +- .../should_copy.html | 2 +- .../should_create.html | 2 +- .../should_delete.html | 2 +- .../should_rename.html | 2 +- .../should_restore.html | 2 +- .../should_set_default.html | 2 +- ...filter_elements_on_project_level_page.html | 2 +- .../project-deletion/project-deletion.html | 2 +- ...ssions_page_shows_only_single_project.html | 2 +- ...display-alerts-correctly-history-page.html | 2 +- .../activate_notification_channels.html | 2 +- .../notifications/email_configuration.html | 2 +- .../QualityProfilesUiTest/should_copy.html | 2 +- .../QualityProfilesUiTest/should_create.html | 2 +- .../QualityProfilesUiTest/should_delete.html | 2 +- .../QualityProfilesUiTest/should_rename.html | 2 +- .../QualityProfilesUiTest/should_restore.html | 2 +- .../should_set_default.html | 2 +- .../external-user-details.html | 2 +- .../external-user-details2.html | 2 +- .../allow_users_to_sign_up.html | 4 +- .../force-authentication.html | 2 +- .../login_successful.html | 2 +- .../login_wrong_password.html | 2 +- ...ct_to_login_when_not_enough_privilege.html | 2 +- ...ct_to_original_url_after_direct_login.html | 2 +- ..._to_original_url_after_indirect_login.html | 2 +- ...rl_with_parameters_after_direct_login.html | 2 +- ..._be_unlogged_when_going_to_login_page.html | 2 +- .../should_display_no_projects.html | 2 +- .../should_display_projects.html | 2 +- 201 files changed, 1383 insertions(+), 1461 deletions(-) diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java index a11730125aa..3f765429d47 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java @@ -22,7 +22,6 @@ package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import org.openqa.selenium.By; public class LoginPage { @@ -49,7 +48,7 @@ public class LoginPage { public LoginPage submitWrongCredentials(String login, String password) { Selenide.$("#login").val(login); Selenide.$("#password").val(password); - Selenide.$(By.name("commit")).click(); + Selenide.$("[type=submit]").click(); return Selenide.page(LoginPage.class); } @@ -60,7 +59,7 @@ public class LoginPage { private static T submitCredentials(String login, String password, Class expectedResultPage) { Selenide.$("#login").val(login); Selenide.$("#password").val(password); - Selenide.$(By.name("commit")).click(); + Selenide.$("[type=submit]").click(); Selenide.$("#login").should(Condition.disappear); return Selenide.page(expectedResultPage); } diff --git a/server/sonar-web/src/main/js/api/quality-profiles.ts b/server/sonar-web/src/main/js/api/quality-profiles.ts index 736de049edb..e589638ac76 100644 --- a/server/sonar-web/src/main/js/api/quality-profiles.ts +++ b/server/sonar-web/src/main/js/api/quality-profiles.ts @@ -112,7 +112,7 @@ export function getProfileProjects(data: RequestData): Promise { } export function getProfileInheritance(profileKey: string): Promise { - return getJSON('/api/qualityprofiles/inheritance', { profileKey }); + return getJSON('/api/qualityprofiles/inheritance', { profileKey }).catch(throwGlobalError); } export function setDefaultProfile(profileKey: string): Promise { @@ -135,8 +135,10 @@ export function changeProfileParent(profileKey: string, parentKey: string): Prom return post('/api/qualityprofiles/change_parent', { profileKey, parentKey }); } -export function getImporters(): Promise { - return getJSON('/api/qualityprofiles/importers').then(r => r.importers); +export function getImporters(): Promise< + Array<{ key: string; languages: Array; name: string }> +> { + return getJSON('/api/qualityprofiles/importers').then(r => r.importers, throwGlobalError); } export function getExporters(): Promise { diff --git a/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx b/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx index e5a5d8dfef4..3c8850a95ef 100644 --- a/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx +++ b/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx @@ -21,6 +21,7 @@ import * as React from 'react'; import { FormattedMessage } from 'react-intl'; import NavBarNotif from '../../../../components/nav/NavBarNotif'; import RestartForm from '../../../../components/common/RestartForm'; +import { Button } from '../../../../components/ui/buttons'; import { dismissErrorMessage, Edition, EditionStatus } from '../../../../api/marketplace'; import { translate, translateWithParameters } from '../../../../helpers/l10n'; @@ -86,6 +87,7 @@ export default class SettingsEditionsNotif extends React.PureComponent {edition.name} @@ -95,9 +97,9 @@ export default class SettingsEditionsNotif extends React.PureComponent )} {!preventRestart && ( - + )} {!preventRestart && this.state.openRestart && } diff --git a/server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsEditionsNotif-test.tsx.snap b/server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsEditionsNotif-test.tsx.snap index 1b1380978bf..f843a2d29ba 100644 --- a/server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsEditionsNotif-test.tsx.snap +++ b/server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsEditionsNotif-test.tsx.snap @@ -30,13 +30,12 @@ exports[`should display a ready notification 1`] = ` marketplace.edition_status.AUTOMATIC_READY - + `; diff --git a/server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.tsx b/server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.tsx index 53117d71a12..04254a29e1a 100644 --- a/server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.tsx +++ b/server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.tsx @@ -25,6 +25,7 @@ import { createOrganization } from '../../organizations/actions'; import { Organization } from '../../../app/types'; import Modal from '../../../components/controls/Modal'; import { translate } from '../../../helpers/l10n'; +import { SubmitButton, ResetButtonLink } from '../../../components/ui/buttons'; interface DispatchProps { createOrganization: (fields: Partial) => Promise<{ key: string }>; @@ -136,16 +137,16 @@ class CreateOrganizationForm extends React.PureComponent { *
{translate('organization.name.description')} @@ -154,14 +155,14 @@ class CreateOrganizationForm extends React.PureComponent {
{translate('organization.key.description')} @@ -170,13 +171,13 @@ class CreateOrganizationForm extends React.PureComponent {
{translate('organization.avatar.description')} @@ -187,20 +188,20 @@ class CreateOrganizationForm extends React.PureComponent { {translate('organization.avatar.preview')} {':'}
- +
)}