Yoji SHIDARA
null+****@clear*****
Tue Oct 16 14:30:59 JST 2012
Yoji SHIDARA 2012-10-16 14:30:59 +0900 (Tue, 16 Oct 2012) New Revision: c11da579b37bf863b5ee2a30c333a18f1f5c5fb6 https://github.com/groonga/gcs-console/commit/c11da579b37bf863b5ee2a30c333a18f1f5c5fb6 Log: Add 'delete domain' feature TODOs: Error handling, confirmation before deleting, notice after deletion Modified files: app.js routes/index.js views/domain.jade Modified: app.js (+1 -0) =================================================================== --- app.js 2012-10-16 13:32:00 +0900 (85050b0) +++ app.js 2012-10-16 14:30:59 +0900 (baa67aa) @@ -31,6 +31,7 @@ app.get('/domain/:name', routes.domain); app.get('/domain/:name/search', routes.domainSearch); app.get('/domain_create', routes.domainCreate); app.post('/domain_create', routes.domainCreatePost); +app.delete('/domain/:name', routes.domainDelete); http.createServer(app).listen(app.get('port'), function(){ console.log("Groonga CloudSearch Console listening on port " + Modified: routes/index.js (+21 -0) =================================================================== --- routes/index.js 2012-10-16 13:32:00 +0900 (0d679ee) +++ routes/index.js 2012-10-16 14:30:59 +0900 (eef85c7) @@ -26,6 +26,7 @@ function convertToArray(data) { exports.domain = function(req, res) { var domain = prepareCurrentDomain(req, res); + req.session.flash = domain.DomainName; res.render('domain-show', {domain: domain}); }; @@ -114,3 +115,23 @@ exports.domainCreatePost = function(req, res) { res.redirect('/domain/'+domainCreated.DomainName); }); }; + +exports.domainDelete = function(req, res) { + var domain = prepareCurrentDomain(req, res); + req.cloudsearch.DeleteDomain({ + DomainName: domain.DomainName + }, function(error, data) { + if (error) { + // TODO redirect back domainCreate if it is a kind of validation error + // TODO render error in a more pretty way + // TODO in some cases, the error should be 400 rather than 500 + res.status(500); + var message = JSON.stringify(error.Body.Response.Errors); + res.render('error', {message: message}); + return; + } + + res.redirect('/'); + // TODO some feedback to user may be needed + }); +}; Modified: views/domain.jade (+6 -0) =================================================================== --- views/domain.jade 2012-10-16 13:32:00 +0900 (30fce0f) +++ views/domain.jade 2012-10-16 14:30:59 +0900 (b294869) @@ -5,10 +5,16 @@ block content i.icon-folder-open | = domain.DomainName + p.btn-group a(href="/domain/"+domain.DomainName).btn About a(href="/domain/"+domain.DomainName+"/search").btn Search + // TODO alert user before delete + form(action="/domain/"+domain.DomainName, method="POST") + input(type="hidden", name="_method", value="DELETE") + input(type="submit", value="Destroy").btn.btn-danger + hr block domain-content -------------- next part -------------- HTML����������������������������... 다운로드