jodit
Version:
Jodit is an awesome and useful wysiwyg editor with filebrowser
54 lines (53 loc) • 2.14 kB
JavaScript
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/
import { isString } from "../../../core/helpers/checker/is-string.js";
import { attr } from "../../../core/helpers/utils/attr.js";
import { openImageEditor } from "../../../modules/image-editor/image-editor.js";
/**
* Open image editor dialog
* @private
*/
export function openImageEditorDialog(j, state) {
const url = attr(state.image, 'src') || '', a = j.c.element('a'), loadExternal = () => {
if (a.host !== location.host) {
j.confirm('You can only edit your own images. Download this image on the host?', yes => {
if (yes && j.uploader) {
j.uploader.uploadRemoteImage(a.href.toString(), resp => {
j.alert('The image has been successfully uploaded to the host!', () => {
if (isString(resp.newfilename)) {
state.values.imageSrc =
resp.baseurl +
resp.newfilename;
}
});
}, error => {
j.alert('There was an error loading %s', error.message);
});
}
});
return;
}
};
a.href = url;
j.filebrowser.dataProvider
.getPathByUrl(a.href.toString())
.then(resp => {
openImageEditor.call(j.filebrowser, a.href, resp.name, resp.path, resp.source, (newPath) => {
const timestamp = new Date().getTime();
const newUrl = newPath || url;
state.values.imageSrc =
newUrl +
(newUrl.indexOf('?') !== -1 ? '' : '?') +
'&_tmp=' +
timestamp.toString();
}, error => {
j.alert(error.message);
});
})
.catch(error => {
j.alert(error.message, loadExternal);
});
}