From 07f05a102bc7d1bea971f8e645ee82cad6cc16a8 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 7 Aug 2014 18:14:49 +0200 Subject: [PATCH] Fix folder list operations when search is active --- plugins/calendar/calendar_ui.js | 10 ++++++++++ plugins/libkolab/js/folderlist.js | 3 +++ plugins/tasklist/tasklist.js | 13 +++++++++++++ 3 files changed, 26 insertions(+) diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js index dc72e2d5..82bf0177 100644 --- a/plugins/calendar/calendar_ui.js +++ b/plugins/calendar/calendar_ui.js @@ -3385,6 +3385,11 @@ function rcube_calendar_ui(settings) me.calendars[id].active = false; } + // adjust checked state of original list item + if (calendars_list.is_search()) { + calendars_list.container.find('input[value="'+id+'"]').prop('checked', this.checked); + } + // add/remove event source fc.fullCalendar(action, me.calendars[id]); rcmail.http_post('calendar', { action:'subscribe', c:{ id:id, active:me.calendars[id].active?1:0 } }); @@ -3402,8 +3407,13 @@ function rcube_calendar_ui(settings) // init (delegate) event handler on quickview links .on('click', 'a.quickview', function(e) { var id = $(this).closest('li').attr('id').replace(/^rcmlical/, ''); + + if (calendars_list.is_search()) + id = id.replace(/--xsR$/, ''); + if (me.calendars[id]) me.quickview(id); + e.stopPropagation(); return false; }); diff --git a/plugins/libkolab/js/folderlist.js b/plugins/libkolab/js/folderlist.js index 77105705..1c8ce2f6 100644 --- a/plugins/libkolab/js/folderlist.js +++ b/plugins/libkolab/js/folderlist.js @@ -244,6 +244,9 @@ function kolab_folderlist(node, p) id = li.attr('id').replace(new RegExp('^'+p.id_prefix), ''), div = li.children().first(); + if (me.is_search()) + id = id.replace(/--xsR$/, ''); + if (p.id_decode) id = p.id_decode(id); diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js index 0a090e8b..76e6313d 100644 --- a/plugins/tasklist/tasklist.js +++ b/plugins/tasklist/tasklist.js @@ -197,6 +197,11 @@ function rcube_tasklist_ui(settings) if (!this.checked && focusview == id) { set_focusview(null); } + + // adjust checked state of original list item + if (tasklists_widget.is_search()) { + tasklists_widget.container.find('input[value="'+id+'"]').prop('checked', this.checked); + } } e.stopPropagation(); }) @@ -212,6 +217,10 @@ function rcube_tasklist_ui(settings) // handler for clicks on quickview buttons tasklists_widget.container.on('click', '.quickview', function(e){ var id = $(this).closest('li').attr('id').replace(/^rcmlitasklist/, ''); + + if (tasklists_widget.is_search()) + id = id.replace(/--xsR$/, ''); + set_focusview(focusview == id ? null : id); e.stopPropagation(); return false; @@ -220,6 +229,10 @@ function rcube_tasklist_ui(settings) // register dbl-click handler to open calendar edit dialog tasklists_widget.container.on('dblclick', ':not(.virtual) > .tasklist', function(e){ var id = $(this).closest('li').attr('id').replace(/^rcmlitasklist/, ''); + + if (tasklists_widget.is_search()) + id = id.replace(/--xsR$/, ''); + list_edit_dialog(id); });