DEV: Remove `Handlebars.Utils.escapeExpression` usage

This commit is contained in:
Robin Ward 2020-04-30 11:36:33 -04:00
parent 1b2db44678
commit 03815f9795
14 changed files with 35 additions and 37 deletions

View File

@ -42,7 +42,7 @@ export default Controller.extend({
if (grant.post_id) {
i18nKey += "_post";
i18nParams.link = `<a href="/p/${grant.post_id}" data-auto-route="true">
${Handlebars.Utils.escapeExpression(grant.title)}
${escapeExpression(grant.title)}
</a>`;
}

View File

@ -5,6 +5,7 @@ import {
number
} from "discourse/lib/formatter";
import { htmlSafe } from "@ember/template";
import { escapeExpression } from "discourse/lib/utilities";
registerUnbound("raw-date", dt => htmlSafe(longDate(new Date(dt))));
@ -37,10 +38,10 @@ registerUnbound("number", (orig, params) => {
// Round off the thousands to one decimal place
const n = number(orig);
if (n.toString() !== title.toString() && addTitle) {
result += " title='" + Handlebars.Utils.escapeExpression(title) + "'";
result += " title='" + escapeExpression(title) + "'";
}
if (params.ariaLabel) {
const ariaLabel = Handlebars.Utils.escapeExpression(params.ariaLabel);
const ariaLabel = escapeExpression(params.ariaLabel);
result += ` aria-label='${ariaLabel}'`;
}

View File

@ -4,8 +4,8 @@ import { isRTL } from "discourse/lib/text-direction";
import { iconHTML } from "discourse-common/lib/icon-library";
import Category from "discourse/models/category";
import Site from "discourse/models/site";
import { escapeExpression } from "discourse/lib/utilities";
let escapeExpression = Handlebars.Utils.escapeExpression;
let _renderer = defaultCategoryLinkRenderer;
export function replaceCategoryLinkRenderer(fn) {

View File

@ -972,7 +972,7 @@ class PluginApi {
* Example:
*
* function testTagRenderer(tag, params) {
* const visibleName = Handlebars.Utils.escapeExpression(tag);
* const visibleName = escapeExpression(tag);
* return `testing: ${visibleName}`;
* }
* api.replaceTagRenderer(testTagRenderer);

View File

@ -1,4 +1,5 @@
import User from "discourse/models/user";
import { escapeExpression } from "discourse/lib/utilities";
let _renderer = defaultRenderTag;
@ -8,7 +9,7 @@ export function replaceTagRenderer(fn) {
export function defaultRenderTag(tag, params) {
params = params || {};
const visibleName = Handlebars.Utils.escapeExpression(tag);
const visibleName = escapeExpression(tag);
tag = visibleName.toLowerCase();
const classes = ["discourse-tag"];
const tagName = params.tagName || "a";

View File

@ -10,6 +10,7 @@ import { emojiUnescape } from "discourse/lib/text";
import User from "discourse/models/user";
import Post from "discourse/models/post";
import Topic from "discourse/models/topic";
import { escapeExpression } from "discourse/lib/utilities";
export function translateResults(results, opts) {
opts = opts || {};
@ -50,17 +51,13 @@ export function translateResults(results, opts) {
results.groups = results.groups
.map(group => {
const name = Handlebars.Utils.escapeExpression(group.name);
const fullName = Handlebars.Utils.escapeExpression(
group.full_name || group.display_name
);
const name = escapeExpression(group.name);
const fullName = escapeExpression(group.full_name || group.display_name);
const flairUrl = isEmpty(group.flair_url)
? null
: Handlebars.Utils.escapeExpression(group.flair_url);
const flairColor = Handlebars.Utils.escapeExpression(group.flair_color);
const flairBgColor = Handlebars.Utils.escapeExpression(
group.flair_bg_color
);
: escapeExpression(group.flair_url);
const flairColor = escapeExpression(group.flair_color);
const flairBgColor = escapeExpression(group.flair_bg_color);
return {
id: group.id,
@ -76,7 +73,7 @@ export function translateResults(results, opts) {
results.tags = results.tags
.map(function(tag) {
const tagName = Handlebars.Utils.escapeExpression(tag.name);
const tagName = escapeExpression(tag.name);
return EmberObject.create({
id: tagName,
url: Discourse.getURL("/tag/" + tagName)

View File

@ -4,6 +4,7 @@ import { wantsNewWindow } from "discourse/lib/intercept-click";
import afterTransition from "discourse/lib/after-transition";
import DiscourseURL from "discourse/lib/url";
import Mixin from "@ember/object/mixin";
import { escapeExpression } from "discourse/lib/utilities";
export default Mixin.create({
elementId: null, //click detection added for data-{elementId}
@ -27,7 +28,7 @@ export default Mixin.create({
return false;
}
username = Ember.Handlebars.Utils.escapeExpression(username.toString());
username = escapeExpression(username.toString());
// Don't show if nested
if ($target.parents(".card-content").length) {

View File

@ -10,6 +10,7 @@ import {
NEW_TOPIC_KEY,
NEW_PRIVATE_MESSAGE_KEY
} from "discourse/models/composer";
import { escapeExpression } from "discourse/lib/utilities";
export default RestModel.extend({
loaded: false,
@ -81,9 +82,7 @@ export default RestModel.extend({
) {
draft.title = draftData.title;
}
draft.title = emojiUnescape(
Handlebars.Utils.escapeExpression(draft.title)
);
draft.title = emojiUnescape(escapeExpression(draft.title));
if (draft.category_id) {
draft.category =
this.site.categories.findBy("id", draft.category_id) || null;

View File

@ -6,6 +6,7 @@ import UserAction from "discourse/models/user-action";
import { emojiUnescape } from "discourse/lib/text";
import { Promise } from "rsvp";
import discourseComputed, { on } from "discourse-common/utils/decorators";
import { escapeExpression } from "discourse/lib/utilities";
export default RestModel.extend({
loaded: false,
@ -107,9 +108,7 @@ export default RestModel.extend({
if (result && result.user_actions) {
const copy = A();
result.user_actions.forEach(action => {
action.title = emojiUnescape(
Handlebars.Utils.escapeExpression(action.title)
);
action.title = emojiUnescape(escapeExpression(action.title));
copy.pushObject(UserAction.create(action));
});

View File

@ -26,6 +26,7 @@ import { Promise } from "rsvp";
import deprecated from "discourse-common/lib/deprecated";
import Site from "discourse/models/site";
import { NotificationLevels } from "discourse/lib/notification-levels";
import { escapeExpression } from "discourse/lib/utilities";
export const SECOND_FACTOR_METHODS = {
TOTP: 1,
@ -483,7 +484,7 @@ const User = RestModel.extend({
return;
if (!this.get("stream.filter") && !this.inAllStream(ua)) return;
ua.title = emojiUnescape(Handlebars.Utils.escapeExpression(ua.title));
ua.title = emojiUnescape(escapeExpression(ua.title));
const action = UserAction.collapseStream([UserAction.create(ua)]);
stream.set("itemsLoaded", stream.get("itemsLoaded") + 1);
stream.get("content").insertAt(0, action[0]);
@ -810,7 +811,7 @@ const User = RestModel.extend({
.sort()
.map(title => {
return {
name: Ember.Handlebars.Utils.escapeExpression(title),
name: escapeExpression(title),
id: title
};
});

View File

@ -1,5 +1,6 @@
import DiscourseRoute from "discourse/routes/discourse";
import { emojiUnescape } from "discourse/lib/text";
import { escapeExpression } from "discourse/lib/utilities";
export default function(filter) {
return DiscourseRoute.extend({
@ -25,10 +26,7 @@ export default function(filter) {
model.get("content").forEach(item => {
if (item.get("title")) {
item.set(
"title",
emojiUnescape(Handlebars.Utils.escapeExpression(item.title))
);
item.set("title", emojiUnescape(escapeExpression(item.title)));
}
});

View File

@ -9,6 +9,7 @@ import { queryParams } from "discourse/controllers/discovery-sortable";
import PermissionType from "discourse/models/permission-type";
import Category from "discourse/models/category";
import FilterModeMixin from "discourse/mixins/filter-mode";
import { escapeExpression } from "discourse/lib/utilities";
export default DiscourseRoute.extend(FilterModeMixin, {
navMode: "latest",
@ -22,14 +23,14 @@ export default DiscourseRoute.extend(FilterModeMixin, {
model(params) {
const tag = this.store.createRecord("tag", {
id: Handlebars.Utils.escapeExpression(params.tag_id)
id: escapeExpression(params.tag_id)
});
if (params.additional_tags) {
this.set(
"additionalTags",
params.additional_tags.split("/").map(t => {
return this.store.createRecord("tag", {
id: Handlebars.Utils.escapeExpression(t)
id: escapeExpression(t)
}).id;
})
);

View File

@ -1,5 +1,6 @@
import { createWidget } from "discourse/widgets/widget";
import { iconNode, convertIconClass } from "discourse-common/lib/icon-library";
import { escapeExpression } from "discourse/lib/utilities";
createWidget("avatar-flair", {
tagName: "div.avatar-flair",
@ -32,20 +33,18 @@ createWidget("avatar-flair", {
if (!this.isIcon(attrs)) {
style +=
"background-image: url(" +
Handlebars.Utils.escapeExpression(attrs.primary_group_flair_url) +
escapeExpression(attrs.primary_group_flair_url) +
"); ";
}
if (attrs.primary_group_flair_bg_color) {
style +=
"background-color: #" +
Handlebars.Utils.escapeExpression(attrs.primary_group_flair_bg_color) +
escapeExpression(attrs.primary_group_flair_bg_color) +
"; ";
}
if (attrs.primary_group_flair_color) {
style +=
"color: #" +
Handlebars.Utils.escapeExpression(attrs.primary_group_flair_color) +
"; ";
"color: #" + escapeExpression(attrs.primary_group_flair_color) + "; ";
}
return { style: style };
},

View File

@ -1,9 +1,10 @@
import { createWidget } from "discourse/widgets/widget";
import { emojiUrlFor, emojiUnescape } from "discourse/lib/text";
import RawHtml from "discourse/widgets/raw-html";
import { escapeExpression } from "discourse/lib/utilities";
export function replaceEmoji(str) {
const escaped = emojiUnescape(Handlebars.Utils.escapeExpression(str));
const escaped = emojiUnescape(escapeExpression(str));
return [new RawHtml({ html: `<span>${escaped}</span>` })];
}