v1.5.21 - Added edit feature to multiple events

Updated events
Fixed (maybe) htaccess
This commit is contained in:
Anders
2021-05-06 15:25:36 +02:00
parent b6105d0e0b
commit e7184cd820
8 changed files with 228 additions and 77 deletions
@@ -37,7 +37,7 @@
<div id="editor">{!! $event->description !!}</div>
<textarea name="description" class="d-none" id="hiddenArea"></textarea>
<label for="date">Aktivitet Dato:</label>
<input value="{{$event->date}}" type="datetime-local" name="date" id="date" required>
<input value="{{ strftime("%Y-%m-%dT%H:%M:%S", strtotime($event->date)) }}" type="datetime-local" name="date" id="date" required>
<label id="fileuploadee"for="fileuploade">Baggrundsbillede (Forbliv tom hvis billede ikke skal ændres):</label>
<input id="fileuploade" type="file" name="resource" accept="image/*" value="{{$event->resource_id}}">
<label class="toggle">
@@ -139,5 +139,12 @@
}
});
})
$(document).ready(function (){
$("#add2").click(function(){
$( ".asd" ).append( "<tr><td><input type='text' name='name[]'></td><td><input type='text' name='description[]'></td><td><input type='text' name='accountable[]'></td><td><input type='datetime-local' name='date[]'><td/></tr>" );
console.log("1");
});
});
</script>
@endsection
@@ -46,24 +46,22 @@
</thead>
<tbody>
@foreach($events as $event)
@if (date('Y-m-d H:i', strtotime('-1 day')) < date('Y-m-d H:i', strtotime($event->date)))
<tr id="row_{{ $event->id }}">
<td>{{ $event->name }}</td>
<td>{{ $event->accountable }}</td>
<td>{{ \Illuminate\Support\Facades\Date::createFromTimeStamp(strtotime($event->date))->format('d/m/Y \k\l\. H:i') }}</td>
<td><a href="{{ route("events.signups", [ "event" => $event ]) }}"><img class="w-100" src="{{ asset('/images/icons/eye-dark.svg') }}" alt="Show"></a></td>
<td><a id="preview" onclick="modalEventContent({{$event->id}})" style="cursor: pointer" ><img class="w-100" src="{{ asset('/images/icons/preview-dark.svg') }}" alt="preview"></a></td>
@if(auth()->user()->can('event.edit'))
<td><a href="{{ route("events.edit", [ "event" => $event ]) }}"><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
@endif
@if(auth()->user()->can('event.delete'))
<td>
@csrf
<a class="w-100 nostyle" onclick="delete_event({{ $event->id }})"><img class="w-100 cursor-pointer" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a>
</td>
@endif
</tr>
@endif
<tr id="row_{{ $event->id }}">
<td>{{ $event->name }}</td>
<td>{{ $event->accountable }}</td>
<td>{{ \Illuminate\Support\Facades\Date::createFromTimeStamp(strtotime($event->date))->format('d/m/Y \k\l\. H:i') }}</td>
<td><a href="{{ route("events.signups", [ "event" => $event ]) }}"><img class="w-100" src="{{ asset('/images/icons/eye-dark.svg') }}" alt="Show"></a></td>
<td><a id="preview" onclick="modalEventContent({{$event->id}})" style="cursor: pointer" ><img class="w-100" src="{{ asset('/images/icons/preview-dark.svg') }}" alt="preview"></a></td>
@if(auth()->user()->can('event.edit'))
<td><a href="{{ route("events.edit", [ "event" => $event ]) }}"><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
@endif
@if(auth()->user()->can('event.delete'))
<td>
@csrf
<a class="w-100 nostyle" onclick="delete_event({{ $event->id }})"><img class="w-100 cursor-pointer" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a>
</td>
@endif
</tr>
@endforeach
</tbody>
</table>
@@ -37,22 +37,23 @@
<form method="post" action="{{ route("multiple-events.store") }}" enctype="multipart/form-data">
<!--datetime-local-->
@csrf
<input type="text" name="week" placeholder="Uge" maxlength="2">
<input type="number" name="week" placeholder="Uge" maxlength="2" max="53" required>
<label id="fileuploadee"for="fileuploade">Baggrundsbillede til nyheden (Valgfri)</label>
<input id="fileuploade" type="file" name="resource" accept="image/*">
<table class="asd">
<table id="table">
<tr>
<th>Aktivitets navn</th>
<th>Aktivitets beskrivelse</th>
<th>Tovholder</th>
<th>Tidsrum (Start)</th>
<th><button type="button" class="btn btn-inline btn-sde-blue" id="add2">Tilføj Række</button></th>
</tr>
<tr>
<td><input type="text" name="name[]" maxlength="255"></td>
<td><input type="text" name="description[]"></td>
<td><input type="text" name="accountable[]" maxlength="255"></td>
<td><input type="datetime-local" name="date[]"></td>
<td><button type="button" class="btn btn-inline btn-sde-blue" id="add2">Tilføj en kolonne</button></td>
<td><button type="button" onclick="removeRow(this)" class="btn btn-inline btn-sde-blue">Fjern Række</button></td>
</tr>
</table>
@@ -102,41 +103,59 @@
});
});
$('#name').on('keyup', function () {
$value = $(this).val();
$.ajax({
type: 'get',
url: '{{route('events.nameCheck')}}',
data: {'nameCheck':$value},
success:function (data) {
if(data){
$("#error").show(100);
$("#error").css('color', 'red');
$("#disable").prop('disabled', true);
$('#disable').css('cursor','not-allowed');
}else{
$("#error").hide();
$("#disable").prop('disabled', false);
$('#disable').css('cursor','pointer');
}
},
error:function (data) {
console.log(data);
$('#name').on('keyup', function () {
$value = $(this).val();
$.ajax({
type: 'get',
url: '{{route('events.nameCheck')}}',
data: {'nameCheck':$value},
success:function (data) {
if(data){
$("#error").show(100);
$("#error").css('color', 'red');
$("#disable").prop('disabled', true);
$('#disable').css('cursor','not-allowed');
}else{
$("#error").hide();
$("#disable").prop('disabled', false);
$('#disable').css('cursor','pointer');
}
});
})
},
error:function (data) {
console.log(data);
}
});
})
$(document).ready(function (){
$("#add2").click(function(){
$( ".asd" ).append( "<tr><td><input type='text' name='name[]'></td><td><input type='text' name='description[]'></td><td><input type='text' name='accountable[]'></td><td><input type='datetime-local' name='date[]'><td/></tr>" );
$( "#table" ).append( "<tr>" +
"<td><input type='text' name='name[]'></td>" +
"<td><input type='text' name='description[]'></td>" +
"<td><input type='text' name='accountable[]'></td>" +
"<td><input type='datetime-local' name='date[]'></td>" +
"<td><button type='button' onclick='removeRow(this)' class='btn btn-inline btn-sde-blue'>Fjern Række</button></td>" +
"</tr>" );
console.log("1");
});
});
function removeRow(el) {
Swal.fire({
title: 'Er du sikker?',
text: "Dette kan ikke blive ændret tilbage!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Fjern Række',
cancelButtonText: 'Annuller'
}).then((result) => {
if (result.isConfirmed) {
$(el).parent().parent().remove();
}
})
}
</script>
@endsection
@@ -30,6 +30,9 @@
padding: 8px;
}
.pointer {
cursor: pointer;
}
</style>
<link href="{{ asset("/css/quill/quill.snow.css") }}" rel="stylesheet">
@@ -37,22 +40,24 @@
<form method="post" action="{{ route("multiple-events.update", $parentEvent) }}" enctype="multipart/form-data">
@csrf
@method("PUT")
<input type="text" name="week" placeholder="Uge">
<label id="fileuploadee"for="fileuploade">Baggrundsbillede til nyheden (Valgfri)</label>
<input id="fileuploade" type="file" name="resource" accept="image/*">
<table>
<input type="number" name="week" placeholder="Uge" max="53" maxlength="2" value="{{$parentEvent->week}}" required>
<label id="fileuploadee"for="fileuploade">Baggrundsbillede til nyheden (Forbliv tom hvis billede ikke skal ændres):</label>
<input id="fileuploade" type="file" name="resource" accept="image/*" value="{{$parentEvent->resource_id}}">
<table id="table">
<tr>
<th>Aktivitets navn</th>
<th>Aktivitets beskrivelse</th>
<th>Tovholder</th>
<th>Tidsrum (Start)</th>
<th><button type="button" class="btn btn-inline btn-sde-blue" id="add2">Tilføj Række</button></th>
</tr>
@foreach($multiEvents as $multiEvent)
<tr>
<td><input type="text" name="name[][]" max="255" value="{{ $multiEvent->name }}"></td>
<td><input type="text" name="description[][]" max="255" value="{{ $multiEvent->description }}"></td>
<td><input type="text" name="accountable[][]" value="{{ $multiEvent->accountable }}"></td>
<td><input type="datetime-local" name="date[][]" value="{{ $multiEvent->date }}"></td>
<tr id="{{ $multiEvent->id }}">
<td><input type="text" name="name[{{ $multiEvent->id }}][]" maxlength="255" value="{{ $multiEvent->name }}"></td>
<td><input type="text" name="description[{{ $multiEvent->id }}][]" value="{{ $multiEvent->description }}"></td>
<td><input type="text" name="accountable[{{ $multiEvent->id }}][]" maxlength="255" value="{{ $multiEvent->accountable }}"></td>
<td><input type="datetime-local" name="date[{{ $multiEvent->id }}][]" value="{{ strftime("%Y-%m-%dT%H:%M:%S", strtotime($multiEvent->date)) }}"></td>
<td><button type="button" onclick="removeRow(this)" class="btn btn-inline btn-sde-blue">Fjern Række</button></td>
</tr>
@endforeach
</table>
@@ -64,7 +69,7 @@
</span>
</label>
<input id="disable" type="submit" class="btn btn-dark text-white" value="Opret">
<input id="disable" type="submit" class="btn btn-dark text-white" value="Rediger">
</form>
@endsection
@section("scripts")
@@ -127,5 +132,71 @@
}
});
})
$(document).ready(function (){
$("#add2").click(function(){
$( "#table" ).append( "<tr>" +
"<td><input type='text' name='name[new][]'></td>" +
"<td><input type='text' name='description[new][]'></td>" +
"<td><input type='text' name='accountable[new][]'></td>" +
"<td><input type='datetime-local' name='date[new][]'></td>" +
"<td><button type='button' onclick='removeRow(this)' class='btn btn-inline btn-sde-blue'>Fjern Række</button></td>" +
"</tr>" );
});
});
function removeRow(el) {
var token = $("input[name='_token']").val();
if ($(el).parent().parent().attr("id") == null) {
Swal.fire({
title: 'Er du sikker?',
text: "Dette kan ikke blive ændret tilbage!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Fjern Række',
cancelButtonText: 'Annuller'
}).then((result) => {
if (result.isConfirmed) {
$(el).parent().parent().remove();
}
})
} else {
Swal.fire({
title: 'Er du sikker?',
text: "Dette kan ikke blive ændret tilbage!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Fjern række & aktivitet',
cancelButtonText: 'Annuller'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "POST",
url: "/multiple-events/"+$(el).parent().parent().attr("id"),
data:{'_token':token, _method: 'DELETE', 'onlyMultiEvent': true},
success: function () {
$(el).parent().parent().remove();
Swal.fire(
'Aktiviteten og rækken er fjernet!',
'',
'success'
)
},
error:function (data) {
console.log(data);
}
});
}
})
}
}
</script>
@endsection