52 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						||
 | 
						||
let config = require('config');
 | 
						||
let express = require('express');
 | 
						||
let router = new express.Router();
 | 
						||
let passport = require('../lib/passport');
 | 
						||
let fs = require('fs');
 | 
						||
let path = require('path');
 | 
						||
let editorHelpers = require('../lib/editor-helpers.js')
 | 
						||
 | 
						||
router.all('/*', (req, res, next) => {
 | 
						||
    if (!req.user) {
 | 
						||
        req.flash('danger', _('Need to be logged in to access restricted content'));
 | 
						||
        return res.redirect('/users/login?next=' + encodeURIComponent(req.originalUrl));
 | 
						||
    }
 | 
						||
    next();
 | 
						||
});
 | 
						||
 | 
						||
router.get('/editor', passport.csrfProtection, (req, res) => {
 | 
						||
    editorHelpers.getResource(req.query.type, req.query.id, (err, resource) => {
 | 
						||
        if (err) {
 | 
						||
            req.flash('danger', err.message || err);
 | 
						||
            return res.redirect('/');
 | 
						||
        }
 | 
						||
 | 
						||
        resource.editorName = resource.editorName ||  'grapejs';
 | 
						||
        resource.editorData = !resource.editorData ?
 | 
						||
            {
 | 
						||
                template: req.query.template || 'demo'
 | 
						||
            } :
 | 
						||
            JSON.parse(resource.editorData);
 | 
						||
 | 
						||
        if (!resource.html && !resource.editorData.html) {
 | 
						||
            try {
 | 
						||
                let file = path.join(__dirname, '..', 'public', 'grapejs', 'templates', resource.editorData.template, 'index.html');
 | 
						||
                resource.html = fs.readFileSync(file, 'utf8');
 | 
						||
            } catch (err) {
 | 
						||
                resource.html = err.message || err;
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        res.render('grapejs/editor', {
 | 
						||
            layout: 'grapejs/layout-editor',
 | 
						||
            type: req.query.type,
 | 
						||
            resource,
 | 
						||
            editorConfig: config.grapejs,
 | 
						||
            csrfToken: req.csrfToken(),
 | 
						||
        });
 | 
						||
    });
 | 
						||
});
 | 
						||
 | 
						||
module.exports = router;
 |