|
|
|
//tinymce
|
|
|
|
import Vue from "vue";
|
|
|
|
import tinymce from "tinymce/tinymce";
|
|
|
|
import "tinymce/themes/modern";
|
|
|
|
Vue.use(tinymce);
|
|
|
|
// skin css
|
|
|
|
import "tinymce/skins/lightgray/skin.min.css";
|
|
|
|
import "tinymce/skins/lightgray/content.min.css";
|
|
|
|
//plugins
|
|
|
|
import "tinymce/plugins/advlist";
|
|
|
|
import "tinymce/plugins/autolink";
|
|
|
|
import "tinymce/plugins/lists";
|
|
|
|
import "tinymce/plugins/paste";
|
|
|
|
import "tinymce/plugins/link";
|
|
|
|
import "tinymce/plugins/preview";
|
|
|
|
import "tinymce/plugins/anchor";
|
|
|
|
import "tinymce/plugins/charmap";
|
|
|
|
import "tinymce/plugins/print";
|
|
|
|
import "tinymce/plugins/image";
|
|
|
|
import "tinymce/plugins/searchreplace";
|
|
|
|
import "tinymce/plugins/directionality";
|
|
|
|
import "tinymce/plugins/wordcount";
|
|
|
|
// import "tinymce/plugins/help";
|
|
|
|
import "tinymce/plugins/table";
|
|
|
|
import "tinymce/plugins/media";
|
|
|
|
import "tinymce/plugins/insertdatetime";
|
|
|
|
import "tinymce/plugins/fullscreen";
|
|
|
|
import "tinymce/plugins/code";
|
|
|
|
import "tinymce/plugins/visualblocks";
|
|
|
|
import "@Global/plugins/tinymce/langs/fa_IR";
|
|
|
|
import "@Global/scss/plugins/tinymce.css";
|
|
|
|
import axios from 'axios';
|
|
|
|
export const initTiny = (batch_id) => ({
|
|
|
|
skin: false,
|
|
|
|
height: 500,
|
|
|
|
menubar: false,
|
|
|
|
directionality : 'rtl',
|
|
|
|
language: 'fa_IR',
|
|
|
|
plugins: [
|
|
|
|
"advlist autolink lists link image charmap print preview anchor",
|
|
|
|
"searchreplace visualblocks code fullscreen",
|
|
|
|
"insertdatetime media table paste code wordcount directionality"
|
|
|
|
],
|
|
|
|
toolbar:
|
|
|
|
"undo redo | fontsizeselect formatselect | bold italic backcolor | \
|
|
|
|
alignleft aligncenter alignright alignjustify | \
|
|
|
|
bullist numlist outdent indent | removeformat | image | ltr rtl",
|
|
|
|
// 'fontselect'
|
|
|
|
// font_formats : "IranYekan=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;AkrutiKndPadmini=Akpdmi-n",
|
|
|
|
fontsize_formats: '10pt 12pt 14pt 16pt 18pt 20pt 22pt 24pt 36pt 60pt 72pt',
|
|
|
|
images_upload_url: "/api/files",
|
|
|
|
relative_urls : false,
|
|
|
|
remove_script_host : false,
|
|
|
|
document_base_url: window.location.origin,
|
|
|
|
images_upload_credentials: true,
|
|
|
|
automatic_uploads: false,
|
|
|
|
file_picker_types: "file image media",
|
|
|
|
content_style: 'body { font-family: "iranyekan", "Montserrat" !important; }',
|
|
|
|
images_upload_handler: async function(blobInfo, success, failure) {
|
|
|
|
let formData = new FormData();
|
|
|
|
formData.append("file", blobInfo.blob(), blobInfo.filename());
|
|
|
|
formData.append("batch_id", batch_id);
|
|
|
|
let response = await axios.post('/api/file', formData);
|
|
|
|
|
|
|
|
if (response && response.status == 200) {
|
|
|
|
return success(response.data.data.url);
|
|
|
|
} else {
|
|
|
|
return failure("HTTP Error: " + response.status);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|