Skip to content

Commit

Permalink
Merge branch 'release/v0.8.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
andzdroid committed May 6, 2012
2 parents 14240f1 + 2ec3ae9 commit 74852bc
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 7 deletions.
8 changes: 6 additions & 2 deletions app.js
Expand Up @@ -249,13 +249,17 @@ var middleware = function(req, res, next) {


//Routes //Routes
app.get('/', middleware, routes.index); app.get('/', middleware, routes.index);

app.get('/db/:database/:collection/:document', middleware, routes.viewDocument); app.get('/db/:database/:collection/:document', middleware, routes.viewDocument);
app.put('/db/:database/:collection/:document', middleware, routes.updateDocument);

app.get('/db/:database/:collection', middleware, routes.viewCollection); app.get('/db/:database/:collection', middleware, routes.viewCollection);
app.del('/db/:database/:collection', middleware, routes.deleteCollection);
app.put('/db/:database/:collection', middleware, routes.renameCollection); app.put('/db/:database/:collection', middleware, routes.renameCollection);
app.get('/db/:database', middleware, routes.viewDatabase); app.del('/db/:database/:collection', middleware, routes.deleteCollection);
app.post('/db/:database', middleware, routes.addCollection); app.post('/db/:database', middleware, routes.addCollection);


app.get('/db/:database', middleware, routes.viewDatabase);

app.listen(config.site.port || 80); app.listen(config.site.port || 80);


console.log("Mongo Express server listening on port " + (config.site.port || 80)); console.log("Mongo Express server listening on port " + (config.site.port || 80));
2 changes: 1 addition & 1 deletion filters.js
@@ -1,3 +1,3 @@
exports.json = function(input) { exports.json = function(input) {
return JSON.stringify(input, null, ' '); return JSON.stringify(input, null, ' ');
}; };
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -2,7 +2,7 @@
"author": "Chun-hao Hu <hu.chunhao@gmail.com> (http://blog.huchunhao.com)", "author": "Chun-hao Hu <hu.chunhao@gmail.com> (http://blog.huchunhao.com)",
"name": "mongo-express", "name": "mongo-express",
"description": "Web-based admin interface for MongoDB", "description": "Web-based admin interface for MongoDB",
"version": "0.7.1", "version": "0.8.0",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git://github.com/andzdroid/mongo-express.git" "url": "git://github.com/andzdroid/mongo-express.git"
Expand Down
33 changes: 33 additions & 0 deletions routes/document.js
@@ -1,4 +1,5 @@
var config = require('../config'); var config = require('../config');
var mongodb = require('mongodb');


exports.viewDocument = function(req, res, next) { exports.viewDocument = function(req, res, next) {
var ctx = { var ctx = {
Expand All @@ -8,3 +9,35 @@ exports.viewDocument = function(req, res, next) {


res.render('document', ctx); res.render('document', ctx);
}; };

exports.updateDocument = function(req, res, next) {
var doc = req.body.document;

if (doc == undefined) {
//TODO: handle error
return res.redirect('back');
}

var docJSON;
try {
docJSON = JSON.parse(doc);
} catch (err) {
//TODO: handle error
console.error(err);
return res.redirect('back');
}

var id = new mongodb.ObjectID.createFromHexString(docJSON._id);
docJSON._id = id;

req.collection.save(docJSON, {safe: true}, function(err, result) {
if (err) {
//TODO: handle error
//document was not saved
console.error(err);
return res.redirect('back');
}

return res.redirect('/db/' + req.dbName + '/' + req.collectionName);
});
};
4 changes: 4 additions & 0 deletions routes/index.js
Expand Up @@ -2,12 +2,16 @@
var db = require('./database'); var db = require('./database');
var coll = require('./collection'); var coll = require('./collection');
var doc = require('./document'); var doc = require('./document');

exports.viewDatabase = db.viewDatabase; exports.viewDatabase = db.viewDatabase;

exports.viewCollection = coll.viewCollection; exports.viewCollection = coll.viewCollection;
exports.addCollection = coll.addCollection; exports.addCollection = coll.addCollection;
exports.deleteCollection = coll.deleteCollection; exports.deleteCollection = coll.deleteCollection;
exports.renameCollection = coll.renameCollection; exports.renameCollection = coll.renameCollection;

exports.viewDocument = doc.viewDocument; exports.viewDocument = doc.viewDocument;
exports.updateDocument = doc.updateDocument;




//Homepage route //Homepage route
Expand Down
3 changes: 2 additions & 1 deletion views/collection.html
Expand Up @@ -13,7 +13,7 @@


<style type="text/css"> <style type="text/css">
.CodeMirror-scroll { .CodeMirror-scroll {
height: 100px; height: 120px;
overflow: auto; overflow: auto;
} }
</style> </style>
Expand Down Expand Up @@ -59,6 +59,7 @@
var doc = CodeMirror.fromTextArea(document.getElementById('doc_{{ loop.index }}'), { var doc = CodeMirror.fromTextArea(document.getElementById('doc_{{ loop.index }}'), {
mode: { name: "javascript", json: true }, mode: { name: "javascript", json: true },
readOnly: true, readOnly: true,
indentUnit: 4,
autoClearEmptyLines: true, autoClearEmptyLines: true,
matchBrackets: true, matchBrackets: true,
theme: "{{ editorTheme }}", theme: "{{ editorTheme }}",
Expand Down
14 changes: 12 additions & 2 deletions views/document.html
Expand Up @@ -43,11 +43,21 @@


{% block content %} {% block content %}


<textarea class="span9" id="documentContent" name="documentContent">{{ document|json }}</textarea> <form method="POST" action="db/{{ dbName }}/{{ collectionName }}/{{ document._id }}">
<input type="hidden" name="_method" value="put">
<button type="submit" class="btn btn-success btn-large">
<i class="icon-folder-open icon-white"></i>
Save
</button>
<br /><br />

<textarea class="span9" id="document" name="document">{{ document|json }}</textarea>
</form>


<script> <script>
var doc = CodeMirror.fromTextArea(document.getElementById('documentContent'), { var doc = CodeMirror.fromTextArea(document.getElementById('document'), {
mode: { name: "javascript", json: true }, mode: { name: "javascript", json: true },
indentUnit: 4,
lineNumbers: true, lineNumbers: true,
autoClearEmptyLines: true, autoClearEmptyLines: true,
matchBrackets: true, matchBrackets: true,
Expand Down

0 comments on commit 74852bc

Please sign in to comment.