Revert "DEV: enforces ember-template-lint: no-triple-curlies (#9150)"

This reverts commit d436b600fba4cea846a5e96c235c507441965e05.

Triple curlies are still necessary for some raw templates.
This commit is contained in:
romanrizzi 2020-03-10 15:00:12 -03:00
parent 74acbad505
commit f795c1b8e8
152 changed files with 284 additions and 345 deletions

View File

@ -11,7 +11,6 @@ module.exports = {
"no-unnecessary-concat": true, "no-unnecessary-concat": true,
"no-unused-block-params": true, "no-unused-block-params": true,
"no-unbound": true, "no-unbound": true,
"simple-unless": true, "simple-unless": true
"no-triple-curlies": true
} }
}; };

View File

@ -9,11 +9,11 @@
{{icon-or-image model}} {{icon-or-image model}}
<span class="badge-display-name">{{model.name}}</span> <span class="badge-display-name">{{model.name}}</span>
{{else}} {{else}}
<span class='badge-placeholder'>{{i18n 'admin.badges.mass_award.no_badge_selected'}}</span> <span class='badge-placeholder'>{{I18n 'admin.badges.mass_award.no_badge_selected'}}</span>
{{/if}} {{/if}}
</div> </div>
<div> <div>
<h4>{{i18n 'admin.badges.mass_award.upload_csv'}}</h4> <h4>{{I18n 'admin.badges.mass_award.upload_csv'}}</h4>
<input type='file' id='massAwardCSVUpload' accept='.csv'> <input type='file' id='massAwardCSVUpload' accept='.csv'>
</div> </div>
<div> <div>
@ -34,6 +34,6 @@
{{/link-to}} {{/link-to}}
</form> </form>
{{else}} {{else}}
<span class='badge-required'>{{i18n 'admin.badges.mass_award.no_badge_selected'}}</span> <span class='badge-required'>{{I18n 'admin.badges.mass_award.no_badge_selected'}}</span>
{{/if}} {{/if}}
{{/d-section}} {{/d-section}}

View File

@ -7,7 +7,7 @@
{{#each badgeIntroLinks as |link|}} {{#each badgeIntroLinks as |link|}}
<a href={{link.href}} class="external-link" target="_blank" rel="noopener"> <a href={{link.href}} class="external-link" target="_blank" rel="noopener">
{{d-icon link.icon}} {{d-icon link.icon}}
<span>{{i18n link.text}}</span> <span>{{I18n link.text}}</span>
</a> </a>
{{/each}} {{/each}}
</div> </div>

View File

@ -15,7 +15,7 @@
{{#if backupStats.last_backup_taken_at}} {{#if backupStats.last_backup_taken_at}}
<br> <br>
{{i18n "admin.dashboard.lastest_backup" date=(format-date backupStats.last_backup_taken_at leaveAgo="true")}} {{{i18n "admin.dashboard.lastest_backup" date=(format-date backupStats.last_backup_taken_at leaveAgo="true")}}}
{{/if}} {{/if}}
</p> </p>
</div> </div>

View File

@ -1 +1 @@
{{html-safe formatedValue}} {{{formatedValue}}}

View File

@ -199,6 +199,6 @@
{{/conditional-loading-section}} {{/conditional-loading-section}}
{{else}} {{else}}
<div class="alert alert-info"> <div class="alert alert-info">
{{html-safe disabledLabel}} {{{disabledLabel}}}
</div> </div>
{{/if}} {{/if}}

View File

@ -46,7 +46,7 @@
<div class="form-display"> <div class="form-display">
<strong>{{userField.name}}</strong> <strong>{{userField.name}}</strong>
<br> <br>
{{html-safe userField.description}} {{{userField.description}}}
</div> </div>
<div class="form-display">{{fieldName}}</div> <div class="form-display">{{fieldName}}</div>
<div class="form-element controls"> <div class="form-element controls">

View File

@ -1,7 +1,7 @@
<div class='penalty-post-controls'> <div class='penalty-post-controls'>
<label> <label>
<div class='penalty-post-label'> <div class='penalty-post-label'>
{{i18n 'admin.user.penalty_post_actions'}} {{{i18n 'admin.user.penalty_post_actions'}}}
</div> </div>
</label> </label>
{{combo-box {{combo-box

View File

@ -1,7 +1,7 @@
<div class='reason-controls'> <div class='reason-controls'>
<label> <label>
<div class='silence-reason-label'> <div class='silence-reason-label'>
{{i18n 'admin.user.silence_reason_label'}} {{{i18n 'admin.user.silence_reason_label'}}}
</div> </div>
</label> </label>
{{text-field {{text-field

View File

@ -1,5 +1,5 @@
<label> <label>
{{input type="checkbox" checked=enabled}} {{input type="checkbox" checked=enabled}}
<span>{{html-safe setting.description}}</span> <span>{{{setting.description}}}</span>
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
</label> </label>

View File

@ -3,5 +3,5 @@
onChange=(action "onChangeSelectedCategories") onChange=(action "onChangeSelectedCategories")
}} }}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}

View File

@ -4,4 +4,4 @@
onChange=(action (mut value)) onChange=(action (mut value))
}} }}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -6,4 +6,4 @@
onChangeColor=(action "onChangeColor") onChangeColor=(action "onChangeColor")
}} }}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class="desc">{{html-safe setting.description}}</div> <div class="desc">{{{setting.description}}}</div>

View File

@ -8,4 +8,4 @@
}} }}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -15,5 +15,5 @@
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'> <div class='desc'>
{{html-safe setting.description}} {{{setting.description}}}
</div> </div>

View File

@ -7,4 +7,4 @@
onChange=(action "onChangeGroupListSetting") onChange=(action "onChangeGroupListSetting")
}} }}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -1,3 +1,3 @@
{{value-list values=value addKey="admin.site_settings.add_host"}} {{value-list values=value addKey="admin.site_settings.add_host"}}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -1,3 +1,3 @@
{{value-list values=value inputDelimiter="|" choices=setting.choices}} {{value-list values=value inputDelimiter="|" choices=setting.choices}}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -1,3 +1,3 @@
{{secret-value-list setting=setting values=value isSecret=isSecret}} {{secret-value-list setting=setting values=value isSecret=isSecret}}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -7,4 +7,4 @@
{{/if}} {{/if}}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -1,3 +1,3 @@
{{tag-chooser tags=selectedTags}} {{tag-chooser tags=selectedTags}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}

View File

