renommer file folder

anis
Tmadkaud 6 years ago
parent ce48ce33eb
commit e1bf54f896

Binary file not shown.

Binary file not shown.

@ -13,6 +13,31 @@ var fs = require('fs');
var multer = require('multer');
var upload = multer({ dest: './public/' });
/* creation Token */
getToken = function (headers) {
if (headers && headers.authorization) {
var parted = headers.authorization.split(' ');
if (parted.length === 2) {
return parted[1];
} else {
return null;
}
} else {
return null;
}
};
/* config multer dossier cible et nom du file */
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './public/')
},
filename: function (req, file, cb) {
cb(null, file.originalname)
}
});
/* GET home page. */
router.get('/', function(req, res, next) {
res.send('Express RESTful API');
@ -39,7 +64,6 @@ router.post('/signup', function(req, res) {
/* SAVE FILE */
router.post('/uploadFileMongo', function(req, res, next) {
//console.log('req.body: :: ' + req.body.uid);
FileMongo.create(req.body, function (err, post) {
if (err){
return next(err);
@ -82,6 +106,39 @@ router.post('/deleteFolderMongo', function(req, res, next) {
});
});
/* Rename FOLDER */
router.post('/renameFolderMongo', function(req, res, next) {
FolderMongo.findOneAndUpdate({_id : req.body._id, owner: req.body.owner}, {name: req.body.name},{new: true}).then((data) =>{
if(data === null){
throw new Error('Folder Not Found');
}
res.json({ message: 'Folder updated!' });
}).catch( (error) => {
//Deal with all your errors here with your preferred error handle middleware / method
res.status(500).json({ message: 'Some Error!' });
console.log(error);
});
});
/* Rename FILE */
router.post('/renameFileMongo', function(req, res, next) {
console.log("New File data req.body", JSON.stringify(req.body));
FileMongo.findOneAndUpdate({_id : req.body._id, owner: req.body.owner}, {name: req.body.name},{new: true}).then((data) =>{
if(data === null){
throw new Error('File Not Found');
}
res.json({ message: 'File updated!' });
}).catch( (error) => {
//Deal with all your errors here with your preferred error handle middleware / method
res.status(500).json({ message: 'Some Error!' });
console.log(error);
});
});
/* Get Current folder */
router.post('/getMainFolder', function(req, res) {
FolderMongo.findOne({
path: req.body.path,
@ -92,7 +149,7 @@ router.post('/getMainFolder', function(req, res) {
});
/* Get tout les folders du mainFolder */
router.post('/getFolderList', function(req, res) {
FolderMongo.find({
parent: req.body.mainPath,
@ -103,6 +160,7 @@ router.post('/getFolderList', function(req, res) {
});
/* Get tout les files du mainFolder */
router.post('/getFileList', function(req, res) {
FileMongo.find({
path: req.body.mainPath,
@ -113,21 +171,7 @@ router.post('/getFileList', function(req, res) {
});
router.get('/allUserFile', passport.authenticate('jwt', { session: false}), function(req, res) {
var token = getToken(req.headers);
if (token) {
FileMongo.find({
idUser: req.user._id,
owner: req.user.username
}, function(err, file) {
res.json(file);
});
} else {
return res.status(403).send({success: false, msg: 'Unauthorized.'});
}
});
/* Login */
router.post('/signin', function(req, res) {
User.findOne({
username: req.body.username
@ -154,43 +198,13 @@ router.post('/signin', function(req, res) {
});
router.post('/book', passport.authenticate('jwt', { session: false}), function(req, res) {
var token = getToken(req.headers);
if (token) {
var newBook = new Book({
isbn: req.body.isbn,
title: req.body.title,
author: req.body.author,
publisher: req.body.publisher
});
newBook.save(function(err) {
if (err) {
return res.json({success: false, msg: 'Save book failed.'});
}
res.json({success: true, msg: 'Successful created new book.'});
});
} else {
return res.status(403).send({success: false, msg: 'Unauthorized.'});
}
});
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './public/')
},
filename: function (req, file, cb) {
cb(null, file.originalname)
}
});
//post qui va stocker la photo du user ajoute dans le register , multer permet de definir le dossier serveur dans lequel seront stockes les photos
/* Multer upload */
router.post('/upload' , multer({storage: storage, limits: {fileSize: 30000000000}}).array("public[]", 12) ,function(req,res,next){
res.send(req.files);
});
/* Get utilisateur courant */
router.get('/getCurrentUser', passport.authenticate('jwt', { session: false}), function(req, res) {
var token = getToken(req.headers);
@ -201,24 +215,4 @@ router.get('/getCurrentUser', passport.authenticate('jwt', { session: false}), f
}
});
router.get('/book/file', function(req, res) {
res.sendFile(__dirname + '/api/book');
});
getToken = function (headers) {
if (headers && headers.authorization) {
var parted = headers.authorization.split(' ');
if (parted.length === 2) {
return parted[1];
} else {
return null;
}
} else {
return null;
}
};
module.exports = router;

@ -3,28 +3,31 @@
<p> Path : {{mainFolder.path}}</p>
<p> Vous êtes dans le dossier : {{mainFolder.name}}</p>
<button type="button" class="btn btn-warning" (click)="backToParentFolder()" *ngIf="mainFolder.path !== 'Home'">Retour à : {{mainFolder.parent}}</button>
<button type="button" class="btn btn-sm btn-warning" mdbTooltip="Retour à : {{mainFolder.parent}}" placement="top" (click)="backToParentFolder()" *ngIf="mainFolder.path !== 'Home'"><i class="fa fa-chevron-left" aria-hidden="true"></i> {{mainFolder.parent}}</button>
</div>
<button type="button" class="btn btn-warning" (click)="createBool()" *ngIf="isClickCreateFolder === false">Nouveau dossier</button>
<button type="button" class="btn btn-sm btn-warning" mdbTooltip="Nouveau dossier" placement="top" (click)="createBool()" *ngIf="isClickCreateFolder === false">
<i class="fa fa-plus-circle" aria-hidden="true"><i class="fa fa-folder-o" aria-hidden="true"></i></i>
</button>
<div class="md-form input-group" *ngIf="isClickCreateFolder === true">
<div class="input-group-btn">
<button class="btn btn-primary btn-lg waves-light" type="button" mdbWavesEffect (click)="createFolder()">Créer</button>
<button class="btn btn-primary btn-sm waves-light" mdbTooltip="Créer : {{inputCreateFolder}}" placement="top" type="button" mdbWavesEffect (click)="createFolder()">Créer</button>
</div>
<input type="search" class="form-control" placeholder="Nom du nouveau dossier..." [(ngModel)]="inputCreateFolder">
</div>
<label class="btn btn-danger col-sm-2 col-md-2" >
Fichier à ajouter<input type="file" style="display: none;" #myPicture name="myPicture" (change)="fileChangeEvent($event)">
<label class="btn btn-danger btn-sm" mdbTooltip="Choisir fichier" placement="top" >
<i class="fa fa-plus-circle" aria-hidden="true"><i class="fa fa-file-o" aria-hidden="true"></i></i>
<input type="file" style="display: none;" #myPicture name="myPicture" (change)="fileChangeEvent($event)">
</label>
<button type="button" class="btn btn-warning" (click)="upload()">Ajouter le fichier {{fileChooseName}}</button>
<label> Vous avez choisi : {{fileChooseName}}</label>
<button type="button" class="btn btn-sm btn-warning" mdbTooltip="Ajouter le fichier : {{fileChooseName}}" placement="top" (click)="upload()" *ngIf="fileChooseName !== 'None'">Ajouter le fichier {{fileChooseName}}</button>
<label *ngIf="fileChooseName !== ''"> Vous avez choisi : {{fileChooseName}}</label>
</div>
<table class="table table-striped">
<thead>
@ -39,10 +42,18 @@
<tbody>
<tr *ngFor="let folder of allUserFolder; let i = index;">
<td>
<button type="button" class="btn btn-warning" (click)="openFolder(folder.path)">Ouvrir dossier</button>
<button type="button" class="btn btn-warning" (click)="deleteFolder(folder)">Supprimer dossier</button>
<button type="button" class="btn btn-sm btn-warning" mdbTooltip="Ouvrir : {{folder.name}}" placement="top" (click)="openFolder(folder.path)"><i class="fa fa-folder-open-o" aria-hidden="true"></i></button>
<button type="button" class="btn btn-sm btn-warning" mdbTooltip="Supprimer : {{folder.name}}" placement="top" (click)="deleteFolder(folder)"><i class="fa fa-close" aria-hidden="true"></i></button>
<!--<button type="button" class="btn btn-warning" (click)="renameFolder(folder)">Rename</button>-->
</td>
<td>{{ folder.name }}</td>
<td>
<button class="btn btn-primary btn-sm waves-light" mdbTooltip="Renommer : {{folder.name}}" placement="top" type="button" mdbWavesEffect (click)="renameFolder(folder)">
<i class="fa fa-pencil prefix"></i>
</button>
<input type="search" class="form-control col-xs-2" placeholder= "{{folder.name}}" [(ngModel)]="folder.name">
</td>
<!--<td>{{ folder.name }}</td>-->
<td>{{ folder.taille}} Mo</td>
<td>Folder</td>
<td>{{ folder.owner }}</td>
@ -50,46 +61,37 @@
</tr>
<tr *ngFor="let file of allUserFile; let i = index;">
<td>
<button type="button" class="btn btn-warning" (click)="deleteFile(file)">Supprimer fichier</button>
<button type="button" class="btn btn-sm btn-warning" mdbTooltip="Supprimer : {{file.name}}" placement="top" (click)="deleteFile(file)"><i class="fa fa-close" aria-hidden="true"></i></button>
</td>
<td>{{ file.name }}</td>
<td>{{ file.taille / ( 1024 * 1024 ) | number : '1.2-2'}} Mo</td>
<td>{{ file.extention }}</td>
<td>{{ file.lastDate }}</td>
<div *ngIf="file.extention === ('image/jpeg')">
<img src="../../../public/{{ file._id.toString() }}" class="img-fluid flex-center" width="150" height="150">
</div>
<div *ngIf="file.extention === ('image/png')">
<img src="../../../public/{{ file._id.toString() }}" class="img-fluid flex-center" width="150" height="150">
</div>
<div *ngIf="file.extention === ('application/pdf')">
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
</div>
<div *ngIf="file.extention === ('video/mp4')">
<i class="fa fa-file-movie-o" aria-hidden="true"></i>
</div>
<div *ngIf="file.extention === ('text/plain')">
<i class="fa fa-file-text-o" aria-hidden="true"></i>
</div>
<div *ngIf="file.extention === ('audio/mpeg')">
<i class="fa fa-file-audio-o" aria-hidden="true"></i>
</div>
</tr>
</tbody>
</table>
<!--
<form enctype="multipart/form-data" method="post" name="fileinfo">
<label>Fichier à mettre de côté :</label>
<input type="file" name="file" (change)="fileChangeEvent($event)" required />
<input type="submit" (click)="upload2()" value="Mettez le fichier de côté." />
</form>
<div></div>
-->
<td>
<button class="btn btn-primary btn-sm waves-light" mdbTooltip="Renommer : {{file.name}}" placement="top" type="button" mdbWavesEffect (click)="renameFile(file)">
<i class="fa fa-pencil prefix"></i>
</button>
<input type="search" class="form-control col-xs-2" placeholder= "{{file.name}}" [(ngModel)]="file.name">
</td>
<!--<td>{{ file.name }}</td>-->
<td>{{ file.taille / ( 1024 * 1024 ) | number : '1.2-2'}} Mo</td>
<td>{{ file.extention }}</td>
<td>{{ file.lastDate }}</td>
<div *ngIf="file.extention === ('image/jpeg')">
<img src="../../../public/{{ file._id.toString() }}" class="img-fluid flex-center" width="150" height="150">
</div>
<div *ngIf="file.extention === ('image/png')">
<img src="../../../public/{{ file._id.toString() }}" class="img-fluid flex-center" width="150" height="150">
</div>
<div *ngIf="file.extention === ('application/pdf')">
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
</div>
<div *ngIf="file.extention === ('video/mp4')">
<i class="fa fa-file-movie-o" aria-hidden="true"></i>
</div>
<div *ngIf="file.extention === ('text/plain')">
<i class="fa fa-file-text-o" aria-hidden="true"></i>
</div>
<div *ngIf="file.extention === ('audio/mpeg')">
<i class="fa fa-file-audio-o" aria-hidden="true"></i>
</div>
</tr>
</tbody>
</table>

@ -23,7 +23,8 @@ export class BookComponent implements OnInit, OnDestroy {
fileChooseName: string;
httpOptions: any;
isClickCreateFolder: boolean;
inputCreateFolder: String;
inputCreateFolder: String;
constructor(private http: HttpClient, private router: Router, private route: ActivatedRoute) {
this.isClickCreateFolder = false;
@ -49,31 +50,31 @@ export class BookComponent implements OnInit, OnDestroy {
deleteFile(fileToDelete) {
this.http.post('/api/deleteFileMongo', fileToDelete).subscribe(file => {
console.log('deletteeeee file : ' + JSON.stringify(file));
console.log('deletteeeee file this.mainFolder.path: ' + this.mainFolder.path.toString());
this.openFolder(this.mainFolder.path);
// if (file) {
// this.allUserFile = file;
// } else {
// this.allUserFile = [];
// }
});
}
deleteFolder(folderToDelete) {
this.http.post('/api/deleteFolderMongo', folderToDelete).subscribe(folder => {
console.log('deletteeeee folder : ' + JSON.stringify(folder));
console.log('deletteeeee folder this.mainFolder.path: ' + this.mainFolder.path.toString());
this.openFolder(this.mainFolder.path);
// if (file) {
// this.allUserFile = file;
// } else {
// this.allUserFile = [];
// }
});
}
renameFolder(folderToRename){
folderToRename.path = this.mainFolder.path + '/' + folderToRename.name;
this.http.post('/api/renameFolderMongo', folderToRename).subscribe(data => {
console.log('data : ' + data);
});
}
renameFile(fileToRename){
this.http.post('/api/renameFileMongo', fileToRename).subscribe(data => {
console.log('data : ' + data);
});
}
getfiles() {
this.http.post('/api/getFileList', {mainPath : this.mainFolder.path, owner: this.currentUser.username.toString()}).subscribe(files => {
if (files) {

Loading…
Cancel
Save