Commit 8bf265b9 authored by Ayush's avatar Ayush

File delete and management

parent 327846c1
......@@ -4,14 +4,15 @@ include_once("database.php");
$postData = file_get_contents("php://input");
if (isset($postData) && !empty($postData)) {
$request = json_decode($postData);
$isFile = trim($request->isFile);
if(isFile){
// echo $postData;
// exit(0);
$request = json_decode($postData, true);
$isFile = trim($request['isFile']);
if($isFile){
$username = trim($request['file']['username']);
$filename = trim($request['file']['filename']);
$lang = trim($request['file']['language']);
$path = '../users/' . $username . '/' . trim($request->path) . '/' . $filename . $lang;
$path = '../users/' . $username . '/' . trim($request['file']['path']) . '/' . $filename . $lang;
if (unlink($path)) {
$msg = "file successfully deleted";
......@@ -23,16 +24,18 @@ if (isset($postData) && !empty($postData)) {
}
exit;
}
$username = trim($request->username);
$username = trim($request['username']);
$dirname = trim($request['file']['name']);
$path = '../users/' . $username . '/' . trim($request['file']['path']) . '/' . $dirname;
if (rmdir($path)) {
$ret_stat = 0;
system('rm -r ' . $path, $ret_stat);
if ($ret_stat === 0) {
$msg = "directory successfully deleted";
echo json_encode($msg);
}
else {
http_response_code(404);
http_response_code(404);
}
}
?>
......@@ -11,6 +11,6 @@
</div>
</div>
<div class="subs" *ngIf="!isFile" [style.display]="isExpanded ? 'block' : 'none'">
<app-file-dir-card *ngFor="let dir of directory.dirs" [isFile]="false" [directory]="dir" [level]="level + 1"></app-file-dir-card>
<app-file-dir-card *ngFor="let file of directory.files" [isFile]="true" [file]="file" [level]="level + 1"></app-file-dir-card>
<app-file-dir-card *ngFor="let dir of directory.dirs" [isFile]="false" [directory]="dir" [level]="level + 1" [trace]="addToTraceDir(dir)" (deleteFile)="deleteFileExec($event)" (deleteDir)="deleteDirExec($event)"></app-file-dir-card>
<app-file-dir-card *ngFor="let file of directory.files" [isFile]="true" [file]="file" [level]="level + 1" [trace]="addToTraceFile(file)" (deleteFile)="deleteFileExec($event)" (deleteDir)="deleteDirExec($event)"></app-file-dir-card>
</div>
import {Component, Input, OnInit} from '@angular/core';
import {Component, Input, OnInit, Output, EventEmitter} from '@angular/core';
import {File} from '../file';
import {Directory} from '../directory';
import {FileService} from '../file.service';
import {ApiService} from '../api.service';
@Component({
selector: 'app-file-dir-card',
......@@ -17,12 +19,55 @@ export class FileDirCardComponent implements OnInit {
deleting: boolean;
isExpanded = false;
constructor() { }
@Output() deleteFile: EventEmitter<any> = new EventEmitter();
@Output() deleteDir: EventEmitter<any> = new EventEmitter();
constructor(private fileService: FileService, private apiService: ApiService) { }
ngOnInit(): void {
}
onDelete(): void {
//
this.deleting = true;
this.fileService.delete(this.isFile ? this.file : this.directory, this.isFile,
JSON.parse(this.apiService.getToken()).username).subscribe(
data => {
console.log(data);
if (this.isFile) {
this.deleteFile.emit(this.file);
} else {
this.deleteDir.emit(this.directory);
}
this.deleting = false;
}, error => {
console.log(error);
}
);
}
addToTraceDir(dir: Directory): number[] {
const arr = JSON.parse(JSON.stringify(this.trace));
arr.push(this.directory.dirs.indexOf(dir));
return arr;
}
addToTraceFile(file: File): number[] {
const arr = JSON.parse(JSON.stringify(this.trace));
arr.push(this.directory.files.indexOf(file));
return arr;
}
deleteFileExec($event: any): void {
const index = this.directory.files.indexOf($event, 0);
if (index > -1) {
this.directory.files.splice(index, 1);
}
}
deleteDirExec($event: any): void {
const index = this.directory.dirs.indexOf($event, 0);
if (index > -1) {
this.directory.dirs.splice(index, 1);
}
}
}
......@@ -36,7 +36,7 @@ export class FileService {
return of(ret);
}
upload(file): Observable<any> {
upload(file: File): Observable<any> {
return this.http.post(this.saveUrl, file);
}
......@@ -46,8 +46,8 @@ export class FileService {
return this.http.post(this.uploadUrl, formData);
}
delete(file): Observable<any> {
return this.http.post(this.deleteUrl, file);
delete(file: any, isFile: boolean, username: string): Observable<any> {
return this.http.post(this.deleteUrl, {file, isFile, username});
}
getFileList(username: string): Observable<any> {
......
......@@ -7,8 +7,8 @@
{{mainDir.dirs.length}} directories, {{mainDir.files.length}} files:
</div>
<app-file-dir-card *ngFor="let dir of mainDir.dirs" [isFile]="false" [directory]="dir" [level]="0" [trace]="[mainDir.dirs.indexOf(dir)]"></app-file-dir-card>
<app-file-dir-card *ngFor="let file of mainDir.files" [isFile]="true" [file]="file" [level]="0" [trace]="[mainDir.files.indexOf(file)]"></app-file-dir-card>
<app-file-dir-card *ngFor="let dir of mainDir.dirs" [isFile]="false" [directory]="dir" [level]="0" [trace]="[mainDir.dirs.indexOf(dir)]" (deleteDir)="deleteDirExec($event)" (deleteFile)="deleteFileExec($event)"></app-file-dir-card>
<app-file-dir-card *ngFor="let file of mainDir.files" [isFile]="true" [file]="file" [level]="0" [trace]="[mainDir.files.indexOf(file)]" (deleteDir)="deleteDirExec($event)" (deleteFile)="deleteFileExec($event)"></app-file-dir-card>
<div [class.open]="uploadPopupActive" id="file-upload-cover"></div>
......
......@@ -68,21 +68,6 @@ export class FileComponent implements OnInit {
);
}
// onDelete(file): void {
// this.deleting = true;
// this.fileService.delete(file).subscribe(
// () => {
// this.deleting = false;
// this.files.forEach((element,index)=>{
// if(element==file){
// this.files.splice(index,1);
// }
// });
//
// }
// );
// }
toDirectory(name: string, obj: any, path: string): Directory {
const ret: Directory = {
name,
......@@ -98,7 +83,7 @@ export class FileComponent implements OnInit {
filename: file.replace(/\.[^/.]+$/, ''),
language: '.' + sp[sp.length - 1],
text: '',
path: path + name + '/'
path: path + '/' + name
};
ret.files.push(f);
}
......@@ -111,4 +96,18 @@ export class FileComponent implements OnInit {
return ret;
}
deleteFileExec($event: any): void {
const index = this.mainDir.files.indexOf($event, 0);
if (index > -1) {
this.mainDir.files.splice(index, 1);
}
}
deleteDirExec($event: any): void {
const index = this.mainDir.dirs.indexOf($event, 0);
if (index > -1) {
this.mainDir.dirs.splice(index, 1);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment