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.*') || file.type.match('video.mp4') || file.type.match('audio.mpeg') || file.type.match('application.pdf') || file.type.match('text.plain') || file.type.match('text.rtf') ) { 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 //-------------------------- }