DEV: enforce ember-template-lint: no-unnecessary-concat (#9133)

This commit is contained in:
Joffrey JAFFEUX 2020-03-07 12:58:48 +01:00 committed by GitHub
parent 48ba65f406
commit e9b6b0194c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
74 changed files with 125 additions and 124 deletions

View File

@ -7,6 +7,7 @@ module.exports = {
"table-groups": true,
"style-concatenation": true,
"no-invalid-interactive": true,
"link-rel-noopener": true
"link-rel-noopener": true,
"no-unnecessary-concat": true
}
};

View File

@ -2,7 +2,7 @@
{{#if model.icon}}
{{d-icon model.icon}}
{{/if}}
<a href="{{model.reportUrl}}">{{model.title}}</a>
<a href={{model.reportUrl}}>{{model.title}}</a>
</div>
<div class="cell value today-count">{{number model.todayCount}}</div>

View File

@ -2,7 +2,7 @@
{{#if report.icon}}
{{d-icon report.icon}}
{{/if}}
<a href="{{report.reportUrl}}">{{report.title}}</a>
<a href={{report.reportUrl}}>{{report.title}}</a>
</td>
<td class="value">{{number report.todayCount}}</td>

View File

@ -1,6 +1,6 @@
<div class="table-container">
{{#each model.data as |data|}}
<a class="table-cell user-{{data.key}}" href="{{data.url}}">
<a class="table-cell user-{{data.key}}" href={{data.url}}>
<span class="label">
{{#if data.icon}}
{{d-icon data.icon}}

View File

@ -1,7 +1,7 @@
{{#if showBackupStats}}
<div class="backups">
<h3 class="storage-stats-title">
<a href="{{get-url '/admin/backups'}}">{{d-icon "archive"}} {{i18n "admin.dashboard.backups"}}</a>
<a href={{get-url '/admin/backups'}}>{{d-icon "archive"}} {{i18n "admin.dashboard.backups"}}</a>
</h3>
<p>
{{#if backupStats.free_bytes}}

View File

@ -24,7 +24,7 @@
{{#if showTotalForSample}}
<tr class="total-row">
<td colspan="{{totalsForSample.length}}">
<td colspan={{totalsForSample.length}}>
{{i18n 'admin.dashboard.reports.totals_for_sample'}}
</td>
</tr>

View File

@ -18,17 +18,17 @@
{{#unless showNotFoundError}}
<li class="item report">
<a href="{{model.reportUrl}}" class="report-url">
<a href={{model.reportUrl}} class="report-url">
{{model.title}}
</a>
{{#if model.description}}
{{#if model.description_link}}
<a target="_blank" rel="noopener" href="{{model.description_link}}" class="info" data-tooltip="{{model.description}}">
<a target="_blank" rel="noopener" href={{model.description_link}} class="info" data-tooltip={{model.description}}>
{{d-icon "question-circle"}}
</a>
{{else}}
<span class="info" data-tooltip="{{model.description}}">
<span class="info" data-tooltip={{model.description}}>
{{d-icon "question-circle"}}
</span>
{{/if}}
@ -40,7 +40,7 @@
{{#if shouldDisplayTrend}}
<div class="trend {{model.trend}}">
<span class="value" title="{{model.trendTitle}}">
<span class="value" title={{model.trendTitle}}>
{{#if model.average}}
{{number model.currentAverage}}{{#if model.percent}}%{{/if}}
{{else}}
@ -77,7 +77,7 @@
<div class="alert alert-info report-alert no-data">
{{d-icon "chart-pie"}}
{{#if model.reportUrl}}
<a href="{{model.reportUrl}}" class="report-url">
<a href={{model.reportUrl}} class="report-url">
<span>
{{#if model.title}}
{{model.title}}

View File

@ -25,7 +25,7 @@
<a {{action "toggleShowAdvanced"}}
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")}}
</a>

View File

@ -1,5 +1,5 @@
<div class="col first status">
<span class="{{statusColorClasses}}">{{model.status}}</span>
<span class={{statusColorClasses}}>{{model.status}}</span>
</div>
<div class="col event-id">{{model.id}}</div>
<div class="col timestamp">{{createdAt}}</div>

View File

@ -7,7 +7,7 @@
{{#link-to 'adminUser' user.id user.username class="flag-user-username"}}
{{user.username}}
{{/link-to}}
<div class='flag-user-date' title='{{raw-date date}}'>
<div class='flag-user-date' title={{raw-date date}}>
{{format-age date}}
</div>
</div>

View File

@ -1,5 +1,5 @@
{{radio-button name="install-items" id=value value=value selection=selection}}
<label class="radio" for="{{value}}">
<label class="radio" for={{value}}>
{{#if showIcon}}
{{d-icon 'plus'}}
{{/if}}

View File

@ -15,7 +15,7 @@
<div class='admin-footer'>
<div class='status-actions'>
{{#unless model.changed}}
<a class='preview-link' href={{previewUrl}} rel="noopener" target='_blank' title="{{i18n 'admin.customize.explain_preview'}}">
<a class='preview-link' href={{previewUrl}} rel="noopener" target='_blank' title={{i18n 'admin.customize.explain_preview'}}>
{{i18n 'admin.customize.preview'}}
</a>
{{/unless}}

View File

@ -63,16 +63,16 @@
{{#if model.remote_theme.remote_url}}
{{#if sourceIsHttp}}
<a class="remote-url" href="{{model.remote_theme.remote_url}}">{{i18n "admin.customize.theme.source_url"}}{{d-icon "link"}}</a>
<a class="remote-url" href={{model.remote_theme.remote_url}}>{{i18n "admin.customize.theme.source_url"}}{{d-icon "link"}}</a>
{{else}}
<div class="remote-url"><code>{{model.remote_theme.remote_url}}</code></div>
{{/if}}
{{/if}}
{{#if model.remote_theme.about_url}}
<a class="url about-url" href="{{model.remote_theme.about_url}}">{{i18n "admin.customize.theme.about_theme"}}{{d-icon "link"}}</a>
<a class="url about-url" href={{model.remote_theme.about_url}}>{{i18n "admin.customize.theme.about_theme"}}{{d-icon "link"}}</a>
{{/if}}
{{#if model.remote_theme.license_url}}
<a class="url license-url" href="{{model.remote_theme.license_url}}">{{i18n "admin.customize.theme.license"}}{{d-icon "link"}}</a>
<a class="url license-url" href={{model.remote_theme.license_url}}>{{i18n "admin.customize.theme.license"}}{{d-icon "link"}}</a>
{{/if}}
{{#if model.description}}
@ -109,7 +109,7 @@
{{#if model.remote_theme.commits_behind}}
{{i18n 'admin.customize.theme.commits_behind' count=model.remote_theme.commits_behind}}
{{#if model.remote_theme.github_diff_link}}
<a href="{{model.remote_theme.github_diff_link}}">
<a href={{model.remote_theme.github_diff_link}}>
{{i18n 'admin.customize.theme.compare_commits'}}
</a>
{{/if}}
@ -241,7 +241,7 @@
</div>
{{/if}}
<a href='{{previewUrl}}' title="{{i18n 'admin.customize.explain_preview'}}" rel="noopener" target='_blank' class='btn btn-default'>{{d-icon 'desktop'}}{{i18n 'admin.customize.theme.preview'}}</a>
<a href={{previewUrl}} title={{i18n 'admin.customize.explain_preview'}} rel="noopener" target='_blank' class='btn btn-default'>{{d-icon 'desktop'}}{{i18n 'admin.customize.theme.preview'}}</a>
<a class="btn btn-default export" rel="noopener" target="_blank" href={{downloadUrl}}>{{d-icon "download"}} {{i18n 'admin.export_json.button_text'}}</a>
{{d-button action=(action "switchType") label="admin.customize.theme.convert" icon=convertIcon class="btn-default btn-normal" title=convertTooltip}}

View File

@ -5,7 +5,7 @@
<div class="period-section">
<div class="section-title">
<h2>
<a href="{{get-url '/admin/dashboard/reports'}}">
<a href={{get-url '/admin/dashboard/reports'}}>
{{i18n "admin.dashboard.community_health"}}
</a>
</h2>

View File

@ -4,7 +4,7 @@
<div class="moderators-activity section">
<div class="section-title">
<h2>
<a href="{{get-url '/admin/reports/moderators_activity'}}">
<a href={{get-url '/admin/reports/moderators_activity'}}>
{{i18n "admin.dashboard.moderators_activity"}}
</a>
</h2>

View File

@ -42,7 +42,7 @@
</td>
<td>
{{#if email.post_url}}
<a href="{{email.post_url}}">{{email.subject}}</a>
<a href={{email.post_url}}>{{email.subject}}</a>
{{else}}
{{email.subject}}
{{/if}}

View File

@ -36,7 +36,7 @@
<td>{{l.email_type}}</td>
<td class='post-link'>
{{#if l.post_url}}
<a href="{{l.post_url}}">{{l.post_description}}</a>
<a href={{l.post_url}}>{{l.post_description}}</a>
<span class='reply-key'>{{l.reply_key}}</span>
{{else}}
<span class='reply-key'>{{l.reply_key}}</span>

View File

@ -33,7 +33,7 @@
<td>{{l.email_type}}</td>
<td>
{{#if l.post_url}}
<a href="{{l.post_url}}">{{l.skipped_reason}}</a>
<a href={{l.post_url}}>{{l.skipped_reason}}</a>
{{else}}
{{l.skipped_reason}}
{{/if}}

View File

@ -18,7 +18,7 @@
<tbody>
{{#each sortedEmojis as |e|}}
<tr>
<th><img class="emoji emoji-custom" src="{{unbound e.url}}" title="{{unbound e.name}}"></th>
<th><img class="emoji emoji-custom" src={{unbound e.url}} title={{unbound e.name}}></th>
<th>:{{e.name}}:</th>
<th>
{{d-button

View File

@ -65,7 +65,7 @@
{{#link-to 'adminUser' item.acting_user}}{{avatar item.acting_user imageSize="tiny"}}{{/link-to}}
<a href {{action "filterByStaffUser" item.acting_user}}>{{item.acting_user.username}}</a>
{{else}}
<span class="deleted-user" title="{{i18n 'admin.user.deleted'}}">
<span class="deleted-user" title={{i18n 'admin.user.deleted'}}>
{{d-icon "far-trash-alt"}}
</span>
{{/if}}

View File

@ -11,7 +11,7 @@
{{#each themes as |theme|}}
<div class="popular-theme-item">
<div class="popular-theme-name">
<a href="{{theme.meta_url}}" rel="noopener" target="_blank">
<a href={{theme.meta_url}} rel="noopener" target="_blank">
{{#if theme.component}}
{{d-icon 'puzzle-piece' title='admin.customize.theme.component'}}
{{/if}}
@ -33,7 +33,7 @@
action=(action "installThemeFromList" theme.value)}}
{{#if theme.preview}}
<a href="{{theme.preview}}" rel="noopener" target="_blank">{{d-icon "desktop"}} {{I18n "admin.customize.theme.preview"}}</a>
<a href={{theme.preview}} rel="noopener" target="_blank">{{d-icon "desktop"}} {{I18n "admin.customize.theme.preview"}}</a>
{{/if}}
{{/if}}
</div>

View File

@ -2,7 +2,7 @@
<div class="popular-theme-name">
{{theme.name}}
{{#if theme.preview}}
<a href="{{theme.preview}}" title="Preview" rel="noopener" target="_blank">{{d-icon "far-eye"}}</a>
<a href={{theme.preview}} title="Preview" rel="noopener" target="_blank">{{d-icon "far-eye"}}</a>
{{/if}}
</div>
<div class="popular-theme-buttons">

View File

@ -27,22 +27,22 @@
<td class="col first url">{{pl.url}}</td>
<td class="col topic">
{{#if pl.topic_id}}
<a href='{{unbound pl.topic_url}}'>{{pl.topic_title}}</a>
<a href={{unbound pl.topic_url}}>{{pl.topic_title}}</a>
{{/if}}
</td>
<td class="col post">
{{#if pl.post_id}}
<a href='{{unbound pl.post_url}}'>#{{pl.post_number}} {{pl.post_topic_title}}</a>
<a href={{unbound pl.post_url}}>#{{pl.post_number}} {{pl.post_topic_title}}</a>
{{/if}}
</td>
<td class="col category">
{{#if pl.category_id}}
<a href='{{unbound pl.category_url}}'>{{pl.category_name}}</a>
<a href={{unbound pl.category_url}}>{{pl.category_name}}</a>
{{/if}}
</td>
<td class="col external_url">
{{#if pl.external_url}}
<a href='{{unbound pl.external_url}}'>{{pl.external_url}}</a>
<a href={{unbound pl.external_url}}>{{pl.external_url}}</a>
{{/if}}
</td>
<td class="col action">

View File

@ -23,14 +23,14 @@
{{#each model.search_result.posts as |result|}}
<div class='fps-result'>
<div class='author'>
<a href={{result.userPath}} data-user-card="{{unbound result.username}}">
<a href={{result.userPath}} data-user-card={{unbound result.username}}>
{{avatar result imageSize="large"}}
</a>
</div>
<div class='fps-topic'>
<div class='topic'>
<a class='search-link' href='{{unbound result.url}}'>
<a class='search-link' href={{unbound result.url}}>
{{topic-status topic=result.topic disableActions=true}}<span class='topic-title'>{{#highlight-text highlight=term}}{{{unbound result.topic.fancyTitle}}}{{/highlight-text}}</span>
</a>

View File

@ -16,7 +16,7 @@
<div class="admin-nav pull-left">
<ul class="nav nav-stacked">
{{#each visibleSiteSettings as |category|}}
<li class="{{category.nameKey}}">
<li class={{category.nameKey}}>
{{#link-to 'adminSiteSettingsCategory' category.nameKey class=category.nameKey}}
{{category.name}}
{{#if category.count}}<span class="count">({{category.count}})</span>{{/if}}

View File

@ -55,7 +55,7 @@
</td>
<td class='reason'>
{{#if userBadge.postUrl}}
<a href="{{unbound userBadge.postUrl}}">{{userBadge.topic_title}}</a>
<a href={{unbound userBadge.postUrl}}>{{userBadge.topic_title}}</a>
{{/if}}
</td>
<td>{{age-with-tooltip userBadge.granted_at}}</td>

View File

@ -97,7 +97,7 @@
</div>
<div class="display-row bounce-score">
<div class="field"><a href="{{model.bounceLink}}">{{i18n "admin.user.bounce_score"}}</a></div>
<div class="field"><a href={{model.bounceLink}}>{{i18n "admin.user.bounce_score"}}</a></div>
<div class="value">{{model.bounceScore}}</div>
<div class="controls">
{{#if model.canResetBounceScore}}

View File

@ -40,7 +40,7 @@
{{#each model as |user|}}
<tr class="user {{user.selected}} {{unless user.active 'not-activated'}}">
<td class="username">
<a href="{{unbound user.path}}" data-user-card="{{unbound user.username}}">
<a href={{unbound user.path}} data-user-card={{unbound user.username}}>
{{avatar user imageSize="small"}}
</a>
{{#link-to 'adminUser' user}}{{unbound user.username}}{{/link-to}}

View File

@ -9,7 +9,7 @@
<div class="admin-nav pull-left">
<ul class="nav nav-stacked">
{{#each model as |action|}}
<li class="{{action.nameKey}}">
<li class={{action.nameKey}}>
{{#link-to 'adminWatchedWords.action' action.nameKey}}
{{action.name}}
{{#if action.count}}<span class="count">({{action.count}})</span>{{/if}}

View File

@ -52,7 +52,7 @@
{{#unless canLoadMore}}
{{#if canShowOthers}}
<div class='clearfix'>
<a class='btn' href='{{model.url}}'>{{i18n 'badges.others_count' count=othersCount}}</a>
<a class='btn' href={{model.url}}>{{i18n 'badges.others_count' count=othersCount}}</a>
</div>
{{/if}}
{{/unless}}

View File

@ -1,8 +1,8 @@
{{#each usersTemplates as |userTemplate|}}
<div data-username="{{userTemplate.username}}" class="user-info small">
<div data-username={{userTemplate.username}} class="user-info small">
<div class="user-image">
<div class="user-image-inner">
<a href="{{userTemplate.userPath}}" data-user-card="{{userTemplate.username}}">
<a href={{userTemplate.userPath}} data-user-card={{userTemplate.username}}>
{{{userTemplate.avatar}}}
</a>
</div>
@ -10,7 +10,7 @@
<div class="user-detail">
<div class="name-line">
<span class="username">
<a href="{{userTemplate.userPath}}" data-user-card="{{userTemplate.username}}">
<a href={{userTemplate.userPath}} data-user-card={{userTemplate.username}}>
{{userTemplate.username}}
</a>
</span>

View File

@ -1,4 +1,4 @@
<label class="btn btn-default btn-icon-text" disabled={{uploading}} title="{{i18n 'user.change_avatar.upload_title'}}">
<label class="btn btn-default btn-icon-text" disabled={{uploading}} title={{i18n 'user.change_avatar.upload_title'}}>
{{d-icon "far-image"}}
{{#if uploading}}
{{i18n 'uploading'}} {{uploadProgress}}%

View File

@ -1,4 +1,4 @@
<label class="btn" disabled={{uploading}} title="{{i18n 'admin.backups.upload.title'}}">
<label class="btn" disabled={{uploading}} title={{i18n 'admin.backups.upload.title'}}>
{{d-icon "upload"}}&nbsp;{{uploadButtonText}}
<input class="hidden-upload-field" disabled={{uploading}} type="file" accept=".gz">
</label>

View File

@ -1,5 +1,5 @@
{{d-icon topicStatusIcon}}
<a class='title' href="{{unbound topic.lastUnreadUrl}}">
<a class='title' href={{unbound topic.lastUnreadUrl}}>
{{text-overflow class="overflow" text=topic.fancyTitle}}
</a>

View File

@ -7,7 +7,7 @@
{{latest-topic-list-item topic=t}}
{{/each}}
<div class="more-topics">
<a href="{{get-url (concat '/' filter)}}" class="btn btn-default pull-right">{{i18n "more"}}</a>
<a href={{get-url (concat '/' filter)}} class="btn btn-default pull-right">{{i18n "more"}}</a>
</div>
{{else}}
<div class='no-topics'>

View File

@ -1,6 +1,6 @@
{{#if category.unreadTopics}}
<a href="{{unbound category.unreadUrl}}" class='badge new-posts badge-notification' title='{{i18n 'topic.unread_topics' count=category.unreadTopics}}'>{{i18n 'filters.unread.lower_title_with_count' count=category.unreadTopics}}</a>
<a href={{unbound category.unreadUrl}} class='badge new-posts badge-notification' title={{i18n 'topic.unread_topics' count=category.unreadTopics}}>{{i18n 'filters.unread.lower_title_with_count' count=category.unreadTopics}}</a>
{{/if}}
{{#if category.newTopics}}
<a href="{{unbound category.newUrl}}" class='badge new-posts badge-notification' title='{{i18n 'topic.new_topics' count=category.newTopics}}'>{{i18n 'filters.new.lower_title_with_count' count=category.newTopics}}</a>
<a href={{unbound category.newUrl}} class='badge new-posts badge-notification' title={{i18n 'topic.new_topics' count=category.newTopics}}>{{i18n 'filters.new.lower_title_with_count' count=category.newTopics}}</a>
{{/if}}

View File

@ -5,7 +5,7 @@
<div id="banner-content">
{{{content}}}
{{#if currentUser.staff}}
<p><a href="{{banner.url}}">{{{i18n "banner.edit"}}}</a></p>
<p><a href={{banner.url}}>{{{i18n "banner.edit"}}}</a></p>
{{/if}}
</div>
</div>

View File

@ -13,7 +13,7 @@
{{#unless showPositionInput}}
<section class='field'>
{{i18n 'category.position_disabled'}}
<a href="{{get-url '/admin/site_settings/category/basic'}}">{{i18n 'category.position_disabled_click'}}</a>
<a href={{get-url '/admin/site_settings/category/basic'}}>{{i18n 'category.position_disabled_click'}}</a>
</section>
{{/unless}}
@ -261,7 +261,7 @@
{{#unless emailInEnabled}}
<section class='field'>
{{i18n 'category.email_in_disabled'}}
<a href="{{get-url '/admin/site_settings/category/email'}}">{{i18n 'category.email_in_disabled_click'}}</a>
<a href={{get-url '/admin/site_settings/category/email'}}>{{i18n 'category.email_in_disabled_click'}}</a>
</section>
{{/unless}}

View File

@ -1 +1 @@
<a href {{action "select"}} class="{{if active 'active'}}">{{title}}</a>
<a href {{action "select"}} class={{if active 'active'}}>{{title}}</a>

View File

@ -1,12 +1,12 @@
{{raw "topic-status" topic=topic}}
<a class='title' href="{{unbound topic.lastUnreadUrl}}">{{{unbound topic.fancyTitle}}}</a>
<a class='title' href={{unbound topic.lastUnreadUrl}}>{{{unbound topic.fancyTitle}}}</a>
{{topic-post-badges newPosts=topic.totalUnread unseen=topic.unseen url=topic.lastUnreadUrl}}
{{#if latestTopicOnly}}
<div class='last-user-info'>
{{i18n 'categories.latest_by'}} <a href="{{{unbound topic.lastPosterUrl}}}">{{unbound topic.last_poster.username}}</a>
<a href="{{unbound topic.lastPostUrl}}">{{format-age topic.last_posted_at}}</a>
{{i18n 'categories.latest_by'}} <a href={{{unbound topic.lastPosterUrl}}}>{{unbound topic.last_poster.username}}</a>
<a href={{unbound topic.lastPostUrl}}>{{format-age topic.last_posted_at}}</a>
</div>
{{else}}
<a href="{{unbound topic.lastPostUrl}}" class="last-posted-at">{{format-age topic.last_posted_at}}</a>
<a href={{unbound topic.lastPostUrl}} class="last-posted-at">{{format-age topic.last_posted_at}}</a>
{{/if}}

View File

@ -1,7 +1,7 @@
<div>
<form action='//google.com/search' id='google-search'>
<input type="text" name="q" value="{{searchTerm}}">
<input type='hidden' name="as_sitesearch" value="{{siteUrl}}">
<input type="text" name="q" value={{searchTerm}}>
<input type='hidden' name="as_sitesearch" value={{siteUrl}}>
<button class="btn btn-primary">{{i18n 'search.search_google_button'}}</button>
</form>
</div>

View File

@ -3,7 +3,7 @@
<div class="card-row first-row">
<div class="group-card-avatar">
<a href="{{groupPath}}" {{action "showGroup" group}} class="card-huge-avatar">
<a href={{groupPath}} {{action "showGroup" group}} class="card-huge-avatar">
{{avatar-flair
flairURL=group.flair_url
flairBgColor=group.flair_bg_color
@ -13,8 +13,8 @@
</div>
<div class="names">
<span>
<h1 class="{{group.name}}">
<a href="{{groupPath}}" {{action "showGroup" group}} class='group-page-link'>{{group.name}}</a>
<h1 class={{group.name}}>
<a href={{groupPath}} {{action "showGroup" group}} class='group-page-link'>{{group.name}}</a>
</h1>
{{#if group.full_name}}
<h2 class='full-name'>{{group.full_name}}</h2>
@ -74,7 +74,7 @@
<a href {{action 'showUser' user}} class="card-tiny-avatar">{{bound-avatar user "tiny"}}</a>
{{/each}}
{{#if showMoreMembers}}
<a href="{{groupPath}}" {{action "showGroup" group}} class="more-members-link"><span
<a href={{groupPath}} {{action "showGroup" group}} class="more-members-link"><span
class="more-members-count">+{{moreMembersCount}}
{{i18n "more"}}</span></a>
{{/if}}

View File

@ -35,7 +35,7 @@
<div class="avatar-flair-preview">
<div class="avatar-wrapper">
<img width="45" height="45" src="{{demoAvatarUrl}}" class="avatar actor">
<img width="45" height="45" src={{demoAvatarUrl}} class="avatar actor">
</div>
{{#if flairPreviewImage}}

View File

@ -1,5 +1,5 @@
<div class='clearfix info'>
<a href="{{unbound post.user.userUrl}}" data-user-card="{{unbound post.user.username}}" class='avatar-link'>
<a href={{unbound post.user.userUrl}} data-user-card={{unbound post.user.username}} class='avatar-link'>
{{avatar post.user imageSize="large" extraClasses="actor" ignoreTitle="true"}}
</a>
<span class='time'>{{format-date post.created_at leaveAgo="true"}}</span>
@ -19,7 +19,7 @@
</div>
{{/if}}
</div>
</div>
<div class='excerpt'>

View File

@ -1,4 +1,4 @@
<label class="btn" disabled={{uploading}} title="{{i18n "admin.site_settings.uploaded_image_list.upload.title"}}">
<label class="btn" disabled={{uploading}} title={{i18n "admin.site_settings.uploaded_image_list.upload.title"}}>
{{d-icon "far-image"}}&nbsp;{{uploadButtonText}}
<input class="hidden-upload-field" disabled={{uploading}} type="file" accept="image/*" multiple>
</label>

View File

@ -20,6 +20,6 @@
<div class='topic-stats'>
{{raw "list/posts-count-column" topic=topic tagName="div"}}
<div class="topic-last-activity">
<a href="{{topic.lastPostUrl}}" title="{{topic.bumpedAtTitle}}">{{format-date topic.bumpedAt format="tiny" noTitle="true"}}</a>
<a href={{topic.lastPostUrl}} title={{topic.bumpedAtTitle}}>{{format-date topic.bumpedAt format="tiny" noTitle="true"}}</a>
</div>
</div>

View File

@ -5,7 +5,7 @@
{{#if topic.unseen}}
<span class="badge-notification new-topic"></span>
{{/if}}
<span class="{{cold-age-class topic.last_posted_at}}" title='{{raw-date topic.last_posted_at}}'>{{{format-age topic.last_posted_at}}}</span>
<span class={{cold-age-class topic.last_posted_at}} title={{raw-date topic.last_posted_at}}>{{{format-age topic.last_posted_at}}}</span>
</div>
</td>
<td class='num posts'>{{raw "list/post-count-or-badges" topic=topic postBadgesEnabled="true"}}</td>

View File

@ -3,5 +3,5 @@
{{else if route}}
{{#link-to route}}{{contents}}{{/link-to}}
{{else}}
<a href="{{get-url path}}" data-auto-route="true">{{contents}}</a>
<a href={{get-url path}} data-auto-route="true">{{contents}}</a>
{{/if}}

View File

@ -1,4 +1,4 @@
<a href {{action "share" source}} title="{{unbound source.title}}" aria-label="{{unbound source.title}}" >
<a href {{action "share" source}} title={{unbound source.title}} aria-label={{unbound source.title}}>
{{#if source.icon}}
{{d-icon source.icon}}
{{else}}

View File

@ -1,9 +1,9 @@
{{#if unread }}
&nbsp;<a href='{{url}}' class='badge badge-notification unread' title='{{i18n "topic.unread_posts" count=unread}}'>{{unread}}</a>
&nbsp;<a href={{url}} class='badge badge-notification unread' title={{i18n "topic.unread_posts" count=unread}}>{{unread}}</a>
{{/if}}
{{#if newPosts}}
&nbsp;<a href='{{url}}' class='badge badge-notification new-posts' title='{{i18n "topic.total_unread_posts" count=newPosts}}'>{{newPosts}}</a>
&nbsp;<a href={{url}} class='badge badge-notification new-posts' title={{i18n "topic.total_unread_posts" count=newPosts}}>{{newPosts}}</a>
{{/if}}
{{#if unseen}}
&nbsp;<a href='{{url}}' class='badge badge-notification new-topic' title='{{i18n "topic.new"}}'>{{newDotText}}</a>
&nbsp;<a href={{url}} class='badge badge-notification new-topic' title={{i18n "topic.new"}}>{{newDotText}}</a>
{{/if}}

View File

@ -8,9 +8,9 @@
</div>
{{/if}}
<nav id='topic-progress' title="{{i18n 'topic.progress.title'}}" class="{{if hideProgress 'hidden'}}">
<nav id='topic-progress' title={{i18n 'topic.progress.title'}} class={{if hideProgress 'hidden'}}>
<div class='nums'>
<h4>{{progressPosition}}</h4><span class="{{if hugeNumberOfPosts 'hidden'}}">
<h4>{{progressPosition}}</h4><span class={{if hugeNumberOfPosts 'hidden'}}>
<span>/</span>
<h4>{{postStream.filteredPostsCount}}</h4></span>
</div>

View File

@ -1,10 +1,10 @@
{{#if showTopicTimer}}
<h3 class="topic-timer-heading">
<span title="{{title}}">
<span title={{title}}>
{{clockIcon}} {{notice}}
</span>
{{#if showTrashCan}}
<button class="btn topic-timer-remove no-text" title="{{trashCanTitle}}">
<button class="btn topic-timer-remove no-text" title={{trashCanTitle}}>
{{trashCanIcon}}
</button>
{{/if}}

View File

@ -1,4 +1,4 @@
<a href="{{badgeUrl}}">
<a href={{badgeUrl}}>
{{#badge-button badge=badge}}
{{#if showGrantCount}}
<span class="count">(&times;&nbsp;{{count}})</span>

View File

@ -25,7 +25,7 @@
{{#if user.profile_hidden}}
<span class="card-huge-avatar">{{bound-avatar user "huge"}}</span>
{{else}}
<a href="{{user.path}}" {{action "showUser" user}} class="card-huge-avatar">{{bound-avatar user "huge"}}</a>
<a href={{user.path}} {{action "showUser" user}} class="card-huge-avatar">{{bound-avatar user "huge"}}</a>
{{/if}}
{{#if user.primary_group_name}}
{{avatar-flair
@ -43,7 +43,7 @@
{{if nameFirst user.name (format-username username)}}
</span>
{{else}}
<a href="{{user.path}}" {{action "showUser" user}} class='user-profile-link'>
<a href={{user.path}} {{action "showUser" user}} class='user-profile-link'>
<span class="name-username-wrapper">
{{if nameFirst user.name (format-username username)}}
</span>

View File

@ -1,5 +1,5 @@
{{#if field.name}}
<label class="control-label" for="{{concat 'user-' elementId}}">
<label class="control-label" for={{concat 'user-' elementId}}>
{{{field.name}}} {{#if field.required}}<span class='required'>*</span>{{/if}}
</label>
{{/if}}

View File

@ -1,4 +1,4 @@
<label class="control-label" for="{{concat 'user-' elementId}}">{{{field.name}}} {{#if field.required}}<span class='required'>*</span>{{/if}}
<label class="control-label" for={{concat 'user-' elementId}}>{{{field.name}}} {{#if field.required}}<span class='required'>*</span>{{/if}}
</label>
<div class='controls'>
{{combo-box

View File

@ -1,4 +1,4 @@
<label class="control-label" for="{{concat 'user-' elementId}}">{{{field.name}}} {{#if field.required}}<span class='required'>*</span>{{/if}}
<label class="control-label" for={{concat 'user-' elementId}}>{{{field.name}}} {{#if field.required}}<span class='required'>*</span>{{/if}}
</label>
<div class='controls'>
{{input id=(concat 'user-' elementId) value=value maxlength=site.user_field_max_length}}

View File

@ -1,6 +1,6 @@
<div class="user-image">
<div class="user-image-inner">
<a href="{{unbound userPath}}" data-user-card="{{unbound user.username}}">{{avatar user imageSize="large"}}</a>
<a href={{unbound userPath}} data-user-card={{unbound user.username}}>{{avatar user imageSize="large"}}</a>
{{#if user.primary_group_name}}
{{avatar-flair
flairURL=user.primary_group_flair_url
@ -13,7 +13,7 @@
<div class="user-detail">
<div class='name-line'>
<span class="username"><a href="{{unbound userPath}}" data-user-card="{{unbound user.username}}">{{format-username user.username}}</a></span>
<span class="username"><a href={{unbound userPath}} data-user-card={{unbound user.username}}>{{format-username user.username}}</a></span>
<span class="name">{{unbound name}}</span>
</div>
<div class="title">{{unbound user.title}}</div>

View File

@ -35,7 +35,7 @@
<p class='excerpt'>{{actionDescription}}</p>
{{/if}}
<p class='excerpt' data-topic-id="{{item.topic_id}}" data-post-id="{{item.post_id}}" data-user-id="{{item.user_id}}">
<p class='excerpt' data-topic-id={{item.topic_id}} data-post-id={{item.post_id}} data-user-id={{item.user_id}}>
{{~#if item.expandedExcerpt}}
{{~{item.expandedExcerpt}~}}
{{else}}

View File

@ -6,4 +6,4 @@
{{/if}}
</span>
<br>
<a href="{{unbound url}}">{{{topic.fancyTitle}}}</a>
<a href={{unbound url}}>{{{topic.fancyTitle}}}</a>

View File

@ -138,7 +138,7 @@
disableSubmit=disableSubmit}}
{{#if site.mobileView}}
<a href {{action "cancel"}} class='cancel' tabindex="6" title="{{i18n 'cancel'}}">
<a href {{action "cancel"}} class='cancel' tabindex="6" title={{i18n 'cancel'}}>
{{#if canEdit}}
{{d-icon "times"}}
{{else}}
@ -171,11 +171,11 @@
{{/if}}
</div>
{{/if}}
<div id='draft-status' class="{{if isUploading 'hidden'}}">
<div id='draft-status' class={{if isUploading 'hidden'}}>
{{#if model.draftSaving}}<div class="spinner small"></div>{{/if}}
{{#if model.draftSaved}}{{d-icon 'check' class='save-animation'}}{{/if}}
{{#if model.draftStatus}}
<span title="{{model.draftStatus}}">
<span title={{model.draftStatus}}>
{{#if model.draftConflictUser}}
{{avatar model.draftConflictUser imageSize="small"}} {{d-icon 'user-edit'}}
{{else}}
@ -196,7 +196,7 @@
</a>
{{/if}}
<a href 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"}}
</a>
@ -213,7 +213,7 @@
{{else}}
<div class='saving-text'>
{{#if model.createdPost}}
{{i18n 'composer.saved'}} <a class='permalink' href="{{unbound createdPost.url}}" {{action "viewNewReply"}}>{{i18n 'composer.view_new_post'}}</a>
{{i18n 'composer.saved'}} <a class='permalink' href={{unbound createdPost.url}} {{action "viewNewReply"}}>{{i18n 'composer.view_new_post'}}</a>
{{else}}
{{i18n 'composer.saving'}} {{loading-spinner size="small"}}
{{/if}}

View File

@ -73,7 +73,7 @@
{{#each model.posts as |result|}}
<div class='fps-result'>
<div class='author'>
<a href={{result.userPath}} data-user-card="{{unbound result.username}}">
<a href={{result.userPath}} data-user-card={{unbound result.username}}>
{{avatar result imageSize="large"}}
</a>
</div>
@ -84,7 +84,7 @@
{{track-selected selectedList=selected selectedId=result.topic}}
{{/if}}
<a class='search-link' href='{{unbound result.url}}' {{action "logClick" result.topic_id}}>
<a class='search-link' href={{unbound result.url}} {{action "logClick" result.topic_id}}>
{{topic-status topic=result.topic disableActions=true showPrivateMessageIcon=true}}
<span class='topic-title'>{{#highlight-text highlight=q}}{{{unbound result.topic.fancyTitle}}}{{/highlight-text}}</span>
</a>

View File

@ -26,10 +26,10 @@
<div class="topic-excerpt">
{{{t.excerpt}}}
{{#if t.excerptTruncated}}
{{#unless t.canClearPin}}<a href="{{unbound t.url}}">{{i18n 'read_more'}}</a>{{/unless}}
{{#unless t.canClearPin}}<a href={{unbound t.url}}>{{i18n 'read_more'}}</a>{{/unless}}
{{/if}}
{{#if t.canClearPin}}
<a href {{action "clearPin" t}} title="{{i18n 'topic.clear_pin.help'}}">{{i18n 'topic.clear_pin.title'}}</a>
<a href {{action "clearPin" t}} title={{i18n 'topic.clear_pin.help'}}>{{i18n 'topic.clear_pin.title'}}</a>
{{/if}}
</div>
{{/if}}
@ -42,7 +42,7 @@
{{discourse-tags t mode="list" tagsForUser=tagsForUser}}
<div class="pull-right">
{{raw "list/activity-column" topic=t tagName="div" class="num activity last"}}
<a href="{{t.lastPostUrl}}" title='{{i18n 'last_post'}}: {{{raw-date t.bumped_at}}}'>{{t.last_poster_username}}</a>
<a href={{t.lastPostUrl}} title='{{i18n 'last_post'}}: {{{raw-date t.bumped_at}}}'>{{t.last_poster_username}}</a>
</div>
{{#unless hideCategory}}
<div class='category'>

View File

@ -61,14 +61,14 @@
</table>
<footer class="clearfix">
<figure title="{{i18n 'all_time_desc'}}">{{number c.topics_all_time}} <figcaption>{{i18n 'all_time'}}</figcaption></figure>
<figure title={{i18n 'all_time_desc'}}>{{number c.topics_all_time}} <figcaption>{{i18n 'all_time'}}</figcaption></figure>
{{#if c.pickMonth}}
<figure title="{{i18n 'month_desc'}}">{{number c.topics_month}} <figcaption>/ {{i18n 'month'}}</figcaption></figure>
<figure title={{i18n 'month_desc'}}>{{number c.topics_month}} <figcaption>/ {{i18n 'month'}}</figcaption></figure>
{{/if}}
{{#if c.pickWeek}}
<figure title="{{i18n 'week_desc'}}">{{number c.topics_week}} <figcaption>/ {{i18n 'week'}}</figcaption></figure>
<figure title={{i18n 'week_desc'}}>{{number c.topics_week}} <figcaption>/ {{i18n 'week'}}</figcaption></figure>
{{/if}}
</footer>

View File

@ -47,7 +47,7 @@
{{/unless}}
</div>
</div>
<div id="revisions" data-post-id="{{model.post_id}}" class={{hiddenClasses}}>
<div id="revisions" data-post-id={{model.post_id}} class={{hiddenClasses}}>
{{#if model.title_changes}}
<div class="row">
<h2>{{{titleDiff}}}</h2>
@ -109,7 +109,7 @@
<div id="revision-controls">
{{d-button class="btn-default" action=(action "loadFirstVersion") icon="fast-backward" title="post.revisions.controls.first" disabled=loadFirstDisabled}}
{{d-button class="btn-default" action=(action "loadPreviousVersion") icon="backward" title="post.revisions.controls.previous" disabled=loadPreviousDisabled}}
<div id="revision-numbers" class="{{unless displayRevisions 'invisible'}}">
<div id="revision-numbers" class={{unless displayRevisions 'invisible'}}>
{{#conditional-loading-spinner condition=loading size="small"}}
{{{revisionsText}}}
{{/conditional-loading-spinner}}

View File

@ -14,9 +14,9 @@
{{#each searchResults as |result|}}
<a
class="search-link"
href="{{result.url}}"
href={{result.url}}
onclick={{action "linkClick"}}
data-title="{{result.title}}">
data-title={{result.title}}>
{{topic-status topic=result disableActions=true}}
{{replace-emoji result.fancy_title}}
<div class="search-category">

View File

@ -7,7 +7,7 @@
</thead>
<tbody>
{{#each categoriesOrdered as |cat|}}
<tr data-category-id="{{cat.id}}">
<tr data-category-id={{cat.id}}>
<td>
<div class={{concat 'reorder-categories-depth-' cat.depth}}>
{{category-badge cat allowUncategorized="true"}}

View File

@ -11,7 +11,7 @@
<p>{{i18n 'login.not_approved'}}</p>
{{else}}
{{#unless redirected}}
<a class="btn" href="{{redirectHref}}" {{action "done"}}>{{continueButtonText}}</a>
<a class="btn" href={{redirectHref}} {{action "done"}}>{{continueButtonText}}</a>
{{/unless}}
{{/if}}
{{else}}

View File

@ -117,7 +117,7 @@
</td>
</tr>
{{else}}
<tr class="{{dasherize authProvider.method.name}}">
<tr class={{dasherize authProvider.method.name}}>
<td>{{authProvider.method.prettyName}}</td>
<td colspan=2>
{{#if authProvider.method.can_connect}}

View File

@ -4,7 +4,7 @@
<div class="controls tracking-controls">
<label>{{d-icon "d-watching"}} {{i18n 'user.watched_categories'}}</label>
{{#if canSee}}
<a class="show-tracking" href="{{unbound model.watchingTopicsPath}}">{{i18n 'user.tracked_topics_link'}}</a>
<a class="show-tracking" href={{unbound model.watchingTopicsPath}}>{{i18n 'user.tracked_topics_link'}}</a>
{{/if}}
{{category-selector
categories=model.watchedCategories
@ -18,7 +18,7 @@
<div class="controls tracking-controls">
<label>{{d-icon "d-tracking"}} {{i18n 'user.tracked_categories'}}</label>
{{#if canSee}}
<a class="show-tracking" href="{{unbound model.trackingTopicsPath}}">{{i18n 'user.tracked_topics_link'}}</a>
<a class="show-tracking" href={{unbound model.trackingTopicsPath}}>{{i18n 'user.tracked_topics_link'}}</a>
{{/if}}
{{category-selector
categories=model.trackedCategories
@ -43,7 +43,7 @@
<div class="controls tracking-controls">
<label>{{d-icon "d-muted"}} {{i18n 'user.muted_categories'}}</label>
{{#if canSee}}
<a class="show-tracking" href="{{unbound model.mutedTopicsPath}}">{{i18n 'user.tracked_topics_link'}}</a>
<a class="show-tracking" href={{unbound model.mutedTopicsPath}}>{{i18n 'user.tracked_topics_link'}}</a>
{{/if}}
{{category-selector
categories=model.mutedCategories

View File

@ -48,7 +48,7 @@
{{d-button action=(action "cancelEditingTopic") class="btn-default cancel-edit" icon="times"}}
{{#if canRemoveTopicFeaturedLink}}
<a href {{action "removeFeaturedLink"}} class="remove-featured-link" title="{{i18n "composer.remove_featured_link"}}">
<a href {{action "removeFeaturedLink"}} class="remove-featured-link" title={{i18n "composer.remove_featured_link"}}>
{{d-icon "times-circle"}}
{{featuredLinkDomain}}
</a>
@ -57,7 +57,7 @@
</div>
{{else}}
<h1 data-topic-id="{{unbound model.id}}">
<h1 data-topic-id={{unbound model.id}}>
{{#unless model.is_warning}}
{{#if siteSettings.enable_personal_messages}}
{{private-message-glyph
@ -73,13 +73,13 @@
{{#if model.details.loaded}}
{{topic-status topic=model}}
<a href="{{unbound model.url}}" {{action "jumpTop"}} class="fancy-title">
<a href={{unbound model.url}} {{action "jumpTop"}} class="fancy-title">
{{{model.fancyTitle}}}
</a>
{{/if}}
{{#if model.details.can_edit}}
<a href {{action "editTopic"}} class="edit-topic" title="{{i18n "edit"}}">{{d-icon "pencil-alt"}}</a>
<a href {{action "editTopic"}} class="edit-topic" title={{i18n "edit"}}>{{d-icon "pencil-alt"}}</a>
{{/if}}
</h1>
@ -170,7 +170,7 @@
{{/topic-navigation}}
<div class="row">
<section class="topic-area" id="topic" data-topic-id="{{unbound model.id}}">
<section class="topic-area" id="topic" data-topic-id={{unbound model.id}}>
<div class="posts-wrapper">
{{conditional-loading-spinner condition=model.postStream.loadingAbove}}

View File

@ -74,9 +74,9 @@
<td>{{number invite.user.posts_read_count}}</td>
<td>{{{format-duration invite.user.time_read}}}</td>
<td>
<span title="{{i18n 'user.invited.days_visited'}}">{{{unbound invite.user.days_visited}}}</span>
<span title={{i18n 'user.invited.days_visited'}}>{{{unbound invite.user.days_visited}}}</span>
/
<span title="{{i18n 'user.invited.account_age_days'}}">{{{unbound invite.user.days_since_created}}}</span>
<span title={{i18n 'user.invited.account_age_days'}}>{{{unbound invite.user.days_since_created}}}</span>
</td>
{{/if}}
{{else}}

View File

@ -86,8 +86,8 @@
<div class="primary-textual">
<div class="user-profile-names">
<h1 class="{{if nameFirst "full-name" "username"}}">{{if nameFirst model.name (format-username model.username)}} {{user-status model currentUser=currentUser}}</h1>
<h2 class="{{if nameFirst "username" "full-name"}}">{{#if nameFirst}}{{model.username}}{{else}}{{model.name}}{{/if}}</h2>
<h1 class={{if nameFirst "full-name" "username"}}>{{if nameFirst model.name (format-username model.username)}} {{user-status model currentUser=currentUser}}</h1>
<h2 class={{if nameFirst "username" "full-name"}}>{{#if nameFirst}}{{model.username}}{{else}}{{model.name}}{{/if}}</h2>
{{#if model.staged}}
<h2 class="staged">{{i18n 'user.staged'}}</h2>
{{/if}}

View File

@ -1,5 +1,5 @@
{{#each popular_components as |theme|}}
<a class="popular-theme-item" href="{{theme.meta_url}}" rel="noopener" target="_blank">
<a class="popular-theme-item" href={{theme.meta_url}} rel="noopener" target="_blank">
{{theme.name}}
</a>
{{/each}}