Elastic: Alarms dialog
This commit is contained in:
parent
3b6c5b7bfd
commit
fcde82bb91
2 changed files with 95 additions and 30 deletions
|
@ -629,8 +629,8 @@ function rcube_libcalendaring(settings)
|
||||||
if (this.alarm_dialog)
|
if (this.alarm_dialog)
|
||||||
this.alarm_dialog.dialog('destroy').remove();
|
this.alarm_dialog.dialog('destroy').remove();
|
||||||
|
|
||||||
var i, actions, adismiss, asnooze, alarm, html,
|
var i, actions, adismiss, asnooze, alarm, html, type,
|
||||||
audio_alarms = [], records = [], event_ids = [], buttons = {};
|
audio_alarms = [], records = [], event_ids = [], buttons = [];
|
||||||
|
|
||||||
for (i=0; i < alarms.length; i++) {
|
for (i=0; i < alarms.length; i++) {
|
||||||
alarm = alarms[i];
|
alarm = alarms[i];
|
||||||
|
@ -644,21 +644,27 @@ function rcube_libcalendaring(settings)
|
||||||
|
|
||||||
event_ids.push(alarm.id);
|
event_ids.push(alarm.id);
|
||||||
|
|
||||||
html = '<h3 class="event-title">' + Q(alarm.title) + '</h3>';
|
type = alarm.id.match(/^task/) ? 'type-task' : 'type-event';
|
||||||
|
|
||||||
|
html = '<h3 class="event-title ' + type + '">' + Q(alarm.title) + '</h3>';
|
||||||
html += '<div class="event-section">' + Q(alarm.location || '') + '</div>';
|
html += '<div class="event-section">' + Q(alarm.location || '') + '</div>';
|
||||||
html += '<div class="event-section">' + Q(this.event_date_text(alarm)) + '</div>';
|
html += '<div class="event-section">' + Q(this.event_date_text(alarm)) + '</div>';
|
||||||
|
|
||||||
adismiss = $('<a href="#" class="alarm-action-dismiss"></a>').html(rcmail.gettext('dismiss','libcalendaring')).click(function(e){
|
adismiss = $('<a href="#" class="alarm-action-dismiss"></a>')
|
||||||
me.dismiss_link = $(this);
|
.text(rcmail.gettext('dismiss','libcalendaring'))
|
||||||
me.dismiss_alarm(me.dismiss_link.data('id'), 0, e);
|
.click(function(e) {
|
||||||
});
|
me.dismiss_link = $(this);
|
||||||
asnooze = $('<a href="#" class="alarm-action-snooze"></a>').html(rcmail.gettext('snooze','libcalendaring')).click(function(e){
|
me.dismiss_alarm(me.dismiss_link.data('id'), 0, e);
|
||||||
me.snooze_dropdown($(this), e);
|
});
|
||||||
e.stopPropagation();
|
asnooze = $('<a href="#" class="alarm-action-snooze"></a>')
|
||||||
return false;
|
.text(rcmail.gettext('snooze','libcalendaring'))
|
||||||
});
|
.click(function(e) {
|
||||||
actions = $('<div>').addClass('alarm-actions').append(adismiss.data('id', alarm.id)).append(asnooze.data('id', alarm.id));
|
me.snooze_dropdown($(this), e);
|
||||||
|
e.stopPropagation();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
actions = $('<div>').addClass('alarm-actions').append(adismiss.data('id', alarm.id)).append(asnooze.data('id', alarm.id));
|
||||||
records.push($('<div>').addClass('alarm-item').html(html).append(actions));
|
records.push($('<div>').addClass('alarm-item').html(html).append(actions));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -670,18 +676,26 @@ function rcube_libcalendaring(settings)
|
||||||
|
|
||||||
this.alarm_dialog = $('<div>').attr('id', 'alarm-display').append(records);
|
this.alarm_dialog = $('<div>').attr('id', 'alarm-display').append(records);
|
||||||
|
|
||||||
buttons[rcmail.gettext('close')] = function() {
|
buttons.push({
|
||||||
$(this).dialog('close');
|
text: rcmail.gettext('close'),
|
||||||
};
|
click: function() {
|
||||||
|
$(this).dialog('close');
|
||||||
|
},
|
||||||
|
'class': 'cancel'
|
||||||
|
});
|
||||||
|
|
||||||
buttons[rcmail.gettext('dismissall','libcalendaring')] = function(e) {
|
buttons.push({
|
||||||
// submit dismissed event_ids to server
|
text: rcmail.gettext('dismissall','libcalendaring'),
|
||||||
me.dismiss_alarm(me.alarm_ids.join(','), 0, e);
|
click: function(e) {
|
||||||
$(this).dialog('close');
|
// submit dismissed event_ids to server
|
||||||
};
|
me.dismiss_alarm(me.alarm_ids.join(','), 0, e);
|
||||||
|
$(this).dialog('close');
|
||||||
|
},
|
||||||
|
'class': 'delete'
|
||||||
|
});
|
||||||
|
|
||||||
this.alarm_dialog.appendTo(document.body).dialog({
|
this.alarm_dialog.appendTo(document.body).dialog({
|
||||||
modal: false,
|
modal: true,
|
||||||
resizable: true,
|
resizable: true,
|
||||||
closeOnEscape: false,
|
closeOnEscape: false,
|
||||||
dialogClass: 'alarms',
|
dialogClass: 'alarms',
|
||||||
|
@ -725,6 +739,7 @@ function rcube_libcalendaring(settings)
|
||||||
// Internet Explorer does not support wav files,
|
// Internet Explorer does not support wav files,
|
||||||
// support in other browsers depends on enabled plugins,
|
// support in other browsers depends on enabled plugins,
|
||||||
// so we use wav as a fallback
|
// so we use wav as a fallback
|
||||||
|
|
||||||
src += bw.ie || (plugin && plugin.enabledPlugin) ? '.mp3' : '.wav';
|
src += bw.ie || (plugin && plugin.enabledPlugin) ? '.mp3' : '.wav';
|
||||||
|
|
||||||
// HTML5
|
// HTML5
|
||||||
|
@ -1192,7 +1207,7 @@ rcube_libcalendaring.itip_delegate_dialog = function(callback, selector)
|
||||||
setTimeout(function() { dialog.dialog("close"); }, 500);
|
setTimeout(function() { dialog.dialog("close"); }, 500);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
alert(rcmail.gettext('itip.delegateinvalidaddress'));
|
rcmail.alert_dialog(rcmail.gettext('itip.delegateinvalidaddress'));
|
||||||
$('#itip-delegate-to', doc).focus();
|
$('#itip-delegate-to', doc).focus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1271,12 +1286,9 @@ rcube_libcalendaring.itip_rsvp_recurring = function(btn, callback)
|
||||||
*/
|
*/
|
||||||
rcube_libcalendaring.remove_from_itip = function(event, task, title)
|
rcube_libcalendaring.remove_from_itip = function(event, task, title)
|
||||||
{
|
{
|
||||||
if (confirm(rcmail.gettext('itip.deleteobjectconfirm').replace('$title', title))) {
|
rcmail.confirm_dialog(rcmail.gettext('itip.deleteobjectconfirm').replace('$title', title), 'delete', function() {
|
||||||
rcmail.http_post(task + '/itip-remove',
|
rcmail.http_post(task + '/itip-remove', event, rcmail.set_busy(true, 'itip.savingdata'));
|
||||||
event,
|
});
|
||||||
rcmail.set_busy(true, 'itip.savingdata')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -209,7 +209,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.attendees-comentbox {
|
.attendees-comentbox {
|
||||||
label {
|
label {
|
||||||
display: inline;
|
display: inline;
|
||||||
|
@ -554,3 +553,57 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#alarm-display {
|
||||||
|
h3 {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-bottom: .25rem;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
&:extend(.font-icon-class);
|
||||||
|
.font-icon-regular(@fa-var-calendar-alt);
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.type-task:before {
|
||||||
|
.font-icon-regular(@fa-var-calendar-check);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-section {
|
||||||
|
font-size: .9rem;
|
||||||
|
color: @color-black-shade-text;
|
||||||
|
white-space: nowrap;
|
||||||
|
.overflow-ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.alarm-actions {
|
||||||
|
text-align: right;
|
||||||
|
margin-bottom: .25rem;
|
||||||
|
|
||||||
|
a {
|
||||||
|
&:first-child {
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
&:extend(.font-icon-class);
|
||||||
|
display: inline;
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a.alarm-action-snooze:before {
|
||||||
|
content: @fa-var-bell-slash;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.alarm-action-dismiss:before {
|
||||||
|
content: @fa-var-trash-alt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#alarm-snooze-dropdown a:before {
|
||||||
|
.font-icon-regular(@fa-var-clock);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue