This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/app/models/static-page.js
2020-12-01 15:31:26 -03:00

29 lines
878 B
JavaScript

import EmberObject from "@ember/object";
import { Promise } from "rsvp";
import { ajax } from "discourse/lib/ajax";
const StaticPage = EmberObject.extend();
StaticPage.reopenClass({
find(path) {
return new Promise((resolve) => {
// Models shouldn't really be doing Ajax request, but this is a huge speed boost if we
// preload content.
const $preloaded = $('noscript[data-path="/' + path + '"]');
if ($preloaded.length) {
let text = $preloaded.text();
text = text.match(
/<!-- preload-content: -->((?:.|[\n\r])*)<!-- :preload-content -->/
)[1];
resolve(StaticPage.create({ path, html: text }));
} else {
ajax(`/${path}.html`, { dataType: "html" }).then((result) =>
resolve(StaticPage.create({ path, html: result }))
);
}
});
},
});
export default StaticPage;