]> source.dussan.org Git - sonarqube.git/commitdiff
Fix styling in rules meta data
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Thu, 22 Feb 2018 09:41:46 +0000 (10:41 +0100)
committerGrégoire Aubert <gregoire.aubert@sonarsource.com>
Fri, 23 Feb 2018 15:34:13 +0000 (16:34 +0100)
server/sonar-web/src/main/js/app/styles/init/forms.css
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsMeta.tsx
server/sonar-web/src/main/js/components/common/MultiSelect.tsx
server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.tsx.snap
server/sonar-web/src/main/js/components/issue/popups/SetAssigneePopup.js
server/sonar-web/src/main/js/components/ui/buttons.css
server/sonar-web/src/main/js/components/workspace/templates/workspace-rule.hbs

index b7c3cec13a7c69fec30a828aeb02a8575511d49a..21ddda4f62b0968db4f3fa2d85c7c535bc8d0581 100644 (file)
@@ -185,7 +185,7 @@ input[type='button']:disabled:focus {
 }
 
 .button svg {
-  padding-top: calc((var(--controlHeight) - 16px - 2px) / 2);
+  margin-top: calc((var(--controlHeight) - 16px - 2px) / 2);
 }
 
 .button-red,
@@ -264,7 +264,7 @@ input[type='submit'].button-grey.button-active {
 
 .button-link {
   display: inline;
-  height: auto;
+  height: auto; /* Keep this to not inherit the height from .button */
   margin: 0;
   padding: 0;
   border: none;
@@ -276,6 +276,10 @@ input[type='submit'].button-grey.button-active {
   transition: all 0.2s ease;
 }
 
+.button-link svg {
+  margin-top: 0;
+}
+
 .button-link:hover,
 .button-link:focus {
   background: transparent;
index fa43eebc44a2e15da4accc4a048713ce24d6700a..1a272610065449b99e92c803f982260252732561 100644 (file)
@@ -125,6 +125,7 @@ export default class RuleDetailsMeta extends React.PureComponent<Props, State> {
         ) : (
           <TagsList
             allowUpdate={canWrite}
+            className="display-flex-center"
             tags={allTags.length > 0 ? allTags : [translate('coding_rules.no_tags')]}
           />
         )}
@@ -134,7 +135,7 @@ export default class RuleDetailsMeta extends React.PureComponent<Props, State> {
 
   renderCreationDate = () => (
     <li className="coding-rules-detail-property" data-meta="available-since">
-      {translate('coding_rules.available_since')}{' '}
+      <span className="little-spacer-right">{translate('coding_rules.available_since')}</span>
       <DateFormatter date={this.props.ruleDetails.createdAt} />
     </li>
   );
index 8fe2519b5582c0ede83b944c88bec2576db627ef..bc235e5a1af159c9f27f06155c6e45af6d48d048 100644 (file)
@@ -235,6 +235,7 @@ export default class MultiSelect extends React.PureComponent<Props, State> {
         <div className="menu-search">
           <SearchBox
             autoFocus={true}
+            className="little-spacer-top"
             onChange={this.handleSearchChange}
             placeholder={this.props.placeholder}
             value={query}
@@ -244,32 +245,32 @@ export default class MultiSelect extends React.PureComponent<Props, State> {
           {selectedElements.length > 0 &&
             selectedElements.map(element => (
               <MultiSelectOption
-                key={element}
-                element={element}
-                selected={true}
                 active={activeElement === element}
-                onSelectChange={this.handleSelectChange}
+                element={element}
+                key={element}
                 onHover={this.handleElementHover}
+                onSelectChange={this.handleSelectChange}
+                selected={true}
               />
             ))}
           {unselectedElements.length > 0 &&
             unselectedElements.map(element => (
               <MultiSelectOption
-                key={element}
-                element={element}
                 active={activeElement === element}
-                onSelectChange={this.handleSelectChange}
+                element={element}
+                key={element}
                 onHover={this.handleElementHover}
+                onSelectChange={this.handleSelectChange}
               />
             ))}
           {this.isNewElement(query, this.props) && (
             <MultiSelectOption
-              key={query}
-              element={query}
-              custom={true}
               active={activeElement === query}
-              onSelectChange={this.handleSelectChange}
+              custom={true}
+              element={query}
+              key={query}
               onHover={this.handleElementHover}
+              onSelectChange={this.handleSelectChange}
             />
           )}
         </ul>
index 32dac980bbea5f6ee53743e33631b3358015208c..15c17fc74ad101d06a0860b5bdc24786f0be127c 100644 (file)
@@ -9,6 +9,7 @@ exports[`should render multiselect with selected elements 1`] = `
   >
     <SearchBox
       autoFocus={true}
+      className="little-spacer-top"
       onChange={[Function]}
       placeholder=""
       value=""
@@ -38,6 +39,7 @@ exports[`should render multiselect with selected elements 2`] = `
   >
     <SearchBox
       autoFocus={true}
+      className="little-spacer-top"
       onChange={[Function]}
       placeholder=""
       value=""
@@ -81,6 +83,7 @@ exports[`should render multiselect with selected elements 3`] = `
   >
     <SearchBox
       autoFocus={true}
+      className="little-spacer-top"
       onChange={[Function]}
       placeholder=""
       value=""
@@ -124,6 +127,7 @@ exports[`should render multiselect with selected elements 4`] = `
   >
     <SearchBox
       autoFocus={true}
+      className="little-spacer-top"
       onChange={[Function]}
       placeholder=""
       value="test"
index 75013a4c6ef6ed111926dd08df12f5c32b060256..270cbe04158b5b5c126c8f34c7e31bb45506e04e 100644 (file)
@@ -124,12 +124,13 @@ class SetAssigneePopup extends React.PureComponent {
   render() {
     return (
       <BubblePopup
-        position={this.props.popupPosition}
-        customClass="bubble-popup-menu bubble-popup-bottom">
+        customClass="bubble-popup-menu bubble-popup-bottom"
+        position={this.props.popupPosition}>
         <div className="multi-select">
           <div className="menu-search">
             <SearchBox
               autoFocus={true}
+              className="little-spacer-top"
               minLength={2}
               onChange={this.handleSearchChange}
               placeholder={translate('search.search_for_users')}
@@ -137,8 +138,8 @@ class SetAssigneePopup extends React.PureComponent {
             />
           </div>
           <SelectList
-            items={map(this.state.users, 'login')}
             currentItem={this.state.currentUser}
+            items={map(this.state.users, 'login')}
             onSelect={this.props.onSelect}>
             {this.state.users.map(user => (
               <SelectListItem key={user.login} item={user.login}>
index da474c888c4316d1c258a1d35efbfd52a0bed4d4..3df0420fc49a38350e3d57c5b05d0f5e86fd93fc 100644 (file)
   padding: 0;
 }
 
+.button-icon.button-icon.button-tiny svg {
+  margin-top: 0;
+}
+
 .button-icon.button-icon:hover,
 .button-icon.button-icon:focus {
   background-color: currentColor;
index a20fdd8bed873bd69cf917f56fb1ecdf68c993cc..304daeaca48e554658bcd21f3c1547082e244b9d 100644 (file)
@@ -24,7 +24,7 @@
 
       <li class="coding-rules-detail-property coding-rules-detail-tag-list {{#if canWrite}}coding-rules-detail-tags-change{{/if}}"
           data-toggle="tooltip" data-placement="bottom" title="Rule tags">
-        <i class="icon-tags"></i>
+        <i class="icon-tags little-spacer-right"></i>
         <span>{{#if allTags}}{{join allTags ', '}}{{else}}{{t 'coding_rules.no_tags'}}{{/if}}</span>
       </li>
 
@@ -41,7 +41,7 @@
         </li>
       {{/if}}
 
-      <li class="pull-right spacer-left">
+      <li class="coding-rules-detail-property spacer-left">
         <a class="link-no-underline" target="_blank" href="{{permalink}}">
           <svg
             xmlns="http://www.w3.org/2000/svg"
             />
           </svg>
         </a>
-      </li>
-
-      <li class="pull-right">
-        <span class="note">{{key}}</span>
+        <span class="note little-spacer-left">{{key}}</span>
       </li>
     </ul>