]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10024 Group of buttons shouldn't look like tabs
authorStas Vilchik <stas.vilchik@sonarsource.com>
Mon, 30 Oct 2017 09:12:27 +0000 (10:12 +0100)
committerStas Vilchik <stas.vilchik@sonarsource.com>
Fri, 3 Nov 2017 13:28:18 +0000 (14:28 +0100)
23 files changed:
server/sonar-web/src/main/js/app/styles/components/search-navigator.css
server/sonar-web/src/main/js/apps/coding-rules/styles.css
server/sonar-web/src/main/js/apps/coding-rules/templates/coding-rules-rule-details.hbs
server/sonar-web/src/main/js/apps/coding-rules/templates/coding-rules-workspace-list-item.hbs
server/sonar-web/src/main/js/apps/coding-rules/templates/rule/coding-rules-custom-rule.hbs
server/sonar-web/src/main/js/apps/coding-rules/templates/rule/coding-rules-custom-rules.hbs
server/sonar-web/src/main/js/apps/coding-rules/templates/rule/coding-rules-rule-description.hbs
server/sonar-web/src/main/js/apps/coding-rules/templates/rule/coding-rules-rule-meta.hbs
server/sonar-web/src/main/js/apps/coding-rules/templates/rule/coding-rules-rule-profile.hbs
server/sonar-web/src/main/js/apps/coding-rules/templates/rule/coding-rules-rule-profiles.hbs
server/sonar-web/src/main/js/apps/custom-measures/templates/custom-measures-header.hbs
server/sonar-web/src/main/js/apps/groups/templates/groups-header.hbs
server/sonar-web/src/main/js/apps/marketplace/components/PluginActions.tsx
server/sonar-web/src/main/js/apps/metrics/templates/metrics-header.hbs
server/sonar-web/src/main/js/apps/organizations/components/OrganizationMembers.js
server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationMembers-test.js.snap
server/sonar-web/src/main/js/apps/project-admin/key/UpdateKeyForm.js
server/sonar-web/src/main/js/apps/projects/styles.css
server/sonar-web/src/main/js/apps/quality-gates/components/Condition.js
server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js
server/sonar-web/src/main/js/apps/quality-gates/components/ListHeader.js
server/sonar-web/src/main/js/apps/quality-profiles/home/PageHeader.tsx
server/sonar-web/src/main/js/apps/users/templates/users-header.hbs

index 8f9294c9b77f260243c034b0768585dbd14b5319..39c48ca9fc9e90534d285cd62eba4604c5f2589d 100644 (file)
@@ -743,12 +743,6 @@ a.search-navigator-facet:focus .facet-stat {
   font-size: var(--smallFontSize);
 }
 
