ticket 90
envoi de la fiche vers Arcadia après upload de nouveau visuel Gestion de retour en erreur avant la liaison avec Arcadia Check des dimensions et du type avant liaison vers Arcadia
This commit is contained in:
parent
06d370d24a
commit
8ec157e6bd
3 changed files with 129 additions and 3 deletions
|
|
@ -902,6 +902,8 @@ class MediaController extends Controller
|
|||
$n->taille = $this->formatBytes($this->get_file_size($destinationPath . $filename));
|
||||
|
||||
$im = new \imagick($destinationPath . $filename);
|
||||
//pour dev sous windows (pour cause de bug sur imagick avec les chemins relatifs)
|
||||
//$im = new \imagick(realpath($destinationPath.$filename));
|
||||
$resolutions = $im->getImageResolution();
|
||||
$n->resolution = round($resolutions['x'] * 2.54, 2);
|
||||
$imageprops = $im->getImageGeometry();
|
||||
|
|
@ -976,11 +978,55 @@ class MediaController extends Controller
|
|||
return json_encode($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérification des clés pour liaison arcadia avant création, mise à jour
|
||||
*
|
||||
*/
|
||||
public function checkRefKey(Request $request)
|
||||
{
|
||||
Auth::user()->authorizeRoles([config('roles.const.ADMIN')]);
|
||||
$media_id = $request->input('media_id');
|
||||
$media = Media::find($media_id);
|
||||
//il faut check les dimensions de l'image
|
||||
//pour les cas sujet, type vue, type media qui nous interesse
|
||||
$code_sujet = $media->sujet_id;
|
||||
$type_vue = $media->typevue_id;
|
||||
$type_media = $media->typemedia_id;
|
||||
$extension = $media->extension;
|
||||
$largeur = $media->largeur;
|
||||
$hauteur = $media->hauteur;
|
||||
|
||||
//si on est sur un sujet arcadia (donc pas le sujet Groupe)
|
||||
if ($media->sujet->sujet_arcadia) {
|
||||
//le check est requis
|
||||
$doCheck = true;
|
||||
//cas d'exclusion BAT
|
||||
if ($type_vue == 19) {
|
||||
$doCheck = false;
|
||||
}
|
||||
if ($type_media == 6) {
|
||||
$doCheck = false;
|
||||
}
|
||||
}
|
||||
if ($doCheck) {
|
||||
if ($extension == 'png') {
|
||||
if ($largeur == 1800) {
|
||||
if ($hauteur == 1800) {
|
||||
//ok
|
||||
} else {
|
||||
//fail hauteur
|
||||
return json_encode(array('status' => false, 'error' => "Les dimensions requises sont 1800px par 1800px, veuillez charger un autre média"));
|
||||
}
|
||||
} else {
|
||||
//fail largeur
|
||||
return json_encode(array('status' => false, 'error' => "Les dimensions requises sont 1800px par 1800px, veuillez charger un autre média"));
|
||||
}
|
||||
} else {
|
||||
//fail type de fichier
|
||||
return json_encode(array('status' => false, 'error' => "Le type de fichier doit être PNG, veuillez charger un autre média"));
|
||||
}
|
||||
}
|
||||
|
||||
if ($media) {
|
||||
$refs = ArcadiaLink::getRefKey($media);
|
||||
if (count($refs) > 0){
|
||||
|
|
|
|||
|
|
@ -158,11 +158,81 @@
|
|||
type: 'updateMedia',
|
||||
media: JSON.parse(message)
|
||||
});
|
||||
//on vient d'upload un fichier.
|
||||
// Si c'est lié a Arcadia on check les clés refs
|
||||
if (this.storeMedia.arcadia_id !== null) {
|
||||
//le media n'est pas lock car on a pu upload mais on vérifie quand meme
|
||||
if (this.storeMedia.isLocked === 0) {
|
||||
this.CheckRefKey(this.SaveMedia);
|
||||
}
|
||||
}
|
||||
this.$loading.hide();
|
||||
},
|
||||
uploadFileComplete() {
|
||||
alert("Media uploadé !");
|
||||
},
|
||||
CheckRefKey(callback) {
|
||||
axios.post('/ajax/check-ref-key', {
|
||||
media_id: this.storeMedia.id
|
||||
}).then(response => {
|
||||
if (response.data === false) {
|
||||
$.fancybox.close();
|
||||
$.fancyMessage({
|
||||
title: "Erreur",
|
||||
message: "Vous devez avoir au minimum 1 clé de référentiel.",
|
||||
type: "error"
|
||||
});
|
||||
} else {
|
||||
//update de la fiche vers arcadia
|
||||
if(response.data.status===false) {
|
||||
$.fancyMessage({
|
||||
title: "Erreur",
|
||||
message: response.data.error,
|
||||
type: "error"
|
||||
});
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
}).catch(function (error) {
|
||||
console.log(error);
|
||||
$.fancybox.close();
|
||||
$.fancyMessage({
|
||||
title: "Erreur",
|
||||
message: "Erreur lors de l'opération, merci d'actualiser la page.",
|
||||
type: "error"
|
||||
});
|
||||
});
|
||||
},
|
||||
SaveMedia() {
|
||||
axios.post('/ajax/save-media', {
|
||||
media: this.storeMedia
|
||||
}).then(response => {
|
||||
this.$loading.hide();
|
||||
if (response.data.status === true) {
|
||||
this.$store.commit({
|
||||
type: 'updateMedia',
|
||||
media: response.data.datas
|
||||
});
|
||||
$.fancyMessage({
|
||||
title: "Sauvegarde d'un média",
|
||||
message: "Les données ont bien été enregistrées",
|
||||
type: "info"
|
||||
});
|
||||
} else {
|
||||
$.fancyMessage({title: "Sauvegarde d'un média", message: response.data.error, type: "error"});
|
||||
}
|
||||
}).catch(function (error) {
|
||||
this.$loading.hide();
|
||||
$.fancybox.close();
|
||||
$.fancyMessage({
|
||||
title: "Sauvegarde d'un média",
|
||||
message: "Erreur lors de l'opération, merci d'actualiser la page.",
|
||||
type: "error"
|
||||
});
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -293,12 +293,22 @@
|
|||
type: "error"
|
||||
});
|
||||
} else {
|
||||
let result = confirm("Êtes-vous sur de vouloir lancer le traitement ?");
|
||||
if (result !== true){
|
||||
if(response.data.status===false) {
|
||||
this.$loading.hide();
|
||||
$.fancyMessage({
|
||||
title: "Erreur",
|
||||
message: response.data.error,
|
||||
type: "error"
|
||||
});
|
||||
return false;
|
||||
} else {
|
||||
let result = confirm("Êtes-vous sur de vouloir lancer le traitement ?");
|
||||
if (result !== true){
|
||||
this.$loading.hide();
|
||||
return false;
|
||||
}
|
||||
callback();
|
||||
}
|
||||
callback();
|
||||
}
|
||||
}).catch(function (error) {
|
||||
console.log(error);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue