DEV: Ember 3.8.0

Co-Authored-By: majakomel <maja.komel@gmail.com>
This commit is contained in:
Maja Komel
2019-04-26 12:16:21 +02:00
committed by Joffrey JAFFEUX
parent c617e512ad
commit 4b455e741e
63 changed files with 573 additions and 438 deletions
@@ -1,3 +1,5 @@
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
tagName: "span",
classNameBindings: [
@@ -5,9 +7,12 @@ export default Ember.Component.extend({
"badge.badgeTypeClassName",
"badge.enabled::disabled"
],
title: function() {
return $("<div>" + this.get("badge.description") + "</div>").text();
}.property("badge.description"),
@computed("badge.description")
title(badgeDescription) {
return $("<div>" + badgeDescription + "</div>").text();
},
attributeBindings: ["data-badge-name", "title"],
"data-badge-name": Ember.computed.alias("badge.name")
});
@@ -1,15 +1,18 @@
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
loadingMore: Ember.computed.alias("topicList.loadingMore"),
loading: Ember.computed.not("loaded"),
loaded: function() {
@computed("topicList.loaded")
loaded() {
var topicList = this.get("topicList");
if (topicList) {
return topicList.get("loaded");
} else {
return true;
}
}.property("topicList.loaded"),
},
_topicListChanged: function() {
this._initFromTopicList(this.get("topicList"));
@@ -27,9 +30,6 @@ export default Ember.Component.extend({
const topicList = this.get("topicList");
if (topicList) {
this._initFromTopicList(topicList);
} else {
// Without a topic list, we assume it's loaded always.
this.set("loaded", true);
}
},
@@ -30,13 +30,25 @@ export default Ember.Component.extend({
noText: Ember.computed.empty("translatedLabel"),
@computed("title")
translatedTitle(title) {
if (title) return I18n.t(title);
translatedTitle: {
get() {
if (this._translatedTitle) return this._translatedTitle;
if (this.title) return I18n.t(this.title);
},
set(value) {
return (this._translatedTitle = value);
}
},
@computed("label")
translatedLabel(label) {
if (label) return I18n.t(label);
translatedLabel: {
get() {
if (this._translatedLabel) return this._translatedLabel;
if (this.label) return I18n.t(this.label);
},
set(value) {
return (this._translatedLabel = value);
}
},
click() {
@@ -1,9 +1,10 @@
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
visible: function() {
var bannerKey = this.get("banner.key"),
dismissedBannerKey =
this.get("user.dismissed_banner_key") ||
this.keyValueStore.get("dismissed_banner_key");
@computed("user.dismissed_banner_key", "banner.key", "hide")
visible(dismissedBannerKey, bannerKey, hide) {
dismissedBannerKey =
dismissedBannerKey || this.keyValueStore.get("dismissed_banner_key");
if (bannerKey) {
bannerKey = parseInt(bannerKey, 10);
@@ -12,8 +13,8 @@ export default Ember.Component.extend({
dismissedBannerKey = parseInt(dismissedBannerKey, 10);
}
return !this.get("hide") && bannerKey && dismissedBannerKey !== bannerKey;
}.property("user.dismissed_banner_key", "banner.key", "hide"),
return !hide && bannerKey && dismissedBannerKey !== bannerKey;
},
actions: {
dismiss() {
@@ -1,13 +1,17 @@
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
tagName: "a",
classNameBindings: [":discourse-tag", "style", "tagClass"],
attributeBindings: ["href"],
tagClass: function() {
return "tag-" + this.get("tagRecord.id");
}.property("tagRecord.id"),
@computed("tagRecord.id")
tagClass(tagRecordId) {
return "tag-" + tagRecordId;
},
href: function() {
return Discourse.getURL("/tags/" + this.get("tagRecord.id"));
}.property("tagRecord.id")
@computed("tagRecord.id")
href(tagRecordId) {
return Discourse.getURL("/tags/" + tagRecordId);
}
});
@@ -1,18 +1,21 @@
import { propertyEqual } from "discourse/lib/computed";
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
tagName: "li",
classNameBindings: ["active", "tabClassName"],
tabClassName: function() {
return "edit-category-" + this.get("tab");
}.property("tab"),
@computed("tab")
tabClassName(tab) {
return "edit-category-" + tab;
},
active: propertyEqual("selectedTab", "tab"),
title: function() {
return I18n.t("category." + this.get("tab").replace("-", "_"));
}.property("tab"),
@computed("tab")
title(tab) {
return I18n.t("category." + tab.replace("-", "_"));
},
didInsertElement() {
this._super(...arguments);
@@ -1,9 +1,12 @@
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
classNames: ["controls"],
label: function() {
return I18n.t(this.get("labelKey"));
}.property("labelKey"),
@computed("labelKey")
label(labelKey) {
return I18n.t(labelKey);
},
change() {
const warning = this.get("warning");
@@ -1,4 +1,5 @@
import DiscourseURL from "discourse/lib/url";
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
tagName: "a",
@@ -10,17 +11,19 @@ export default Ember.Component.extend({
],
attributeBindings: ["href"],
href: function() {
@computed("tagId", "category")
href(tagId, category) {
var url = "/tags";
if (this.get("category")) {
url += this.get("category.url");
if (category) {
url += category.url;
}
return url + "/" + this.get("tagId");
}.property("tagId", "category"),
return url + "/" + tagId;
},
tagClass: function() {
return "tag-" + this.get("tagId");
}.property("tagId"),
@computed("tagId")
tagClass(tagId) {
return "tag-" + tagId;
},
click(e) {
e.preventDefault();
@@ -38,7 +38,13 @@ export default Ember.TextField.extend({
},
@computed("placeholderKey")
placeholder(placeholderKey) {
return placeholderKey ? I18n.t(placeholderKey) : "";
placeholder: {
get() {
if (this._placeholder) return this._placeholder;
return this.placeholderKey ? I18n.t(this.placeholderKey) : "";
},
set(value) {
return (this._placeholder = value);
}
}
});
@@ -1,10 +1,12 @@
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
classNames: ["top-title-buttons"],
periods: function() {
const period = this.get("period");
@computed("period")
periods(period) {
return this.site.get("periods").filter(p => p !== period);
}.property("period"),
},
actions: {
changePeriod(p) {
@@ -1,4 +1,7 @@
import { observes } from "ember-addons/ember-computed-decorators";
import {
default as computed,
observes
} from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
tagName: "table",
@@ -16,25 +19,25 @@ export default Ember.Component.extend({
this.refreshLastVisited();
}.on("init"),
toggleInTitle: function() {
return !this.get("bulkSelectEnabled") && this.get("canBulkSelect");
}.property("bulkSelectEnabled"),
@computed("bulkSelectEnabled")
toggleInTitle(bulkSelectEnabled) {
return !bulkSelectEnabled && this.get("canBulkSelect");
},
sortable: function() {
@computed
sortable() {
return !!this.get("changeSort");
}.property(),
},
skipHeader: function() {
return this.site.mobileView;
}.property(),
@computed("order")
showLikes(order) {
return order === "likes";
},
showLikes: function() {
return this.get("order") === "likes";
}.property("order"),
showOpLikes: function() {
return this.get("order") === "op_likes";
}.property("order"),
@computed("order")
showOpLikes(order) {
return order === "op_likes";
},
@observes("topics.[]")
topicsAdded() {
@@ -2,6 +2,7 @@ import { iconHTML } from "discourse-common/lib/icon-library";
import { bufferedRender } from "discourse-common/lib/buffered-render";
import { escapeExpression } from "discourse/lib/utilities";
import TopicStatusIcons from "discourse/helpers/topic-status-icons";
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend(
bufferedRender({
@@ -26,9 +27,10 @@ export default Ember.Component.extend(
return false;
},
canAct: function() {
return Discourse.User.current() && !this.get("disableActions");
}.property("disableActions"),
@computed("disableActions")
canAct(disableActions) {
return Discourse.User.current() && !disableActions;
},
buildBuffer(buffer) {
const canAct = this.get("canAct");
@@ -1,14 +1,18 @@
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
tagName: "span",
showGrantCount: function() {
return this.get("count") && this.get("count") > 1;
}.property("count"),
@computed("count")
showGrantCount(count) {
return count && count > 1;
},
badgeUrl: function() {
@computed("badge", "user")
badgeUrl() {
// NOTE: I tried using a link-to helper here but the queryParams mean it fails
var username = this.get("user.username_lower") || "";
username = username !== "" ? "?username=" + username : "";
return this.get("badge.url") + username;
}.property("badge", "user")
}
});
@@ -1,10 +1,12 @@
import { fmt } from "discourse/lib/computed";
import computed from "ember-addons/ember-computed-decorators";
export default Ember.Component.extend({
classNameBindings: [":user-field", "field.field_type"],
layoutName: fmt("field.field_type", "components/user-fields/%@"),
noneLabel: function() {
@computed
noneLabel() {
return "user_fields.none";
}.property()
}
});