-.search-navigator-workspace-header .button-group,
-.search-navigator-workspace-header .button-group > button,
-.search-navigator-workspace-header .button-group > .button {
-  vertical-align: top;
-}
-
 .search-navigator-header-component {
   margin-left: 10px;
   white-space: nowrap;
index 2f6abeff06a202122f864e65669f502c429e5982..954965c874a1786317348490b382ed3f595484be 100644 (file)
@@ -80,8 +80,8 @@
   vertical-align: middle;
   margin-right: 20px;
   font-size: var(--smallFontSize);
-  height: 22px;
-  line-height: 18px;
+  height: var(--controlHeight);
+  line-height: var(--controlHeight);
 }
 
 .coding-rules-detail-property .select2-search-field {
index eba42ee65ef7d0decc4579d97d06b06e630bae16..9df22aef8672e6adb3fa07ac4598c99422d1b428 100644 (file)
@@ -4,10 +4,8 @@
 
 {{#if isEditable}}
   <div class="coding-rules-detail-description">
-    <div class="button-group">
-      <button class="js-edit-custom" id="coding-rules-detail-custom-rule-change">{{t 'edit'}}</button>
-      <button class="button-red js-delete" id="coding-rules-detail-rule-delete" class="button-red">{{t 'delete'}}</button>
-    </div>
+    <button class="js-edit-custom" id="coding-rules-detail-custom-rule-change">{{t 'edit'}}</button>
+    <button class="button-red js-delete" id="coding-rules-detail-rule-delete" class="button-red">{{t 'delete'}}</button>
   </div>
 {{/if}}
 
index bc729a5054a1a8ea5cee0821f97f12d606f4a192..4f87b2c55de98bb2c6d2d729ef98a8cb4fb04c14 100644 (file)
       {{#if canEditQualityProfile}}
         {{#unless isSelectedProfileBuiltIn}}
           <td class="coding-rule-table-meta-cell coding-rule-activation-actions">
-            <div class="button-group">
-              {{#if activation}}
-                <button class="coding-rules-detail-quality-profile-deactivate button-red" 
-                        {{#notEq activation.inherit 'NONE'}}disabled  title="{{t 'coding_rules.can_not_deactivate'}}"{{/notEq}}>
-                  {{t 'coding_rules.deactivate'}}
-                </button>
-              {{else}}
-                {{#unless isTemplate}}
-                  <button class="coding-rules-detail-quality-profile-activate">{{t 'coding_rules.activate'}}</button>
-                {{/unless}}
-              {{/if}}
-            </div>
+            {{#if activation}}
+              <button class="coding-rules-detail-quality-profile-deactivate button-red" 
+                      {{#notEq activation.inherit 'NONE'}}disabled  title="{{t 'coding_rules.can_not_deactivate'}}"{{/notEq}}>
+                {{t 'coding_rules.deactivate'}}
+              </button>
+            {{else}}
+              {{#unless isTemplate}}
+                <button class="coding-rules-detail-quality-profile-activate">{{t 'coding_rules.activate'}}</button>
+              {{/unless}}
+            {{/if}}
           </td>
         {{/unless}}
       {{/if}}
index eaff503fc170ab58b21916d7a7f6bc3614f9ec1d..32fff8638c6b2f00b893d22f2c9860c222df8378 100644 (file)
 
 {{#if canDeleteCustomRule}}
 <td class="coding-rules-detail-list-actions">
-  <div class="button-group">
-    <button class="js-delete-custom-rule button-red">
-      {{t 'delete'}}
-    </button>
-  </div>
+  <button class="js-delete-custom-rule button-red">
+    {{t 'delete'}}
+  </button>
 </td>
 {{/if}}
index bd3899109cfe8c3e78e7698d6c2e7298abbcf001..402c99a16c8223fa029093b96de8c3378bfd96cd 100644 (file)
@@ -4,9 +4,8 @@
   <h3 class="coding-rules-detail-title">{{t 'coding_rules.custom_rules'}}</h3>
 
   {{#if canCreateCustomRule}}
-    <div class="button-group coding-rules-detail-quality-profiles-activation">
-      <button class="js-create-custom-rule">{{t 'coding_rules.create'}}</button>
-    </div>
+    <button class="js-create-custom-rule spacer-left">{{t 'coding_rules.create'}}</button>
   {{/if}}
+
   <table id="coding-rules-detail-custom-rules" class="coding-rules-detail-list"></table>
 </div>
index d0ab5457eeb2e976b9d902f276ea2ec1410ad328..17b3e9861410bbc1ac09358df7404c5cb6c2c1cd 100644 (file)
@@ -7,9 +7,7 @@
         <div class="rule-desc spacer-bottom markdown">{{{htmlNote}}}</div>
       {{/if}}
       {{#if canCustomizeRule}}
-        <div class="button-group">
-          <button id="coding-rules-detail-extend-description">{{t 'coding_rules.extend_description'}}</button>
-        </div>
+        <button id="coding-rules-detail-extend-description">{{t 'coding_rules.extend_description'}}</button>
       {{/if}}
     </div>
 
           </tr>
           <tr>
             <td>
-              <div class="button-group">
-                <button id="coding-rules-detail-extend-description-submit">{{t 'save'}}</button>
-                {{#if mdNote}}
-                  <button id="coding-rules-detail-extend-description-remove"
-                          class="button-red">{{t 'remove'}}</button>
-                {{/if}}
-              </div>
-              <a id="coding-rules-detail-extend-description-cancel" class="action">{{t 'cancel'}}</a>
+              <button id="coding-rules-detail-extend-description-submit">{{t 'save'}}</button>
+              {{#if mdNote}}
+                <button id="coding-rules-detail-extend-description-remove" class="button-red">{{t 'remove'}}</button>
+              {{/if}}
+              <a id="coding-rules-detail-extend-description-cancel" class="spacer-left">{{t 'cancel'}}</a>
             </td>
             <td class="text-right">
               {{> '../../../../components/common/templates/_markdown-tips' }}
index 8f6506a0dbc1cb96c73e56f15cfbd1828f115d5d..4483e6e034f35046541757bb2d8e8497b0effcf7 100644 (file)
         <span>{{join sysTags ', '}}</span>{{/if}}
       <input class="coding-rules-detail-tag-input" type="text" value="{{#if tags}}{{join tags ','}}{{/if}}">
 
-      <div class="button-group">
-        <button class="coding-rules-detail-tag-edit-done">{{t 'Done'}}</button>
-      </div>
-      <a class="coding-rules-details-tag-edit-cancel">{{t 'cancel'}}</a>
+      <button class="coding-rules-detail-tag-edit-done text-middle">{{t 'Done'}}</button>
+      <a class="coding-rules-details-tag-edit-cancel spacer-left">{{t 'cancel'}}</a>
     </li>
   {{/if}}
 
index c4667774c96bde2644cdb8e4dee7b49e6ef476a7..c0b2bfe061977d2cd7772fec846941d1a1700b74 100644 (file)
     </td>
   {{/unless}}
 
-  {{#if actions.edit}}
-    {{#unless isBuiltIn}}
-      <td class="coding-rules-detail-quality-profile-actions">
-        <div class="button-group">
-          {{#unless isTemplate}}
-            <button class="coding-rules-detail-quality-profile-change">{{t 'change_verb'}}</button>
-          {{/unless}}
-          {{#if parent}}
-            {{#eq inherit 'OVERRIDES'}}
-              <button class="coding-rules-detail-quality-profile-revert button-red">
-                {{t 'coding_rules.revert_to_parent_definition'}}
-              </button>
-            {{/eq}}
-          {{else}}
-            <button class="coding-rules-detail-quality-profile-deactivate button-red">
-              {{t 'coding_rules.deactivate'}}
+  <td class="coding-rules-detail-quality-profile-actions">
+    {{#if actions.edit}}
+      {{#unless isBuiltIn}}
+        {{#unless isTemplate}}
+          <button class="coding-rules-detail-quality-profile-change">{{t 'change_verb'}}</button>
+        {{/unless}}
+        {{#if parent}}
+          {{#eq inherit 'OVERRIDES'}}
+            <button class="coding-rules-detail-quality-profile-revert button-red">
+              {{t 'coding_rules.revert_to_parent_definition'}}
             </button>
-          {{/if}}
-        </div>
-      </td>
-    {{/unless}}
-  {{/if}}
+          {{/eq}}
+        {{else}}
+          <button class="coding-rules-detail-quality-profile-deactivate button-red">
+            {{t 'coding_rules.deactivate'}}
+          </button>
+        {{/if}}
+      {{/unless}}
+    {{/if}}
+  </td>
 
 {{else}}
   {{#if canWrite}}{{#unless isTemplate}}
     <td class="coding-rules-detail-quality-profile-actions">
-      <div class="button-group">
-        <button class="coding-rules-detail-quality-profile-activate">{{t 'coding_rules.activate'}}</button>
-      </div>
+      <button class="coding-rules-detail-quality-profile-activate">{{t 'coding_rules.activate'}}</button>
     </td>
   {{/unless}}{{/if}}
 {{/if}}
index efd296d207425f9daf10071f96045654a7b8d157..44131fc2f282ff0fdca0c9d7c90288d97bf06382 100644 (file)
@@ -5,9 +5,7 @@
 
   {{#if canActivate}}
     {{#unless isTemplate}}
-      <div class="button-group coding-rules-detail-quality-profiles-activation">
-        <button id="coding-rules-quality-profile-activate">{{t 'coding_rules.activate'}}</button>
-      </div>
+      <button id="coding-rules-quality-profile-activate" class="spacer-left">{{t 'coding_rules.activate'}}</button>
     {{/unless}}
   {{/if}}
 
index a8183635b8cfce256166e83c58063cc3c816a4fc..840706f77e25c1874ab2ad360cd5b4ac9781262f 100644 (file)
@@ -1,9 +1,7 @@
 <header class="page-header">
   <h1 class="page-title">{{t 'custom_measures.page'}}</h1>
   <div class="page-actions">
-    <div class="button-group">
-      <button id="custom-measures-create">{{t 'create'}}</button>
-    </div>
+    <button id="custom-measures-create">{{t 'create'}}</button>
   </div>
   <p class="page-description">{{t 'custom_measures.page.description'}}</p>
 </header>
index 3a63842e3c21a559bb4957cd8d65023258a927d8..95ba488355d6c4274d26837df3023e52d1b4e94f 100644 (file)
@@ -2,9 +2,7 @@
   <h1 class="page-title">{{t 'user_groups.page'}}</h1>
   <i class="spinner hidden"></i>
   <div class="page-actions">
-    <div class="button-group">
-      <button id="groups-create">{{t 'groups.create_group'}}</button>
-    </div>
+    <button id="groups-create">{{t 'groups.create_group'}}</button>
   </div>
   <p class="page-description">{{t 'user_groups.page.description'}}</p>
 </header>
index df898dbdbeb8d22252c42115891744ec48a540bf..0b8ce1308aaa7762b4a9a50100259715ce783ef6 100644 (file)
@@ -93,7 +93,7 @@ export default class PluginActions extends React.PureComponent<Props, State> {
         {isPluginInstalled(plugin) &&
           plugin.updates &&
           plugin.updates.length > 0 && (
-            <div className="spacer-top button-group">
+            <div className="spacer-top">
               {plugin.updates.map((update, idx) => (
                 <PluginUpdateButton
                   key={idx}
index fc2d4d1e08023ac8ec8c36553001f8b25bfbd9cb..83f44fc0e50b61fb21c378a9de8735e613355b9b 100644 (file)
@@ -1,9 +1,7 @@
 <header class="page-header">
   <h1 class="page-title">{{t 'custom_metrics.page'}}</h1>
   <div class="page-actions">
-    <div class="button-group">
-      <button id="metrics-create">{{t 'custom_metrics.create_metric'}}</button>
-    </div>
+    <button id="metrics-create">{{t 'custom_metrics.create_metric'}}</button>
   </div>
   <p class="page-description">{{t 'custom_metrics.page.description'}}</p>
 </header>
index 19f82e66de26af44f87ae0654a9e7c9579991dd0..082b013cadd400f07a352bcabaed897a59c76dde 100644 (file)
@@ -92,13 +92,11 @@ export default class OrganizationMembers extends React.PureComponent {
         <MembersPageHeader loading={status.loading} total={status.total}>
           {organization.canAdmin && (
             <div className="page-actions">
-              <div className="button-group">
-                <AddMemberForm
-                  addMember={this.addMember}
-                  organization={organization}
-                  memberLogins={this.props.memberLogins}
-                />
-              </div>
+              <AddMemberForm
+                addMember={this.addMember}
+                organization={organization}
+                memberLogins={this.props.memberLogins}
+              />
             </div>
           )}
         </MembersPageHeader>
index 9a13da1aa2137bfba1064a56e4b836cb6100cc56..28a46b239f11d1976061b1d2dc3fed6571306bba 100644 (file)
@@ -67,20 +67,16 @@ exports[`should render actions for admin 1`] = `
     <div
       className="page-actions"
     >
-      <div
-        className="button-group"
-      >
-        <AddMemberForm
-          addMember={[Function]}
-          organization={
-            Object {
-              "canAdmin": true,
-              "key": "foo",
-              "name": "Foo",
-            }
+      <AddMemberForm
+        addMember={[Function]}
+        organization={
+          Object {
+            "canAdmin": true,
+            "key": "foo",
+            "name": "Foo",
           }
-        />
-      </div>
+        }
+      />
     </div>
   </MembersPageHeader>
   <MembersListHeader
index 87c53066797bb367953dc74d90ee6288d601bfb4..b587f2cb7a36dd046ff8d6bf841e9c90d4fd23e2 100644 (file)
@@ -76,15 +76,13 @@ export default class UpdateKeyForm extends React.PureComponent {
           onChange={this.handleInputChange}
         />
 
-        <div className="button-group">
-          <button disabled={!hasChanged} onClick={this.handleUpdateClick}>
-            {translate('update_verb')}
-          </button>
+        <button disabled={!hasChanged} onClick={this.handleUpdateClick}>
+          {translate('update_verb')}
+        </button>
 
-          <button disabled={!hasChanged} onClick={this.handleResetClick}>
-            {translate('reset_verb')}
-          </button>
-        </div>
+        <button className="spacer-left" disabled={!hasChanged} onClick={this.handleResetClick}>
+          {translate('reset_verb')}
+        </button>
       </div>
     );
   }
index 648972b0eeb52daea4588bdffc6c4703fb2681d6..847569871691f5a5cc59bd08f8e081f46a23ecfb 100644 (file)
   padding-right: 10px;
 }
 
-.projects-facet-sort {
-  float: right;
-  font-weight: normal;
-  font-size: 11px;
-  color: var(--secondFontColor);
-  text-transform: lowercase;
-}
-
-.projects-facet-sort .button-group {
-  margin-top: -3px;
-}
-
-.projects-facet-sort .button-small {
-  padding: 0 6px;
-  font-size: 11px;
-  font-weight: normal;
-}
-
 .projects-facets-header {
   margin-bottom: 10px;
   padding: 10px 0;
index 07afcdc77d10916f3a829f3c71b2e32de1853658..f1d109abc76c14383265adb9ce9848f265d2eeb6 100644 (file)
@@ -42,8 +42,9 @@ export default class Condition extends Component {
   componentDidMount() {
     const { condition } = this.props;
 
-    if (!condition.id) {
-      this.refs.operator.focus();
+    // TODO looks like `this.opetator` is always null or undefined
+    if (!condition.id && this.operator) {
+      this.operator.focus();
     }
   }
 
@@ -51,10 +52,9 @@ export default class Condition extends Component {
     this.setState({ changed: true });
   }
 
-  handleOperatorChange(option) {
-    const { value } = option;
+  handleOperatorChange = ({ value }) => {
     this.setState({ changed: true, op: value });
-  }
+  };
 
   handlePeriodChange(checked) {
     const period = checked ? '1' : undefined;
@@ -69,9 +69,9 @@ export default class Condition extends Component {
     this.setState({ changed: true, error: value });
   }
 
-  handleSaveClick(e) {
+  handleSaveClick = e => {
     const { qualityGate, condition, metric, onSaveCondition, onError, onResetError } = this.props;
-    const period = this.state.period;
+    const { period } = this.state;
     const data = {
       metric: condition.metric,
       op: metric.type === 'RATING' ? 'GT' : this.state.op,
@@ -95,11 +95,11 @@ export default class Condition extends Component {
         onResetError();
       })
       .catch(onError);
-  }
+  };
 
-  handleUpdateClick(e) {
+  handleUpdateClick = e => {
     const { condition, onSaveCondition, metric, onError, onResetError } = this.props;
-    const period = this.state.period;
+    const { period } = this.state;
     const data = {
       id: condition.id,
       metric: condition.metric,
@@ -124,9 +124,9 @@ export default class Condition extends Component {
         onResetError();
       })
       .catch(onError);
-  }
+  };
 
-  handleDeleteClick(e) {
+  handleDeleteClick = e => {
     const { qualityGate, condition, metric, onDeleteCondition } = this.props;
 
     e.preventDefault();
@@ -136,14 +136,14 @@ export default class Condition extends Component {
       metric,
       onDelete: () => onDeleteCondition(condition)
     }).render();
-  }
+  };
 
-  handleCancelClick(e) {
+  handleCancelClick = e => {
     const { condition, onDeleteCondition } = this.props;
 
     e.preventDefault();
     onDeleteCondition(condition);
-  }
+  };
 
   renderPeriodValue() {
     const { condition, metric } = this.props;
@@ -201,14 +201,14 @@ export default class Condition extends Component {
 
     return (
       <Select
-        ref="operator"
+        ref={node => (this.operator = node)}
         className="input-medium"
         name="operator"
         value={this.state.op}
         clearable={false}
         searchable={false}
         options={operatorOptions}
-        onChange={this.handleOperatorChange.bind(this)}
+        onChange={this.handleOperatorChange}
       />
     );
   }
@@ -257,28 +257,28 @@ export default class Condition extends Component {
         {edit && (
           <td className="thin text-middle nowrap">
             {condition.id ? (
-              <div className="button-group">
+              <div>
                 <button
                   className="update-condition"
                   disabled={!this.state.changed}
-                  onClick={this.handleUpdateClick.bind(this)}>
+                  onClick={this.handleUpdateClick}>
                   {translate('update_verb')}
                 </button>
                 <button
-                  className="button-red delete-condition"
-                  onClick={this.handleDeleteClick.bind(this)}>
+                  className="button-red delete-condition little-spacer-left"
+                  onClick={this.handleDeleteClick}>
                   {translate('delete')}
                 </button>
               </div>
             ) : (
-              <div className="button-group">
-                <button className="add-condition" onClick={this.handleSaveClick.bind(this)}>
+              <div>
+                <button className="add-condition" onClick={this.handleSaveClick}>
                   {translate('add_verb')}
                 </button>
                 <a
-                  className="action cancel-add-condition"
+                  className="cancel-add-condition spacer-left"
                   href="#"
-                  onClick={this.handleCancelClick.bind(this)}>
+                  onClick={this.handleCancelClick}>
                   {translate('cancel')}
                 </a>
               </div>
index 073ce1387460bf27df62152fb22fa1f4d95d37bc..f70313e9a59a86fbfc1b0944832242b193024a86 100644 (file)
@@ -51,25 +51,29 @@ export default class DetailsHeader extends React.PureComponent {
             <h2 className="pull-left">{qualityGate.name}</h2>
             {edit && (
               <div className="pull-right">
-                <div className="button-group">
-                  <button id="quality-gate-rename" onClick={this.handleRenameClick}>
-                    {translate('rename')}
-                  </button>
-                  <button id="quality-gate-copy" onClick={this.handleCopyClick}>
-                    {translate('copy')}
-                  </button>
-                  <button id="quality-gate-toggle-default" onClick={this.handleSetAsDefaultClick}>
-                    {qualityGate.isDefault
-                      ? translate('unset_as_default')
-                      : translate('set_as_default')}
-                  </button>
-                  <button
-                    id="quality-gate-delete"
-                    className="button-red"
-                    onClick={this.handleDeleteClick}>
-                    {translate('delete')}
-                  </button>
-                </div>
+                <button id="quality-gate-rename" onClick={this.handleRenameClick}>
+                  {translate('rename')}
+                </button>
+                <button
+                  className="little-spacer-left"
+                  id="quality-gate-copy"
+                  onClick={this.handleCopyClick}>
+                  {translate('copy')}
+                </button>
+                <button
+                  className="little-spacer-left"
+                  id="quality-gate-toggle-default"
+                  onClick={this.handleSetAsDefaultClick}>
+                  {qualityGate.isDefault
+                    ? translate('unset_as_default')
+                    : translate('set_as_default')}
+                </button>
+                <button
+                  id="quality-gate-delete"
+                  className="little-spacer-left button-red"
+                  onClick={this.handleDeleteClick}>
+                  {translate('delete')}
+                </button>
               </div>
             )}
           </div>
index 686d17f3489766b9786a12dc855c92c13850c406..5e9d68b432cab7e26890b7919cbd18c48c0b86e9 100644 (file)
@@ -32,11 +32,9 @@ export default function ListHeader({ canEdit, onAdd }) {
       <h1 className="page-title">{translate('quality_gates.page')}</h1>
       {canEdit && (
         <div className="page-actions">
-          <div className="button-group">
-            <button id="quality-gate-add" onClick={handleAddClick}>
-              {translate('create')}
-            </button>
-          </div>
+          <button id="quality-gate-add" onClick={handleAddClick}>
+            {translate('create')}
+          </button>
         </div>
       )}
     </header>
index f46db303e10608a25118e1dced38e297e77c067a..c318bfd480ede016031f88069dc3e1682a15aa8e 100644 (file)
@@ -82,20 +82,16 @@ export default class PageHeader extends React.PureComponent<Props, State> {
         <h1 className="page-title">{translate('quality_profiles.page')}</h1>
 
         {this.props.actions.create && (
-          <div className="page-actions button-group dropdown">
+          <div className="page-actions">
             <button id="quality-profiles-create" onClick={this.handleCreateClick}>
               {translate('create')}
             </button>
-            <button className="dropdown-toggle js-more-admin-actions" data-toggle="dropdown">
-              <i className="icon-dropdown" />
+            <button
+              className="little-spacer-left"
+              id="quality-profiles-restore"
+              onClick={this.handleRestoreClick}>
+              {translate('restore')}
             </button>
-            <ul className="dropdown-menu dropdown-menu-right">
-              <li>
-                <a href="#" id="quality-profiles-restore" onClick={this.handleRestoreClick}>
-                  {translate('quality_profiles.restore_profile')}
-                </a>
-              </li>
-            </ul>
           </div>
         )}
 
index fbd2d43f5db909c69f09b43d391ec6008e85e096..a979104cc685dae28d63616a18935b5e840475b7 100644 (file)
@@ -2,9 +2,7 @@
   <h1 class="page-title">{{t 'users.page'}}</h1>
   <i class="spinner hidden"></i>
   <div class="page-actions">
-    <div class="button-group">
-      <button id="users-create">{{t 'users.create_user'}}</button>
-    </div>
+    <button id="users-create">{{t 'users.create_user'}}</button>
   </div>
   <p class="page-description">{{t 'users.page.description'}}</p>
 </header>