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

92 lines
3.0 KiB
JavaScript

import StringUtils from "../utils/StringUtils";
export default class PostActions {
//--------------------------
// constructor
//--------------------------
constructor() {}
//--------------------------
// methods
//--------------------------
collectInfo(image) {
return new Promise((resolve, reject) => {
let pageInfo = new FormData();
let txt = document.createElement("textarea");
txt.innerHTML = document.getElementById("edit-post-text").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 (image != null || image != undefined) {
if (image.type.match("image.*")) {
pageInfo.append("feature_image", image, image.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);
}
}
resolve(pageInfo);
});
}
//--------------------------
// event handlers
//--------------------------
}