Merge branch 'dev' of https://github.com/Pl4yep2on/webtransfer into dev
This commit is contained in:
commit
1fbab71f86
@ -26,14 +26,21 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
isDirectory:{
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
var newFileName = this.initialFileName;
|
var newFileName = this.initialFileName;
|
||||||
var extension = '';
|
var extension = '';
|
||||||
|
if(!this.isDirectory) {
|
||||||
let nameSplit = newFileName.split('.');
|
let nameSplit = newFileName.split('.');
|
||||||
if (nameSplit.length > 1) {
|
if (nameSplit.length > 1) {
|
||||||
extension = nameSplit.pop();
|
extension = nameSplit.pop();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
newFileName,
|
newFileName,
|
||||||
extension,
|
extension,
|
||||||
@ -44,11 +51,10 @@ export default {
|
|||||||
if(this.newFileName !== ''){
|
if(this.newFileName !== ''){
|
||||||
// Séparer le nom de fichier sans l'extension
|
// Séparer le nom de fichier sans l'extension
|
||||||
const fileNameWithoutExtension = this.newFileName.slice(0, this.newFileName.lastIndexOf('.'));
|
const fileNameWithoutExtension = this.newFileName.slice(0, this.newFileName.lastIndexOf('.'));
|
||||||
|
|
||||||
// Re-construire le nom du fichier avec l'extension d'origine
|
// Re-construire le nom du fichier avec l'extension d'origine
|
||||||
const newFileNameWithOriginalExtension = fileNameWithoutExtension + '.' + this.extension;
|
const newFileNameWithOriginalExtension = fileNameWithoutExtension + '.' + this.extension;
|
||||||
|
|
||||||
if (this.extension !== '' && this.newFileName !== newFileNameWithOriginalExtension) {
|
if (!this.isDirectory && this.newFileName !== newFileNameWithOriginalExtension) {
|
||||||
// L'extension a été modifiée, on rétablit l'extension correcte
|
// L'extension a été modifiée, on rétablit l'extension correcte
|
||||||
this.newFileName = newFileNameWithOriginalExtension;
|
this.newFileName = newFileNameWithOriginalExtension;
|
||||||
}
|
}
|
||||||
@ -61,14 +67,17 @@ export default {
|
|||||||
this.$emit("close");
|
this.$emit("close");
|
||||||
},
|
},
|
||||||
onInputChange() {
|
onInputChange() {
|
||||||
// Vous pouvez ici vérifier si l'extension a été modifiée et la rétablir
|
if (!this.isDirectory) {
|
||||||
const fileNameWithoutExtension = this.newFileName.slice(0, this.newFileName.lastIndexOf('.'));
|
const fileNameWithoutExtension = this.newFileName.slice(0, this.newFileName.lastIndexOf('.'));
|
||||||
const newFileNameWithOriginalExtension = fileNameWithoutExtension + '.' + this.extension;
|
const newFileNameWithOriginalExtension = fileNameWithoutExtension + '.' + this.extension;
|
||||||
|
|
||||||
// Si l'extension est différente de celle d'origine, on la rétablit
|
// Si l'extension est différente de celle d'origine, on la rétablit
|
||||||
if (this.extension !== '' && this.newFileName !== newFileNameWithOriginalExtension) {
|
if (this.extension !== '' && this.newFileName !== newFileNameWithOriginalExtension) {
|
||||||
|
// Vous pouvez ici vérifier si l'extension a été modifiée et la rétablir
|
||||||
|
|
||||||
this.newFileName = newFileNameWithOriginalExtension;
|
this.newFileName = newFileNameWithOriginalExtension;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -118,7 +118,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<EditFileName v-if="!editDialogDisabled" :initialFileName="initialFileName" @update="updateFileName" @close="closeEditDialog">
|
<EditFileName v-if="!editDialogDisabled" :initialFileName="initialFileName" :isDirectory="isDirectory" @update="updateFileName" @close="closeEditDialog">
|
||||||
</EditFileName>
|
</EditFileName>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -167,7 +167,8 @@ export default {
|
|||||||
isTransfering: false,
|
isTransfering: false,
|
||||||
isDragging: false,
|
isDragging: false,
|
||||||
editDialogDisabled: true,
|
editDialogDisabled: true,
|
||||||
initialFileName: '',
|
initialFileName: '', // Nom originel du fichier/dossier edite
|
||||||
|
isDirectory: false, // Si l'element edite est un dossier ou non
|
||||||
transferProgress: 0,
|
transferProgress: 0,
|
||||||
transferStatus: 'green',
|
transferStatus: 'green',
|
||||||
};
|
};
|
||||||
@ -358,21 +359,44 @@ export default {
|
|||||||
|
|
||||||
await this.fetchFiles();
|
await this.fetchFiles();
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* Change les props pour le composant EditFileName
|
||||||
|
* @param file le ficher/dossier dont on veut editer le nom
|
||||||
|
*/
|
||||||
async editElem(file) {
|
async editElem(file) {
|
||||||
|
if(file.type === 'file'){
|
||||||
|
this.isDirectory = false;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.isDirectory = true;
|
||||||
|
}
|
||||||
this.initialFileName = file.basename;
|
this.initialFileName = file.basename;
|
||||||
this.editDialogDisabled = false;
|
this.editDialogDisabled = false;
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* Ferme la fenetre d'edition du nom du fichier/dossier
|
||||||
|
*/
|
||||||
closeEditDialog() {
|
closeEditDialog() {
|
||||||
this.editDialogDisabled = true;
|
this.editDialogDisabled = true;
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* Change le nom du fichier sur le serveur Cloud via un client WebDAV
|
||||||
|
* @param names Contient un initialFileName et un newFileName
|
||||||
|
*/
|
||||||
async updateFileName(names){
|
async updateFileName(names){
|
||||||
if(names.initialFileName !== names.newFileName){
|
if(names.initialFileName !== names.newFileName){
|
||||||
const client = getClient()
|
const client = getClient()
|
||||||
try{
|
try{
|
||||||
const oldName = this.root_path + this.current_dir + names.initialFileName;
|
const oldName = this.root_path + this.current_dir + names.initialFileName;
|
||||||
const newName = this.root_path + this.current_dir + names.newFileName;
|
const newName = this.root_path + this.current_dir + names.newFileName;
|
||||||
|
let alreadyExists = await this.elemtAlreadyExists(newName);
|
||||||
|
if(!alreadyExists) {
|
||||||
await client.moveFile(oldName,newName);
|
await client.moveFile(oldName,newName);
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
alert(`Vous ne pouvez pas renommez le fichier/dossier : ${names.newFileName} car un autre fichier/dossier porte deja le meme nom.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
catch(error){
|
catch(error){
|
||||||
console.error('Erreur lors du renommage d\'un element : ', error);
|
console.error('Erreur lors du renommage d\'un element : ', error);
|
||||||
}
|
}
|
||||||
@ -380,6 +404,12 @@ export default {
|
|||||||
await this.fetchFiles();
|
await this.fetchFiles();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async elemtAlreadyExists(name){
|
||||||
|
const client = getClient();
|
||||||
|
let exists = await client.exists(name);
|
||||||
|
|
||||||
|
return exists;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user