Skip to content

Commit 5aa73aa

Browse files
authored
Merge pull request #9 from andreazorzi/development
Add url modal
2 parents 321d92d + d789313 commit 5aa73aa

File tree

5 files changed

+73
-2
lines changed

5 files changed

+73
-2
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use App\Models\Url;
6+
use Illuminate\Http\Request;
7+
use Illuminate\Support\Facades\Validator;
8+
9+
class UrlController extends Controller
10+
{
11+
public function modal(Request $request, Url $url){
12+
return view('components.backoffice.modals.url-update', ["url" => $url]);
13+
}
14+
15+
public function update(Request $request, Url $url){
16+
$validator = Validator::make($request->all(), [
17+
'url' => ['required', 'url:http,https'],
18+
]);
19+
20+
if($validator->fails()){
21+
return view("components.alert", ["status" => "danger", "message" => implode('\\n', $validator->errors()->all())]);
22+
}
23+
24+
$url->update([
25+
'url' => $request->url,
26+
]);
27+
28+
return view("components.alert", ["status" => "success", "message" => __('app.pages.short.updated'), 'beforeshow' => 'modal.hide(); $(".language[data-lang='.($url->language ?? 'default').'] .url").text("'.$request->url.'");']);
29+
}
30+
}

lang/it/app.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@
5656
'map' => 'Mappa',
5757
'language_urls' => 'Url in lingua',
5858
'add_language' => 'Aggiungi Lingua',
59+
'update_language' => 'Modifica Lingua',
60+
'update' => 'Aggiorna',
61+
'updated' => 'Aggiornato',
5962
],
6063
'tags' => [
6164
'meta_title' => 'Tags',

resources/views/backoffice/short.blade.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,16 @@
6565
@php
6666
$language = !is_null($url->language) ?__("languages.{$url->language}") : "Default";
6767
@endphp
68-
<div class="col-12">
68+
<div class="language col-12" data-lang="{{$url->language ?? "default"}}">
6969
<div class="{{!$loop->last ? 'border-bottom' : ''}}">
7070
<div class="row g-3 {{!$loop->last ? 'pb-2' : ''}}">
7171
<div class="col-auto">
7272
<img class="url-flag" title="{{$language}}" alt="{{$language}}" src="{{asset("images/lang/".($url->language ?? 'default').".svg")}}">
7373
</div>
7474
<div class="col text-break align-self-center">
75-
{{$url->url}}
75+
<span class="url">{{$url->url}}</span>
76+
<i class="fa-solid fa-pen ms-2" role="button"
77+
hx-post="{{route("url.modal", [$url])}}" hx-target="#modal .modal-content"></i>
7678
</div>
7779
<div class="col-auto align-self-center">
7880
{{$url->visits()->count()}}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<div class="modal-header">
2+
<h1 class="modal-title fs-5" id="modalLabel">{{__('app.pages.short.update_language')}}</h1>
3+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
4+
</div>
5+
<div class="modal-body">
6+
<div class="row g-3">
7+
<div class="col-12">
8+
<label>{{Str::upper($short->language ?? "default")}}</label>
9+
<input type="text" class="form-control" name="url" value="{{$url->url}}">
10+
</div>
11+
</div>
12+
</div>
13+
<div class="modal-footer">
14+
<div class="row w-100 justify-content-end">
15+
<div class="col-md-6 p-0 text-end">
16+
@csrf
17+
<button id="url-save" type="button" class="btn btn-primary"
18+
hx-put="{{route("url.update", [$url])}}" hx-target="#request-response">
19+
{{__('app.pages.short.update')}}
20+
</button>
21+
</div>
22+
</div>
23+
</div>
24+
25+
<script>
26+
modal.show();
27+
</script>

routes/requests.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Illuminate\Support\Facades\Hash;
66
use Illuminate\Support\Facades\Route;
77
use App\Http\Controllers\TagController;
8+
use App\Http\Controllers\UrlController;
89
use App\Http\Controllers\UserController;
910
use App\Http\Controllers\ShortController;
1011
use Illuminate\Support\Facades\Validator;
@@ -36,6 +37,14 @@
3637
});
3738
});
3839

40+
// Urls
41+
Route::prefix("urls")->group(function(){
42+
Route::prefix("{url}")->group(function(){
43+
Route::post('modal', [UrlController::class, 'modal'])->name('url.modal');
44+
Route::put('update', [UrlController::class, 'update'])->name('url.update');
45+
});
46+
});
47+
3948
// Tags
4049
Route::prefix("tags")->group(function(){
4150
Route::put('create', [TagController::class, 'create'])->name('tag.create');

0 commit comments

Comments
 (0)