Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def create_event
- curr_cid = params[:cal_id]
- #sets up @calendars
- user=User.find_by_id(session[:uid])
- cals = user.calendars
- h = Hash.new
- cals.each do |cal|
- h[cal.cname] = cal.id
- end
- @calendars = h
- invitees_all_correct=true
- if request.post?
- new_cid = params[:cal_id]
- new_event = user.events.build(:ename=>params[:eventName], :starttime=>DateTime.parse(params[:starts_at]), :endtime=>DateTime.parse(params[:ends_at]), :user_id=>session[:uid])
- inviteeArray = params[:invitees].split(',')
- wrong_invitees = ""
- if new_event.save #if all goes well in saving
- eid = new_event.id #get the eid of created event
- inviteeArray.each do |invitee|
- invitee_user = User.find_by_name(invitee)
- if invitee_user.nil? #if we cant find invitee in user table
- invitees_all_correct=false
- wrong_invitees << "#{invitee} "
- else #if we found invitee in user table
- if new_event.invite.nil? #if event has no invite object yet
- new_event.create_invite(:imessage=>params[:inviteMessage], :event_id=>eid)
- elsif new_event.invite.users.empty? || (invitee != user && !new_event.invite.users.include?(invitee_user)) # if no users invited yet, or if user is not owner and not invited yet, invite by creating new invite in Invites
- new_event.invite.users.create(:name=>invitee, :password=>invitee_user.password)
- else #if user is already invited
- invitees_all_correct=false
- wrong_invitees << "#{invitee} "
- end
- end
- end
- if invitees_all_correct #there was no problems with any invitee
- calendar = Calendar.find_by_id(new_cid)
- calendar.events << new_event
- redirect_to :action=>'show_calendar', :cal_id=>new_cid
- else #if someone had a problem
- wrong_invitees.strip
- redirect_to :action=>'show_calendar', :cal_id=>new_cid, :notice=> 'The following invited usernames are invalid/duplicates and invites were not sent: ' << wrong_invitees
- end
- else #if something breaks during saving
- redirect_to :action=>'create_event', :notice=>'An error has occurred.', :cal_id=>curr_cid
- end
- end
- end
Add Comment
Please, Sign In to add comment