Comments (1)
Maybe it's cleaner to create a plugin but I got it done like this:
var commands = editor.Commands;
commands.add('edit-template', {
run(editor, sender) {
var codeViewer = editor && editor.CodeManager.getViewer('CodeMirror').clone();
var btnImp = document.createElement("button");
var container = document.createElement("div");
var currentTemplate = editor.runCommand('gjs-get-inlined-html');
// Setup save button
btnImp.innerHTML = 'Save';
btnImp.className = 'gjs-btn-prim gjs-btn-import';
btnImp.addEventListener('click', function() {
var code = codeViewer.editor.getValue();
editor.DomComponents.getWrapper().set('content', '');
editor.setComponents(code);
editor.Modal.close();
});
codeViewer.set({
codeName: 'htmlmixed',
theme: 'hopscotch',
readOnly: 0
});
var md = editor.Modal;
var modalContent = md.getContentEl();
var viewer = codeViewer.editor;
md.setTitle('HTML Editor ');
if(!viewer) {
var txtarea = document.createElement('textarea');
var labelEl = document.createElement('div');
labelEl.className = 'import-label';
labelEl.innerHTML = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatem vero praesentium odit eum, dicta molestiae cupiditate vitae eaque asperiores nisi fugiat earum amet, officia ut, quisquam eligendi dignissimos ipsam. Aliquid.';
container.appendChild(labelEl);
container.appendChild(txtarea);
container.appendChild(btnImp);
codeViewer.init(txtarea);
viewer = codeViewer.editor;
}
md.setContent('');
md.setContent(container);
codeViewer.setContent(currentTemplate);
md.open();
viewer.refresh();
}
});
from preset-newsletter.
Related Issues (20)
- Add dynamic content using PHP Variable HOT 1
- Clicking enter does not expand the text window HOT 1
- Image uploaded in remote server but not loading in asset manager HOT 1
- Map file
- Is this compatible with latest grapesjs version? HOT 3
- Please guide me on a feature HOT 1
- Unable to use preview option HOT 1
- Remove Category Label Plugin Option HOT 1
- How does javascript get html with inline style? HOT 1
- Error 'Namespace '"grapesjs"' has no exported member 'Plugin'' in Angular 14 HOT 1
- get-inlined-html command is removing characters from styling HOT 1
- Button block produces a simple text Button HOT 1
- const bm unused in blocks.ts file HOT 1
- Unable to set panels' switcher buttons position HOT 2
- Problem in Angular product build HOT 1
- Change theme colors
- Add ckeditor custom plugin HOT 1
- Error for installing and running build
- how to get newsletter code
- image
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from preset-newsletter.