Upgrade of BloomFeed v0.1

This commit is contained in:
Esteban
2026-07-03 21:46:06 +02:00
parent 7a7440daab
commit c549e9cfc0
24 changed files with 591 additions and 6 deletions
+74
View File
@@ -0,0 +1,74 @@
@extends('layouts.app', ['title' => 'Catalogue — BloomFeed'])
@section('content')
<div class="main-column" style="width:100%;">
@if (session('status'))
<div class="form-status">{{ session('status') }}</div>
@endif
<div class="market-header">
<div>
<h2 style="margin:0;">Catalogue de flux</h2>
<p class="text-muted text-sm" style="margin:4px 0 0;">
Une sélection de flux RSS maintenue par BloomFluxDB ajoutez-les à votre collection en un clic.
</p>
</div>
</div>
@if ($fromCache)
<div class="cache-notice">
Serveur catalogue injoignable liste servie depuis le cache local
@if ($updatedAt)
(mise à jour {{ $updatedAt->diffForHumans() }})
@endif
</div>
@endif
@if ($feeds->isEmpty())
<div class="card empty-state">
Le catalogue est vide pour le moment.
@if ($fromCache)
Il sera récupéré automatiquement dès que le serveur catalogue sera joignable.
@endif
</div>
@else
<input type="search" id="market-search" class="form-input market-search" placeholder="Rechercher un flux… (nom, description, catégorie)">
<div class="market-chips" id="market-chips">
<button type="button" class="chip active" data-category="">Tout</button>
@foreach ($feeds->keys() as $category)
<button type="button" class="chip" data-category="{{ $category }}">{{ $category }}</button>
@endforeach
</div>
<div class="market-grid" id="market-grid">
@foreach ($feeds as $category => $items)
@foreach ($items as $item)
<div class="market-card" data-category="{{ $category }}" data-search="{{ Str::lower($item['title'].' '.$item['description'].' '.$category) }}">
<div class="market-card-head">
<span class="market-card-title">{{ $item['title'] }}</span>
<span class="chip chip-static">{{ $category }}</span>
</div>
<p class="market-card-desc">{{ $item['description'] ?: $item['url'] }}</p>
<div class="market-card-foot">
<span class="market-lang">{{ strtoupper($item['lang']) }}</span>
@if (in_array($item['url'], $subscribedUrls))
<span class="market-added"> Ajouté</span>
@else
<form method="POST" action="{{ route('feeds.store') }}">
@csrf
<input type="hidden" name="url" value="{{ $item['url'] }}">
<input type="hidden" name="title" value="{{ $item['title'] }}">
<button type="submit" class="btn btn-primary btn-sm">+ Ajouter</button>
</form>
@endif
</div>
</div>
@endforeach
@endforeach
</div>
<div class="card empty-state" id="market-empty" hidden>Aucun flux ne correspond à votre recherche.</div>
@endif
</div>
@endsection
+1 -1
View File
@@ -43,7 +43,7 @@
<footer class="site-footer">
<span>BloomFeed projet open-source, auto-hébergé.</span>
<a href="https://git.eldorianet.work/esteban/RSS-Eldoria-Network" target="_blank" rel="noopener">Code source</a>
<a href="https://git.eldorianet.work/esteban/BloomFeed-RSS" target="_blank" rel="noopener">Code source</a>
</footer>
<script src="{{ asset('js/theme-toggle.js') }}" defer></script>
@@ -5,6 +5,7 @@
</a>
<div class="navbar-links">
<a href="{{ route('dashboard') }}" class="{{ request()->routeIs('dashboard') ? 'active' : '' }}">Articles</a>
<a href="{{ route('catalog') }}" class="{{ request()->routeIs('catalog') ? 'active' : '' }}">Catalogue</a>
<a href="{{ route('feeds.index') }}" class="{{ request()->routeIs('feeds.*') ? 'active' : '' }}">Mes flux</a>
<button type="button" class="theme-toggle" data-theme-toggle title="Changer de thème"></button>
<form method="POST" action="{{ route('logout') }}">
+1 -1
View File
@@ -51,7 +51,7 @@
<div class="card mt-2">
<h2>Code source</h2>
<p>
<a href="https://git.eldorianet.work/esteban/RSS-Eldoria-Network" target="_blank" rel="noopener">git.eldorianet.work/esteban/RSS-Eldoria-Network</a>
<a href="https://git.eldorianet.work/esteban/BloomFeed-RSS" target="_blank" rel="noopener">git.eldorianet.work/esteban/BloomFeed-RSS</a>
</p>
</div>
</section>