You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Fipamo/src/com/actions/PageActions.js

95 lines
3.1 KiB
JavaScript

import StringUtils from "../utils/StringUtils";
export default class PostActions {
//--------------------------
// constructor
//--------------------------
constructor() {}
//--------------------------
// methods
//--------------------------
collectInfo(files) {
return new Promise((resolve, reject) => {
let pageInfo = new FormData();
let txt = document.createElement("textarea");
txt.innerHTML = document.getElementById("highlight-content").innerHTML;
let html = txt.value;
html = html.replace(/<\/?span[^>]*>/g, ""); //removes prism styling
html = html.replace(/<\/?br[^>]*>/g, "\n"); //convert back to encoded line break for storage
pageInfo.append(
"id",
document.getElementById("post-edit-index").getAttribute("data-index")
);
pageInfo.append(
"uuid",
document.getElementById("post-edit-index").getAttribute("data-uuid")
);
pageInfo.append(
"layout",
document.getElementById("post-edit-index").getAttribute("data-layout")
);
pageInfo.append(
"current_title",
document.getElementById("post-edit-index").getAttribute("data-slug")
);
pageInfo.append("content", html);
pageInfo.append("title", document.getElementById("post_title").value);
pageInfo.append(
"created",
document.getElementById("post-date").getAttribute("data-raw")
);
pageInfo.append(
"slug",
new StringUtils().cleanString(
document.getElementById("post_title").value
)
);
pageInfo.append("tags", document.getElementById("post_tags").value);
pageInfo.append(
"menu",
document.getElementById("option-menu-pin").getAttribute("data-active")
);
pageInfo.append(
"featured",
document.getElementById("option-feature").getAttribute("data-active")
);
pageInfo.append(
"published",
document.getElementById("option-published").getAttribute("data-active")
);
pageInfo.append(
"layout",
document.getElementById("page-templates").value
);
pageInfo.append(
"form_token",
document.getElementById("form_token").value
);
if (files.length > 0 && files != null) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
if (file.type.match("image.*")) {
pageInfo.append("page_files[]", file, file.name);
} else {
reject("Not an image file");
}
}
} else {
//check to see if image exists
if (document.getElementById("featured-image")) {
var imageURL = document.getElementById("featured-image").src;
imageURL != null || imageURL != undefined
? pageInfo.append("feature_image", imageURL)
: pageInfo.append("feature_image", null);
} else {
//pageInfo.append("feature_image", null);
}
}
//console.log("FILES", files);
resolve(pageInfo);
});
}
//--------------------------
// event handlers
//--------------------------
}