@ -1,2 +1,2 @@
{{site-settings-image-uploader imageUrl=value placeholderUrl=setting.placeholder type="site_setting"}} {{site-settings-image-uploader imageUrl=value placeholderUrl=setting.placeholder type="site_setting"}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -1,2 +1,2 @@
{{d-button label="admin.site_settings.uploaded_image_list.label" action=(action "showUploadModal") actionParam=(hash value=value setting=setting)}} {{d-button label="admin.site_settings.uploaded_image_list.label" action=(action "showUploadModal") actionParam=(hash value=value setting=setting)}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -1,3 +1,3 @@
{{value-list values=value addKey="admin.site_settings.add_url"}} {{value-list values=value addKey="admin.site_settings.add_url"}}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -1,3 +1,3 @@
{{value-list values=value}} {{value-list values=value}}
{{setting-validation-message message=validationMessage}} {{setting-validation-message message=validationMessage}}
<div class='desc'>{{html-safe setting.description}}</div> <div class='desc'>{{{setting.description}}}</div>

View File

@ -2,9 +2,9 @@
<label> <label>
<div class='suspend-reason-label'> <div class='suspend-reason-label'>
{{#if siteSettings.hide_suspension_reasons}} {{#if siteSettings.hide_suspension_reasons}}
{{i18n 'admin.user.suspend_reason_hidden_label'}} {{{i18n 'admin.user.suspend_reason_hidden_label'}}}
{{else}} {{else}}
{{i18n 'admin.user.suspend_reason_label'}} {{{i18n 'admin.user.suspend_reason_label'}}}
{{/if}} {{/if}}
</div> </div>
</label> </label>

View File

@ -28,14 +28,14 @@
{{#if displayComponents}} {{#if displayComponents}}
<div class="components-list"> <div class="components-list">
<span class="components">{{html-safe childrenString}}</span> <span class="components">{{{childrenString}}}</span>
{{#if displayHasMore}} {{#if displayHasMore}}
<a href {{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}}
</a> </a>
{{/if}} {{/if}}

View File

@ -25,9 +25,9 @@
<div class="themes-list-item inactive-indicator"> <div class="themes-list-item inactive-indicator">
<span class="empty"> <span class="empty">
{{#if themesTabActive}} {{#if themesTabActive}}
{{i18n "admin.customize.theme.inactive_themes"}} {{I18n "admin.customize.theme.inactive_themes"}}
{{else}} {{else}}
{{i18n "admin.customize.theme.inactive_components"}} {{I18n "admin.customize.theme.inactive_components"}}
{{/if}} {{/if}}
</span> </span>
</div> </div>
@ -41,7 +41,7 @@
{{/if}} {{/if}}
{{else}} {{else}}
<div class="themes-list-item"> <div class="themes-list-item">
<span class="empty">{{i18n "admin.customize.theme.empty"}}</span> <span class="empty">{{I18n "admin.customize.theme.empty"}}</span>
</div> </div>
{{/if}} {{/if}}

View File

@ -1,7 +1,7 @@
<div class="themes-intro admin-intro"> <div class="themes-intro admin-intro">
<img src={{womanArtistEmojiURL}}> <img src={{womanArtistEmojiURL}}>
<div class="content-wrapper"> <div class="content-wrapper">
<h1>{{i18n "admin.customize.theme.themes_intro"}}</h1> <h1>{{I18n "admin.customize.theme.themes_intro"}}</h1>
<div class="create-actions"> <div class="create-actions">
{{d-button action=(route-action "installModal") icon="upload" label="admin.customize.install" class="btn-primary"}} {{d-button action=(route-action "installModal") icon="upload" label="admin.customize.install" class="btn-primary"}}
</div> </div>
@ -9,7 +9,7 @@
{{#each externalResources as |resource|}} {{#each externalResources as |resource|}}
<a href={{resource.link}} class="external-link" rel="noopener" target="_blank"> <a href={{resource.link}} class="external-link" rel="noopener" target="_blank">
{{d-icon resource.icon}} {{d-icon resource.icon}}
{{i18n resource.key}} {{I18n resource.key}}
</a> </a>
{{/each}} {{/each}}
</div> </div>

View File

@ -89,7 +89,7 @@
{{#if showRemoteError}} {{#if showRemoteError}}
<div class="error-message"> <div class="error-message">
{{d-icon "exclamation-triangle"}} {{i18n "admin.customize.theme.repo_unreachable"}} {{d-icon "exclamation-triangle"}} {{I18n "admin.customize.theme.repo_unreachable"}}
</div> </div>
<div class="raw-error"> <div class="raw-error">
<code>{{model.remoteError}}</code> <code>{{model.remoteError}}</code>

View File

@ -12,7 +12,7 @@
<div class="problem-messages"> <div class="problem-messages">
<ul> <ul>
{{#each problems as |problem|}} {{#each problems as |problem|}}
<li>{{html-safe problem}}</li> <li>{{{problem}}}</li>
{{/each}} {{/each}}
</ul> </ul>
</div> </div>

View File

@ -142,7 +142,7 @@
filters=trendingSearchFilters filters=trendingSearchFilters
isEnabled=logSearchQueriesEnabled isEnabled=logSearchQueriesEnabled
disabledLabel=trendingSearchDisabledLabel}} disabledLabel=trendingSearchDisabledLabel}}
{{i18n "admin.dashboard.reports.trending_search.more" basePath=basePath}} {{{i18n "admin.dashboard.reports.trending_search.more" basePath=basePath}}}
</div> </div>
</div> </div>

View File

@ -14,13 +14,13 @@
<hr> <hr>
<div class="text"> <div class="text">
<h3>{{i18n 'admin.email.advanced_test.text'}}</h3> <h3>{{i18n 'admin.email.advanced_test.text'}}</h3>
<pre class="full-reason">{{html-safe text}}</pre> <pre class="full-reason">{{{text}}}</pre>
</div> </div>
<hr> <hr>
<div class="elided"> <div class="elided">
<h3>{{i18n 'admin.email.advanced_test.elided'}}</h3> <h3>{{i18n 'admin.email.advanced_test.elided'}}</h3>
<pre class="full-reason">{{html-safe elided}}</pre> <pre class="full-reason">{{{elided}}}</pre>
</div> </div>
{{/if}} {{/if}}

View File

@ -53,7 +53,7 @@
<iframe srcdoc={{model.html_content}} /> <iframe srcdoc={{model.html_content}} />
{{/if}} {{/if}}
{{else}} {{else}}
<pre>{{html-safe model.text_content}}</pre> <pre>{{{model.text_content}}}</pre>
{{/if}} {{/if}}
</div> </div>
</div> </div>

View File

@ -23,7 +23,7 @@
{{#if showSecondary}} {{#if showSecondary}}
<div class='embedding-secondary'> <div class='embedding-secondary'>
<p>{{i18n "admin.embedding.sample"}}</p> <p>{{{i18n "admin.embedding.sample"}}}</p>
{{highlighted-code code=embeddingCode lang="html"}} {{highlighted-code code=embeddingCode lang="html"}}
</div> </div>

View File

@ -88,7 +88,7 @@
<td class="col value created-at">{{age-with-tooltip item.created_at}}</td> <td class="col value created-at">{{age-with-tooltip item.created_at}}</td>
<td class="col value details"> <td class="col value details">
<div> <div>
{{html-safe item.formattedDetails}} {{{item.formattedDetails}}}
{{#if item.useCustomModalForDetails}} {{#if item.useCustomModalForDetails}}
<a href {{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}}

View File

@ -17,9 +17,9 @@
{{else}} {{else}}
<p class="grant-count"> <p class="grant-count">
{{#if count}} {{#if count}}
{{i18n "admin.badges.preview.grant_count" count=count}} {{{i18n "admin.badges.preview.grant_count" count=count}}}
{{else}} {{else}}
{{i18n "admin.badges.preview.no_grant_count"}} {{{i18n "admin.badges.preview.no_grant_count"}}}
{{/if}} {{/if}}
</p> </p>
@ -41,14 +41,14 @@
</p> </p>
<ul> <ul>
{{#each processedSample as |html|}} {{#each processedSample as |html|}}
<li>{{html-safe html}}</li> <li>{{{html}}}</li>
{{/each}} {{/each}}
</ul> </ul>
{{/if}} {{/if}}
{{#if hasQueryPlan}} {{#if hasQueryPlan}}
<div class="badge-query-plan"> <div class="badge-query-plan">
{{html-safe queryPlanHtml}} {{{queryPlanHtml}}}
</div> </div>
{{/if}} {{/if}}
{{/if}} {{/if}}

View File

@ -24,7 +24,7 @@
<div class="popular-theme-buttons"> <div class="popular-theme-buttons">
{{#if theme.installed}} {{#if theme.installed}}
<span>{{i18n "admin.customize.theme.installed"}}</span> <span>{{I18n "admin.customize.theme.installed"}}</span>
{{else}} {{else}}
{{d-button class='btn-small' {{d-button class='btn-small'
label="admin.customize.theme.install" label="admin.customize.theme.install"
@ -33,7 +33,7 @@
action=(action "installThemeFromList" theme.value)}} action=(action "installThemeFromList" theme.value)}}
{{#if theme.preview}} {{#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}}
{{/if}} {{/if}}
</div> </div>
@ -85,10 +85,10 @@
{{#if create}} {{#if create}}
<div class="inputs"> <div class="inputs">
<div class="label">{{i18n "admin.customize.theme.create_name"}}</div> <div class="label">{{I18n "admin.customize.theme.create_name"}}</div>
{{input value=name placeholder=placeholder}} {{input value=name placeholder=placeholder}}
<div class="label">{{i18n "admin.customize.theme.create_type"}}</div> <div class="label">{{I18n "admin.customize.theme.create_type"}}</div>
{{combo-box {{combo-box
valueProperty="value" valueProperty="value"
content=createTypes content=createTypes

View File

@ -1,6 +1,6 @@
<div> <div>
{{#d-modal-body title="admin.logs.staff_actions.modal_title"}} {{#d-modal-body title="admin.logs.staff_actions.modal_title"}}
{{html-safe diff}} {{{diff}}}
{{/d-modal-body}} {{/d-modal-body}}
<div class="modal-footer"> <div class="modal-footer">
{{d-button {{d-button

View File

@ -7,7 +7,7 @@
</div> </div>
<div class="popular-theme-buttons"> <div class="popular-theme-buttons">
{{#if theme.installed}} {{#if theme.installed}}
<span>{{i18n "admin.customize.theme.installed"}}</span> <span>{{I18n "admin.customize.theme.installed"}}</span>
{{else}} {{else}}
{{d-button class='btn-small' {{d-button class='btn-small'
label="admin.customize.theme.install" label="admin.customize.theme.install"

View File

@ -31,7 +31,7 @@
<div class='fps-topic'> <div class='fps-topic'>
<div class='topic'> <div class='topic'>
<a class='search-link' href={{result.url}}> <a class='search-link' href={{result.url}}>
{{topic-status topic=result.topic disableActions=true}}<span class='topic-title'>{{#highlight-text highlight=term}}{{html-safe result.topic.fancyTitle}}{{/highlight-text}}</span> {{topic-status topic=result.topic disableActions=true}}<span class='topic-title'>{{#highlight-text highlight=term}}{{{result.topic.fancyTitle}}}{{/highlight-text}}</span>
</a> </a>
<div class='search-category'> <div class='search-category'>
@ -55,7 +55,7 @@
{{#if result.blurb}} {{#if result.blurb}}
{{#highlight-text highlight=term}} {{#highlight-text highlight=term}}
{{html-safe result.blurb}} {{{result.blurb}}}
{{/highlight-text}} {{/highlight-text}}
{{/if}} {{/if}}
</div> </div>

View File

@ -132,7 +132,7 @@
<div class="field">{{i18n "user.avatar.title"}}</div> <div class="field">{{i18n "user.avatar.title"}}</div>
<div class="value">{{avatar model imageSize="large"}}</div> <div class="value">{{avatar model imageSize="large"}}</div>
<div class="controls"> <div class="controls">
{{i18n "admin.user.visit_profile" url=preferencesPath}} {{{i18n "admin.user.visit_profile" url=preferencesPath}}}
</div> </div>
</div> </div>
@ -509,7 +509,7 @@
<h1>{{i18n "admin.groups.title"}}</h1> <h1>{{i18n "admin.groups.title"}}</h1>
<div class="display-row"> <div class="display-row">
<div class="field">{{i18n "admin.groups.automatic"}}</div> <div class="field">{{i18n "admin.groups.automatic"}}</div>
<div class="value">{{html-safe automaticGroups}}</div> <div class="value">{{{automaticGroups}}}</div>
</div> </div>
<div class="display-row"> <div class="display-row">
<div class="field">{{i18n "admin.groups.custom"}}</div> <div class="field">{{i18n "admin.groups.custom"}}</div>
@ -616,11 +616,11 @@
</div> </div>
<div class="display-row"> <div class="display-row">
<div class="field">{{i18n "admin.user.time_read"}}</div> <div class="field">{{i18n "admin.user.time_read"}}</div>
<div class="value">{{format-duration model.time_read}}</div> <div class="value">{{{format-duration model.time_read}}}</div>
</div> </div>
<div class="display-row"> <div class="display-row">
<div class="field">{{i18n "user.invited.days_visited"}}</div> <div class="field">{{i18n "user.invited.days_visited"}}</div>
<div class="value">{{html-safe model.days_visited}}</div> <div class="value">{{{model.days_visited}}}</div>
</div> </div>
</section> </section>

View File

@ -53,11 +53,11 @@
</td> </td>
<td class="last-emailed"> <td class="last-emailed">
<div class="label">{{i18n 'admin.users.last_emailed'}}</div> <div class="label">{{i18n 'admin.users.last_emailed'}}</div>
<div>{{format-duration user.last_emailed_age}}</div> <div>{{{format-duration user.last_emailed_age}}}</div>
</td> </td>
<td class="last-seen"> <td class="last-seen">
<div class="label">{{i18n 'last_seen'}}</div> <div class="label">{{i18n 'last_seen'}}</div>
<div>{{format-duration user.last_seen_age}}</div> <div>{{{format-duration user.last_seen_age}}}</div>
</td> </td>
<td class="topics-entered"> <td class="topics-entered">
<div class="label">{{i18n 'admin.user.topics_entered'}}</div> <div class="label">{{i18n 'admin.user.topics_entered'}}</div>
@ -69,12 +69,12 @@
</td> </td>
<td class="time-read"> <td class="time-read">
<div class="label">{{i18n 'admin.user.time_read'}}</div> <div class="label">{{i18n 'admin.user.time_read'}}</div>
<div>{{format-duration user.time_read}}</div> <div>{{{format-duration user.time_read}}}</div>
</td> </td>
<td class="created"> <td class="created">
<div class="label">{{i18n 'created'}}</div> <div class="label">{{i18n 'created'}}</div>
<div>{{format-duration user.created_at_age}}</div> <div>{{{format-duration user.created_at_age}}}</div>
</td> </td>
{{#if siteSettings.must_approve_users}} {{#if siteSettings.must_approve_users}}

View File

@ -1,6 +0,0 @@
import { registerUnbound } from "discourse-common/lib/helpers";
import { htmlSafe } from "@ember/template";
registerUnbound("html-safe", function(string) {
return htmlSafe(string);
});

View File

@ -1,7 +1,6 @@
import { registerUnbound } from "discourse-common/lib/helpers"; import { registerUnbound } from "discourse-common/lib/helpers";
import { htmlSafe } from "@ember/template";
registerUnbound("i18n", (key, params) => htmlSafe(I18n.t(key, params))); registerUnbound("i18n", (key, params) => I18n.t(key, params));
registerUnbound("i18n-yes-no", (value, params) => registerUnbound("i18n-yes-no", (value, params) =>
I18n.t(value ? "yes_value" : "no_value", params) I18n.t(value ? "yes_value" : "no_value", params)
); );

View File

@ -1,19 +1,8 @@
import { next } from "@ember/runloop"; import { next } from "@ember/runloop";
import { htmlSafe } from "@ember/template";
import Component from "@ember/component"; import Component from "@ember/component";
export default Component.extend({ export default Component.extend({
text: null,
init() {
this._super(...arguments);
this.set("text", htmlSafe(this.text));
},
didInsertElement() { didInsertElement() {
this._super(...arguments); this._super(...arguments);
next(null, () => { next(null, () => {
const $this = $(this.element); const $this = $(this.element);

View File

@ -4,12 +4,14 @@ import {
autoUpdatingRelativeAge, autoUpdatingRelativeAge,
number number
} from "discourse/lib/formatter"; } from "discourse/lib/formatter";
import { htmlSafe } from "@ember/template";
registerUnbound("raw-date", dt => htmlSafe(longDate(new Date(dt)))); const safe = Handlebars.SafeString;
registerUnbound("age-with-tooltip", dt => registerUnbound("raw-date", dt => longDate(new Date(dt)));
htmlSafe(autoUpdatingRelativeAge(new Date(dt), { title: true }))
registerUnbound(
"age-with-tooltip",
dt => new safe(autoUpdatingRelativeAge(new Date(dt), { title: true }))
); );
registerUnbound("number", (orig, params) => { registerUnbound("number", (orig, params) => {
@ -46,5 +48,5 @@ registerUnbound("number", (orig, params) => {
result += ">" + n + "</span>"; result += ">" + n + "</span>";
return htmlSafe(result); return new safe(result);
}); });

View File

@ -1,6 +1,5 @@
import { registerUnbound } from "discourse-common/lib/helpers"; import { registerUnbound } from "discourse-common/lib/helpers";
import { isRTL } from "discourse/lib/text-direction"; import { isRTL } from "discourse/lib/text-direction";
import { htmlSafe } from "@ember/template";
function setDir(text) { function setDir(text) {
let content = text ? text : ""; let content = text ? text : "";
@ -12,5 +11,5 @@ function setDir(text) {
} }
export default registerUnbound("dir-span", function(str) { export default registerUnbound("dir-span", function(str) {
return htmlSafe(setDir(str)); return new Handlebars.SafeString(setDir(str));
}); });

View File

@ -1,12 +1,11 @@
import { autoUpdatingRelativeAge, durationTiny } from "discourse/lib/formatter"; import { autoUpdatingRelativeAge, durationTiny } from "discourse/lib/formatter";
import { registerUnbound } from "discourse-common/lib/helpers"; import { registerUnbound } from "discourse-common/lib/helpers";
import { htmlSafe } from "@ember/template";
registerUnbound("format-age", function(dt) { registerUnbound("format-age", function(dt) {
dt = new Date(dt); dt = new Date(dt);
return htmlSafe(autoUpdatingRelativeAge(dt)); return new Handlebars.SafeString(autoUpdatingRelativeAge(dt));
}); });
registerUnbound("format-duration", function(seconds) { registerUnbound("format-duration", function(seconds) {
return htmlSafe(durationTiny(seconds)); return new Handlebars.SafeString(durationTiny(seconds));
}); });

View File

@ -1,6 +1,5 @@
import { computed } from "@ember/object"; import { computed } from "@ember/object";
import addonFmt from "ember-addons/fmt"; import addonFmt from "ember-addons/fmt";
import { htmlSafe as htmlSafeTemplateHelper } from "@ember/template";
/** /**
Returns whether two properties are equal to each other. Returns whether two properties are equal to each other.
@ -57,21 +56,6 @@ export function i18n(...args) {
return I18n.t(addonFmt(format, ...args.map(a => this.get(a)))); return I18n.t(addonFmt(format, ...args.map(a => this.get(a))));
}); });
} }
/**
Returns htmlSafe version of a string.
@method htmlSafe
@params {String} properties* to htmlify
@return {Function} discourseComputedProperty function
**/
export function htmlSafe(...args) {
return computed(...args, {
get() {
const path = args.pop();
return htmlSafeTemplateHelper(this.get(path));
}
});
}
/** /**
Uses an Ember String `fmt` call to format a string. See: Uses an Ember String `fmt` call to format a string. See:

View File

@ -112,7 +112,7 @@
{{#if contactInfo}} {{#if contactInfo}}
<section class='about contact'> <section class='about contact'>
<h3>{{d-icon "far-envelope"}} {{i18n 'about.contact'}}</h3> <h3>{{d-icon "far-envelope"}} {{i18n 'about.contact'}}</h3>
<p>{{html-safe contactInfo}}</p> <p>{{{contactInfo}}}</p>
</section> </section>
{{/if}} {{/if}}

View File

@ -1,5 +1,5 @@
<div class='ac-message'> <div class='ac-message'>
{{html-safe accountCreated.message}} {{{accountCreated.message}}}
</div> </div>
{{#if accountCreated.show_controls}} {{#if accountCreated.show_controls}}
{{activation-controls sendActivationEmail=(action "sendActivationEmail") {{activation-controls sendActivationEmail=(action "sendActivationEmail")

View File

@ -1,6 +1,6 @@
<div class='ac-message'> <div class='ac-message'>
{{#if email}} {{#if email}}
{{i18n 'login.sent_activation_email_again' currentEmail=email}} {{{i18n 'login.sent_activation_email_again' currentEmail=email}}}
{{else}} {{else}}
{{i18n 'login.sent_activation_email_again_generic'}} {{i18n 'login.sent_activation_email_again_generic'}}
{{/if}} {{/if}}

View File

@ -42,7 +42,7 @@
{{#user-info user=ub.user size="medium" class="badge-info" date=ub.granted_at}} {{#user-info user=ub.user size="medium" class="badge-info" date=ub.granted_at}}
<div class="granted-on">{{i18n 'badges.granted_on' date=(inline-date ub.granted_at)}}</div> <div class="granted-on">{{i18n 'badges.granted_on' date=(inline-date ub.granted_at)}}</div>
{{#if ub.post_number}} {{#if ub.post_number}}
<a class="post-link" href="{{ub.topic.url}}/{{ub.post_number}}">{{html-safe ub.topic.fancyTitle}}</a> <a class="post-link" href="{{ub.topic.url}}/{{ub.post_number}}">{{{ub.topic.fancyTitle}}}</a>
{{/if}} {{/if}}
{{/user-info}} {{/user-info}}
{{/each}} {{/each}}

View File

@ -3,7 +3,7 @@
<div class="user-image"> <div class="user-image">
<div class="user-image-inner"> <div class="user-image-inner">
<a href={{userTemplate.userPath}} data-user-card={{userTemplate.username}}> <a href={{userTemplate.userPath}} data-user-card={{userTemplate.username}}>
{{html-safe userTemplate.avatar}} {{{userTemplate.avatar}}}
</a> </a>
</div> </div>
</div> </div>

View File

@ -11,7 +11,7 @@
<div class='badge-info'> <div class='badge-info'>
<div class='badge-info-item'> <div class='badge-info-item'>
<h3><a href={{url}} class='badge-link'>{{badge.name}}</a></h3> <h3><a href={{url}} class='badge-link'>{{badge.name}}</a></h3>
<div class='badge-summary'>{{html-safe summary}}</div> <div class='badge-summary'>{{{summary}}}</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -24,7 +24,7 @@
</div> </div>
<div class='description'> <div class='description'>
{{text-overflow class="overflow" text=c.description_excerpt}} {{{text-overflow class="overflow" text=c.description_excerpt}}}
</div> </div>
{{#if c.isGrandParent}} {{#if c.isGrandParent}}
{{#each c.subcategories as |subcategory|}} {{#each c.subcategories as |subcategory|}}

View File

@ -16,7 +16,7 @@
{{category-title-link category=c}} {{category-title-link category=c}}
{{#if c.description_excerpt}} {{#if c.description_excerpt}}
<div class="category-description"> <div class="category-description">
{{dir-span c.description_excerpt}} {{{dir-span c.description_excerpt}}}
</div> </div>
{{/if}} {{/if}}
{{#if c.isGrandParent}} {{#if c.isGrandParent}}
@ -28,7 +28,7 @@
{{category-title-link tagName="h4" category=subcategory}} {{category-title-link tagName="h4" category=subcategory}}
{{#if subcategory.description_excerpt}} {{#if subcategory.description_excerpt}}
<div class="category-description subcategory-description"> <div class="category-description subcategory-description">
{{dir-span subcategory.description_excerpt}} {{{dir-span subcategory.description_excerpt}}}
</div> </div>
{{/if}} {{/if}}
{{#if subcategory.subcategories}} {{#if subcategory.subcategories}}
@ -45,7 +45,7 @@
{{else}} {{else}}
{{#if subcategory.description_excerpt}} {{#if subcategory.description_excerpt}}
<div class="category-description subcategory-description"> <div class="category-description subcategory-description">
{{dir-span subcategory.description_excerpt}} {{{dir-span subcategory.description_excerpt}}}
</div> </div>
{{/if}} {{/if}}
{{/if}} {{/if}}
@ -69,7 +69,7 @@
{{/if}} {{/if}}
</td> </td>
<td class="topics"> <td class="topics">
<div title={{c.statTitle}}>{{html-safe c.stat}}</div> <div title={{c.statTitle}}>{{{c.stat}}}</div>
{{category-unread category=c tagName="div" class="unread-new"}} {{category-unread category=c tagName="div" class="unread-new"}}
</td> </td>
{{#if showTopics}} {{#if showTopics}}

View File

@ -3,7 +3,7 @@
{{/if}} {{/if}}
{{#if translatedLabel}} {{#if translatedLabel}}
<span class='d-button-label'>{{html-safe translatedLabel}}{{#if ellipsis}}&hellip;{{/if}}</span> <span class='d-button-label'>{{{translatedLabel}}}{{#if ellipsis}}&hellip;{{/if}}</span>
{{/if}} {{/if}}
{{yield}} {{yield}}

View File

@ -46,7 +46,7 @@
</div> </div>
<div class="d-editor-preview-wrapper {{if forcePreview 'force-preview'}}"> <div class="d-editor-preview-wrapper {{if forcePreview 'force-preview'}}">
<div class="d-editor-preview">{{html-safe preview}}</div> <div class="d-editor-preview">{{{preview}}}</div>
{{plugin-outlet name="editor-preview" classNames="d-editor-plugin" args=outletArgs}} {{plugin-outlet name="editor-preview" classNames="d-editor-plugin" args=outletArgs}}
</div> </div>
</div> </div>

View File

@ -3,9 +3,9 @@
<div id="banner" class={{overlay}}> <div id="banner" class={{overlay}}>
{{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}} {{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}}
<div id="banner-content"> <div id="banner-content">
{{html-safe content}} {{{content}}}
{{#if currentUser.staff}} {{#if currentUser.staff}}
<p><a href={{banner.url}}>{{i18n "banner.edit"}}</a></p> <p><a href={{banner.url}}>{{{i18n "banner.edit"}}}</a></p>
{{/if}} {{/if}}
</div> </div>
</div> </div>

View File

@ -1 +1 @@
{{html-safe translatedText}} {{{translatedText}}}

View File

@ -1,7 +1,7 @@
{{#if category.isUncategorizedCategory}} {{#if category.isUncategorizedCategory}}
<p class="warning"> <p class="warning">
{{d-icon "exclamation-triangle"}} {{d-icon "exclamation-triangle"}}
{{i18n 'category.uncategorized_general_warning' settingLink=uncategorizedSiteSettingLink customizeLink=customizeTextContentLink}} {{{i18n 'category.uncategorized_general_warning' settingLink=uncategorizedSiteSettingLink customizeLink=customizeTextContentLink}}}
</p> </p>
{{/if}} {{/if}}
@ -36,7 +36,7 @@
<section class='field'> <section class='field'>
<label>{{i18n 'category.description'}}</label> <label>{{i18n 'category.description'}}</label>
{{#if category.description}} {{#if category.description}}
{{html-safe category.description}} {{{category.description}}}
{{else}} {{else}}
{{i18n 'category.no_description'}} {{i18n 'category.no_description'}}
{{/if}} {{/if}}
@ -51,7 +51,7 @@
<section class='field'> <section class='field'>
<label>{{i18n 'category.badge_colors'}}</label> <label>{{i18n 'category.badge_colors'}}</label>
<div class="category-color-editor"> <div class="category-color-editor">
{{html-safe categoryBadgePreview}} {{{categoryBadgePreview}}}
<div class='input-prepend input-append' style="margin-top: 10px;"> <div class='input-prepend input-append' style="margin-top: 10px;">
<span class='color-title'>{{i18n 'category.background_color'}}:</span> <span class='color-title'>{{i18n 'category.background_color'}}:</span>

View File

@ -11,7 +11,7 @@
{{#each category.permissions as |p|}} {{#each category.permissions as |p|}}
<li> <li>
<span class="name"><span class="badge-group">{{p.group_name}}</span></span> <span class="name"><span class="badge-group">{{p.group_name}}</span></span>
{{i18n "category.can"}} {{{i18n "category.can"}}}
<span class="permission">{{p.permission.description}}</span> <span class="permission">{{p.permission.description}}</span>
{{#if editingPermissions}} {{#if editingPermissions}}
<a class="remove-permission" href {{action "removePermission" p}}>{{d-icon "times-circle"}}</a> <a class="remove-permission" href {{action "removePermission" p}}>{{d-icon "times-circle"}}</a>

View File

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

View File

@ -5,7 +5,7 @@
<input type='radio' id="radio_{{flag.name_key}}" {{action "changePostActionType" flag}} name='post_action_type_index'> <input type='radio' id="radio_{{flag.name_key}}" {{action "changePostActionType" flag}} name='post_action_type_index'>
<div class='flag-action-type-details'> <div class='flag-action-type-details'>
<span class='description'>{{html-safe flag.description}}</span> <span class='description'>{{{flag.description}}}</span>
{{#if showMessageInput}} {{#if showMessageInput}}
{{textarea name="message" class="flag-message" placeholder=customPlaceholder value=message}} {{textarea name="message" class="flag-message" placeholder=customPlaceholder value=message}}
<div class="custom-message-length {{customMessageLengthClasses}}">{{customMessageLength}}</div> <div class="custom-message-length {{customMessageLengthClasses}}">{{customMessageLength}}</div>
@ -24,7 +24,7 @@
<div class='flag-action-type-details'> <div class='flag-action-type-details'>
<strong>{{formattedName}}</strong> <strong>{{formattedName}}</strong>
{{#if showDescription}} {{#if showDescription}}
<div class='description'>{{html-safe description}}</div> <div class='description'>{{{description}}}</div>
{{/if}} {{/if}}
{{#if showMessageInput}} {{#if showMessageInput}}
{{textarea name="message" class="flag-message" placeholder=customPlaceholder value=message}} {{textarea name="message" class="flag-message" placeholder=customPlaceholder value=message}}

View File

@ -1,4 +1,4 @@
{{#if education}}<div class="education">{{html-safe education}}</div>{{/if}} {{#if education}}<div class="education">{{{education}}}</div>{{/if}}
<h3> <h3>
{{message}} {{message}}
{{yield}} {{yield}}

View File

@ -2,9 +2,9 @@
<div class="row"> <div class="row">
<div id="global-notice-{{notice.id}}" class="alert alert-{{notice.options.level}} {{notice.id}}"> <div id="global-notice-{{notice.id}}" class="alert alert-{{notice.options.level}} {{notice.id}}">
{{#if notice.options.html}} {{#if notice.options.html}}
{{html-safe notice.options.html}} {{{notice.options.html}}}
{{/if}} {{/if}}
<span class="text">{{html-safe notice.text}}</span> <span class="text">{{{notice.text}}}</span>
{{#if notice.options.dismissable}} {{#if notice.options.dismissable}}
{{d-button {{d-button

View File

@ -43,7 +43,7 @@
{{#if group.bio_cooked}} {{#if group.bio_cooked}}
<div class="card-row second-row"> <div class="card-row second-row">
<div class='bio'>{{html-safe group.bio_cooked}}</div> <div class='bio'>{{{group.bio_cooked}}}</div>
</div> </div>
{{/if}} {{/if}}

View File

@ -8,7 +8,7 @@
<div class='stream-topic-details'> <div class='stream-topic-details'>
<div class='stream-topic-title'> <div class='stream-topic-title'>
<span class='title'> <span class='title'>
<a href={{postUrl}}>{{html-safe post.topic.fancyTitle}}</a> <a href={{postUrl}}>{{{post.topic.fancyTitle}}}</a>
</span> </span>
</div> </div>
<div class="group-post-category">{{category-link post.category}}</div> <div class="group-post-category">{{category-link post.category}}</div>
@ -24,8 +24,8 @@
<div class='excerpt'> <div class='excerpt'>
{{#if post.expandedExcerpt}} {{#if post.expandedExcerpt}}
{{html-safe post.expandedExcerpt}} {{{post.expandedExcerpt}}}
{{else}} {{else}}
{{html-safe post.excerpt}} {{{post.excerpt}}}
{{/if}} {{/if}}
</div> </div>

View File

@ -1,6 +1,6 @@
{{#if inviteModel.error}} {{#if inviteModel.error}}
<div class="alert alert-error"> <div class="alert alert-error">
{{html-safe errorMessage}} {{{errorMessage}}}
</div> </div>
{{/if}} {{/if}}
@ -10,7 +10,7 @@
{{generated-invite-link link=inviteModel.inviteLink email=emailOrUsername}} {{generated-invite-link link=inviteModel.inviteLink email=emailOrUsername}}
{{else}} {{else}}
<div class="success-message"> <div class="success-message">
{{html-safe successMessage}} {{{successMessage}}}
</div> </div>
{{/if}} {{/if}}
{{else}} {{else}}

View File

@ -14,7 +14,7 @@
{{d-button action=(action "copy") class="pull-right no-text" icon="copy"}} {{d-button action=(action "copy") class="pull-right no-text" icon="copy"}}
{{/if}} {{/if}}
<h4>{{i18n "ip_lookup.title"}}</h4> <h4>{{i18n "ip_lookup.title"}}</h4>
<p class='powered-by'>{{i18n "ip_lookup.powered_by"}}</p> <p class='powered-by'>{{{i18n "ip_lookup.powered_by"}}}</p>
<dl> <dl>
{{#if location}} {{#if location}}
{{#if location.hostname}} {{#if location.hostname}}

View File

@ -5,7 +5,7 @@
{{#if topic.unseen}} {{#if topic.unseen}}
<span class="badge-notification new-topic"></span> <span class="badge-notification new-topic"></span>
{{/if}} {{/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> </div>
</td> </td>
<td class='num posts'>{{raw "list/post-count-or-badges" topic=topic postBadgesEnabled="true"}}</td> <td class='num posts'>{{raw "list/post-count-or-badges" topic=topic postBadgesEnabled="true"}}</td>

View File

@ -10,5 +10,5 @@
</div> </div>
{{#if targetUser}} {{#if targetUser}}
<h3 class="see-all-pms-message">{{i18n "related_messages.see_all" path=searchLink username=targetUser.username}}</h3> <h3 class="see-all-pms-message">{{{i18n "related_messages.see_all" path=searchLink username=targetUser.username}}}</h3>
{{/if}} {{/if}}

View File

@ -3,6 +3,6 @@
{{#if showUsername}} {{#if showUsername}}
{{#link-to 'user' post.user class="username"}}@{{post.user.username}}{{/link-to}} {{#link-to 'user' post.user class="username"}}@{{post.user.username}}{{/link-to}}
{{/if}} {{/if}}
{{html-safe post.excerpt}} {{{post.excerpt}}}
</div> </div>
{{/if}} {{/if}}

View File

@ -17,7 +17,7 @@
{{#if reviewable.blank_post}} {{#if reviewable.blank_post}}
<p>{{i18n "review.deleted_post"}}</p> <p>{{i18n "review.deleted_post"}}</p>
{{else}} {{else}}
{{html-safe reviewable.cooked}} {{{reviewable.cooked}}}
{{/if}} {{/if}}
</div> </div>
{{plugin-outlet name="after-reviewable-flagged-post-body" args=(hash model=reviewable)}} {{plugin-outlet name="after-reviewable-flagged-post-body" args=(hash model=reviewable)}}

View File

@ -46,7 +46,7 @@
<div class='reviewable-actions'> <div class='reviewable-actions'>
{{#if claimEnabled}} {{#if claimEnabled}}
<div class='claimed-actions'> <div class='claimed-actions'>
<span class='help'>{{html-safe claimHelp}}</span> <span class='help'>{{{claimHelp}}}</span>
{{reviewable-claimed-topic topicId=topicId claimedBy=reviewable.claimed_by}} {{reviewable-claimed-topic topicId=topicId claimedBy=reviewable.claimed_by}}
</div> </div>
{{/if}} {{/if}}

View File

@ -49,7 +49,7 @@
{{#if rs.reason}} {{#if rs.reason}}
<tr> <tr>
<td colspan='7'> <td colspan='7'>
<div class='reviewable-score-reason'>{{html-safe rs.reason}}</div> <div class='reviewable-score-reason'>{{{rs.reason}}}</div>
</td> </td>
</tr> </tr>
{{/if}} {{/if}}

View File

@ -1,7 +1,7 @@
<div id="second-factor"> <div id="second-factor">
<h3>{{secondFactorTitle}}</h3> <h3>{{secondFactorTitle}}</h3>
{{#if optionalText}} {{#if optionalText}}
<p>{{html-safe optionalText}}</p> <p>{{{optionalText}}}</p>
{{/if}} {{/if}}
<p>{{secondFactorDescription}}</p> <p>{{secondFactorDescription}}</p>
{{yield}} {{yield}}

View File

@ -1,5 +1,5 @@
<div class="header"> <div class="header">
<h3 class="title">{{html-safe shareTitle}}</h3> <h3 class="title">{{{shareTitle}}}</h3>
</div> </div>
<div class="body"> <div class="body">

View File

@ -1,5 +1,5 @@
<div class="title"> <div class="title">
<h3>{{html-safe shareTitle}}</h3> <h3>{{{shareTitle}}}</h3>
{{#if date}} {{#if date}}
<span class="date">{{displayDate}}</span> <span class="date">{{displayDate}}</span>

View File

@ -2,6 +2,6 @@
{{#if source.icon}} {{#if source.icon}}
{{d-icon source.icon}} {{d-icon source.icon}}
{{else}} {{else}}
{{html-safe source.htmlIcon}} {{{source.htmlIcon}}}
{{/if}} {{/if}}
</a> </a>

View File

@ -2,7 +2,7 @@
{{#if publishing}} {{#if publishing}}
{{i18n "shared_drafts.publishing"}} {{i18n "shared_drafts.publishing"}}
{{else}} {{else}}
{{i18n "shared_drafts.notice" category=topic.category.name}} {{{i18n "shared_drafts.notice" category=topic.category.name}}}
<div class='publish-field'> <div class='publish-field'>
<label>{{i18n "shared_drafts.destination_category"}}</label> <label>{{i18n "shared_drafts.destination_category"}}</label>

View File

@ -13,4 +13,4 @@
{{/if}} {{/if}}
</div> </div>
<h3 class="suggested-topics-message">{{html-safe browseMoreMessage}}</h3> <h3 class="suggested-topics-message">{{{browseMoreMessage}}}</h3>

View File

@ -32,7 +32,7 @@
{{#if tagInfo.synonyms}} {{#if tagInfo.synonyms}}
<div class="synonyms-list"> <div class="synonyms-list">
<h3>{{i18n "tagging.synonyms"}}</h3> <h3>{{i18n "tagging.synonyms"}}</h3>
<div>{{i18n "tagging.synonyms_description" base_tag_name=tagInfo.name}}</div> <div>{{{i18n "tagging.synonyms_description" base_tag_name=tagInfo.name}}}</div>
<div class="tag-list"> <div class="tag-list">
{{#each tagInfo.synonyms as |tag|}} {{#each tagInfo.synonyms as |tag|}}
<div class='tag-box'> <div class='tag-box'>

View File

@ -1 +1 @@
{{html-safe text}} {{{text}}}

View File

@ -1,7 +1,7 @@
{{#d-button action=(action "enterTop") class="full jump-top"}} {{#d-button action=(action "enterTop") class="full jump-top"}}
{{d-icon 'step-backward'}} {{html-safe topDate}} {{d-icon 'step-backward'}} {{{topDate}}}
{{/d-button}} {{/d-button}}
{{#d-button action=(action "enterBottom") class="full jump-bottom"}} {{#d-button action=(action "enterBottom") class="full jump-bottom"}}
{{html-safe bottomDate}} {{d-icon 'step-forward'}} {{{bottomDate}}} {{d-icon 'step-forward'}}
{{/d-button}} {{/d-button}}

View File

@ -144,7 +144,7 @@
<div class="card-row"> <div class="card-row">
<div class="featured-topic"> <div class="featured-topic">
<span class="desc">{{i18n 'user.featured_topic'}}</span> <span class="desc">{{i18n 'user.featured_topic'}}</span>
{{#link-to "topic" user.featured_topic.slug user.featured_topic.id }}{{html-safe user.featured_topic.fancy_title}}{{/link-to}} {{#link-to "topic" user.featured_topic.slug user.featured_topic.id }}{{{user.featured_topic.fancy_title}}}{{/link-to}}
</div> </div>
</div> </div>
{{/if}} {{/if}}

View File

@ -1,6 +1,6 @@
{{#if field.name}} {{#if field.name}}
<label class="control-label" for={{concat 'user-' elementId}}> <label class="control-label" for={{concat 'user-' elementId}}>
{{html-safe field.name}} {{#if field.required}}<span class='required'>*</span>{{/if}} {{{field.name}}} {{#if field.required}}<span class='required'>*</span>{{/if}}
</label> </label>
{{/if}} {{/if}}
@ -8,7 +8,7 @@
<label class="control-label checkbox-label"> <label class="control-label checkbox-label">
{{input id=(concat 'user-' elementId) checked=value type="checkbox"}} {{input id=(concat 'user-' elementId) checked=value type="checkbox"}}
<span> <span>
{{html-safe field.description}} {{#unless field.name}}{{#if field.required}}<span class='required'>*</span>{{/if}}{{/unless}} {{{field.description}}} {{#unless field.name}}{{#if field.required}}<span class='required'>*</span>{{/if}}{{/unless}}
</span> </span>
</label> </label>
</div> </div>

View File

@ -1,4 +1,4 @@
<label class="control-label" for={{concat 'user-' elementId}}>{{html-safe 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> </label>
<div class='controls'> <div class='controls'>
{{combo-box {{combo-box
@ -10,5 +10,5 @@
none=noneLabel none=noneLabel
onChange=(action (mut value)) onChange=(action (mut value))
}} }}
<div class="instructions">{{html-safe field.description}}</div> <div class="instructions">{{{field.description}}}</div>
</div> </div>

View File

@ -1,6 +1,6 @@
<label class="control-label" for={{concat 'user-' elementId}}>{{html-safe 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> </label>
<div class='controls'> <div class='controls'>
{{input id=(concat 'user-' elementId) value=value maxlength=site.user_field_max_length}} {{input id=(concat 'user-' elementId) value=value maxlength=site.user_field_max_length}}
<div class="instructions">{{html-safe field.description}}</div> <div class="instructions">{{{field.description}}}</div>
</div> </div>

View File

@ -9,5 +9,5 @@
</span> </span>
<span class='label'> <span class='label'>
{{#if icon}}{{d-icon icon}}{{/if}} {{#if icon}}{{d-icon icon}}{{/if}}
{{i18n label count=value}} {{{i18n label count=value}}}
</span> </span>

View File

@ -2,7 +2,7 @@
<a href={{item.userUrl}} data-user-card={{item.username}} class='avatar-link'><div class='avatar-wrapper'>{{avatar item imageSize="large" extraClasses="actor" ignoreTitle="true"}}</div></a> <a href={{item.userUrl}} data-user-card={{item.username}} class='avatar-link'><div class='avatar-wrapper'>{{avatar item imageSize="large" extraClasses="actor" ignoreTitle="true"}}</div></a>
<span class='time'>{{format-date item.created_at}}</span> <span class='time'>{{format-date item.created_at}}</span>
{{#if item.draftType}} {{#if item.draftType}}
<span class='draft-type'>{{html-safe item.draftType}}</span> <span class='draft-type'>{{{item.draftType}}}</span>
{{else}} {{else}}
{{expand-post item=item}} {{expand-post item=item}}
{{/if}} {{/if}}
@ -11,9 +11,9 @@
{{topic-status topic=item disableActions=true}} {{topic-status topic=item disableActions=true}}
<span class="title"> <span class="title">
{{#if item.postUrl}} {{#if item.postUrl}}
<a href={{item.postUrl}}>{{html-safe item.title}}</a> <a href={{item.postUrl}}>{{{item.title}}}</a>
{{else}} {{else}}
{{html-safe item.title}} {{{item.title}}}
{{/if}} {{/if}}
</span> </span>
</div> </div>
@ -36,13 +36,11 @@
{{/if}} {{/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}}>
{{!-- template-lint-disable no-triple-curlies --}}
{{~#if item.expandedExcerpt}} {{~#if item.expandedExcerpt}}
{{~{item.expandedExcerpt}~}} {{~{item.expandedExcerpt}~}}
{{else}} {{else}}
{{~{item.excerpt}~}} {{~{item.excerpt}~}}
{{/if~}} {{/if~}}
{{!-- template-lint-enable --}}
</p> </p>
{{#each item.children as |child|}} {{#each item.children as |child|}}

View File

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

View File

@ -204,7 +204,7 @@
{{d-button action=(action "togglePreview") class="hide-preview" label="composer.hide_preview"}} {{d-button action=(action "togglePreview") class="hide-preview" label="composer.hide_preview"}}
{{/if}} {{/if}}
{{else}} {{else}}
<a href {{action "togglePreview"}} class='toggle-preview'>{{html-safe toggleText}}</a> <a href {{action "togglePreview"}} class='toggle-preview'>{{{toggleText}}}</a>
{{/if}} {{/if}}
</div> </div>
@ -221,7 +221,7 @@
<div class='draft-text'> <div class='draft-text'>
{{#if model.topic}} {{#if model.topic}}
{{d-icon "share"}} {{html-safe draftTitle}} {{d-icon "share"}} {{{draftTitle}}}
{{else}} {{else}}
{{i18n "composer.saved_draft"}} {{i18n "composer.saved_draft"}}
{{/if}} {{/if}}

View File

@ -1,3 +1,3 @@
<a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a> <a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a>
{{#if message.title}}<h3>{{message.title}}</h3>{{/if}} {{#if message.title}}<h3>{{message.title}}</h3>{{/if}}
<p>{{html-safe message.body}}</p> <p>{{{message.body}}}</p>

View File

@ -1,2 +1,2 @@
<a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a> <a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a>
{{html-safe message.body}} {{{message.body}}}

View File

@ -1,2 +1,2 @@
<a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a> <a href {{action "closeMessage"}} class='close'>{{d-icon "times"}}</a>
{{html-safe message.body}} {{{message.body}}}

View File

@ -1,5 +1,5 @@
{{#if errorHtml}} {{#if errorHtml}}
{{html-safe errorHtml}} {{{errorHtml}}}
{{else}} {{else}}
<div class="container"> <div class="container">
{{discourse-banner user=currentUser banner=site.banner}} {{discourse-banner user=currentUser banner=site.banner}}

View File

@ -49,7 +49,7 @@
<div class='search-info'> <div class='search-info'>
<div class='result-count'> <div class='result-count'>
{{html-safe resultCountLabel}} {{{resultCountLabel}}}
</div> </div>
<div class='sort-by'> <div class='sort-by'>
<span class='desc'> <span class='desc'>
@ -88,7 +88,7 @@
<a class='search-link' href={{result.url}} {{action "logClick" result.topic_id}}> <a class='search-link' href={{result.url}} {{action "logClick" result.topic_id}}>
{{topic-status topic=result.topic disableActions=true showPrivateMessageIcon=true}} {{topic-status topic=result.topic disableActions=true showPrivateMessageIcon=true}}
<span class='topic-title'>{{#highlight-text highlight=q}}{{html-safe result.topic.fancyTitle}}{{/highlight-text}}</span> <span class='topic-title'>{{#highlight-text highlight=q}}{{{result.topic.fancyTitle}}}{{/highlight-text}}</span>
</a> </a>
<div class='search-category'> <div class='search-category'>
@ -113,7 +113,7 @@
{{#if result.blurb}} {{#if result.blurb}}
{{#highlight-text highlight=highlightQuery}} {{#highlight-text highlight=highlightQuery}}
{{html-safe result.blurb}} {{{result.blurb}}}
{{/highlight-text}} {{/highlight-text}}
{{/if}} {{/if}}
</div> </div>

Some files were not shown because too many files have changed in this diff Show More