Update (UI)
This commit is contained in:
@@ -28,7 +28,7 @@ public function home(Request $request)
|
||||
|
||||
$top_rss_keywords = HybridTopRssPostKeywords::get(1, 16);
|
||||
|
||||
$rss_posts = RssPost::with('entities_keywords')->where('status', 'published')->orderBy('published_at', 'desc')->paginate(15);
|
||||
$rss_posts = RssPost::with('entities_keywords')->whereNotNull('keywords')->where('status', 'published')->orderBy('published_at', 'desc')->paginate(15);
|
||||
|
||||
return response(view('front.welcome', compact('rss_posts', 'top_rss_keywords')), 200);
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ public function searchResults(Request $request, $query)
|
||||
|
||||
$rss_posts = RssPost::with('category', 'entities_keywords')
|
||||
->where('status', 'published')
|
||||
->whereNotNull('keywords')
|
||||
->whereRaw("to_tsvector('english', title || ' ' || bites || ' ' || keyword_list) @@ plainto_tsquery('english', ?)", [trim(preg_replace('/\s+/', ' ', $query))])
|
||||
->where('published_at', '<=', now())
|
||||
->orderBy('published_at', 'desc')
|
||||
@@ -106,6 +107,7 @@ public function index(Request $request)
|
||||
//SEOTools::setDescription($description);
|
||||
|
||||
$rss_posts = RssPost::with('category', 'entities_keywords')->where('status', 'published')
|
||||
->whereNotNull('keywords')
|
||||
->where('published_at', '<=', now())
|
||||
->orderBy('published_at', 'desc')
|
||||
->cursorPaginate(60) ?? collect();
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* The default configurations to be used by the meta generator.
|
||||
*/
|
||||
'defaults' => [
|
||||
'title' => 'FutureWalker: Daily AI & tech news', // set false to total remove
|
||||
'title' => 'FutureWalker: Real-time AI & tech news', // set false to total remove
|
||||
'titleBefore' => false, // Put defaults.title before page title, like 'It's Over 9000! - Dashboard'
|
||||
'description' => 'Stay updated with critical AI & tech news to build your future.', // set false to total remove
|
||||
'separator' => ' - ',
|
||||
@@ -39,7 +39,7 @@
|
||||
* The default configurations to be used by the opengraph generator.
|
||||
*/
|
||||
'defaults' => [
|
||||
'title' => 'FutureWalker: Daily AI & tech news', // set false to total remove
|
||||
'title' => 'FutureWalker: Real-time AI & tech news', // set false to total remove
|
||||
'description' => 'Stay updated with critical AI & tech news to build your future.', // set false to total remove
|
||||
'url' => null, // Set null for using Url::current(), set false to total remove
|
||||
'type' => 'website',
|
||||
@@ -61,7 +61,7 @@
|
||||
* The default configurations to be used by the json-ld generator.
|
||||
*/
|
||||
'defaults' => [
|
||||
'title' => 'FutureWalker: Daily AI & tech news', // set false to total remove
|
||||
'title' => 'FutureWalker: Real-time AI & tech news', // set false to total remove
|
||||
'description' => 'Stay updated with critical AI & tech news to build your future.', // set false to total remove
|
||||
'url' => 'current', // Set to null or 'full' to use Url::full(), set to 'current' to use Url::current(), set false to total remove
|
||||
'type' => 'WebPage',
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<aside class="p-4 mb-3 bg-black text-white rounded-3 shadow-sm">
|
||||
<h4 class="font-family-roboto-condensed">About <span class="text-uppercase">FutureWalker</span></h4>
|
||||
<p class="mb-0">
|
||||
FutureWalker offers specialized coverage of advanced technology and AI breakthroughs, delivering the latest
|
||||
trends and insights through concise, 1-2 minute news updates to quickly bring you up to speed.
|
||||
FutureWalker is a AI-powered news syndication site, hyperfocused only latest AI & tech news.
|
||||
</p>
|
||||
</aside>
|
||||
|
||||
@@ -1,34 +1,32 @@
|
||||
<div class="accordion" id="accordionTechBites">
|
||||
|
||||
@foreach ($rss_posts as $key => $post)
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="heading{{ $key }}">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapse{{ $key }}" aria-controls="collapse{{ $key }}">
|
||||
<div>
|
||||
<h3 class="h6 mb-2 fw fw-semibold font-family-roboto-condensed">
|
||||
@foreach ($rss_posts as $key => $post)
|
||||
<div class="card mb-1">
|
||||
<div class="card-body">
|
||||
<div class="d-flex justify-content-between">
|
||||
<div class="">
|
||||
<h3 class="h6 mb-1 fw fw-semibold font-family-roboto-condensed">
|
||||
{{ $post->title }}
|
||||
</h3>
|
||||
|
||||
@if ($post->entities_keywords->count() > 0)
|
||||
<div class="d-flex flex-wrap mb-1">
|
||||
@if ($post->entities)
|
||||
{{-- @if ($post->entities) --}}
|
||||
@foreach ($post->entities_keywords as $keyword)
|
||||
{{-- @if ($keyword->type == 'entity') --}}
|
||||
@if ($loop->iteration <= 2)
|
||||
@if ($keyword->is_main)
|
||||
<h4
|
||||
class="mb-1 pb-1 d-inline badge bg-secondary border-secondary text-white border me-1 small fw-bold">
|
||||
class="mb-0 pb-1 d-inline badge bg-secondary border-secondary text-white border me-1 small fw-bold">
|
||||
{{ $keyword->value }}
|
||||
</h4>
|
||||
@else
|
||||
<h4
|
||||
class="mb-1 pb-1 d-inline badge text-bg-light border me-1 small fw-normal">
|
||||
class="mb-0 pb-1 d-inline badge text-bg-light border me-1 small fw-normal">
|
||||
{{ $keyword->value }}
|
||||
</h4>
|
||||
@endif
|
||||
@elseif ($loop->iteration == 3)
|
||||
<h4
|
||||
class="mb-1 pb-1 d-inline badge text-bg-light border me-1 small fw-normal">
|
||||
class="mb-0 pb-1 d-inline badge text-bg-light border me-1 small fw-normal">
|
||||
+{{ count($post->entities_keywords) - 3 }} more
|
||||
</h4>
|
||||
@break
|
||||
@@ -36,14 +34,15 @@ class="mb-1 pb-1 d-inline badge text-bg-light border me-1 small fw-normal">
|
||||
{{-- @endif --}}
|
||||
@endforeach
|
||||
|
||||
@endif
|
||||
{{-- @endif --}}
|
||||
@if ($post->impact_level == 'high')
|
||||
<h4
|
||||
class="font-family-roboto-condensed mb-1 pb-1 d-inline badge bg-danger border-danger text-white border me-1 small fw-bold text-uppercase">
|
||||
class="font-family-roboto-condensed mb-0 pb-1 d-inline badge bg-danger border-danger text-white border me-1 small fw-bold text-uppercase">
|
||||
🔥 High Impact
|
||||
</h4>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="small">
|
||||
@if ($post->category)
|
||||
@@ -59,52 +58,20 @@ class="font-family-roboto-condensed mb-1 pb-1 d-inline badge bg-danger border-da
|
||||
@endif
|
||||
|
||||
</span>
|
||||
<i class="bi bi-dot"></i>
|
||||
|
||||
@if (!is_empty($post->bites))
|
||||
<i class="bi bi-dot"></i>
|
||||
<span class="d-inline text-secondary small">{{ min_read($post->bites) }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapse{{ $key }}" class="accordion-collapse collapse"
|
||||
aria-labelledby="heading{{ $key }}" data-bs-parent="#accordionTechBites">
|
||||
<div class="accordion-body small">
|
||||
|
||||
@if (!is_empty($post->bites))
|
||||
<div class="fw-bold">The Bite:</div>
|
||||
<div class="mb-3">{{ $post->bites }}</div>
|
||||
@endif
|
||||
|
||||
@if (!is_empty($post->impact))
|
||||
|
||||
@if (in_array($post->impact_level, ['medium', 'high']))
|
||||
<div class="card mb-2">
|
||||
<div class="card-body">
|
||||
<div class="fw-bold">Social Impact:</div>
|
||||
<div>{{ $post->impact }}</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@endif
|
||||
@if ($post->entities)
|
||||
<div class="mb-2 text-wrap">
|
||||
More about: @foreach ($post->entities_keywords as $keyword)
|
||||
<a class="word-wrap-break-word ms-2"
|
||||
href="{{ get_route_search_result($keyword->value_lowercased) }}">#{{ $keyword->value_lowercased }}</a>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
<div>
|
||||
Read the full article:
|
||||
<a target="_blank" rel="nofollow noopener noreferrer" href="{{ $post->post_url }}">
|
||||
{{ get_domain_from_url($post->post_url) }} </a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" text-end d-flex justify-content-end">
|
||||
<div class="align-self-center">
|
||||
<a class="btn btn-outline-secondary btn-sm rounded-pill px-3 text-decoration-none" target="_blank" rel="nofollow noopener noreferrer" href="{{ $post->post_url }}">👉 Read </a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="display-6 fw-bold font-family-roboto-condensed mb-2">Your Future Depends<wbr> on Today's
|
||||
News</div>
|
||||
<h1 class="h4 fw-normal mb-4">In the fast-evolving world of AI and tech, staying updated is not
|
||||
optional—it's critical for your future success. Stay updated with daily news 🍪 bites from
|
||||
optional—it's critical for your future success. Stay updated with hourly news
|
||||
<strong>FutureWalker</strong>.
|
||||
</h1>
|
||||
|
||||
@@ -77,7 +77,7 @@ class="text-secondary">{{ $post->published_at->diffForHumans() }}</small>
|
||||
<div class="text-start mb-3">
|
||||
<div class="d-flex">
|
||||
<h2 class="align-self-center fw-bold font-family-roboto-condensed mb-1 h2">
|
||||
🍪 Tech Bites </h2>
|
||||
This Just In 🛰️</h2>
|
||||
<div class="align-self-center">
|
||||
<span
|
||||
class="mb-2 ms-2 badge illuminated-slow bg-gradient-rainbow text-white d-inline-flex font-family-roboto-condensed"><i
|
||||
@@ -86,10 +86,6 @@ class="bi bi-clock-history me-1"></i> UPDATED HOURLY</span>
|
||||
|
||||
</div>
|
||||
|
||||
<h5 class="h6">
|
||||
Tap on <i class="bi bi-chevron-down"></i> to read the 1 minute news bite worth every second
|
||||
</h5>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -97,7 +93,7 @@ class="bi bi-clock-history me-1"></i> UPDATED HOURLY</span>
|
||||
|
||||
<div class="w-full text-center mt-3 mb-3">
|
||||
<a href="{{ route('front.all') }}"
|
||||
class="btn btn-primary px-4 rounded-pill text-decoration-none">Read more News Bites</a>
|
||||
class="btn btn-primary px-4 rounded-pill text-decoration-none">Discover more news</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user