import Category from "discourse/models/category"; import DiscourseURL from "discourse/lib/url"; import EmberObject from "@ember/object"; import { ajax } from "discourse/lib/ajax"; import discourseComputed from "discourse-common/utils/decorators"; const Permalink = EmberObject.extend({ save: function () { return ajax("/admin/permalinks.json", { type: "POST", data: { url: this.url, permalink_type: this.permalink_type, permalink_type_value: this.permalink_type_value, }, }); }, @discourseComputed("category_id") category: function (category_id) { return Category.findById(category_id); }, @discourseComputed("external_url") linkIsExternal: function (external_url) { return !DiscourseURL.isInternal(external_url); }, destroy: function () { return ajax("/admin/permalinks/" + this.id + ".json", { type: "DELETE", }); }, }); Permalink.reopenClass({ findAll: function (filter) { return ajax("/admin/permalinks.json", { data: { filter: filter } }).then( function (permalinks) { return permalinks.map((p) => Permalink.create(p)); } ); }, }); export default Permalink;