зеркало из https://github.com/mozilla/gecko-dev.git
bug #362961 missing relation for custom reminder
This commit is contained in:
Родитель
f7a23c5958
Коммит
c8b7e1a631
|
@ -184,6 +184,8 @@
|
|||
<!ENTITY reminder.new.label "New">
|
||||
<!ENTITY reminder.delete.label "Delete">
|
||||
<!ENTITY reminder.rename.label "Rename">
|
||||
<!ENTITY reminder.relation.start.label "the event starts">
|
||||
<!ENTITY reminder.relation.end.label "the event ends">
|
||||
|
||||
<!-- Attendees dialog -->
|
||||
<!ENTITY event.organizer.label "Organizer">
|
||||
|
|
|
@ -92,7 +92,7 @@ repeatDetailsUntilAllDay=Occurs %1$S\neffective %2$S until %3$S.
|
|||
repeatDetailsInfinite=Occurs %1$S\neffective %2$S\n from %3$S to %4$S.
|
||||
repeatDetailsInfiniteAllDay=Occurs %1$S\neffective %2$S.
|
||||
|
||||
reminderCustomTitle=%1$S %2$S %3$S the event starts
|
||||
reminderCustomTitle=%1$S %2$S %3$S %4$S
|
||||
reminderCustomUnitMinute=minute
|
||||
reminderCustomUnitMinutes=minutes
|
||||
reminderCustomUnitHour=hour
|
||||
|
@ -101,6 +101,7 @@ reminderCustomUnitDay=day
|
|||
reminderCustomUnitDays=days
|
||||
reminderCustomRelationStart=before
|
||||
reminderCustomRelationEnd=after
|
||||
|
||||
reminderCustomOriginBegin=the event starts
|
||||
reminderCustomOriginEnd=the event ends
|
||||
newEvent=New Event
|
||||
newTask=New Task
|
||||
|
|
|
@ -91,8 +91,9 @@ function onLoad()
|
|||
node.reminder = reminder;
|
||||
}
|
||||
|
||||
if(selectedIndex >= 0)
|
||||
listbox.selectedIndex = selectedIndex;
|
||||
if(selectedIndex < 0)
|
||||
selectedIndex = 0;
|
||||
listbox.selectedIndex = selectedIndex;
|
||||
|
||||
opener.setCursor("auto");
|
||||
}
|
||||
|
@ -136,11 +137,19 @@ function stringFromReminderObject(reminder) {
|
|||
break;
|
||||
}
|
||||
|
||||
var originString;
|
||||
if(reminder.origin && reminder.origin < 0) {
|
||||
originString = props.GetStringFromName('reminderCustomOriginEnd');
|
||||
} else {
|
||||
originString = props.GetStringFromName('reminderCustomOriginBegin');
|
||||
}
|
||||
|
||||
var result = props.formatStringFromName(
|
||||
'reminderCustomTitle',
|
||||
[ reminder.length,
|
||||
unitString,
|
||||
relationString ], 3);
|
||||
relationString,
|
||||
originString], 4);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -155,7 +164,7 @@ function loadReminders()
|
|||
.getService(Components.interfaces.nsIPrefService);
|
||||
var prefBranch = prefService.getBranch("calendar.reminder.");
|
||||
|
||||
var pref = "length=15;unit=minutes;relation=START,length=3;unit=hours;relation=START";
|
||||
var pref = "length=15;unit=minutes;relation=START;origin=1,length=3;unit=hours;relation=START;origin=1";
|
||||
try {
|
||||
var newPref = prefBranch.getCharPref("custom");
|
||||
if(newPref && newPref != "")
|
||||
|
@ -217,7 +226,8 @@ function onReminderSelected()
|
|||
var length = document.getElementById("reminder-length");
|
||||
var unit = document.getElementById("reminder-unit");
|
||||
var relation = document.getElementById("reminder-relation");
|
||||
|
||||
var origin = document.getElementById("reminder-origin");
|
||||
|
||||
var listbox = document.getElementById("reminder-listbox");
|
||||
var listitem = listbox.selectedItem;
|
||||
|
||||
|
@ -227,8 +237,7 @@ function onReminderSelected()
|
|||
length.value = reminder.length;
|
||||
unit.value = reminder.unit;
|
||||
relation.value = reminder.relation;
|
||||
}
|
||||
else {
|
||||
origin.value = reminder.origin;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -251,6 +260,7 @@ function updateReminder() {
|
|||
var length = document.getElementById("reminder-length");
|
||||
var unit = document.getElementById("reminder-unit");
|
||||
var relation = document.getElementById("reminder-relation");
|
||||
var origin = document.getElementById("reminder-origin");
|
||||
|
||||
var listbox = document.getElementById("reminder-listbox");
|
||||
var listitem = listbox.selectedItem;
|
||||
|
@ -259,6 +269,7 @@ function updateReminder() {
|
|||
reminder.length = length.value;
|
||||
reminder.unit = unit.value;
|
||||
reminder.relation = relation.value;
|
||||
reminder.origin = origin.value;
|
||||
|
||||
var details = stringFromReminderObject(reminder);
|
||||
listitem.setAttribute('label',details);
|
||||
|
@ -279,6 +290,7 @@ function onNewReminder() {
|
|||
newReminder.length = reminder.length;
|
||||
newReminder.unit = reminder.unit;
|
||||
newReminder.relation = reminder.relation;
|
||||
newReminder.origin = reminder.origin;
|
||||
newNode.reminder = newReminder;
|
||||
listbox.appendChild(newNode);
|
||||
listbox.selectItem(newNode);
|
||||
|
|
|
@ -96,24 +96,32 @@
|
|||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row align="center">
|
||||
<row align="top">
|
||||
<radio selected="true"/>
|
||||
<hbox>
|
||||
<textbox id="reminder-length" size="1" oninput="updateReminderLength(event)"/>
|
||||
<menulist id="reminder-unit" oncommand="updateReminder()">
|
||||
<vbox>
|
||||
<hbox>
|
||||
<textbox id="reminder-length" size="1" oninput="updateReminderLength(event)"/>
|
||||
<menulist id="reminder-unit" oncommand="updateReminder()" flex="1">
|
||||
<menupopup>
|
||||
<menuitem label="&alarm.units.minutes;" value="minutes" selected="true"/>
|
||||
<menuitem label="&alarm.units.hours;" value="hours"/>
|
||||
<menuitem label="&alarm.units.days;" value="days"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
<menulist id="reminder-relation" oncommand="updateReminder()" flex="1">
|
||||
<menupopup>
|
||||
<menuitem label="&newevent.before.label;" value="START" selected="true"/>
|
||||
<menuitem label="&newevent.after.label;" value="END"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<menulist id="reminder-origin" oncommand="updateReminder()">
|
||||
<menupopup>
|
||||
<menuitem label="&alarm.units.minutes;" value="minutes" selected="true"/>
|
||||
<menuitem label="&alarm.units.hours;" value="hours"/>
|
||||
<menuitem label="&alarm.units.days;" value="days"/>
|
||||
<menuitem label="&reminder.relation.start.label;" value="1" selected="true"/>
|
||||
<menuitem label="&reminder.relation.end.label;" value="-1"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
<menulist id="reminder-relation" oncommand="updateReminder()">
|
||||
<menupopup>
|
||||
<menuitem label="&newevent.before.label;" value="START" selected="true"/>
|
||||
<menuitem label="&newevent.after.label;" value="END"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</row>
|
||||
<row>
|
||||
<radio disabled="true"/>
|
||||
|
|
|
@ -838,21 +838,30 @@ function loadReminder(item)
|
|||
for(var i=0; i<numItems; i++) {
|
||||
var menuitem = menuItems[i];
|
||||
if(menuitem.hasAttribute("length")) {
|
||||
var relation = "START";
|
||||
var origin = "1";
|
||||
if(item.alarmRelated == Components.interfaces.calIItemBase.ALARM_RELATED_END)
|
||||
origin = "-1";
|
||||
var duration = item.alarmOffset.clone();
|
||||
var relation = "START";
|
||||
if(duration.isNegative) {
|
||||
duration.isNegative = false;
|
||||
duration.normalize();
|
||||
relation = "END";
|
||||
if(menuitem.getAttribute("relation") == relation) {
|
||||
var unit = menuitem.getAttribute("unit");
|
||||
var length = menuitem.getAttribute("length");
|
||||
if(unit == "minutes" && item.alarmOffset.minutes == length) {
|
||||
matchingItem = menuitem;
|
||||
break;
|
||||
} else if(unit == "hours" && item.alarmOffset.hours == length) {
|
||||
matchingItem = menuitem;
|
||||
break;
|
||||
} else if(unit == "days" && item.alarmOffset.days == length) {
|
||||
matchingItem = menuitem;
|
||||
break;
|
||||
}
|
||||
if(menuitem.getAttribute("origin") == origin) {
|
||||
if(menuitem.getAttribute("relation") == relation) {
|
||||
var unit = menuitem.getAttribute("unit");
|
||||
var length = menuitem.getAttribute("length");
|
||||
if(unit == "minutes" && item.alarmOffset.minutes == length) {
|
||||
matchingItem = menuitem;
|
||||
break;
|
||||
} else if(unit == "hours" && item.alarmOffset.hours == length) {
|
||||
matchingItem = menuitem;
|
||||
break;
|
||||
} else if(unit == "days" && item.alarmOffset.days == length) {
|
||||
matchingItem = menuitem;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -875,11 +884,18 @@ function loadReminder(item)
|
|||
var customReminder = document.getElementById("reminder-custom-menuitem");
|
||||
var reminder = {};
|
||||
if(item.alarmRelated == Components.interfaces.calIItemBase.ALARM_RELATED_START) {
|
||||
reminder.relation = "START";
|
||||
reminder.origin = "1";
|
||||
} else {
|
||||
reminder.relation = "END";
|
||||
reminder.origin = "-1";
|
||||
}
|
||||
var offset = item.alarmOffset;
|
||||
var offset = item.alarmOffset.clone();
|
||||
var relation = "START";
|
||||
if(offset.isNegative) {
|
||||
offset.isNegative = false;
|
||||
offset.normalize();
|
||||
relation = "END";
|
||||
}
|
||||
reminder.relation = relation;
|
||||
if (offset.minutes) {
|
||||
var minutes = offset.minutes + offset.hours*60 + offset.days*24*60 + offset.weeks*60*24*7;
|
||||
reminder.unit = 'minutes';
|
||||
|
@ -926,23 +942,23 @@ function saveReminder(item) {
|
|||
reminder.length = menuitem.getAttribute('length');
|
||||
reminder.unit = menuitem.getAttribute('unit');
|
||||
reminder.relation = menuitem.getAttribute('relation');
|
||||
}
|
||||
|
||||
if (reminder.relation == "START") {
|
||||
item.alarmRelated = Components.interfaces.calIItemBase.ALARM_RELATED_START;
|
||||
} else {
|
||||
item.alarmRelated = Components.interfaces.calIItemBase.ALARM_RELATED_END;
|
||||
reminder.origin = menuitem.getAttribute('origin');
|
||||
}
|
||||
|
||||
var duration = Components.classes["@mozilla.org/calendar/duration;1"]
|
||||
.createInstance(Components.interfaces.calIDuration);
|
||||
if (item.alarmRelated == Components.interfaces.calIItemBase.ALARM_RELATED_START) {
|
||||
duration.isNegative = true;
|
||||
}
|
||||
duration[reminder.unit] = Number(reminder.length);
|
||||
if (reminder.relation != "START") {
|
||||
duration.isNegative = true;
|
||||
}
|
||||
duration.normalize();
|
||||
|
||||
item.alarmOffset = duration;
|
||||
|
||||
if (Number(reminder.origin) >= 0) {
|
||||
item.alarmRelated = Components.interfaces.calIItemBase.ALARM_RELATED_START;
|
||||
} else {
|
||||
item.alarmRelated = Components.interfaces.calIItemBase.ALARM_RELATED_END;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1059,11 +1075,19 @@ function updateReminderDetails()
|
|||
break;
|
||||
}
|
||||
|
||||
var originString;
|
||||
if(reminder.origin && reminder.origin < 0) {
|
||||
originString = props.GetStringFromName('reminderCustomOriginEnd');
|
||||
} else {
|
||||
originString = props.GetStringFromName('reminderCustomOriginBegin');
|
||||
}
|
||||
|
||||
var detailsString = props.formatStringFromName(
|
||||
'reminderCustomTitle',
|
||||
[ reminder.length,
|
||||
unitString,
|
||||
relationString ], 3);
|
||||
relationString,
|
||||
originString], 4);
|
||||
|
||||
var lines = detailsString.split("\n");
|
||||
reminderDetails.removeAttribute("collapsed");
|
||||
|
|
|
@ -508,20 +508,20 @@
|
|||
<menulist id="item-alarm" oncommand="updateReminder()" disable-on-readonly="true">
|
||||
<menupopup>
|
||||
<menuitem label="&event.reminder.none.label;" value="none" selected="true"/>
|
||||
<menuitem label="&event.reminder.5minutes.before.label;" length="5" unit="minutes" relation="START"/>
|
||||
<menuitem label="&event.reminder.10minutes.before.label;" length="10" unit="minutes" relation="START"/>
|
||||
<menuitem label="&event.reminder.15minutes.before.label;" length="15" unit="minutes" relation="START"/>
|
||||
<menuitem label="&event.reminder.30minutes.before.label;" length="30" unit="minutes" relation="START"/>
|
||||
<menuitem label="&event.reminder.45minutes.before.label;" length="45" unit="minutes" relation="START"/>
|
||||
<menuitem label="&event.reminder.5minutes.before.label;" length="5" unit="minutes" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.10minutes.before.label;" length="10" unit="minutes" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.15minutes.before.label;" length="15" unit="minutes" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.30minutes.before.label;" length="30" unit="minutes" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.45minutes.before.label;" length="45" unit="minutes" relation="START" origin="1"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&event.reminder.1hour.before.label;" length="1" unit="hours" relation="START"/>
|
||||
<menuitem label="&event.reminder.2hours.before.label;" length="2" unit="hours" relation="START"/>
|
||||
<menuitem label="&event.reminder.5hours.before.label;" length="5" unit="hours" relation="START"/>
|
||||
<menuitem label="&event.reminder.15hours.before.label;" length="15" unit="hours" relation="START"/>
|
||||
<menuitem label="&event.reminder.1hour.before.label;" length="1" unit="hours" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.2hours.before.label;" length="2" unit="hours" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.5hours.before.label;" length="5" unit="hours" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.15hours.before.label;" length="15" unit="hours" relation="START" origin="1"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&event.reminder.1day.before.label;" length="1" unit="days" relation="START"/>
|
||||
<menuitem label="&event.reminder.2days.before.label;" length="2" unit="days" relation="START"/>
|
||||
<menuitem label="&event.reminder.1week.before.label;" length="7" unit="days" relation="START"/>
|
||||
<menuitem label="&event.reminder.1day.before.label;" length="1" unit="days" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.2days.before.label;" length="2" unit="days" relation="START" origin="1"/>
|
||||
<menuitem label="&event.reminder.1week.before.label;" length="7" unit="days" relation="START" origin="1"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="reminder-custom-menuitem" label="&event.reminder.custom.label;" value="custom"/>
|
||||
</menupopup>
|
||||
|
|
Загрузка…
Ссылка в новой задаче