From f8d3764d5eb555e3b7ff2d21916e22988588f69c Mon Sep 17 00:00:00 2001 From: Robin Ward <robin.ward@gmail.com> Date: Wed, 14 Jan 2015 15:36:38 -0500 Subject: [PATCH] Convert many buttons to `d-button` --- .../javascripts/admin/templates/dashboard.hbs | 4 ++-- .../javascripts/admin/templates/reports.hbs | 2 +- .../discourse/components/d-button.js.es6 | 21 +++++++++++++++---- .../discourse/templates/header.hbs | 8 ++----- .../discourse/templates/topic-entrance.hbs | 13 ++++++------ .../discourse/templates/topic-progress.hbs | 21 +++++++++++-------- .../javascripts/discourse/templates/topic.hbs | 8 +++---- .../discourse/templates/user-dropdown.hbs | 2 +- .../discourse/templates/user/user.hbs | 9 +++----- app/assets/stylesheets/common/base/topic.scss | 10 +++++++-- 10 files changed, 57 insertions(+), 41 deletions(-) diff --git a/app/assets/javascripts/admin/templates/dashboard.hbs b/app/assets/javascripts/admin/templates/dashboard.hbs index b788bb08f..a2e8479f9 100644 --- a/app/assets/javascripts/admin/templates/dashboard.hbs +++ b/app/assets/javascripts/admin/templates/dashboard.hbs @@ -118,7 +118,7 @@ </p> <p class="actions"> <small>{{i18n 'admin.dashboard.last_checked'}}: {{problemsTimestamp}}</small> - <button {{action "refreshProblems"}} class="btn btn-small"><i class="fa fa-refresh"></i>{{i18n 'admin.dashboard.refresh_problems'}}</button> + {{d-button action="refreshProblems" class="btn-small" icon="refresh" label="admin.dashboard.refresh_problems"}} </p> </div> <div class="clearfix"></div> @@ -130,7 +130,7 @@ <div class="problem-messages"> <p> {{i18n 'admin.dashboard.no_problems'}} - <button {{action "refreshProblems"}} class="btn btn-small"><i class="fa fa-refresh"></i>{{i18n 'admin.dashboard.refresh_problems'}}</button> + {{d-button action="refreshProblems" class="btn-small" icon="refresh" label="admin.dashboard.refresh_problems"}} </p> </div> <div class="clearfix"></div> diff --git a/app/assets/javascripts/admin/templates/reports.hbs b/app/assets/javascripts/admin/templates/reports.hbs index 98e709740..e4fdc87cb 100644 --- a/app/assets/javascripts/admin/templates/reports.hbs +++ b/app/assets/javascripts/admin/templates/reports.hbs @@ -3,7 +3,7 @@ <div> {{i18n 'admin.dashboard.reports.start_date'}} {{input type="date" value=startDate}} {{i18n 'admin.dashboard.reports.end_date'}} {{input type="date" value=endDate}} - <button {{action "refreshReport"}} class='btn btn-primary'>{{i18n 'admin.dashboard.reports.refresh_report'}}</button> + {{d-button action="refreshReport" class="btn-primary" label="admin.dashboard.reports.refresh_report" icon="refresh"}} </div> <div class='view-options'> diff --git a/app/assets/javascripts/discourse/components/d-button.js.es6 b/app/assets/javascripts/discourse/components/d-button.js.es6 index b5a306dab..fa923a2ca 100644 --- a/app/assets/javascripts/discourse/components/d-button.js.es6 +++ b/app/assets/javascripts/discourse/components/d-button.js.es6 @@ -3,13 +3,26 @@ import { iconHTML } from 'discourse/helpers/fa-icon'; export default Ember.Component.extend({ tagName: 'button', classNameBindings: [':btn'], + attributeBindings: ['disabled', 'translatedTitle:title'], + + translatedTitle: function() { + var label = this.get('label'); + if (label) { + return I18n.t(this.get('label')); + } + }.property('label'), render: function(buffer) { - var icon = this.get('icon'); - if (icon) { - buffer.push(iconHTML(icon) + ' '); + var title = this.get('translatedTitle'), + icon = this.get('icon'); + + if (title || icon) { + if (icon) { buffer.push(iconHTML(icon) + ' '); } + if (title) { buffer.push(title); } + } else { + // If no label or icon is present, yield + return this._super(); } - buffer.push(I18n.t(this.get('label'))); }, click: function() { diff --git a/app/assets/javascripts/discourse/templates/header.hbs b/app/assets/javascripts/discourse/templates/header.hbs index d7f3412e2..0cffe50fe 100644 --- a/app/assets/javascripts/discourse/templates/header.hbs +++ b/app/assets/javascripts/discourse/templates/header.hbs @@ -6,13 +6,9 @@ <div class='panel clearfix'> {{#unless currentUser}} {{#if showSignUpButton}} - <button {{action "showCreateAccount"}} class='btn btn-primary btn-small sign-up-button'> - {{i18n 'sign_up'}} - </button> + {{d-button action="showCreateAccount" class="btn-primary btn-small sign-up-button" label="sign_up"}} {{/if}} - <button {{action "showLogin"}} class='btn btn-primary btn-small login-button'> - {{fa-icon "user"}} {{i18n 'log_in'}} - </button> + {{d-button action="showLogin" class="btn-primary btn-small login-button" icon="user" label="log_in"}} {{/unless}} <ul class='icons clearfix' role='navigation'> {{#if currentUser}} diff --git a/app/assets/javascripts/discourse/templates/topic-entrance.hbs b/app/assets/javascripts/discourse/templates/topic-entrance.hbs index 8613848bb..3dbe96f87 100644 --- a/app/assets/javascripts/discourse/templates/topic-entrance.hbs +++ b/app/assets/javascripts/discourse/templates/topic-entrance.hbs @@ -1,6 +1,7 @@ -<button {{action "enterTop"}} class='btn full no-text jump-top'> - <i class='fa fa-caret-up'></i> {{{topDate}}} -</button> -<button {{action "enterBottom"}} class='btn full no-text jump-bottom'> - {{{bottomDate}}} <i class='fa fa-caret-down'></i> -</button> +{{#d-button action="enterTop" class="full no-text jump-top"}} + {{fa-icon 'caret-up'}} {{{topDate}}} +{{/d-button}} + +{{#d-button action="enterBottom" class="full no-text jump-button"}} + {{{bottomDate}}} {{fa-icon 'caret-down'}} +{{/d-button}} diff --git a/app/assets/javascripts/discourse/templates/topic-progress.hbs b/app/assets/javascripts/discourse/templates/topic-progress.hbs index ab575a641..b89137608 100644 --- a/app/assets/javascripts/discourse/templates/topic-progress.hbs +++ b/app/assets/javascripts/discourse/templates/topic-progress.hbs @@ -1,16 +1,19 @@ {{#if expanded}} <nav id='topic-progress-expanded'> - <button {{action "jumpTop"}} {{bind-attr disabled=jumpTopDisabled}} class='btn full no-text'> - <i class="fa fa-caret-up"></i> - {{i18n 'topic.progress.go_top'}} - </button> + {{d-button action="jumpTop" + disabled=jumpTopDisabled + class="full no-text" + icon="caret-up" + label="topic.progress.go_top"}} <div class='jump-form'> - {{input value=toPostIndex}} <button {{action "jumpPost"}} class='btn'>{{i18n 'topic.progress.go'}}</button> + {{input value=toPostIndex}} + {{d-button action="jumpPost" label="topic.progress.go"}} </div> - <button {{action "jumpBottom"}} {{bind-attr disabled=jumpBottomDisabled}} class='btn full no-text jump-bottom'> - {{i18n 'topic.progress.go_bottom'}} - <i class="fa fa-caret-down"></i> - </button> + {{d-button action="jumpBottom" + disabled=jumpBottomDisabled + class="full no-text jump-bottom" + icon="caret-down" + label="topic.progress.go_bottom"}} </nav> {{/if}} <nav id='topic-progress' title="{{i18n 'topic.progress.title'}}" {{bind-attr class="hideProgress:hidden"}}> diff --git a/app/assets/javascripts/discourse/templates/topic.hbs b/app/assets/javascripts/discourse/templates/topic.hbs index 252a1cdc6..8af8ac195 100644 --- a/app/assets/javascripts/discourse/templates/topic.hbs +++ b/app/assets/javascripts/discourse/templates/topic.hbs @@ -22,8 +22,8 @@ {{plugin-outlet "edit-topic"}} - <button class='btn btn-primary btn-small no-text' {{action "finishedEditingTopic"}}>{{fa-icon "check"}}</button> - <button class='btn btn-small no-text' {{action "cancelEditingTopic"}}>{{fa-icon "times"}}</button> + {{d-button action="finishedEditingTopic" class="btn-primary btn-small no-text" icon="check"}} + {{d-button action="cancelEditingTopic" class="btn-small no-text" icon="times"}} {{else}} <h1> {{#unless is_warning}} @@ -118,10 +118,10 @@ <div>{{message}}</div> {{#if noRetry}} {{#unless currentUser}} - <button {{action "showLogin"}} class='btn btn-primary topic-retry'>{{fa-icon "user"}} {{i18n 'log_in'}}</button> + {{d-button action="showLogin" class="btn-primary topic-retry" icon="user" label="log_in"}} {{/unless}} {{else}} - <button class="btn btn-primary topic-retry" {{action "retryLoading"}}>{{fa-icon "refresh"}} {{i18n 'errors.buttons.again'}}</button> + {{d-button action="retryLoading" class="btn-primary topic-retry" icon="refresh" label="errors.buttons.again"}} {{/if}} </div> {{loading-spinner condition=retrying}} diff --git a/app/assets/javascripts/discourse/templates/user-dropdown.hbs b/app/assets/javascripts/discourse/templates/user-dropdown.hbs index 9b3323d40..12d2fe78d 100644 --- a/app/assets/javascripts/discourse/templates/user-dropdown.hbs +++ b/app/assets/javascripts/discourse/templates/user-dropdown.hbs @@ -8,6 +8,6 @@ </li> <li>{{#link-to 'userActivity.bookmarks' currentUser}}{{i18n 'user.bookmarks'}}{{/link-to}}</li> <li>{{#link-to 'preferences' currentUser}}{{i18n 'user.preferences'}}{{/link-to}}</li> - <li><button {{action "logout"}} class='btn btn-danger right logout'><i class='fa fa-sign-out'></i>{{i18n 'user.log_out'}}</button></li> + <li>{{d-button action="logout" class="btn-danger right logout" icon="sign-out" label="user.log_out"}}</li> </ul> </section> diff --git a/app/assets/javascripts/discourse/templates/user/user.hbs b/app/assets/javascripts/discourse/templates/user/user.hbs index 7c64ec6e6..6f54dbfcd 100644 --- a/app/assets/javascripts/discourse/templates/user/user.hbs +++ b/app/assets/javascripts/discourse/templates/user/user.hbs @@ -117,7 +117,7 @@ {{#if email}} {{email}} {{else}} - <button class="btn btn-primary" title="{{i18n 'admin.users.check_email.title'}}" {{action "checkEmail" this}}>{{fa-icon "envelope-o"}} {{i18n 'admin.users.check_email.text'}}</button> + {{d-button action="checkEmail" icon="envelope-o" label="admin.users.check_email.text" class="btn-primary"}} {{/if}} </dd> {{/if}} @@ -130,10 +130,7 @@ </dd> {{/if}} {{#if canDeleteUser}} - <button class="btn btn-danger" {{action "adminDelete"}}> - <i class="fa fa-exclamation-triangle"></i> - {{i18n 'user.admin_delete'}} - </button> + {{d-button action="adminDelete" icon="exclamation-triangle" label="user.admin_delete" class="btn-danger"}} {{/if}} </dl> {{plugin-outlet "user-profile-secondary"}} @@ -192,7 +189,7 @@ {{#if viewingSelf}} <div class='user-archive'> - <button {{action "exportUserArchive"}} class="btn" title="{{i18n 'user.download_archive'}}">{{fa-icon "download"}} {{i18n 'user.download_archive'}}</button> + {{d-button action="exportUserArchive" label="user.download_archive" icon="download"}} </div> {{/if}} </section> diff --git a/app/assets/stylesheets/common/base/topic.scss b/app/assets/stylesheets/common/base/topic.scss index 0bb00feee..1afcedb7f 100644 --- a/app/assets/stylesheets/common/base/topic.scss +++ b/app/assets/stylesheets/common/base/topic.scss @@ -1,10 +1,16 @@ #topic-title { - .title-wrapper {float: left; width: 90%;} + .title-wrapper { + float: left; + width: 90%; + .btn-small { + margin: 0 6px 0 0; + } + } a.badge-category { margin-top: 5px; - } + } a.edit-topic i { font-size: 0.8em; } }