зеркало из https://github.com/mozilla/gecko-dev.git
Bug 248795 Menu item 'Refresh Remote Calendars' should be disabled when there are no remote calendars
This commit is contained in:
Родитель
337f7b9c61
Коммит
7be7e40d2a
|
@ -80,6 +80,11 @@ interface calICalendar : nsISupports
|
||||||
*/
|
*/
|
||||||
attribute boolean readOnly;
|
attribute boolean readOnly;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether or not it makes sense to call refresh() on this calendar.
|
||||||
|
*/
|
||||||
|
readonly attribute boolean canRefresh;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In combination with the other parameters to getItems(), these
|
* In combination with the other parameters to getItems(), these
|
||||||
* constants provide for a very basic filtering mechanisms for use
|
* constants provide for a very basic filtering mechanisms for use
|
||||||
|
|
|
@ -146,6 +146,11 @@ calDavCalendar.prototype = {
|
||||||
this.mReadOnly = bool;
|
this.mReadOnly = bool;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get canRefresh() {
|
||||||
|
// refresh() is currently not implemented, but we may want to change that
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
// attribute nsIURI uri;
|
// attribute nsIURI uri;
|
||||||
mUri: null,
|
mUri: null,
|
||||||
get uri() { return this.mUri; },
|
get uri() { return this.mUri; },
|
||||||
|
|
|
@ -272,6 +272,10 @@ calCompositeCalendar.prototype = {
|
||||||
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
|
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get canRefresh() {
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
// void addObserver( in calIObserver observer );
|
// void addObserver( in calIObserver observer );
|
||||||
mCompositeObservers: Array(),
|
mCompositeObservers: Array(),
|
||||||
mObservers: Array(),
|
mObservers: Array(),
|
||||||
|
|
|
@ -125,6 +125,10 @@ calICSCalendar.prototype = {
|
||||||
this.mReadOnly = bool;
|
this.mReadOnly = bool;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get canRefresh() {
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
mUri: null,
|
mUri: null,
|
||||||
get uri() { return this.mUri },
|
get uri() { return this.mUri },
|
||||||
set uri(aUri) {
|
set uri(aUri) {
|
||||||
|
|
|
@ -112,6 +112,10 @@ calMemoryCalendar.prototype = {
|
||||||
this.mReadOnly = bool;
|
this.mReadOnly = bool;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get canRefresh() {
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
// attribute nsIURI uri;
|
// attribute nsIURI uri;
|
||||||
mUri: null,
|
mUri: null,
|
||||||
get uri() { return this.mUri; },
|
get uri() { return this.mUri; },
|
||||||
|
|
|
@ -271,6 +271,10 @@ calStorageCalendar.prototype = {
|
||||||
this.mReadOnly = bool;
|
this.mReadOnly = bool;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get canRefresh() {
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
mURI: null,
|
mURI: null,
|
||||||
// attribute nsIURI uri;
|
// attribute nsIURI uri;
|
||||||
get uri() { return this.mURI; },
|
get uri() { return this.mURI; },
|
||||||
|
|
|
@ -64,6 +64,11 @@ var calCalendarManagerObserver = {
|
||||||
setCalendarManagerUI();
|
setCalendarManagerUI();
|
||||||
document.getElementById("new_command").removeAttribute("disabled");
|
document.getElementById("new_command").removeAttribute("disabled");
|
||||||
document.getElementById("new_todo_command").removeAttribute("disabled");
|
document.getElementById("new_todo_command").removeAttribute("disabled");
|
||||||
|
|
||||||
|
if (aCalendar.canRefresh) {
|
||||||
|
var remoteCommand = document.getElementById("reload_remote_calendars");
|
||||||
|
remoteCommand.removeAttribute("disabled");
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onCalendarUnregistering: function(aCalendar) {
|
onCalendarUnregistering: function(aCalendar) {
|
||||||
|
@ -78,6 +83,19 @@ var calCalendarManagerObserver = {
|
||||||
document.getElementById("new_todo_command").setAttribute("disabled", true);
|
document.getElementById("new_todo_command").setAttribute("disabled", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (aCalendar.canRefresh) {
|
||||||
|
// We may have just removed our last remote cal. Then we'd need to
|
||||||
|
// disabled the reload-remote-calendars command
|
||||||
|
var calendars = getCalendarManager().getCalendars({});
|
||||||
|
function calCanRefresh(cal) {
|
||||||
|
return (cal.canRefresh && !cal.uri.equals(aCalendar.uri));
|
||||||
|
}
|
||||||
|
if (!calendars.some(calCanRefresh)) {
|
||||||
|
var remoteCommand = document.getElementById("reload_remote_calendars");
|
||||||
|
remoteCommand.setAttribute("disabled", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onCalendarDeleting: function(aCalendar) {
|
onCalendarDeleting: function(aCalendar) {
|
||||||
|
@ -192,7 +210,12 @@ function setCalendarManagerUI()
|
||||||
var composite = getDisplayComposite();
|
var composite = getDisplayComposite();
|
||||||
var calmgr = getCalendarManager();
|
var calmgr = getCalendarManager();
|
||||||
var calendars = calmgr.getCalendars({});
|
var calendars = calmgr.getCalendars({});
|
||||||
|
var hasRefreshableCal = false;
|
||||||
for each (var calendar in calendars) {
|
for each (var calendar in calendars) {
|
||||||
|
if (calendar.canRefresh) {
|
||||||
|
hasRefreshableCal = true;
|
||||||
|
}
|
||||||
|
|
||||||
var listItem = document.createElement("listitem");
|
var listItem = document.createElement("listitem");
|
||||||
|
|
||||||
var checkCell = document.createElement("listcell");
|
var checkCell = document.createElement("listcell");
|
||||||
|
@ -220,6 +243,12 @@ function setCalendarManagerUI()
|
||||||
if (calendarList.selectedIndex == -1)
|
if (calendarList.selectedIndex == -1)
|
||||||
calendarList.selectedIndex = 0;
|
calendarList.selectedIndex = 0;
|
||||||
}
|
}
|
||||||
|
var remoteCommand = document.getElementById("reload_remote_calendars");
|
||||||
|
if (!hasRefreshableCal) {
|
||||||
|
remoteCommand.setAttribute("disabled", true);
|
||||||
|
} else {
|
||||||
|
remoteCommand.removeAttribute("disabled");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onCalendarListSelect() {
|
function onCalendarListSelect() {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче