[Groonga-commit] groonga/gcs-console [master] Add 'delete domain' feature

Back to archive index

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����������������������������...
다운로드 



More information about the Groonga-commit mailing list
Back to archive index