command : import des médias
front : depot de fichier, moteur de recherche
This commit is contained in:
parent
7b857744f7
commit
6f8786ae29
22 changed files with 1703 additions and 298 deletions
|
|
@ -4,6 +4,7 @@ namespace App\Console\Commands;
|
|||
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use App\Article;
|
||||
use App\Marque;
|
||||
use App\Sujet;
|
||||
|
|
@ -11,9 +12,13 @@ use App\Typemedia;
|
|||
use App\Typevue;
|
||||
use App\Site;
|
||||
use App\Variante;
|
||||
use App\Media;
|
||||
use App\Http\Traits\MediaTools;
|
||||
|
||||
class ImportArcadiaFiles extends Command
|
||||
{
|
||||
use MediaTools;
|
||||
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
|
|
@ -171,10 +176,111 @@ class ImportArcadiaFiles extends Command
|
|||
$record->save();
|
||||
}
|
||||
}
|
||||
}elseif (substr($filename, 0, 16) == "DAM_MEDIA_VISUEL") {
|
||||
foreach ($fileContent->MEDIA_VISUEL as $row) {
|
||||
$record = Media::where('arcadia_id', $row->code)->first();
|
||||
if(!$record){ // Insert new record
|
||||
$record = new Media();
|
||||
$record->arcadia_id = $row->code;
|
||||
if($row->extension != ""){
|
||||
$record->extension = $row->extension->typeFichier->libExtension;
|
||||
}
|
||||
|
||||
$record->libelle = $row->libelle;
|
||||
$record->largeur = $row->nbPxLargeur;
|
||||
$record->largeur_mm = $row->largeurMm;
|
||||
$record->hauteur = $row->nbPxHauteur;
|
||||
$record->hauteur_mm = $row->hauteurMm;
|
||||
$record->resolution = $row->pppLargeur;
|
||||
if($row->version != ""){
|
||||
$record->version = $row->version;
|
||||
}else{
|
||||
$record->version = 1;
|
||||
}
|
||||
|
||||
if($row->typemedia_id != ""){
|
||||
$record->typemedia_id = $row->codeTypeMedia;
|
||||
}else{
|
||||
$record->typemedia_id = 1;
|
||||
}
|
||||
if($row->typevue_id != ""){
|
||||
$record->typevue_id = $row->codeTypeVue;
|
||||
}
|
||||
$record->commentaire = $row->commentaire;
|
||||
$record->sujet_id = $row->codeSujet;
|
||||
if($row->langue != ""){
|
||||
$record->langue_id = $row->langue;
|
||||
}
|
||||
if($row->copyright != ""){
|
||||
$record->copyright_id = $row->copyright;
|
||||
}
|
||||
if($row->codeVariante != ""){
|
||||
$record->variante_id = $row->codeVariante;
|
||||
}
|
||||
if($row->dateCreation != ""){
|
||||
$row->dateCreation = substr($row->dateCreation, 0, 10);
|
||||
$date = explode("/", $row->dateCreation);
|
||||
$record->created_at = $date[2].'-'.$date[1].'-'.$date[0];
|
||||
}
|
||||
if($row->dateModification != ""){
|
||||
$row->dateModification = substr($row->dateModification, 0, 10);
|
||||
$date = explode("/", $row->dateModification);
|
||||
$record->updated_at = $date[2].'-'.$date[1].'-'.$date[0];
|
||||
}
|
||||
if($row->datePublication != ""){
|
||||
$row->datePublication = substr($row->datePublication, 0, 10);
|
||||
$date = explode("/", $row->datePublication);
|
||||
$record->published_at = $date[2].'-'.$date[1].'-'.$date[0];
|
||||
}
|
||||
$record->statut = config('services.statut.public_etendue');
|
||||
|
||||
// TODO lien avec les sites, marques et articles
|
||||
|
||||
|
||||
$mediaFile = "/images/".$record->arcadia_id.".".$record->extension;
|
||||
$fileExists = Storage::disk('arcadia')->exists($mediaFile);
|
||||
if($fileExists){
|
||||
$file = Storage::disk('arcadia')->get($mediaFile);
|
||||
|
||||
// Affectation d'un dossier et d'un uid
|
||||
$destinationPath = $this->get_mediaFolder()."/";
|
||||
$record->folder = $destinationPath;
|
||||
$record->uid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
|
||||
// 32 bits for "time_low"
|
||||
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
|
||||
// 16 bits for "time_mid"
|
||||
mt_rand(0, 0xffff),
|
||||
// 16 bits for "time_hi_and_version",
|
||||
// four most significant bits holds version number 4
|
||||
mt_rand(0, 0x0fff) | 0x4000,
|
||||
// 16 bits, 8 bits for "clk_seq_hi_res",
|
||||
// 8 bits for "clk_seq_low",
|
||||
// two most significant bits holds zero and one for variant DCE1.1
|
||||
mt_rand(0, 0x3fff) | 0x8000,
|
||||
// 48 bits for "node"
|
||||
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
|
||||
);
|
||||
|
||||
// déplacement du média et renommage du fichier
|
||||
$full_path_source = Storage::disk('arcadia')->getDriver()->getAdapter()->applyPathPrefix($mediaFile);
|
||||
$full_path_dest = Storage::disk('local')->getDriver()->getAdapter()->applyPathPrefix($destinationPath.$record->uid. '.' .$record->extension);
|
||||
File::move($full_path_source, $full_path_dest);
|
||||
|
||||
// calcul de la taille du média et durée
|
||||
$record->taille = $this->formatBytes($this->get_file_size($full_path_dest));
|
||||
$record->save();
|
||||
|
||||
// ---- Creation des vignettes de base
|
||||
$this->create_sys_thumb($record);
|
||||
// ---- Creation des vignettes en lien avec le sujet du média
|
||||
$this->create_thumb($record);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Suppression du fichier
|
||||
Storage::disk('arcadia')->delete($filename);
|
||||
//Storage::disk('arcadia')->delete($filename);
|
||||
$bar->advance();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ class DossierController extends Controller
|
|||
public function index()
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$dossiers = Dossier::whereNull('parent_id')
|
||||
$dossiers = Dossier::whereNull('parent_id')->where('system', 0)
|
||||
->get();
|
||||
$sujets = Sujet::where('sujet_dam', 1)->get();
|
||||
|
||||
|
|
@ -191,11 +191,22 @@ class DossierController extends Controller
|
|||
$userId = Auth::user()->id;
|
||||
$sujetId = $request->input('sujetId');
|
||||
$marques = Auth::user()->marques()->pluck("marque_id");
|
||||
$response['data'] = Dossier::where('sujet_id', $sujetId)
|
||||
$dossierQuery = Dossier::where('sujet_id', $sujetId)
|
||||
->whereNull('parent_id')
|
||||
->whereHas("marques", function($query) use ($marques){
|
||||
$query->whereIn("marque_id", $marques);
|
||||
})->get();
|
||||
|
||||
// Ajout du dépôt de fichier pour les admin
|
||||
if(Auth::user()->hasRole(config('roles.const.ADMIN')) ){
|
||||
$depotQuery = Dossier::whereNull('parent_id')
|
||||
->where('system', 1)
|
||||
->get();
|
||||
$response['data'] = $dossierQuery->merge($depotQuery);
|
||||
}else{
|
||||
$response['data'] = $dossierQuery;
|
||||
}
|
||||
|
||||
$response['count'] = Media::where('sujet_id', $sujetId)
|
||||
->whereNull('dossier_id')
|
||||
->where(function ($query) use ( $userId ) {
|
||||
|
|
@ -232,11 +243,39 @@ class DossierController extends Controller
|
|||
Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]);
|
||||
$parent_id = $request->input('parent_id');
|
||||
$libelle = $request->input('libelle');
|
||||
$description = $request->input('description');
|
||||
|
||||
// ---- Le dossier
|
||||
$dossier = new Dossier();
|
||||
$dossier->libelle = $libelle;
|
||||
$dossier->description = $description;
|
||||
$dossier->parent_id = $parent_id;
|
||||
if($parent_id == 1){ // dossier de dépôt
|
||||
$dossier->system = 1;
|
||||
}
|
||||
$dossier->save();
|
||||
|
||||
$response['folder_id'] = $dossier->id;
|
||||
return json_encode($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajouter un dossier de dépôt
|
||||
*
|
||||
*/
|
||||
public function addDepotFolder(Request $request)
|
||||
{
|
||||
$response = array();
|
||||
$parent_id = $request->input('parent_id');
|
||||
$libelle = $request->input('libelle');
|
||||
$description = $request->input('description');
|
||||
|
||||
// ---- Le dossier
|
||||
$dossier = new Dossier();
|
||||
$dossier->libelle = $libelle;
|
||||
$dossier->description = $description;
|
||||
$dossier->parent_id = 1;
|
||||
$dossier->system = 1;
|
||||
$dossier->save();
|
||||
|
||||
$response['folder_id'] = $dossier->id;
|
||||
|
|
@ -272,12 +311,17 @@ class DossierController extends Controller
|
|||
Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]);
|
||||
$dossier_id = $request->input('dossier_id');
|
||||
$parent_id = $request->input('parent_id');
|
||||
$sujet_id = $request->input('sujet_id');
|
||||
|
||||
// ---- Le dossier
|
||||
$dossier = Dossier::where('id', $dossier_id)->first();
|
||||
if($dossier && !is_null($dossier->parent_id)){
|
||||
$dossier->parent_id = $parent_id;
|
||||
if ($dossier->save()) {
|
||||
|
||||
Media::where('dossier_id', $dossier_id)->update(['sujet_id' => $sujet_id]);
|
||||
|
||||
|
||||
return json_encode(true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ use App\Copyright;
|
|||
use App\Etiquette;
|
||||
use App\Site;
|
||||
use App\Marque;
|
||||
use App\Dossier;
|
||||
use App\Tag;
|
||||
use App\Article;
|
||||
use App\Http\Traits\MediaTools;
|
||||
|
|
@ -35,7 +36,7 @@ class MediaController extends Controller
|
|||
$langues = Langue::all();
|
||||
$copyrights = Copyright::all();
|
||||
$etiquettes = Etiquette::all();
|
||||
$sites = Site::all();
|
||||
$sites = Site::orderBy('libelle')->get();
|
||||
$marques = Marque::all();
|
||||
return view('media_manager')->with([
|
||||
'sujets'=> $sujets,
|
||||
|
|
@ -58,41 +59,88 @@ class MediaController extends Controller
|
|||
$userId = Auth::user()->id;
|
||||
$dossier_id = $request->input('dossier_id');
|
||||
$sujet_id = $request->input('sujet_id');
|
||||
$filters = json_decode($request->input('filters'));
|
||||
$offset = $request->input('offset');
|
||||
$limit = $request->input('limit');
|
||||
$orderField = $request->input('orderField');
|
||||
$order = $request->input('order');
|
||||
$isDepot = 0;
|
||||
|
||||
if($dossier_id == "0"){
|
||||
$response['data'] = Media::where('sujet_id', $sujet_id)
|
||||
->whereNull('dossier_id')
|
||||
if($dossier_id == "0"){ // dossier racine
|
||||
$query= Media::where('sujet_id', $sujet_id)
|
||||
->whereNull('dossier_id');
|
||||
}elseif($dossier_id == "-1"){
|
||||
$query = Media::where('sujet_id', $sujet_id)
|
||||
->where(function ($query) use ( $userId ) {
|
||||
$query->where('statut', '<>', 0)
|
||||
->orWhere('created_by', $userId);
|
||||
})
|
||||
->with('Etiquette')
|
||||
->offset($offset)
|
||||
->limit($limit)
|
||||
->orderBy($orderField, $order)
|
||||
->get();
|
||||
});
|
||||
}else{
|
||||
$response['data'] = Media::where('sujet_id', $sujet_id)
|
||||
->where('dossier_id', $dossier_id)
|
||||
->where(function ($query) use ( $userId ) {
|
||||
$query->where('statut', '<>', 0)
|
||||
->orWhere('created_by', $userId);
|
||||
})
|
||||
->with('Etiquette')
|
||||
->offset($offset)
|
||||
->limit($limit)
|
||||
->orderBy($orderField, $order)
|
||||
->get();
|
||||
$dossier= Dossier::where('id', $dossier_id)->first();
|
||||
if($dossier->parent_id != 1 && $dossier->id != 1){ // dossier classic
|
||||
$query = Media::where('sujet_id', $sujet_id)
|
||||
->where('dossier_id', $dossier_id)
|
||||
->where(function ($query) use ( $userId ) {
|
||||
$query->where('statut', '<>', 0)
|
||||
->orWhere('created_by', $userId);
|
||||
});
|
||||
}else{ // dossier dépôt
|
||||
$isDepot = 1;
|
||||
$query= Media::where('dossier_id', $dossier_id);
|
||||
}
|
||||
}
|
||||
|
||||
// Filtre recherche texte
|
||||
if(property_exists($filters, 'search')){
|
||||
$search = strtolower(trim($filters->search->value));
|
||||
$query->where(function ($query) use ( $search ) {
|
||||
$query->whereRaw("LCASE(libelle) LIKE '%".$search."%'")
|
||||
->orWhere('arcadia_id', $search)
|
||||
->orWhereHas("articles", function($query) use ($search){
|
||||
$query->where("noArt", $search)
|
||||
->orWhereRaw("LCASE(libCcial) LIKE '%".$search."%'")
|
||||
->orWhereRaw("LCASE(libMarq) LIKE '%".$search."%'")
|
||||
->orWhereRaw("LCASE(libFamVte) LIKE '%".$search."%'")
|
||||
->orWhere('codGencodAdm', $search)
|
||||
->orWhere('codGencodSymb', $search)
|
||||
->orWhere('codGencodPds', $search);
|
||||
})
|
||||
->orWhereHas("tags", function($query) use ($search){
|
||||
$query->WhereRaw("LCASE(libelle) LIKE '%".$search."%'");
|
||||
});
|
||||
});
|
||||
}
|
||||
// Filtre type de média
|
||||
if(property_exists($filters, 'typemedia_id')){
|
||||
$query->whereIn('typemedia_id', $filters->typemedia_id->value);
|
||||
}
|
||||
// Filtre type de vue
|
||||
if(property_exists($filters, 'typevue_id')){
|
||||
$query->whereIn('typevue_id', $filters->typevue_id->value);
|
||||
}
|
||||
// Filtre liason avec Arcadia
|
||||
if(property_exists($filters, 'arcadia_id')){
|
||||
$query->whereNotNull('arcadia_id' );
|
||||
}
|
||||
// Filtre etiquette
|
||||
if(property_exists($filters, 'etiquette_id')){
|
||||
$query->whereIn('etiquette_id', $filters->etiquette_id->value);
|
||||
}
|
||||
|
||||
|
||||
$query->with('Etiquette')
|
||||
->offset($offset)
|
||||
->limit($limit)
|
||||
->orderBy($orderField, $order);
|
||||
$response['data'] = $query->get();
|
||||
|
||||
if(Auth::user()->hasRole([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')] )){
|
||||
$response['draggable'] = true;
|
||||
}else{
|
||||
$response['draggable'] = false;
|
||||
}
|
||||
$response['role'] = Auth::user()->role;
|
||||
$response['isDepot'] = $isDepot;
|
||||
|
||||
return json_encode($response);
|
||||
}
|
||||
|
|
@ -107,10 +155,12 @@ class MediaController extends Controller
|
|||
$response = array();
|
||||
$dossier_id = $request->input('dossier_id');
|
||||
$data = $request->input('data');
|
||||
$sujet_id = $request->input('sujet_id');
|
||||
$data = explode(",", $data);
|
||||
foreach ($data as $key => $media_id) {
|
||||
$media = Media::where('id', $media_id)->first();
|
||||
if($media){
|
||||
$media->sujet_id = $sujet_id;
|
||||
if($dossier_id > 0){
|
||||
$media->dossier_id = $dossier_id;
|
||||
}else{
|
||||
|
|
@ -165,15 +215,21 @@ class MediaController extends Controller
|
|||
$filepath = preg_quote($media->folder.$media->uid, '/');
|
||||
$matchingFiles = preg_grep('/^'.$filepath.'/', $files);
|
||||
foreach ($matchingFiles as $matchingFile) {
|
||||
$im = new \imagick($matchingFile);
|
||||
$imageprops = $im->getImageGeometry();
|
||||
$path_parts = pathinfo($matchingFile);
|
||||
|
||||
$fileInfo = array();
|
||||
$fileInfo['url'] = $host."/".$matchingFile;
|
||||
$fileInfo['resolution'] = $imageprops['width']."x".$imageprops['height']."px";
|
||||
$fileInfo['extension'] = $path_parts['extension'];
|
||||
$fileInfo['libelle'] = $path_parts['filename'];
|
||||
$fileInfo['extension'] = $path_parts['extension'];
|
||||
$fileInfo['resolution'] = "";
|
||||
|
||||
if(in_array($path_parts['extension'], array("gif", "jpeg", "jpg", "png", "pdf", "ai", "psd")) ){
|
||||
$im = new \imagick($matchingFile);
|
||||
$im->setIteratorIndex(0);
|
||||
$imageprops = $im->getImageGeometry();
|
||||
$fileInfo['resolution'] = $imageprops['width']."x".$imageprops['height']."px";
|
||||
}
|
||||
|
||||
|
||||
if(strpos($fileInfo['libelle'], '_')){
|
||||
$fileInfo['libelle'] = "Format ".substr($fileInfo['libelle'], strpos($fileInfo['libelle'], '_')+1);
|
||||
}else{
|
||||
|
|
@ -343,6 +399,12 @@ class MediaController extends Controller
|
|||
$response = false;
|
||||
$media_id = $request->input('media_id');
|
||||
$arcadia_id = $request->input('arcadia_id');
|
||||
if($arcadia_id == "" || $arcadia_id == 0){
|
||||
$arcadia_id = NULL;
|
||||
}else{
|
||||
$media = Media::where('arcadia_id', $arcadia_id)->first();
|
||||
if($media) return json_encode($response);
|
||||
}
|
||||
|
||||
$media = Media::where('id', $media_id)->first();
|
||||
if($media){
|
||||
|
|
@ -379,7 +441,7 @@ class MediaController extends Controller
|
|||
public function downloadMedia(Request $request)
|
||||
{
|
||||
if(!$user = Auth::user()) abort(404, 'Erreur lors du téléchargement');
|
||||
|
||||
$deleteFileAfterSend = false;
|
||||
// obtention du format
|
||||
$formatId = $request->input('format');
|
||||
if($formatId != 0){
|
||||
|
|
@ -410,10 +472,11 @@ class MediaController extends Controller
|
|||
$zip->addFile($fp, basename($fp));
|
||||
}
|
||||
}
|
||||
$deleteFileAfterSend = true;
|
||||
$zip->close();
|
||||
$fp = $zip_file;
|
||||
}
|
||||
return response()->download($fp)->deleteFileAfterSend(true);
|
||||
return response()->download($fp)->deleteFileAfterSend($deleteFileAfterSend);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Auth;
|
|||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Media;
|
||||
use App\Site;
|
||||
use App\Http\Traits\MediaTools;
|
||||
|
||||
|
||||
|
|
@ -12,9 +13,16 @@ class UploadController extends Controller {
|
|||
|
||||
use MediaTools;
|
||||
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('upload.show');
|
||||
// ---- Vérification du token de sécurité
|
||||
$token = $request->get('token');
|
||||
if($token != env('TOKEN_DEPOT', "c8c4613a-236c-4b06-95f6-a9c9c6c18861")) return abort(404);
|
||||
|
||||
$sites = Site::orderBy('libelle')->get();
|
||||
return view('upload.show')->with([
|
||||
'sites'=> $sites,
|
||||
]);
|
||||
}
|
||||
|
||||
public function storeMedia(Request $request)
|
||||
|
|
@ -22,10 +30,10 @@ class UploadController extends Controller {
|
|||
$uid = $request->input('uid');
|
||||
$sujet_id = $request->input('sujet_id');
|
||||
$dossier_id = $request->input('dossier_id');
|
||||
if($dossier_id == 0) $dossier_id = null;
|
||||
if($dossier_id == 0) $dossier_id = NULL;
|
||||
|
||||
$headers = $request->headers->all();
|
||||
$acceptFileTypes = array('gif','jpeg', 'jpg','png','mp4','mp3','psd','ai','eps','svg','indd','pdf');
|
||||
$acceptFileTypes = array('gif','jpeg', 'jpg','png','mp4','mp3','psd','ai','svg','pdf');
|
||||
|
||||
if ($request->hasFile('files')) {
|
||||
$file = $request->file('files');
|
||||
|
|
@ -113,10 +121,13 @@ class UploadController extends Controller {
|
|||
case 'jpeg':
|
||||
case 'jpg':
|
||||
case 'png':
|
||||
case 'ai':
|
||||
case 'pdf':
|
||||
case 'psd':
|
||||
$media->typemedia_id = 1;
|
||||
$im = new \imagick($destinationPath.$filename);
|
||||
|
||||
if($extension == "gif" ){
|
||||
if(in_array($extension, array("pdf", "ai", "psd", "gif")) ){
|
||||
$im->setIteratorIndex(0);
|
||||
}
|
||||
|
||||
|
|
@ -134,11 +145,14 @@ class UploadController extends Controller {
|
|||
$media->hauteur_mm = "";
|
||||
}
|
||||
$media->save();
|
||||
$im->destroy();
|
||||
|
||||
// ---- Creation des vignettes de base
|
||||
$this->create_sys_thumb($media);
|
||||
// ---- Creation des vignettes en lien avec le sujet du média
|
||||
$this->create_thumb($media);
|
||||
if(isset($sujet_id) ){
|
||||
$this->create_thumb($media);
|
||||
}
|
||||
break;
|
||||
// Illustration/Vectorielle (2)
|
||||
case 'svg':
|
||||
|
|
@ -165,45 +179,6 @@ class UploadController extends Controller {
|
|||
}
|
||||
$media->save();
|
||||
break;
|
||||
// Document (5)
|
||||
case 'ai':
|
||||
case 'eps':
|
||||
case 'indd':
|
||||
case 'pdf':
|
||||
case 'psd':
|
||||
default:
|
||||
$media->typemedia_id = 5;
|
||||
|
||||
|
||||
if(in_array($extension, array("pdf", "ai", "psd")) ){
|
||||
$im = new \imagick();
|
||||
|
||||
$im->readImage($destinationPath.$filename);
|
||||
if($extension == "pdf" || $extension == "psd" || $extension == "ai"){
|
||||
$im->setIteratorIndex(0);
|
||||
}
|
||||
$imageprops = $im->getImageGeometry();
|
||||
$media->largeur = $imageprops['width'];
|
||||
$media->hauteur = $imageprops['height'];
|
||||
$resolutions = $im->getImageResolution();
|
||||
$media->resolution = $resolutions['x'];
|
||||
|
||||
if($media->resolution != 0){
|
||||
$media->largeur_mm = ceil(($media->largeur * 2.54 / $media->resolution)*10);
|
||||
$media->hauteur_mm = ceil(($media->hauteur * 2.54 / $media->resolution)*10);
|
||||
}else{
|
||||
$media->largeur_mm = "";
|
||||
$media->hauteur_mm = "";
|
||||
}
|
||||
$media->save();
|
||||
$im->destroy();
|
||||
|
||||
// ---- Creation des vignettes de base
|
||||
$this->create_sys_thumb($media);
|
||||
// ---- Creation des vignettes en lien avec le sujet du média
|
||||
$this->create_thumb($media);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ trait MediaTools {
|
|||
// format système (thumb et preview)
|
||||
if($format->system == 1){
|
||||
if(in_array($media->extension, array("gif", "jpeg", "jpg", "png")) ){
|
||||
return public_path()."/".$media->folder.$media->uid.'_'.$format->libelle.'.'.$format->extension;
|
||||
return public_path()."/".$media->folder.$media->uid.'_'.$format->libelle.'.'.$media->extension;
|
||||
}elseif(in_array($media->extension, array("pdf", "ai", "psd"))){
|
||||
return public_path()."/".$media->folder.$media->uid.'.png';
|
||||
}else{
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
|
||||
class Sujet extends Model
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The primary key associated with the table.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -155,6 +155,7 @@ return [
|
|||
*/
|
||||
|
||||
'port' => env('LDAP_PORT', 389),
|
||||
// 'port' => env('LDAP_PORT', 636),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
"watch-poll": "npm run watch -- --watch-poll",
|
||||
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"prod": "npm run production",
|
||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
|
||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"wp": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"axios": "^0.18",
|
||||
|
|
|
|||
221
public/css/app.css
vendored
221
public/css/app.css
vendored
|
|
@ -3834,6 +3834,16 @@ table {
|
|||
user-select: none;
|
||||
}
|
||||
|
||||
.dd3-content span {
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
width: 209px;
|
||||
overflow: hidden;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.dd3-content .count {
|
||||
float: right;
|
||||
display: inline;
|
||||
|
|
@ -12217,7 +12227,8 @@ readers do not read off random characters that represent icons */
|
|||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
.upload_container {
|
||||
.upload_container,
|
||||
.depot_container {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
|
|
@ -12226,13 +12237,14 @@ readers do not read off random characters that represent icons */
|
|||
transform: translate(-50%, -50%);
|
||||
width: 300px;
|
||||
height: 400px;
|
||||
background-color: #ffffff;
|
||||
background-color: #24272e;
|
||||
z-index: 100;
|
||||
border-radius: 10px;
|
||||
/* Fixes for IE < 8 */
|
||||
}
|
||||
|
||||
.upload_container .fileinput-button {
|
||||
.upload_container .fileinput-button,
|
||||
.depot_container .fileinput-button {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
display: inline-block;
|
||||
|
|
@ -12254,19 +12266,21 @@ readers do not read off random characters that represent icons */
|
|||
border-radius: 4px;
|
||||
width: 100%;
|
||||
font-size: 15px;
|
||||
color: #3b3b3b;
|
||||
color: #ffffff;
|
||||
padding: 16px;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #aaaaaa;
|
||||
border-bottom: 1px solid #17191F;
|
||||
}
|
||||
|
||||
.upload_container .fileinput-button i {
|
||||
.upload_container .fileinput-button i,
|
||||
.depot_container .fileinput-button i {
|
||||
color: #2489D1;
|
||||
font-size: 18px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.upload_container .fileinput-button input {
|
||||
.upload_container .fileinput-button input,
|
||||
.depot_container .fileinput-button input {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
|
@ -12278,18 +12292,20 @@ readers do not read off random characters that represent icons */
|
|||
}
|
||||
|
||||
@media screen\9 {
|
||||
.upload_container .fileinput-button input {
|
||||
.upload_container .fileinput-button input,
|
||||
.depot_container .fileinput-button input {
|
||||
filter: alpha(opacity=0);
|
||||
font-size: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.upload_container .progress {
|
||||
.upload_container .progress,
|
||||
.depot_container .progress {
|
||||
display: none;
|
||||
height: 6px;
|
||||
overflow: hidden;
|
||||
background-color: #f5f5f5;
|
||||
background-color: #24272e;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0;
|
||||
|
|
@ -12297,7 +12313,8 @@ readers do not read off random characters that represent icons */
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.upload_container .progress .progress-bar {
|
||||
.upload_container .progress .progress-bar,
|
||||
.depot_container .progress .progress-bar {
|
||||
float: left;
|
||||
width: 0;
|
||||
height: 100%;
|
||||
|
|
@ -12310,29 +12327,34 @@ readers do not read off random characters that represent icons */
|
|||
transition: width 0.6s ease;
|
||||
}
|
||||
|
||||
.upload_container .progress .progress-bar.progress-bar-success {
|
||||
.upload_container .progress .progress-bar.progress-bar-success,
|
||||
.depot_container .progress .progress-bar.progress-bar-success {
|
||||
background-color: #5cb85c;
|
||||
}
|
||||
|
||||
.upload_container .content_wrapper {
|
||||
.upload_container .content_wrapper,
|
||||
.depot_container .content_wrapper {
|
||||
height: 286px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.upload_container #files > div {
|
||||
.upload_container #files > div,
|
||||
.depot_container #files > div {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
border-bottom: 1px solid #e8ebed;
|
||||
border-bottom: 1px solid #17191F;
|
||||
}
|
||||
|
||||
.upload_container #files > div div:first-child {
|
||||
color: #000000;
|
||||
.upload_container #files > div div:first-child,
|
||||
.depot_container #files > div div:first-child {
|
||||
color: #ffffff;
|
||||
margin-bottom: 5px;
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.upload_container #files > div div:first-child span {
|
||||
.upload_container #files > div div:first-child span,
|
||||
.depot_container #files > div div:first-child span {
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
text-overflow: ellipsis;
|
||||
|
|
@ -12340,11 +12362,13 @@ readers do not read off random characters that represent icons */
|
|||
max-width: 91%;
|
||||
}
|
||||
|
||||
.upload_container #files > div div:last-child {
|
||||
color: #3b3b3b;
|
||||
.upload_container #files > div div:last-child,
|
||||
.depot_container #files > div div:last-child {
|
||||
color: #aaaaaa;
|
||||
}
|
||||
|
||||
.upload_container #files > div button {
|
||||
.upload_container #files > div button,
|
||||
.depot_container #files > div button {
|
||||
display: none;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
|
|
@ -12354,17 +12378,20 @@ readers do not read off random characters that represent icons */
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
.upload_container #files > div button i {
|
||||
color: #337ab7;
|
||||
.upload_container #files > div button i,
|
||||
.depot_container #files > div button i {
|
||||
color: #ffffff;
|
||||
font-size: 19px;
|
||||
}
|
||||
|
||||
.upload_container #files > div:hover button {
|
||||
.upload_container #files > div:hover button,
|
||||
.depot_container #files > div:hover button {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.upload_container .upload_bar {
|
||||
border-top: 1px solid #aaaaaa;
|
||||
.upload_container .upload_bar,
|
||||
.depot_container .upload_bar {
|
||||
border-top: 1px solid #17191F;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
position: absolute;
|
||||
|
|
@ -12372,17 +12399,61 @@ readers do not read off random characters that represent icons */
|
|||
padding: 13px 10px;
|
||||
}
|
||||
|
||||
.upload_container .upload_bar #submit {
|
||||
.upload_container .upload_bar #submit,
|
||||
.depot_container .upload_bar #submit {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.upload_container .upload_bar #cancel,
|
||||
.upload_container .upload_bar #close_upload_form {
|
||||
color: #3b3b3b;
|
||||
.upload_container .upload_bar #close_upload_form,
|
||||
.depot_container .upload_bar #cancel,
|
||||
.depot_container .upload_bar #close_upload_form {
|
||||
color: #ffffff;
|
||||
cursor: pointer;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.depot_container {
|
||||
display: block;
|
||||
width: 700px;
|
||||
}
|
||||
|
||||
.depot_container header {
|
||||
padding: 20px;
|
||||
border-bottom: 1px solid #17191F;
|
||||
}
|
||||
|
||||
.depot_container header i {
|
||||
font-size: 30px;
|
||||
margin-right: 10px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.depot_container .mainContent {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.depot_container .mainContent .col {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.depot_container .mainContent .col .fileinput-button {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.depot_container .mainContent .col .content_wrapper {
|
||||
height: 217px;
|
||||
}
|
||||
|
||||
.depot_container .mainContent .col input,
|
||||
.depot_container .mainContent .col textarea,
|
||||
.depot_container .mainContent .col select {
|
||||
display: block;
|
||||
width: 315px;
|
||||
margin: 15px;
|
||||
}
|
||||
|
||||
.darkroom-container {
|
||||
position: relative;
|
||||
}
|
||||
|
|
@ -13624,19 +13695,107 @@ table tfoot tr:hover {
|
|||
.media_manager .main_content header .search_wrapper .search_filters {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .search_filters > div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 10px;
|
||||
padding: 1px 8px;
|
||||
border-right: 1px solid #aaaaaa;
|
||||
position: relative;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .search_filters > div i {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .search_filters > div:last-child {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .search_filters > div .list {
|
||||
position: absolute;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
top: 17px;
|
||||
left: 50%;
|
||||
background-color: #24272e;
|
||||
padding: 9px;
|
||||
min-width: 163px;
|
||||
-webkit-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .search_filters > div .list.list_etiquette li label {
|
||||
color: #ffffff;
|
||||
padding: 4px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .search_filters > div .list.list_etiquette li label::before {
|
||||
border-color: inherit;
|
||||
content: "";
|
||||
top: 0;
|
||||
border-style: solid;
|
||||
border-width: 11px;
|
||||
border-bottom-color: transparent;
|
||||
border-right-color: transparent;
|
||||
border-top-color: transparent;
|
||||
position: absolute;
|
||||
right: -22px;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .filter_wrapper {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-top: 18px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .filter_wrapper > span {
|
||||
color: #FFAB57;
|
||||
font-weight: bold;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .filter_wrapper .search_filters_list .filter_item {
|
||||
border: 1px solid #aaaaaa;
|
||||
border-radius: 3px;
|
||||
padding: 3px 3px;
|
||||
font-size: 11px;
|
||||
margin: 0 1px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .filter_wrapper .search_filters_list .filter_item:hover {
|
||||
color: #ffffff;
|
||||
border: 1px solid #ffffff;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .filter_wrapper .search_filters_list .filter_item i {
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .filter_wrapper .reinit_search_btn {
|
||||
display: none;
|
||||
color: #2ea8e5;
|
||||
margin-left: 4px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .search_wrapper .filter_wrapper .reinit_search_btn:hover {
|
||||
color: #2489D1;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.media_manager .main_content header .action_wrapper {
|
||||
background-color: #3b3b3b;
|
||||
width: 100%;
|
||||
|
|
|
|||
599
public/js/app.js
vendored
599
public/js/app.js
vendored
|
|
@ -10928,9 +10928,14 @@ jQuery.fn.scrollParent = function () {
|
|||
return overflowRegex.test(overflowState.overflow + overflowState.overflowX + overflowState.overflowY);
|
||||
}).eq(0);
|
||||
return position === "fixed" || !scrollParent.length ? $(this[0].ownerDocument || document) : scrollParent;
|
||||
}; //confirm popup
|
||||
}; // ---- Configuration de base des filtres médias
|
||||
|
||||
|
||||
$(window).data('offset', 0);
|
||||
$(window).data('limit', 50);
|
||||
$(window).data('currentFolder', 0);
|
||||
$(window).data('filter', {}); //confirm popup
|
||||
|
||||
$.fancyConfirm = function (opts) {
|
||||
opts = $.extend(true, {
|
||||
title: 'Are you sure?',
|
||||
|
|
@ -10981,15 +10986,22 @@ $(".userbar").on('click', function (event) {
|
|||
});
|
||||
$(document).mouseup(function (e) {
|
||||
var container = $(".userbar");
|
||||
var menuContextuel = $(".folder_container .folder_menu");
|
||||
|
||||
if (!container.is(e.target) && container.has(e.target).length === 0) {
|
||||
$(".submenu").hide();
|
||||
}
|
||||
|
||||
var menuContextuel = $(".folder_container .folder_menu");
|
||||
|
||||
if (!menuContextuel.is(e.target) && menuContextuel.has(e.target).length === 0) {
|
||||
menuContextuel.hide();
|
||||
}
|
||||
|
||||
var filter_list = $(".filter_selector");
|
||||
|
||||
if (!filter_list.is(e.target) && filter_list.has(e.target).length === 0) {
|
||||
$(".filter_selector .list").hide();
|
||||
}
|
||||
}); // ---- Header : Ouverture formulaire de contact
|
||||
|
||||
$(".contact_btn").on('click', function (event) {
|
||||
|
|
@ -11058,6 +11070,195 @@ $(".form_contact_send").on('click', function (event) {
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/depot.js":
|
||||
/*!*******************************!*\
|
||||
!*** ./resources/js/depot.js ***!
|
||||
\*******************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
$(document).ready(function () {
|
||||
/******************************
|
||||
Dépôt de média
|
||||
**********************************/
|
||||
// ---- Initialisation du module de dépôt
|
||||
if ($('#uploadDepot').length) {
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
var dossier_id = 0;
|
||||
var cancel_btn = $('<button/>').addClass('cancel').html('<i class="fal fa-times"></i>');
|
||||
var upload_btn = $('<button/>').addClass('upload').css('display', 'none');
|
||||
$('#submit').on('click', function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
if (!$(".form_depot_media")[0].checkValidity()) {
|
||||
$(".form_depot_media")[0].reportValidity();
|
||||
$.fancyMessage({
|
||||
title: "Dépôt de médias",
|
||||
message: "Veuillez compléter tous les champs avant de lancer le transfert.",
|
||||
type: "error"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
if (currentfiles.length == 0) {
|
||||
$.fancyMessage({
|
||||
title: "Dépôt de médias",
|
||||
message: "Veuillez ajouter des médias avant de lancer le transfert.",
|
||||
type: "error"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
var currentdate = new Date();
|
||||
folderName = $("#depot_societe").val().replace(' ', '_') + "_" + currentdate.getFullYear().toString() + ("0" + (currentdate.getMonth() + 1)).slice(-2) + currentdate.getDate().toString() + "_" + currentdate.getHours().toString() + currentdate.getMinutes().toString() + currentdate.getSeconds().toString();
|
||||
var description = "Nom : " + $("#depot_nom").val() + '\n' + "Société : " + $("#depot_societe").val() + '\n' + $("#depot_description").val(); // création d'un dossier de dépôt
|
||||
|
||||
$("#upload_errors").html("");
|
||||
$.ajax({
|
||||
url: '/ajax/add-depot-folder',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
libelle: folderName,
|
||||
description: description
|
||||
},
|
||||
success: function success(result) {
|
||||
dossier_id = result.folder_id;
|
||||
$('.upload').click(); //click upload buttons and upload all files in the queue
|
||||
},
|
||||
error: function error(jqXHR, textStatus, errorThrown) {}
|
||||
});
|
||||
});
|
||||
$('#cancel').on('click', function (event) {
|
||||
event.preventDefault();
|
||||
$('.cancel').click(); //click cancel buttons and remove all files in the queue
|
||||
|
||||
$("#upload_errors").html("");
|
||||
});
|
||||
$(".uploader-window").on("dragleave", function () {
|
||||
$(this).stop().fadeOut("fast");
|
||||
});
|
||||
var currentfiles = [];
|
||||
var maxFiles = 20;
|
||||
var counter = 0;
|
||||
$('#uploadDepot').fileupload({
|
||||
url: "/ajax/upload-media",
|
||||
dataType: 'json',
|
||||
limitMultiFileUploads: 10,
|
||||
maxChunkSize: 8000000,
|
||||
maxNumberOfFiles: 2,
|
||||
dragover: function dragover(e, data) {
|
||||
$(".uploader-window").fadeIn("fast");
|
||||
},
|
||||
add: function add(e, data) {
|
||||
if (counter < maxFiles) {
|
||||
counter++;
|
||||
} else {
|
||||
$.fancyMessage({
|
||||
title: "Attention",
|
||||
message: "Vous ne pouvez pas ajouter plus de " + maxFiles + " fichiers",
|
||||
type: "info"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
data.files = $.map(data.files, function (file, i) {
|
||||
if ($.inArray(file.name, currentfiles) >= 0) {
|
||||
$.fancyMessage({
|
||||
title: "Attention",
|
||||
message: "Nous ne pouvons pas envoyer plusieurs fichiers du même nom. Veuillez renommer vos fichiers puis essayez à nouveau.",
|
||||
type: "error"
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
return file;
|
||||
});
|
||||
$.each(data.files, function (index, file) {
|
||||
var uploadErrors = [];
|
||||
var acceptFileTypes = /^(gif|jpe?g|png|mp4|mp3|psd|ai|svg|pdf)$/i;
|
||||
|
||||
if (file.name.split('.').pop().length && !acceptFileTypes.test(file.name.split('.').pop())) {
|
||||
uploadErrors.push('Ce type de fichier n\'est pas accepté');
|
||||
}
|
||||
|
||||
if (data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
|
||||
uploadErrors.push('La taille du fichier est trop grande.');
|
||||
}
|
||||
|
||||
if (uploadErrors.length > 0) {
|
||||
alert(uploadErrors.join("\n"));
|
||||
return false;
|
||||
}
|
||||
|
||||
currentfiles.push($.trim(file.name));
|
||||
var row = document.createElement('div');
|
||||
var col1 = document.createElement('div');
|
||||
var col2 = document.createElement('div');
|
||||
$(col1).append("<span>" + file.name + "</span>").append(cancel_btn.clone(true).data(data));
|
||||
$(col2).append("<span>" + file.type + " - " + FileConvertSize(file.size) + "</span>");
|
||||
$(col2).append(upload_btn.clone(true).data(data));
|
||||
$(row).append(col1, col2);
|
||||
$(".files").append(row);
|
||||
$('.upload').eq(-1).on('click', function () {
|
||||
data.formData = {
|
||||
uid: create_UUID(),
|
||||
dossier_id: dossier_id
|
||||
};
|
||||
data.submit();
|
||||
});
|
||||
$('.cancel').eq(-1).on('click', function () {
|
||||
$(this).parent().parent().remove();
|
||||
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
||||
});
|
||||
});
|
||||
},
|
||||
start: function start(e, data) {
|
||||
$('#progress').show();
|
||||
},
|
||||
drop: function drop(e, data) {
|
||||
$(".uploader-window").stop().fadeOut("fast");
|
||||
},
|
||||
done: function done(e, data) {
|
||||
$.each(data.files, function (index, file) {
|
||||
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
||||
});
|
||||
},
|
||||
stop: function stop(e) {
|
||||
$(".files").html("");
|
||||
counter = 0;
|
||||
currentfiles = [];
|
||||
$('#progress .progress-bar').css('width', '0%');
|
||||
$('#progress').hide();
|
||||
$("#depot_nom").val('');
|
||||
$("#depot_societe").val('');
|
||||
$("#depot_description").val('');
|
||||
$.fancyMessage({
|
||||
title: "Dépôt de médias",
|
||||
message: "Le transfert des fichiers est terminé !",
|
||||
type: "info"
|
||||
});
|
||||
},
|
||||
fail: function fail(e, data) {
|
||||
$.each(data.files, function (index, file) {
|
||||
$('<p style="color: red;">Erreur durant le transfert du fichier ' + file.name + '.</p>').appendTo('#upload_errors');
|
||||
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
||||
});
|
||||
},
|
||||
progressall: function progressall(e, data) {
|
||||
var progress = parseInt(data.loaded / data.total * 100, 10);
|
||||
$('#progress .progress-bar').css('width', progress + '%');
|
||||
}
|
||||
}).prop('disabled', !$.support.fileInput).parent().addClass($.support.fileInput ? undefined : 'disabled');
|
||||
}
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/media.js":
|
||||
/*!*******************************!*\
|
||||
!*** ./resources/js/media.js ***!
|
||||
|
|
@ -11071,6 +11272,28 @@ $(document).ready(function () {
|
|||
**********************************/
|
||||
// ---- init des dossiers
|
||||
if ($(".media_manager").length) {
|
||||
// En cas d'une recherche depuis la home, initialise la page avec une recherche texte
|
||||
if ($("#searchParameter").val() != "") {
|
||||
// on créé un object filtre
|
||||
var filter = {
|
||||
type: "search",
|
||||
legend: "Recherche : ",
|
||||
value: $("#searchParameter").val(),
|
||||
libelle: [$("#searchParameter").val()]
|
||||
}; // MAJ du filtre principal et de l'affichage
|
||||
|
||||
updateFilter(filter);
|
||||
$(".search_filters .search_value").val($("#searchParameter").val());
|
||||
} // En cas d'une recherche depuis la home, initialise la page avec le bon sujet
|
||||
|
||||
|
||||
if ($("#sujetParameter").val() != "") {
|
||||
// aucun dossier sélectionner
|
||||
$(window).data('currentFolder', -1);
|
||||
$("#sujet_selector").val($("#sujetParameter").val());
|
||||
loadMedia($("#sujet_selector").val());
|
||||
}
|
||||
|
||||
var sujetId = $("#sujet_selector").val();
|
||||
if (sujetId != "") initFolderManager(sujetId);
|
||||
} // ---- collapse/expand side menu
|
||||
|
|
@ -11093,7 +11316,7 @@ $(document).ready(function () {
|
|||
$("#sujet_selector").on('change', function (event) {
|
||||
var sujetId = $("#sujet_selector").val();
|
||||
if (sujetId != "") $('.dd').nestable('destroy');
|
||||
$(".currentFolder").val(0);
|
||||
$(window).data('currentFolder', 0);
|
||||
initFolderManager(sujetId);
|
||||
}); // ---- sélectionner un dossier et favoris
|
||||
|
||||
|
|
@ -11129,9 +11352,17 @@ $(document).ready(function () {
|
|||
$(".folder_container .root_folder").removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(".currentFolder").val(dossier_id);
|
||||
$(window).data('currentFolder', dossier_id);
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(dossier_id, sujet_id);
|
||||
loadMedia(sujet_id); // ajout du dossier courant dans la barre de filtre
|
||||
|
||||
$(".search_filters_list #currentFolder").remove();
|
||||
var output = '<a id="currentFolder" class="filter_item" href="#">';
|
||||
output += '<span class="libelle">Dossier : </span>';
|
||||
output += '<span class="value">' + $(".folder_container .dd3-item[data-id='" + dossier_id + "'] > .dd3-content span").html() + '</span>';
|
||||
output += '<i class="delete_filter fal fa-times"></i>';
|
||||
output += '</a>';
|
||||
$(".search_filters_list").prepend(output);
|
||||
}
|
||||
}); // ---- sélectionner la racine
|
||||
|
||||
|
|
@ -11139,10 +11370,18 @@ $(document).ready(function () {
|
|||
event.preventDefault();
|
||||
$(".folder_container .dd3-content").removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
$(".currentFolder").val(0);
|
||||
$(window).data('currentFolder', 0);
|
||||
var sujetId = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(0, sujetId);
|
||||
loadMedia(sujetId); // ajout du dossier courant dans la barre de filtre
|
||||
|
||||
$(".search_filters_list #currentFolder").remove();
|
||||
var output = '<a id="currentFolder" class="filter_item" href="#">';
|
||||
output += '<span class="libelle">Dossier : </span>';
|
||||
output += '<span class="value">racine</span>';
|
||||
output += '<i class="delete_filter fal fa-times"></i>';
|
||||
output += '</a>';
|
||||
$(".search_filters_list").prepend(output);
|
||||
}); // ---- menu contextuel des dossiers
|
||||
|
||||
$(".folder_container").on('contextmenu', '.dd3-content', function (event) {
|
||||
|
|
@ -11210,8 +11449,9 @@ $(document).ready(function () {
|
|||
var dossier_id = $(this).parents(".folder_menu").attr("data-id");
|
||||
$(".folder_container .folder_menu").hide();
|
||||
$(".folder_container .loader").show();
|
||||
var $countCurrentFolder = $(".folder_container .dd3-item[data-id='" + dossier_id + "'] > .dd3-content .count").html();
|
||||
|
||||
if (!$('.dd .dd-item[data-id="' + dossier_id + '"] > ol').length) {
|
||||
if (!$('.dd .dd-item[data-id="' + dossier_id + '"] > ol').length && $(window).data('currentFolder') == 0) {
|
||||
$.ajax({
|
||||
url: '/ajax/remove-folder',
|
||||
method: 'POST',
|
||||
|
|
@ -11399,17 +11639,18 @@ $(document).ready(function () {
|
|||
|
||||
var data = event.originalEvent.dataTransfer.getData("Text");
|
||||
|
||||
if ($(".currentFolder").val() != dossier_id) {
|
||||
if ($(window).data('currentFolder') != dossier_id) {
|
||||
$.ajax({
|
||||
url: '/ajax/move-media',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
dossier_id: dossier_id,
|
||||
data: data
|
||||
data: data,
|
||||
sujet_id: $("#sujet_selector").val()
|
||||
},
|
||||
success: function success(result) {
|
||||
var currentFolderId = $(".currentFolder").val();
|
||||
var currentFolderId = $(window).data('currentFolder');
|
||||
var arrayMediaId = data.split(',');
|
||||
|
||||
if (currentFolderId == 0) {
|
||||
|
|
@ -11587,8 +11828,7 @@ $(document).ready(function () {
|
|||
if ($(".media_container").scrollTop() + $(".media_container").height() == $(".media_container .wrapper").height()) {
|
||||
$(window).data('ajaxready', false);
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
var dossier_id = $(".currentFolder").val();
|
||||
loadMedia(dossier_id, sujet_id);
|
||||
loadMedia(sujet_id);
|
||||
}
|
||||
}); // ---- Mode d'affichage
|
||||
|
||||
|
|
@ -11612,9 +11852,8 @@ $(document).ready(function () {
|
|||
|
||||
$(".action_wrapper #order_select").on("change", function (event) {
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
var dossier_id = $(".currentFolder").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(dossier_id, sujet_id);
|
||||
loadMedia(sujet_id);
|
||||
});
|
||||
/******************************
|
||||
Edition d'un média
|
||||
|
|
@ -11624,7 +11863,25 @@ $(document).ready(function () {
|
|||
var drPlugin = null;
|
||||
var viewer = null;
|
||||
$(".main_content .wrapper").on("dblclick", '.imageItem', function (event) {
|
||||
event.preventDefault(); // initialise le nuage de Tags
|
||||
event.preventDefault(); // récupère l'image de preview
|
||||
|
||||
var imgPreview = $(this).attr('data-preview');
|
||||
|
||||
if ($(this).attr('data-depot') == 1) {
|
||||
if ($(this).attr('data-typemedia') == 1 || $(this).attr('data-typemedia') == 2) {
|
||||
// image
|
||||
$.fancybox.open('<img style="width: 640px; height:auto;" src="' + imgPreview + '" alt="" />');
|
||||
} else if ($(this).attr('data-typemedia') == 3) {
|
||||
// vidéo
|
||||
$.fancybox.open('<video src="' + $(this).attr('data-src') + '" controls></video>');
|
||||
} else if ($(this).attr('data-typemedia') == 4) {
|
||||
// Audio
|
||||
$.fancybox.open('<audio controls src="' + $(this).attr('data-src') + '"></audio>');
|
||||
}
|
||||
|
||||
return false;
|
||||
} // initialise le nuage de Tags
|
||||
|
||||
|
||||
$('#tag-editor').val('');
|
||||
$('#tag-editor').tagEditor({
|
||||
|
|
@ -11634,9 +11891,7 @@ $(document).ready(function () {
|
|||
initialTags: []
|
||||
});
|
||||
var minWidth = $(document).width();
|
||||
var minHeight = $(document).height() - 43 - 40; // récupère l'image de preview
|
||||
|
||||
var imgPreview = $(this).attr('data-preview'); // Mémorise le média courant
|
||||
var minHeight = $(document).height() - 43 - 40; // Mémorise le média courant
|
||||
|
||||
$(window).data('current_edit_media', $(this).attr('data-id')); // sélectionne la tab preview à l'ouverture
|
||||
|
||||
|
|
@ -11987,8 +12242,8 @@ $(document).ready(function () {
|
|||
} else {
|
||||
$.fancybox.close();
|
||||
$.fancyMessage({
|
||||
title: "Attention",
|
||||
message: "Erreur lors de l'opération, merci d'actualiser la page.",
|
||||
title: "Lier un média à Arcadia",
|
||||
message: "Ce code a déjà été attribué à un autre média. Ajout impossible.",
|
||||
type: "error"
|
||||
});
|
||||
}
|
||||
|
|
@ -11996,7 +12251,7 @@ $(document).ready(function () {
|
|||
error: function error(jqXHR, textStatus, errorThrown) {
|
||||
$.fancybox.close();
|
||||
$.fancyMessage({
|
||||
title: "Attention",
|
||||
title: "Lier un média à Arcadia",
|
||||
message: "Erreur lors de l'opération, merci d'actualiser la page.",
|
||||
type: "error"
|
||||
});
|
||||
|
|
@ -12029,11 +12284,18 @@ $(document).ready(function () {
|
|||
success: function success(result) {
|
||||
if (result) {
|
||||
var article = result.article;
|
||||
var elems = $(".tab_edit #articles").val().split(',');
|
||||
|
||||
if (jQuery.inArray(article.id, elems) == -1) {
|
||||
if ($(".tab_edit #articles").val() != "") {
|
||||
var elems = $(".tab_edit #articles").val().split(',');
|
||||
} else {
|
||||
var elems = [];
|
||||
}
|
||||
|
||||
console.log(elems);
|
||||
|
||||
if (jQuery.inArray(String(article.id), elems) == -1) {
|
||||
// maj de la valeur du champ hidden
|
||||
elems.push(article.id);
|
||||
elems.push(String(article.id));
|
||||
$(".tab_edit #articles").val(elems.join()); // maj du tableau html
|
||||
|
||||
$articleItem = $(".tab_edit .hidden_row tr").clone();
|
||||
|
|
@ -12254,7 +12516,16 @@ $(document).ready(function () {
|
|||
|
||||
$('.action_add_media').on('click', function (event) {
|
||||
event.preventDefault();
|
||||
$('.upload_container').show("fast");
|
||||
|
||||
if ($(window).data('currentFolder') >= 0) {
|
||||
$('.upload_container').show("fast");
|
||||
} else {
|
||||
$.fancyMessage({
|
||||
title: "Ajout de média",
|
||||
message: "Pour ajouter des médias, veuillez d'abord sélectionner un dossier de destination.",
|
||||
type: "error"
|
||||
});
|
||||
}
|
||||
}); // ---- Initialisation du module d'upload
|
||||
|
||||
if ($('#fileupload').length) {
|
||||
|
|
@ -12267,6 +12538,16 @@ $(document).ready(function () {
|
|||
var upload_btn = $('<button/>').addClass('upload').css('display', 'none');
|
||||
$('#submit').on('click', function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
if ($(window).data('currentFolder') == "-1") {
|
||||
$.fancyMessage({
|
||||
title: "Ajout de média",
|
||||
message: "Pour ajouter des médias, veuillez d'abord sélectionner un dossier de destination.",
|
||||
type: "error"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
$("#upload_errors").html("");
|
||||
$('.upload').click(); //click upload buttons and upload all files in the queue
|
||||
});
|
||||
|
|
@ -12317,7 +12598,7 @@ $(document).ready(function () {
|
|||
});
|
||||
$.each(data.files, function (index, file) {
|
||||
var uploadErrors = [];
|
||||
var acceptFileTypes = /^(gif|jpe?g|png|mp4|mp3|psd|ai|eps|svg|indd|pdf)$/i;
|
||||
var acceptFileTypes = /^(gif|jpe?g|png|mp4|mp3|psd|ai|svg|pdf)$/i;
|
||||
|
||||
if (file.name.split('.').pop().length && !acceptFileTypes.test(file.name.split('.').pop())) {
|
||||
uploadErrors.push('Ce type de fichier n\'est pas accepté');
|
||||
|
|
@ -12345,7 +12626,7 @@ $(document).ready(function () {
|
|||
data.formData = {
|
||||
uid: create_UUID(),
|
||||
sujet_id: $("#sujet_selector").val(),
|
||||
dossier_id: $(".currentFolder").val()
|
||||
dossier_id: $(window).data('currentFolder')
|
||||
};
|
||||
data.submit();
|
||||
});
|
||||
|
|
@ -12366,7 +12647,7 @@ $(document).ready(function () {
|
|||
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
||||
}); //---- Chargement des médias
|
||||
|
||||
var currentFolder = $(".currentFolder").val();
|
||||
var currentFolder = $(window).data('currentFolder');
|
||||
|
||||
if (currentFolder == 0 || currentFolder == "") {
|
||||
var count = $(".folder_container .root_folder .count");
|
||||
|
|
@ -12383,13 +12664,8 @@ $(document).ready(function () {
|
|||
$('#progress .progress-bar').css('width', '0%');
|
||||
$('#progress').hide();
|
||||
$('.upload_container').hide("fast");
|
||||
var currentFolder = $(".currentFolder").val();
|
||||
|
||||
if (currentFolder == 0 || currentFolder == "") {
|
||||
$(".root_folder").trigger("click");
|
||||
} else {
|
||||
$('.dd .dd-item[data-id="' + currentFolder + '"] > .dd3-content').trigger("click");
|
||||
}
|
||||
var currentFolder = $(window).data('currentFolder');
|
||||
$(".reinit_search_btn").trigger("click");
|
||||
},
|
||||
fail: function fail(e, data) {
|
||||
$.each(data.files, function (index, file) {
|
||||
|
|
@ -12427,6 +12703,10 @@ function initFolderManager(sujetId) {
|
|||
$("#typevues").find('option').remove();
|
||||
$.each(typevues, function (index, typevue) {
|
||||
$("#typevues").append('<option value="' + typevue.codeTypevue + '">' + typevue.libelle + '</option>');
|
||||
});
|
||||
$(".search_filters .list_typevue ul").html("");
|
||||
$.each(typevues, function (index, typevue) {
|
||||
$(".search_filters .list_typevue ul").append('<li><input id="typeV_' + typevue.codeTypevue + '" type="checkbox" value="' + typevue.codeTypevue + '" name=""><label for="typeV_' + typevue.codeTypevue + '" >' + typevue.libelle + '</label></li>');
|
||||
}); // initialisation de la liste variantes
|
||||
|
||||
var variantes = result.variantes;
|
||||
|
|
@ -12483,7 +12763,8 @@ function initFolderManager(sujetId) {
|
|||
dataType: 'json',
|
||||
data: {
|
||||
parent_id: parent_id,
|
||||
dossier_id: dossier_id
|
||||
dossier_id: dossier_id,
|
||||
sujet_id: $("#sujet_selector").val()
|
||||
},
|
||||
success: function success(result) {
|
||||
$(".folder_container .loader").hide();
|
||||
|
|
@ -12506,12 +12787,17 @@ function initFolderManager(sujetId) {
|
|||
$(".folder_container .dd-empty").remove();
|
||||
$(".folder_container .loader").hide(); //---- Chargement des médias
|
||||
|
||||
var currentFolder = $(".currentFolder").val();
|
||||
var currentFolder = $(window).data('currentFolder');
|
||||
|
||||
if (currentFolder == 0 || currentFolder == "") {
|
||||
$(".root_folder").trigger("click");
|
||||
} else {
|
||||
$('.dd .dd-item[data-id="' + currentFolder + '"] > .dd3-content').trigger("click");
|
||||
} else if (currentFolder > 0) {
|
||||
if ($('.dd .dd-item[data-id="' + currentFolder + '"] > .dd3-content').length) {
|
||||
$('.dd .dd-item[data-id="' + currentFolder + '"] > .dd3-content').trigger("click");
|
||||
} else {
|
||||
$(window).data('currentFolder', 0);
|
||||
$(".root_folder").trigger("click");
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function error(jqXHR, textStatus, errorThrown) {
|
||||
|
|
@ -12526,10 +12812,7 @@ function initFolderManager(sujetId) {
|
|||
} // ---- Chargement des média
|
||||
|
||||
|
||||
$(window).data('offset', 0);
|
||||
$(window).data('limit', 50);
|
||||
|
||||
function loadMedia(dossier_id, sujet_id) {
|
||||
window.loadMedia = function (sujet_id) {
|
||||
var output = '';
|
||||
|
||||
if ($(window).data('offset') == 0) {
|
||||
|
|
@ -12540,17 +12823,24 @@ function loadMedia(dossier_id, sujet_id) {
|
|||
$(".main_content .scrollLoader").show();
|
||||
}
|
||||
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
$.ajax({
|
||||
url: '/ajax/load-media',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
dossier_id: dossier_id,
|
||||
dossier_id: $(window).data('currentFolder'),
|
||||
sujet_id: sujet_id,
|
||||
filters: JSON.stringify($(window).data('filter')),
|
||||
offset: $(window).data('offset'),
|
||||
limit: $(window).data('limit'),
|
||||
orderField: $("#order_select").val(),
|
||||
order: $('#order_select option:selected').attr('data-order')
|
||||
order: $('#order_select option:selected').attr('data-order'),
|
||||
filter: $(window).data('filter')
|
||||
},
|
||||
success: function success(result) {
|
||||
var data = result.data;
|
||||
|
|
@ -12571,8 +12861,15 @@ function loadMedia(dossier_id, sujet_id) {
|
|||
case 1:
|
||||
ico = '<i class="fas fa-file-image"></i>';
|
||||
detail = " - " + item.largeur + "x" + item.hauteur + "px";
|
||||
thumb = item.folder + item.uid + "_thumb." + item.extension;
|
||||
preview = item.folder + item.uid + "_preview." + item.extension;
|
||||
|
||||
if (item.extension == "pdf" || item.extension == "ai" || item.extension == "psd") {
|
||||
thumb = item.folder + item.uid + "_thumb.png";
|
||||
preview = item.folder + item.uid + "_preview.png";
|
||||
} else {
|
||||
thumb = item.folder + item.uid + "_thumb." + item.extension;
|
||||
preview = item.folder + item.uid + "_preview." + item.extension;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
|
@ -12593,29 +12890,21 @@ function loadMedia(dossier_id, sujet_id) {
|
|||
itemClass = "son";
|
||||
break;
|
||||
|
||||
case 5:
|
||||
ico = '<i class="fas fa-file"></i>';
|
||||
|
||||
if (item.extension == "pdf" || item.extension == "ai" || item.extension == "psd") {
|
||||
thumb = item.folder + item.uid + "_thumb.png";
|
||||
preview = item.folder + item.uid + "_preview.png";
|
||||
} else {
|
||||
itemClass = "doc";
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
|
||||
output += '<div class="imageItem" data-id="' + item.id + '" data-ext="' + item.extension + '" data-typemedia="' + item.typemedia_id + '" data-preview="' + preview + '" data-src="' + item.folder + item.uid + "." + item.extension + '" draggable="' + draggable + '" aria-grabbed="false">';
|
||||
output += '<div class="imageItem" data-id="' + item.id + '" data-depot="' + result.isDepot + '" data-ext="' + item.extension + '" data-typemedia="' + item.typemedia_id + '" data-preview="' + preview + '" data-src="' + item.folder + item.uid + "." + item.extension + '" draggable="' + draggable + '" aria-grabbed="false">';
|
||||
output += '<div class="etiquette" style="background-color:' + item.etiquette.color + '; border-color:' + item.etiquette.color + ';" data-id="' + item.etiquette.etiquette_id + '" >' + item.etiquette.libelle + '</div>';
|
||||
output += '<div class="contextMenu"><ul>';
|
||||
output += '<li class="menu-option editItem"><i class="fas fa-edit"></i> Editer</li>';
|
||||
output += '<li class="menu-option downloadItem"><i class="fas fa-file-download"></i> Télécharger</li>';
|
||||
output += '<li class="menu-option addBasket"><i class="fas fa-shopping-basket"></i> Ajouter au panier</li>';
|
||||
output += '<li class="menu-option deleteItem"><i class="fas fa-trash-alt"></i> Supprimer</li>';
|
||||
output += '<li class="menu-option tagItem"><i class="fas fa-tags"></i> Etiquette</li>';
|
||||
|
||||
if (result.role != 2) {
|
||||
output += '<li class="menu-option deleteItem"><i class="fas fa-trash-alt"></i> Supprimer</li>';
|
||||
output += '<li class="menu-option tagItem"><i class="fas fa-tags"></i> Etiquette</li>';
|
||||
}
|
||||
|
||||
output += '</ul></div>';
|
||||
output += '<div class="media ' + itemClass + '" style="background-image:url(' + thumb + ')"></div>';
|
||||
output += '<p class="libelle">' + item.libelle + '</p>';
|
||||
|
|
@ -12634,7 +12923,7 @@ function loadMedia(dossier_id, sujet_id) {
|
|||
$(window).data('ajaxready', true);
|
||||
}
|
||||
});
|
||||
} // ---- Supression de médias
|
||||
}; // ---- Supression de médias
|
||||
|
||||
|
||||
function removeMedias(medias) {
|
||||
|
|
@ -12664,7 +12953,7 @@ function removeMedias(medias) {
|
|||
$(".media_container .imageItem[data-id='" + value + "']").remove();
|
||||
}); // ---- MAJ du nb de média dans le dossier
|
||||
|
||||
var currentFolder = $(".currentFolder").val();
|
||||
var currentFolder = $(window).data('currentFolder');
|
||||
|
||||
if (currentFolder == 0 || currentFolder == "") {
|
||||
var count = $(".folder_container .root_folder .count");
|
||||
|
|
@ -12790,22 +13079,22 @@ function addItem(parent_id, item_id, content) {
|
|||
$('.dd .dd-item[data-id="' + parent_id + '"] > ol').append(html);
|
||||
}
|
||||
|
||||
function arrayRemove(arr, value) {
|
||||
window.arrayRemove = function (arr, value) {
|
||||
return arr.filter(function (ele) {
|
||||
return ele != value;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
function FileConvertSize(aSize) {
|
||||
window.FileConvertSize = function (aSize) {
|
||||
aSize = Math.abs(parseInt(aSize, 10));
|
||||
var def = [[1, 'octets'], [1024, 'ko'], [1024 * 1024, 'Mo'], [1024 * 1024 * 1024, 'Go'], [1024 * 1024 * 1024 * 1024, 'To']];
|
||||
|
||||
for (var i = 0; i < def.length; i++) {
|
||||
if (aSize < def[i][0]) return (aSize / def[i - 1][0]).toFixed(2) + ' ' + def[i - 1][1];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function create_UUID() {
|
||||
window.create_UUID = function () {
|
||||
var dt = new Date().getTime();
|
||||
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
||||
var r = (dt + Math.random() * 16) % 16 | 0;
|
||||
|
|
@ -12813,7 +13102,167 @@ function create_UUID() {
|
|||
return (c == 'x' ? r : r & 0x3 | 0x8).toString(16);
|
||||
});
|
||||
return uuid;
|
||||
}
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/searchengine.js":
|
||||
/*!**************************************!*\
|
||||
!*** ./resources/js/searchengine.js ***!
|
||||
\**************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
$(document).ready(function () {
|
||||
/******************************
|
||||
Moteur de recherche de médias
|
||||
**********************************/
|
||||
// ---- Initialisation du module de recherche
|
||||
if ($('.search_wrapper').length) {
|
||||
// ---- Par défaut déselectionne toutes les checkbox
|
||||
$(".filter").find('input[type="checkbox"]').prop("checked", false); // ---- Initialisation des listes
|
||||
|
||||
$(".filter_selector .filter_btn").on('click', function (event) {
|
||||
$(".filter_selector .list").not($(this).parent().find(".list")).hide();
|
||||
$(this).parent().find(".list").toggle();
|
||||
}); // ---- Initialisation du champ de recherche
|
||||
|
||||
$(".search_filters .search_value").on('keypress', function (event) {
|
||||
if (event.keyCode == 13) {
|
||||
$(".search_filters .search_btn").trigger('click');
|
||||
}
|
||||
}); // ---- Clique sur le bouton de recherche
|
||||
|
||||
$(".search_filters .search_btn").on('click', function (event) {
|
||||
// on créé un object filtre
|
||||
var filter = {
|
||||
type: "search",
|
||||
legend: "Recherche : ",
|
||||
value: $(".search_filters .search_value").val(),
|
||||
libelle: [$(".search_filters .search_value").val()]
|
||||
}; // MAJ du filtre principal et de l'affichage
|
||||
|
||||
updateFilter(filter); // On lance la recherche
|
||||
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(sujet_id);
|
||||
}); // ---- Clique sur un filtre
|
||||
|
||||
$(".filter").on('click', 'input[type="checkbox"]', function (event) {
|
||||
var values = [];
|
||||
var libelles = []; // on créé un object filtre
|
||||
|
||||
var filter = {
|
||||
type: $(this).parents(".filter").attr('data-type'),
|
||||
legend: $(this).parents(".filter").attr('data-lib-type'),
|
||||
value: [],
|
||||
libelle: []
|
||||
}; // on y insère toutes les valeurs de ce même type de filtre
|
||||
|
||||
$(this).parents(".filter").find('input[type="checkbox"]').each(function (index, cb) {
|
||||
if ($(this).is(':checked')) {
|
||||
filter.value.push($(this).val());
|
||||
filter.libelle.push($(this).next("label").html());
|
||||
}
|
||||
}); // MAJ du filtre principal et de l'affichage
|
||||
|
||||
updateFilter(filter); // On lance la recherche
|
||||
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(sujet_id);
|
||||
}); // ---- Réinitialisation de la recherche
|
||||
|
||||
$(".reinit_search_btn").on('click', function (event) {
|
||||
event.preventDefault(); // Vide la bar recherche
|
||||
|
||||
$.each(Object.keys($(window).data('filter')), function (index, value) {
|
||||
if (value != "currentFolder") $(".search_filters_list #" + value).remove();
|
||||
}); // supprime tous les éléments de recherche
|
||||
|
||||
$(window).data('filter', {}); // masque le bouton de reinitialisation
|
||||
|
||||
$(".filter_wrapper .reinit_search_btn").hide(); // ---- Initialisation des listes
|
||||
|
||||
$(".filter").find('input[type="checkbox"]').prop("checked", false); // On lance la recherche
|
||||
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(sujet_id);
|
||||
}); // ---- Suppression d'un filtre
|
||||
|
||||
$(".search_filters_list").on('click', '.filter_item', function (event) {
|
||||
event.preventDefault();
|
||||
var filters = $(window).data('filter');
|
||||
var type = $(this).attr('id'); // Supprime l'élément dans la bar recherche
|
||||
|
||||
$(".search_filters_list #" + type).remove();
|
||||
|
||||
if (type == "currentFolder") {
|
||||
$(".folder_container .dd3-content").removeClass('selected');
|
||||
$(".folder_container .root_folder").removeClass('selected');
|
||||
$(window).data('currentFolder', -1);
|
||||
} else {
|
||||
// supprime la propriété dans l'objet
|
||||
if ("undefined" !== typeof filters[type]) {
|
||||
// si l'object à cette propriété
|
||||
delete filters[type]; // on l'a supprime
|
||||
}
|
||||
|
||||
$(window).data('filter', filters); // ---- Initialisation des listes
|
||||
|
||||
$(".search_filters .filter[data-type='" + type + "']").find('input[type="checkbox"]').prop("checked", false);
|
||||
} // masque le bouton de reinitialisation
|
||||
|
||||
|
||||
if (Object.keys($(window).data('filter')).length == 0) {
|
||||
$(".filter_wrapper .reinit_search_btn").hide();
|
||||
} // On lance la recherche
|
||||
|
||||
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(sujet_id);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
window.updateFilter = function (filter) {
|
||||
var filters = $(window).data('filter'); // si ce filtre n'a pas de valeur
|
||||
|
||||
if (filter.value.length == 0) {
|
||||
$(".search_filters_list #" + filter.type).remove(); // on supprime le filtre de la liste
|
||||
|
||||
if ("undefined" !== typeof filters[filter.type]) {
|
||||
// si l'object à cette propriété
|
||||
delete filters[filter.type]; // on l'a supprime
|
||||
} // si on a des valeurs pour ce filtre
|
||||
|
||||
} else {
|
||||
// on met à jour l'objet filtre
|
||||
filters[filter.type] = filter;
|
||||
$(window).data('filter', filters); // si le filtre n'existe pas dans la liste on l'ajoute
|
||||
|
||||
if (!$(".search_filters_list #" + filter.type).length) {
|
||||
var output = '<a id="' + filter.type + '" class="filter_item" href="#">';
|
||||
output += '<span class="libelle">' + filter.legend + '</span>';
|
||||
output += '<span class="value"></span>';
|
||||
output += '<i class="delete_filter fal fa-times"></i>';
|
||||
output += '</a>';
|
||||
$(".search_filters_list").append(output);
|
||||
}
|
||||
|
||||
$(".search_filters_list #" + filter.type + " .value").html(filter.libelle.join());
|
||||
} // affiche/masque le bouton de reinitialisation
|
||||
|
||||
|
||||
if (Object.keys($(window).data('filter')).length > 0) {
|
||||
$(".filter_wrapper .reinit_search_btn").show();
|
||||
} else {
|
||||
$(".filter_wrapper .reinit_search_btn").hide();
|
||||
}
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
|
||||
|
|
@ -12829,15 +13278,17 @@ function create_UUID() {
|
|||
/***/ }),
|
||||
|
||||
/***/ 0:
|
||||
/*!*************************************************************************************************************!*\
|
||||
!*** multi ./resources/js/app.js ./resources/js/admin.js ./resources/js/media.js ./resources/sass/app.scss ***!
|
||||
\*************************************************************************************************************/
|
||||
/*!********************************************************************************************************************************************************************!*\
|
||||
!*** multi ./resources/js/app.js ./resources/js/admin.js ./resources/js/media.js ./resources/js/depot.js ./resources/js/searchengine.js ./resources/sass/app.scss ***!
|
||||
\********************************************************************************************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
__webpack_require__(/*! D:\sources\www\ldc-dam\resources\js\app.js */"./resources/js/app.js");
|
||||
__webpack_require__(/*! D:\sources\www\ldc-dam\resources\js\admin.js */"./resources/js/admin.js");
|
||||
__webpack_require__(/*! D:\sources\www\ldc-dam\resources\js\media.js */"./resources/js/media.js");
|
||||
__webpack_require__(/*! D:\sources\www\ldc-dam\resources\js\depot.js */"./resources/js/depot.js");
|
||||
__webpack_require__(/*! D:\sources\www\ldc-dam\resources\js\searchengine.js */"./resources/js/searchengine.js");
|
||||
module.exports = __webpack_require__(/*! D:\sources\www\ldc-dam\resources\sass\app.scss */"./resources/sass/app.scss");
|
||||
|
||||
|
||||
|
|
|
|||
13
resources/js/app.js
vendored
13
resources/js/app.js
vendored
|
|
@ -21,6 +21,12 @@ jQuery.fn.scrollParent = function() {
|
|||
return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
|
||||
};
|
||||
|
||||
// ---- Configuration de base des filtres médias
|
||||
$(window).data('offset', 0);
|
||||
$(window).data('limit', 50);
|
||||
$(window).data('currentFolder', 0);
|
||||
$(window).data('filter', {});
|
||||
|
||||
//confirm popup
|
||||
$.fancyConfirm = function( opts ) {
|
||||
opts = $.extend( true, {
|
||||
|
|
@ -107,14 +113,19 @@ $(".userbar").on('click',function(event) {
|
|||
|
||||
$(document).mouseup(function(e) {
|
||||
var container = $(".userbar");
|
||||
var menuContextuel = $(".folder_container .folder_menu");
|
||||
if (!container.is(e.target) && container.has(e.target).length === 0) {
|
||||
$(".submenu").hide();
|
||||
}
|
||||
|
||||
var menuContextuel = $(".folder_container .folder_menu");
|
||||
if (!menuContextuel.is(e.target) && menuContextuel.has(e.target).length === 0) {
|
||||
menuContextuel.hide();
|
||||
}
|
||||
|
||||
var filter_list = $(".filter_selector");
|
||||
if (!filter_list.is(e.target) && filter_list.has(e.target).length === 0) {
|
||||
$(".filter_selector .list").hide();
|
||||
}
|
||||
});
|
||||
|
||||
// ---- Header : Ouverture formulaire de contact
|
||||
|
|
|
|||
176
resources/js/depot.js
vendored
Normal file
176
resources/js/depot.js
vendored
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
|
||||
$(document).ready(function() {
|
||||
|
||||
/******************************
|
||||
Dépôt de média
|
||||
**********************************/
|
||||
|
||||
// ---- Initialisation du module de dépôt
|
||||
if($('#uploadDepot').length){
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
var dossier_id = 0;
|
||||
var cancel_btn = $('<button/>')
|
||||
.addClass('cancel')
|
||||
.html('<i class="fal fa-times"></i>');
|
||||
var upload_btn = $('<button/>')
|
||||
.addClass('upload')
|
||||
.css('display', 'none');
|
||||
|
||||
$('#submit').on('click',function(event){
|
||||
event.preventDefault();
|
||||
|
||||
if(!$(".form_depot_media")[0].checkValidity()){
|
||||
$(".form_depot_media")[0].reportValidity()
|
||||
$.fancyMessage({title : "Dépôt de médias", message : "Veuillez compléter tous les champs avant de lancer le transfert.", type : "error"});
|
||||
return false;
|
||||
}
|
||||
if(currentfiles.length == 0){
|
||||
$.fancyMessage({title : "Dépôt de médias", message : "Veuillez ajouter des médias avant de lancer le transfert.", type : "error"});
|
||||
return false;
|
||||
}
|
||||
|
||||
var currentdate = new Date();
|
||||
folderName = $("#depot_societe").val().replace(' ', '_')+"_"+currentdate.getFullYear().toString()+("0" +(currentdate.getMonth()+1)).slice(-2)+currentdate.getDate().toString()+"_"+currentdate.getHours().toString()+currentdate.getMinutes().toString()+ currentdate.getSeconds().toString();
|
||||
var description = "Nom : "+$("#depot_nom").val()+'\n'+"Société : "+$("#depot_societe").val()+'\n'+$("#depot_description").val();
|
||||
|
||||
// création d'un dossier de dépôt
|
||||
$("#upload_errors").html("");
|
||||
$.ajax({
|
||||
url: '/ajax/add-depot-folder',
|
||||
method: 'POST',
|
||||
dataType : 'json',
|
||||
data: {
|
||||
libelle: folderName,
|
||||
description : description,
|
||||
},
|
||||
success: function(result){
|
||||
dossier_id = result.folder_id;
|
||||
$('.upload').click() //click upload buttons and upload all files in the queue
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
$('#cancel').on('click',function(event){
|
||||
event.preventDefault();
|
||||
$('.cancel').click() //click cancel buttons and remove all files in the queue
|
||||
$("#upload_errors").html("");
|
||||
});
|
||||
|
||||
$(".uploader-window").on("dragleave", function(){
|
||||
$(this).stop().fadeOut( "fast");
|
||||
});
|
||||
|
||||
var currentfiles = [];
|
||||
var maxFiles = 20;
|
||||
var counter = 0;
|
||||
$('#uploadDepot').fileupload({
|
||||
url: "/ajax/upload-media",
|
||||
dataType: 'json',
|
||||
limitMultiFileUploads: 10,
|
||||
maxChunkSize: 8000000,
|
||||
maxNumberOfFiles: 2,
|
||||
dragover: function (e, data) {
|
||||
$(".uploader-window").fadeIn( "fast");
|
||||
},
|
||||
add: function (e, data) {
|
||||
|
||||
if(counter < maxFiles){
|
||||
counter++;
|
||||
}else{
|
||||
$.fancyMessage({title : "Attention", message : "Vous ne pouvez pas ajouter plus de "+maxFiles+" fichiers", type : "info"});
|
||||
return false;
|
||||
}
|
||||
|
||||
data.files = $.map(data.files, function(file,i){
|
||||
if ($.inArray(file.name,currentfiles) >= 0) {
|
||||
$.fancyMessage({title : "Attention", message : "Nous ne pouvons pas envoyer plusieurs fichiers du même nom. Veuillez renommer vos fichiers puis essayez à nouveau.", type : "error"});
|
||||
return null;
|
||||
}
|
||||
return file;
|
||||
});
|
||||
|
||||
$.each(data.files, function (index, file) {
|
||||
|
||||
var uploadErrors = [];
|
||||
var acceptFileTypes = /^(gif|jpe?g|png|mp4|mp3|psd|ai|svg|pdf)$/i;
|
||||
if(file.name.split('.').pop().length && !acceptFileTypes.test(file.name.split('.').pop())) {
|
||||
uploadErrors.push('Ce type de fichier n\'est pas accepté');
|
||||
}
|
||||
if(data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
|
||||
uploadErrors.push('La taille du fichier est trop grande.');
|
||||
}
|
||||
if(uploadErrors.length > 0) {
|
||||
alert(uploadErrors.join("\n"));
|
||||
return false;
|
||||
}
|
||||
|
||||
currentfiles.push($.trim(file.name));
|
||||
var row = document.createElement('div');
|
||||
var col1 = document.createElement('div');
|
||||
var col2 = document.createElement('div');
|
||||
$(col1).append("<span>"+file.name+"</span>").append(cancel_btn.clone(true).data(data));
|
||||
$(col2).append("<span>"+file.type+" - "+FileConvertSize(file.size)+"</span>");
|
||||
$(col2).append(upload_btn.clone(true).data(data));
|
||||
$(row).append(col1, col2);
|
||||
$(".files").append(row);
|
||||
|
||||
$('.upload').eq(-1).on('click',function(){
|
||||
data.formData = {
|
||||
uid: create_UUID(),
|
||||
dossier_id: dossier_id,
|
||||
};
|
||||
data.submit();
|
||||
})
|
||||
$('.cancel').eq(-1).on('click',function(){
|
||||
$(this).parent().parent().remove();
|
||||
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
||||
})
|
||||
});
|
||||
|
||||
},
|
||||
start: function (e, data) {
|
||||
$('#progress').show();
|
||||
},
|
||||
drop: function (e, data) {
|
||||
$(".uploader-window").stop().fadeOut( "fast");
|
||||
},
|
||||
done: function (e, data) {
|
||||
$.each(data.files, function (index, file) {
|
||||
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
||||
});
|
||||
},
|
||||
stop: function (e,) {
|
||||
$(".files").html("");
|
||||
counter = 0;
|
||||
currentfiles = [];
|
||||
$('#progress .progress-bar').css('width', '0%');
|
||||
$('#progress').hide();
|
||||
$("#depot_nom").val('');
|
||||
$("#depot_societe").val('');
|
||||
$("#depot_description").val('');
|
||||
$.fancyMessage({title : "Dépôt de médias", message : "Le transfert des fichiers est terminé !", type : "info"});
|
||||
},
|
||||
fail: function (e, data) {
|
||||
$.each(data.files, function (index, file) {
|
||||
$('<p style="color: red;">Erreur durant le transfert du fichier ' + file.name + '.</p>')
|
||||
.appendTo('#upload_errors');
|
||||
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
||||
});
|
||||
},
|
||||
progressall: function (e, data) {
|
||||
var progress = parseInt(data.loaded / data.total * 100, 10);
|
||||
$('#progress .progress-bar').css(
|
||||
'width',
|
||||
progress + '%'
|
||||
);
|
||||
}
|
||||
}).prop('disabled', !$.support.fileInput)
|
||||
.parent().addClass($.support.fileInput ? undefined : 'disabled');
|
||||
}
|
||||
});
|
||||
193
resources/js/media.js
vendored
193
resources/js/media.js
vendored
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
$(document).ready(function() {
|
||||
|
||||
/******************************
|
||||
|
|
@ -7,6 +6,29 @@ $(document).ready(function() {
|
|||
|
||||
// ---- init des dossiers
|
||||
if ( $( ".media_manager" ).length ) {
|
||||
|
||||
// En cas d'une recherche depuis la home, initialise la page avec une recherche texte
|
||||
if($("#searchParameter").val() != ""){
|
||||
// on créé un object filtre
|
||||
var filter = {
|
||||
type: "search",
|
||||
legend : "Recherche : ",
|
||||
value: $("#searchParameter").val(),
|
||||
libelle: [$("#searchParameter").val()],
|
||||
};
|
||||
// MAJ du filtre principal et de l'affichage
|
||||
updateFilter(filter);
|
||||
$(".search_filters .search_value").val($("#searchParameter").val());
|
||||
}
|
||||
|
||||
// En cas d'une recherche depuis la home, initialise la page avec le bon sujet
|
||||
if($("#sujetParameter").val() != ""){
|
||||
// aucun dossier sélectionner
|
||||
$(window).data('currentFolder', -1);
|
||||
|
||||
$("#sujet_selector").val($("#sujetParameter").val());
|
||||
loadMedia($("#sujet_selector").val());
|
||||
}
|
||||
var sujetId = $("#sujet_selector").val();
|
||||
if(sujetId != "")
|
||||
initFolderManager(sujetId);
|
||||
|
|
@ -31,7 +53,7 @@ $(document).ready(function() {
|
|||
var sujetId = $("#sujet_selector").val();
|
||||
if(sujetId != "")
|
||||
$('.dd').nestable('destroy');
|
||||
$(".currentFolder").val(0);
|
||||
$(window).data('currentFolder', 0);
|
||||
initFolderManager(sujetId);
|
||||
});
|
||||
|
||||
|
|
@ -65,9 +87,18 @@ $(document).ready(function() {
|
|||
$(".folder_container .root_folder").removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(".currentFolder").val(dossier_id);
|
||||
$(window).data('currentFolder', dossier_id);
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(dossier_id, sujet_id);
|
||||
loadMedia(sujet_id);
|
||||
|
||||
// ajout du dossier courant dans la barre de filtre
|
||||
$(".search_filters_list #currentFolder").remove();
|
||||
var output = '<a id="currentFolder" class="filter_item" href="#">';
|
||||
output += '<span class="libelle">Dossier : </span>';
|
||||
output += '<span class="value">'+$(".folder_container .dd3-item[data-id='"+dossier_id+"'] > .dd3-content span").html()+'</span>';
|
||||
output += '<i class="delete_filter fal fa-times"></i>';
|
||||
output += '</a>';
|
||||
$(".search_filters_list").prepend(output);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -78,10 +109,19 @@ $(document).ready(function() {
|
|||
event.preventDefault();
|
||||
$(".folder_container .dd3-content").removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
$(".currentFolder").val(0);
|
||||
$(window).data('currentFolder', 0);
|
||||
var sujetId = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(0, sujetId);
|
||||
loadMedia(sujetId);
|
||||
|
||||
// ajout du dossier courant dans la barre de filtre
|
||||
$(".search_filters_list #currentFolder").remove();
|
||||
var output = '<a id="currentFolder" class="filter_item" href="#">';
|
||||
output += '<span class="libelle">Dossier : </span>';
|
||||
output += '<span class="value">racine</span>';
|
||||
output += '<i class="delete_filter fal fa-times"></i>';
|
||||
output += '</a>';
|
||||
$(".search_filters_list").prepend(output);
|
||||
});
|
||||
|
||||
// ---- menu contextuel des dossiers
|
||||
|
|
@ -145,7 +185,8 @@ $(document).ready(function() {
|
|||
$(".folder_container .folder_menu").hide();
|
||||
$(".folder_container .loader").show();
|
||||
|
||||
if(!$('.dd .dd-item[data-id="'+dossier_id+'"] > ol').length){
|
||||
var $countCurrentFolder = $(".folder_container .dd3-item[data-id='"+dossier_id+"'] > .dd3-content .count").html();
|
||||
if(!$('.dd .dd-item[data-id="'+dossier_id+'"] > ol').length && $(window).data('currentFolder') == 0){
|
||||
$.ajax({
|
||||
url: '/ajax/remove-folder',
|
||||
method: 'POST',
|
||||
|
|
@ -313,7 +354,7 @@ $(document).ready(function() {
|
|||
// ---- source
|
||||
var data = event.originalEvent.dataTransfer.getData("Text");
|
||||
|
||||
if($(".currentFolder").val() != dossier_id){
|
||||
if($(window).data('currentFolder') != dossier_id){
|
||||
$.ajax({
|
||||
url: '/ajax/move-media',
|
||||
method: 'POST',
|
||||
|
|
@ -321,9 +362,10 @@ $(document).ready(function() {
|
|||
data: {
|
||||
dossier_id: dossier_id,
|
||||
data: data,
|
||||
sujet_id: $("#sujet_selector").val(),
|
||||
},
|
||||
success: function(result){
|
||||
var currentFolderId = $(".currentFolder").val();
|
||||
var currentFolderId = $(window).data('currentFolder');
|
||||
var arrayMediaId = data.split(',');
|
||||
if(currentFolderId == 0){
|
||||
var $countCurrentFolder = $(".folder_container .root_folder .count");
|
||||
|
|
@ -489,8 +531,7 @@ $(document).ready(function() {
|
|||
if( ($(".media_container").scrollTop() + $(".media_container").height() ) == $(".media_container .wrapper").height() ) {
|
||||
$(window).data('ajaxready', false);
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
var dossier_id = $(".currentFolder").val();
|
||||
loadMedia(dossier_id, sujet_id);
|
||||
loadMedia(sujet_id);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -514,9 +555,8 @@ $(document).ready(function() {
|
|||
// ---- Gestion de l'ordre d'affichage
|
||||
$(".action_wrapper #order_select").on("change", function(event) {
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
var dossier_id = $(".currentFolder").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(dossier_id, sujet_id);
|
||||
loadMedia(sujet_id);
|
||||
});
|
||||
|
||||
/******************************
|
||||
|
|
@ -529,6 +569,20 @@ $(document).ready(function() {
|
|||
$(".main_content .wrapper").on("dblclick", '.imageItem' , function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
// récupère l'image de preview
|
||||
var imgPreview = $(this).attr('data-preview');
|
||||
|
||||
if($(this).attr('data-depot') == 1){
|
||||
if($(this).attr('data-typemedia') == 1|| $(this).attr('data-typemedia') == 2){ // image
|
||||
$.fancybox.open('<img style="width: 640px; height:auto;" src="'+imgPreview+'" alt="" />');
|
||||
}else if ($(this).attr('data-typemedia') == 3) { // vidéo
|
||||
$.fancybox.open('<video src="'+$(this).attr('data-src')+'" controls></video>');
|
||||
}else if ($(this).attr('data-typemedia') == 4) { // Audio
|
||||
$.fancybox.open('<audio controls src="'+$(this).attr('data-src')+'"></audio>');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// initialise le nuage de Tags
|
||||
$('#tag-editor').val('');
|
||||
$('#tag-editor').tagEditor({
|
||||
|
|
@ -541,9 +595,6 @@ $(document).ready(function() {
|
|||
var minWidth = $(document).width();
|
||||
var minHeight = $(document).height()-43-40;
|
||||
|
||||
// récupère l'image de preview
|
||||
var imgPreview = $(this).attr('data-preview');
|
||||
|
||||
// Mémorise le média courant
|
||||
$(window).data('current_edit_media', $(this).attr('data-id'));
|
||||
// sélectionne la tab preview à l'ouverture
|
||||
|
|
@ -865,12 +916,12 @@ $(document).ready(function() {
|
|||
$("#arcadia_id").val(arcadia_id);
|
||||
}else{
|
||||
$.fancybox.close();
|
||||
$.fancyMessage({title : "Attention", message : "Erreur lors de l'opération, merci d'actualiser la page.", type : "error"});
|
||||
$.fancyMessage({title : "Lier un média à Arcadia", message : "Ce code a déjà été attribué à un autre média. Ajout impossible.", type : "error"});
|
||||
}
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.fancybox.close();
|
||||
$.fancyMessage({title : "Attention", message : "Erreur lors de l'opération, merci d'actualiser la page.", type : "error"});
|
||||
$.fancyMessage({title : "Lier un média à Arcadia", message : "Erreur lors de l'opération, merci d'actualiser la page.", type : "error"});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
@ -903,11 +954,16 @@ $(document).ready(function() {
|
|||
},
|
||||
success: function(result){
|
||||
if(result){
|
||||
var article = result.article;
|
||||
var article = result.article;
|
||||
if($(".tab_edit #articles").val() != ""){
|
||||
var elems = $(".tab_edit #articles").val().split(',');
|
||||
if(jQuery.inArray(article.id, elems) == -1){
|
||||
}else{
|
||||
var elems = [];
|
||||
}
|
||||
console.log(elems);
|
||||
if(jQuery.inArray(String(article.id), elems) == -1){
|
||||
// maj de la valeur du champ hidden
|
||||
elems.push(article.id);
|
||||
elems.push(String(article.id));
|
||||
$(".tab_edit #articles").val(elems.join());
|
||||
// maj du tableau html
|
||||
$articleItem = $(".tab_edit .hidden_row tr").clone();
|
||||
|
|
@ -1001,7 +1057,6 @@ $(document).ready(function() {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
if(medias.length == 0){
|
||||
$.fancyMessage({title : "Télécharger des médias", message : "Veuillez sélectionner au moins un média.", type : "info"});
|
||||
}else{
|
||||
|
|
@ -1114,7 +1169,11 @@ $(document).ready(function() {
|
|||
// ---- Ouvrir la popup d'upload
|
||||
$('.action_add_media').on('click',function(event){
|
||||
event.preventDefault();
|
||||
$('.upload_container').show("fast");
|
||||
if($(window).data('currentFolder') >=0){
|
||||
$('.upload_container').show("fast");
|
||||
}else{
|
||||
$.fancyMessage({title : "Ajout de média", message : "Pour ajouter des médias, veuillez d'abord sélectionner un dossier de destination.", type : "error"});
|
||||
}
|
||||
});
|
||||
|
||||
// ---- Initialisation du module d'upload
|
||||
|
|
@ -1134,6 +1193,10 @@ $(document).ready(function() {
|
|||
|
||||
$('#submit').on('click',function(event){
|
||||
event.preventDefault();
|
||||
if($(window).data('currentFolder') == "-1"){
|
||||
$.fancyMessage({title : "Ajout de média", message : "Pour ajouter des médias, veuillez d'abord sélectionner un dossier de destination.", type : "error"});
|
||||
return false;
|
||||
}
|
||||
$("#upload_errors").html("");
|
||||
$('.upload').click() //click upload buttons and upload all files in the queue
|
||||
});
|
||||
|
|
@ -1179,7 +1242,7 @@ $(document).ready(function() {
|
|||
$.each(data.files, function (index, file) {
|
||||
|
||||
var uploadErrors = [];
|
||||
var acceptFileTypes = /^(gif|jpe?g|png|mp4|mp3|psd|ai|eps|svg|indd|pdf)$/i;
|
||||
var acceptFileTypes = /^(gif|jpe?g|png|mp4|mp3|psd|ai|svg|pdf)$/i;
|
||||
if(file.name.split('.').pop().length && !acceptFileTypes.test(file.name.split('.').pop())) {
|
||||
uploadErrors.push('Ce type de fichier n\'est pas accepté');
|
||||
}
|
||||
|
|
@ -1205,7 +1268,7 @@ $(document).ready(function() {
|
|||
data.formData = {
|
||||
uid: create_UUID(),
|
||||
sujet_id: $("#sujet_selector").val(),
|
||||
dossier_id: $(".currentFolder").val(),
|
||||
dossier_id: $(window).data('currentFolder'),
|
||||
};
|
||||
data.submit();
|
||||
})
|
||||
|
|
@ -1227,7 +1290,7 @@ $(document).ready(function() {
|
|||
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
||||
});
|
||||
//---- Chargement des médias
|
||||
var currentFolder = $(".currentFolder").val();
|
||||
var currentFolder = $(window).data('currentFolder');
|
||||
if(currentFolder == 0 || currentFolder == ""){
|
||||
var count = $(".folder_container .root_folder .count");
|
||||
}else{
|
||||
|
|
@ -1242,12 +1305,8 @@ $(document).ready(function() {
|
|||
$('#progress .progress-bar').css('width', '0%');
|
||||
$('#progress').hide();
|
||||
$('.upload_container').hide("fast");
|
||||
var currentFolder = $(".currentFolder").val();
|
||||
if(currentFolder == 0 || currentFolder == ""){
|
||||
$(".root_folder").trigger("click");
|
||||
}else{
|
||||
$('.dd .dd-item[data-id="'+currentFolder+'"] > .dd3-content').trigger("click");
|
||||
}
|
||||
var currentFolder = $(window).data('currentFolder');
|
||||
$(".reinit_search_btn").trigger("click");
|
||||
},
|
||||
fail: function (e, data) {
|
||||
$.each(data.files, function (index, file) {
|
||||
|
|
@ -1291,14 +1350,18 @@ function initFolderManager(sujetId){
|
|||
var typevues = result.typevues;
|
||||
$("#typevues").find('option').remove();
|
||||
$.each(typevues, function (index, typevue) {
|
||||
$("#typevues").append('<option value="'+typevue.codeTypevue+'">'+typevue.libelle+'</option>')
|
||||
$("#typevues").append('<option value="'+typevue.codeTypevue+'">'+typevue.libelle+'</option>');
|
||||
});
|
||||
$(".search_filters .list_typevue ul").html("");
|
||||
$.each(typevues, function (index, typevue) {
|
||||
$(".search_filters .list_typevue ul").append('<li><input id="typeV_'+typevue.codeTypevue+'" type="checkbox" value="'+typevue.codeTypevue+'" name=""><label for="typeV_'+typevue.codeTypevue+'" >'+typevue.libelle+'</label></li>');
|
||||
});
|
||||
|
||||
// initialisation de la liste variantes
|
||||
var variantes = result.variantes;
|
||||
$("#variantes").find('option').remove();
|
||||
$.each(variantes, function (index, variante) {
|
||||
$("#variantes").append('<option value="'+variante.codeVariante+'" data-typevue="'+variante.typevue_id+'" >'+variante.libelle+'</option>')
|
||||
$("#variantes").append('<option value="'+variante.codeVariante+'" data-typevue="'+variante.typevue_id+'" >'+variante.libelle+'</option>');
|
||||
});
|
||||
|
||||
// initialisation des formats de vignette disponibles autéléchargement
|
||||
|
|
@ -1345,6 +1408,7 @@ function initFolderManager(sujetId){
|
|||
data: {
|
||||
parent_id : parent_id,
|
||||
dossier_id : dossier_id,
|
||||
sujet_id: $("#sujet_selector").val(),
|
||||
},
|
||||
success: function(result){
|
||||
$(".folder_container .loader").hide();
|
||||
|
|
@ -1363,11 +1427,16 @@ function initFolderManager(sujetId){
|
|||
$(".folder_container .dd-empty").remove();
|
||||
$(".folder_container .loader").hide();
|
||||
//---- Chargement des médias
|
||||
var currentFolder = $(".currentFolder").val();
|
||||
var currentFolder = $(window).data('currentFolder');
|
||||
if(currentFolder == 0 || currentFolder == ""){
|
||||
$(".root_folder").trigger("click");
|
||||
}else{
|
||||
$('.dd .dd-item[data-id="'+currentFolder+'"] > .dd3-content').trigger("click");
|
||||
}else if (currentFolder > 0) {
|
||||
if($('.dd .dd-item[data-id="'+currentFolder+'"] > .dd3-content').length){
|
||||
$('.dd .dd-item[data-id="'+currentFolder+'"] > .dd3-content').trigger("click");
|
||||
}else{
|
||||
$(window).data('currentFolder', 0);
|
||||
$(".root_folder").trigger("click");
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
|
|
@ -1378,9 +1447,7 @@ function initFolderManager(sujetId){
|
|||
}
|
||||
|
||||
// ---- Chargement des média
|
||||
$(window).data('offset', 0);
|
||||
$(window).data('limit', 50);
|
||||
function loadMedia(dossier_id, sujet_id){
|
||||
window.loadMedia = function(sujet_id){
|
||||
var output = '';
|
||||
if($(window).data('offset') == 0){
|
||||
$(window).data('noMedia', false);
|
||||
|
|
@ -1390,17 +1457,25 @@ function loadMedia(dossier_id, sujet_id){
|
|||
$(".main_content .scrollLoader").show();
|
||||
}
|
||||
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
url: '/ajax/load-media',
|
||||
method: 'POST',
|
||||
dataType : 'json',
|
||||
data: {
|
||||
dossier_id : dossier_id,
|
||||
dossier_id : $(window).data('currentFolder'),
|
||||
sujet_id : sujet_id,
|
||||
filters : JSON.stringify($(window).data('filter')),
|
||||
offset : $(window).data('offset'),
|
||||
limit : $(window).data('limit'),
|
||||
orderField : $("#order_select").val(),
|
||||
order : $('#order_select option:selected').attr('data-order')
|
||||
order : $('#order_select option:selected').attr('data-order'),
|
||||
filter : $(window).data('filter'),
|
||||
},
|
||||
success: function(result){
|
||||
var data = result.data;
|
||||
|
|
@ -1419,8 +1494,13 @@ function loadMedia(dossier_id, sujet_id){
|
|||
case 1:
|
||||
ico = '<i class="fas fa-file-image"></i>';
|
||||
detail = " - "+item.largeur+"x"+item.hauteur+"px";
|
||||
thumb = item.folder+item.uid+"_thumb."+item.extension;
|
||||
preview = item.folder+item.uid+"_preview."+item.extension;
|
||||
if(item.extension == "pdf" || item.extension == "ai" || item.extension == "psd"){
|
||||
thumb = item.folder+item.uid+"_thumb.png";
|
||||
preview = item.folder+item.uid+"_preview.png";
|
||||
}else{
|
||||
thumb = item.folder+item.uid+"_thumb."+item.extension;
|
||||
preview = item.folder+item.uid+"_preview."+item.extension;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
ico = '<i class="fas fa-file-image"></i>';
|
||||
|
|
@ -1437,27 +1517,20 @@ function loadMedia(dossier_id, sujet_id){
|
|||
detail = " - durée "+item.duree;
|
||||
itemClass = "son";
|
||||
break;
|
||||
case 5:
|
||||
ico = '<i class="fas fa-file"></i>';
|
||||
if(item.extension == "pdf" || item.extension == "ai" || item.extension == "psd"){
|
||||
thumb = item.folder+item.uid+"_thumb.png";
|
||||
preview = item.folder+item.uid+"_preview.png";
|
||||
}else{
|
||||
itemClass = "doc";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
}
|
||||
|
||||
output += '<div class="imageItem" data-id="'+item.id+'" data-ext="'+item.extension+'" data-typemedia="'+item.typemedia_id+'" data-preview="'+preview+'" data-src="'+item.folder+item.uid+"."+item.extension+'" draggable="'+draggable+'" aria-grabbed="false">';
|
||||
output += '<div class="imageItem" data-id="'+item.id+'" data-depot="'+result.isDepot+'" data-ext="'+item.extension+'" data-typemedia="'+item.typemedia_id+'" data-preview="'+preview+'" data-src="'+item.folder+item.uid+"."+item.extension+'" draggable="'+draggable+'" aria-grabbed="false">';
|
||||
output += '<div class="etiquette" style="background-color:'+item.etiquette.color+'; border-color:'+item.etiquette.color+';" data-id="'+item.etiquette.etiquette_id+'" >'+item.etiquette.libelle+'</div>';
|
||||
output += '<div class="contextMenu"><ul>';
|
||||
output += '<li class="menu-option editItem"><i class="fas fa-edit"></i> Editer</li>';
|
||||
output += '<li class="menu-option downloadItem"><i class="fas fa-file-download"></i> Télécharger</li>';
|
||||
output += '<li class="menu-option addBasket"><i class="fas fa-shopping-basket"></i> Ajouter au panier</li>';
|
||||
output += '<li class="menu-option deleteItem"><i class="fas fa-trash-alt"></i> Supprimer</li>';
|
||||
output += '<li class="menu-option tagItem"><i class="fas fa-tags"></i> Etiquette</li>';
|
||||
if(result.role != 2 ){
|
||||
output += '<li class="menu-option deleteItem"><i class="fas fa-trash-alt"></i> Supprimer</li>';
|
||||
output += '<li class="menu-option tagItem"><i class="fas fa-tags"></i> Etiquette</li>';
|
||||
}
|
||||
output += '</ul></div>';
|
||||
output += '<div class="media '+itemClass+'" style="background-image:url('+thumb+')"></div>';
|
||||
output += '<p class="libelle">'+item.libelle+'</p>';
|
||||
|
|
@ -1503,7 +1576,7 @@ function removeMedias(medias){
|
|||
});
|
||||
|
||||
// ---- MAJ du nb de média dans le dossier
|
||||
var currentFolder = $(".currentFolder").val();
|
||||
var currentFolder = $(window).data('currentFolder');
|
||||
if(currentFolder == 0 || currentFolder == ""){
|
||||
var count = $(".folder_container .root_folder .count");
|
||||
}else{
|
||||
|
|
@ -1604,13 +1677,13 @@ function addItem(parent_id, item_id, content){
|
|||
$('.dd .dd-item[data-id="'+parent_id+'"] > ol').append(html);
|
||||
}
|
||||
|
||||
function arrayRemove(arr, value) {
|
||||
window.arrayRemove = function(arr, value){
|
||||
return arr.filter(function(ele){
|
||||
return ele != value;
|
||||
});
|
||||
}
|
||||
|
||||
function FileConvertSize(aSize){
|
||||
window.FileConvertSize = function(aSize){
|
||||
aSize = Math.abs(parseInt(aSize, 10));
|
||||
var def = [[1, 'octets'], [1024, 'ko'], [1024*1024, 'Mo'], [1024*1024*1024, 'Go'], [1024*1024*1024*1024, 'To']];
|
||||
for(var i=0; i<def.length; i++){
|
||||
|
|
@ -1618,7 +1691,7 @@ function FileConvertSize(aSize){
|
|||
}
|
||||
}
|
||||
|
||||
function create_UUID(){
|
||||
window.create_UUID = function(){
|
||||
var dt = new Date().getTime();
|
||||
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||
var r = (dt + Math.random()*16)%16 | 0;
|
||||
|
|
|
|||
170
resources/js/searchengine.js
vendored
Normal file
170
resources/js/searchengine.js
vendored
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
|
||||
$(document).ready(function() {
|
||||
|
||||
/******************************
|
||||
Moteur de recherche de médias
|
||||
**********************************/
|
||||
|
||||
// ---- Initialisation du module de recherche
|
||||
if($('.search_wrapper').length){
|
||||
|
||||
// ---- Par défaut déselectionne toutes les checkbox
|
||||
$(".filter").find('input[type="checkbox"]').prop( "checked", false );
|
||||
|
||||
// ---- Initialisation des listes
|
||||
$(".filter_selector .filter_btn").on('click',function(event) {
|
||||
$(".filter_selector .list").not($(this).parent().find(".list")).hide();
|
||||
$(this).parent().find(".list").toggle();
|
||||
});
|
||||
|
||||
// ---- Initialisation du champ de recherche
|
||||
$(".search_filters .search_value").on('keypress',function(event) {
|
||||
if (event.keyCode == 13) {
|
||||
$(".search_filters .search_btn").trigger('click');
|
||||
}
|
||||
});
|
||||
|
||||
// ---- Clique sur le bouton de recherche
|
||||
$(".search_filters .search_btn").on('click', function(event) {
|
||||
// on créé un object filtre
|
||||
var filter = {
|
||||
type: "search",
|
||||
legend : "Recherche : ",
|
||||
value: $(".search_filters .search_value").val(),
|
||||
libelle: [$(".search_filters .search_value").val()],
|
||||
};
|
||||
|
||||
// MAJ du filtre principal et de l'affichage
|
||||
updateFilter(filter);
|
||||
|
||||
// On lance la recherche
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(sujet_id);
|
||||
});
|
||||
|
||||
// ---- Clique sur un filtre
|
||||
$(".filter").on('click', 'input[type="checkbox"]', function(event) {
|
||||
var values = [];
|
||||
var libelles = [];
|
||||
|
||||
// on créé un object filtre
|
||||
var filter = {
|
||||
type: $(this).parents(".filter").attr('data-type'),
|
||||
legend : $(this).parents(".filter").attr('data-lib-type'),
|
||||
value: [],
|
||||
libelle: [],
|
||||
};
|
||||
|
||||
// on y insère toutes les valeurs de ce même type de filtre
|
||||
$(this).parents(".filter").find('input[type="checkbox"]').each(function (index, cb){
|
||||
if($(this).is(':checked')){
|
||||
filter.value.push($(this).val());
|
||||
filter.libelle.push($(this).next("label").html());
|
||||
}
|
||||
});
|
||||
|
||||
// MAJ du filtre principal et de l'affichage
|
||||
updateFilter(filter);
|
||||
|
||||
// On lance la recherche
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(sujet_id);
|
||||
});
|
||||
|
||||
// ---- Réinitialisation de la recherche
|
||||
$(".reinit_search_btn").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
// Vide la bar recherche
|
||||
$.each(Object.keys($(window).data('filter')), function (index, value) {
|
||||
if(value != "currentFolder")
|
||||
$(".search_filters_list #"+value).remove();
|
||||
});
|
||||
// supprime tous les éléments de recherche
|
||||
$(window).data('filter', {});
|
||||
// masque le bouton de reinitialisation
|
||||
$(".filter_wrapper .reinit_search_btn").hide();
|
||||
|
||||
// ---- Initialisation des listes
|
||||
$(".filter").find('input[type="checkbox"]').prop( "checked", false );
|
||||
|
||||
// On lance la recherche
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(sujet_id);
|
||||
});
|
||||
|
||||
// ---- Suppression d'un filtre
|
||||
$(".search_filters_list").on('click', '.filter_item', function(event) {
|
||||
event.preventDefault();
|
||||
var filters = $(window).data('filter');
|
||||
var type = $(this).attr('id');
|
||||
|
||||
// Supprime l'élément dans la bar recherche
|
||||
$(".search_filters_list #"+type).remove();
|
||||
|
||||
if(type == "currentFolder"){
|
||||
$(".folder_container .dd3-content").removeClass('selected');
|
||||
$(".folder_container .root_folder").removeClass('selected');
|
||||
$(window).data('currentFolder', -1);
|
||||
}else{
|
||||
// supprime la propriété dans l'objet
|
||||
if("undefined" !== typeof(filters[type]) ){ // si l'object à cette propriété
|
||||
delete filters[type]; // on l'a supprime
|
||||
}
|
||||
$(window).data('filter', filters);
|
||||
|
||||
// ---- Initialisation des listes
|
||||
$(".search_filters .filter[data-type='"+type+"']").find('input[type="checkbox"]').prop( "checked", false );
|
||||
}
|
||||
|
||||
// masque le bouton de reinitialisation
|
||||
if(Object.keys($(window).data('filter')).length == 0){
|
||||
$(".filter_wrapper .reinit_search_btn").hide();
|
||||
}
|
||||
|
||||
// On lance la recherche
|
||||
var sujet_id = $("#sujet_selector").val();
|
||||
$(window).data('offset', 0);
|
||||
loadMedia(sujet_id);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
window.updateFilter = function(filter){
|
||||
var filters = $(window).data('filter');
|
||||
|
||||
// si ce filtre n'a pas de valeur
|
||||
if(filter.value.length == 0 ){
|
||||
$(".search_filters_list #"+filter.type).remove(); // on supprime le filtre de la liste
|
||||
if("undefined" !== typeof(filters[filter.type]) ){ // si l'object à cette propriété
|
||||
delete filters[filter.type]; // on l'a supprime
|
||||
}
|
||||
|
||||
// si on a des valeurs pour ce filtre
|
||||
}else{
|
||||
// on met à jour l'objet filtre
|
||||
filters[filter.type] = filter;
|
||||
$(window).data('filter', filters);
|
||||
|
||||
// si le filtre n'existe pas dans la liste on l'ajoute
|
||||
if(!$(".search_filters_list #"+filter.type).length){
|
||||
var output = '<a id="'+filter.type+'" class="filter_item" href="#">';
|
||||
output += '<span class="libelle">'+filter.legend+'</span>';
|
||||
output += '<span class="value"></span>';
|
||||
output += '<i class="delete_filter fal fa-times"></i>';
|
||||
output += '</a>';
|
||||
$(".search_filters_list").append(output);
|
||||
}
|
||||
|
||||
$(".search_filters_list #"+filter.type+" .value").html(filter.libelle.join());
|
||||
}
|
||||
|
||||
// affiche/masque le bouton de reinitialisation
|
||||
if(Object.keys($(window).data('filter')).length > 0){
|
||||
$(".filter_wrapper .reinit_search_btn").show();
|
||||
}else{
|
||||
$(".filter_wrapper .reinit_search_btn").hide();
|
||||
}
|
||||
}
|
||||
60
resources/sass/partials/fileupload.scss
vendored
60
resources/sass/partials/fileupload.scss
vendored
|
|
@ -9,7 +9,7 @@
|
|||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
.upload_container{
|
||||
.upload_container, .depot_container{
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
transform: translate(-50%, -50%);
|
||||
width: 300px;
|
||||
height: 400px;
|
||||
background-color: $white;
|
||||
background-color: #24272e;
|
||||
z-index: 100;
|
||||
border-radius: 10px;
|
||||
|
||||
|
|
@ -40,10 +40,10 @@
|
|||
border-radius: 4px;
|
||||
width: 100%;
|
||||
font-size: 15px;
|
||||
color: $grey;
|
||||
color: $white;
|
||||
padding: 16px;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid $grey2;
|
||||
border-bottom: 1px solid #17191F;
|
||||
|
||||
i{
|
||||
color : $lightblue;
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
display: none;
|
||||
height: 6px;
|
||||
overflow: hidden;
|
||||
background-color: #f5f5f5;
|
||||
background-color: #24272e;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0;
|
||||
|
|
@ -112,10 +112,10 @@
|
|||
>div{
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
border-bottom: 1px solid #e8ebed;
|
||||
border-bottom: 1px solid #17191F;
|
||||
|
||||
div:first-child{
|
||||
color: $black;
|
||||
color: $white;
|
||||
margin-bottom: 5px;
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
|
|
@ -129,7 +129,7 @@
|
|||
}
|
||||
}
|
||||
div:last-child{
|
||||
color: $grey;
|
||||
color: $grey2;
|
||||
}
|
||||
button{
|
||||
display: none;
|
||||
|
|
@ -141,7 +141,7 @@
|
|||
cursor: pointer;
|
||||
|
||||
i{
|
||||
color: #337ab7;
|
||||
color: $white;
|
||||
font-size: 19px;
|
||||
}
|
||||
}
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
}
|
||||
}
|
||||
.upload_bar{
|
||||
border-top: 1px solid $grey2;
|
||||
border-top: 1px solid #17191F;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
position: absolute;
|
||||
|
|
@ -164,9 +164,47 @@
|
|||
display: inline-block;
|
||||
}
|
||||
#cancel , #close_upload_form{
|
||||
color: $grey;
|
||||
color: $white;
|
||||
cursor: pointer;
|
||||
margin-left: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.depot_container{
|
||||
display: block;
|
||||
width: 700px;
|
||||
header{
|
||||
padding: 20px;
|
||||
border-bottom: 1px solid #17191F;
|
||||
|
||||
i{
|
||||
font-size: 30px;
|
||||
margin-right: 10px;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
.mainContent{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
.col{
|
||||
width: 50%;
|
||||
|
||||
.fileinput-button{
|
||||
border: none;
|
||||
}
|
||||
|
||||
.content_wrapper{
|
||||
height: 217px;
|
||||
}
|
||||
|
||||
input, textarea, select{
|
||||
display: block;
|
||||
width: 315px;
|
||||
margin: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
81
resources/sass/partials/media.scss
vendored
81
resources/sass/partials/media.scss
vendored
|
|
@ -17,16 +17,93 @@
|
|||
.search_filters{
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 0px 10px;
|
||||
|
||||
>div{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 10px;
|
||||
padding: 1px 8px;
|
||||
border-right: 1px solid $grey2;
|
||||
position: relative;
|
||||
user-select: none;
|
||||
|
||||
i{
|
||||
margin-left: 10px;
|
||||
}
|
||||
&:last-child{
|
||||
border: none;
|
||||
}
|
||||
|
||||
.list{
|
||||
position: absolute;
|
||||
user-select: none;
|
||||
top: 17px;
|
||||
left: 50%;
|
||||
background-color: #24272e;
|
||||
padding: 9px;
|
||||
min-width: 163px;
|
||||
transform: translateX(-50%);
|
||||
z-index: 1;
|
||||
|
||||
&.list_etiquette li label{
|
||||
color: $white;
|
||||
padding: 4px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
border-color: inherit;
|
||||
content: "";
|
||||
top: 0;
|
||||
border-style: solid;
|
||||
border-width: 11px;
|
||||
border-bottom-color: transparent;
|
||||
border-right-color: transparent;
|
||||
border-top-color: transparent;
|
||||
position: absolute;
|
||||
right: -22px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.filter_wrapper{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-top: 18px;
|
||||
align-items: center;
|
||||
|
||||
> span{
|
||||
color : $lightorange;
|
||||
font-weight: bold;
|
||||
margin-right: 3px;
|
||||
}
|
||||
.search_filters_list{
|
||||
.filter_item{
|
||||
border: 1px solid $grey2;
|
||||
border-radius: 3px;
|
||||
padding: 3px 3px;
|
||||
font-size: 11px;
|
||||
margin: 0 1px;
|
||||
display: inline-block;
|
||||
|
||||
&:hover{
|
||||
color: $white;
|
||||
border: 1px solid $white;
|
||||
}
|
||||
i{
|
||||
margin-left: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.reinit_search_btn{
|
||||
display: none;
|
||||
color: #2ea8e5;
|
||||
margin-left: 4px;
|
||||
font-size: 11px;
|
||||
&:hover{
|
||||
color: $lightblue;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
9
resources/sass/partials/nestable.scss
vendored
9
resources/sass/partials/nestable.scss
vendored
|
|
@ -159,6 +159,15 @@
|
|||
cursor: pointer;
|
||||
user-select: none;
|
||||
|
||||
span{
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
width: 209px;
|
||||
overflow: hidden;
|
||||
height: 20px;
|
||||
}
|
||||
.count{
|
||||
float: right;
|
||||
display: inline;
|
||||
|
|
|
|||
|
|
@ -266,11 +266,7 @@
|
|||
<th>TYPE</th>
|
||||
<th>COMMENTAIRE</th>
|
||||
</tr>
|
||||
<tr><td>02/05/2019 10:02</td><td>Sandrine Bellaud</td><td>Ajout</td><td>création du média</td></tr>
|
||||
<tr><td>03/05/2019 09:20</td><td>Nicolas Mitavu</td><td>Modification</td><td>Modification des informations</td></tr>
|
||||
<tr><td>05/05/2019 15:30</td><td>Nicolas Mitavu</td><td>Etiquette</td><td>Etiquette "A valider"</td></tr>
|
||||
<tr><td>05/05/2019 15:48</td><td>Sandrine Bellaud</td><td>Etiquette</td><td>Etiquette "valider"</td></tr>
|
||||
<tr><td>06/05/2019 11:36</td><td>Blandine Durand</td><td>Arcadia</td><td>Ajout au référentiel</td></tr>
|
||||
<!-- <tr><td>02/05/2019 10:02</td><td>Sandrine Bellaud</td><td>Ajout</td><td>création du média</td></tr> -->
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
|
|
|
|||
|
|
@ -11,7 +11,8 @@
|
|||
<option value="{{$sujet->codeSujet}}" >{{$sujet->libelle}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<input type="hidden" class="currentFolder" value="0">
|
||||
<input type="hidden" id="searchParameter" value="{{ Request::get('s') }}">
|
||||
<input type="hidden" id="sujetParameter" value="{{ Request::get('t') }}">
|
||||
<div class="close_side_menu"><i class="fas fa-chevron-left"></i></div>
|
||||
</header>
|
||||
<div class="folder_container">
|
||||
|
|
@ -38,25 +39,54 @@
|
|||
<div class="main_content">
|
||||
<header>
|
||||
<div class="search_wrapper">
|
||||
<input type="text" value="" placeholder="rechercher un média...">
|
||||
<a href="#" class="btn btn-square btn-black">Rechercher</a>
|
||||
<div class="search_filters group">
|
||||
<div class="filters_type_media">Type de média <i class="fas fa-caret-down"></i></div>
|
||||
<div class="filters_type_vue">Type de vue <i class="fas fa-caret-down"></i></div>
|
||||
<div class="filters_etiquette">Etiquette <i class="fas fa-caret-down"></i></div>
|
||||
<div class="filters_arcadia">
|
||||
<input type="checkbox" id="arcadia" name="arcadia" >
|
||||
<label for="arcadia">Lié au référentiel</label> </div>
|
||||
<input class="search_value" type="text" value="" placeholder="rechercher un média...">
|
||||
<a href="#" class="btn btn-square btn-black search_btn">Rechercher</a>
|
||||
<div class="filter_selector filter" data-lib-type="Type de média : " data-type="typemedia_id">
|
||||
<div class="filter_btn">Type de média <i class="fas fa-caret-down"></i></div>
|
||||
<div class="list" style="display:none;">
|
||||
<ul>
|
||||
@foreach ($typemedias as $typemedia)
|
||||
<li><input id="typeM_{{$typemedia->codeTypemedia}}" type="checkbox" value="{{$typemedia->codeTypemedia}}" name=""><label for="typeM_{{$typemedia->codeTypemedia}}">{{$typemedia->libelle}}</label></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="filter_selector filter" data-lib-type="Type de vue : " data-type="typevue_id">
|
||||
<div class="filter_btn">Type de vue <i class="fas fa-caret-down"></i></div>
|
||||
<div class="list list_typevue" style="display:none;">
|
||||
<ul></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="filter_selector filter" data-lib-type="Etiquette : " data-type="etiquette_id">
|
||||
<div class="filter_btn">Etiquette <i class="fas fa-caret-down"></i></div>
|
||||
<div class="list list_etiquette" style="display:none;">
|
||||
<ul>
|
||||
@foreach ($etiquettes as $etiquette)
|
||||
<li><input id="etiq_{{$etiquette->etiquette_id}}" type="checkbox" value="{{$etiquette->etiquette_id}}" name=""><label for="etiq_{{$etiquette->etiquette_id}}" style="background-color:{{$etiquette->color}}; border-color:{{$etiquette->color}}" >{{$etiquette->libelle}}</label></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="filter" data-lib-type="" data-type="arcadia_id">
|
||||
<input type="checkbox" id="arcadia" name="arcadia" value="1">
|
||||
<label for="arcadia">Lié au référentiel</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search_filters_list">
|
||||
|
||||
<div class="filter_wrapper">
|
||||
<span>Filtres :</span>
|
||||
<div class="search_filters_list">
|
||||
</div>
|
||||
<a class="reinit_search_btn" href="#">Réinitialiser</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="action_wrapper group">
|
||||
@if (Auth::user()->hasRole([config('roles.const.CONTRIBUTEUR'), config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]))
|
||||
<a href="#" class="action_add_media"><i class="fas fa-file-upload"></i> Ajouter un média</a>
|
||||
@endif
|
||||
@if (Auth::user()->hasRole([config('roles.const.CONTRIBUTEUR'), config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]))
|
||||
<a href="#" class="action_download_media"><i class="fas fa-file-download"></i> Télécharger</a>
|
||||
@endif
|
||||
<a href="#" class="action_add_basket"><i class="fas fa-shopping-basket"></i> Ajouter au panier</a>
|
||||
@if (Auth::user()->hasRole([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]))
|
||||
<a href="#" class="action_delete_media"><i class="fas fa-trash-alt"></i> Supprimer</a>
|
||||
|
|
|
|||
|
|
@ -1,26 +1,44 @@
|
|||
@extends('layouts.app')
|
||||
@include('layouts.header')
|
||||
@section('content')
|
||||
|
||||
|
||||
<div class="upload_container">
|
||||
<span class="btn btn-success fileinput-button">
|
||||
<span><i class="fal fa-plus-circle"></i> Ajouter des médias</span>
|
||||
<input id="fileupload" type="file" name="files[]" multiple>
|
||||
</span>
|
||||
<a id="submit" class="btn" href="#">Télécharger</a>
|
||||
<a id="cancel" class="btn" href="#">Supprimer</a>
|
||||
<br>
|
||||
<br>
|
||||
<!-- The global progress bar -->
|
||||
<div id="progress" class="progress">
|
||||
<div class="progress-bar progress-bar-success"></div>
|
||||
</div>
|
||||
<!-- The container for the uploaded errors -->
|
||||
<div id="upload_errors"></div>
|
||||
<!-- The container for the uploaded files -->
|
||||
<div id="files" class="files"></div>
|
||||
<br>
|
||||
<div class="depot_container">
|
||||
<header>
|
||||
<i class="fas fa-images"></i>
|
||||
<h1>Déposez vos médias</h1>
|
||||
</header>
|
||||
<div class="mainContent">
|
||||
<div class="col">
|
||||
<form class="form_depot_media" action="#" method="post">
|
||||
<input id="depot_nom" type="text" name="" value="" placeholder="Votre nom*" required>
|
||||
<select id="depot_societe" name="" required>
|
||||
@foreach ($sites as $site)
|
||||
<option value="{{$site->libelle}}">{{$site->libelle}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<textarea id="depot_description" name="name" rows="8" cols="80" placeholder="Description des fichiers envoyés*" required></textarea>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col">
|
||||
<span class="fileinput-button">
|
||||
<i class="fas fa-plus-circle"></i><span> Ajouter des fichiers</span>
|
||||
<input id="uploadDepot" type="file" name="files[]" multiple>
|
||||
</span>
|
||||
<div class="content_wrapper">
|
||||
<!-- The container for the uploaded errors -->
|
||||
<div id="upload_errors"></div>
|
||||
<!-- The container for the uploaded files -->
|
||||
<div id="files" class="files"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="upload_bar">
|
||||
<a id="submit" class="btn" href="#">Transférer</a>
|
||||
<!-- The global progress bar -->
|
||||
<div id="progress" class="progress">
|
||||
<div class="progress-bar progress-bar-success"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ Route::group(['middleware' => ['auth']], function(){
|
|||
// Les pages Front
|
||||
Route::get('/', 'CommunController@index')->name('home');
|
||||
Route::get('/gestion-des-medias', 'MediaController@index')->name('media_manager');
|
||||
Route::get('/upload', 'UploadController@index');
|
||||
|
||||
// Message de contact
|
||||
Route::post('/send-message', 'CommunController@sendMessage');
|
||||
|
|
@ -42,9 +41,6 @@ Route::group(['middleware' => ['auth']], function(){
|
|||
Route::post('/ajax/get-article', 'MediaController@getArticle');
|
||||
Route::post('/ajax/download-media', 'MediaController@downloadMedia')->name('downloadMedia');
|
||||
|
||||
// Ajax pour la gestion de l'upload de média
|
||||
Route::post('/ajax/upload-media', 'UploadController@storeMedia');
|
||||
|
||||
// Back office
|
||||
Route::resource('user', 'UserController');
|
||||
Route::post('/check-matricule', 'UserController@checkMatricule');
|
||||
|
|
@ -56,3 +52,12 @@ Auth::routes([
|
|||
'verify' => false,
|
||||
'register' => false,
|
||||
]);
|
||||
|
||||
// Page pour déposer les médias
|
||||
Route::get('/depot', 'UploadController@index');
|
||||
|
||||
// Ajax pour ajouter un dossier de dépôt
|
||||
Route::post('/ajax/add-depot-folder', 'DossierController@addDepotFolder');
|
||||
|
||||
// Ajax pour la gestion de l'upload de média
|
||||
Route::post('/ajax/upload-media', 'UploadController@storeMedia');
|
||||
|
|
|
|||
4
webpack.mix.js
vendored
4
webpack.mix.js
vendored
|
|
@ -14,6 +14,8 @@ const mix = require('laravel-mix');
|
|||
mix.js([
|
||||
'resources/js/app.js',
|
||||
'resources/js/admin.js',
|
||||
'resources/js/media.js'
|
||||
'resources/js/media.js',
|
||||
'resources/js/depot.js',
|
||||
'resources/js/searchengine.js',
|
||||
], 'public/js/app.js')
|
||||
.sass('resources/sass/app.scss', 'public/css');
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue