shell bypass 403
import openImport from './openImport';
import CodeEditor from './codeEditor';
import {
cmdImport,
cmdDeviceDesktop,
cmdDeviceTablet,
cmdDeviceMobile,
cmdClear
} from './../consts';
export default (editor, config) => {
let codeEditor;
console.log(codeEditor);
const cm = editor.Commands;
const txtConfirm = config.textCleanCanvas;
const modal = editor.Modal;
cm.add(cmdImport, openImport(editor, config));
cm.add(cmdDeviceDesktop, e => e.setDevice('Desktop'));
cm.add(cmdDeviceTablet, e => e.setDevice('Tablet'));
cm.add(cmdDeviceMobile, e => e.setDevice('Mobile portrait'));
cm.add(cmdClear, e => confirm(txtConfirm) && e.runCommand('core:canvas-clear'));
if(window.config.all_icons){
cm.add('open-icons-modal', {
run(ed, sender, opts = {}) {
let component = opts.component || ed.getSelected();
var all_icons = window.config.all_icons;
modal.setTitle("Font awesome icons 5");
var content = `
<div class="div-search-modal-icon">
<input type="text" name="search" id="input-icon-search" class="form-control-builder" placeholder="Search name icon">
</div>
<div id="icons-modal-list" style='min-height:300px;'>`;
for (var i = 0, len = all_icons.length; i < len; i++) {
content+=`<i class="${all_icons[i]}"></i>`;
}
content+=`</div>`;
modal.setContent(content);
document.querySelector("input#input-icon-search").addEventListener("change", function(element){
var search = document.getElementById('input-icon-search').value;
var matches = all_icons.filter(name => name.includes(search));
if (matches.length > 0) {
var content_match = '';
for (var i = 0, len = matches.length; i < len; i++) {
content_match+=`<i class="${matches[i]}"></i>`;
}
document.getElementById("icons-modal-list").innerHTML = content_match;
}
else{
document.getElementById("icons-modal-list").innerHTML = `<h3>Not found any icons</h3>`;
}
document.querySelectorAll("div#icons-modal-list > i").forEach(icon =>
icon.addEventListener("click", function(icon){
component.set({
attributes: { class: this.className},
});
modal.close();
})
);
});
document.querySelectorAll("div#icons-modal-list > i").forEach(icon =>
icon.addEventListener("click", function(icon){
component.set({
attributes: { class: this.className},
});
modal.close();
})
);
modal.open().getModel()
.once('change:open', () => editor.stopCommand(this.id));
},
stop(editor, sender) {
modal.close();
},
});
}
// Launch Code Editor popup
cm.add('code-edit', {
run: (editor, sender, options = {}) => {
if (!codeEditor) codeEditor = new CodeEditor(editor, config);
sender && sender.set('active', 0);
codeEditor.showCodePopup();
},
stop: (editor) => {
// Transform token to DC
//Mautic.grapesConvertDynamicContentTokenToSlot(editor);
},
});
}