Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10079)

Unified Diff: chrome/common/extensions/docs/examples/extensions/calendar/javascript/background.js

Issue 7572003: Update Google Calendar Checker extension. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebuilt docs Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/docs/examples/extensions/calendar/javascript/background.js
diff --git a/chrome/common/extensions/docs/examples/extensions/calendar/javascript/background.js b/chrome/common/extensions/docs/examples/extensions/calendar/javascript/background.js
index 6abedb03467b39fdc09070718c16e610142342ff..cd7e8db92554b77824cf30c1440b56df7812d77a 100644
--- a/chrome/common/extensions/docs/examples/extensions/calendar/javascript/background.js
+++ b/chrome/common/extensions/docs/examples/extensions/calendar/javascript/background.js
@@ -1,7 +1,7 @@
/**
- * Copyright (c) 2010 The Chromium Authors. All rights reserved. Use of this
- * source code is governed by a BSD-style license that can be found in the
- * LICENSE file.
+ * Copyright (c) 2011 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
*/
/**
@@ -272,9 +272,11 @@ CalendarManager = {};
/**
* Extracts event from the each entry of the calendar.
* @param {Object} elem The XML node to extract the event from.
+ * @param {Object} mailId email of the owner of calendar in multiple calendar
+ * support.
* @return {Object} out An object containing the event properties.
*/
-CalendarManager.extractEvent = function(elem) {
+CalendarManager.extractEvent = function(elem, mailId) {
var out = {};
for (var node = elem.firstChild; node != null; node = node.nextSibling) {
@@ -287,7 +289,10 @@ CalendarManager.extractEvent = function(elem) {
out.location = node.getAttribute('valueString');
} else if (node.nodeName == 'gd:who') {
if (node.firstChild) {
- out.attendeeStatus = node.firstChild.getAttribute('value');
+ if ((!isMultiCalendar) || (isMultiCalendar && mailId &&
+ node.getAttribute('email') == mailId)) {
+ out.attendeeStatus = node.firstChild.getAttribute('value');
+ }
}
} else if (node.nodeName == 'gd:eventStatus') {
out.status = node.getAttribute('value');
@@ -453,17 +458,25 @@ CalendarManager.onCalendarResponse = function(xmlhttp, calendarId) {
*/
CalendarManager.parseCalendarEntry = function(responseXML, calendarId) {
var entry_ = responseXML.getElementsByTagName('entry');
- var author = responseXML.querySelector('author name').textContent;
+ var mailId = null;
+ var author = null;
+
+ if (responseXML.querySelector('author name')) {
+ author = responseXML.querySelector('author name').textContent;
+ }
+ if (responseXML.querySelector('author email')) {
+ mailId = responseXML.querySelector('author email').textContent;
+ }
if (entry_ && entry_.length > 0) {
for (var i = 0, entry; entry = entry_[i]; ++i) {
- var event_ = CalendarManager.extractEvent(entry);
+ var event_ = CalendarManager.extractEvent(entry, mailId);
// Get the time from then to now
if (event_.startTime) {
var t = event_.startTime.getTime() - getCurrentTime();
if (t >= 0 && (event_.attendeeStatus != DECLINED_URL)) {
- if (isMultiCalendar) {
+ if (isMultiCalendar && author) {
event_.author = author;
}
eventList.push(event_);
@@ -495,9 +508,8 @@ CalendarManager.populateLatestEvent = function(eventList) {
//populating next events array.
if (eventList.length > 0) {
nextEvent_ = eventList[0];
- nextEvent_.startTime.setSeconds(0, 0);
nextEvents.push(nextEvent_);
- var startTime = nextEvent_.startTime;
+ var startTime = nextEvent_.startTime.setSeconds(0, 0);
for (var i = 1, event; event = eventList[i]; i++) {
var time = event.startTime.setSeconds(0, 0);
if (time == startTime) {
@@ -506,7 +518,7 @@ CalendarManager.populateLatestEvent = function(eventList) {
break;
}
}
- if (nextEvents.length > 1) {
+ if (nextEvents.length > 1 && isMultiCalendar) {
nextEvents.sort(sortByAuthor);
}
canvasAnimation_.animate();
@@ -581,7 +593,7 @@ function sortByDate(event_1, event_2) {
*/
function sortByAuthor(event_1, event_2) {
var nameDiff;
- if (event_2.author == defaultAuthor) {
+ if (event_1.author && event_2.author && event_2.author == defaultAuthor) {
nameDiff = 1;
} else {
return 0;
@@ -603,8 +615,8 @@ function redraw() {
}
canvasAnimation_.animate();
- // if ((we are logged in) && (30 minutes have passed)) re-poll
- if (nextEvent_ && (getCurrentTime() - lastPollTime_ >= POLL_INTERVAL)) {
+ // if 30 minutes have passed re-poll
+ if (getCurrentTime() - lastPollTime_ >= POLL_INTERVAL) {
CalendarManager.pollServer();
}
};

Powered by Google App Engine
This is Rietveld 408576698