DEV: enforces no-invalid-interactive linting rule (#8907)

This commit is contained in:
Joffrey JAFFEUX 2020-02-11 15:55:16 +01:00 committed by GitHub
parent 9d50e1b40f
commit 902d0e1e3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 163 additions and 122 deletions

View File

@ -5,6 +5,7 @@ module.exports = {
rules: { rules: {
"self-closing-void-elements": true, "self-closing-void-elements": true,
"table-groups": true, "table-groups": true,
"style-concatenation": true "style-concatenation": true,
"no-invalid-interactive": true
} }
}; };

View File

@ -13,7 +13,9 @@
{{#if editingDescription}} {{#if editingDescription}}
{{input value=buffered.description maxlength="255" placeholder=(i18n "admin.api.description_placeholder")}} {{input value=buffered.description maxlength="255" placeholder=(i18n "admin.api.description_placeholder")}}
{{else}} {{else}}
<span {{action "editDescription"}}>{{if model.description model.description (i18n "admin.api.no_description")}}</span> <span>
{{if model.description model.description (i18n "admin.api.no_description")}}
</span>
{{/if}} {{/if}}
<div class='controls'> <div class='controls'>

View File

@ -163,7 +163,11 @@
label="admin.badges.save"}} label="admin.badges.save"}}
<span class='saving'>{{savingStatus}}</span> <span class='saving'>{{savingStatus}}</span>
{{#unless readOnly}} {{#unless readOnly}}
<a {{action "destroy"}} class='delete-link'>{{i18n 'admin.badges.delete'}}</a> {{d-button
action=(action "destroy")
class="btn-danger"
label="admin.badges.delete"
}}
{{/unless}} {{/unless}}
</div> </div>
</form> </form>

View File

@ -3,7 +3,9 @@
{{#if editing}} {{#if editing}}
{{text-field value=buffer autofocus="autofocus" autocomplete="discourse"}} {{text-field value=buffer autofocus="autofocus" autocomplete="discourse"}}
{{else}} {{else}}
<span {{action "edit"}}>{{value}}</span> <a href {{action "edit"}} class="inline-editable-field">
<span>{{value}}</span>
</a>
{{/if}} {{/if}}
</div> </div>
<div class='controls'> <div class='controls'>

View File

@ -24,6 +24,7 @@
<li> <li>
<a {{action "toggleShowAdvanced"}} <a {{action "toggleShowAdvanced"}}
class='no-text' class='no-text'
href
title="{{i18n (concat "admin.customize.theme." (if showAdvanced "hide_advanced" "show_advanced"))}}" title="{{i18n (concat "admin.customize.theme." (if showAdvanced "hide_advanced" "show_advanced"))}}"
> >
{{d-icon (if showAdvanced "angle-double-left" "angle-double-right")}} {{d-icon (if showAdvanced "angle-double-left" "angle-double-right")}}
@ -70,7 +71,7 @@
{{d-button class="ok" action=(action "addField" newFieldName) icon="check"}} {{d-button class="ok" action=(action "addField" newFieldName) icon="check"}}
{{d-button class="cancel" action=(action "cancelAddField") icon="times"}} {{d-button class="cancel" action=(action "cancelAddField") icon="times"}}
{{else}} {{else}}
<a {{action "toggleAddField" currentTargetName}} class="no-text"> <a href {{action "toggleAddField" currentTargetName}} class="no-text">
{{d-icon "plus"}} {{d-icon "plus"}}
</a> </a>
{{/if}} {{/if}}
@ -78,8 +79,8 @@
{{/if}} {{/if}}
<li class='spacer'></li> <li class='spacer'></li>
<li> <li>
<a {{action "toggleMaximize"}} class="no-text"> <a href {{action "toggleMaximize"}} class="no-text">
{{d-icon maximizeIcon}} {{d-icon maximizeIcon}}
</a> </a>
</li> </li>
</ul> </ul>

View File

@ -1,7 +1,7 @@
<div class='setting-label'> <div class='setting-label'>
<h3>{{unbound settingName}}</h3> <h3>{{unbound settingName}}</h3>
{{#if defaultIsAvailable}} {{#if defaultIsAvailable}}
<a onClick={{action 'setDefaultValues'}}>{{setting.setDefaultValuesLabel}}</a> <a href onClick={{action 'setDefaultValues'}}>{{setting.setDefaultValuesLabel}}</a>
{{/if}} {{/if}}
</div> </div>
<div class="setting-value"> <div class="setting-value">

View File

@ -31,13 +31,13 @@
<span class="components">{{{childrenString}}}</span> <span class="components">{{{childrenString}}}</span>
{{#if displayHasMore}} {{#if displayHasMore}}
<span {{action "toggleChildrenExpanded"}} class="others-count"> <a href {{action "toggleChildrenExpanded"}} class="others-count">
{{#if childrenExpanded}} {{#if childrenExpanded}}
{{I18n "admin.customize.theme.collapse"}} {{I18n "admin.customize.theme.collapse"}}
{{else}} {{else}}
{{I18n "admin.customize.theme.and_x_more" count=moreCount}} {{I18n "admin.customize.theme.and_x_more" count=moreCount}}
{{/if}} {{/if}}
</span> </a>
{{/if}} {{/if}}
</div> </div>
{{/if}} {{/if}}

View File

@ -1,10 +1,17 @@
<div class="themes-list-header"> <div class="themes-list-header">
<div {{action "changeView" THEMES}} class="themes-tab tab {{if themesTabActive 'active' ''}}"> {{d-button
{{I18n "admin.customize.theme.title"}} action=(action "changeView")
</div><div {{action "changeView" COMPONENTS}} class="components-tab tab {{if componentsTabActive 'active' ''}}"> actionParam=THEMES
{{d-icon "puzzle-piece"}} class=(concat "themes-tab " "tab " (if themesTabActive 'btn-danger active' ''))
{{I18n "admin.customize.theme.components"}} label="admin.customize.theme.title"
</div> }}
{{d-button
action=(action "changeView")
actionParam=COMPONENTS
class=(concat "components-tab " "tab " (if componentsTabActive 'btn-danger active' ''))
label="admin.customize.theme.components"
icon="puzzle-piece"
}}
</div> </div>
<div class="themes-list-container"> <div class="themes-list-container">

View File

@ -3,9 +3,13 @@
{{#if editingName}} {{#if editingName}}
{{text-field value=model.name autofocus="true"}} {{text-field value=model.name autofocus="true"}}
{{d-button action=(action "finishedEditingName") class="btn-primary submit-edit" icon="check"}} {{d-button action=(action "finishedEditingName") class="btn-primary submit-edit" icon="check"}}
{{d-button action=(action "cancelEditingName") class="btn-default cancel-edit" icon="times"}} {{d-button action=(action "cancelEditingName") class="cancel-edit" icon="times"}}
{{else}} {{else}}
{{model.name}} <a {{action "startEditingName"}}>{{d-icon "pencil-alt"}}</a> <span>{{model.name}}</span>
{{d-button
action=(action "startEditingName")
icon="pencil-alt"
}}
{{/if}} {{/if}}
</div> </div>

View File

@ -29,7 +29,7 @@
</td> </td>
<td><a href='mailto:{{unbound l.to_address}}'>{{l.to_address}}</a></td> <td><a href='mailto:{{unbound l.to_address}}'>{{l.to_address}}</a></td>
{{#if l.has_bounce_key}} {{#if l.has_bounce_key}}
<td><a {{action "showIncomingEmail" l.id}}>{{l.email_type}}</a></td> <td><a href {{action "showIncomingEmail" l.id}}>{{l.email_type}}</a></td>
{{else}} {{else}}
<td>{{l.email_type}}</td> <td>{{l.email_type}}</td>
{{/if}} {{/if}}

View File

@ -48,7 +48,7 @@
</td> </td>
<td>{{email.subject}}</td> <td>{{email.subject}}</td>
<td class="error"> <td class="error">
<a {{action "showIncomingEmail" email.id}}>{{email.error}}</a> <a href {{action "showIncomingEmail" email.id}}>{{email.error}}</a>
</td> </td>
</tr> </tr>
{{else}} {{else}}

View File

@ -42,13 +42,13 @@
{{#if item.editing}} {{#if item.editing}}
{{text-field value=item.ip_address autofocus="autofocus"}} {{text-field value=item.ip_address autofocus="autofocus"}}
{{else}} {{else}}
<span {{action "edit" item}}> <a href {{action "edit" item}} class="inline-editable-field">
{{#if item.isRange}} {{#if item.isRange}}
<strong>{{item.ip_address}}</strong> <strong>{{item.ip_address}}</strong>
{{else}} {{else}}
{{item.ip_address}} {{item.ip_address}}
{{/if}} {{/if}}
</span> </a>
{{/if}} {{/if}}
</td> </td>
<td class="col action"> <td class="col action">
@ -108,7 +108,7 @@
action=(action "save") action=(action "save")
actionParam=item actionParam=item
label="admin.logs.save"}} label="admin.logs.save"}}
<a {{action "cancel" item}}>{{i18n "cancel"}}</a> <a href {{action "cancel" item}}>{{i18n "cancel"}}</a>
{{/unless}} {{/unless}}
</td> </td>
</tr> </tr>

View File

@ -1,29 +1,29 @@
<div class="staff-action-logs-controls"> <div class="staff-action-logs-controls">
{{#if filtersExists}} {{#if filtersExists}}
<div class='staff-action-logs-filters'> <div class='staff-action-logs-filters'>
<a {{action "clearAllFilters"}} class="clear-filters filter"> <a href {{action "clearAllFilters"}} class="clear-filters filter">
<span class="label">{{i18n 'admin.logs.staff_actions.clear_filters'}}</span> <span class="label">{{i18n 'admin.logs.staff_actions.clear_filters'}}</span>
</a> </a>
{{#if actionFilter}} {{#if actionFilter}}
<a {{action "clearFilter" "actionFilter"}} class="filter"> <a href {{action "clearFilter" "actionFilter"}} class="filter">
<span class="label">{{i18n 'admin.logs.action'}}</span>: {{actionFilter}} <span class="label">{{i18n 'admin.logs.action'}}</span>: {{actionFilter}}
{{d-icon "times-circle"}} {{d-icon "times-circle"}}
</a> </a>
{{/if}} {{/if}}
{{#if filters.acting_user}} {{#if filters.acting_user}}
<a {{action "clearFilter" "acting_user"}} class="filter"> <a href {{action "clearFilter" "acting_user"}} class="filter">
<span class="label">{{i18n 'admin.logs.staff_actions.staff_user'}}</span>: {{filters.acting_user}} <span class="label">{{i18n 'admin.logs.staff_actions.staff_user'}}</span>: {{filters.acting_user}}
{{d-icon "times-circle"}} {{d-icon "times-circle"}}
</a> </a>
{{/if}} {{/if}}
{{#if filters.target_user}} {{#if filters.target_user}}
<a {{action "clearFilter" "target_user"}} class="filter"> <a href {{action "clearFilter" "target_user"}} class="filter">
<span class="label">{{i18n 'admin.logs.staff_actions.target_user'}}</span>: {{filters.target_user}} <span class="label">{{i18n 'admin.logs.staff_actions.target_user'}}</span>: {{filters.target_user}}
{{d-icon "times-circle"}} {{d-icon "times-circle"}}
</a> </a>
{{/if}} {{/if}}
{{#if filters.subject}} {{#if filters.subject}}
<a {{action "clearFilter" "subject"}} class="filter"> <a href {{action "clearFilter" "subject"}} class="filter">
<span class="label">{{i18n 'admin.logs.staff_actions.subject'}}</span>: {{filters.subject}} <span class="label">{{i18n 'admin.logs.staff_actions.subject'}}</span>: {{filters.subject}}
{{d-icon "times-circle"}} {{d-icon "times-circle"}}
</a> </a>
@ -63,7 +63,7 @@
<div class="staff-user"> <div class="staff-user">
{{#if item.acting_user}} {{#if item.acting_user}}
{{#link-to 'adminUser' item.acting_user}}{{avatar item.acting_user imageSize="tiny"}}{{/link-to}} {{#link-to 'adminUser' item.acting_user}}{{avatar item.acting_user imageSize="tiny"}}{{/link-to}}
<a {{action "filterByStaffUser" item.acting_user}}>{{item.acting_user.username}}</a> <a href {{action "filterByStaffUser" item.acting_user}}>{{item.acting_user.username}}</a>
{{else}} {{else}}
<span class="deleted-user" title="{{i18n 'admin.user.deleted'}}"> <span class="deleted-user" title="{{i18n 'admin.user.deleted'}}">
{{d-icon "far-trash-alt"}} {{d-icon "far-trash-alt"}}
@ -72,16 +72,16 @@
</div> </div>
</td> </td>
<td class="col value action"> <td class="col value action">
<a {{action "filterByAction" item}}>{{item.actionName}}</a> <a href {{action "filterByAction" item}}>{{item.actionName}}</a>
</td> </td>
<td class="col value subject"> <td class="col value subject">
<div class="subject"> <div class="subject">
{{#if item.target_user}} {{#if item.target_user}}
{{#link-to 'adminUser' item.target_user}}{{avatar item.target_user imageSize="tiny"}}{{/link-to}} {{#link-to 'adminUser' item.target_user}}{{avatar item.target_user imageSize="tiny"}}{{/link-to}}
<a {{action "filterByTargetUser" item.target_user}}>{{item.target_user.username}}</a> <a href {{action "filterByTargetUser" item.target_user}}>{{item.target_user.username}}</a>
{{/if}} {{/if}}
{{#if item.subject}} {{#if item.subject}}
<a {{action "filterBySubject" item.subject}} title={{item.subject}}>{{item.subject}}</a> <a href {{action "filterBySubject" item.subject}} title={{item.subject}}>{{item.subject}}</a>
{{/if}} {{/if}}
</div> </div>
</td> </td>
@ -89,10 +89,10 @@
<td class="col value details"> <td class="col value details">
{{{item.formattedDetails}}} {{{item.formattedDetails}}}
{{#if item.useCustomModalForDetails}} {{#if item.useCustomModalForDetails}}
<a {{action "showCustomDetailsModal" item}}>{{d-icon "info-circle"}} {{i18n 'admin.logs.staff_actions.show'}}</a> <a href {{action "showCustomDetailsModal" item}}>{{d-icon "info-circle"}} {{i18n 'admin.logs.staff_actions.show'}}</a>
{{/if}} {{/if}}
{{#if item.useModalForDetails}} {{#if item.useModalForDetails}}
<a {{action "showDetailsModal" item}}>{{d-icon "info-circle"}} {{i18n 'admin.logs.staff_actions.show'}}</a> <a href {{action "showDetailsModal" item}}>{{d-icon "info-circle"}} {{i18n 'admin.logs.staff_actions.show'}}</a>
{{/if}} {{/if}}
</td> </td>
<td class="col value context">{{item.context}}</td> <td class="col value context">{{item.context}}</td>

View File

@ -1,9 +1,9 @@
{{#d-modal-body class="uploaded-image-list"}} {{#d-modal-body class="uploaded-image-list"}}
<div class="selectable-avatars"> <div class="selectable-avatars">
{{#each images as |image|}} {{#each images as |image|}}
<div class="selectable-avatar" {{action "remove" image}}> <a href class="selectable-avatar" {{action "remove" image}}>
{{bound-avatar-template image "huge"}} {{bound-avatar-template image "huge"}}
</div> </a>
{{else}} {{else}}
<p>{{i18n "admin.site_settings.uploaded_image_list.empty"}}</p> <p>{{i18n "admin.site_settings.uploaded_image_list.empty"}}</p>
{{/each}} {{/each}}

View File

@ -21,9 +21,9 @@
<div class='clearfix'></div> <div class='clearfix'></div>
</div> </div>
{{#if hasIncoming}} {{#if hasIncoming}}
<div class='alert alert-info clickable' tabindex="0" {{action "showInserted"}}> <a href class='alert alert-info clickable' tabindex="0" {{action "showInserted"}}>
{{count-i18n key="admin.web_hooks.events.incoming" count=incomingCount}} {{count-i18n key="admin.web_hooks.events.incoming" count=incomingCount}}
</div> </a>
{{/if}} {{/if}}
<ul> <ul>
{{#each model as |webHookEvent|}} {{#each model as |webHookEvent|}}

View File

@ -1,11 +1,9 @@
{{#conditional-loading-spinner condition=loading}} {{#conditional-loading-spinner condition=loading}}
{{#if hasIncoming}} {{#if hasIncoming}}
<div class="show-mores"> <div class="show-mores">
<div class='alert alert-info clickable' {{action showInserted}}> <a tabindex="0" href {{action showInserted}} class='alert alert-info clickable'>
<a tabindex="0" href="" {{action showInserted}}> {{count-i18n key="topic_count_" suffix="latest" count=2}}
{{count-i18n key="topic_count_" suffix="latest" count=incomingCount}} </a>
</a>
</div>
</div> </div>
{{/if}} {{/if}}

View File

@ -10,8 +10,10 @@
allowEmails='true' allowEmails='true'
autocomplete="discourse"}} autocomplete="discourse"}}
{{else}} {{else}}
<div class='ac-wrap composer-user-selector-limited' {{action "toggleSelector"}}> <a href {{action "toggleSelector"}}>
<span>{{limitedUsernames}}</span> <div class='ac-wrap composer-user-selector-limited'>
<span class='btn btn-primary'>{{hiddenUsersCount}}</span> <span>{{limitedUsernames}}</span>
</div> <span class='btn btn-primary'>{{hiddenUsersCount}}</span>
</div>
</a>
{{/if}} {{/if}}

View File

@ -1 +1 @@
<a {{action close}} class='d-modal-cancel'>{{i18n 'cancel'}}</a> <a href {{action close}} class='d-modal-cancel'>{{i18n 'cancel'}}</a>

View File

@ -1,10 +1,10 @@
{{#if item.truncated}} {{#if item.truncated}}
{{#if expanded}} {{#if expanded}}
<a class="collapse-item" onclick={{action "toggleItem"}} title={{i18n "post.expand_collapse"}}> <a href class="collapse-item" onclick={{action "toggleItem"}} title={{i18n "post.expand_collapse"}}>
{{d-icon "chevron-up"}} {{d-icon "chevron-up"}}
</a> </a>
{{else}} {{else}}
<a class="expand-item" onclick={{action "toggleItem"}} title={{i18n "post.expand_collapse"}}> <a href class="expand-item" onclick={{action "toggleItem"}} title={{i18n "post.expand_collapse"}}>
{{d-icon "chevron-down"}} {{d-icon "chevron-down"}}
</a> </a>
{{/if}} {{/if}}

View File

@ -33,13 +33,12 @@
<td>{{bound-date log.created_at}}</td> <td>{{bound-date log.created_at}}</td>
<td {{action "toggleDetails"}} class="group-manage-logs-expand-details"> <td class="group-manage-logs-expand-details">
{{#if log.prev_value}} {{#if log.prev_value}}
{{#if expandDetails}} {{d-button
{{d-icon 'ellipsis-v'}} action=(action "toggleDetails")
{{else}} icon=(if expandDetails "angle-up" "angle-down")
{{d-icon 'ellipsis-h'}} }}
{{/if}}
{{/if}} {{/if}}
</td> </td>
</tr> </tr>

View File

@ -1 +1,9 @@
<a href={{member.adminPath}}>{{avatar member imageSize="small"}}</a> {{member.username}} {{#unless automatic}}<a class='remove' {{action "remove"}}>{{d-icon "times"}}</a>{{/unless}} <a href={{member.adminPath}}>
{{avatar member imageSize="small"}}
</a>
<span>{{member.username}}</span>
{{#unless automatic}}
<a href class='remove' {{action "remove"}}>
{{d-icon "times"}}
</a>
{{/unless}}

View File

@ -7,7 +7,7 @@
{{/if}} {{/if}}
{{#if show}} {{#if show}}
<div class="location-box"> <div class="location-box">
<a class="close pull-right" {{action "hide"}}>{{d-icon "times"}}</a> <a href class="close pull-right" {{action "hide"}}>{{d-icon "times"}}</a>
{{#if copied}} {{#if copied}}
{{d-button class="btn-hover pull-right" icon="copy" label="ip_lookup.copied"}} {{d-button class="btn-hover pull-right" icon="copy" label="ip_lookup.copied"}}
{{else}} {{else}}

View File

@ -1,7 +1,7 @@
<div class='flagged-post-header'> <div class='flagged-post-header'>
{{reviewable-topic-link reviewable=reviewable tagName=''}} {{reviewable-topic-link reviewable=reviewable tagName=''}}
{{#if hasEdits}} {{#if hasEdits}}
<a {{action "showEditHistory"}} <a href {{action "showEditHistory"}}
class="has-edits {{historyClass}}" class="has-edits {{historyClass}}"
title="{{i18n "post.last_edited_on"}} {{editedDate}}"> title="{{i18n "post.last_edited_on"}} {{editedDate}}">
{{d-icon "pencil-alt"}} {{d-icon "pencil-alt"}}

View File

@ -10,7 +10,7 @@
<span class='status'> <span class='status'>
{{reviewable-status reviewable.status}} {{reviewable-status reviewable.status}}
</span> </span>
<a {{action "explainReviewable" reviewable}} class='explain' title={{i18n "review.explain.why"}}> <a href {{action "explainReviewable" reviewable}} class='explain' title={{i18n "review.explain.why"}}>
{{d-icon "question-circle"}} {{d-icon "question-circle"}}
</a> </a>
</div> </div>

View File

@ -10,7 +10,7 @@
<div class="buttons"> <div class="buttons">
{{d-button action=(route-action "showCreateAccount") label="signup_cta.sign_up" icon="check" class="btn-primary"}} {{d-button action=(route-action "showCreateAccount") label="signup_cta.sign_up" icon="check" class="btn-primary"}}
{{d-button action=(action "hideForSession") label="signup_cta.hide_session" class="no-icon"}} {{d-button action=(action "hideForSession") label="signup_cta.hide_session" class="no-icon"}}
<a {{action "neverShow"}}>{{i18n "signup_cta.hide_forever"}}</a> <a href {{action "neverShow"}}>{{i18n "signup_cta.hide_forever"}}</a>
</div> </div>
{{/if}} {{/if}}
<div class="clearfix"></div> <div class="clearfix"></div>

View File

@ -38,10 +38,10 @@
<div class='tag-box'> <div class='tag-box'>
{{discourse-tag tag.id pmOnly=tag.pmOnly tagName="div"}} {{discourse-tag tag.id pmOnly=tag.pmOnly tagName="div"}}
{{#if editSynonymsMode}} {{#if editSynonymsMode}}
<a {{action "unlinkSynonym" tag}} class="unlink-synonym"> <a href {{action "unlinkSynonym" tag}} class="unlink-synonym">
{{d-icon "unlink" title="tagging.remove_synonym"}} {{d-icon "unlink" title="tagging.remove_synonym"}}
</a> </a>
<a {{action "deleteSynonym" tag}} class="delete-synonym"> <a href {{action "deleteSynonym" tag}} class="delete-synonym">
{{d-icon "far-trash-alt" title="tagging.delete_tag"}} {{d-icon "far-trash-alt" title="tagging.delete_tag"}}
</a> </a>
{{/if}} {{/if}}

View File

@ -196,7 +196,7 @@
</a> </a>
{{/if}} {{/if}}
<a class="btn btn-default no-text mobile-preview" title="{{i18n 'composer.show_preview'}}" {{action "togglePreview"}}> <a href class="btn btn-default no-text mobile-preview" title="{{i18n 'composer.show_preview'}}" {{action "togglePreview"}}>
{{d-icon "desktop"}} {{d-icon "desktop"}}
</a> </a>

View File

@ -44,11 +44,9 @@
{{else}} {{else}}
{{#if topicTrackingState.hasIncoming}} {{#if topicTrackingState.hasIncoming}}
<div class="show-more {{if hasTopics 'has-topics'}}"> <div class="show-more {{if hasTopics 'has-topics'}}">
<div class='alert alert-info clickable' {{action "showInserted"}}> <a class='alert alert-info clickable' tabindex="0" href {{action "showInserted"}}>
<a tabindex="0" href="" {{action "showInserted"}}> {{count-i18n key="topic_count_" suffix=topicTrackingState.filter count=topicTrackingState.incomingCount}}
{{count-i18n key="topic_count_" suffix=topicTrackingState.filter count=topicTrackingState.incomingCount}} </a>
</a>
</div>
</div> </div>
{{/if}} {{/if}}
{{/if}} {{/if}}

View File

@ -41,8 +41,8 @@
{{#if bulkSelectEnabled}} {{#if bulkSelectEnabled}}
<div class='fps-select'> <div class='fps-select'>
<a {{action "selectAll"}}>{{i18n "search.select_all"}}</a> <a href {{action "selectAll"}}>{{i18n "search.select_all"}}</a>
<a {{action "clearAll"}}>{{i18n "search.clear_all"}}</a> <a href {{action "clearAll"}}>{{i18n "search.clear_all"}}</a>
</div> </div>
{{/if}} {{/if}}
</div> </div>

View File

@ -1,9 +1,9 @@
{{#conditional-loading-spinner condition=loading}} {{#conditional-loading-spinner condition=loading}}
{{#if hasIncoming}} {{#if hasIncoming}}
<div class="show-mores"> <div class="show-mores">
<div class='alert alert-info clickable' {{action showInserted}}> <a href class='alert alert-info clickable' {{action showInserted}}>
{{count-i18n key="topic_count_" suffix="latest" count=incomingCount}} {{count-i18n key="topic_count_" suffix="latest" count=incomingCount}}
</div> </a>
</div> </div>
{{/if}} {{/if}}

View File

@ -1,7 +1,10 @@
{{#if selectedHtml}} {{#if selectedHtml}}
<li><a class='expander' {{action 'toggleExpanded'}}>{{{selectedHtml}}} <li>
<a href class='expander' {{action 'toggleExpanded'}}>
<span>{{{selectedHtml}}}</span>
{{d-icon "caret-down"}} {{d-icon "caret-down"}}
</a></li> </a>
</li>
{{/if}} {{/if}}
<ul class='drop {{if expanded 'expanded'}}'> <ul class='drop {{if expanded 'expanded'}}'>
{{yield}} {{yield}}

View File

@ -1,5 +1,5 @@
<li class='navigation-toggle'> <li class='navigation-toggle'>
<a {{action "toggleDrop"}} class='toggle-link'> <a href {{action "toggleDrop"}} class='toggle-link'>
{{selectedNavItem.displayName}} {{selectedNavItem.displayName}}
{{d-icon "caret-down"}} {{d-icon "caret-down"}}
</a> </a>

View File

@ -5,9 +5,9 @@
</div> </div>
{{else}} {{else}}
{{#if topicTrackingState.hasIncoming}} {{#if topicTrackingState.hasIncoming}}
<div class='alert alert-info clickable' {{action "showInserted"}}> <a href class='alert alert-info clickable' {{action "showInserted"}}>
{{count-i18n key="topic_count_" suffix=topicTrackingState.filter count=topicTrackingState.incomingCount}} {{count-i18n key="topic_count_" suffix=topicTrackingState.filter count=topicTrackingState.incomingCount}}
</div> </a>
{{/if}} {{/if}}
{{/if}} {{/if}}

View File

@ -32,7 +32,7 @@
<tr> <tr>
<td></td> <td></td>
<td> <td>
<a id="forgot-password-link" {{action "showForgotPassword"}}>{{i18n 'forgot_password.action'}}</a> <a href id="forgot-password-link" {{action "showForgotPassword"}}>{{i18n 'forgot_password.action'}}</a>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -17,7 +17,7 @@
<div> <div>
<h3> <h3>
{{i18n 'user.auth_tokens.latest_post'}} {{i18n 'user.auth_tokens.latest_post'}}
<a {{action "toggleExpanded"}}>{{d-icon (if expanded "caret-up" "caret-down")}}</a> <a href {{action "toggleExpanded"}}>{{d-icon (if expanded "caret-up" "caret-down")}}</a>
</h3> </h3>
{{#if expanded}} {{#if expanded}}

View File

@ -2,9 +2,9 @@
{{#if siteSettings.selectable_avatars_enabled}} {{#if siteSettings.selectable_avatars_enabled}}
<div class="selectable-avatars"> <div class="selectable-avatars">
{{#each selectableAvatars as |avatar|}} {{#each selectableAvatars as |avatar|}}
<div class="selectable-avatar" {{action "selectAvatar" avatar}}> <a href class="selectable-avatar" {{action "selectAvatar" avatar}}>
{{bound-avatar-template avatar "huge"}} {{bound-avatar-template avatar "huge"}}
</div> </a>
{{/each}} {{/each}}
</div> </div>
{{else}} {{else}}

View File

@ -14,7 +14,7 @@
{{/if}} {{/if}}
<div class=""> <div class="">
<a {{action 'cancel'}}>{{i18n 'cancel'}}</a> <a href {{action 'cancel'}}>{{i18n 'cancel'}}</a>
</div> </div>
{{else}} {{else}}
<form class="form-vertical group-bulk-add"> <form class="form-vertical group-bulk-add">

View File

@ -14,7 +14,7 @@
<tr> <tr>
<td><label for='login-account-password'>{{i18n 'login.password'}}</label></td> <td><label for='login-account-password'>{{i18n 'login.password'}}</label></td>
<td>{{password-field value=loginPassword type="password" id="login-account-password" maxlength="200" capsLockOn=capsLockOn disabled=disableLoginFields}}</td> <td>{{password-field value=loginPassword type="password" id="login-account-password" maxlength="200" capsLockOn=capsLockOn disabled=disableLoginFields}}</td>
<td><a id="forgot-password-link" {{action "forgotPassword"}}>{{i18n 'forgot_password.action'}}</a></td> <td><a href id="forgot-password-link" {{action "forgotPassword"}}>{{i18n 'forgot_password.action'}}</a></td>
</tr> </tr>
<tr> <tr>
<td></td> <td></td>

View File

@ -26,7 +26,7 @@
{{#if showSecondFactorKey}} {{#if showSecondFactorKey}}
{{secondFactorKey}} {{secondFactorKey}}
{{else}} {{else}}
<a {{action "showSecondFactorKey"}}>{{i18n 'user.second_factor.show_key_description'}}</a> <a href {{action "showSecondFactorKey"}}>{{i18n 'user.second_factor.show_key_description'}}</a>
{{/if}} {{/if}}
</p> </p>
</div> </div>

View File

@ -195,7 +195,7 @@
</div> </div>
{{#if canShowAllAuthTokens}} {{#if canShowAllAuthTokens}}
<a {{action "toggleShowAllAuthTokens"}}> <a href {{action "toggleShowAllAuthTokens"}}>
{{#if showAllAuthTokens}} {{#if showAllAuthTokens}}
{{d-icon "caret-up"}} {{i18n 'user.auth_tokens.show_few'}} {{d-icon "caret-up"}} {{i18n 'user.auth_tokens.show_few'}}
{{else}} {{else}}
@ -204,7 +204,7 @@
</a> </a>
{{/if}} {{/if}}
<a {{action "revokeAuthToken"}} class="pull-right text-danger">{{d-icon "sign-out-alt"}} {{i18n 'user.auth_tokens.log_out_all'}}</a> <a href {{action "revokeAuthToken"}} class="pull-right text-danger">{{d-icon "sign-out-alt"}} {{i18n 'user.auth_tokens.log_out_all'}}</a>
</div> </div>
{{/if}} {{/if}}

View File

@ -13,8 +13,8 @@
<div class='tag-sort-options'> <div class='tag-sort-options'>
{{i18n "tagging.sort_by"}} {{i18n "tagging.sort_by"}}
<span class="tag-sort-count {{if sortedByCount 'active'}}"><a {{action "sortByCount"}}>{{i18n "tagging.sort_by_count"}}</a></span> <span class="tag-sort-count {{if sortedByCount 'active'}}"><a href {{action "sortByCount"}}>{{i18n "tagging.sort_by_count"}}</a></span>
<span class="tag-sort-name {{if sortedByName 'active'}}"><a {{action "sortById"}}>{{i18n "tagging.sort_by_name"}}</a></span> <span class="tag-sort-name {{if sortedByName 'active'}}"><a href {{action "sortById"}}>{{i18n "tagging.sort_by_name"}}</a></span>
</div> </div>
<hr> <hr>

View File

@ -6,8 +6,16 @@
<div class='tag-sort-options'> <div class='tag-sort-options'>
{{i18n "tagging.sort_by"}} {{i18n "tagging.sort_by"}}
<span class="tag-sort-count {{if sortedByCount 'active'}}"><a {{action "sortByCount"}}>{{i18n "tagging.sort_by_count"}}</a></span> <span class="tag-sort-count {{if sortedByCount 'active'}}">
<span class="tag-sort-name {{if sortedByName 'active'}}"><a {{action "sortById"}}>{{i18n "tagging.sort_by_name"}}</a></span> <a href {{action "sortByCount"}}>
{{i18n "tagging.sort_by_count"}}
</a>
</span>
<span class="tag-sort-name {{if sortedByName 'active'}}">
<a href {{action "sortById"}}>
{{i18n "tagging.sort_by_name"}}
</a>
</span>
</div> </div>
<hr> <hr>

View File

@ -25,7 +25,7 @@
{{/if}} {{/if}}
{{#if model.number_of_suspensions}} {{#if model.number_of_suspensions}}
<div> <div>
<a {{action "showSuspensions"}}> <a href {{action "showSuspensions"}}>
<span class="suspensions">{{model.number_of_suspensions}}</span>{{i18n 'user.staff_counters.suspensions'}} <span class="suspensions">{{model.number_of_suspensions}}</span>{{i18n 'user.staff_counters.suspensions'}}
</a> </a>
</div> </div>

View File

@ -956,6 +956,11 @@ table#user-badges {
margin-right: 20px; margin-right: 20px;
} }
a.inline-editable-field {
color: $primary;
cursor: pointer;
}
// Styles for subtabs in admin // Styles for subtabs in admin
@import "common/admin/dashboard"; @import "common/admin/dashboard";
@import "common/admin/settings"; @import "common/admin/settings";

View File

@ -186,26 +186,20 @@
border-bottom: 1px solid $primary-low; border-bottom: 1px solid $primary-low;
border-top: 1px solid $primary-low; border-top: 1px solid $primary-low;
border-right: 1px solid $primary-low; border-right: 1px solid $primary-low;
display: flex;
.tab { .tab {
display: inline-block; padding: 1em;
padding: 10px;
width: 50%; width: 50%;
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
border-left: 1px solid $primary-low;
&.active { &.active {
font-weight: bold; font-weight: 700;
color: $secondary;
background: $danger;
} }
&:not(.active) { &:last-child {
cursor: pointer; border-left: 1px solid $primary-low;
&:hover {
background-color: $primary-very-low;
}
} }
} }
} }
@ -297,6 +291,7 @@
.others-count, .others-count,
.others-count:hover { .others-count:hover {
color: $primary-high;
text-decoration: underline; text-decoration: underline;
} }
} }

View File

@ -31,3 +31,7 @@
} }
} }
} }
a.alert.clickable {
display: flex;
}