Merge branch 'develop' into trunk
This commit is contained in:
commit
d34a9a4624
20 changed files with 248 additions and 143 deletions
|
|
@ -60,4 +60,4 @@ MAIL_LIST_SERVICEWEB=
|
|||
PROJECT_UUID=
|
||||
|
||||
## MAIL ADDRESSES
|
||||
MAIL_LIST_SERVICEWEB=equipe.web@ldc.fr
|
||||
MAIL_LIST_SERVICEWEB=digital@ldc.fr
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ MAIL_PASSWORD=
|
|||
MAIL_ENCRYPTION=null
|
||||
MAIL_FROM_ADDRESS=no-reply@dam.lesidc.com
|
||||
MAIL_FROM_NAME="${APP_NAME}"
|
||||
MAIL_ADMIN=equipe.web@ldc.fr
|
||||
MAIL_ADMIN=digital@ldc.fr
|
||||
|
||||
|
||||
LDAP_ACCOUNT_PREFIX="cn="
|
||||
|
|
@ -54,7 +54,7 @@ LDAP_USE_SSL=false
|
|||
PROJECT_UUID=
|
||||
|
||||
## MAIL ADDRESSES
|
||||
MAIL_LIST_SERVICEWEB=equipe.web@ldc.fr
|
||||
MAIL_LIST_SERVICEWEB=digital@ldc.fr
|
||||
|
||||
LDC_STATUS_CHECKER_API_KEY=CE8S52Qq7stf5k8frF4T
|
||||
LDC_STATUS_CHECKER_UUID=4d8b2c20-107a-4682-b591-dc6c685126df
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ MAIL_PASSWORD=
|
|||
MAIL_ENCRYPTION=null
|
||||
MAIL_FROM_ADDRESS=no-reply@dam.lesidc.com
|
||||
MAIL_FROM_NAME="${APP_NAME}"
|
||||
MAIL_ADMIN=equipe.web@ldc.fr
|
||||
MAIL_ADMIN=digital@ldc.fr
|
||||
|
||||
|
||||
LDAP_ACCOUNT_PREFIX=
|
||||
|
|
@ -54,7 +54,7 @@ LDAP_USE_SSL=
|
|||
PROJECT_UUID=
|
||||
|
||||
## MAIL ADDRESSES
|
||||
MAIL_LIST_SERVICEWEB=equipe.web@ldc.fr
|
||||
MAIL_LIST_SERVICEWEB=digital@ldc.fr
|
||||
|
||||
LDC_STATUS_CHECKER_API_KEY=
|
||||
LDC_STATUS_CHECKER_UUID=
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ php artisan key:generate
|
|||
.env => remplacer MAIL_DRIVER par MAIL_MAILER
|
||||
.env => remplacer FILESYSTEM_DRIVER par FILESYSTEM_DISK
|
||||
.env rajouter PROJECT_UUID=
|
||||
.env rajouter MAIL_LIST_SERVICEWEB=equipe.web@ldc.fr
|
||||
.env rajouter MAIL_LIST_SERVICEWEB=digital@ldc.fr
|
||||
|
||||
# SUPERVISOR
|
||||
jobs Api stats sur queue `database`
|
||||
|
|
|
|||
|
|
@ -39,7 +39,8 @@ class CommonController extends Controller
|
|||
})->with('sujet')->get();
|
||||
|
||||
return view('home')->with([
|
||||
'sujets' => $sujets, 'recherches' => $recherches,
|
||||
'sujets' => $sujets,
|
||||
'recherches' => $recherches,
|
||||
'dossiers' => $dossiers
|
||||
]);
|
||||
}
|
||||
|
|
@ -54,8 +55,10 @@ class CommonController extends Controller
|
|||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
Mail::to(env('MAIL_ADMIN_ADDRESS', "informatique.internet@ldc.fr"))
|
||||
->send(new ContactMail(ContactType::from($request->type), $request->url, $request->message, $user));
|
||||
foreach (config('mail.contactsList.admin') as $mail) {
|
||||
Mail::to($mail)
|
||||
->send(new ContactMail(ContactType::from($request->type), $request->url, $request->message, $user));
|
||||
}
|
||||
|
||||
return response()->json(['status' => 'OK']);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ class MediaController extends Controller
|
|||
$textSearch,
|
||||
$filters,
|
||||
intval(Dossier::where('id', $dossier_id)->exists() ?
|
||||
$dossier_id : (in_array($dossier_id, [-1, 0]) ? $dossier_id : -1))
|
||||
$dossier_id : (in_array($dossier_id, [-1, 0]) ? $dossier_id : -1))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -124,7 +124,7 @@ class MediaController extends Controller
|
|||
'etiquettes' => $etiquettes,
|
||||
'societes' => $societes,
|
||||
'marques' => $marques,
|
||||
'currentFolder' => $dossier_id,
|
||||
'currentFolder' => Dossier::query()->where('id', $dossier_id)->first() ?? $dossier_id,
|
||||
'currentSujet' => optional($sujet)->codeSujet ?? \optional($sujets->first())->codeSujet,
|
||||
'currentFilters' => json_encode($filters),
|
||||
'paniers' => $paniers,
|
||||
|
|
@ -236,8 +236,8 @@ class MediaController extends Controller
|
|||
$response['isDepot'] = $isDepot;
|
||||
|
||||
$response['isCAQuery'] = $searchText &&
|
||||
strpos($searchText, '=') !== false &&
|
||||
\strval(collect(explode('=', $searchText))->get(0)) === 'ca';
|
||||
strpos($searchText, '=') !== false &&
|
||||
\strval(collect(explode('=', $searchText))->get(0)) === 'ca';
|
||||
|
||||
$response['role'] = $user->role;
|
||||
|
||||
|
|
@ -262,7 +262,7 @@ class MediaController extends Controller
|
|||
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Media> */
|
||||
$mediaList = Media::whereIn('id', collect($request->mediaList)->pluck('id'))
|
||||
->where('isLocked', false)->get();
|
||||
->where('isLocked', false)->get();
|
||||
|
||||
$destinationDossierId = \intval($request->dossier_id);
|
||||
|
||||
|
|
@ -346,7 +346,7 @@ class MediaController extends Controller
|
|||
});
|
||||
} catch (ModelNotFoundException | \RuntimeException $e) {
|
||||
return response()->json($e->getMessage(), 500);
|
||||
}//end try
|
||||
} //end try
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -416,7 +416,7 @@ class MediaController extends Controller
|
|||
'status' => false,
|
||||
'error' => trans('Une erreur est survenue veuillez réessayer')
|
||||
]);
|
||||
}//end try
|
||||
} //end try
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -446,19 +446,6 @@ class MediaController extends Controller
|
|||
|
||||
$clonedMedia = $media->replicate();
|
||||
|
||||
$media->articles->map(function (Article $article) use ($clonedMedia) {
|
||||
$clonedMedia->articles()->attach($article);
|
||||
});
|
||||
$media->marques->map(function (Marque $marque) use ($clonedMedia) {
|
||||
$clonedMedia->marques()->attach($marque);
|
||||
});
|
||||
$media->societes->map(function (Societe $societe) use ($clonedMedia) {
|
||||
$clonedMedia->societes()->attach($societe);
|
||||
});
|
||||
$media->tags->map(function (Tag $tag) use ($clonedMedia) {
|
||||
$clonedMedia->tags()->attach($tag);
|
||||
});
|
||||
|
||||
/** @var \Illuminate\Filesystem\FilesystemAdapter */
|
||||
$storage = Storage::disk('media');
|
||||
|
||||
|
|
@ -498,8 +485,24 @@ class MediaController extends Controller
|
|||
// ---- Creation des vignettes en lien avec le sujet du média
|
||||
$clonedMedia->createSubjectThumbnails();
|
||||
|
||||
$clonedMedia->isDuplicate = true;
|
||||
|
||||
$clonedMedia->saveOrFail();
|
||||
|
||||
// Manage relations after the model has been saved.
|
||||
$media->articles->map(function (Article $article) use ($clonedMedia) {
|
||||
$clonedMedia->articles()->attach($article);
|
||||
});
|
||||
$media->marques->map(function (Marque $marque) use ($clonedMedia) {
|
||||
$clonedMedia->marques()->attach($marque);
|
||||
});
|
||||
$media->societes->map(function (Societe $societe) use ($clonedMedia) {
|
||||
$clonedMedia->societes()->attach($societe);
|
||||
});
|
||||
$media->tags->map(function (Tag $tag) use ($clonedMedia) {
|
||||
$clonedMedia->tags()->attach($tag);
|
||||
});
|
||||
|
||||
|
||||
/** @throws \RuntimeException */
|
||||
$clonedMedia->addToElasticSearch();
|
||||
|
|
@ -751,8 +754,8 @@ class MediaController extends Controller
|
|||
$history = Historique::whereHas('media', function ($q) use ($media) {
|
||||
$q->whereId($media->id);
|
||||
})->with('user')
|
||||
->orderBy('created_date', 'DESC')
|
||||
->get();
|
||||
->orderBy('created_date', 'DESC')
|
||||
->get();
|
||||
return \response()->json([
|
||||
'history' => $history,
|
||||
'vignettes' => $this->getVignettesByMedia($media)
|
||||
|
|
@ -1062,9 +1065,9 @@ class MediaController extends Controller
|
|||
];
|
||||
|
||||
$sys_extension = in_array($media->extension, [
|
||||
MediaExtension::pdf,
|
||||
MediaExtension::ai,
|
||||
MediaExtension::psd
|
||||
MediaExtension::pdf,
|
||||
MediaExtension::ai,
|
||||
MediaExtension::psd
|
||||
]) ? MediaExtension::png : $media->extension->value;
|
||||
|
||||
$vignettes['preview'] = [
|
||||
|
|
|
|||
|
|
@ -68,6 +68,8 @@ class PanierController extends Controller
|
|||
$request->mediaList
|
||||
));
|
||||
|
||||
Media::flushQueryCache();
|
||||
|
||||
return response()->json();
|
||||
}
|
||||
|
||||
|
|
@ -151,7 +153,7 @@ class PanierController extends Controller
|
|||
|
||||
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Format> $formats */
|
||||
$formats = Format::withoutGlobalScope('App\Scopes\SystemScope')
|
||||
->where('system', true)->get();
|
||||
->where('system', true)->get();
|
||||
return view('panier.show')->with([
|
||||
'panier' => $panier,
|
||||
'formats' => $formats,
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ use App\Models\Sujet;
|
|||
use App\Models\TypeMedia;
|
||||
use App\Models\User;
|
||||
use App\Traits\Http\HandlesMedia;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
|
|
@ -97,7 +98,7 @@ class UploadController extends Controller
|
|||
// 400 instead of 422 is for resumablejs to handle properly.
|
||||
return \response()->json($e->errors(), 400);
|
||||
}
|
||||
}//end if
|
||||
} //end if
|
||||
|
||||
// We are in chunk mode, lets send the current progress.
|
||||
/** @var AbstractHandler $handler */
|
||||
|
|
@ -143,9 +144,9 @@ class UploadController extends Controller
|
|||
$this->validateUploadedFile($uplodedFile);
|
||||
|
||||
/** @var \App\Models\Media */
|
||||
$media = Media::whereId($request->media_id)
|
||||
->whereHas('sujet', function ($q) use ($sujet) {
|
||||
$q->whereId($sujet->id);
|
||||
$media = Media::query()->whereId($request->media_id)
|
||||
->whereHas('sujet', function (Builder $q) use ($sujet) {
|
||||
$q->where('codeSujet', $sujet->codeSujet);
|
||||
})->whereHas('dossier', function ($q) use ($dossier) {
|
||||
$q->whereId($dossier->id);
|
||||
})->firstOrNew();
|
||||
|
|
@ -156,7 +157,7 @@ class UploadController extends Controller
|
|||
// 400 instead of 422 is for resumablejs to handle properly.
|
||||
return \response()->json($e->errors(), 400);
|
||||
}
|
||||
}//end if
|
||||
} //end if
|
||||
|
||||
// We are in chunk mode, lets send the current progress.
|
||||
/** @var AbstractHandler $handler */
|
||||
|
|
@ -341,6 +342,8 @@ class UploadController extends Controller
|
|||
|
||||
$media->saveOrFail();
|
||||
|
||||
Media::flushQueryCache();
|
||||
|
||||
// * Get props inserted by DB.
|
||||
return response()->json($media->refresh());
|
||||
});
|
||||
|
|
|
|||
|
|
@ -39,14 +39,27 @@ class Media extends Model
|
|||
*/
|
||||
public $cacheDriver = 'redis';
|
||||
|
||||
/**
|
||||
* Is the model a duplicate of another (only true before we save it in database)
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $isDuplicate = false;
|
||||
|
||||
/**
|
||||
* The relations to eager load on every query.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $with = [
|
||||
'owner', 'tags', 'etiquette', 'articles', 'sujet',
|
||||
'typeMedia', 'societes', 'marques'
|
||||
'owner',
|
||||
'tags',
|
||||
'etiquette',
|
||||
'articles',
|
||||
'sujet',
|
||||
'typeMedia',
|
||||
'societes',
|
||||
'marques'
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -209,8 +222,10 @@ class Media extends Model
|
|||
$user = auth()->user();
|
||||
MediaCreated::dispatch($user, $model);
|
||||
|
||||
/** @throws \RuntimeException */
|
||||
$model->addToElasticSearch();
|
||||
if (empty($model->isDuplicate)) {
|
||||
/** @throws \RuntimeException */
|
||||
$model->addToElasticSearch();
|
||||
}
|
||||
});
|
||||
static::updating(function (self $model) {
|
||||
if ($model->statut === MediaStatut::brouillon and $model->arcadia_id) {
|
||||
|
|
@ -723,7 +738,7 @@ class Media extends Model
|
|||
// * create preview
|
||||
/** @var \App\Models\Format $format */
|
||||
$format = Format::withoutGlobalScope('App\Scopes\SystemScope')
|
||||
->where('libelle', '=', 'preview')->firstOrFail();
|
||||
->where('libelle', '=', 'preview')->firstOrFail();
|
||||
|
||||
if ($this->extension == MediaExtension::gif) {
|
||||
if ($this->largeur >= $format->largeur || $this->hauteur >= $format->hauteur || $this->largeur == "") {
|
||||
|
|
@ -753,7 +768,7 @@ class Media extends Model
|
|||
// * create thumb
|
||||
/** @var \App\Models\Format $format */
|
||||
$format = Format::withoutGlobalScope('App\Scopes\SystemScope')
|
||||
->where('libelle', '=', 'thumb')->firstOrFail();
|
||||
->where('libelle', '=', 'thumb')->firstOrFail();
|
||||
if ($this->extension != MediaExtension::png) {
|
||||
$im->setImageBackgroundColor('#ffffff');
|
||||
$im->setImageAlphaChannel(\Imagick::ALPHACHANNEL_REMOVE);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ return [
|
|||
* so you can receive email if things go mad
|
||||
*/
|
||||
'contactsList' => [
|
||||
env('MAIL_LIST_SERVICEWEB', 'equipe.web@ldc.fr')
|
||||
env('MAIL_LIST_SERVICEWEB', 'digital@ldc.fr')
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -117,8 +117,9 @@ return [
|
|||
|
||||
// * Contacts List
|
||||
'contactsList' => [
|
||||
'invalidXml' => preg_split('/(\s*,*\s*)*,+(\s*,*\s*)*/', env('MAIL_LIST_INVALID_XML', 'equipe.web@ldc.fr')),
|
||||
'serviceweb' => preg_split('/(\s*,*\s*)*,+(\s*,*\s*)*/', env('MAIL_LIST_SERVICEWEB', 'equipe.web@ldc.fr'))
|
||||
'invalidXml' => preg_split('/(\s*,*\s*)*,+(\s*,*\s*)*/', env('MAIL_LIST_INVALID_XML', 'digital@ldc.fr')),
|
||||
'serviceweb' => preg_split('/(\s*,*\s*)*,+(\s*,*\s*)*/', env('MAIL_LIST_SERVICEWEB', 'digital@ldc.fr')),
|
||||
'admin' => explode(',', env('MAIL_ADMIN')),
|
||||
],
|
||||
|
||||
];
|
||||
|
|
|
|||
|
|
@ -163,8 +163,8 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import Resumable from "resumablejs";
|
||||
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
|
||||
import Resumable from "resumablejs";
|
||||
|
||||
export default {
|
||||
name: "MmActionsComponent",
|
||||
|
|
@ -224,7 +224,7 @@ export default {
|
|||
} else {
|
||||
this.$loading.show({ delay: 0 });
|
||||
axios
|
||||
.post(`/ajax/media/${this.storeGrabbed[0].id}/duplicate`)
|
||||
.post(`/ajax/media/${this.storeGrabbed[0].uid}/duplicate`)
|
||||
.then((response) => {
|
||||
this.$loading.hide();
|
||||
if (response.data.status === true) {
|
||||
|
|
@ -489,6 +489,9 @@ export default {
|
|||
.querySelector('meta[name="csrf-token"]')
|
||||
.getAttribute("content"),
|
||||
},
|
||||
query: {
|
||||
media_id: this.storeMedia.id
|
||||
}
|
||||
});
|
||||
|
||||
this.resumable.on("fileAdded", this.uploadFileAdded);
|
||||
|
|
|
|||
|
|
@ -167,6 +167,7 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
this.resetInfiniteScroll();
|
||||
this.init();
|
||||
},
|
||||
data: function () {
|
||||
return {
|
||||
|
|
@ -221,6 +222,10 @@ export default {
|
|||
type: "updateGrabbed",
|
||||
grabbed: [],
|
||||
});
|
||||
this.$store.commit({
|
||||
type: "updateFolder",
|
||||
folder: this.storeFolder,
|
||||
});
|
||||
this.loadMediaList();
|
||||
//set dateSorted
|
||||
this.dateSorted = false;
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ export default {
|
|||
components: { FontAwesomeIcon },
|
||||
mounted() {
|
||||
const data = JSON.parse(this.$parent.$options.json);
|
||||
this.selectedFolder = data.selectedFolder;
|
||||
this.textsearch = data.textsearch ? String(data.textsearch) : "";
|
||||
this.oTypesmedia = data.typesmedia;
|
||||
this.oEtiquettes = data.etiquettes;
|
||||
|
|
@ -152,6 +153,7 @@ export default {
|
|||
sReferentiel: [],
|
||||
sTexte: "",
|
||||
initText: 0,
|
||||
selectedFolder: {},
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
|
|
@ -304,15 +306,22 @@ export default {
|
|||
}
|
||||
},
|
||||
reset() {
|
||||
this.resetFolder();
|
||||
this.sTypevue = [];
|
||||
this.sTypemedias = [];
|
||||
this.sEtiquettes = [];
|
||||
this.sReferentiel = [];
|
||||
this.sTexte = "";
|
||||
const filters = this.selectedFolder ? [{
|
||||
type: "dossier_id",
|
||||
legend: "Dossier : ",
|
||||
value: this.selectedFolder.id,
|
||||
libelle: this.selectedFolder.libelle,
|
||||
}] : [];
|
||||
this.resetFolder();
|
||||
this.selectedFolder = null;
|
||||
this.$store.commit({
|
||||
type: "updateFilters",
|
||||
filters: [],
|
||||
filters: filters,
|
||||
});
|
||||
if (this.textsearch.length && this.initText === 0) {
|
||||
this.addText(this.textsearch);
|
||||
|
|
|
|||
|
|
@ -182,6 +182,18 @@ export default {
|
|||
return this.$store.state.reload;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
const data = JSON.parse(this.$parent.$options.json);
|
||||
if (data.selectedFolder) {
|
||||
this.selectedFolder = data.selectedFolder;
|
||||
this.selectFolder(data.selectedFolder);
|
||||
this.$store.commit({
|
||||
type: "updateFolder",
|
||||
folder: data.selectedFolder.id ?? -1,
|
||||
});
|
||||
this.storeFolder = data.selectedFolder.id;
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
selectedFolder: false,
|
||||
|
|
@ -193,7 +205,8 @@ export default {
|
|||
},
|
||||
watch: {
|
||||
storeSujet() {
|
||||
this.initFolders();
|
||||
this.initFolders(this.selectedFolder);
|
||||
this.selectedFolder = null;
|
||||
},
|
||||
storeReload() {
|
||||
this.reload();
|
||||
|
|
|
|||
|
|
@ -100,12 +100,12 @@
|
|||
|
||||
<script>
|
||||
// ResumableJs
|
||||
import Resumable from "resumablejs";
|
||||
import MePreviewComponent from "./tabs/MePreviewComponent.vue";
|
||||
import MeEditComponent from "./tabs/MeEditComponent.vue";
|
||||
import MeLinksComponent from "./tabs/MeLinksComponent.vue";
|
||||
import MeHistoryComponent from "./tabs/MeHistoryComponent.vue";
|
||||
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
|
||||
import Resumable from "resumablejs";
|
||||
import MeEditComponent from "./tabs/MeEditComponent.vue";
|
||||
import MeHistoryComponent from "./tabs/MeHistoryComponent.vue";
|
||||
import MeLinksComponent from "./tabs/MeLinksComponent.vue";
|
||||
import MePreviewComponent from "./tabs/MePreviewComponent.vue";
|
||||
|
||||
export default {
|
||||
name: "MmEditComponent",
|
||||
|
|
@ -180,7 +180,7 @@ export default {
|
|||
var query = {
|
||||
sujet_id: this.storeMedia.sujet_id,
|
||||
dossier_id: this.storeMedia.dossier_id,
|
||||
replaceMediaId: this.storeMedia.id,
|
||||
media_id: this.storeMedia.id,
|
||||
};
|
||||
this.r.updateQuery(query);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@
|
|||
required
|
||||
v-model="oMedia.type_vue_id"
|
||||
:disabled="oMedia.isLocked || oMedia.arcadia_id !== null"
|
||||
@change="oMedia.variante_id = null"
|
||||
@change="updateVariantes"
|
||||
>
|
||||
<option :value="null" selected disabled>Sélectionnez un type de vue</option>
|
||||
<option v-for="item in storeTypesvue" :value="item.codeTypevue">
|
||||
|
|
@ -93,7 +93,7 @@
|
|||
<option :value="null" selected disabled>
|
||||
Sélectionnez un type de variante
|
||||
</option>
|
||||
<option v-for="item in storeTypesvariante" :value="item.codeVariante">
|
||||
<option v-for="item in availableVariantes" :value="item.codeVariante">
|
||||
{{ item.libelle }}
|
||||
</option>
|
||||
</select>
|
||||
|
|
@ -395,6 +395,11 @@ export default {
|
|||
return this.$store.state.role;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.availableVariantes = this.storeTypesvariante;
|
||||
})
|
||||
},
|
||||
watch: {
|
||||
marques() {
|
||||
this.oMarques = this.marques;
|
||||
|
|
@ -439,9 +444,14 @@ export default {
|
|||
selectedSocietes: [],
|
||||
searchMarques: "",
|
||||
searchSocietes: "",
|
||||
availableVariantes: [],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
updateVariantes(evt) {
|
||||
this.oMedia.variante_id = null;
|
||||
this.availableVariantes = this.storeTypesvariante.filter(e => e.typevue_id === this.oMedia.type_vue_id);
|
||||
},
|
||||
ArcadiaLink() {
|
||||
if (this.oMedia.isDefault) {
|
||||
$.fancyMessage({
|
||||
|
|
|
|||
|
|
@ -8,16 +8,37 @@
|
|||
line-height: inherit;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.starButton,
|
||||
.nestableFolderButton {
|
||||
@include resetButton;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.nestableFolderButton {
|
||||
min-width: 1rem;
|
||||
min-height: 1rem;
|
||||
}
|
||||
|
||||
.d-none {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.media-link {
|
||||
padding-top: 2rem;
|
||||
|
||||
&-btn {
|
||||
background-color: #fff;
|
||||
border-radius: 3px;
|
||||
color: #374957;
|
||||
font-size: 1rem;
|
||||
padding: 8px;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: #0a6fb7;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,53 +1,59 @@
|
|||
@extends('layouts.app')
|
||||
@include('layouts.header')
|
||||
@section('content')
|
||||
<main class="home">
|
||||
<div class="search">
|
||||
<div class="container">
|
||||
<h1><i class="fas fa-images"></i>{{ __('Bienvenue') }}</h1>
|
||||
<form class="input_search" action="{{ route('media_manager') }}" method="get">
|
||||
<div class="select_container">
|
||||
@if($sujets->count())
|
||||
<select name="s">
|
||||
@foreach ($sujets as $sujet)
|
||||
<option value="{{ $sujet->codeSujet }}" >{{ $sujet->libelle }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<main class="home">
|
||||
<div class="search">
|
||||
<div class="container">
|
||||
<h1><i class="fas fa-images"></i>{{ __('Bienvenue') }}</h1>
|
||||
<form class="input_search" action="{{ route('media_manager') }}" method="get">
|
||||
<div class="select_container">
|
||||
@if ($sujets->count())
|
||||
<select name="s">
|
||||
@foreach ($sujets as $sujet)
|
||||
<option value="{{ $sujet->codeSujet }}">{{ $sujet->libelle }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@endif
|
||||
</div>
|
||||
<input name="t" type="text" value="" autofocus placeholder="Rechercher un média...">
|
||||
<input name="d" type="hidden" value="-1">
|
||||
<button type="submit"><i class="fa fa-search"></i></button>
|
||||
</form>
|
||||
<div class="media-link">
|
||||
<a class="media-link-btn" href="{{ route('media_manager') }}">
|
||||
<i class="fas fa-images"></i>
|
||||
{{ __('Accéder aux médias') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget">
|
||||
<div class="item">
|
||||
<header>{{ __('Mes dernières recherches') }}</header>
|
||||
<div class="content">
|
||||
@if ($recherches->count())
|
||||
@foreach ($recherches as $recherche)
|
||||
<a href="{{ route('media_manager', ['r' => $recherche->id]) }}"><i
|
||||
class="fa fa-search"></i>{{ $recherche->sujet->libelle . ' - ' . $recherche->libelle }}</a>
|
||||
@endforeach
|
||||
@else
|
||||
<i class="fa-brands fa-searchengin"></i> <span>{{ __('Aucune recherche effectuée') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<header>{{ __('Mes dossiers favoris') }}</header>
|
||||
<div class="content">
|
||||
@if ($dossiers->count())
|
||||
@foreach ($dossiers as $dossier)
|
||||
<a href="{{ route('media_manager', ['d' => $dossier->id, 's' => $dossier->sujet->codeSujet]) }}"><i
|
||||
class="fas fa-folder"></i> {{ $dossier->sujet->libelle . ' - ' . $dossier->libelle }}</a>
|
||||
@endforeach
|
||||
@else
|
||||
<i class="fa-solid fa-folder"></i> <span>{{ __('Pas de dossier en favoris') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<input type="text" name="t" value="" autofocus placeholder="Rechercher un média...">
|
||||
<input type="hidden" name="d" value="-1">
|
||||
<button type="submit"><i class="fa fa-search"></i></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget">
|
||||
<div class="item">
|
||||
<header>{{ __('Mes dernières recherches') }}</header>
|
||||
<div class="content">
|
||||
@if($recherches->count())
|
||||
@foreach ($recherches as $recherche)
|
||||
<a href="{{ route('media_manager', ['r' => $recherche->id]) }}" ><i class="fa fa-search"></i>{{
|
||||
$recherche->sujet->libelle." - ".$recherche->libelle
|
||||
}}</a>
|
||||
@endforeach
|
||||
@else
|
||||
<i class="fa-brands fa-searchengin"></i> <span>{{ __('Aucune recherche effectuée') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<header>{{ __('Mes dossiers favoris') }}</header>
|
||||
<div class="content">
|
||||
@if($dossiers->count())
|
||||
@foreach ($dossiers as $dossier)
|
||||
<a href="{{ route('media_manager', ['d' => $dossier->id, 's' => $dossier->sujet->codeSujet]) }}" ><i class="fas fa-folder"></i> {{$dossier->sujet->libelle." - ".$dossier->libelle}}</a>
|
||||
@endforeach
|
||||
@else
|
||||
<i class="fa-solid fa-folder"></i> <span>{{ __('Pas de dossier en favoris') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</main>
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -2,55 +2,66 @@
|
|||
@include('layouts.header')
|
||||
@include('layouts.media_edit')
|
||||
@section('content')
|
||||
<main class="media_manager template_2col">
|
||||
<div class="side_menu">
|
||||
@php
|
||||
$dataVue = [
|
||||
'sujets' => $sujets,
|
||||
'current' => $currentSujet,
|
||||
];
|
||||
@endphp
|
||||
<div id="mm-side-header" data-json='@json($dataVue)'></div>
|
||||
<div id="mm-folder" data-json='{}'></div>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
<header>
|
||||
@php
|
||||
<main class="media_manager template_2col">
|
||||
<div class="side_menu">
|
||||
@php
|
||||
$dataVue = [
|
||||
'textsearch' => $textSearch,
|
||||
'typesmedia' => $typesmedia,
|
||||
'etiquettes' => $etiquettes,
|
||||
'sujets' => $sujets,
|
||||
'current' => $currentSujet,
|
||||
];
|
||||
@endphp
|
||||
<div id="mm-side-header" data-json='@json($dataVue)'></div>
|
||||
@php
|
||||
$dataVue = [
|
||||
'selectedFolder' => $currentFolder,
|
||||
'selectedSubject' => $currentSujet,
|
||||
];
|
||||
@endphp
|
||||
<div id="mm-folder" data-json='@json($dataVue)'></div>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
<header>
|
||||
@php
|
||||
$dataVue = [
|
||||
'textsearch' => $textSearch,
|
||||
'typesmedia' => $typesmedia,
|
||||
'etiquettes' => $etiquettes,
|
||||
'selectedFolder' => $currentFolder,
|
||||
];
|
||||
@endphp
|
||||
<div id="mm-filters" data-json='@json($dataVue)'></div>
|
||||
<div class="action_wrapper group">
|
||||
<div class="action_wrapper group">
|
||||
<div id="actionsBar">
|
||||
@php
|
||||
$dataVue = [
|
||||
'csrf' => csrf_token(),
|
||||
'etiquettes' => $etiquettes,
|
||||
];
|
||||
$dataVue = [
|
||||
'csrf' => csrf_token(),
|
||||
'etiquettes' => $etiquettes,
|
||||
];
|
||||
@endphp
|
||||
<div id="mm-actions" data-json='@json($dataVue)'></div>
|
||||
</div>
|
||||
<div class="display">
|
||||
<div class="display">
|
||||
<button><i class="fa fa-calendar-check selected"></i></button>
|
||||
<button><i class="fa fa-table-cells selected"></i></button>
|
||||
<button><i class="fa fa-table-list"></i></button>
|
||||
</div>
|
||||
<button><i class="fa fa-table-cells selected"></i></button>
|
||||
<button><i class="fa fa-table-list"></i></button>
|
||||
</div>
|
||||
<div id="mm-sorter" data-json='{}'></div>
|
||||
</div>
|
||||
</header>
|
||||
<div id="mm-display" data-json='{}'></div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@php
|
||||
$dataVue = [
|
||||
'selectedFolder' => $currentFolder,
|
||||
];
|
||||
@endphp
|
||||
<div id="mm-display" data-json='@json($dataVue)'></div>
|
||||
</div>
|
||||
<div id="mm-basket" data-json='{}'></div>
|
||||
</main>
|
||||
|
||||
</main>
|
||||
@endsection
|
||||
@section('scripts')
|
||||
<!-- TODO : Faire le tri des js ci-dessous -->
|
||||
<script src="{{ mix('js/jquery.nestable.min.js') }}" defer></script>
|
||||
<script src="{{ mix('js/fabric.js') }}"></script>
|
||||
<script src="{{ mix('js/darkroom.js') }}"></script>
|
||||
<script src="{{ mix('js/jquery.caret.min.js') }}"></script>
|
||||
<script src="{{ mix('js/jquery.nestable.min.js') }}" defer></script>
|
||||
<script src="{{ mix('js/fabric.js') }}"></script>
|
||||
<script src="{{ mix('js/darkroom.js') }}"></script>
|
||||
<script src="{{ mix('js/jquery.caret.min.js') }}"></script>
|
||||
@endsection
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue