2016-07-01 01:55:44 +08:00
|
|
|
import { ajax } from "discourse/lib/ajax";
|
2020-03-26 02:30:39 +08:00
|
|
|
import discourseComputed from "discourse-common/utils/decorators";
|
|
|
|
import DiscourseURL from "discourse/lib/url";
|
|
|
|
import Category from "discourse/models/category";
|
2019-11-09 03:13:35 +08:00
|
|
|
import EmberObject from "@ember/object";
|
|
|
|
|
|
|
|
const Permalink = EmberObject.extend({
|
2015-07-15 20:54:28 +08:00
|
|
|
save: function () {
|
2016-07-01 01:55:44 +08:00
|
|
|
return ajax("/admin/permalinks.json", {
|
2015-07-15 20:54:28 +08:00
|
|
|
type: "POST",
|
|
|
|
data: {
|
2019-05-27 16:15:39 +08:00
|
|
|
url: this.url,
|
|
|
|
permalink_type: this.permalink_type,
|
|
|
|
permalink_type_value: this.permalink_type_value,
|
2015-07-15 20:54:28 +08:00
|
|
|
},
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
2020-03-26 02:30:39 +08:00
|
|
|
@discourseComputed("category_id")
|
|
|
|
category: function (category_id) {
|
|
|
|
return Category.findById(category_id);
|
|
|
|
},
|
|
|
|
|
|
|
|
@discourseComputed("external_url")
|
|
|
|
linkIsExternal: function (external_url) {
|
|
|
|
return !DiscourseURL.isInternal(external_url);
|
|
|
|
},
|
|
|
|
|
2015-07-15 20:54:28 +08:00
|
|
|
destroy: function () {
|
2019-05-27 16:15:39 +08:00
|
|
|
return ajax("/admin/permalinks/" + this.id + ".json", {
|
2016-07-01 01:55:44 +08:00
|
|
|
type: "DELETE",
|
|
|
|
});
|
2015-07-15 20:54:28 +08:00
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
Permalink.reopenClass({
|
|
|
|
findAll: function (filter) {
|
2016-07-01 01:55:44 +08:00
|
|
|
return ajax("/admin/permalinks.json", { data: { filter: filter } }).then(
|
|
|
|
function (permalinks) {
|
2015-11-21 09:27:06 +08:00
|
|
|
return permalinks.map((p) => Permalink.create(p));
|
2015-07-15 20:54:28 +08:00
|
|
|
}
|
|
|
|
);
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
export default Permalink;
|