summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/node_modules/okadminview/index.js15
-rw-r--r--app/node_modules/okresource/index.js12
-rw-r--r--themes/okadmin/templates/resource.liquid4
3 files changed, 26 insertions, 5 deletions
diff --git a/app/node_modules/okadminview/index.js b/app/node_modules/okadminview/index.js
index 987fe51..a376df5 100644
--- a/app/node_modules/okadminview/index.js
+++ b/app/node_modules/okadminview/index.js
@@ -175,6 +175,21 @@ function OKAdminView(options) {
}
});
+ router.delete('/:type/:id/', function deleteResource(req, res, next) {
+ var type = req.params.type;
+ var id = req.params.id;
+ var resource = resourceCache.get(type, id);
+ if (!resource) {
+ errorHandler(req, res)(new Error('No such resource ' + type));
+ } else {
+ meta.get().then(function(metadata) {
+ resource.destroy(id).then(function() {
+ res.redirect(303, '../..');
+ }).fail(errorHandler(req, res));
+ }).fail(errorHandler(req, res));
+ }
+ });
+
return router;
}
}
diff --git a/app/node_modules/okresource/index.js b/app/node_modules/okresource/index.js
index febd1d5..0e8498f 100644
--- a/app/node_modules/okresource/index.js
+++ b/app/node_modules/okresource/index.js
@@ -91,14 +91,16 @@ OKResource.prototype.create = function(data) {
});
};
-OKResource.prototype.destroy = function(data) {
- data = data || {};
- var id = data[this.idField];
+OKResource.prototype.destroy = function(id) {
+ var db = this._db;
+ var type = this.type;
+ var query = {};
+ query[this.idField] = id;
return Q.promise(function(resolve, reject) {
if (!id) {
- reject(new Error('Data does not contain ID property'));
+ reject(new Error('No ID given'));
} else {
- this._db.remove(this.type, data.id, data).then(resolve).fail(reject);
+ db.remove(type, query).then(resolve).fail(reject);
}
});
};
diff --git a/themes/okadmin/templates/resource.liquid b/themes/okadmin/templates/resource.liquid
index c0d348d..48e3ef2 100644
--- a/themes/okadmin/templates/resource.liquid
+++ b/themes/okadmin/templates/resource.liquid
@@ -14,6 +14,10 @@
<label>&nbsp;</label><button type="submit">Save</button>
<div class="clear"></div>
</form>
+ <form action="." method="POST">
+ <input type="hidden" name="_method" value="DELETE">
+ <button type="submit">Delete</button>
+ </form>
</section>
{% include 'partials/tail' %}