Witam mam problem nie wiem jak zrobić, aby event zmieniał kolor. A dokładniej chodzi mi o to, że nie wiem jak w funkcji w w skrypcie do fullcalendarza pobrać zmienną events_id, która odpowiedzialna jest za relację.
Kombinuję na różne sposoby i nie wiem jak to ugryść. Czy zrobić to w controllerze czy w wywoływaniu kalandarza.
Widok:
<script src="{{ asset('js/fullcalendar') }}/fullcalendar.js"></script>
<script src="{{ asset('js/bootstrap.js') }}"></script>
<script type="text/javascript">
$(document).ready(function() {
var base_url = '{{ url('/') }}';
$('#bootstrapModalFullCalendar').fullCalendar({
weekends: true,
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek'
},
eventClick: function(event, jsEvent, view) {
$('#modalTitle').html(event.title);
$('#modalBody').html(event.name);
$('#eventUrl').attr('href','/home/zapis/'+event.id);
$("#startTime").html(moment(event.start).format('HH:mm '));
if (event
.end) $
("#endTime").html
(moment
(event
.end).format
('HH:mm ')); else $("#endTime").html('');
$('#fullCalModal').modal();
return false;
},
eventLimit: true, // allow "more" link when too many events
FirstDay: 1,
contentheight : 650,
editable : true,
allDay : false,
aspectRatio : 2,
slotLabelFormat : 'HH:mm:ss',
timeFormat : 'HH:mm',
displayEventEnd : true,
events: {
url: base_url + '/api',
error: function() {
alert("cannot load json");
}
},
eventAfterRender: function (event, element, view,events_id) {
if(event.id === 1){
element.css('background-color', '#cccccc');
}
else
{
if (event.title == "Wydzial 1")
{
element.css('background-color', '#378006');
}
else if(event.title == "Wydzial 2"){
element.css('background-color', '#ff0000');
}
else if(event.title == "Wydzial 3"){
element.css('background-color', '#73e600');
}
else{
element.css('background-color', '#0066ff');
}
}
}
});
});
</script>
Ta 1 wstawiłem, żeby sprawdzić czy chociaż if dobrze smiga. Domyślam się że zamiast 1 należy spawdzić czy ten event znajduje sie w tablicy odpowiedzialnej za relacje i tu jest problem nie mam pojećia jak to sprawdzić Controller:
public function index()
{
$events= HomeModel::all();
// foreach ($events as $event) {
// if ($event->title=="Wydzial 1") {
// }
// elseif($event->title == "Wydzial 2"){
// }elseif ($event->title == "Wydzial 3") {
// }elseif ($event->title == "Wydzial 4") {
// }
// }
return view('home',['events'=>$events]);
}
Model:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class HomeModel extends Model
{
protected $table = 'events'; // you may change this to your name table
public $timestamps = true; // set true if you are using created_at and updated_at
protected $primaryKey = 'id'; // the default is id
public function usersave()
{
return $this->belongsToMany(User::class,'save_events','events_id','users_id');
}
}
Byłbym wdzięczny nawet na nakietowanie w jaki sposób to rozwiązać bo naprawdę nie mam bladego pojecia.
W controllerze dodalem cos takiego $eventscolo=DB::table('save_events')->select('events_id')->get(); . Pobieram id eventow, przekazuje do widoku ale teraz nie wiem jak sprawidzc. Próboje zrobić cos takiego w if (event.id===eventscolo) i nie dziala ;p
Ten post edytował K3n0 5.04.2017, 19:25:08