]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-18067 Buttons have same name but different actions
authorstanislavh <stanislav.honcharov@sonarsource.com>
Wed, 1 Feb 2023 12:07:32 +0000 (13:07 +0100)
committersonartech <sonartech@sonarsource.com>
Fri, 3 Feb 2023 14:26:00 +0000 (14:26 +0000)
server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacet.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/RepositoryFacet.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/TagFacet.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/TagFacet-test.tsx.snap
server/sonar-web/src/main/js/apps/issues/sidebar/StandardFacet.tsx
server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap
server/sonar-web/src/main/js/components/controls/ListFooter.tsx
server/sonar-web/src/main/js/components/facet/ListStyleFacet.tsx
server/sonar-web/src/main/js/components/facet/ListStyleFacetFooter.tsx
sonar-core/src/main/resources/org/sonar/l10n/core.properties

index dd581137e235f04692313716a8b388a33a845409..eabd93eaa728c5474d9936542063fcbd22b85b85 100644 (file)
@@ -68,6 +68,8 @@ export class LanguageFacet extends React.PureComponent<Props> {
         disabled={this.props.disabled}
         disabledHelper={translate('coding_rules.filters.language.inactive')}
         facetHeader={translate('coding_rules.facet.languages')}
+        showMoreAriaLabel={translate('coding_rules.facet.language.show_more')}
+        showLessAriaLabel={translate('coding_rules.facet.language.show_less')}
         fetching={false}
         getFacetItemText={this.getLanguageName}
         getSearchResultKey={(language) => language.key}
index 2eda13557bcbb298057b6a4f089c1a7680e6228c..321e49e4c65294e133f7f768be1106b2eac98ca4 100644 (file)
@@ -88,6 +88,8 @@ export class RepositoryFacet extends React.PureComponent<Props> {
     return (
       <ListStyleFacet<string>
         facetHeader={translate('coding_rules.facet.repositories')}
+        showMoreAriaLabel={translate('coding_rules.facet.repository.show_more')}
+        showLessAriaLabel={translate('coding_rules.facet.repository.show_less')}
         fetching={false}
         getFacetItemText={this.renderTextName}
         getSearchResultKey={(rep) => rep}
index d196cd47b5c363e7981f3338ec12ebb19c1dbd43..255badc4571298defec896ae634df579f506b0a8 100644 (file)
@@ -65,6 +65,8 @@ export default class TagFacet extends React.PureComponent<BasicProps> {
         getFacetItemText={this.getTagName}
         getSearchResultKey={(tag) => tag}
         getSearchResultText={(tag) => tag}
+        showMoreAriaLabel={translate('coding_rules.facet.tag.show_more')}
+        showLessAriaLabel={translate('coding_rules.facet.tag.show_less')}
         onChange={this.props.onChange}
         onSearch={this.handleSearch}
         onToggle={this.props.onToggle}
index cabca9e9a095fb08d74849b979b3ce0bc0d784cc..51eabc32eae51757cc517b49d3faaa3b3e6c02f5 100644 (file)
@@ -43,6 +43,8 @@ exports[`should render correctly 1`] = `
   renderFacetItem={[Function]}
   renderSearchResult={[Function]}
   searchPlaceholder="search.search_for_tags"
+  showLessAriaLabel="coding_rules.facet.tag.show_less"
+  showMoreAriaLabel="coding_rules.facet.tag.show_more"
   stats={{}}
   values={[]}
 />
index 44734aca30f22c22e4ede1eb92bb4c89840f9cbd..407fe9341e905b34d471c52d4728109c8e39808c 100644 (file)
@@ -398,12 +398,8 @@ export default class StandardFacet extends React.PureComponent<Props, State> {
         )}
         {!allItemShown && (
           <ListStyleFacetFooter
+            showMoreAriaLabel={translate('issues.facet.sonarsource.show_more')}
             count={limitedList.length + selectedBelowLimit.length}
-            showLess={
-              this.state.showFullSonarSourceList
-                ? () => this.setState({ showFullSonarSourceList: false })
-                : undefined
-            }
             showMore={() => this.setState({ showFullSonarSourceList: true })}
             total={sortedItems.length}
           />
index 1c42ddcfa5acd875381d6c1f9d947142b20ac0fa..55aa17d9838118c8b6bc5fff38ce6aa804c698dd 100644 (file)
@@ -266,7 +266,7 @@ export class AllProjects extends React.PureComponent<Props, State> {
           />
         )}
         <ListFooter
-          accessibleLoadMoreLabel={translate('projects.show_more')}
+          loadMoreAriaLabel={translate('projects.show_more')}
           count={this.state.projects !== undefined ? this.state.projects.length : 0}
           loading={this.state.loading}
           loadMore={this.fetchMoreProjects}
index e2e307db962c07bd974aa834d16de1883707656b..aefede3dc663f2ac4974a7b67479fe0ef14436d0 100644 (file)
@@ -170,9 +170,9 @@ exports[`renders 1`] = `
           }
         />
         <ListFooter
-          accessibleLoadMoreLabel="projects.show_more"
           count={1}
           loadMore={[Function]}
+          loadMoreAriaLabel="projects.show_more"
           loading={false}
           ready={true}
           total={0}
index 32f47f2fe745cbc2f1cffaf856790e5a6750a789..fbbcb2af4645b4bb003f321639a91060b8233c4c 100644 (file)
@@ -25,7 +25,7 @@ import DeferredSpinner from '../ui/DeferredSpinner';
 import { Button } from './buttons';
 
 export interface ListFooterProps {
-  accessibleLoadMoreLabel?: string;
+  loadMoreAriaLabel?: string;
   count: number;
   className?: string;
   loading?: boolean;
@@ -39,7 +39,7 @@ export interface ListFooterProps {
 
 export default function ListFooter(props: ListFooterProps) {
   const {
-    accessibleLoadMoreLabel,
+    loadMoreAriaLabel,
     className,
     count,
     loadMore,
@@ -79,7 +79,7 @@ export default function ListFooter(props: ListFooterProps) {
   } else if (hasMore && props.loadMore) {
     button = (
       <Button
-        aria-label={accessibleLoadMoreLabel}
+        aria-label={loadMoreAriaLabel}
         className="spacer-left"
         disabled={loading}
         data-test="show-more"
index cd08ffbacf57f39a6da546dfa61d1267e42b43d8..a87da01e05042857f96e6b25644395da652ce44f 100644 (file)
@@ -67,6 +67,8 @@ export interface Props<S> {
   getSortedItems?: () => string[];
   stats: Dict<number> | undefined;
   values: string[];
+  showMoreAriaLabel?: string;
+  showLessAriaLabel?: string;
 }
 
 interface State<S> {
@@ -238,7 +240,7 @@ export default class ListStyleFacet<S> extends React.Component<Props<S>, State<S
   };
 
   renderList() {
-    const { stats } = this.props;
+    const { stats, showMoreAriaLabel, showLessAriaLabel } = this.props;
 
     if (!stats) {
       return null;
@@ -303,6 +305,8 @@ export default class ListStyleFacet<S> extends React.Component<Props<S>, State<S
           showLess={this.state.showFullList ? this.hideFullList : undefined}
           showMore={this.showFullList}
           total={sortedItems.length}
+          showMoreAriaLabel={showMoreAriaLabel}
+          showLessAriaLabel={showLessAriaLabel}
         />
         {mightHaveMoreResults && this.state.showFullList && (
           <Alert className="spacer-top" variant="warning">
@@ -328,6 +332,7 @@ export default class ListStyleFacet<S> extends React.Component<Props<S>, State<S
   }
 
   renderSearchResults() {
+    const { showMoreAriaLabel } = this.props;
     const { searching, searchMaxResults, searchResults, searchPaging } = this.state;
 
     if (!searching && (!searchResults || !searchResults.length)) {
@@ -356,6 +361,7 @@ export default class ListStyleFacet<S> extends React.Component<Props<S>, State<S
             loadMore={this.searchMore}
             ready={!searching}
             total={searchPaging.total}
+            loadMoreAriaLabel={showMoreAriaLabel}
           />
         )}
       </>
index 5498906d885770c8f12b1a373346de7263abf23a..0d0faead164bf331c9b6a3530febdfc4438bbbee 100644 (file)
@@ -25,8 +25,10 @@ import { ButtonLink } from '../controls/buttons';
 interface Props {
   count: number;
   showMore: () => void;
-  showLess: (() => void) | undefined;
+  showLess?: () => void;
   total: number;
+  showMoreAriaLabel?: string;
+  showLessAriaLabel?: string;
 }
 
 export default class ListStyleFacetFooter extends React.PureComponent<Props> {
@@ -41,7 +43,7 @@ export default class ListStyleFacetFooter extends React.PureComponent<Props> {
   };
 
   render() {
-    const { count, total } = this.props;
+    const { count, total, showMoreAriaLabel, showLessAriaLabel } = this.props;
     const hasMore = total > count;
     const allShown = Boolean(total && total === count);
 
@@ -50,13 +52,21 @@ export default class ListStyleFacetFooter extends React.PureComponent<Props> {
         {translateWithParameters('x_show', formatMeasure(count, 'INT', null))}
 
         {hasMore && (
-          <ButtonLink className="spacer-left" onClick={this.handleShowMoreClick}>
+          <ButtonLink
+            className="spacer-left"
+            aria-label={showMoreAriaLabel}
+            onClick={this.handleShowMoreClick}
+          >
             {translate('show_more')}
           </ButtonLink>
         )}
 
         {this.props.showLess && allShown && (
-          <ButtonLink className="spacer-left" onClick={this.handleShowLessClick}>
+          <ButtonLink
+            className="spacer-left"
+            aria-label={showLessAriaLabel}
+            onClick={this.handleShowLessClick}
+          >
             {translate('show_less')}
           </ButtonLink>
         )}
index e188285828e61dfe45813186c435344ceb90cb2d..5989351b9efbe26414150b9462644edcfe62a9d0 100644 (file)
@@ -1012,6 +1012,7 @@ issues.facet.owaspTop10_2021=OWASP Top 10 2021
 issues.facet.sansTop25=SANS Top 25
 issues.facet.sonarsourceSecurity=SonarSource
 issues.facet.cwe=CWE
+issues.facet.sonarsource.show_more=Show more SonarSource categories
 
 #------------------------------------------------------------------------------
 #
@@ -2023,6 +2024,13 @@ coding_rules.facet.template=Template
 coding_rules.facet.rule_key=Rule
 coding_rules.facet.types=Type
 
+coding_rules.facet.language.show_more=Show more languages
+coding_rules.facet.language.show_less=Show less languages
+coding_rules.facet.tag.show_more=Show more tags
+coding_rules.facet.tag.show_less=Show less tags
+coding_rules.facet.repository.show_more=Show more repositories
+coding_rules.facet.repository.show_less=Show less repositories
+
 coding_rules.facets.languages=Languages
 coding_rules.facets.tags=Tags
 coding_rules.facets.repositories=Repositories