Kali ini kita akan membuat events calendar menggunakan jquery fullcalendar dan ruby on rails
Pertama kita download dahulu jquery fullcalendarnya disini
Kemudian kita buat project baru
$ rails new fullcalendar -d postgresql
$ cd fullcalendar
$ rake db:create
Buat crud events
$ rails g scaffold event title:string start:datetime end:datetime color:string
$ rake db:migrate
Extract dan buka folder fullcalendar yang kita telah kita download tadi
Copy dan paste file
- Fullcalendar.js ke fullcalendar/app/assets/javascripts
- Fullcalendar.css ke fullcalendar/app/assets/stylesheets
- Lib/moment.min.js ke fullcalendar/app/assets/javascripts
Copy dan paste file
- Fullcalendar.js ke fullcalendar/app/assets/javascripts
- Fullcalendar.css ke fullcalendar/app/assets/stylesheets
- Lib/moment.min.js ke fullcalendar/app/assets/javascripts
Edit file fullcalendar/app/assets/javascripts/application.js tambahkan require untuk file yang baru
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require moment.min
//= require fullcalendar
//= require_tree .
Edit file fullcalendar/app/views/events/index.html.erb Tambahkan tag html id fullcalendar
<div id = "fullcaendar"></div>
Edit file fullcalendar/app/views/events/_event.json.jbuilder Edit isinya seperti berikut
date_format = event.all_day_event? ? '%Y-%m-%d' : '%Y-%m-%dT%H:%M:%S'
json.id event.id
json.title event.title
json.start event.start.strftime(date_format)
json.end event.end.strftime(date_format)
json.color event.color unless event.color.blank?
json.allDay event.all_day_event? ? true : false
json.update_url event_path(event, method: :patch)
json.edit_url edit_event_path(event)
Edit file fullcalendar/app/model/event.rb Tambahkan method all_day_event?
class Event < ApplicationRecord
def all_day_event?
self.start == self.start.midnight && self.end == self.end.midnight ? true : false
end
end
Edit file fullcalendar/app/assets/javascripts/events.coffee tambahkan baris code berikut
date_range_picker = undefined
date_range_picker = ->
$('#fullcaendar').fullCalendar
firstDay: 1
lang: 'es'
header:
left: 'title'
center: ''
right: 'prev,next'
eventSources: '/events.json'
return
$(document).on 'turbolinks:load', date_range_picker
Edit fullcalendar/config/routes.rb tambahkan root untuk events
Rails.application.routes.draw do
resources :events
root to: "events#index"
end
Tinggal turn on server
$ rails s
Buka di browser http://localhost:3000/events/new untuk menambahkan data event baru
http://localhost:3000 untuk akses halaman utama Hasilnya akhirnya seperti gambar berikut
Tidak ada komentar:
Posting Komentar