From bc4a639e640acfd7a0fca047b86e73a83b38d07f Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 12 Mar 2019 17:40:00 +0000 Subject: [PATCH] Elastic: Fix RSVP recurring menu Use rcmail's menu instead of jQuery-UI's menu. --- plugins/calendar/calendar_ui.js | 10 +++--- plugins/libcalendaring/libcalendaring.js | 39 +++++++++--------------- 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js index 9242d676..812bf492 100644 --- a/plugins/calendar/calendar_ui.js +++ b/plugins/calendar/calendar_ui.js @@ -2380,7 +2380,7 @@ function rcube_calendar_ui(settings) } // when the user accepts or declines an event invitation - var event_rsvp = function(response, delegate, replymode) + var event_rsvp = function(response, delegate, replymode, event) { var btn; if (typeof response == 'object') { @@ -2394,8 +2394,8 @@ function rcube_calendar_ui(settings) // show menu to select rsvp reply mode (current or all) if (me.selected_event && me.selected_event.recurrence && !replymode) { rcube_libcalendaring.itip_rsvp_recurring(btn, function(resp, mode) { - event_rsvp(resp, null, mode); - }); + event_rsvp(resp, null, mode, event); + }, event); return; } @@ -2404,7 +2404,7 @@ function rcube_calendar_ui(settings) if (response == 'delegated' && !delegate) { rcube_libcalendaring.itip_delegate_dialog(function(data) { data.rsvp = data.rsvp ? 1 : ''; - event_rsvp('delegated', data, replymode); + event_rsvp('delegated', data, replymode, event); }); return; } @@ -4059,7 +4059,7 @@ function rcube_calendar_ui(settings) }); $('#event-rsvp input.button').click(function(e) { - event_rsvp(this) + event_rsvp(this, null, null, e.originalEvent); }); $('#eventedit input.edit-recurring-savemode').change(function(e) { diff --git a/plugins/libcalendaring/libcalendaring.js b/plugins/libcalendaring/libcalendaring.js index d328b19c..95e30e45 100644 --- a/plugins/libcalendaring/libcalendaring.js +++ b/plugins/libcalendaring/libcalendaring.js @@ -1311,36 +1311,25 @@ rcube_libcalendaring.itip_delegate_dialog = function(callback, selector) /** * Show a menu for selecting the RSVP reply mode */ -rcube_libcalendaring.itip_rsvp_recurring = function(btn, callback) +rcube_libcalendaring.itip_rsvp_recurring = function(btn, callback, event) { - var menu = $('').attr('class', 'popupmenu libcal-rsvp-replymode'); + var list, lc, menu = $('#itip-rsvp-menu'), action = btn.attr('rel'); - $.each(['all','current'/*,'future'*/], function(i, mode) { - $('
  • ') - .attr({rel: mode, 'class': 'ui-menu-item'}) - .append($('').attr({tabindex: "0", 'class': 'ui-menu-item-wrapper'}) - .text(rcmail.get_label('rsvpmode' + mode))) - .appendTo(menu); - }); + if (!menu.length) { + lc = $('body > #layout').length === 1 ? 'toolbarmenu listing' : 'toolbarmenu'; + menu = $('
    ').attr({'class': 'popupmenu', id: 'itip-rsvp-menu', 'aria-hidden': 'true'}).appendTo(document.body); + list = $('