var fs = require('fs'); module.exports = function(qwiki) { qwiki.rule('edit', '@@CONTENT@@', function(req, res, instance, next) { var area = (req.area == '' ? 'front' : req.area.substr(1)); var path = 'wiki/'+area+'.qwk'; res.write('

'); res.write('
'); res.write('
'); next(); }); }); qwiki.act('edit', function(req, res) { var area = (req.area == '' ? 'front' : req.area.substr(1)); // handle POST if ('submit' in req.fields && req.fields['submit'] == 'save') { var old_area = area; if ('page' in req.fields) { area = req.fields['page']; } if (typeof qwiki.wiki_index.pages[area] == 'undefined') { qwiki.wiki_index.pages[area] = { format: qwiki.getDefault('format') }; } // get our format if ('format' in req.fields) { qwiki.wiki_index.pages[area].format = req.fields['format']; } // console.log(old_area + ' vs ' + area); if (old_area != area) { fs.rename('wiki/'+old_area+'.qwk', 'wiki/'+area+'.qwk', function() { qwiki.deleteCache(old_area, function() { if ('content' in req.fields) { qwiki.savePage(area, req.fields['content'], function(err) { if (err) { res.write(err.code); res.end(); } else { qwiki.createCache(area, req.fields['content'], function(err) { if (err) { res.write(err.code); res.end(); } else { res.writeHead(302, {'Location': '/'+area+'/edit'}); res.end(); } }); } }); } }); }); } else { if ('content' in req.fields) { qwiki.savePage(area, req.fields['content'], function(err) { if (err) { res.write(err.code); res.end(); } else { qwiki.createCache(area, req.fields['content'], function(err) { if (err) { res.write(err.code); res.end(); } else { res.writeHead(302, {'Location': '/'+area+'/edit'}); res.end(); } }); } }); } } return; } res.writeHead(200, "OK", { "Content-Type": "text/html", }); qwiki.parsePage('edit', '', req, res); }); };