Action to delete mod in mods list

This commit is contained in:
Björn Dahlgren 2015-07-22 18:16:30 +00:00
parent 1080bc0cbe
commit 0643b28490
5 changed files with 48 additions and 8 deletions

View File

@ -1,7 +1,7 @@
var async = require('async'); var async = require('async');
var events = require('events'); var events = require('events');
var filesize = require('filesize'); var filesize = require('filesize');
var fs = require('fs'); var fs = require('fs.extra');
var _ = require('lodash'); var _ = require('lodash');
var path = require('path'); var path = require('path');
var playwithsix = require('playwithsix'); var playwithsix = require('playwithsix');
@ -25,6 +25,14 @@ Mods.removeDuplicates = function (mods) {
Mods.prototype = new events.EventEmitter(); Mods.prototype = new events.EventEmitter();
Mods.prototype.delete = function (mod, cb) {
var self = this;
fs.rmrf(path.join(this.config.path, mod), function (err) {
self.updateMods();
cb(err);
});
};
Mods.prototype.download = function (mod, cb) { Mods.prototype.download = function (mod, cb) {
var self = this; var self = this;
var currentDownloadMod = null; var currentDownloadMod = null;

View File

@ -13,6 +13,7 @@
"express": "3.x", "express": "3.x",
"express-resource": "~1.0.0", "express-resource": "~1.0.0",
"filesize": "^3.1.0", "filesize": "^3.1.0",
"fs.extra": "~1.3.2",
"gamedig": "^0.2.11", "gamedig": "^0.2.11",
"lodash": "^3.6.0", "lodash": "^3.6.0",
"playwithsix": "0.0.10", "playwithsix": "0.0.10",

View File

@ -7,6 +7,7 @@ define(function (require) {
Backbone = require('backbone'), Backbone = require('backbone'),
Marionette = require('marionette'), Marionette = require('marionette'),
Ladda = require('ladda'), Ladda = require('ladda'),
swal = require('sweet-alert'),
tpl = require('text!tpl/mods/list_item.html'), tpl = require('text!tpl/mods/list_item.html'),
template = _.template(tpl); template = _.template(tpl);
@ -16,7 +17,23 @@ define(function (require) {
template: template, template: template,
events: { events: {
"click .update": "update" "click .destroy": "destroy",
"click .update": "update",
},
destroy: function (event) {
var self = this;
sweetAlert({
title: "Are you sure?",
text: "The mod will be deleted from the server!",
type: "warning",
showCancelButton: true,
confirmButtonClass: "btn-danger",
confirmButtonText: "Yes, delete it!",
},
function(){
self.model.destroy();
});
}, },
update: function (event) { update: function (event) {

View File

@ -1,4 +1,4 @@
<td style="width: 100%;"> <td>
<a href='#mods/<%-name%>'><%-name%></a> <a href='#mods/<%-name%>'><%-name%></a>
<% if (playWithSix) { %> <% if (playWithSix) { %>
@ -12,11 +12,19 @@
<%-progress%>% <%-progress%>%
</div> </div>
</div> </div>
<% } else if (outdated) { %> <% } else { %>
<a class="btn btn-primary btn-xs update ladda-button pull-right" data-style="expand-left"> <a class="btn btn-primary btn-xs destroy ladda-button pull-right" data-style="expand-left">
<span class="glyphicon glyphicon-save"></span> <span class="glyphicon glyphicon-trash"></span>
Update Delete
</a> </a>
<% if (outdated) { %>
<a class="btn btn-primary btn-xs update ladda-button pull-right" data-style="expand-left" style="margin-right: 8px">
<span class="glyphicon glyphicon-save"></span>
Update
</a>
<% } %>
<div class="clearfix"></div> <div class="clearfix"></div>
<% } %> <% } %>
</td> </td>

View File

@ -36,7 +36,13 @@ module.exports = function (modsManager) {
}, },
destroy: function(req, res){ destroy: function(req, res){
res.send('destroy mod ' + req.params.mod); modsManager.delete(req.params.mod, function (err) {
if (err) {
res.send(500, err);
} else {
res.send(204, {});
}
});
}, },
refresh: function(req, res){ refresh: function(req, res){