@@ -112,7 +111,8 @@
data: function () {
return {
files: [],
- uploadedFiles: []
+ uploadedFiles: [],
+ selectionContainsLockedMedias : true
}
},
methods: {
@@ -149,7 +149,7 @@
$.fancyMessage({title: "Dupliquer un média", message: response.data.error, type: "error"});
}
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -159,6 +159,70 @@
});
}
},
+ deleteMedias() {
+ let self = this, medias = this.storeGrabbed
+ if (Object.keys(medias).length === 0) {
+ $.fancyMessage({
+ title: "Supprimer un média",
+ message: "Veuillez sélectionner un média.",
+ type: "info"
+ });
+ } else {
+ $.fancyConfirm({
+ title: "Suppression de panier",
+ message: 'Etes-vous sûr de vouloir supprimer ces média ?',
+ okButton: 'Supprimer',
+ noButton: 'Annuler',
+ callback: function (value) {
+ if(!value) {
+ return;
+ }
+ self.$store.commit({
+ type: 'Loading',
+ loading: true
+ })
+ $.ajax({
+ url: '/ajax/remove-media',
+ method: 'POST',
+ dataType : 'json',
+ data: {
+ medias: medias.map(function(obj) { return obj.id })
+ },
+ success: function(result) {
+ self.$store.commit({
+ type: 'Loading',
+ loading: false
+ })
+ let reload = function() {
+ self.$store.commit({
+ type: 'Reload',
+ reload: Math.random()
+ })
+ }
+ if(result.length != medias.length) {
+ $.fancybox.close()
+ if(medias.length == 1) {
+ $.fancyMessage({title : "Attention", message : "Ce média est lié à Arcadia. Suppression refusée. ", type : "error"})
+ }else{
+ $.fancyMessage({title : "Attention", message : "Votre sélection contient des médias liés à Arcadia. Ces médias ne seront pas supprimés.", type : "info", callback: reload})
+ }
+ } else {
+ $.fancyMessage({title : "Suppression de média", message : "Le média a été supprimé.", type : "info", callback: reload})
+ }
+ },
+ error: function(jqXHR, textStatus, errorThrown) {
+ self.$store.commit({
+ type: 'Loading',
+ loading: false
+ })
+ $.fancybox.close()
+ $.fancyMessage({title : "Attention", message : "Erreur lors de la suppression du média, merci d'actualiser la page.", type : "error"})
+ }
+ })
+ }
+ })
+ }
+ },
applySticker() {
if (Object.keys(this.storeGrabbed).length === 0) {
$.fancyMessage({
@@ -192,7 +256,7 @@
$.fancybox.close();
}).catch(error => {
$.fancybox.close();
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -375,6 +439,19 @@
}
});
}
+ },
+ storeGrabbed() {
+ let self = this
+ self.selectionContainsLockedMedias = false
+ this.storeGrabbed.map((obj) => {
+ if(obj.isLocked) {
+ self.selectionContainsLockedMedias = true
+ }
+ })
+ if(!this.storeGrabbed.length) {
+ // * Hide if empty selection
+ self.selectionContainsLockedMedias = true
+ }
}
},
}
diff --git a/resources/js/components/media-manager/BasketComponent.vue b/resources/js/components/media-manager/BasketComponent.vue
index 4fb720d..b0ae453 100644
--- a/resources/js/components/media-manager/BasketComponent.vue
+++ b/resources/js/components/media-manager/BasketComponent.vue
@@ -109,7 +109,7 @@
}
}
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -161,7 +161,7 @@
type: "info"
});
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -205,7 +205,7 @@
type: "info"
});
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -242,7 +242,7 @@
type: "info"
});
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -282,7 +282,7 @@
$.fancyMessage({title : "Attention", message : "Erreur lors de la suppression du média, merci d'actualiser la page.", type : "error"});
}
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -313,7 +313,7 @@
});
_this2.$loading.hide();
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
diff --git a/resources/js/components/media-manager/DisplayComponent.vue b/resources/js/components/media-manager/DisplayComponent.vue
index 23f3352..85609f8 100644
--- a/resources/js/components/media-manager/DisplayComponent.vue
+++ b/resources/js/components/media-manager/DisplayComponent.vue
@@ -58,8 +58,8 @@
storeGrabbed () {
return this.$store.state.grabbed;
},
- storeReload () {
- return this.$store.state.reload;
+ storeLoading () {
+ return this.$store.state.loading;
}
},
mounted() {
@@ -86,6 +86,9 @@
storeFilters() {
this.init();
},
+ storeLoading() {
+ this.loader = this.$store.state.loading
+ },
storeMedia() {
if (Object.keys(this.storeMedia).length > 0) {
if (this.storeMedia.close !== undefined && this.storeMedia.close === true) {
@@ -102,9 +105,6 @@
});
}
}
- },
- storeReload() {
- this.init();
}
},
methods: {
@@ -116,7 +116,7 @@
type: 'updateGrabbed',
grabbed: []
});
- this.loadMedias(this.$store.state);
+ this.loadMedias()
//set dateSorted
this.dateSorted = false;
const _that = this;
@@ -136,7 +136,8 @@
$(".action_wrapper .display i.fa-calendar-check").show();
}
},
- loadMedias($state) {
+ loadMedias($state = null) {
+ let self = this
if (this.offset === 0){
this.medias = [];
this.loader = true;
@@ -151,25 +152,27 @@
limit: this.limit,
saveSearch: 0
}).then(response => {
- if (this.offset === 0){
- this.medias = response.data;
- this.loader = false;
- this.$store.commit({
+ if (self.offset === 0){
+ self.medias = response.data;
+ self.loader = false;
+ self.$store.commit({
type: 'updateRole',
role: response.data.role
});
}else{
if (response.data.data.length){
- this.medias.data.push(...response.data.data);
- $state.loaded();
- this.$store.commit({
+ self.medias.data.push(...response.data.data);
+ if($state) {
+ $state.loaded()
+ }
+ self.$store.commit({
type: 'updateRole',
role: response.data.role
});
- }else{
- $state.complete();
+ }else if($state) {
+ $state.complete()
}
- this.scrollLoader = false;
+ self.scrollLoader = false;
}
// Si requete CA alors on cherche la version la plus récente plus griser les autres
@@ -186,18 +189,18 @@
this.isCAQuery = false;
}
- this.offset = this.offset + this.limit;
- })
- .catch(function (error) {
- if(error.response.status === 419) {
+ self.offset = self.offset + self.limit;
+ }).catch(function (error) {
+ console.error(error)
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
- console.log(error);
+ console.error(error);
});
},
infiniteScroll($state) {
- this.loadMedias($state);
+ this.loadMedias($state)
},
resetInfiniteScroll() {
this.infiniteId = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
diff --git a/resources/js/components/media-manager/FolderComponent.vue b/resources/js/components/media-manager/FolderComponent.vue
index 1f84537..b89c7b5 100644
--- a/resources/js/components/media-manager/FolderComponent.vue
+++ b/resources/js/components/media-manager/FolderComponent.vue
@@ -1,5 +1,5 @@
-
+
@@ -9,7 +9,8 @@
-
+ :data-id="item.id"
+ :id="'_li'+item.id">
@@ -22,7 +23,8 @@
-
+ :data-id="item2.id"
+ :id="'_li'+item2.id">
@@ -36,7 +38,8 @@
-
+ :data-id="item3.id"
+ :id="'_li'+item3.id">
{
+ this.scrollToContent(toSelectFolder)
+ })
} else {
// ! Reset Current folder to none selected
this.$store.state.folder = -1
}
}).catch(function (error) {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
- console.log(error);
+ console.error(error);
});
},
+ reload() {
+ this.initFolders(this.selectedFolder)
+ },
renderItems() {
const favs = this.oFolders.filter(item => item.favoris === true),
self = this
@@ -139,6 +171,7 @@
})
},
selectFolder(item) {
+ this.selectedFolder = item
let filter = this.storeFilters.findIndex(e => e.type === 'dossier_id');
if (filter !== -1) {
this.$delete(this.storeFilters, filter);
@@ -167,7 +200,7 @@
}).then(response => {
_this2.initFolders();
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -176,7 +209,7 @@
message: "Une erreur est survenue, veuillez recharger la page (Ctrl + F5).",
type: "error"
});
- console.log(error);
+ console.error(error);
});
},
moveMedia(evt, folder) {
@@ -202,12 +235,12 @@
_this2.$loading.hide();
}, 1000);
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
_this2.$loading.hide();
- console.log(error);
+ console.error(error);
$.fancybox.close();
$.fancyMessage({title : "Attention", message : "Erreur lors du déplacement, merci d'actualiser la page.", type : "error"});
});
diff --git a/resources/js/components/media-manager/SideHeaderComponent.vue b/resources/js/components/media-manager/SideHeaderComponent.vue
index f528ca2..f558702 100644
--- a/resources/js/components/media-manager/SideHeaderComponent.vue
+++ b/resources/js/components/media-manager/SideHeaderComponent.vue
@@ -49,7 +49,7 @@
formats: response.data.formats
});
}).catch(function (error) {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
diff --git a/resources/js/components/media-manager/media-editor/EditComponents.vue b/resources/js/components/media-manager/media-editor/EditComponents.vue
index c8b8b6c..c7a099f 100644
--- a/resources/js/components/media-manager/media-editor/EditComponents.vue
+++ b/resources/js/components/media-manager/media-editor/EditComponents.vue
@@ -16,7 +16,7 @@
-
+
@@ -197,7 +197,7 @@
}
}
}).catch(function (error) {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
@@ -231,7 +231,7 @@
$.fancyMessage({title: "Sauvegarde d'un média", message: response.data.error, type: "error"});
}
}).catch(function (error) {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
diff --git a/resources/js/components/media-manager/media-editor/tabs/EditComponent.vue b/resources/js/components/media-manager/media-editor/tabs/EditComponent.vue
index c03508b..32bc6a1 100644
--- a/resources/js/components/media-manager/media-editor/tabs/EditComponent.vue
+++ b/resources/js/components/media-manager/media-editor/tabs/EditComponent.vue
@@ -196,9 +196,8 @@
-
-
@@ -318,7 +317,7 @@
__DAM.methods.sessionTimedOut()
return;
}
- console.log(error);
+ console.error(error);
$.fancybox.close();
$.fancyMessage({
title: "Erreur",
@@ -358,7 +357,7 @@
message: "Erreur lors de l'opération, merci d'actualiser la page.",
type: "error"
});
- console.log(error);
+ console.error(error);
});
},
CheckForm() {
@@ -412,9 +411,63 @@
message: "Erreur lors de l'opération, merci d'actualiser la page.",
type: "error"
});
- console.log(error);
+ console.error(error);
});
},
+ DeleteMedia() {
+ let self = this
+ $.fancyConfirm({
+ title: "Suppression de panier",
+ message: 'Etes-vous sûr de vouloir supprimer ce média ? ' + (self.oMedia.arcadia_id ? '(Lié à Arcadia)' : ''),
+ okButton: 'Supprimer',
+ noButton: 'Annuler',
+ callback: function (value) {
+ if(!value) {
+ return;
+ }
+ self.$store.commit({
+ type: 'Loading',
+ loading: true
+ })
+ $.ajax({
+ url: '/ajax/remove-media',
+ method: 'POST',
+ dataType : 'json',
+ data: {
+ medias: [self.oMedia.id]
+ },
+ success: function(result){
+ self.$store.commit({
+ type: 'Loading',
+ loading: false
+ })
+ if(result.length != 1) {
+ $.fancybox.close()
+ if(medias.length == 1) {
+ $.fancyMessage({title : "Attention", message : "Ce média est lié à Arcadia. Suppression refusée. ", type : "error"})
+ }else{
+ $.fancyMessage({title : "Attention", message : "Votre sélection contient des médias liés à Arcadia. Ces médias ne seront pas supprimés.", type : "info"})
+ }
+ } else {
+ self.$emit('closeEdit')
+ $.fancyMessage({title : "Suppression de média", message : "Le média a été supprimé.", type : "info"})
+ $.each(result, function (index, value) {
+ self.DeleteArticles(value)
+ })
+ }
+ },
+ error: function(jqXHR, textStatus, errorThrown) {
+ self.$store.commit({
+ type: 'Loading',
+ loading: false
+ })
+ $.fancybox.close()
+ $.fancyMessage({title : "Attention", message : "Erreur lors de la suppression du média, merci d'actualiser la page.", type : "error"})
+ }
+ })
+ }
+ })
+ },
AddArticles() {
if (this.oMedia.isLocked === 1)
return;
@@ -470,13 +523,18 @@
message: "Erreur lors de l'opération, merci d'actualiser la page.",
type: "error"
});
- console.log(error);
+ console.error(error);
});
},
DeleteArticles(article_id) {
- if (this.oMedia.isLocked === 1)
+ if (this.oMedia.isLocked === 1) {
return;
+ }
this.oMedia.articles = this.oMedia.articles.filter(e => e.id !== article_id);
+ this.$store.commit({
+ type: 'Reload',
+ reload: Math.random()
+ });
},
AddMarques(marque) {
const index = this.oMedia.marques.find(e => e.codMarq === marque.codMarq);
@@ -504,6 +562,15 @@
}
-
diff --git a/resources/js/components/media-manager/media-editor/tabs/HistoryComponent.vue b/resources/js/components/media-manager/media-editor/tabs/HistoryComponent.vue
index 817f4bf..480a2a0 100644
--- a/resources/js/components/media-manager/media-editor/tabs/HistoryComponent.vue
+++ b/resources/js/components/media-manager/media-editor/tabs/HistoryComponent.vue
@@ -56,7 +56,7 @@
}).then(response => {
_this2.history = response.data.history;
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
diff --git a/resources/js/components/media-manager/media-editor/tabs/LinksComponent.vue b/resources/js/components/media-manager/media-editor/tabs/LinksComponent.vue
index 43c1dba..e087027 100644
--- a/resources/js/components/media-manager/media-editor/tabs/LinksComponent.vue
+++ b/resources/js/components/media-manager/media-editor/tabs/LinksComponent.vue
@@ -63,7 +63,7 @@
}).then(response => {
_this2.links = response.data.vignettes;
}).catch(error => {
- if(error.response.status === 419) {
+ if(error?.response?.status === 419) {
__DAM.methods.sessionTimedOut()
return;
}
diff --git a/resources/js/media.js b/resources/js/media.js
index 71aaff5..5dc7448 100644
--- a/resources/js/media.js
+++ b/resources/js/media.js
@@ -153,60 +153,6 @@ $(document).ready(function () {
removeMedias(medias);
});
- // Suppression d'un média
- $(".btn_tab_edit_delete").on("click", function (event) {
- event.preventDefault();
-
- if ($(".tab_edit #arcadia_id").val().length) {
- var r = confirm("Etes-vous sûr de vouloir supprimer ce média ? (Lié à Arcadia)");
- } else {
- var r = confirm("Etes-vous sûr de vouloir supprimer ce média ?");
- }
-
- if (r == true) {
- var medias = [$(window).data('current_edit_media')];
- $.ajax({
- url: '/ajax/remove-media',
- method: 'POST',
- dataType : 'json',
- data: {
- medias: medias
- },
- success: function(result){
- $.each(result, function (index, value) {
- $(".media_container .imageItem[data-id='"+value+"']").remove();
- });
-
- // ---- MAJ du nb de média dans le dossier
- var currentFolder = $(window).data('currentFolder');
- if(currentFolder == 0 || currentFolder == ""){
- var count = $(".folder_container .root_folder .count");
- }else{
- var count = $(".folder_container .dd3-item[data-id='"+currentFolder+"'] > .dd3-content .count");
- }
- count.html(parseInt(count.html())-result.length);
-
- if(result.length != medias.length){
- $.fancybox.close();
- if(medias.length == 1){
- $.fancyMessage({title : "Attention", message : "Ce média est lié à Arcadia. Suppression refusée. ", type : "error"});
- }else{
- $.fancyMessage({title : "Attention", message : "Votre sélection contient des médias liés à Arcadia. Ces médias ne seront pas supprimés.", type : "info"});
- }
- }else{
- $(".form_media_close").trigger('click');
- $.fancyMessage({title : "Suppression de média", message : "Le média a été supprimé.", type : "info"});
- }
- },
- error: function(jqXHR, textStatus, errorThrown) {
- $.fancybox.close();
- $.fancyMessage({title : "Attention", message : "Erreur lors de la suppression du média, merci d'actualiser la page.", type : "error"});
- }
- });
- }
- });
-
-
// ---- gestion des onglets de la popup d'édition
$("#form_media .tabbtn").on("click" , function(event) {
return;