mirror of
https://github.com/discourse/discourse.git
synced 2025-06-06 13:06:56 +08:00
REFACTOR: Migrate Discourse.Post
to imports
This commit is contained in:
@ -7,6 +7,7 @@ import { propertyGreaterThan, propertyLessThan } from "discourse/lib/computed";
|
|||||||
import { on, observes } from "discourse-common/utils/decorators";
|
import { on, observes } from "discourse-common/utils/decorators";
|
||||||
import { sanitizeAsync } from "discourse/lib/text";
|
import { sanitizeAsync } from "discourse/lib/text";
|
||||||
import { iconHTML } from "discourse-common/lib/icon-library";
|
import { iconHTML } from "discourse-common/lib/icon-library";
|
||||||
|
import Post from "discourse/models/post";
|
||||||
|
|
||||||
function customTagArray(fieldName) {
|
function customTagArray(fieldName) {
|
||||||
return Ember.computed(fieldName, function() {
|
return Ember.computed(fieldName, function() {
|
||||||
@ -59,19 +60,19 @@ export default Controller.extend(ModalFunctionality, {
|
|||||||
refresh(postId, postVersion) {
|
refresh(postId, postVersion) {
|
||||||
this.set("loading", true);
|
this.set("loading", true);
|
||||||
|
|
||||||
Discourse.Post.loadRevision(postId, postVersion).then(result => {
|
Post.loadRevision(postId, postVersion).then(result => {
|
||||||
this.setProperties({ loading: false, model: result });
|
this.setProperties({ loading: false, model: result });
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
hide(postId, postVersion) {
|
hide(postId, postVersion) {
|
||||||
Discourse.Post.hideRevision(postId, postVersion).then(() =>
|
Post.hideRevision(postId, postVersion).then(() =>
|
||||||
this.refresh(postId, postVersion)
|
this.refresh(postId, postVersion)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
show(postId, postVersion) {
|
show(postId, postVersion) {
|
||||||
Discourse.Post.showRevision(postId, postVersion).then(() =>
|
Post.showRevision(postId, postVersion).then(() =>
|
||||||
this.refresh(postId, postVersion)
|
this.refresh(postId, postVersion)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -16,7 +16,7 @@ import Composer from "discourse/models/composer";
|
|||||||
import { Promise } from "rsvp";
|
import { Promise } from "rsvp";
|
||||||
|
|
||||||
const Post = RestModel.extend({
|
const Post = RestModel.extend({
|
||||||
// TODO: Remove this once one instantiate all `Discourse.Post` models via the store.
|
// TODO: Remove this once one instantiate all `Post` models via the store.
|
||||||
siteSettings: Ember.computed({
|
siteSettings: Ember.computed({
|
||||||
get() {
|
get() {
|
||||||
return Discourse.SiteSettings;
|
return Discourse.SiteSettings;
|
||||||
@ -320,7 +320,7 @@ const Post = RestModel.extend({
|
|||||||
|
|
||||||
// need to wait to hear back from server (stuff may not be loaded)
|
// need to wait to hear back from server (stuff may not be loaded)
|
||||||
|
|
||||||
return Discourse.Post.updateBookmark(this.id, this.bookmarked)
|
return Post.updateBookmark(this.id, this.bookmarked)
|
||||||
.then(result => {
|
.then(result => {
|
||||||
this.set("topic.bookmarked", result.topic_bookmarked);
|
this.set("topic.bookmarked", result.topic_bookmarked);
|
||||||
this.appEvents.trigger("page:bookmark-post-toggled", this);
|
this.appEvents.trigger("page:bookmark-post-toggled", this);
|
||||||
@ -417,7 +417,7 @@ Post.reopenClass({
|
|||||||
|
|
||||||
loadQuote(postId) {
|
loadQuote(postId) {
|
||||||
return ajax(`/posts/${postId}.json`).then(result => {
|
return ajax(`/posts/${postId}.json`).then(result => {
|
||||||
const post = Discourse.Post.create(result);
|
const post = Post.create(result);
|
||||||
return Quote.build(post, post.raw, { raw: true, full: true });
|
return Quote.build(post, post.raw, { raw: true, full: true });
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -91,8 +91,7 @@ JS
|
|||||||
"discourse/models/site",
|
"discourse/models/site",
|
||||||
"discourse/models/user",
|
"discourse/models/user",
|
||||||
"discourse/models/session",
|
"discourse/models/session",
|
||||||
"discourse/models/model",
|
"discourse/models/model"
|
||||||
"discourse/models/post"
|
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ import EmberObject from "@ember/object";
|
|||||||
import { currentUser } from "helpers/qunit-helpers";
|
import { currentUser } from "helpers/qunit-helpers";
|
||||||
import AppEvents from "discourse/services/app-events";
|
import AppEvents from "discourse/services/app-events";
|
||||||
import Composer from "discourse/models/composer";
|
import Composer from "discourse/models/composer";
|
||||||
|
import Post from "discourse/models/post";
|
||||||
import createStore from "helpers/create-store";
|
import createStore from "helpers/create-store";
|
||||||
|
|
||||||
QUnit.module("model:composer");
|
QUnit.module("model:composer");
|
||||||
@ -247,7 +248,7 @@ QUnit.test("editingFirstPost", assert => {
|
|||||||
const composer = createComposer();
|
const composer = createComposer();
|
||||||
assert.ok(!composer.get("editingFirstPost"), "it's false by default");
|
assert.ok(!composer.get("editingFirstPost"), "it's false by default");
|
||||||
|
|
||||||
const post = Discourse.Post.create({ id: 123, post_number: 2 });
|
const post = Post.create({ id: 123, post_number: 2 });
|
||||||
composer.setProperties({ post: post, action: Composer.EDIT });
|
composer.setProperties({ post: post, action: Composer.EDIT });
|
||||||
assert.ok(
|
assert.ok(
|
||||||
!composer.get("editingFirstPost"),
|
!composer.get("editingFirstPost"),
|
||||||
@ -265,7 +266,7 @@ QUnit.test("clearState", assert => {
|
|||||||
const composer = createComposer({
|
const composer = createComposer({
|
||||||
originalText: "asdf",
|
originalText: "asdf",
|
||||||
reply: "asdf2",
|
reply: "asdf2",
|
||||||
post: Discourse.Post.create({ id: 1 }),
|
post: Post.create({ id: 1 }),
|
||||||
title: "wat"
|
title: "wat"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -329,7 +330,7 @@ QUnit.test("Title length for static page topics as admin", assert => {
|
|||||||
Discourse.SiteSettings.max_topic_title_length = 10;
|
Discourse.SiteSettings.max_topic_title_length = 10;
|
||||||
const composer = createComposer();
|
const composer = createComposer();
|
||||||
|
|
||||||
const post = Discourse.Post.create({
|
const post = Post.create({
|
||||||
id: 123,
|
id: 123,
|
||||||
post_number: 2,
|
post_number: 2,
|
||||||
static_doc: true
|
static_doc: true
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
QUnit.module("model:post-stream");
|
import Post from "discourse/models/post";
|
||||||
|
|
||||||
import createStore from "helpers/create-store";
|
import createStore from "helpers/create-store";
|
||||||
|
|
||||||
|
QUnit.module("model:post-stream");
|
||||||
|
|
||||||
const buildStream = function(id, stream) {
|
const buildStream = function(id, stream) {
|
||||||
const store = createStore();
|
const store = createStore();
|
||||||
const topic = store.createRecord("topic", { id, chunk_size: 5 });
|
const topic = store.createRecord("topic", { id, chunk_size: 5 });
|
||||||
@ -173,7 +174,7 @@ QUnit.test("updateFromJson", assert => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
assert.equal(postStream.get("posts.length"), 1, "it loaded the posts");
|
assert.equal(postStream.get("posts.length"), 1, "it loaded the posts");
|
||||||
assert.containsInstance(postStream.get("posts"), Discourse.Post);
|
assert.containsInstance(postStream.get("posts"), Post);
|
||||||
|
|
||||||
assert.equal(postStream.get("extra_property"), 12);
|
assert.equal(postStream.get("extra_property"), 12);
|
||||||
});
|
});
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
QUnit.module("Discourse.Post");
|
import Post from "discourse/models/post";
|
||||||
|
|
||||||
|
QUnit.module("model: Post");
|
||||||
|
|
||||||
var buildPost = function(args) {
|
var buildPost = function(args) {
|
||||||
return Discourse.Post.create(
|
return Post.create(
|
||||||
_.merge(
|
_.merge(
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
@ -14,13 +16,13 @@ var buildPost = function(args) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
QUnit.test("defaults", assert => {
|
QUnit.test("defaults", assert => {
|
||||||
var post = Discourse.Post.create({ id: 1 });
|
var post = Post.create({ id: 1 });
|
||||||
assert.blank(post.get("deleted_at"), "it has no deleted_at by default");
|
assert.blank(post.get("deleted_at"), "it has no deleted_at by default");
|
||||||
assert.blank(post.get("deleted_by"), "there is no deleted_by by default");
|
assert.blank(post.get("deleted_by"), "there is no deleted_by by default");
|
||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test("new_user", assert => {
|
QUnit.test("new_user", assert => {
|
||||||
var post = Discourse.Post.create({ trust_level: 0 });
|
var post = Post.create({ trust_level: 0 });
|
||||||
assert.ok(post.get("new_user"), "post is from a new user");
|
assert.ok(post.get("new_user"), "post is from a new user");
|
||||||
|
|
||||||
post.set("trust_level", 1);
|
post.set("trust_level", 1);
|
||||||
@ -28,7 +30,7 @@ QUnit.test("new_user", assert => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test("firstPost", assert => {
|
QUnit.test("firstPost", assert => {
|
||||||
var post = Discourse.Post.create({ post_number: 1 });
|
var post = Post.create({ post_number: 1 });
|
||||||
assert.ok(post.get("firstPost"), "it's the first post");
|
assert.ok(post.get("firstPost"), "it's the first post");
|
||||||
|
|
||||||
post.set("post_number", 10);
|
post.set("post_number", 10);
|
||||||
@ -36,13 +38,13 @@ QUnit.test("firstPost", assert => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test("updateFromPost", assert => {
|
QUnit.test("updateFromPost", assert => {
|
||||||
var post = Discourse.Post.create({
|
var post = Post.create({
|
||||||
post_number: 1,
|
post_number: 1,
|
||||||
raw: "hello world"
|
raw: "hello world"
|
||||||
});
|
});
|
||||||
|
|
||||||
post.updateFromPost(
|
post.updateFromPost(
|
||||||
Discourse.Post.create({
|
Post.create({
|
||||||
raw: "different raw",
|
raw: "different raw",
|
||||||
wat: function() {
|
wat: function() {
|
||||||
return 123;
|
return 123;
|
||||||
|
Reference in New Issue
Block a user