Changeset View
Changeset View
Standalone View
Standalone View
plugins/calendar/calendar_ui.js
Show First 20 Lines • Show All 454 Lines • ▼ Show 20 Lines | var event_show_dialog = function(event, ev, temp) | ||||
}); | }); | ||||
var data, mystatus = null, rsvp, line, morelink, html = '', overflow = '', | var data, mystatus = null, rsvp, line, morelink, html = '', overflow = '', | ||||
organizer = me.is_organizer(event), num_attendees = event.attendees.length; | organizer = me.is_organizer(event), num_attendees = event.attendees.length; | ||||
for (var j=0; j < num_attendees; j++) { | for (var j=0; j < num_attendees; j++) { | ||||
data = event.attendees[j]; | data = event.attendees[j]; | ||||
if (data.email) { | if (data.email) { | ||||
if (data.role != 'ORGANIZER' && settings.identity.emails.indexOf(';'+data.email) >= 0) { | if (data.role != 'ORGANIZER' && is_this_me(data.email)) { | ||||
mystatus = (data.status || 'UNKNOWN').toLowerCase(); | mystatus = (data.status || 'UNKNOWN').toLowerCase(); | ||||
if (data.status == 'NEEDS-ACTION' || data.status == 'TENTATIVE' || data.rsvp) | if (data.status == 'NEEDS-ACTION' || data.status == 'TENTATIVE' || data.rsvp) | ||||
rsvp = mystatus; | rsvp = mystatus; | ||||
} | } | ||||
} | } | ||||
line = rcube_libcalendaring.attendee_html(data); | line = rcube_libcalendaring.attendee_html(data); | ||||
▲ Show 20 Lines • Show All 1,903 Lines • ▼ Show 20 Lines | |||||
// | // | ||||
var add_resource2event = function() | var add_resource2event = function() | ||||
{ | { | ||||
var resource = resources_data[resources_treelist.get_selection()]; | var resource = resources_data[resources_treelist.get_selection()]; | ||||
if (resource) | if (resource) | ||||
add_attendee($.extend({ role:'REQ-PARTICIPANT', status:'NEEDS-ACTION', cutype:'RESOURCE' }, resource)); | add_attendee($.extend({ role:'REQ-PARTICIPANT', status:'NEEDS-ACTION', cutype:'RESOURCE' }, resource)); | ||||
} | } | ||||
var is_this_me = function(email) | |||||
{ | |||||
if (settings.identity.emails.indexOf(';'+email) >= 0 || settings.identity.ownedResources.indexOf(';'+email) >= 0) { | |||||
return true; | |||||
} | |||||
return false; | |||||
}; | |||||
// when the user accepts or declines an event invitation | // when the user accepts or declines an event invitation | ||||
var event_rsvp = function(response, delegate, replymode, event) | var event_rsvp = function(response, delegate, replymode, event) | ||||
{ | { | ||||
var btn; | var btn; | ||||
if (typeof response == 'object') { | if (typeof response == 'object') { | ||||
btn = $(response); | btn = $(response); | ||||
response = btn.attr('rel') | response = btn.attr('rel') | ||||
} | } | ||||
Show All 18 Lines | var event_rsvp = function(response, delegate, replymode, event) | ||||
}); | }); | ||||
return; | return; | ||||
} | } | ||||
// update attendee status | // update attendee status | ||||
attendees = []; | attendees = []; | ||||
for (var data, i=0; i < me.selected_event.attendees.length; i++) { | for (var data, i=0; i < me.selected_event.attendees.length; i++) { | ||||
data = me.selected_event.attendees[i]; | data = me.selected_event.attendees[i]; | ||||
if (settings.identity.emails.indexOf(';'+String(data.email).toLowerCase()) >= 0) { | //FIXME this can only work if there is a single resource per invitation | ||||
if (is_this_me(String(data.email).toLowerCase())) { | |||||
data.status = response.toUpperCase(); | data.status = response.toUpperCase(); | ||||
data.rsvp = 0; // unset RSVP flag | data.rsvp = 0; // unset RSVP flag | ||||
if (data.status == 'DELEGATED') { | if (data.status == 'DELEGATED') { | ||||
data['delegated-to'] = delegate.to; | data['delegated-to'] = delegate.to; | ||||
data.rsvp = delegate.rsvp | data.rsvp = delegate.rsvp | ||||
} | } | ||||
else { | else { | ||||
▲ Show 20 Lines • Show All 1,890 Lines • Show Last 20 Lines |