Document Upload and Deletion work great
This commit is contained in:
@@ -17,16 +17,17 @@ module.exports = {
|
||||
Doc.create({
|
||||
name: files[i].filename,
|
||||
location: files[i].fd.split("assets/")[1],
|
||||
visible: true
|
||||
description: req.body.description
|
||||
}).exec(function(err, created){
|
||||
if (err) console.log(err);
|
||||
console.log("Created :" + created);
|
||||
});
|
||||
}
|
||||
return res.json({
|
||||
message: files.length + ' file(s) uploaded successfully!',
|
||||
files: files
|
||||
});
|
||||
return res.redirect("/#/docs");
|
||||
// return res.json({
|
||||
// message: files.length + ' file(s) uploaded successfully!',
|
||||
// files: files
|
||||
// });
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -21,8 +21,8 @@ module.exports = {
|
||||
location: {
|
||||
type: 'string'
|
||||
},
|
||||
visible: {
|
||||
type:'boolean'
|
||||
description: {
|
||||
type:'string'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -11,6 +11,14 @@ poconsole.controller('docsCtrl', function($scope, $route, Page, $log, docs) {
|
||||
var imageExtension = ".png";
|
||||
$scope.docs = d.docs.map(function(doc){
|
||||
var spl = doc.location.split(".");
|
||||
var split_name = doc.name.split(".");
|
||||
var trunc_filebase = split_name[0];
|
||||
|
||||
if (trunc_filebase.length > 12){
|
||||
trunc_filebase = trunc_filebase.slice(0,5) + "..." + trunc_filebase.slice(-5);
|
||||
|
||||
}
|
||||
doc.trunc_filename = trunc_filebase + "." + split_name[1];
|
||||
var ext = spl[spl.length - 1];
|
||||
if(file_types.indexOf(ext) > -1){
|
||||
doc.img_url = imageBase + ext + imageExtension;
|
||||
@@ -23,5 +31,17 @@ poconsole.controller('docsCtrl', function($scope, $route, Page, $log, docs) {
|
||||
};
|
||||
$scope.loadDocs();
|
||||
|
||||
$scope.selectDelete = function(id){
|
||||
$scope.del_id = id;
|
||||
return;
|
||||
};
|
||||
|
||||
$scope.deleteDoc = function(id){
|
||||
var del = docs.deleteDoc(id);
|
||||
del.then(function(d){
|
||||
$scope.loadDocs();
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
});
|
||||
|
||||
@@ -1,4 +1,14 @@
|
||||
poconsole.factory('docs',function($q, $http, $log){
|
||||
poconsole.factory('formDataObject', function() {
|
||||
return function(data) {
|
||||
var fd = new FormData();
|
||||
angular.forEach(data, function(value, key) {
|
||||
fd.append(key, value);
|
||||
});
|
||||
return fd;
|
||||
};
|
||||
});
|
||||
|
||||
poconsole.factory('docs',function($q, $http, $log, formDataObject){
|
||||
|
||||
var getAllDocs = function(){
|
||||
var deferred = $q.defer();
|
||||
@@ -20,10 +30,21 @@ poconsole.factory('docs',function($q, $http, $log){
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
var deleteDoc = function(id){
|
||||
var deferred = $q.defer();
|
||||
$http.delete('/doc/' + id).success(function(data) {
|
||||
deferred.resolve({
|
||||
deleted:data
|
||||
});
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
|
||||
return {
|
||||
getAllDocs:getAllDocs,
|
||||
getDoc: getDoc
|
||||
getDoc: getDoc,
|
||||
deleteDoc: deleteDoc
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
@@ -1,10 +1,35 @@
|
||||
<div class="modal fade" id="deleteDocModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Are you sure?</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<h2>Are you sure you want to delete this document? This cannot be undone.</h2>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">No...</button>
|
||||
<button type="button" class="btn btn-danger" ng-click="deleteDoc(del_id);" data-dismiss="modal">Yes! Delete it!</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="row row-flex">
|
||||
<div ng-repeat="doc in docs" class="col-md-3">
|
||||
<div class="well" style="margin:10px;">
|
||||
<h2><a href="{{doc.location}}">{{doc.name}}</a></h2>
|
||||
<div style="text-align:center;">
|
||||
<h3><a href="{{doc.location}}">{{doc.trunc_filename}}</a></h3>
|
||||
</div>
|
||||
<img ng-if="doc.img_url" class="img img-responsive" src="{{doc.img_url}}">
|
||||
<img ng-if="!doc.img_url" class="img img-responsive" src="/images/icons/_blank.png">
|
||||
<p>{{doc.description}}</p>
|
||||
<h6>Uploaded at: {{ doc.createdAt | date: 'medium'}}</h6>
|
||||
<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#deleteDocModal" ng-click="selectDelete(doc.id)">
|
||||
Delete
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -12,11 +37,16 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3 well">
|
||||
|
||||
<h1>Upload a new document... </h1>
|
||||
<form action="/doc/upload" enctype="multipart/form-data" method="post">
|
||||
<input type="text" name="title"><br>
|
||||
<input type="file" name="document" multiple="multiple"><br>
|
||||
<input type="submit" value="Upload">
|
||||
|
||||
<input type="file" name="document" class="form-control"><br>
|
||||
<div class="form-group">
|
||||
<label for="description">File Description</label>
|
||||
<input type="text" name="description" class="form-control"><br>
|
||||
</div>
|
||||
<input type="submit" class="btn btn-default" value="Upload">
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user