2015-05-25 5 views
0

Я сложены. У меня есть базовая модель fullCalendar для пользователя. Я хочу добавить 2 кнопки, где Пользователь может разделить календарь на два. Сначала он получает только свои события, и за секунды он получает все события от всех пользователей. Как мне это сделать? им новое на рельсах :) это мой JS кодfullCalendar Пользовательские события

$(document).ready -> 
    $("#calendar").fullCalendar(

    events: '/events.json' 
    eventColor: '#378006' 
    eventBackgroundColor: 'red' 

) 

и мой файл событий JSON

json.array!(@events) do |event| 

    json.extract! event, :id, :title, :description, :user_id 
    json.start event.start_time 
    json.end event.end_time 

    json.url event_url(event, format: :html) 
    if (event.user_id == current_user.id) 
    json.color 'green' 
    end 

    end 

ответ

2

Для этого вы можете сделать так:

) Добавить две кнопки в вашем представлении называются «Пользовательские события» и «Все события пользователей».

) Теперь установите глобальную переменную в js, названную как calEvents.

) Теперь с помощью кнопки щелчка событие, которое означает установить значение calEvents равным current_user событие, когда пользователь нажимает на кнопку «User События» и если пользователя нажмите на кнопку «Все события пользователя» измените значение calEvents равных для всех пользовательских событий.

Примечание. Убедитесь, что ваши события должны быть в формате json.

Для достижения этой цели вы можете закодировать как:

calEvents = '' 

$(document).on 'click', 'all_user_events', -> 
    calEvents = '/events.json' 
    return 

$(document).on 'click', 'user_events', -> 
    calEvents = '/events/user_events.json' 
    return 

$(document).ready -> 
    calEvents = '/events.json' 
    $("#calendar").fullCalendar(

    events: calEvents 
    eventColor: '#378006' 
    eventBackgroundColor: 'red' 

) 

В вашей events_controller добавить новое действие

def user_events 
    @events = current_user.events 
    render json: @events 
end 

В вашем конфигурации/routs.rb файл

get 'events/user_events' => 'events#user_events' 

EDIT:

, если вы хотите сделать это с помощью флажка можно сделать так:

$(document).on 'change', 'your_checkobx_id_to_select_user_events ', -> 
    if @checked 
    calEvents = 'events/user_events.json' 
    return 

$(document).on 'change', 'your_checkobx_id_to_select_all_events', -> 
    if @checked 
    calEvents = 'events.json' 
    return 

Надежда я понял вашу проблему в правильном пути, и это поможет вам.

+0

Большое спасибо за помощь! он работает –

+0

Можно ли это сделать без кнопок? я хочу сделать это с флажком –

+0

Да, вы можете сделать это с флажком слишком –